From a340faaa93bf69c4ad209713d36b75f860c52b97 Mon Sep 17 00:00:00 2001 From: "yair.ansbacher" Date: Sun, 9 Jul 2017 09:32:22 +0300 Subject: [PATCH 1/5] build progressive urls correctly --- src/entities/media-source.js | 20 ++++ src/k-provider/ovp/play-source-url-builder.js | 2 +- src/k-provider/ovp/provider-parser.js | 106 ++++++++++++++---- 3 files changed, 105 insertions(+), 23 deletions(-) diff --git a/src/entities/media-source.js b/src/entities/media-source.js index d4dc94d4..b916257a 100644 --- a/src/entities/media-source.js +++ b/src/entities/media-source.js @@ -26,6 +26,26 @@ export default class MediaSource { * @type {Array} */ drmData: Array; + /** + * @member - media source bandwidth + * @type {number} + */ + bandwidth: number; + /** + * @member - media source width + * @type {number} + */ + width: number; + /** + * @member - media source height + * @type {number} + */ + height: number; + /** + * @member - media source label + * @type {string} + */ + label: string; /** * @constructor diff --git a/src/k-provider/ovp/play-source-url-builder.js b/src/k-provider/ovp/play-source-url-builder.js index 0193d5b5..506ef7cf 100644 --- a/src/k-provider/ovp/play-source-url-builder.js +++ b/src/k-provider/ovp/play-source-url-builder.js @@ -38,7 +38,7 @@ export default class PlaySourceUrlBuilder { playUrl += "p/" + partnerId + "/sp/" + partnerId + "00" + "/playManifest/entryId/" + entryId + "/protocol/" + protocol + "/format/" + format; if (flavorIds != "") { - playUrl += "/falvorIds/" + flavorIds; + playUrl += "/flavorIds/" + flavorIds; } else if (uiConfId != "") { playUrl += "/uiConfId/" + uiConfId; diff --git a/src/k-provider/ovp/provider-parser.js b/src/k-provider/ovp/provider-parser.js index 7b651fab..6e64873a 100644 --- a/src/k-provider/ovp/provider-parser.js +++ b/src/k-provider/ovp/provider-parser.js @@ -46,6 +46,7 @@ export default class ProviderParser { * @param {any} mediaEntryResponse The media entry response * @returns {MediaEntry} The media entry * @static + * @public */ static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry { let mediaEntry: MediaEntry = new MediaEntry(); @@ -53,18 +54,11 @@ export default class ProviderParser { let playbackContext = mediaEntryResponse.playBackContextResult; let metadataList = mediaEntryResponse.metadataListResult; let kalturaSources: Array = playbackContext.sources; - let sources: MediaSources = new MediaSources(); - if (kalturaSources && kalturaSources.length > 0) { - kalturaSources.forEach((source) => { - let parsedSource = this.parseSource(source, ks, partnerID, uiConfId, entry, playbackContext); - let mediaFormat = SUPPORTED_FORMATS.get(source.format); - sources.map(parsedSource, mediaFormat); - }); - } + let sources: MediaSources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext); mediaEntry.sources = sources; - let metadata: Map = this.parseMetaData(metadataList); + let metadata: Map = this._parseMetaData(metadataList); mediaEntry.metaData = metadata; mediaEntry.id = entry.id; mediaEntry.duration = entry.duration; @@ -96,6 +90,37 @@ export default class ProviderParser { return mediaEntry; } + static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry, playbackContext): MediaSources { + let sources: MediaSources = new MediaSources(); + + let parseAdaptiveSources = function () { + kalturaSources.forEach((source) => { + if (ProviderParser._isProgressiveSource(source) === false) { + let parsedSource = ProviderParser._parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext); + let sourceFormat = SUPPORTED_FORMATS.get(source.format); + sources.map(parsedSource, sourceFormat); + } + }); + }; + + let parseProgressiveSources = function () { + let progressiveSource = kalturaSources.find(source => ProviderParser._isProgressiveSource(source)); + sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry); + }; + + if (kalturaSources && kalturaSources.length > 0) { + parseAdaptiveSources(); + parseProgressiveSources(); + } + + return sources; + } + + static _isProgressiveSource(source) { + let sourceFormat = SUPPORTED_FORMATS.get(source.format); + return sourceFormat && sourceFormat.name === 'mp4'; + } + /** * * @param {KalturaPlaybackSource} source The source @@ -106,22 +131,14 @@ export default class ProviderParser { * @param {KalturaPlaybackContext} playbackContext The playback context * @returns {MediaSource} The parsed media source * @static + * @private */ - static parseSource(source: KalturaPlaybackSource, ks: string, partnerID: number, uiConfId: number, entry: KalturaMediaEntry, playbackContext: KalturaPlaybackContext): MediaSource { + static _parseAdaptiveSource(source: KalturaPlaybackSource, ks: string, partnerID: number, uiConfId: number, entry: KalturaMediaEntry, playbackContext: KalturaPlaybackContext): MediaSource { let playUrl: string = ""; let mediaFormat = SUPPORTED_FORMATS.get(source.format); let mediaSource: MediaSource = new MediaSource(); // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one. if (source.hasFlavorIds()) { - let splittedUrl: Array = config.baseUrl.split("/"); - let baseProtocol: string; - if (splittedUrl && splittedUrl.length > 0) { - baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1); - } - else { - baseProtocol = "http"; - } - let extension: string = ""; if (!mediaFormat) { let flavorIdsArr = source.flavorIds.split(","); @@ -143,7 +160,7 @@ export default class ProviderParser { partnerId: partnerID, uiConfId: uiConfId, extension: extension, - protocol: source.getProtocol(baseProtocol) + protocol: source.getProtocol(this._getBaseProtocol()) }); } @@ -170,12 +187,13 @@ export default class ProviderParser { /** * Ovp metadata parser - * @function parseMetaData + * @function _parseMetaData * @param {KalturaMetadataListResponse} metadataList The metadata list * @returns {Map} Parsed metadata * @static + * @private */ - static parseMetaData(metadataList: KalturaMetadataListResponse): Map { + static _parseMetaData(metadataList: KalturaMetadataListResponse): Map { let metadata: Object = {}; if (metadataList && metadataList.metas && metadataList.metas.length > 0) { metadataList.metas.forEach((meta) => { @@ -195,4 +213,48 @@ export default class ProviderParser { } return metadata; } + + static _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entry) { + let sources = []; + if (kalturaSource) { + let protocol = kalturaSource.getProtocol(this._getBaseProtocol()); + let format = kalturaSource.format; + let sourceId = kalturaSource.deliveryProfileId + "," + kalturaSource.format; + flavorAssets.map((flavor) => { + if (flavor.height && flavor.width) { + let mediaSource: MediaSource = new MediaSource(); + mediaSource.id = flavor.id + sourceId; + mediaSource.mimetype = 'video/mp4'; + mediaSource.height = flavor.height; + mediaSource.width = flavor.width; + mediaSource.bandwidth = flavor.bitrate * 1024; + mediaSource.label = flavor.label || flavor.language; + mediaSource.url = PlaySourceUrlBuilder.build({ + entryId: entry.id, + flavorIds: flavor.id, + format: format, + ks: ks, + partnerId: partnerID, + uiConfId: uiConfId, + extension: 'mp4', + protocol: protocol + }); + sources.push(mediaSource); + } + }); + } + return sources; + } + + static _getBaseProtocol(): string { + let splittedUrl: Array = config.baseUrl.split("/"); + let baseProtocol: string; + if (splittedUrl && splittedUrl.length > 0) { + baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1); + } + else { + baseProtocol = "http"; + } + return baseProtocol; + } } From 3e0852d9551919702916cba9358d9413a07ddd6c Mon Sep 17 00:00:00 2001 From: "yair.ansbacher" Date: Sun, 9 Jul 2017 09:32:57 +0300 Subject: [PATCH 2/5] chore: update dist --- dist/ottProvider.js.map | 2 +- dist/ottProvider.min.js.map | 2 +- dist/ovpProvider.js | 138 ++++++++++++++++++++++++++++------- dist/ovpProvider.js.map | 2 +- dist/ovpProvider.min.js | 2 +- dist/ovpProvider.min.js.map | 2 +- dist/statsService.js.map | 2 +- dist/statsService.min.js.map | 2 +- 8 files changed, 119 insertions(+), 33 deletions(-) diff --git a/dist/ottProvider.js.map b/dist/ottProvider.js.map index cb4eaaec..332cc936 100644 --- a/dist/ottProvider.js.map +++ b/dist/ottProvider.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6*","webpack:///webpack/bootstrap 638014c152c6bb21e972?a44b*","webpack:///providers/./k-provider/ott/ott-provider.js"],"names":["OttProvider"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;IC/DqBA,W;AACnB,yBAAc;AAAA;AACb;;;;gCAEiB,CACjB;;;;;;kBALkBA,W","file":"ottProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 24);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 638014c152c6bb21e972","//@flow\nexport default class OttProvider {\n constructor() {\n }\n\n getConfig(): void {\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ott/ott-provider.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6*","webpack:///webpack/bootstrap 40363af1b4965fde30fb?46d4*","webpack:///providers/./k-provider/ott/ott-provider.js"],"names":["OttProvider"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;IC/DqBA,W;AACnB,yBAAc;AAAA;AACb;;;;gCAEiB,CACjB;;;;;;kBALkBA,W","file":"ottProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 24);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 40363af1b4965fde30fb","//@flow\nexport default class OttProvider {\n constructor() {\n }\n\n getConfig(): void {\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ott/ott-provider.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/ottProvider.min.js.map b/dist/ottProvider.min.js.map index f827d4ad..e00eb390 100644 --- a/dist/ottProvider.min.js.map +++ b/dist/ottProvider.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6*","webpack:///providers/ottProvider.min.js","webpack:///webpack/bootstrap a230e31148c3bdf5b594?9dd7*","webpack:///providers/./k-provider/ott/ott-provider.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","24","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","OttProvider","default"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,mBAAAD,IAEAD,EAAA,mBAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAE,EAAAF,EACAG,GAAA,EACAV,WAUA,OANAK,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,GAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KA+DA,OAnCAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAG,EAAA,SAAAK,GAA2C,MAAAA,IAG3CR,EAAAS,EAAA,SAAAf,EAAAgB,EAAAC,GACAX,EAAAY,EAAAlB,EAAAgB,IACAG,OAAAC,eAAApB,EAAAgB,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAX,EAAAkB,EAAA,SAAAvB,GACA,GAAAgB,GAAAhB,KAAAwB,WACA,WAA2B,MAAAxB,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAK,GAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAlB,KAAAe,EAAAC,IAGtDrB,EAAAwB,EAAA,GAGAxB,IAAAyB,EAAA,MDgBMC,GACA,SAAU/B,EAAQD,EAASM,GAEjC,YASA,SAAS2B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHjB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAIuB,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAI/B,GAAI,EAAGA,EAAI+B,EAAMC,OAAQhC,IAAK,CAAE,GAAIiC,GAAaF,EAAM/B,EAAIiC,GAAWpB,WAAaoB,EAAWpB,aAAc,EAAOoB,EAAWrB,cAAe,EAAU,SAAWqB,KAAYA,EAAWC,UAAW,GAAMxB,OAAOC,eAAemB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUP,EAAaU,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBH,EAAYP,UAAWiB,GAAiBC,GAAaR,EAAiBH,EAAaW,GAAqBX,MEzF3gBY,EF6FH,WE5FhB,QAAAA,KAAcd,EAAA7B,KAAA2C,GFsGd,MALAV,GAAaU,IACXH,IAAK,YACL9B,MAAO,gBAGFiC,IAGT/C,GAAQgD,QE1GaD","file":"ottProvider.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 24);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 24:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar OttProvider = function () {\n function OttProvider() {\n _classCallCheck(this, OttProvider);\n }\n\n _createClass(OttProvider, [{\n key: \"getConfig\",\n value: function getConfig() {}\n }]);\n\n return OttProvider;\n}();\n\nexports.default = OttProvider;\n\n/***/ })\n\n/******/ });\n});\n\n\n// WEBPACK FOOTER //\n// ottProvider.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 24);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a230e31148c3bdf5b594","//@flow\nexport default class OttProvider {\n constructor() {\n }\n\n getConfig(): void {\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ott/ott-provider.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6*","webpack:///providers/ottProvider.min.js","webpack:///webpack/bootstrap 23bc45362ebde973588a?6bf4*","webpack:///providers/./k-provider/ott/ott-provider.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","24","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","OttProvider","default"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,mBAAAD,IAEAD,EAAA,mBAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAE,EAAAF,EACAG,GAAA,EACAV,WAUA,OANAK,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,GAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KA+DA,OAnCAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAG,EAAA,SAAAK,GAA2C,MAAAA,IAG3CR,EAAAS,EAAA,SAAAf,EAAAgB,EAAAC,GACAX,EAAAY,EAAAlB,EAAAgB,IACAG,OAAAC,eAAApB,EAAAgB,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAX,EAAAkB,EAAA,SAAAvB,GACA,GAAAgB,GAAAhB,KAAAwB,WACA,WAA2B,MAAAxB,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAK,GAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAlB,KAAAe,EAAAC,IAGtDrB,EAAAwB,EAAA,GAGAxB,IAAAyB,EAAA,MDgBMC,GACA,SAAU/B,EAAQD,EAASM,GAEjC,YASA,SAAS2B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHjB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAIuB,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAI/B,GAAI,EAAGA,EAAI+B,EAAMC,OAAQhC,IAAK,CAAE,GAAIiC,GAAaF,EAAM/B,EAAIiC,GAAWpB,WAAaoB,EAAWpB,aAAc,EAAOoB,EAAWrB,cAAe,EAAU,SAAWqB,KAAYA,EAAWC,UAAW,GAAMxB,OAAOC,eAAemB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUP,EAAaU,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBH,EAAYP,UAAWiB,GAAiBC,GAAaR,EAAiBH,EAAaW,GAAqBX,MEzF3gBY,EF6FH,WE5FhB,QAAAA,KAAcd,EAAA7B,KAAA2C,GFsGd,MALAV,GAAaU,IACXH,IAAK,YACL9B,MAAO,gBAGFiC,IAGT/C,GAAQgD,QE1GaD","file":"ottProvider.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 24);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 24:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar OttProvider = function () {\n function OttProvider() {\n _classCallCheck(this, OttProvider);\n }\n\n _createClass(OttProvider, [{\n key: \"getConfig\",\n value: function getConfig() {}\n }]);\n\n return OttProvider;\n}();\n\nexports.default = OttProvider;\n\n/***/ })\n\n/******/ });\n});\n\n\n// WEBPACK FOOTER //\n// ottProvider.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 24);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 23bc45362ebde973588a","//@flow\nexport default class OttProvider {\n constructor() {\n }\n\n getConfig(): void {\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ott/ott-provider.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/ovpProvider.js b/dist/ovpProvider.js index 42662d95..3cd2cc3d 100644 --- a/dist/ovpProvider.js +++ b/dist/ovpProvider.js @@ -1488,6 +1488,16 @@ var MediaSource = * @constructor */ +/** + * @member - media source height + * @type {number} + */ + +/** + * @member - media source bandwidth + * @type {number} + */ + /** * @member - media source mimetype * @type {string} @@ -1500,6 +1510,16 @@ var MediaSource = function MediaSource() { _classCallCheck(this, MediaSource); } +/** + * @member - media source label + * @type {string} + */ + +/** + * @member - media source width + * @type {number} + */ + /** * @member - media source drm data * @type {Array} @@ -2864,27 +2884,19 @@ var ProviderParser = function () { * @param {any} mediaEntryResponse The media entry response * @returns {MediaEntry} The media entry * @static + * @public */ value: function getMediaEntry(ks, partnerID, uiConfId, mediaEntryResponse) { - var _this = this; - var mediaEntry = new _mediaEntry2.default(); var entry = mediaEntryResponse.entry; var playbackContext = mediaEntryResponse.playBackContextResult; var metadataList = mediaEntryResponse.metadataListResult; var kalturaSources = playbackContext.sources; - var sources = new _mediaSources2.default(); - if (kalturaSources && kalturaSources.length > 0) { - kalturaSources.forEach(function (source) { - var parsedSource = _this.parseSource(source, ks, partnerID, uiConfId, entry, playbackContext); - var mediaFormat = SUPPORTED_FORMATS.get(source.format); - sources.map(parsedSource, mediaFormat); - }); - } + var sources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext); mediaEntry.sources = sources; - var metadata = this.parseMetaData(metadataList); + var metadata = this._parseMetaData(metadataList); mediaEntry.metaData = metadata; mediaEntry.id = entry.id; mediaEntry.duration = entry.duration; @@ -2915,6 +2927,41 @@ var ProviderParser = function () { return mediaEntry; } + }, { + key: '_getParsedSources', + value: function _getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext) { + var sources = new _mediaSources2.default(); + + var parseAdaptiveSources = function parseAdaptiveSources() { + kalturaSources.forEach(function (source) { + if (ProviderParser._isProgressiveSource(source) === false) { + var parsedSource = ProviderParser._parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext); + var sourceFormat = SUPPORTED_FORMATS.get(source.format); + sources.map(parsedSource, sourceFormat); + } + }); + }; + + var parseProgressiveSources = function parseProgressiveSources() { + var progressiveSource = kalturaSources.find(function (source) { + return ProviderParser._isProgressiveSource(source); + }); + sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry); + }; + + if (kalturaSources && kalturaSources.length > 0) { + parseAdaptiveSources(); + parseProgressiveSources(); + } + + return sources; + } + }, { + key: '_isProgressiveSource', + value: function _isProgressiveSource(source) { + var sourceFormat = SUPPORTED_FORMATS.get(source.format); + return sourceFormat && sourceFormat.name === 'mp4'; + } /** * @@ -2926,24 +2973,17 @@ var ProviderParser = function () { * @param {KalturaPlaybackContext} playbackContext The playback context * @returns {MediaSource} The parsed media source * @static + * @private */ }, { - key: 'parseSource', - value: function parseSource(source, ks, partnerID, uiConfId, entry, playbackContext) { + key: '_parseAdaptiveSource', + value: function _parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext) { var playUrl = ""; var mediaFormat = SUPPORTED_FORMATS.get(source.format); var mediaSource = new _mediaSource2.default(); // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one. if (source.hasFlavorIds()) { - var splittedUrl = config.baseUrl.split("/"); - var baseProtocol = void 0; - if (splittedUrl && splittedUrl.length > 0) { - baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1); - } else { - baseProtocol = "http"; - } - var extension = ""; if (!mediaFormat) { var flavorIdsArr = source.flavorIds.split(","); @@ -2966,7 +3006,7 @@ var ProviderParser = function () { partnerId: partnerID, uiConfId: uiConfId, extension: extension, - protocol: source.getProtocol(baseProtocol) + protocol: source.getProtocol(this._getBaseProtocol()) }); } else { playUrl = source.url; @@ -2991,15 +3031,16 @@ var ProviderParser = function () { /** * Ovp metadata parser - * @function parseMetaData + * @function _parseMetaData * @param {KalturaMetadataListResponse} metadataList The metadata list * @returns {Map} Parsed metadata * @static + * @private */ }, { - key: 'parseMetaData', - value: function parseMetaData(metadataList) { + key: '_parseMetaData', + value: function _parseMetaData(metadataList) { var metadata = {}; if (metadataList && metadataList.metas && metadataList.metas.length > 0) { metadataList.metas.forEach(function (meta) { @@ -3018,6 +3059,51 @@ var ProviderParser = function () { } return metadata; } + }, { + key: '_parseProgressiveSources', + value: function _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entry) { + var sources = []; + if (kalturaSource) { + var protocol = kalturaSource.getProtocol(this._getBaseProtocol()); + var format = kalturaSource.format; + var sourceId = kalturaSource.deliveryProfileId + "," + kalturaSource.format; + flavorAssets.map(function (flavor) { + if (flavor.height && flavor.width) { + var mediaSource = new _mediaSource2.default(); + mediaSource.id = flavor.id + sourceId; + mediaSource.mimetype = 'video/mp4'; + mediaSource.height = flavor.height; + mediaSource.width = flavor.width; + mediaSource.bandwidth = flavor.bitrate * 1024; + mediaSource.label = flavor.label || flavor.language; + mediaSource.url = _playSourceUrlBuilder2.default.build({ + entryId: entry.id, + flavorIds: flavor.id, + format: format, + ks: ks, + partnerId: partnerID, + uiConfId: uiConfId, + extension: 'mp4', + protocol: protocol + }); + sources.push(mediaSource); + } + }); + } + return sources; + } + }, { + key: '_getBaseProtocol', + value: function _getBaseProtocol() { + var splittedUrl = config.baseUrl.split("/"); + var baseProtocol = void 0; + if (splittedUrl && splittedUrl.length > 0) { + baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1); + } else { + baseProtocol = "http"; + } + return baseProtocol; + } }]); return ProviderParser; @@ -3316,7 +3402,7 @@ var PlaySourceUrlBuilder = function () { playUrl += "p/" + partnerId + "/sp/" + partnerId + "00" + "/playManifest/entryId/" + entryId + "/protocol/" + protocol + "/format/" + format; if (flavorIds != "") { - playUrl += "/falvorIds/" + flavorIds; + playUrl += "/flavorIds/" + flavorIds; } else if (uiConfId != "") { playUrl += "/uiConfId/" + uiConfId; } diff --git a/dist/ovpProvider.js.map b/dist/ovpProvider.js.map index e1891f5d..887acbeb 100644 --- a/dist/ovpProvider.js.map +++ b/dist/ovpProvider.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/webpack/bootstrap 638014c152c6bb21e972","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/enums.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/./entities/media-sources.js","webpack:///providers/../~/js-logger/src/logger.js","webpack:///providers/./entities/media-entry.js","webpack:///providers/./entities/drm.js","webpack:///providers/./entities/media-format.js","webpack:///providers/./entities/media-source.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-flavor-asset.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-media-entry.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-context.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-source.js","webpack:///providers/../~/enumify/lib/enumify.js","webpack:///providers/./k-provider/ovp/loaders/data-loader-manager.js","webpack:///providers/./k-provider/ovp/loaders/media-entry-loader.js","webpack:///providers/./k-provider/ovp/loaders/session-loader.js","webpack:///providers/./k-provider/ovp/loaders/ui-config-loader.js","webpack:///providers/./k-provider/ovp/provider-parser.js","webpack:///providers/./k-provider/ovp/ovp-provider.js","webpack:///providers/./k-provider/ovp/play-source-url-builder.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-access-control-message.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-rule-action.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-ui-conf-response.js","webpack:///providers/./k-provider/ovp/services/base-entry-service.js","webpack:///providers/./k-provider/ovp/services/meta-data-service.js","webpack:///providers/./k-provider/ovp/services/session-service.js","webpack:///providers/./k-provider/ovp/services/ui-conf-service.js","webpack:///providers/./k-provider/xml-parser.js"],"names":["RequestBuilder","headers","Map","set","baseUrl","Error","url","service","action","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","value","key","setRequestHeader","send","params","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","Object","assign","Scheme","initEnum","PLAYREADY_CENC","WIDEVINE_CENC","FAIRPLAY","PLAYREADY","WIDEVINE","KalturaRuleActionType","DRM_POLICY","BLOCK","PREVIEW","LIMIT_FLAVORS","ADD_TO_STORAGE","LIMIT_DELIVERY_PROFILES","SERVE_FROM_REMOTE_SERVER","REQUEST_HOST_REGEX","LIMIT_THUMBNAIL_CAPTURE","Status","ERROR","QUEUED","CONVERTING","READY","DELETED","NOT_APPLICABLE","TEMP","WAIT_FOR_CONVERT","IMPORTING","VALIDATING","EXPORTING","MetadataObjectType","AD_CUE_POINT","ANNOTATION","CODE_CUE_POINT","THUMB_CUE_POINT","ENTRY","CATEGORY","USER","PARTNER","DYNAMIC_OBJECT","MetadataStatus","VALID","INVALID","EntryStatus","ERROR_IMPORTING","ERROR_CONVERTING","SCAN_FAILURE","IMPORT","INFECTED","PRECONVERT","PENDING","MODERATE","BLOCKED","NO_CONTENT","EntryModerationStatus","PENDING_MODERATION","APPROVED","REJECTED","FLAGGED_FOR_REVIEW","AUTO_APPROVED","EntryType","AUTOMATIC","EXTERNAL_MEDIA","MEDIA_CLIP","MIX","PLAYLIST","DATA","LIVE_STREAM","LIVE_CHANNEL","DOCUMENT","MediaType","VIDEO","IMAGE","AUDIO","LIVE_STREAM_FLASH","LIVE_STREAM_WINDOWS_MEDIA","LIVE_STREAM_REAL_MEDIA","LIVE_STREAM_QUICKTIME","MediaEntryType","UIConfType","PLAYER","CONTRIBUTION_WIZARD","SIMPLE_EDITOR","ADVANCED_EDITOR","APP_STUDIO","KRECORD","PLAYER_V3","KMC_ACCOUNT","KMC_ANALYTICS","KMC_CONTENT","KMC_DASHBOARD","KMC_LOGIN","PLAYER_SL","CLIENTSIDE_ENCODER","KMC_GENERAL","KMC_ROLES_AND_PERMISSIONS","CLIPPER","KSR","KUPLOAD","WEBCASTING","UIConfCreationMode","WIZARD","ADVANCED","config","get","SERVICE_NAME","OvpService","ks","partnerId","ovpParams","multiReq","ServiceResult","response","hasError","objectType","error","ServiceError","data","JsLogger","LoggerFactory","options","useDefaults","name","Logger","defaultLevel","DEBUG","LOG_LEVEL","INFO","TIME","WARN","OFF","logger","MultiRequestBuilder","requests","push","requestParams","serviceDef","length","stringify","err","doHttpRequest","then","MultiRequestResult","errorText","results","success","result","serviceResult","MediaSources","progressive","dash","hls","source","mediaFormat","MediaEntry","metaData","type","Unknown","Drm","licenseUrl","scheme","MediaFormat","mimeType","pathExt","wvm","mp4","mp3","MediaSource","KalturaFlavorAsset","id","flavorParamsId","fileExt","bitrate","width","height","frameRate","isOriginal","isWeb","containerFormat","videoCodecId","language","label","KalturaMediaEntry","entry","dataUrl","entryType","mediaType","flavorParamsIds","duration","KalturaMetadataListResponse","responseObj","totalCount","metas","objects","map","meta","KalturaPlaybackContext","sources","actions","messages","flavorAssets","flavor","KalturaPlaybackSource","drm","deliveryProfileId","protocols","flavorIds","protocol","returnValue","protocolsArr","split","p","DataLoaderManager","partnerID","_loaders","_multiRequest","getMultirequest","loader","execution_loader","isValid","startIndex","add","executionLoaderResponseMap","Array","from","val","index","_loadersResponseMap","execute","_multiResponse","preparedData","prepareData","loaderDataIndexes","slice","MediaEntryLoader","_response","buildRequests","_entryId","entryId","list","getPlaybackContext","_requests","mediaEntryResponse","entries","playBackContextResult","metadataListResult","SessionLoader","_partnerId","anonymousSession","UiConfigLoader","_uiConfId","uiConfId","uiConf","plugins","SUPPORTED_FORMATS","ProviderParser","mediaEntry","playbackContext","metadataList","kalturaSources","parsedSource","parseSource","metadata","parseMetaData","Image","Audio","Vod","Live","playUrl","mediaSource","hasFlavorIds","splittedUrl","baseProtocol","substring","extension","flavorIdsArr","flavors","filter","indexOf","mimetype","build","getProtocol","hasDrmData","drmParams","licenseURL","drmData","metaXml","domParser","DOMParser","xml","replace","parseFromString","metasObj","xmlToJson","metaKeys","keys","OvpProvider","_isAnonymous","_dataLoader","validateParams","fetchData","parseDataFromResponse","debug","session","uiConfID","has","sessionLoader","uiConfLoader","pluginsJson","mediaLoader","getMediaEntry","PlaySourceUrlBuilder","urlParams","endsWith","string","searchString","KalturaAccessControlMessage","KalturaBaseEntryListResponse","KalturaDrmPlaybackPluginData","KalturaMetadata","metadataProfileId","metadataProfileVersion","metadataObjectType","objectId","version","created","Date","setUTCSeconds","createdAt","updated","updatedAt","KalturaRuleAction","KalturaUiConfResponse","description","objTypeAsString","htmlParams","swfUrl","confFilePath","confFile","confFileFeatures","confVars","useCdn","tags","swfUrlVersion","html5Url","partnerTags","objType","creationMode","BaseEntryService","tag","contextDataParams","flavorTags","getEntryListReqParams","filterParams","redirectFromEntryId","responseProfileParams","fields","responseProfile","MetaDataService","objectIdEqual","metadataObjectTypeEqual","SessionService","widgetId","UiConfService","XmlParser","obj","nodeType","attributes","j","attribute","item","nodeName","nodeValue","hasChildNodes","i","childNodes","old"],"mappings":"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CA;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;;AAEA;AACA,0CAA0C,0BAA0B;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;;;;AC/PD;;AACA;;;;;;;;AAEA;;;;IAIqBM,U;;AA4BnB;;;;AA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B;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;AACA;AACA,CAAC;AACD;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,mEAAmE,gEAAgE;AACnI;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,kFAAkF,mEAAmE;AACrJ;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,mEAAmE;AAC/J;;AAEA;AACA;AACA;AACA,KAAK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","file":"ovpProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 25);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 638014c152c6bb21e972","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\nimport {Enum} from 'enumify';\n\nexport class Scheme extends Enum {\n}\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\n\nexport class KalturaRuleActionType extends Enum {\n}\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nexport class Status extends Enum {\n}\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nexport class MetadataObjectType extends Enum {\n}\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nexport class MetadataStatus extends Enum {\n}\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\n\nexport class EntryStatus extends Enum {\n}\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nexport class EntryModerationStatus extends Enum {\n}\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nexport class EntryType extends Enum {\n}\nEntryType.initEnum({\n AUTOMATIC: {value: -1},\n EXTERNAL_MEDIA: {value: \"externalMedia.externalMedia\"},\n MEDIA_CLIP: {value: 1},\n MIX: {value: 2},\n PLAYLIST: {value: 5},\n DATA: {value: 6},\n LIVE_STREAM: {value: 7},\n LIVE_CHANNEL: {value: 8},\n DOCUMENT: {value: 10}\n});\n\nexport class MediaType extends Enum {\n}\nMediaType.initEnum({\n VIDEO: {value: 1},\n IMAGE: {value: 2},\n AUDIO: {value: 5},\n LIVE_STREAM_FLASH: {value: 201},\n LIVE_STREAM_WINDOWS_MEDIA: {value: 202},\n LIVE_STREAM_REAL_MEDIA: {value: 203},\n LIVE_STREAM_QUICKTIME: {value: 204}\n});\n\n\nexport class MediaEntryType extends Enum {\n}\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nexport class UIConfType extends Enum {\n}\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nexport class UIConfCreationMode extends Enum {\n}\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/enums.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","// @flow\nimport MediaSource from './media-source'\nimport {MediaFormat} from './media-format'\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nexport default class MediaSources {\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n progressive: Array;\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n dash: Array;\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n hls: Array;\n\n /**\n * @constructor\n */\n constructor() {\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n map(source: MediaSource, mediaFormat: ?MediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-sources.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/js-logger/src/logger.js\n// module id = 8\n// module chunks = 0 1","//@flow\nimport {MediaEntryType} from '../k-provider/enums'\nimport MediaSources from './media-sources'\n\n/**\n * Media entry\n * @classdesc\n */\nexport default class MediaEntry {\n\n /**\n * @member - entry ID\n * @type {string}\n */\n id: string;\n /**\n * @member - entry sources\n * @type {MediaSources}\n */\n sources: MediaSources;\n /**\n * @member - entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - entry type\n * @type {MediaEntryType}\n */\n type: MediaEntryType;\n /**\n * @member - entry metadata\n * @type {Map}\n */\n metaData: Map;\n\n /**\n * @constructor\n */\n constructor() {\n this.metaData = new Map();\n this.type = MediaEntryType.Unknown;\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-entry.js","//@flow\n\nimport {Scheme} from '../k-provider/enums';\n\n/**\n * Drm data\n * @classdesc\n */\nexport default class Drm {\n\n /**\n * @member - license URL\n * @type {string}\n */\n licenseUrl: string;\n /**\n * @member - drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n constructor(licenseUrl: string, scheme: Scheme) {\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/drm.js","//@flow\nimport {Enum} from 'enumify';\n\nexport class MediaFormat extends Enum {\n}\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-format.js","//@flow\nimport Drm from '../entities/drm'\n\n/**\n * Media source\n * @classdesc\n */\nexport default class MediaSource {\n /**\n * @member - media source ID\n * @type {string}\n */\n id: string;\n /**\n * @member - media source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - media source mimetype\n * @type {string}\n */\n mimetype: string;\n /**\n * @member - media source drm data\n * @type {Array}\n */\n drmData: Array;\n\n /**\n * @constructor\n */\n constructor(){}\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-source.js","//@flow\nimport {Status} from '../../enums'\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nexport default class KalturaFlavorAsset {\n /**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\n id: string;\n /**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n flavorParamsId: string;\n /**\n * @member -The file extension\n * @type {string}\n */\n fileExt: string;\n /**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n bitrate: number;\n /**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n width: number;\n /**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n height: number;\n /**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n frameRate: number;\n /**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n isOriginal: boolean;\n /**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n isWeb: boolean;\n /**\n * @member - The container format\n * @type {boolean}\n */\n containerFormat: string;\n /**\n *@member - The video codec\n * @type {boolean}\n */\n videoCodecId: string;\n /**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n status: Status;\n /**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n language: string;\n /**\n * @member - The label of the flavor asset\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: any) {\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-flavor-asset.js","//@flow\nimport {EntryType, MediaType} from '../../enums'\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nexport default class KalturaMediaEntry {\n /**\n * @member - The entry id\n * @type {string}\n */\n id: string;\n /**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\n name: string;\n /**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n dataUrl: string;\n /**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n flavorParamsIds: string;\n /**\n * @member - The entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n type: EntryType;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n entryType: MediaType;\n\n /**\n * @constructor\n * @param {Object} entry The json response\n */\n constructor(entry: Object) {\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n }\n}\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-media-entry.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMetadata from './kaltura-metadata'\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nexport default class KalturaMetadataListResponse extends ServiceResult {\n totalCount: number;\n /**\n * @member -The mata data array\n * @type {Array}\n */\n metas: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.metas = [];\n responseObj.objects.map(meta => this.metas.push(new KalturaMetadata(meta)));\n }\n\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata-list-response.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaAccessControlMessage from './kaltura-access-control-message'\nimport KalturaPlaybackSource from './kaltura-playback-source'\nimport KalturaRuleAction from './kaltura-rule-action'\nimport KalturaFlavorAsset from './kaltura-flavor-asset'\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nexport default class KalturaPlaybackContext extends ServiceResult {\n /**\n * @member - The playback sources\n * @type {Array}\n */\n sources: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n actions: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n messages: Array = [];\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n flavorAssets: Array = [];\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n constructor(response: Object) {\n super(response);\n if (!this.hasError) {\n\n let messages = response.messages;\n if (messages) {\n messages.map(message => this.messages.push(new KalturaAccessControlMessage(message)));\n }\n\n let actions = response.actions;\n if (actions) {\n actions.map(action => this.actions.push(new KalturaRuleAction(action)));\n }\n\n let sources = response.sources;\n if (sources) {\n sources.map(source => this.sources.push(new KalturaPlaybackSource(source)));\n }\n\n let flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(flavor => this.flavorAssets.push(new KalturaFlavorAsset(flavor)));\n }\n }\n\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-context.js","//@flow\nimport KalturaDrmPlaybackPluginData from './kaltura-drm-playback-plugin-data'\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nexport default class KalturaPlaybackSource {\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n format: string;\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n deliveryProfileId: string;\n /**\n * @member - The source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n protocols: string;\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n flavorIds: string;\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n drm: Array = [];\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n constructor(source: Object) {\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(drm => this.drm.push(new KalturaDrmPlaybackPluginData(drm)));\n }\n\n\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n hasDrmData(): boolean {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n hasFlavorIds(): boolean {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n getProtocol(protocol: string): string {\n let returnValue: string = \"\";\n if (this.protocols && this.protocols.length > 0) {\n let protocolsArr: Array = this.protocols.split(\",\");\n protocolsArr.forEach((p) => {\n if (p == protocol) {\n returnValue = p;\n }\n });\n }\n else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-source.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/enumify/lib/enumify.js\n// module id = 18\n// module chunks = 0","//@flow\nimport OvpService from '../services/ovp-service'\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport {MultiRequestResult} from '../../multi-request-builder'\n\n/**\n * Data loaders manager\n * @classdesc\n */\nexport default class DataLoaderManager {\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n static _loadersResponseMap: Map> = new Map();\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n _multiRequest: MultiRequestBuilder;\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n _multiResponse: MultiRequestResult;\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n _loaders: Map = new Map();\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n constructor(partnerID: number, ks: string = \"\") {\n this._multiRequest = OvpService.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n add(loader: typeof ILoader, params: Object): void {\n let execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n let startIndex = this._multiRequest.requests.length;\n //Get the requests\n let requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach((request) => {\n this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n let executionLoaderResponseMap = Array.from(new Array(requests.length), (val, index) => index + startIndex);\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n fetchData(): Promise {\n return new Promise((resolve, reject) => {\n this._multiRequest.execute()\n .then(response => {\n this._multiResponse = response;\n if (!response.success) {\n reject(response);\n }\n else {\n let preparedData: Object = this.prepareData(response);\n if (preparedData.success) {\n resolve(this._loaders);\n }\n else {\n reject({success: false, data: preparedData.error});\n }\n }\n },\n err => {\n reject(err);\n });\n });\n }\n\n prepareData(response: MultiRequestResult): Object {\n this._loaders.forEach(function (loader, name) {\n let loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = (response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1));\n }\n }\n catch (err) {\n return {success: false, error: err};\n }\n });\n return {success: true, data: this._loaders};\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/data-loader-manager.js","//@flow\n\nimport RequestBuilder from '../../request-builder'\nimport BaseEntryService from '../services/base-entry-service'\nimport MetaDataService from '../services/meta-data-service'\nimport Configuration from '../config'\nimport KalturaPlaybackContext from '../response-types/kaltura-playback-context'\nimport KalturaMetadataListResponse from '../response-types/kaltura-metadata-list-response'\nimport KalturaBaseEntryListResponse from '../response-types/kaltura-base-entry-list-response'\n\nconst config = Configuration.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class MediaEntryLoader implements ILoader {\n static get name(): string {\n return \"media\";\n }\n\n _entryId: string;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n let mediaEntryResponse: KalturaBaseEntryListResponse = new KalturaBaseEntryListResponse(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);\n this._response.metadataListResult = new KalturaMetadataListResponse(response[2].data);\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(BaseEntryService.list(config.beUrl, params.ks, params.entryId));\n requests.push(BaseEntryService.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(MetaDataService.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._entryId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/media-entry-loader.js","//@flow\nimport SessionService from '../services/session-service'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class SessionLoader implements ILoader {\n static get name(): string {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n _partnerId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.ks = response[0].data.ks;\n }\n\n get response(): any {\n return this._response.ks;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(SessionService.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._partnerId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/session-loader.js","//@flow\nimport UiConfService from '../services/ui-conf-service'\nimport KalturaUiConfResponse from '../response-types/kaltura-ui-conf-response'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n\nexport default class UiConfigLoader implements ILoader {\n static get name(): string {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.uiConf = new KalturaUiConfResponse(response[0].data);\n }\n\n get response(): any {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null)\n try {\n return JSON.parse(this._response.uiConf.config).plugins;\n }\n catch (err) {\n return null;\n }\n else\n return null;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(UiConfService.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._uiConfId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/ui-config-loader.js","//@flow\nimport KalturaMediaEntry from './response-types/kaltura-media-entry'\nimport KalturaPlaybackContext from './response-types/kaltura-playback-context'\nimport KalturaPlaybackSource from './response-types/kaltura-playback-source'\nimport KalturaFlavorAsset from './response-types/kaltura-flavor-asset'\nimport KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response'\nimport PlaySourceUrlBuilder from \"./play-source-url-builder\"\nimport XmlParser from '../xml-parser'\nimport {MediaEntryType, EntryType, MediaType} from '../enums'\nimport Logger from '../../util/logger'\nimport Configuration from './config'\nimport {MediaFormat} from '../../entities/media-format'\nimport MediaEntry from '../../entities/media-entry'\nimport Drm from '../../entities/drm'\nimport MediaSource from '../../entities/media-source'\nimport MediaSources from '../../entities/media-sources'\n\nconst config = Configuration.get();\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nconst SUPPORTED_FORMATS: Map = new Map([\n [\"mpegdash\", MediaFormat.dash],\n [\"applehttp\", MediaFormat.hls],\n [\"url\", MediaFormat.mp4]\n]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\nexport default class ProviderParser {\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {any} mediaEntryResponse The media entry response\n * @returns {MediaEntry} The media entry\n * @static\n */\n static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry {\n let mediaEntry: MediaEntry = new MediaEntry();\n let entry = mediaEntryResponse.entry;\n let playbackContext = mediaEntryResponse.playBackContextResult;\n let metadataList = mediaEntryResponse.metadataListResult;\n let kalturaSources: Array = playbackContext.sources;\n let sources: MediaSources = new MediaSources();\n if (kalturaSources && kalturaSources.length > 0) {\n kalturaSources.forEach((source) => {\n let parsedSource = this.parseSource(source, ks, partnerID, uiConfId, entry, playbackContext);\n let mediaFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, mediaFormat);\n });\n }\n\n mediaEntry.sources = sources;\n\n let metadata: Map = this.parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n let type: MediaEntryType = MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case MediaType.IMAGE.value:\n type = MediaEntryType.Image;\n break;\n case MediaType.AUDIO.value:\n type = MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case EntryType.MEDIA_CLIP.value:\n type = MediaEntryType.Vod;\n break;\n case EntryType.LIVE_STREAM.value:\n case EntryType.LIVE_CHANNEL.value:\n type = MediaEntryType.Live;\n break;\n default:\n type = MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n /**\n *\n * @param {KalturaPlaybackSource} source The source\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {KalturaMediaEntry} entry The entry\n * @param {KalturaPlaybackContext} playbackContext The playback context\n * @returns {MediaSource} The parsed media source\n * @static\n */\n static parseSource(source: KalturaPlaybackSource, ks: string, partnerID: number, uiConfId: number, entry: KalturaMediaEntry, playbackContext: KalturaPlaybackContext): MediaSource {\n let playUrl: string = \"\";\n let mediaFormat = SUPPORTED_FORMATS.get(source.format);\n let mediaSource: MediaSource = new MediaSource();\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (source.hasFlavorIds()) {\n let splittedUrl: Array = config.baseUrl.split(\"/\");\n let baseProtocol: string;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n }\n else {\n baseProtocol = \"http\";\n }\n\n let extension: string = \"\";\n if (!mediaFormat) {\n let flavorIdsArr = source.flavorIds.split(\",\");\n let flavors: Array = playbackContext.flavorAssets.filter(flavor => flavorIdsArr.indexOf(flavor.id) != -1);\n if (flavors && flavors.length > 0) {\n extension = flavors[0].fileExt;\n }\n }\n else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = PlaySourceUrlBuilder.build({\n entryId: entry.id,\n flavorIds: source.flavorIds,\n format: source.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: source.getProtocol(baseProtocol)\n });\n\n }\n else {\n playUrl = source.url;\n }\n\n if (playUrl == \"\") {\n logger.error(`failed to create play url from source, discarding source: (${entry.id}_${source.deliveryProfileId}), ${source.format}.`);\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entry.id + \"_\" + source.deliveryProfileId + \",\" + source.format;\n if (source.hasDrmData()) {\n let drmParams: Array = [];\n source.drm.forEach((drm) => {\n drmParams.push(new Drm(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n return mediaSource;\n }\n\n /**\n * Ovp metadata parser\n * @function parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n */\n static parseMetaData(metadataList: KalturaMetadataListResponse): Map {\n let metadata: Object = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach((meta) => {\n let metaXml: Object;\n let domParser: DOMParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n let metasObj: Object = XmlParser.xmlToJson(metaXml);\n let metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach((key) => {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n })\n\n })\n }\n return metadata;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/provider-parser.js","//@flow\nimport Logger from '../../util/logger'\nimport ProviderParser from './provider-parser'\nimport DataLoaderManager from './loaders/data-loader-manager'\nimport MediaEntryLoader from './loaders/media-entry-loader'\nimport SessionLoader from './loaders/session-loader'\nimport UiConfigLoader from './loaders/ui-config-loader'\nimport Configuration from './config'\nimport MediaEntry from '../../entities/media-entry'\nimport MediaSources from '../../entities/media-sources'\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\ntype playerConfig = {\n id: string,\n session: Object,\n sources: MediaSources,\n duration: number,\n type: string,\n metadata: Object,\n plugins: Object\n};\n\n/**\n * Ovp provider\n * @classdesc\n */\nexport class OvpProvider {\n /**\n * @member - ks\n * @type {string}\n */\n ks: string;\n /**\n * @member - partner ID\n * @type {number}\n */\n partnerID: number;\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n _isAnonymous: boolean;\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n _dataLoader: DataLoaderManager;\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n constructor(partnerID: number, ks: string = \"\", config?: Object) {\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n Configuration.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n getConfig(entryId?: string, uiConfId?: number): Promise {\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new DataLoaderManager(this.partnerID, this.ks);\n return new Promise((resolve, reject) => {\n if (this.validateParams(entryId, uiConfId)) {\n let ks: string = this.ks;\n if (this._isAnonymous) {\n ks = \"{1:result:ks}\";\n this._dataLoader.add(SessionLoader, {partnerId: this.partnerID});\n }\n this._dataLoader.add(MediaEntryLoader, {entryId: entryId, ks: ks});\n this._dataLoader.add(UiConfigLoader, {uiConfId: uiConfId, ks: ks});\n this._dataLoader.fetchData()\n .then(response => {\n resolve(this.parseDataFromResponse(response));\n },\n err => {\n reject(err);\n });\n }\n else {\n reject({success: false, data: \"Missing mandatory parameter\"});\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n parseDataFromResponse(data: Map): Object {\n logger.debug(\"Data parsing started\");\n let config: playerConfig = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId,\n },\n sources: new MediaSources(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(SessionLoader.name)) {\n let sessionLoader = data.get(SessionLoader.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(UiConfigLoader.name)) {\n let uiConfLoader = data.get(UiConfigLoader.name);\n let pluginsJson: Object = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(MediaEntryLoader.name)) {\n let mediaLoader = data.get(MediaEntryLoader.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n let mediaEntry: MediaEntry = ProviderParser.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return (config);\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n validateParams(entryId?: string, uiConfId?: number): boolean {\n return !!entryId || !!uiConfId;\n }\n\n}\n\nexport default OvpProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/ovp-provider.js","//@flow\nimport Configuration from './config'\n\nconst config = Configuration.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\nexport default class PlaySourceUrlBuilder {\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n static build(urlParams: Object): string {\n let baseUrl: string = config.baseUrl;\n let partnerId: string = urlParams.partnerId;\n let entryId: string = urlParams.entryId;\n let ks: string = urlParams.ks;\n let uiConfId: string = urlParams.uiConfId;\n let format: string = urlParams.format;\n let protocol: string = urlParams.protocol;\n let extension: string = urlParams.extension;\n let flavorIds: string = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n let playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/falvorIds/\" + flavorIds;\n }\n else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n static endsWith(string: string, searchString: string): boolean {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/play-source-url-builder.js","//@flow\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nexport default class KalturaAccessControlMessage {\n /**\n * @member - The access control message\n * @type {string}\n */\n message: string;\n /**\n * @member - The access control message code\n * @@type {string}\n */\n code: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n this.message = data.message;\n this.code = data.code\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-access-control-message.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMediaEntry from './kaltura-media-entry'\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nexport default class KalturaBaseEntryListResponse extends ServiceResult {\n /**\n * @member - The total count\n * @type {number}\n */\n totalCount: number;\n /**\n * @member - The entries\n * @type {Array}\n */\n entries: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.entries = [];\n responseObj.objects.map(entry => this.entries.push(new KalturaMediaEntry(entry)));\n }\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","//@flow\nimport {Scheme} from '../../enums'\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nexport default class KalturaDrmPlaybackPluginData {\n /**\n * @member - The drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @member - The license URL\n * @type {string}\n */\n licenseURL: string;\n\n /**\n * @constructor\n * @param {Object} drm The json response\n */\n constructor(drm: any) {\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","//@flow\nimport {MetadataObjectType, MetadataStatus} from '../../enums'\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nexport default class KalturaMetadata {\n id: number;\n metadataProfileId: number;\n metadataProfileVersion: number;\n metadataObjectType: MetadataObjectType;\n objectId: string;\n version: number;\n created: Date;\n updated: Date;\n status: MetadataStatus;\n /**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n xml: string;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata.js","//@flow\nimport {KalturaRuleActionType} from '../../enums'\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nexport default class KalturaRuleAction {\n /**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n type: KalturaRuleActionType;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.type = data.type;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-rule-action.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport {UIConfType, UIConfCreationMode} from '../../enums';\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nexport default class KalturaUiConfResponse extends ServiceResult {\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n name: string;\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n description: string;\n objTypeAsString: string;\n width: number;\n height: number;\n htmlParams: string;\n swfUrl: string;\n confFilePath: string;\n confFile: string;\n confFileFeatures: string;\n name: string;\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n config: string;\n confVars: string;\n useCdn: boolean;\n tags: string;\n swfUrlVersion: string;\n created: Date;\n updated: Date;\n html5Url: string;\n version: string;\n partnerTags: string;\n objType: UIConfType;\n creationMode: UIConfCreationMode;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n super(data);\n if (!this.hasError) {\n this.name = data.name;\n\n this.description = data.description;\n this.objTypeAsString = data.objTypeAsString;\n this.width = data.width;\n this.height = data.height;\n this.htmlParams = data.htmlParams;\n this.swfUrl = data.swfUrl;\n this.confFilePath = data.confFilePath;\n this.confFile = data.confFile;\n this.confFileFeatures = data.confFileFeatures;\n this.config = data.config;\n this.confVars = data.confVars;\n this.useCdn = data.useCdn;\n this.tags = data.tags;\n this.swfUrlVersion = data.swfUrlVersion;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.html5Url = data.description;\n this.version = data.description;\n this.partnerTags = data.description;\n this.objType = data.description;\n this.creationMode = data.description;\n\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-ui-conf-response.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\nexport default class BaseEntryService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static getPlaybackContext(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n let contextDataParams = {objectType: \"KalturaContextDataParams\", flavorTags: \"all\"};\n let params = {entryId: entryId, ks: ks, contextDataParams: contextDataParams};\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n static getEntryListReqParams(entryId: string, ks: string): any {\n let filterParams = {redirectFromEntryId: entryId};\n let responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return {ks: ks, filter: filterParams, responseProfile: responseProfileParams};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/base-entry-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\nexport default class MetaDataService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n let filter = {objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\"};\n let params = {filter: filter, ks: ks};\n request.params = params;\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/meta-data-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\nexport default class SessionService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static anonymousSession(baseUrl: string, partnerId: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = {widgetId: \"_\" + partnerId};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/session-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\nexport default class UiConfService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static get(baseUrl: string, ks: string, uiConfID: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n let responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = {id: uiConfID, responseProfile: responseProfileParams, ks: ks};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ui-conf-service.js","//@flow\n\n/**\n * Xml parser\n * @classdesc\n */\nexport default class XmlParser {\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n static xmlToJson(xml: Object) {\n let obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n let attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n }\n else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n let item = xml.childNodes.item(i);\n let nodeName = item.nodeName;\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n }\n else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n let old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/xml-parser.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/webpack/bootstrap 40363af1b4965fde30fb","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/enums.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/./entities/media-sources.js","webpack:///providers/../~/js-logger/src/logger.js","webpack:///providers/./entities/media-entry.js","webpack:///providers/./entities/drm.js","webpack:///providers/./entities/media-format.js","webpack:///providers/./entities/media-source.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-flavor-asset.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-media-entry.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-context.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-source.js","webpack:///providers/../~/enumify/lib/enumify.js","webpack:///providers/./k-provider/ovp/loaders/data-loader-manager.js","webpack:///providers/./k-provider/ovp/loaders/media-entry-loader.js","webpack:///providers/./k-provider/ovp/loaders/session-loader.js","webpack:///providers/./k-provider/ovp/loaders/ui-config-loader.js","webpack:///providers/./k-provider/ovp/provider-parser.js","webpack:///providers/./k-provider/ovp/ovp-provider.js","webpack:///providers/./k-provider/ovp/play-source-url-builder.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-access-control-message.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-rule-action.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-ui-conf-response.js","webpack:///providers/./k-provider/ovp/services/base-entry-service.js","webpack:///providers/./k-provider/ovp/services/meta-data-service.js","webpack:///providers/./k-provider/ovp/services/session-service.js","webpack:///providers/./k-provider/ovp/services/ui-conf-service.js","webpack:///providers/./k-provider/xml-parser.js"],"names":["RequestBuilder","headers","Map","set","baseUrl","Error","url","service","action","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","value","key","setRequestHeader","send","params","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","Object","assign","Scheme","initEnum","PLAYREADY_CENC","WIDEVINE_CENC","FAIRPLAY","PLAYREADY","WIDEVINE","KalturaRuleActionType","DRM_POLICY","BLOCK","PREVIEW","LIMIT_FLAVORS","ADD_TO_STORAGE","LIMIT_DELIVERY_PROFILES","SERVE_FROM_REMOTE_SERVER","REQUEST_HOST_REGEX","LIMIT_THUMBNAIL_CAPTURE","Status","ERROR","QUEUED","CONVERTING","READY","DELETED","NOT_APPLICABLE","TEMP","WAIT_FOR_CONVERT","IMPORTING","VALIDATING","EXPORTING","MetadataObjectType","AD_CUE_POINT","ANNOTATION","CODE_CUE_POINT","THUMB_CUE_POINT","ENTRY","CATEGORY","USER","PARTNER","DYNAMIC_OBJECT","MetadataStatus","VALID","INVALID","EntryStatus","ERROR_IMPORTING","ERROR_CONVERTING","SCAN_FAILURE","IMPORT","INFECTED","PRECONVERT","PENDING","MODERATE","BLOCKED","NO_CONTENT","EntryModerationStatus","PENDING_MODERATION","APPROVED","REJECTED","FLAGGED_FOR_REVIEW","AUTO_APPROVED","EntryType","AUTOMATIC","EXTERNAL_MEDIA","MEDIA_CLIP","MIX","PLAYLIST","DATA","LIVE_STREAM","LIVE_CHANNEL","DOCUMENT","MediaType","VIDEO","IMAGE","AUDIO","LIVE_STREAM_FLASH","LIVE_STREAM_WINDOWS_MEDIA","LIVE_STREAM_REAL_MEDIA","LIVE_STREAM_QUICKTIME","MediaEntryType","UIConfType","PLAYER","CONTRIBUTION_WIZARD","SIMPLE_EDITOR","ADVANCED_EDITOR","APP_STUDIO","KRECORD","PLAYER_V3","KMC_ACCOUNT","KMC_ANALYTICS","KMC_CONTENT","KMC_DASHBOARD","KMC_LOGIN","PLAYER_SL","CLIENTSIDE_ENCODER","KMC_GENERAL","KMC_ROLES_AND_PERMISSIONS","CLIPPER","KSR","KUPLOAD","WEBCASTING","UIConfCreationMode","WIZARD","ADVANCED","config","get","SERVICE_NAME","OvpService","ks","partnerId","ovpParams","multiReq","ServiceResult","response","hasError","objectType","error","ServiceError","data","JsLogger","LoggerFactory","options","useDefaults","name","Logger","defaultLevel","DEBUG","LOG_LEVEL","INFO","TIME","WARN","OFF","logger","MultiRequestBuilder","requests","push","requestParams","serviceDef","length","stringify","err","doHttpRequest","then","MultiRequestResult","errorText","results","success","result","serviceResult","MediaSources","progressive","dash","hls","source","mediaFormat","MediaEntry","metaData","type","Unknown","Drm","licenseUrl","scheme","MediaFormat","mimeType","pathExt","wvm","mp4","mp3","MediaSource","KalturaFlavorAsset","id","flavorParamsId","fileExt","bitrate","width","height","frameRate","isOriginal","isWeb","containerFormat","videoCodecId","language","label","KalturaMediaEntry","entry","dataUrl","entryType","mediaType","flavorParamsIds","duration","KalturaMetadataListResponse","responseObj","totalCount","metas","objects","map","meta","KalturaPlaybackContext","sources","actions","messages","flavorAssets","flavor","KalturaPlaybackSource","drm","deliveryProfileId","protocols","flavorIds","protocol","returnValue","protocolsArr","split","p","DataLoaderManager","partnerID","_loaders","_multiRequest","getMultirequest","loader","execution_loader","isValid","startIndex","add","executionLoaderResponseMap","Array","from","val","index","_loadersResponseMap","execute","_multiResponse","preparedData","prepareData","loaderDataIndexes","slice","MediaEntryLoader","_response","buildRequests","_entryId","entryId","list","getPlaybackContext","_requests","mediaEntryResponse","entries","playBackContextResult","metadataListResult","SessionLoader","_partnerId","anonymousSession","UiConfigLoader","_uiConfId","uiConfId","uiConf","plugins","SUPPORTED_FORMATS","ProviderParser","mediaEntry","playbackContext","metadataList","kalturaSources","_getParsedSources","metadata","_parseMetaData","Image","Audio","Vod","Live","parseAdaptiveSources","_isProgressiveSource","parsedSource","_parseAdaptiveSource","sourceFormat","parseProgressiveSources","progressiveSource","find","_parseProgressiveSources","playUrl","mediaSource","hasFlavorIds","extension","flavorIdsArr","flavors","filter","indexOf","mimetype","build","getProtocol","_getBaseProtocol","hasDrmData","drmParams","licenseURL","drmData","metaXml","domParser","DOMParser","xml","replace","parseFromString","metasObj","xmlToJson","metaKeys","keys","kalturaSource","sourceId","bandwidth","splittedUrl","baseProtocol","substring","OvpProvider","_isAnonymous","_dataLoader","validateParams","fetchData","parseDataFromResponse","debug","session","uiConfID","has","sessionLoader","uiConfLoader","pluginsJson","mediaLoader","getMediaEntry","PlaySourceUrlBuilder","urlParams","endsWith","string","searchString","KalturaAccessControlMessage","KalturaBaseEntryListResponse","KalturaDrmPlaybackPluginData","KalturaMetadata","metadataProfileId","metadataProfileVersion","metadataObjectType","objectId","version","created","Date","setUTCSeconds","createdAt","updated","updatedAt","KalturaRuleAction","KalturaUiConfResponse","description","objTypeAsString","htmlParams","swfUrl","confFilePath","confFile","confFileFeatures","confVars","useCdn","tags","swfUrlVersion","html5Url","partnerTags","objType","creationMode","BaseEntryService","tag","contextDataParams","flavorTags","getEntryListReqParams","filterParams","redirectFromEntryId","responseProfileParams","fields","responseProfile","MetaDataService","objectIdEqual","metadataObjectTypeEqual","SessionService","widgetId","UiConfService","XmlParser","obj","nodeType","attributes","j","attribute","item","nodeName","nodeValue","hasChildNodes","i","childNodes","old"],"mappings":"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CA;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;;AAEA;AACA,0CAA0C,0BAA0B;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;;;;AC/PD;;AACA;;;;;;;;AAEA;;;;IAIqBM,U;;AA4BnB;;;;AA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AAP;AACD;;;;;;kBAvFkBN,qB;;;;;;;ACPrB;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;AACA;AACA,CAAC;AACD;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,mEAAmE,gEAAgE;AACnI;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,kFAAkF,mEAAmE;AACrJ;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,mE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","file":"ovpProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 25);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 40363af1b4965fde30fb","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\nimport {Enum} from 'enumify';\n\nexport class Scheme extends Enum {\n}\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\n\nexport class KalturaRuleActionType extends Enum {\n}\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nexport class Status extends Enum {\n}\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nexport class MetadataObjectType extends Enum {\n}\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nexport class MetadataStatus extends Enum {\n}\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\n\nexport class EntryStatus extends Enum {\n}\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nexport class EntryModerationStatus extends Enum {\n}\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nexport class EntryType extends Enum {\n}\nEntryType.initEnum({\n AUTOMATIC: {value: -1},\n EXTERNAL_MEDIA: {value: \"externalMedia.externalMedia\"},\n MEDIA_CLIP: {value: 1},\n MIX: {value: 2},\n PLAYLIST: {value: 5},\n DATA: {value: 6},\n LIVE_STREAM: {value: 7},\n LIVE_CHANNEL: {value: 8},\n DOCUMENT: {value: 10}\n});\n\nexport class MediaType extends Enum {\n}\nMediaType.initEnum({\n VIDEO: {value: 1},\n IMAGE: {value: 2},\n AUDIO: {value: 5},\n LIVE_STREAM_FLASH: {value: 201},\n LIVE_STREAM_WINDOWS_MEDIA: {value: 202},\n LIVE_STREAM_REAL_MEDIA: {value: 203},\n LIVE_STREAM_QUICKTIME: {value: 204}\n});\n\n\nexport class MediaEntryType extends Enum {\n}\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nexport class UIConfType extends Enum {\n}\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nexport class UIConfCreationMode extends Enum {\n}\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/enums.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","// @flow\nimport MediaSource from './media-source'\nimport {MediaFormat} from './media-format'\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nexport default class MediaSources {\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n progressive: Array;\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n dash: Array;\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n hls: Array;\n\n /**\n * @constructor\n */\n constructor() {\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n map(source: MediaSource, mediaFormat: ?MediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-sources.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/js-logger/src/logger.js\n// module id = 8\n// module chunks = 0 1","//@flow\nimport {MediaEntryType} from '../k-provider/enums'\nimport MediaSources from './media-sources'\n\n/**\n * Media entry\n * @classdesc\n */\nexport default class MediaEntry {\n\n /**\n * @member - entry ID\n * @type {string}\n */\n id: string;\n /**\n * @member - entry sources\n * @type {MediaSources}\n */\n sources: MediaSources;\n /**\n * @member - entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - entry type\n * @type {MediaEntryType}\n */\n type: MediaEntryType;\n /**\n * @member - entry metadata\n * @type {Map}\n */\n metaData: Map;\n\n /**\n * @constructor\n */\n constructor() {\n this.metaData = new Map();\n this.type = MediaEntryType.Unknown;\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-entry.js","//@flow\n\nimport {Scheme} from '../k-provider/enums';\n\n/**\n * Drm data\n * @classdesc\n */\nexport default class Drm {\n\n /**\n * @member - license URL\n * @type {string}\n */\n licenseUrl: string;\n /**\n * @member - drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n constructor(licenseUrl: string, scheme: Scheme) {\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/drm.js","//@flow\nimport {Enum} from 'enumify';\n\nexport class MediaFormat extends Enum {\n}\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-format.js","//@flow\nimport Drm from '../entities/drm'\n\n/**\n * Media source\n * @classdesc\n */\nexport default class MediaSource {\n /**\n * @member - media source ID\n * @type {string}\n */\n id: string;\n /**\n * @member - media source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - media source mimetype\n * @type {string}\n */\n mimetype: string;\n /**\n * @member - media source drm data\n * @type {Array}\n */\n drmData: Array;\n /**\n * @member - media source bandwidth\n * @type {number}\n */\n bandwidth: number;\n /**\n * @member - media source width\n * @type {number}\n */\n width: number;\n /**\n * @member - media source height\n * @type {number}\n */\n height: number;\n /**\n * @member - media source label\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n */\n constructor(){}\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-source.js","//@flow\nimport {Status} from '../../enums'\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nexport default class KalturaFlavorAsset {\n /**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\n id: string;\n /**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n flavorParamsId: string;\n /**\n * @member -The file extension\n * @type {string}\n */\n fileExt: string;\n /**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n bitrate: number;\n /**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n width: number;\n /**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n height: number;\n /**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n frameRate: number;\n /**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n isOriginal: boolean;\n /**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n isWeb: boolean;\n /**\n * @member - The container format\n * @type {boolean}\n */\n containerFormat: string;\n /**\n *@member - The video codec\n * @type {boolean}\n */\n videoCodecId: string;\n /**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n status: Status;\n /**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n language: string;\n /**\n * @member - The label of the flavor asset\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: any) {\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-flavor-asset.js","//@flow\nimport {EntryType, MediaType} from '../../enums'\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nexport default class KalturaMediaEntry {\n /**\n * @member - The entry id\n * @type {string}\n */\n id: string;\n /**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\n name: string;\n /**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n dataUrl: string;\n /**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n flavorParamsIds: string;\n /**\n * @member - The entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n type: EntryType;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n entryType: MediaType;\n\n /**\n * @constructor\n * @param {Object} entry The json response\n */\n constructor(entry: Object) {\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n }\n}\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-media-entry.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMetadata from './kaltura-metadata'\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nexport default class KalturaMetadataListResponse extends ServiceResult {\n totalCount: number;\n /**\n * @member -The mata data array\n * @type {Array}\n */\n metas: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.metas = [];\n responseObj.objects.map(meta => this.metas.push(new KalturaMetadata(meta)));\n }\n\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata-list-response.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaAccessControlMessage from './kaltura-access-control-message'\nimport KalturaPlaybackSource from './kaltura-playback-source'\nimport KalturaRuleAction from './kaltura-rule-action'\nimport KalturaFlavorAsset from './kaltura-flavor-asset'\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nexport default class KalturaPlaybackContext extends ServiceResult {\n /**\n * @member - The playback sources\n * @type {Array}\n */\n sources: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n actions: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n messages: Array = [];\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n flavorAssets: Array = [];\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n constructor(response: Object) {\n super(response);\n if (!this.hasError) {\n\n let messages = response.messages;\n if (messages) {\n messages.map(message => this.messages.push(new KalturaAccessControlMessage(message)));\n }\n\n let actions = response.actions;\n if (actions) {\n actions.map(action => this.actions.push(new KalturaRuleAction(action)));\n }\n\n let sources = response.sources;\n if (sources) {\n sources.map(source => this.sources.push(new KalturaPlaybackSource(source)));\n }\n\n let flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(flavor => this.flavorAssets.push(new KalturaFlavorAsset(flavor)));\n }\n }\n\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-context.js","//@flow\nimport KalturaDrmPlaybackPluginData from './kaltura-drm-playback-plugin-data'\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nexport default class KalturaPlaybackSource {\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n format: string;\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n deliveryProfileId: string;\n /**\n * @member - The source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n protocols: string;\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n flavorIds: string;\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n drm: Array = [];\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n constructor(source: Object) {\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(drm => this.drm.push(new KalturaDrmPlaybackPluginData(drm)));\n }\n\n\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n hasDrmData(): boolean {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n hasFlavorIds(): boolean {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n getProtocol(protocol: string): string {\n let returnValue: string = \"\";\n if (this.protocols && this.protocols.length > 0) {\n let protocolsArr: Array = this.protocols.split(\",\");\n protocolsArr.forEach((p) => {\n if (p == protocol) {\n returnValue = p;\n }\n });\n }\n else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-source.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/enumify/lib/enumify.js\n// module id = 18\n// module chunks = 0","//@flow\nimport OvpService from '../services/ovp-service'\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport {MultiRequestResult} from '../../multi-request-builder'\n\n/**\n * Data loaders manager\n * @classdesc\n */\nexport default class DataLoaderManager {\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n static _loadersResponseMap: Map> = new Map();\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n _multiRequest: MultiRequestBuilder;\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n _multiResponse: MultiRequestResult;\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n _loaders: Map = new Map();\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n constructor(partnerID: number, ks: string = \"\") {\n this._multiRequest = OvpService.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n add(loader: typeof ILoader, params: Object): void {\n let execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n let startIndex = this._multiRequest.requests.length;\n //Get the requests\n let requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach((request) => {\n this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n let executionLoaderResponseMap = Array.from(new Array(requests.length), (val, index) => index + startIndex);\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n fetchData(): Promise {\n return new Promise((resolve, reject) => {\n this._multiRequest.execute()\n .then(response => {\n this._multiResponse = response;\n if (!response.success) {\n reject(response);\n }\n else {\n let preparedData: Object = this.prepareData(response);\n if (preparedData.success) {\n resolve(this._loaders);\n }\n else {\n reject({success: false, data: preparedData.error});\n }\n }\n },\n err => {\n reject(err);\n });\n });\n }\n\n prepareData(response: MultiRequestResult): Object {\n this._loaders.forEach(function (loader, name) {\n let loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = (response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1));\n }\n }\n catch (err) {\n return {success: false, error: err};\n }\n });\n return {success: true, data: this._loaders};\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/data-loader-manager.js","//@flow\n\nimport RequestBuilder from '../../request-builder'\nimport BaseEntryService from '../services/base-entry-service'\nimport MetaDataService from '../services/meta-data-service'\nimport Configuration from '../config'\nimport KalturaPlaybackContext from '../response-types/kaltura-playback-context'\nimport KalturaMetadataListResponse from '../response-types/kaltura-metadata-list-response'\nimport KalturaBaseEntryListResponse from '../response-types/kaltura-base-entry-list-response'\n\nconst config = Configuration.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class MediaEntryLoader implements ILoader {\n static get name(): string {\n return \"media\";\n }\n\n _entryId: string;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n let mediaEntryResponse: KalturaBaseEntryListResponse = new KalturaBaseEntryListResponse(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);\n this._response.metadataListResult = new KalturaMetadataListResponse(response[2].data);\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(BaseEntryService.list(config.beUrl, params.ks, params.entryId));\n requests.push(BaseEntryService.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(MetaDataService.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._entryId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/media-entry-loader.js","//@flow\nimport SessionService from '../services/session-service'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class SessionLoader implements ILoader {\n static get name(): string {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n _partnerId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.ks = response[0].data.ks;\n }\n\n get response(): any {\n return this._response.ks;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(SessionService.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._partnerId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/session-loader.js","//@flow\nimport UiConfService from '../services/ui-conf-service'\nimport KalturaUiConfResponse from '../response-types/kaltura-ui-conf-response'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n\nexport default class UiConfigLoader implements ILoader {\n static get name(): string {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.uiConf = new KalturaUiConfResponse(response[0].data);\n }\n\n get response(): any {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null)\n try {\n return JSON.parse(this._response.uiConf.config).plugins;\n }\n catch (err) {\n return null;\n }\n else\n return null;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(UiConfService.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._uiConfId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/ui-config-loader.js","//@flow\nimport KalturaMediaEntry from './response-types/kaltura-media-entry'\nimport KalturaPlaybackContext from './response-types/kaltura-playback-context'\nimport KalturaPlaybackSource from './response-types/kaltura-playback-source'\nimport KalturaFlavorAsset from './response-types/kaltura-flavor-asset'\nimport KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response'\nimport PlaySourceUrlBuilder from \"./play-source-url-builder\"\nimport XmlParser from '../xml-parser'\nimport {MediaEntryType, EntryType, MediaType} from '../enums'\nimport Logger from '../../util/logger'\nimport Configuration from './config'\nimport {MediaFormat} from '../../entities/media-format'\nimport MediaEntry from '../../entities/media-entry'\nimport Drm from '../../entities/drm'\nimport MediaSource from '../../entities/media-source'\nimport MediaSources from '../../entities/media-sources'\n\nconst config = Configuration.get();\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nconst SUPPORTED_FORMATS: Map = new Map([\n [\"mpegdash\", MediaFormat.dash],\n [\"applehttp\", MediaFormat.hls],\n [\"url\", MediaFormat.mp4]\n]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\nexport default class ProviderParser {\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {any} mediaEntryResponse The media entry response\n * @returns {MediaEntry} The media entry\n * @static\n * @public\n */\n static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry {\n let mediaEntry: MediaEntry = new MediaEntry();\n let entry = mediaEntryResponse.entry;\n let playbackContext = mediaEntryResponse.playBackContextResult;\n let metadataList = mediaEntryResponse.metadataListResult;\n let kalturaSources: Array = playbackContext.sources;\n let sources: MediaSources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n let metadata: Map = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n let type: MediaEntryType = MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case MediaType.IMAGE.value:\n type = MediaEntryType.Image;\n break;\n case MediaType.AUDIO.value:\n type = MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case EntryType.MEDIA_CLIP.value:\n type = MediaEntryType.Vod;\n break;\n case EntryType.LIVE_STREAM.value:\n case EntryType.LIVE_CHANNEL.value:\n type = MediaEntryType.Live;\n break;\n default:\n type = MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry, playbackContext): MediaSources {\n let sources: MediaSources = new MediaSources();\n\n let parseAdaptiveSources = function () {\n kalturaSources.forEach((source) => {\n if (ProviderParser._isProgressiveSource(source) === false) {\n let parsedSource = ProviderParser._parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext);\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n }\n });\n };\n\n let parseProgressiveSources = function () {\n let progressiveSource = kalturaSources.find(source => ProviderParser._isProgressiveSource(source));\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n static _isProgressiveSource(source) {\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n *\n * @param {KalturaPlaybackSource} source The source\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {KalturaMediaEntry} entry The entry\n * @param {KalturaPlaybackContext} playbackContext The playback context\n * @returns {MediaSource} The parsed media source\n * @static\n * @private\n */\n static _parseAdaptiveSource(source: KalturaPlaybackSource, ks: string, partnerID: number, uiConfId: number, entry: KalturaMediaEntry, playbackContext: KalturaPlaybackContext): MediaSource {\n let playUrl: string = \"\";\n let mediaFormat = SUPPORTED_FORMATS.get(source.format);\n let mediaSource: MediaSource = new MediaSource();\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (source.hasFlavorIds()) {\n let extension: string = \"\";\n if (!mediaFormat) {\n let flavorIdsArr = source.flavorIds.split(\",\");\n let flavors: Array = playbackContext.flavorAssets.filter(flavor => flavorIdsArr.indexOf(flavor.id) != -1);\n if (flavors && flavors.length > 0) {\n extension = flavors[0].fileExt;\n }\n }\n else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = PlaySourceUrlBuilder.build({\n entryId: entry.id,\n flavorIds: source.flavorIds,\n format: source.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: source.getProtocol(this._getBaseProtocol())\n });\n\n }\n else {\n playUrl = source.url;\n }\n\n if (playUrl == \"\") {\n logger.error(`failed to create play url from source, discarding source: (${entry.id}_${source.deliveryProfileId}), ${source.format}.`);\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entry.id + \"_\" + source.deliveryProfileId + \",\" + source.format;\n if (source.hasDrmData()) {\n let drmParams: Array = [];\n source.drm.forEach((drm) => {\n drmParams.push(new Drm(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n return mediaSource;\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n static _parseMetaData(metadataList: KalturaMetadataListResponse): Map {\n let metadata: Object = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach((meta) => {\n let metaXml: Object;\n let domParser: DOMParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n let metasObj: Object = XmlParser.xmlToJson(metaXml);\n let metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach((key) => {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n })\n\n })\n }\n return metadata;\n }\n\n static _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entry) {\n let sources = [];\n if (kalturaSource) {\n let protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n let format = kalturaSource.format;\n let sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map((flavor) => {\n if (flavor.height && flavor.width) {\n let mediaSource: MediaSource = new MediaSource();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = PlaySourceUrlBuilder.build({\n entryId: entry.id,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n static _getBaseProtocol(): string {\n let splittedUrl: Array = config.baseUrl.split(\"/\");\n let baseProtocol: string;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n }\n else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/provider-parser.js","//@flow\nimport Logger from '../../util/logger'\nimport ProviderParser from './provider-parser'\nimport DataLoaderManager from './loaders/data-loader-manager'\nimport MediaEntryLoader from './loaders/media-entry-loader'\nimport SessionLoader from './loaders/session-loader'\nimport UiConfigLoader from './loaders/ui-config-loader'\nimport Configuration from './config'\nimport MediaEntry from '../../entities/media-entry'\nimport MediaSources from '../../entities/media-sources'\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\ntype playerConfig = {\n id: string,\n session: Object,\n sources: MediaSources,\n duration: number,\n type: string,\n metadata: Object,\n plugins: Object\n};\n\n/**\n * Ovp provider\n * @classdesc\n */\nexport class OvpProvider {\n /**\n * @member - ks\n * @type {string}\n */\n ks: string;\n /**\n * @member - partner ID\n * @type {number}\n */\n partnerID: number;\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n _isAnonymous: boolean;\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n _dataLoader: DataLoaderManager;\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n constructor(partnerID: number, ks: string = \"\", config?: Object) {\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n Configuration.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n getConfig(entryId?: string, uiConfId?: number): Promise {\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new DataLoaderManager(this.partnerID, this.ks);\n return new Promise((resolve, reject) => {\n if (this.validateParams(entryId, uiConfId)) {\n let ks: string = this.ks;\n if (this._isAnonymous) {\n ks = \"{1:result:ks}\";\n this._dataLoader.add(SessionLoader, {partnerId: this.partnerID});\n }\n this._dataLoader.add(MediaEntryLoader, {entryId: entryId, ks: ks});\n this._dataLoader.add(UiConfigLoader, {uiConfId: uiConfId, ks: ks});\n this._dataLoader.fetchData()\n .then(response => {\n resolve(this.parseDataFromResponse(response));\n },\n err => {\n reject(err);\n });\n }\n else {\n reject({success: false, data: \"Missing mandatory parameter\"});\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n parseDataFromResponse(data: Map): Object {\n logger.debug(\"Data parsing started\");\n let config: playerConfig = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId,\n },\n sources: new MediaSources(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(SessionLoader.name)) {\n let sessionLoader = data.get(SessionLoader.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(UiConfigLoader.name)) {\n let uiConfLoader = data.get(UiConfigLoader.name);\n let pluginsJson: Object = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(MediaEntryLoader.name)) {\n let mediaLoader = data.get(MediaEntryLoader.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n let mediaEntry: MediaEntry = ProviderParser.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return (config);\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n validateParams(entryId?: string, uiConfId?: number): boolean {\n return !!entryId || !!uiConfId;\n }\n\n}\n\nexport default OvpProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/ovp-provider.js","//@flow\nimport Configuration from './config'\n\nconst config = Configuration.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\nexport default class PlaySourceUrlBuilder {\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n static build(urlParams: Object): string {\n let baseUrl: string = config.baseUrl;\n let partnerId: string = urlParams.partnerId;\n let entryId: string = urlParams.entryId;\n let ks: string = urlParams.ks;\n let uiConfId: string = urlParams.uiConfId;\n let format: string = urlParams.format;\n let protocol: string = urlParams.protocol;\n let extension: string = urlParams.extension;\n let flavorIds: string = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n let playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n }\n else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n static endsWith(string: string, searchString: string): boolean {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/play-source-url-builder.js","//@flow\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nexport default class KalturaAccessControlMessage {\n /**\n * @member - The access control message\n * @type {string}\n */\n message: string;\n /**\n * @member - The access control message code\n * @@type {string}\n */\n code: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n this.message = data.message;\n this.code = data.code\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-access-control-message.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMediaEntry from './kaltura-media-entry'\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nexport default class KalturaBaseEntryListResponse extends ServiceResult {\n /**\n * @member - The total count\n * @type {number}\n */\n totalCount: number;\n /**\n * @member - The entries\n * @type {Array}\n */\n entries: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.entries = [];\n responseObj.objects.map(entry => this.entries.push(new KalturaMediaEntry(entry)));\n }\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","//@flow\nimport {Scheme} from '../../enums'\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nexport default class KalturaDrmPlaybackPluginData {\n /**\n * @member - The drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @member - The license URL\n * @type {string}\n */\n licenseURL: string;\n\n /**\n * @constructor\n * @param {Object} drm The json response\n */\n constructor(drm: any) {\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","//@flow\nimport {MetadataObjectType, MetadataStatus} from '../../enums'\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nexport default class KalturaMetadata {\n id: number;\n metadataProfileId: number;\n metadataProfileVersion: number;\n metadataObjectType: MetadataObjectType;\n objectId: string;\n version: number;\n created: Date;\n updated: Date;\n status: MetadataStatus;\n /**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n xml: string;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata.js","//@flow\nimport {KalturaRuleActionType} from '../../enums'\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nexport default class KalturaRuleAction {\n /**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n type: KalturaRuleActionType;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.type = data.type;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-rule-action.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport {UIConfType, UIConfCreationMode} from '../../enums';\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nexport default class KalturaUiConfResponse extends ServiceResult {\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n name: string;\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n description: string;\n objTypeAsString: string;\n width: number;\n height: number;\n htmlParams: string;\n swfUrl: string;\n confFilePath: string;\n confFile: string;\n confFileFeatures: string;\n name: string;\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n config: string;\n confVars: string;\n useCdn: boolean;\n tags: string;\n swfUrlVersion: string;\n created: Date;\n updated: Date;\n html5Url: string;\n version: string;\n partnerTags: string;\n objType: UIConfType;\n creationMode: UIConfCreationMode;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n super(data);\n if (!this.hasError) {\n this.name = data.name;\n\n this.description = data.description;\n this.objTypeAsString = data.objTypeAsString;\n this.width = data.width;\n this.height = data.height;\n this.htmlParams = data.htmlParams;\n this.swfUrl = data.swfUrl;\n this.confFilePath = data.confFilePath;\n this.confFile = data.confFile;\n this.confFileFeatures = data.confFileFeatures;\n this.config = data.config;\n this.confVars = data.confVars;\n this.useCdn = data.useCdn;\n this.tags = data.tags;\n this.swfUrlVersion = data.swfUrlVersion;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.html5Url = data.description;\n this.version = data.description;\n this.partnerTags = data.description;\n this.objType = data.description;\n this.creationMode = data.description;\n\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-ui-conf-response.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\nexport default class BaseEntryService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static getPlaybackContext(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n let contextDataParams = {objectType: \"KalturaContextDataParams\", flavorTags: \"all\"};\n let params = {entryId: entryId, ks: ks, contextDataParams: contextDataParams};\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n static getEntryListReqParams(entryId: string, ks: string): any {\n let filterParams = {redirectFromEntryId: entryId};\n let responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return {ks: ks, filter: filterParams, responseProfile: responseProfileParams};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/base-entry-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\nexport default class MetaDataService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n let filter = {objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\"};\n let params = {filter: filter, ks: ks};\n request.params = params;\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/meta-data-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\nexport default class SessionService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static anonymousSession(baseUrl: string, partnerId: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = {widgetId: \"_\" + partnerId};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/session-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\nexport default class UiConfService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static get(baseUrl: string, ks: string, uiConfID: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n let responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = {id: uiConfID, responseProfile: responseProfileParams, ks: ks};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ui-conf-service.js","//@flow\n\n/**\n * Xml parser\n * @classdesc\n */\nexport default class XmlParser {\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n static xmlToJson(xml: Object) {\n let obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n let attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n }\n else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n let item = xml.childNodes.item(i);\n let nodeName = item.nodeName;\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n }\n else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n let old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/xml-parser.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/ovpProvider.min.js b/dist/ovpProvider.min.js index a382ecc1..ccc8c403 100644 --- a/dist/ovpProvider.min.js +++ b/dist/ovpProvider.min.js @@ -3,5 +3,5 @@ * Jonny Reeves, http://jonnyreeves.co.uk/ * js-logger may be freely distributed under the MIT license. */ -!function(a){"use strict";var i={};i.VERSION="1.3.0";var u,s={},c=function(e,t){return function(){return t.apply(e,arguments)}},l=function(){var e,t,n=arguments,r=n[0];for(t=1;t=t.value},debug:function(){this.invoke(i.DEBUG,arguments)},info:function(){this.invoke(i.INFO,arguments)},warn:function(){this.invoke(i.WARN,arguments)},error:function(){this.invoke(i.ERROR,arguments)},time:function(e){"string"==typeof e&&e.length>0&&this.invoke(i.TIME,[e,"start"])},timeEnd:function(e){"string"==typeof e&&e.length>0&&this.invoke(i.TIME,[e,"end"])},invoke:function(e,t){u&&this.enabledFor(e)&&u(t,l({level:e},this.context))}};var d=new p({filterLevel:i.OFF});!function(){var e=i;e.enabledFor=c(d,d.enabledFor),e.debug=c(d,d.debug),e.time=c(d,d.time),e.timeEnd=c(d,d.timeEnd),e.info=c(d,d.info),e.warn=c(d,d.warn),e.error=c(d,d.error),e.log=e.info}(),i.setHandler=function(e){u=e},i.setLevel=function(e){d.setLevel(e);for(var t in s)s.hasOwnProperty(t)&&s[t].setLevel(e)},i.get=function(e){return s[e]||(s[e]=new p(l({name:e},d.context)))},i.createDefaultHandler=function(e){e=e||{},e.formatter=e.formatter||function(e,t){t.name&&e.unshift("["+t.name+"]")};var t={},n=function(e,t){Function.prototype.apply.call(e,console,t)};return"undefined"==typeof console?function(){}:function(r,o){r=Array.prototype.slice.call(r);var a,u=console.log;o.level===i.TIME?(a=(o.name?"["+o.name+"] ":"")+r[0],"start"===r[1]?console.time?console.time(a):t[a]=(new Date).getTime():console.timeEnd?console.timeEnd(a):n(u,[a+": "+((new Date).getTime()-t[a])+"ms"])):(o.level===i.WARN&&console.warn?u=console.warn:o.level===i.ERROR&&console.error?u=console.error:o.level===i.INFO&&console.info&&(u=console.info),e.formatter(r,o),n(u,r))}},i.useDefaults=function(e){i.setLevel(e&&e.defaultLevel||i.DEBUG),i.setHandler(i.createDefaultHandler(e))},r=i,void 0!==(o="function"==typeof r?r.call(t,n,t,e):r)&&(e.exports=o)}()},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(2),a=n(7),i=(function(e){e&&e.__esModule}(a),function e(){r(this,e),this.metaData=new Map,this.type=o.MediaEntryType.Unknown});t.default=i},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t,n){r(this,e),this.licenseUrl=t,this.scheme=n});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.MediaFormat=void 0;var i=n(18);(t.MediaFormat=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return a(t,e),t}(i.Enum)).initEnum({dash:{get mimeType(){return"application/dash+xml"},get pathExt(){return"mpd"}},hls:{get mimeType(){return"application/x-mpegURL"},get pathExt(){return"m3u8"}},wvm:{get mimeType(){return"video/wvm"},get pathExt(){return"wvm"}},mp4:{get mimeType(){return"video/mp4"},get pathExt(){return"mp4"}},mp3:{get mimeType(){return"audio/mpeg"},get pathExt(){return"mp3"}}})},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(10),a=(function(e){e&&e.__esModule}(o),function e(){r(this,e)});t.default=a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.flavorParamsId=t.flavorParamsId,this.fileExt=t.fileExt,this.bitrate=t.bitrate,this.width=t.width,this.height=t.height,this.id=t.id,this.frameRate=t.frameRate,this.isOriginal=t.isOriginal,this.isWeb=t.isWeb,this.containerFormat=t.containerFormat,this.videoCodecId=t.videoCodecId,this.status=t.status,this.language=t.language,this.label=t.label});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.name=t.name,this.dataUrl=t.dataUrl,this.type=t.type,this.entryType=t.mediaType,this.flavorParamsIds=t.flavorParamsIds,this.duration=t.duration});t.default=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=n(4),s=r(u),c=n(30),l=r(c),f=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.hasError||(n.totalCount=e.totalCount,n.totalCount>0&&(n.metas=[],e.objects.map(function(e){return n.metas.push(new l.default(e))}))),n}return i(t,e),t}(s.default);t.default=f},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=n(4),s=r(u),c=n(27),l=r(c),f=n(17),p=r(f),d=n(31),h=r(d),y=n(13),v=r(y),b=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));if(n.sources=[],n.actions=[],n.messages=[],n.flavorAssets=[],!n.hasError){var r=e.messages;r&&r.map(function(e){return n.messages.push(new l.default(e))});var i=e.actions;i&&i.map(function(e){return n.actions.push(new h.default(e))});var u=e.sources;u&&u.map(function(e){return n.sources.push(new p.default(e))});var s=e.flavorAssets;s&&s.map(function(e){return n.flavorAssets.push(new v.default(e))})}return n}return i(t,e),t}(s.default);t.default=b},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0}},{key:"hasFlavorIds",value:function(){return!!this.flavorIds&&this.flavorIds.length>0}},{key:"getProtocol",value:function(e){var t="";if(this.protocols&&this.protocols.length>0){this.protocols.split(",").forEach(function(n){n==e&&(t=n)})}else if("http"==e)return e;return t}}]),e}();t.default=u},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){var n=!0,r=!1,o=void 0;try{for(var a,i=Object.getOwnPropertyNames(t)[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var u=a.value,s=Object.getOwnPropertyDescriptor(t,u);Object.defineProperty(e,u,s)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}return e}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"";o(this,e),this._loaders=new Map,this._multiRequest=u.default.getMultirequest(n,t)}return a(e,[{key:"add",value:function(t,n){var r=this,o=new t(n);if(o.isValid()){this._loaders.set(t.name,o);var a=this._multiRequest.requests.length,i=o.requests;i.forEach(function(e){r._multiRequest.add(e)});var u=Array.from(new Array(i.length),function(e,t){return t+a});e._loadersResponseMap.set(t.name,u)}}},{key:"fetchData",value:function(){var e=this;return new Promise(function(t,n){e._multiRequest.execute().then(function(r){if(e._multiResponse=r,r.success){var o=e.prepareData(r);o.success?t(e._loaders):n({success:!1,data:o.error})}else n(r)},function(e){n(e)})})}},{key:"prepareData",value:function(t){return this._loaders.forEach(function(n,r){var o=e._loadersResponseMap.get(r);try{null!=o&&(n.response=t.results.slice(o[0],o[o.length-1]+1))}catch(e){return{success:!1,error:e}}}),{success:!0,data:this._loaders}}}]),e}());c._loadersResponseMap=new Map,t.default=c},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&c.forEach(function(r){var a=o.parseSource(r,e,t,n,i,u),s=k.get(r.format);l.map(a,s)}),a.sources=l;var f=this.parseMetaData(s);a.metaData=f,a.id=i.id,a.duration=i.duration;var p=y.MediaEntryType.Unknown;switch(i.entryType){case y.MediaType.IMAGE.value:p=y.MediaEntryType.Image;break;case y.MediaType.AUDIO.value:p=y.MediaEntryType.Audio;break;default:switch(i.type){case y.EntryType.MEDIA_CLIP.value:p=y.MediaEntryType.Vod;break;case y.EntryType.LIVE_STREAM.value:case y.EntryType.LIVE_CHANNEL.value:p=y.MediaEntryType.Live;break;default:p=y.MediaEntryType.Unknown}}return a.type=p,a}},{key:"parseSource",value:function(e,t,n,r,o,a){var i="",u=k.get(e.format),s=new T.default;if(e.hasFlavorIds()){var c=R.baseUrl.split("/"),l=void 0;l=c&&c.length>0?c[0].substring(0,c[0].length-1):"http";var f="";if(u)f=u.pathExt,s.mimetype=u.mimeType;else{var d=e.flavorIds.split(","),h=a.flavorAssets.filter(function(e){return-1!=d.indexOf(e.id)});h&&h.length>0&&(f=h[0].fileExt)}i=p.default.build({entryId:o.id,flavorIds:e.flavorIds,format:e.format,ks:t,partnerId:n,uiConfId:r,extension:f,protocol:e.getProtocol(l)})}else i=e.url;if(""==i)return C.error("failed to create play url from source, discarding source: ("+o.id+"_"+e.deliveryProfileId+"), "+e.format+"."),s;if(s.url=i,s.id=o.id+"_"+e.deliveryProfileId+","+e.format,e.hasDrmData()){var y=[];e.drm.forEach(function(e){y.push(new P.default(e.licenseURL,e.scheme))}),s.drmData=y}return s}},{key:"parseMetaData",value:function(e){var t={};return e&&e.metas&&e.metas.length>0&&e.metas.forEach(function(e){var n=void 0,r=new DOMParser;e.xml=e.xml.replace(/\r?\n|\r/g,""),e.xml=e.xml.replace(/>\s*/g,">"),e.xml=e.xml.replace(/>\s*/g,">"),n=r.parseFromString(e.xml,"text/xml");var o=h.default.xmlToJson(n);Object.keys(o.metadata).forEach(function(e){t[e]=o.metadata[e]["#text"]})}),t}}]),e}();t.default=A},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.OvpProvider=void 0;var a=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"",r=arguments[2];o(this,e),this.partnerID=t,this.ks=n,this._isAnonymous=!this.ks,m.default.set(r)}return a(e,[{key:"getConfig",value:function(e,t){var n=this;return null!=t&&(this._uiConfId=t),this._dataLoader=new f.default(this.partnerID,this.ks),new Promise(function(r,o){if(n.validateParams(e,t)){var a=n.ks;n._isAnonymous&&(a="{1:result:ks}",n._dataLoader.add(y.default,{partnerId:n.partnerID})),n._dataLoader.add(d.default,{entryId:e,ks:a}),n._dataLoader.add(b.default,{uiConfId:t,ks:a}),n._dataLoader.fetchData().then(function(e){r(n.parseDataFromResponse(e))},function(e){o(e)})}else o({success:!1,data:"Missing mandatory parameter"})})}},{key:"parseDataFromResponse",value:function(e){w.debug("Data parsing started");var t={id:"",session:{partnerID:this.partnerID,uiConfID:this._uiConfId},sources:new g.default,duration:0,type:"Unknown",metadata:{},plugins:{}};if(null!=e){if(e.has(y.default.name)){var n=e.get(y.default.name);null!=n&&null!=n.response&&(this.ks=n.response,this._isAnonymous=!this.ks,t.session.ks=this.ks)}if(e.has(b.default.name)){var r=e.get(b.default.name),o={};null!=r&&(o=r.response),t.plugins=o}if(e.has(d.default.name)){var a=e.get(d.default.name);if(null!=a&&null!=a.response){var i=c.default.getMediaEntry(this.ks,this.partnerID,this._uiConfId,a.response);t.id=i.id,t.sources=i.sources,t.duration=i.duration,t.type=i.type.name,t.metadata=i.metaData}}}return w.debug("Data parsing finished",t),t}},{key:"validateParams",value:function(e,t){return!!e||!!t}}]),e}();t.default=P},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0&&(n.entries=[],e.objects.map(function(e){return n.entries.push(new l.default(e))}))),n}return i(t,e),t}(s.default);t.default=f},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.scheme=t.scheme,this.licenseURL=t.licenseURL});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.metadataProfileId=t.metadataProfileId,this.metadataProfileVersion=t.metadataProfileVersion,this.metadataProfileId=t.metadataProfileId,this.metadataObjectType=t.metadataObjectType,this.objectId=t.objectId,this.version=t.version,this.created=new Date(0),this.created.setUTCSeconds(t.createdAt),this.updated=new Date(0),this.updated.setUTCSeconds(t.updatedAt),this.status=t.status,this.xml=t.xml});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.type=t.type});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(4),u=function(e){return e&&e.__esModule?e:{default:e}}(i),s=(n(2),function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.hasError||(n.name=e.name,n.description=e.description,n.objTypeAsString=e.objTypeAsString,n.width=e.width,n.height=e.height,n.htmlParams=e.htmlParams,n.swfUrl=e.swfUrl,n.confFilePath=e.confFilePath,n.confFile=e.confFile,n.confFileFeatures=e.confFileFeatures,n.config=e.config,n.confVars=e.confVars,n.useCdn=e.useCdn,n.tags=e.tags,n.swfUrlVersion=e.swfUrlVersion,n.created=new Date(0),n.created.setUTCSeconds(e.createdAt),n.updated=new Date(0),n.updated.setUTCSeconds(e.updatedAt),n.html5Url=e.description,n.version=e.description,n.partnerTags=e.description,n.objType=e.description,n.creationMode=e.description),n}return a(t,e),t}(u.default));t.default=s},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;n0){t["@attributes"]={};for(var n=0;n=t.value},debug:function(){this.invoke(i.DEBUG,arguments)},info:function(){this.invoke(i.INFO,arguments)},warn:function(){this.invoke(i.WARN,arguments)},error:function(){this.invoke(i.ERROR,arguments)},time:function(e){"string"==typeof e&&e.length>0&&this.invoke(i.TIME,[e,"start"])},timeEnd:function(e){"string"==typeof e&&e.length>0&&this.invoke(i.TIME,[e,"end"])},invoke:function(e,t){u&&this.enabledFor(e)&&u(t,l({level:e},this.context))}};var d=new p({filterLevel:i.OFF});!function(){var e=i;e.enabledFor=c(d,d.enabledFor),e.debug=c(d,d.debug),e.time=c(d,d.time),e.timeEnd=c(d,d.timeEnd),e.info=c(d,d.info),e.warn=c(d,d.warn),e.error=c(d,d.error),e.log=e.info}(),i.setHandler=function(e){u=e},i.setLevel=function(e){d.setLevel(e);for(var t in s)s.hasOwnProperty(t)&&s[t].setLevel(e)},i.get=function(e){return s[e]||(s[e]=new p(l({name:e},d.context)))},i.createDefaultHandler=function(e){e=e||{},e.formatter=e.formatter||function(e,t){t.name&&e.unshift("["+t.name+"]")};var t={},n=function(e,t){Function.prototype.apply.call(e,console,t)};return"undefined"==typeof console?function(){}:function(r,o){r=Array.prototype.slice.call(r);var a,u=console.log;o.level===i.TIME?(a=(o.name?"["+o.name+"] ":"")+r[0],"start"===r[1]?console.time?console.time(a):t[a]=(new Date).getTime():console.timeEnd?console.timeEnd(a):n(u,[a+": "+((new Date).getTime()-t[a])+"ms"])):(o.level===i.WARN&&console.warn?u=console.warn:o.level===i.ERROR&&console.error?u=console.error:o.level===i.INFO&&console.info&&(u=console.info),e.formatter(r,o),n(u,r))}},i.useDefaults=function(e){i.setLevel(e&&e.defaultLevel||i.DEBUG),i.setHandler(i.createDefaultHandler(e))},r=i,void 0!==(o="function"==typeof r?r.call(t,n,t,e):r)&&(e.exports=o)}()},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(2),a=n(7),i=(function(e){e&&e.__esModule}(a),function e(){r(this,e),this.metaData=new Map,this.type=o.MediaEntryType.Unknown});t.default=i},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t,n){r(this,e),this.licenseUrl=t,this.scheme=n});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.MediaFormat=void 0;var i=n(18);(t.MediaFormat=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return a(t,e),t}(i.Enum)).initEnum({dash:{get mimeType(){return"application/dash+xml"},get pathExt(){return"mpd"}},hls:{get mimeType(){return"application/x-mpegURL"},get pathExt(){return"m3u8"}},wvm:{get mimeType(){return"video/wvm"},get pathExt(){return"wvm"}},mp4:{get mimeType(){return"video/mp4"},get pathExt(){return"mp4"}},mp3:{get mimeType(){return"audio/mpeg"},get pathExt(){return"mp3"}}})},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(10),a=(function(e){e&&e.__esModule}(o),function e(){r(this,e)});t.default=a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.flavorParamsId=t.flavorParamsId,this.fileExt=t.fileExt,this.bitrate=t.bitrate,this.width=t.width,this.height=t.height,this.id=t.id,this.frameRate=t.frameRate,this.isOriginal=t.isOriginal,this.isWeb=t.isWeb,this.containerFormat=t.containerFormat,this.videoCodecId=t.videoCodecId,this.status=t.status,this.language=t.language,this.label=t.label});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.name=t.name,this.dataUrl=t.dataUrl,this.type=t.type,this.entryType=t.mediaType,this.flavorParamsIds=t.flavorParamsIds,this.duration=t.duration});t.default=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=n(4),s=r(u),c=n(30),l=r(c),f=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.hasError||(n.totalCount=e.totalCount,n.totalCount>0&&(n.metas=[],e.objects.map(function(e){return n.metas.push(new l.default(e))}))),n}return i(t,e),t}(s.default);t.default=f},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=n(4),s=r(u),c=n(27),l=r(c),f=n(17),p=r(f),d=n(31),h=r(d),y=n(13),v=r(y),b=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));if(n.sources=[],n.actions=[],n.messages=[],n.flavorAssets=[],!n.hasError){var r=e.messages;r&&r.map(function(e){return n.messages.push(new l.default(e))});var i=e.actions;i&&i.map(function(e){return n.actions.push(new h.default(e))});var u=e.sources;u&&u.map(function(e){return n.sources.push(new p.default(e))});var s=e.flavorAssets;s&&s.map(function(e){return n.flavorAssets.push(new v.default(e))})}return n}return i(t,e),t}(s.default);t.default=b},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0}},{key:"hasFlavorIds",value:function(){return!!this.flavorIds&&this.flavorIds.length>0}},{key:"getProtocol",value:function(e){var t="";if(this.protocols&&this.protocols.length>0){this.protocols.split(",").forEach(function(n){n==e&&(t=n)})}else if("http"==e)return e;return t}}]),e}();t.default=u},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){var n=!0,r=!1,o=void 0;try{for(var a,i=Object.getOwnPropertyNames(t)[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var u=a.value,s=Object.getOwnPropertyDescriptor(t,u);Object.defineProperty(e,u,s)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}return e}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"";o(this,e),this._loaders=new Map,this._multiRequest=u.default.getMultirequest(n,t)}return a(e,[{key:"add",value:function(t,n){var r=this,o=new t(n);if(o.isValid()){this._loaders.set(t.name,o);var a=this._multiRequest.requests.length,i=o.requests;i.forEach(function(e){r._multiRequest.add(e)});var u=Array.from(new Array(i.length),function(e,t){return t+a});e._loadersResponseMap.set(t.name,u)}}},{key:"fetchData",value:function(){var e=this;return new Promise(function(t,n){e._multiRequest.execute().then(function(r){if(e._multiResponse=r,r.success){var o=e.prepareData(r);o.success?t(e._loaders):n({success:!1,data:o.error})}else n(r)},function(e){n(e)})})}},{key:"prepareData",value:function(t){return this._loaders.forEach(function(n,r){var o=e._loadersResponseMap.get(r);try{null!=o&&(n.response=t.results.slice(o[0],o[o.length-1]+1))}catch(e){return{success:!1,error:e}}}),{success:!0,data:this._loaders}}}]),e}());c._loadersResponseMap=new Map,t.default=c},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&(function(){t.forEach(function(t){if(!1===e._isProgressiveSource(t)){var s=e._parseAdaptiveSource(t,n,r,o,a,i),c=k.get(t.format);u.map(s,c)}})}(),function(){var s=t.find(function(t){return e._isProgressiveSource(t)});u.progressive=e._parseProgressiveSources(s,i.flavorAssets,n,r,o,a)}()),u}},{key:"_isProgressiveSource",value:function(e){var t=k.get(e.format);return t&&"mp4"===t.name}},{key:"_parseAdaptiveSource",value:function(e,t,n,r,o,a){var i="",u=k.get(e.format),s=new j.default;if(e.hasFlavorIds()){var c="";if(u)c=u.pathExt,s.mimetype=u.mimeType;else{var l=e.flavorIds.split(","),f=a.flavorAssets.filter(function(e){return-1!=l.indexOf(e.id)});f&&f.length>0&&(c=f[0].fileExt)}i=p.default.build({entryId:o.id,flavorIds:e.flavorIds,format:e.format,ks:t,partnerId:n,uiConfId:r,extension:c,protocol:e.getProtocol(this._getBaseProtocol())})}else i=e.url;if(""==i)return C.error("failed to create play url from source, discarding source: ("+o.id+"_"+e.deliveryProfileId+"), "+e.format+"."),s;if(s.url=i,s.id=o.id+"_"+e.deliveryProfileId+","+e.format,e.hasDrmData()){var d=[];e.drm.forEach(function(e){d.push(new P.default(e.licenseURL,e.scheme))}),s.drmData=d}return s}},{key:"_parseMetaData",value:function(e){var t={};return e&&e.metas&&e.metas.length>0&&e.metas.forEach(function(e){var n=void 0,r=new DOMParser;e.xml=e.xml.replace(/\r?\n|\r/g,""),e.xml=e.xml.replace(/>\s*/g,">"),e.xml=e.xml.replace(/>\s*/g,">"),n=r.parseFromString(e.xml,"text/xml");var o=h.default.xmlToJson(n);Object.keys(o.metadata).forEach(function(e){t[e]=o.metadata[e]["#text"]})}),t}},{key:"_parseProgressiveSources",value:function(e,t,n,r,o,a){var i=[];if(e){var u=e.getProtocol(this._getBaseProtocol()),s=e.format,c=e.deliveryProfileId+","+e.format;t.map(function(e){if(e.height&&e.width){var t=new j.default;t.id=e.id+c,t.mimetype="video/mp4",t.height=e.height,t.width=e.width,t.bandwidth=1024*e.bitrate,t.label=e.label||e.language,t.url=p.default.build({entryId:a.id,flavorIds:e.id,format:s,ks:n,partnerId:r,uiConfId:o,extension:"mp4",protocol:u}),i.push(t)}})}return i}},{key:"_getBaseProtocol",value:function(){var e=R.baseUrl.split("/");return e&&e.length>0?e[0].substring(0,e[0].length-1):"http"}}]),e}();t.default=A},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.OvpProvider=void 0;var a=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"",r=arguments[2];o(this,e),this.partnerID=t,this.ks=n,this._isAnonymous=!this.ks,m.default.set(r)}return a(e,[{key:"getConfig",value:function(e,t){var n=this;return null!=t&&(this._uiConfId=t),this._dataLoader=new f.default(this.partnerID,this.ks),new Promise(function(r,o){if(n.validateParams(e,t)){var a=n.ks;n._isAnonymous&&(a="{1:result:ks}",n._dataLoader.add(y.default,{partnerId:n.partnerID})),n._dataLoader.add(d.default,{entryId:e,ks:a}),n._dataLoader.add(b.default,{uiConfId:t,ks:a}),n._dataLoader.fetchData().then(function(e){r(n.parseDataFromResponse(e))},function(e){o(e)})}else o({success:!1,data:"Missing mandatory parameter"})})}},{key:"parseDataFromResponse",value:function(e){w.debug("Data parsing started");var t={id:"",session:{partnerID:this.partnerID,uiConfID:this._uiConfId},sources:new g.default,duration:0,type:"Unknown",metadata:{},plugins:{}};if(null!=e){if(e.has(y.default.name)){var n=e.get(y.default.name);null!=n&&null!=n.response&&(this.ks=n.response,this._isAnonymous=!this.ks,t.session.ks=this.ks)}if(e.has(b.default.name)){var r=e.get(b.default.name),o={};null!=r&&(o=r.response),t.plugins=o}if(e.has(d.default.name)){var a=e.get(d.default.name);if(null!=a&&null!=a.response){var i=c.default.getMediaEntry(this.ks,this.partnerID,this._uiConfId,a.response);t.id=i.id,t.sources=i.sources,t.duration=i.duration,t.type=i.type.name,t.metadata=i.metaData}}}return w.debug("Data parsing finished",t),t}},{key:"validateParams",value:function(e,t){return!!e||!!t}}]),e}();t.default=P},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0&&(n.entries=[],e.objects.map(function(e){return n.entries.push(new l.default(e))}))),n}return i(t,e),t}(s.default);t.default=f},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.scheme=t.scheme,this.licenseURL=t.licenseURL});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.metadataProfileId=t.metadataProfileId,this.metadataProfileVersion=t.metadataProfileVersion,this.metadataProfileId=t.metadataProfileId,this.metadataObjectType=t.metadataObjectType,this.objectId=t.objectId,this.version=t.version,this.created=new Date(0),this.created.setUTCSeconds(t.createdAt),this.updated=new Date(0),this.updated.setUTCSeconds(t.updatedAt),this.status=t.status,this.xml=t.xml});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.type=t.type});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(4),u=function(e){return e&&e.__esModule?e:{default:e}}(i),s=(n(2),function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.hasError||(n.name=e.name,n.description=e.description,n.objTypeAsString=e.objTypeAsString,n.width=e.width,n.height=e.height,n.htmlParams=e.htmlParams,n.swfUrl=e.swfUrl,n.confFilePath=e.confFilePath,n.confFile=e.confFile,n.confFileFeatures=e.confFileFeatures,n.config=e.config,n.confVars=e.confVars,n.useCdn=e.useCdn,n.tags=e.tags,n.swfUrlVersion=e.swfUrlVersion,n.created=new Date(0),n.created.setUTCSeconds(e.createdAt),n.updated=new Date(0),n.updated.setUTCSeconds(e.updatedAt),n.html5Url=e.description,n.version=e.description,n.partnerTags=e.description,n.objType=e.description,n.creationMode=e.description),n}return a(t,e),t}(u.default));t.default=s},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;n0){t["@attributes"]={};for(var n=0;n} headers The request headers\n */\n\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n\n /**\n * @member - Service headers\n * @type {Map}\n */\n\n /**\n * @member - Service action\n * @type {string}\n */\n function RequestBuilder() {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n _classCallCheck(this, RequestBuilder);\n\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n\n /**\n * @member - Service tag\n * @type {string}\n */\n\n /**\n * @member - Service base url\n * @type {Map}\n */\n\n /**\n * @member - Service params\n * @type {any}\n */\n\n\n /**\n * @member - Service name\n * @type {string}\n */\n\n\n _createClass(RequestBuilder, [{\n key: \"getUrl\",\n value: function getUrl() {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n var url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n\n }, {\n key: \"doHttpRequest\",\n value: function doHttpRequest() {\n var _this = this;\n\n var request = new XMLHttpRequest();\n return new Promise(function (resolve, reject) {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n var jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && (typeof jsonResponse === \"undefined\" ? \"undefined\" : _typeof(jsonResponse)) === 'object' && jsonResponse.code && jsonResponse.message) reject(jsonResponse);else resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(_this.method, _this.getUrl());\n _this.headers.forEach(function (value, key) {\n request.setRequestHeader(key, value);\n });\n request.send(_this.params);\n });\n }\n }]);\n\n return RequestBuilder;\n}();\n\nexports.default = RequestBuilder;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nvar Configuration = function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n }\n\n _createClass(Configuration, null, [{\n key: \"set\",\n value: function set(clientConfig) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n return defaultConfig;\n }\n }]);\n\n return Configuration;\n}();\n\nexports.default = Configuration;\nexports.Configuration = Configuration;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UIConfCreationMode = exports.UIConfType = exports.MediaEntryType = exports.MediaType = exports.EntryType = exports.EntryModerationStatus = exports.EntryStatus = exports.MetadataStatus = exports.MetadataObjectType = exports.Status = exports.KalturaRuleActionType = exports.Scheme = undefined;\n\nvar _enumify = __webpack_require__(18);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Scheme = exports.Scheme = function (_Enum) {\n _inherits(Scheme, _Enum);\n\n function Scheme() {\n _classCallCheck(this, Scheme);\n\n return _possibleConstructorReturn(this, (Scheme.__proto__ || Object.getPrototypeOf(Scheme)).apply(this, arguments));\n }\n\n return Scheme;\n}(_enumify.Enum);\n\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\nvar KalturaRuleActionType = exports.KalturaRuleActionType = function (_Enum2) {\n _inherits(KalturaRuleActionType, _Enum2);\n\n function KalturaRuleActionType() {\n _classCallCheck(this, KalturaRuleActionType);\n\n return _possibleConstructorReturn(this, (KalturaRuleActionType.__proto__ || Object.getPrototypeOf(KalturaRuleActionType)).apply(this, arguments));\n }\n\n return KalturaRuleActionType;\n}(_enumify.Enum);\n\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nvar Status = exports.Status = function (_Enum3) {\n _inherits(Status, _Enum3);\n\n function Status() {\n _classCallCheck(this, Status);\n\n return _possibleConstructorReturn(this, (Status.__proto__ || Object.getPrototypeOf(Status)).apply(this, arguments));\n }\n\n return Status;\n}(_enumify.Enum);\n\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nvar MetadataObjectType = exports.MetadataObjectType = function (_Enum4) {\n _inherits(MetadataObjectType, _Enum4);\n\n function MetadataObjectType() {\n _classCallCheck(this, MetadataObjectType);\n\n return _possibleConstructorReturn(this, (MetadataObjectType.__proto__ || Object.getPrototypeOf(MetadataObjectType)).apply(this, arguments));\n }\n\n return MetadataObjectType;\n}(_enumify.Enum);\n\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nvar MetadataStatus = exports.MetadataStatus = function (_Enum5) {\n _inherits(MetadataStatus, _Enum5);\n\n function MetadataStatus() {\n _classCallCheck(this, MetadataStatus);\n\n return _possibleConstructorReturn(this, (MetadataStatus.__proto__ || Object.getPrototypeOf(MetadataStatus)).apply(this, arguments));\n }\n\n return MetadataStatus;\n}(_enumify.Enum);\n\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\nvar EntryStatus = exports.EntryStatus = function (_Enum6) {\n _inherits(EntryStatus, _Enum6);\n\n function EntryStatus() {\n _classCallCheck(this, EntryStatus);\n\n return _possibleConstructorReturn(this, (EntryStatus.__proto__ || Object.getPrototypeOf(EntryStatus)).apply(this, arguments));\n }\n\n return EntryStatus;\n}(_enumify.Enum);\n\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nvar EntryModerationStatus = exports.EntryModerationStatus = function (_Enum7) {\n _inherits(EntryModerationStatus, _Enum7);\n\n function EntryModerationStatus() {\n _classCallCheck(this, EntryModerationStatus);\n\n return _possibleConstructorReturn(this, (EntryModerationStatus.__proto__ || Object.getPrototypeOf(EntryModerationStatus)).apply(this, arguments));\n }\n\n return EntryModerationStatus;\n}(_enumify.Enum);\n\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nvar EntryType = exports.EntryType = function (_Enum8) {\n _inherits(EntryType, _Enum8);\n\n function EntryType() {\n _classCallCheck(this, EntryType);\n\n return _possibleConstructorReturn(this, (EntryType.__proto__ || Object.getPrototypeOf(EntryType)).apply(this, arguments));\n }\n\n return EntryType;\n}(_enumify.Enum);\n\nEntryType.initEnum({\n AUTOMATIC: { value: -1 },\n EXTERNAL_MEDIA: { value: \"externalMedia.externalMedia\" },\n MEDIA_CLIP: { value: 1 },\n MIX: { value: 2 },\n PLAYLIST: { value: 5 },\n DATA: { value: 6 },\n LIVE_STREAM: { value: 7 },\n LIVE_CHANNEL: { value: 8 },\n DOCUMENT: { value: 10 }\n});\n\nvar MediaType = exports.MediaType = function (_Enum9) {\n _inherits(MediaType, _Enum9);\n\n function MediaType() {\n _classCallCheck(this, MediaType);\n\n return _possibleConstructorReturn(this, (MediaType.__proto__ || Object.getPrototypeOf(MediaType)).apply(this, arguments));\n }\n\n return MediaType;\n}(_enumify.Enum);\n\nMediaType.initEnum({\n VIDEO: { value: 1 },\n IMAGE: { value: 2 },\n AUDIO: { value: 5 },\n LIVE_STREAM_FLASH: { value: 201 },\n LIVE_STREAM_WINDOWS_MEDIA: { value: 202 },\n LIVE_STREAM_REAL_MEDIA: { value: 203 },\n LIVE_STREAM_QUICKTIME: { value: 204 }\n});\n\nvar MediaEntryType = exports.MediaEntryType = function (_Enum10) {\n _inherits(MediaEntryType, _Enum10);\n\n function MediaEntryType() {\n _classCallCheck(this, MediaEntryType);\n\n return _possibleConstructorReturn(this, (MediaEntryType.__proto__ || Object.getPrototypeOf(MediaEntryType)).apply(this, arguments));\n }\n\n return MediaEntryType;\n}(_enumify.Enum);\n\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nvar UIConfType = exports.UIConfType = function (_Enum11) {\n _inherits(UIConfType, _Enum11);\n\n function UIConfType() {\n _classCallCheck(this, UIConfType);\n\n return _possibleConstructorReturn(this, (UIConfType.__proto__ || Object.getPrototypeOf(UIConfType)).apply(this, arguments));\n }\n\n return UIConfType;\n}(_enumify.Enum);\n\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nvar UIConfCreationMode = exports.UIConfCreationMode = function (_Enum12) {\n _inherits(UIConfCreationMode, _Enum12);\n\n function UIConfCreationMode() {\n _classCallCheck(this, UIConfCreationMode);\n\n return _possibleConstructorReturn(this, (UIConfCreationMode.__proto__ || Object.getPrototypeOf(UIConfCreationMode)).apply(this, arguments));\n }\n\n return UIConfCreationMode;\n}(_enumify.Enum);\n\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\nvar SERVICE_NAME = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\n\nvar OvpService = function () {\n function OvpService() {\n _classCallCheck(this, OvpService);\n }\n\n _createClass(OvpService, null, [{\n key: 'getMultirequest',\n\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n value: function getMultirequest(ks, partnerId) {\n var ovpParams = config.serviceParams;\n Object.assign(ovpParams, { ks: ks });\n if (partnerId) {\n Object.assign(ovpParams, { partnerId: partnerId });\n }\n var multiReq = new _multiRequestBuilder2.default();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n }]);\n\n return OvpService;\n}();\n\nexports.default = OvpService;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base service result\n * @classdesc\n */\nvar ServiceResult =\n\n/**\n * @constructor\n * @param {Object} response - Service response\n */\n\n/**\n * @member - The service error\n * @type {ServiceError}\n */\n\n/**\n * @member - The service result data\n * @type {Object}\n */\nfunction ServiceResult(response) {\n _classCallCheck(this, ServiceResult);\n\n this.hasError = false;\n\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else {\n this.data = response;\n }\n}\n\n/**\n * @member - Is service returned an error\n * @type {boolean}\n */\n;\n\n/**\n * Service error\n * @classdesc\n */\n\n\nexports.default = ServiceResult;\n\nvar ServiceError =\n\n/**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n\n/**\n * @member - The error code\n * @type {string}\n */\nfunction ServiceError(code, message) {\n _classCallCheck(this, ServiceError);\n\n this.code = code;\n this.message = message;\n}\n/**\n * @member - The error message\n * @type {string}\n */\n;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOG_LEVEL = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jsLogger = __webpack_require__(8);\n\nvar JsLogger = _interopRequireWildcard(_jsLogger);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LoggerFactory = function () {\n function LoggerFactory(options) {\n _classCallCheck(this, LoggerFactory);\n\n JsLogger.useDefaults(options || {});\n }\n\n _createClass(LoggerFactory, [{\n key: \"get\",\n value: function get(name) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n }]);\n\n return LoggerFactory;\n}();\n\nvar Logger = new LoggerFactory({ defaultLevel: JsLogger.DEBUG });\nvar LOG_LEVEL = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexports.default = Logger;\nexports.LOG_LEVEL = LOG_LEVEL;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MultiRequestResult = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\n\nvar MultiRequestBuilder = function (_RequestBuilder) {\n _inherits(MultiRequestBuilder, _RequestBuilder);\n\n /**\n * @constructor\n */\n function MultiRequestBuilder() {\n _classCallCheck(this, MultiRequestBuilder);\n\n var _this = _possibleConstructorReturn(this, (MultiRequestBuilder.__proto__ || Object.getPrototypeOf(MultiRequestBuilder)).call(this));\n\n _this.requests = [];\n return _this;\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n\n\n _createClass(MultiRequestBuilder, [{\n key: 'add',\n value: function add(request) {\n this.requests.push(request);\n var requestParams = {};\n var serviceDef = { service: request.service, action: request.action };\n Object.assign(requestParams, _defineProperty({}, this.requests.length, Object.assign(serviceDef, request.params)));\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n\n }, {\n key: 'execute',\n value: function execute() {\n var _this2 = this;\n\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n logger.error('' + err.message);\n }\n return new Promise(function (resolve, reject) {\n _this2.doHttpRequest().then(function (data) {\n resolve(new MultiRequestResult(data));\n }, function (err) {\n var errorText = 'Error on multiRequest execution, error <' + err + '>.';\n reject(errorText);\n });\n });\n }\n }]);\n\n return MultiRequestBuilder;\n}(_requestBuilder2.default);\n\n/**\n * Multi Request result object\n * @classdesc\n */\n\n\nexports.default = MultiRequestBuilder;\n\nvar MultiRequestResult =\n\n/**\n * @constructor\n * @param {Object} response data\n */\n\n\n/**\n * @member - Is success\n * @type {boolean}\n */\nexports.MultiRequestResult = function MultiRequestResult(response) {\n var _this3 = this;\n\n _classCallCheck(this, MultiRequestResult);\n\n this.results = [];\n\n this.success = true;\n response.forEach(function (result) {\n var serviceResult = new _baseServiceResult2.default(result);\n _this3.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error('Service returned an error with error code: ' + serviceResult.error.code + ' and message: ' + serviceResult.error.message + '.');\n _this3.success = false;\n return;\n }\n });\n}\n/**\n * @member - Multi request response data\n * @type {Object}\n */\n;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _mediaSource = __webpack_require__(12);\n\nvar _mediaSource2 = _interopRequireDefault(_mediaSource);\n\nvar _mediaFormat = __webpack_require__(11);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nvar MediaSources = function () {\n\n /**\n * @constructor\n */\n\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n function MediaSources() {\n _classCallCheck(this, MediaSources);\n\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n\n\n _createClass(MediaSources, [{\n key: 'map',\n value: function map(source, mediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n }]);\n\n return MediaSources;\n}();\n\nexports.default = MediaSources;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nvar _mediaSources = __webpack_require__(7);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Media entry\n * @classdesc\n */\nvar MediaEntry =\n\n/**\n * @constructor\n */\n\n/**\n * @member - entry type\n * @type {MediaEntryType}\n */\n\n/**\n * @member - entry sources\n * @type {MediaSources}\n */\nfunction MediaEntry() {\n _classCallCheck(this, MediaEntry);\n\n this.metaData = new Map();\n this.type = _enums.MediaEntryType.Unknown;\n}\n/**\n * @member - entry metadata\n * @type {Map}\n */\n\n/**\n * @member - entry duration\n * @type {number}\n */\n\n\n/**\n * @member - entry ID\n * @type {string}\n */\n;\n\nexports.default = MediaEntry;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Drm data\n * @classdesc\n */\nvar Drm =\n\n/**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n\n\n/**\n * @member - license URL\n * @type {string}\n */\nfunction Drm(licenseUrl, scheme) {\n _classCallCheck(this, Drm);\n\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n}\n/**\n * @member - drm scheme\n * @type {Scheme}\n */\n;\n\nexports.default = Drm;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MediaFormat = undefined;\n\nvar _enumify = __webpack_require__(18);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MediaFormat = exports.MediaFormat = function (_Enum) {\n _inherits(MediaFormat, _Enum);\n\n function MediaFormat() {\n _classCallCheck(this, MediaFormat);\n\n return _possibleConstructorReturn(this, (MediaFormat.__proto__ || Object.getPrototypeOf(MediaFormat)).apply(this, arguments));\n }\n\n return MediaFormat;\n}(_enumify.Enum);\n\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _drm = __webpack_require__(10);\n\nvar _drm2 = _interopRequireDefault(_drm);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Media source\n * @classdesc\n */\nvar MediaSource =\n\n/**\n * @constructor\n */\n\n/**\n * @member - media source mimetype\n * @type {string}\n */\n\n/**\n * @member - media source ID\n * @type {string}\n */\nfunction MediaSource() {\n _classCallCheck(this, MediaSource);\n}\n/**\n * @member - media source drm data\n * @type {Array}\n */\n\n/**\n * @member - media source URL\n * @type {string}\n */\n;\n\nexports.default = MediaSource;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nvar KalturaFlavorAsset =\n\n/**\n * @constructor\n * @param {Object} data The json response\n */\n\n/**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n\n/**\n *@member - The video codec\n * @type {boolean}\n */\n\n/**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n\n/**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member -The file extension\n * @type {string}\n */\n\n/**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\nfunction KalturaFlavorAsset(data) {\n _classCallCheck(this, KalturaFlavorAsset);\n\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n}\n/**\n * @member - The label of the flavor asset\n * @type {string}\n */\n\n/**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n\n/**\n * @member - The container format\n * @type {boolean}\n */\n\n/**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n\n/**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n\n/**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n;\n\nexports.default = KalturaFlavorAsset;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nvar KalturaMediaEntry =\n\n/**\n * @constructor\n * @param {Object} entry The json response\n */\n\n/**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n\n/**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n\n/**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\nfunction KalturaMediaEntry(entry) {\n _classCallCheck(this, KalturaMediaEntry);\n\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n}\n/**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n\n/**\n * @member - The entry duration\n * @type {number}\n */\n\n/**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n\n/**\n * @member - The entry id\n * @type {string}\n */\n;\n\nexports.default = KalturaMediaEntry;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaMetadata = __webpack_require__(30);\n\nvar _kalturaMetadata2 = _interopRequireDefault(_kalturaMetadata);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nvar KalturaMetadataListResponse = function (_ServiceResult) {\n _inherits(KalturaMetadataListResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n function KalturaMetadataListResponse(responseObj) {\n _classCallCheck(this, KalturaMetadataListResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaMetadataListResponse.__proto__ || Object.getPrototypeOf(KalturaMetadataListResponse)).call(this, responseObj));\n\n if (!_this.hasError) {\n _this.totalCount = responseObj.totalCount;\n if (_this.totalCount > 0) {\n _this.metas = [];\n responseObj.objects.map(function (meta) {\n return _this.metas.push(new _kalturaMetadata2.default(meta));\n });\n }\n }\n return _this;\n }\n /**\n * @member -The mata data array\n * @type {Array}\n */\n\n\n return KalturaMetadataListResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaMetadataListResponse;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaAccessControlMessage = __webpack_require__(27);\n\nvar _kalturaAccessControlMessage2 = _interopRequireDefault(_kalturaAccessControlMessage);\n\nvar _kalturaPlaybackSource = __webpack_require__(17);\n\nvar _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource);\n\nvar _kalturaRuleAction = __webpack_require__(31);\n\nvar _kalturaRuleAction2 = _interopRequireDefault(_kalturaRuleAction);\n\nvar _kalturaFlavorAsset = __webpack_require__(13);\n\nvar _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nvar KalturaPlaybackContext = function (_ServiceResult) {\n _inherits(KalturaPlaybackContext, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n\n /**\n * @member - The playback sources\n * @type {Array}\n */\n function KalturaPlaybackContext(response) {\n _classCallCheck(this, KalturaPlaybackContext);\n\n var _this = _possibleConstructorReturn(this, (KalturaPlaybackContext.__proto__ || Object.getPrototypeOf(KalturaPlaybackContext)).call(this, response));\n\n _this.sources = [];\n _this.actions = [];\n _this.messages = [];\n _this.flavorAssets = [];\n\n if (!_this.hasError) {\n\n var messages = response.messages;\n if (messages) {\n messages.map(function (message) {\n return _this.messages.push(new _kalturaAccessControlMessage2.default(message));\n });\n }\n\n var actions = response.actions;\n if (actions) {\n actions.map(function (action) {\n return _this.actions.push(new _kalturaRuleAction2.default(action));\n });\n }\n\n var sources = response.sources;\n if (sources) {\n sources.map(function (source) {\n return _this.sources.push(new _kalturaPlaybackSource2.default(source));\n });\n }\n\n var flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(function (flavor) {\n return _this.flavorAssets.push(new _kalturaFlavorAsset2.default(flavor));\n });\n }\n }\n\n return _this;\n }\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n\n\n return KalturaPlaybackContext;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaPlaybackContext;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _kalturaDrmPlaybackPluginData = __webpack_require__(29);\n\nvar _kalturaDrmPlaybackPluginData2 = _interopRequireDefault(_kalturaDrmPlaybackPluginData);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nvar KalturaPlaybackSource = function () {\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n\n /**\n * @member - The source URL\n * @type {string}\n */\n\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n function KalturaPlaybackSource(source) {\n var _this = this;\n\n _classCallCheck(this, KalturaPlaybackSource);\n\n this.drm = [];\n\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(function (drm) {\n return _this.drm.push(new _kalturaDrmPlaybackPluginData2.default(drm));\n });\n }\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n\n\n _createClass(KalturaPlaybackSource, [{\n key: \"hasDrmData\",\n value: function hasDrmData() {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n\n }, {\n key: \"hasFlavorIds\",\n value: function hasFlavorIds() {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n\n }, {\n key: \"getProtocol\",\n value: function getProtocol(protocol) {\n var returnValue = \"\";\n if (this.protocols && this.protocols.length > 0) {\n var protocolsArr = this.protocols.split(\",\");\n protocolsArr.forEach(function (p) {\n if (p == protocol) {\n returnValue = p;\n }\n });\n } else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n }]);\n\n return KalturaPlaybackSource;\n}();\n\nexports.default = KalturaPlaybackSource;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Data loaders manager\n * @classdesc\n */\nvar DataLoaderManager = function () {\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n function DataLoaderManager(partnerID) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n\n _classCallCheck(this, DataLoaderManager);\n\n this._loaders = new Map();\n\n this._multiRequest = _ovpService2.default.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n\n\n _createClass(DataLoaderManager, [{\n key: 'add',\n value: function add(loader, params) {\n var _this = this;\n\n var execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n var startIndex = this._multiRequest.requests.length;\n //Get the requests\n var requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach(function (request) {\n _this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n var executionLoaderResponseMap = Array.from(new Array(requests.length), function (val, index) {\n return index + startIndex;\n });\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n\n }, {\n key: 'fetchData',\n value: function fetchData() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2._multiRequest.execute().then(function (response) {\n _this2._multiResponse = response;\n if (!response.success) {\n reject(response);\n } else {\n var preparedData = _this2.prepareData(response);\n if (preparedData.success) {\n resolve(_this2._loaders);\n } else {\n reject({ success: false, data: preparedData.error });\n }\n }\n }, function (err) {\n reject(err);\n });\n });\n }\n }, {\n key: 'prepareData',\n value: function prepareData(response) {\n this._loaders.forEach(function (loader, name) {\n var loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1);\n }\n } catch (err) {\n return { success: false, error: err };\n }\n });\n return { success: true, data: this._loaders };\n }\n }]);\n\n return DataLoaderManager;\n}();\n\nDataLoaderManager._loadersResponseMap = new Map();\nexports.default = DataLoaderManager;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseEntryService = __webpack_require__(33);\n\nvar _baseEntryService2 = _interopRequireDefault(_baseEntryService);\n\nvar _metaDataService = __webpack_require__(34);\n\nvar _metaDataService2 = _interopRequireDefault(_metaDataService);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _kalturaPlaybackContext = __webpack_require__(16);\n\nvar _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext);\n\nvar _kalturaMetadataListResponse = __webpack_require__(15);\n\nvar _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse);\n\nvar _kalturaBaseEntryListResponse = __webpack_require__(28);\n\nvar _kalturaBaseEntryListResponse2 = _interopRequireDefault(_kalturaBaseEntryListResponse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\n\nvar MediaEntryLoader = function () {\n _createClass(MediaEntryLoader, null, [{\n key: 'name',\n get: function get() {\n return \"media\";\n }\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function MediaEntryLoader(params) {\n _classCallCheck(this, MediaEntryLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n _createClass(MediaEntryLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_baseEntryService2.default.list(config.beUrl, params.ks, params.entryId));\n requests.push(_baseEntryService2.default.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(_metaDataService2.default.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._entryId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n var mediaEntryResponse = new _kalturaBaseEntryListResponse2.default(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new _kalturaPlaybackContext2.default(response[1].data);\n this._response.metadataListResult = new _kalturaMetadataListResponse2.default(response[2].data);\n },\n get: function get() {\n return this._response;\n }\n }]);\n\n return MediaEntryLoader;\n}();\n\nexports.default = MediaEntryLoader;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _sessionService = __webpack_require__(35);\n\nvar _sessionService2 = _interopRequireDefault(_sessionService);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n/**\n * Media entry loader\n * @classdesc\n */\n\nvar SessionLoader = function () {\n _createClass(SessionLoader, null, [{\n key: 'name',\n get: function get() {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function SessionLoader(params) {\n _classCallCheck(this, SessionLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n _createClass(SessionLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_sessionService2.default.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._partnerId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n this._response.ks = response[0].data.ks;\n },\n get: function get() {\n return this._response.ks;\n }\n }]);\n\n return SessionLoader;\n}();\n\nexports.default = SessionLoader;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _uiConfService = __webpack_require__(37);\n\nvar _uiConfService2 = _interopRequireDefault(_uiConfService);\n\nvar _kalturaUiConfResponse = __webpack_require__(32);\n\nvar _kalturaUiConfResponse2 = _interopRequireDefault(_kalturaUiConfResponse);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\nvar UiConfigLoader = function () {\n _createClass(UiConfigLoader, null, [{\n key: 'name',\n get: function get() {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function UiConfigLoader(params) {\n _classCallCheck(this, UiConfigLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n _createClass(UiConfigLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_uiConfService2.default.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._uiConfId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n this._response.uiConf = new _kalturaUiConfResponse2.default(response[0].data);\n },\n get: function get() {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null) try {\n return JSON.parse(this._response.uiConf.config).plugins;\n } catch (err) {\n return null;\n } else return null;\n }\n }]);\n\n return UiConfigLoader;\n}();\n\nexports.default = UiConfigLoader;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _kalturaMediaEntry = __webpack_require__(14);\n\nvar _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry);\n\nvar _kalturaPlaybackContext = __webpack_require__(16);\n\nvar _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext);\n\nvar _kalturaPlaybackSource = __webpack_require__(17);\n\nvar _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource);\n\nvar _kalturaFlavorAsset = __webpack_require__(13);\n\nvar _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset);\n\nvar _kalturaMetadataListResponse = __webpack_require__(15);\n\nvar _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse);\n\nvar _playSourceUrlBuilder = __webpack_require__(26);\n\nvar _playSourceUrlBuilder2 = _interopRequireDefault(_playSourceUrlBuilder);\n\nvar _xmlParser = __webpack_require__(38);\n\nvar _xmlParser2 = _interopRequireDefault(_xmlParser);\n\nvar _enums = __webpack_require__(2);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _mediaFormat = __webpack_require__(11);\n\nvar _mediaEntry = __webpack_require__(9);\n\nvar _mediaEntry2 = _interopRequireDefault(_mediaEntry);\n\nvar _drm = __webpack_require__(10);\n\nvar _drm2 = _interopRequireDefault(_drm);\n\nvar _mediaSource = __webpack_require__(12);\n\nvar _mediaSource2 = _interopRequireDefault(_mediaSource);\n\nvar _mediaSources = __webpack_require__(7);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nvar SUPPORTED_FORMATS = new Map([[\"mpegdash\", _mediaFormat.MediaFormat.dash], [\"applehttp\", _mediaFormat.MediaFormat.hls], [\"url\", _mediaFormat.MediaFormat.mp4]]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\n\nvar ProviderParser = function () {\n function ProviderParser() {\n _classCallCheck(this, ProviderParser);\n }\n\n _createClass(ProviderParser, null, [{\n key: 'getMediaEntry',\n\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {any} mediaEntryResponse The media entry response\n * @returns {MediaEntry} The media entry\n * @static\n */\n value: function getMediaEntry(ks, partnerID, uiConfId, mediaEntryResponse) {\n var _this = this;\n\n var mediaEntry = new _mediaEntry2.default();\n var entry = mediaEntryResponse.entry;\n var playbackContext = mediaEntryResponse.playBackContextResult;\n var metadataList = mediaEntryResponse.metadataListResult;\n var kalturaSources = playbackContext.sources;\n var sources = new _mediaSources2.default();\n if (kalturaSources && kalturaSources.length > 0) {\n kalturaSources.forEach(function (source) {\n var parsedSource = _this.parseSource(source, ks, partnerID, uiConfId, entry, playbackContext);\n var mediaFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, mediaFormat);\n });\n }\n\n mediaEntry.sources = sources;\n\n var metadata = this.parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n var type = _enums.MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case _enums.MediaType.IMAGE.value:\n type = _enums.MediaEntryType.Image;\n break;\n case _enums.MediaType.AUDIO.value:\n type = _enums.MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case _enums.EntryType.MEDIA_CLIP.value:\n type = _enums.MediaEntryType.Vod;\n break;\n case _enums.EntryType.LIVE_STREAM.value:\n case _enums.EntryType.LIVE_CHANNEL.value:\n type = _enums.MediaEntryType.Live;\n break;\n default:\n type = _enums.MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n /**\n *\n * @param {KalturaPlaybackSource} source The source\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {KalturaMediaEntry} entry The entry\n * @param {KalturaPlaybackContext} playbackContext The playback context\n * @returns {MediaSource} The parsed media source\n * @static\n */\n\n }, {\n key: 'parseSource',\n value: function parseSource(source, ks, partnerID, uiConfId, entry, playbackContext) {\n var playUrl = \"\";\n var mediaFormat = SUPPORTED_FORMATS.get(source.format);\n var mediaSource = new _mediaSource2.default();\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (source.hasFlavorIds()) {\n var splittedUrl = config.baseUrl.split(\"/\");\n var baseProtocol = void 0;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n } else {\n baseProtocol = \"http\";\n }\n\n var extension = \"\";\n if (!mediaFormat) {\n var flavorIdsArr = source.flavorIds.split(\",\");\n var flavors = playbackContext.flavorAssets.filter(function (flavor) {\n return flavorIdsArr.indexOf(flavor.id) != -1;\n });\n if (flavors && flavors.length > 0) {\n extension = flavors[0].fileExt;\n }\n } else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = _playSourceUrlBuilder2.default.build({\n entryId: entry.id,\n flavorIds: source.flavorIds,\n format: source.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: source.getProtocol(baseProtocol)\n });\n } else {\n playUrl = source.url;\n }\n\n if (playUrl == \"\") {\n logger.error('failed to create play url from source, discarding source: (' + entry.id + '_' + source.deliveryProfileId + '), ' + source.format + '.');\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entry.id + \"_\" + source.deliveryProfileId + \",\" + source.format;\n if (source.hasDrmData()) {\n var drmParams = [];\n source.drm.forEach(function (drm) {\n drmParams.push(new _drm2.default(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n return mediaSource;\n }\n\n /**\n * Ovp metadata parser\n * @function parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n */\n\n }, {\n key: 'parseMetaData',\n value: function parseMetaData(metadataList) {\n var metadata = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach(function (meta) {\n var metaXml = void 0;\n var domParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n var metasObj = _xmlParser2.default.xmlToJson(metaXml);\n var metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach(function (key) {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n });\n });\n }\n return metadata;\n }\n }]);\n\n return ProviderParser;\n}();\n\nexports.default = ProviderParser;\n\n/***/ }),\n/* 24 */,\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OvpProvider = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _providerParser = __webpack_require__(23);\n\nvar _providerParser2 = _interopRequireDefault(_providerParser);\n\nvar _dataLoaderManager = __webpack_require__(19);\n\nvar _dataLoaderManager2 = _interopRequireDefault(_dataLoaderManager);\n\nvar _mediaEntryLoader = __webpack_require__(20);\n\nvar _mediaEntryLoader2 = _interopRequireDefault(_mediaEntryLoader);\n\nvar _sessionLoader = __webpack_require__(21);\n\nvar _sessionLoader2 = _interopRequireDefault(_sessionLoader);\n\nvar _uiConfigLoader = __webpack_require__(22);\n\nvar _uiConfigLoader2 = _interopRequireDefault(_uiConfigLoader);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _mediaEntry = __webpack_require__(9);\n\nvar _mediaEntry2 = _interopRequireDefault(_mediaEntry);\n\nvar _mediaSources = __webpack_require__(7);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Ovp provider\n * @classdesc\n */\nvar OvpProvider = exports.OvpProvider = function () {\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n\n /**\n * @member - partner ID\n * @type {number}\n */\n function OvpProvider(partnerID) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var config = arguments[2];\n\n _classCallCheck(this, OvpProvider);\n\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n _config2.default.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n\n /**\n * @member - ks\n * @type {string}\n */\n\n\n _createClass(OvpProvider, [{\n key: 'getConfig',\n value: function getConfig(entryId, uiConfId) {\n var _this = this;\n\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new _dataLoaderManager2.default(this.partnerID, this.ks);\n return new Promise(function (resolve, reject) {\n if (_this.validateParams(entryId, uiConfId)) {\n var ks = _this.ks;\n if (_this._isAnonymous) {\n ks = \"{1:result:ks}\";\n _this._dataLoader.add(_sessionLoader2.default, { partnerId: _this.partnerID });\n }\n _this._dataLoader.add(_mediaEntryLoader2.default, { entryId: entryId, ks: ks });\n _this._dataLoader.add(_uiConfigLoader2.default, { uiConfId: uiConfId, ks: ks });\n _this._dataLoader.fetchData().then(function (response) {\n resolve(_this.parseDataFromResponse(response));\n }, function (err) {\n reject(err);\n });\n } else {\n reject({ success: false, data: \"Missing mandatory parameter\" });\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n\n }, {\n key: 'parseDataFromResponse',\n value: function parseDataFromResponse(data) {\n logger.debug(\"Data parsing started\");\n var config = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId\n },\n sources: new _mediaSources2.default(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(_sessionLoader2.default.name)) {\n var sessionLoader = data.get(_sessionLoader2.default.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(_uiConfigLoader2.default.name)) {\n var uiConfLoader = data.get(_uiConfigLoader2.default.name);\n var pluginsJson = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(_mediaEntryLoader2.default.name)) {\n var mediaLoader = data.get(_mediaEntryLoader2.default.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n var mediaEntry = _providerParser2.default.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return config;\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n\n }, {\n key: 'validateParams',\n value: function validateParams(entryId, uiConfId) {\n return !!entryId || !!uiConfId;\n }\n }]);\n\n return OvpProvider;\n}();\n\nexports.default = OvpProvider;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\n\nvar PlaySourceUrlBuilder = function () {\n function PlaySourceUrlBuilder() {\n _classCallCheck(this, PlaySourceUrlBuilder);\n }\n\n _createClass(PlaySourceUrlBuilder, null, [{\n key: \"build\",\n\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n value: function build(urlParams) {\n var baseUrl = config.baseUrl;\n var partnerId = urlParams.partnerId;\n var entryId = urlParams.entryId;\n var ks = urlParams.ks;\n var uiConfId = urlParams.uiConfId;\n var format = urlParams.format;\n var protocol = urlParams.protocol;\n var extension = urlParams.extension;\n var flavorIds = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n var playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/falvorIds/\" + flavorIds;\n } else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n\n }, {\n key: \"endsWith\",\n value: function endsWith(string, searchString) {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n }]);\n\n return PlaySourceUrlBuilder;\n}();\n\nexports.default = PlaySourceUrlBuilder;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nvar KalturaAccessControlMessage =\n\n/**\n * @constructor\n * @param {Object} data The json response\n */\n\n/**\n * @member - The access control message\n * @type {string}\n */\nfunction KalturaAccessControlMessage(data) {\n _classCallCheck(this, KalturaAccessControlMessage);\n\n this.message = data.message;\n this.code = data.code;\n}\n/**\n * @member - The access control message code\n * @@type {string}\n */\n;\n\nexports.default = KalturaAccessControlMessage;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaMediaEntry = __webpack_require__(14);\n\nvar _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nvar KalturaBaseEntryListResponse = function (_ServiceResult) {\n _inherits(KalturaBaseEntryListResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n\n /**\n * @member - The total count\n * @type {number}\n */\n function KalturaBaseEntryListResponse(responseObj) {\n _classCallCheck(this, KalturaBaseEntryListResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaBaseEntryListResponse.__proto__ || Object.getPrototypeOf(KalturaBaseEntryListResponse)).call(this, responseObj));\n\n if (!_this.hasError) {\n _this.totalCount = responseObj.totalCount;\n if (_this.totalCount > 0) {\n _this.entries = [];\n responseObj.objects.map(function (entry) {\n return _this.entries.push(new _kalturaMediaEntry2.default(entry));\n });\n }\n }\n return _this;\n }\n /**\n * @member - The entries\n * @type {Array}\n */\n\n\n return KalturaBaseEntryListResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaBaseEntryListResponse;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nvar KalturaDrmPlaybackPluginData =\n\n/**\n * @constructor\n * @param {Object} drm The json response\n */\n\n/**\n * @member - The drm scheme\n * @type {Scheme}\n */\nfunction KalturaDrmPlaybackPluginData(drm) {\n _classCallCheck(this, KalturaDrmPlaybackPluginData);\n\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n}\n\n/**\n * @member - The license URL\n * @type {string}\n */\n;\n\nexports.default = KalturaDrmPlaybackPluginData;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nvar KalturaMetadata =\n\n/**\n * @constructor\n * @param {Object} data The response\n */\nfunction KalturaMetadata(data) {\n _classCallCheck(this, KalturaMetadata);\n\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n}\n/**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n;\n\nexports.default = KalturaMetadata;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nvar KalturaRuleAction =\n\n/**\n * @constructor\n * @param {Object} data The response\n */\nfunction KalturaRuleAction(data) {\n _classCallCheck(this, KalturaRuleAction);\n\n this.type = data.type;\n}\n/**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n;\n\nexports.default = KalturaRuleAction;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _enums = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nvar KalturaUiConfResponse = function (_ServiceResult) {\n _inherits(KalturaUiConfResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n function KalturaUiConfResponse(data) {\n _classCallCheck(this, KalturaUiConfResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaUiConfResponse.__proto__ || Object.getPrototypeOf(KalturaUiConfResponse)).call(this, data));\n\n if (!_this.hasError) {\n _this.name = data.name;\n\n _this.description = data.description;\n _this.objTypeAsString = data.objTypeAsString;\n _this.width = data.width;\n _this.height = data.height;\n _this.htmlParams = data.htmlParams;\n _this.swfUrl = data.swfUrl;\n _this.confFilePath = data.confFilePath;\n _this.confFile = data.confFile;\n _this.confFileFeatures = data.confFileFeatures;\n _this.config = data.config;\n _this.confVars = data.confVars;\n _this.useCdn = data.useCdn;\n _this.tags = data.tags;\n _this.swfUrlVersion = data.swfUrlVersion;\n _this.created = new Date(0);\n _this.created.setUTCSeconds(data.createdAt);\n _this.updated = new Date(0);\n _this.updated.setUTCSeconds(data.updatedAt);\n _this.html5Url = data.description;\n _this.version = data.description;\n _this.partnerTags = data.description;\n _this.objType = data.description;\n _this.creationMode = data.description;\n }\n return _this;\n }\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n\n\n return KalturaUiConfResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaUiConfResponse;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\n\nvar BaseEntryService = function (_OvpService) {\n _inherits(BaseEntryService, _OvpService);\n\n function BaseEntryService() {\n _classCallCheck(this, BaseEntryService);\n\n return _possibleConstructorReturn(this, (BaseEntryService.__proto__ || Object.getPrototypeOf(BaseEntryService)).apply(this, arguments));\n }\n\n _createClass(BaseEntryService, null, [{\n key: 'getPlaybackContext',\n\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function getPlaybackContext(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n var contextDataParams = { objectType: \"KalturaContextDataParams\", flavorTags: \"all\" };\n var params = { entryId: entryId, ks: ks, contextDataParams: contextDataParams };\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n\n }, {\n key: 'list',\n value: function list(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n\n }, {\n key: 'getEntryListReqParams',\n value: function getEntryListReqParams(entryId, ks) {\n var filterParams = { redirectFromEntryId: entryId };\n var responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return { ks: ks, filter: filterParams, responseProfile: responseProfileParams };\n }\n }]);\n\n return BaseEntryService;\n}(_ovpService2.default);\n\nexports.default = BaseEntryService;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\n\nvar MetaDataService = function (_OvpService) {\n _inherits(MetaDataService, _OvpService);\n\n function MetaDataService() {\n _classCallCheck(this, MetaDataService);\n\n return _possibleConstructorReturn(this, (MetaDataService.__proto__ || Object.getPrototypeOf(MetaDataService)).apply(this, arguments));\n }\n\n _createClass(MetaDataService, null, [{\n key: 'list',\n\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function list(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n var filter = { objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\" };\n var params = { filter: filter, ks: ks };\n request.params = params;\n return request;\n }\n }]);\n\n return MetaDataService;\n}(_ovpService2.default);\n\nexports.default = MetaDataService;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\n\nvar SessionService = function (_OvpService) {\n _inherits(SessionService, _OvpService);\n\n function SessionService() {\n _classCallCheck(this, SessionService);\n\n return _possibleConstructorReturn(this, (SessionService.__proto__ || Object.getPrototypeOf(SessionService)).apply(this, arguments));\n }\n\n _createClass(SessionService, null, [{\n key: 'anonymousSession',\n\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function anonymousSession(baseUrl, partnerId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = { widgetId: \"_\" + partnerId };\n return request;\n }\n }]);\n\n return SessionService;\n}(_ovpService2.default);\n\nexports.default = SessionService;\n\n/***/ }),\n/* 36 */,\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\n\nvar UiConfService = function (_OvpService) {\n _inherits(UiConfService, _OvpService);\n\n function UiConfService() {\n _classCallCheck(this, UiConfService);\n\n return _possibleConstructorReturn(this, (UiConfService.__proto__ || Object.getPrototypeOf(UiConfService)).apply(this, arguments));\n }\n\n _createClass(UiConfService, null, [{\n key: 'get',\n\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function get(baseUrl, ks, uiConfID) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n var responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = { id: uiConfID, responseProfile: responseProfileParams, ks: ks };\n return request;\n }\n }]);\n\n return UiConfService;\n}(_ovpService2.default);\n\nexports.default = UiConfService;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Xml parser\n * @classdesc\n */\nvar XmlParser = function () {\n function XmlParser() {\n _classCallCheck(this, XmlParser);\n }\n\n _createClass(XmlParser, null, [{\n key: \"xmlToJson\",\n\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n value: function xmlToJson(xml) {\n var obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (var j = 0; j < xml.attributes.length; j++) {\n var attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (var i = 0; i < xml.childNodes.length; i++) {\n var item = xml.childNodes.item(i);\n var nodeName = item.nodeName;\n if (typeof obj[nodeName] == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n } else {\n if (typeof obj[nodeName].push == \"undefined\") {\n var old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n }]);\n\n return XmlParser;\n}();\n\nexports.default = XmlParser;\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// ovpProvider.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 25);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a230e31148c3bdf5b594","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\nimport {Enum} from 'enumify';\n\nexport class Scheme extends Enum {\n}\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\n\nexport class KalturaRuleActionType extends Enum {\n}\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nexport class Status extends Enum {\n}\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nexport class MetadataObjectType extends Enum {\n}\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nexport class MetadataStatus extends Enum {\n}\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\n\nexport class EntryStatus extends Enum {\n}\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nexport class EntryModerationStatus extends Enum {\n}\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nexport class EntryType extends Enum {\n}\nEntryType.initEnum({\n AUTOMATIC: {value: -1},\n EXTERNAL_MEDIA: {value: \"externalMedia.externalMedia\"},\n MEDIA_CLIP: {value: 1},\n MIX: {value: 2},\n PLAYLIST: {value: 5},\n DATA: {value: 6},\n LIVE_STREAM: {value: 7},\n LIVE_CHANNEL: {value: 8},\n DOCUMENT: {value: 10}\n});\n\nexport class MediaType extends Enum {\n}\nMediaType.initEnum({\n VIDEO: {value: 1},\n IMAGE: {value: 2},\n AUDIO: {value: 5},\n LIVE_STREAM_FLASH: {value: 201},\n LIVE_STREAM_WINDOWS_MEDIA: {value: 202},\n LIVE_STREAM_REAL_MEDIA: {value: 203},\n LIVE_STREAM_QUICKTIME: {value: 204}\n});\n\n\nexport class MediaEntryType extends Enum {\n}\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nexport class UIConfType extends Enum {\n}\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nexport class UIConfCreationMode extends Enum {\n}\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/enums.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","// @flow\nimport MediaSource from './media-source'\nimport {MediaFormat} from './media-format'\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nexport default class MediaSources {\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n progressive: Array;\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n dash: Array;\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n hls: Array;\n\n /**\n * @constructor\n */\n constructor() {\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n map(source: MediaSource, mediaFormat: ?MediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-sources.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/js-logger/src/logger.js\n// module id = 8\n// module chunks = 0 1","//@flow\nimport {MediaEntryType} from '../k-provider/enums'\nimport MediaSources from './media-sources'\n\n/**\n * Media entry\n * @classdesc\n */\nexport default class MediaEntry {\n\n /**\n * @member - entry ID\n * @type {string}\n */\n id: string;\n /**\n * @member - entry sources\n * @type {MediaSources}\n */\n sources: MediaSources;\n /**\n * @member - entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - entry type\n * @type {MediaEntryType}\n */\n type: MediaEntryType;\n /**\n * @member - entry metadata\n * @type {Map}\n */\n metaData: Map;\n\n /**\n * @constructor\n */\n constructor() {\n this.metaData = new Map();\n this.type = MediaEntryType.Unknown;\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-entry.js","//@flow\n\nimport {Scheme} from '../k-provider/enums';\n\n/**\n * Drm data\n * @classdesc\n */\nexport default class Drm {\n\n /**\n * @member - license URL\n * @type {string}\n */\n licenseUrl: string;\n /**\n * @member - drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n constructor(licenseUrl: string, scheme: Scheme) {\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/drm.js","//@flow\nimport {Enum} from 'enumify';\n\nexport class MediaFormat extends Enum {\n}\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-format.js","//@flow\nimport Drm from '../entities/drm'\n\n/**\n * Media source\n * @classdesc\n */\nexport default class MediaSource {\n /**\n * @member - media source ID\n * @type {string}\n */\n id: string;\n /**\n * @member - media source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - media source mimetype\n * @type {string}\n */\n mimetype: string;\n /**\n * @member - media source drm data\n * @type {Array}\n */\n drmData: Array;\n\n /**\n * @constructor\n */\n constructor(){}\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-source.js","//@flow\nimport {Status} from '../../enums'\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nexport default class KalturaFlavorAsset {\n /**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\n id: string;\n /**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n flavorParamsId: string;\n /**\n * @member -The file extension\n * @type {string}\n */\n fileExt: string;\n /**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n bitrate: number;\n /**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n width: number;\n /**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n height: number;\n /**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n frameRate: number;\n /**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n isOriginal: boolean;\n /**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n isWeb: boolean;\n /**\n * @member - The container format\n * @type {boolean}\n */\n containerFormat: string;\n /**\n *@member - The video codec\n * @type {boolean}\n */\n videoCodecId: string;\n /**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n status: Status;\n /**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n language: string;\n /**\n * @member - The label of the flavor asset\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: any) {\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-flavor-asset.js","//@flow\nimport {EntryType, MediaType} from '../../enums'\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nexport default class KalturaMediaEntry {\n /**\n * @member - The entry id\n * @type {string}\n */\n id: string;\n /**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\n name: string;\n /**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n dataUrl: string;\n /**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n flavorParamsIds: string;\n /**\n * @member - The entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n type: EntryType;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n entryType: MediaType;\n\n /**\n * @constructor\n * @param {Object} entry The json response\n */\n constructor(entry: Object) {\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n }\n}\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-media-entry.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMetadata from './kaltura-metadata'\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nexport default class KalturaMetadataListResponse extends ServiceResult {\n totalCount: number;\n /**\n * @member -The mata data array\n * @type {Array}\n */\n metas: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.metas = [];\n responseObj.objects.map(meta => this.metas.push(new KalturaMetadata(meta)));\n }\n\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata-list-response.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaAccessControlMessage from './kaltura-access-control-message'\nimport KalturaPlaybackSource from './kaltura-playback-source'\nimport KalturaRuleAction from './kaltura-rule-action'\nimport KalturaFlavorAsset from './kaltura-flavor-asset'\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nexport default class KalturaPlaybackContext extends ServiceResult {\n /**\n * @member - The playback sources\n * @type {Array}\n */\n sources: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n actions: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n messages: Array = [];\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n flavorAssets: Array = [];\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n constructor(response: Object) {\n super(response);\n if (!this.hasError) {\n\n let messages = response.messages;\n if (messages) {\n messages.map(message => this.messages.push(new KalturaAccessControlMessage(message)));\n }\n\n let actions = response.actions;\n if (actions) {\n actions.map(action => this.actions.push(new KalturaRuleAction(action)));\n }\n\n let sources = response.sources;\n if (sources) {\n sources.map(source => this.sources.push(new KalturaPlaybackSource(source)));\n }\n\n let flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(flavor => this.flavorAssets.push(new KalturaFlavorAsset(flavor)));\n }\n }\n\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-context.js","//@flow\nimport KalturaDrmPlaybackPluginData from './kaltura-drm-playback-plugin-data'\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nexport default class KalturaPlaybackSource {\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n format: string;\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n deliveryProfileId: string;\n /**\n * @member - The source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n protocols: string;\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n flavorIds: string;\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n drm: Array = [];\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n constructor(source: Object) {\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(drm => this.drm.push(new KalturaDrmPlaybackPluginData(drm)));\n }\n\n\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n hasDrmData(): boolean {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n hasFlavorIds(): boolean {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n getProtocol(protocol: string): string {\n let returnValue: string = \"\";\n if (this.protocols && this.protocols.length > 0) {\n let protocolsArr: Array = this.protocols.split(\",\");\n protocolsArr.forEach((p) => {\n if (p == protocol) {\n returnValue = p;\n }\n });\n }\n else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-source.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/enumify/lib/enumify.js\n// module id = 18\n// module chunks = 0","//@flow\nimport OvpService from '../services/ovp-service'\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport {MultiRequestResult} from '../../multi-request-builder'\n\n/**\n * Data loaders manager\n * @classdesc\n */\nexport default class DataLoaderManager {\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n static _loadersResponseMap: Map> = new Map();\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n _multiRequest: MultiRequestBuilder;\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n _multiResponse: MultiRequestResult;\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n _loaders: Map = new Map();\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n constructor(partnerID: number, ks: string = \"\") {\n this._multiRequest = OvpService.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n add(loader: typeof ILoader, params: Object): void {\n let execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n let startIndex = this._multiRequest.requests.length;\n //Get the requests\n let requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach((request) => {\n this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n let executionLoaderResponseMap = Array.from(new Array(requests.length), (val, index) => index + startIndex);\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n fetchData(): Promise {\n return new Promise((resolve, reject) => {\n this._multiRequest.execute()\n .then(response => {\n this._multiResponse = response;\n if (!response.success) {\n reject(response);\n }\n else {\n let preparedData: Object = this.prepareData(response);\n if (preparedData.success) {\n resolve(this._loaders);\n }\n else {\n reject({success: false, data: preparedData.error});\n }\n }\n },\n err => {\n reject(err);\n });\n });\n }\n\n prepareData(response: MultiRequestResult): Object {\n this._loaders.forEach(function (loader, name) {\n let loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = (response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1));\n }\n }\n catch (err) {\n return {success: false, error: err};\n }\n });\n return {success: true, data: this._loaders};\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/data-loader-manager.js","//@flow\n\nimport RequestBuilder from '../../request-builder'\nimport BaseEntryService from '../services/base-entry-service'\nimport MetaDataService from '../services/meta-data-service'\nimport Configuration from '../config'\nimport KalturaPlaybackContext from '../response-types/kaltura-playback-context'\nimport KalturaMetadataListResponse from '../response-types/kaltura-metadata-list-response'\nimport KalturaBaseEntryListResponse from '../response-types/kaltura-base-entry-list-response'\n\nconst config = Configuration.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class MediaEntryLoader implements ILoader {\n static get name(): string {\n return \"media\";\n }\n\n _entryId: string;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n let mediaEntryResponse: KalturaBaseEntryListResponse = new KalturaBaseEntryListResponse(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);\n this._response.metadataListResult = new KalturaMetadataListResponse(response[2].data);\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(BaseEntryService.list(config.beUrl, params.ks, params.entryId));\n requests.push(BaseEntryService.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(MetaDataService.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._entryId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/media-entry-loader.js","//@flow\nimport SessionService from '../services/session-service'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class SessionLoader implements ILoader {\n static get name(): string {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n _partnerId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.ks = response[0].data.ks;\n }\n\n get response(): any {\n return this._response.ks;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(SessionService.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._partnerId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/session-loader.js","//@flow\nimport UiConfService from '../services/ui-conf-service'\nimport KalturaUiConfResponse from '../response-types/kaltura-ui-conf-response'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n\nexport default class UiConfigLoader implements ILoader {\n static get name(): string {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.uiConf = new KalturaUiConfResponse(response[0].data);\n }\n\n get response(): any {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null)\n try {\n return JSON.parse(this._response.uiConf.config).plugins;\n }\n catch (err) {\n return null;\n }\n else\n return null;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(UiConfService.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._uiConfId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/ui-config-loader.js","//@flow\nimport KalturaMediaEntry from './response-types/kaltura-media-entry'\nimport KalturaPlaybackContext from './response-types/kaltura-playback-context'\nimport KalturaPlaybackSource from './response-types/kaltura-playback-source'\nimport KalturaFlavorAsset from './response-types/kaltura-flavor-asset'\nimport KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response'\nimport PlaySourceUrlBuilder from \"./play-source-url-builder\"\nimport XmlParser from '../xml-parser'\nimport {MediaEntryType, EntryType, MediaType} from '../enums'\nimport Logger from '../../util/logger'\nimport Configuration from './config'\nimport {MediaFormat} from '../../entities/media-format'\nimport MediaEntry from '../../entities/media-entry'\nimport Drm from '../../entities/drm'\nimport MediaSource from '../../entities/media-source'\nimport MediaSources from '../../entities/media-sources'\n\nconst config = Configuration.get();\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nconst SUPPORTED_FORMATS: Map = new Map([\n [\"mpegdash\", MediaFormat.dash],\n [\"applehttp\", MediaFormat.hls],\n [\"url\", MediaFormat.mp4]\n]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\nexport default class ProviderParser {\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {any} mediaEntryResponse The media entry response\n * @returns {MediaEntry} The media entry\n * @static\n */\n static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry {\n let mediaEntry: MediaEntry = new MediaEntry();\n let entry = mediaEntryResponse.entry;\n let playbackContext = mediaEntryResponse.playBackContextResult;\n let metadataList = mediaEntryResponse.metadataListResult;\n let kalturaSources: Array = playbackContext.sources;\n let sources: MediaSources = new MediaSources();\n if (kalturaSources && kalturaSources.length > 0) {\n kalturaSources.forEach((source) => {\n let parsedSource = this.parseSource(source, ks, partnerID, uiConfId, entry, playbackContext);\n let mediaFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, mediaFormat);\n });\n }\n\n mediaEntry.sources = sources;\n\n let metadata: Map = this.parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n let type: MediaEntryType = MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case MediaType.IMAGE.value:\n type = MediaEntryType.Image;\n break;\n case MediaType.AUDIO.value:\n type = MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case EntryType.MEDIA_CLIP.value:\n type = MediaEntryType.Vod;\n break;\n case EntryType.LIVE_STREAM.value:\n case EntryType.LIVE_CHANNEL.value:\n type = MediaEntryType.Live;\n break;\n default:\n type = MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n /**\n *\n * @param {KalturaPlaybackSource} source The source\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {KalturaMediaEntry} entry The entry\n * @param {KalturaPlaybackContext} playbackContext The playback context\n * @returns {MediaSource} The parsed media source\n * @static\n */\n static parseSource(source: KalturaPlaybackSource, ks: string, partnerID: number, uiConfId: number, entry: KalturaMediaEntry, playbackContext: KalturaPlaybackContext): MediaSource {\n let playUrl: string = \"\";\n let mediaFormat = SUPPORTED_FORMATS.get(source.format);\n let mediaSource: MediaSource = new MediaSource();\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (source.hasFlavorIds()) {\n let splittedUrl: Array = config.baseUrl.split(\"/\");\n let baseProtocol: string;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n }\n else {\n baseProtocol = \"http\";\n }\n\n let extension: string = \"\";\n if (!mediaFormat) {\n let flavorIdsArr = source.flavorIds.split(\",\");\n let flavors: Array = playbackContext.flavorAssets.filter(flavor => flavorIdsArr.indexOf(flavor.id) != -1);\n if (flavors && flavors.length > 0) {\n extension = flavors[0].fileExt;\n }\n }\n else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = PlaySourceUrlBuilder.build({\n entryId: entry.id,\n flavorIds: source.flavorIds,\n format: source.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: source.getProtocol(baseProtocol)\n });\n\n }\n else {\n playUrl = source.url;\n }\n\n if (playUrl == \"\") {\n logger.error(`failed to create play url from source, discarding source: (${entry.id}_${source.deliveryProfileId}), ${source.format}.`);\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entry.id + \"_\" + source.deliveryProfileId + \",\" + source.format;\n if (source.hasDrmData()) {\n let drmParams: Array = [];\n source.drm.forEach((drm) => {\n drmParams.push(new Drm(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n return mediaSource;\n }\n\n /**\n * Ovp metadata parser\n * @function parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n */\n static parseMetaData(metadataList: KalturaMetadataListResponse): Map {\n let metadata: Object = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach((meta) => {\n let metaXml: Object;\n let domParser: DOMParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n let metasObj: Object = XmlParser.xmlToJson(metaXml);\n let metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach((key) => {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n })\n\n })\n }\n return metadata;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/provider-parser.js","//@flow\nimport Logger from '../../util/logger'\nimport ProviderParser from './provider-parser'\nimport DataLoaderManager from './loaders/data-loader-manager'\nimport MediaEntryLoader from './loaders/media-entry-loader'\nimport SessionLoader from './loaders/session-loader'\nimport UiConfigLoader from './loaders/ui-config-loader'\nimport Configuration from './config'\nimport MediaEntry from '../../entities/media-entry'\nimport MediaSources from '../../entities/media-sources'\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\ntype playerConfig = {\n id: string,\n session: Object,\n sources: MediaSources,\n duration: number,\n type: string,\n metadata: Object,\n plugins: Object\n};\n\n/**\n * Ovp provider\n * @classdesc\n */\nexport class OvpProvider {\n /**\n * @member - ks\n * @type {string}\n */\n ks: string;\n /**\n * @member - partner ID\n * @type {number}\n */\n partnerID: number;\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n _isAnonymous: boolean;\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n _dataLoader: DataLoaderManager;\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n constructor(partnerID: number, ks: string = \"\", config?: Object) {\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n Configuration.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n getConfig(entryId?: string, uiConfId?: number): Promise {\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new DataLoaderManager(this.partnerID, this.ks);\n return new Promise((resolve, reject) => {\n if (this.validateParams(entryId, uiConfId)) {\n let ks: string = this.ks;\n if (this._isAnonymous) {\n ks = \"{1:result:ks}\";\n this._dataLoader.add(SessionLoader, {partnerId: this.partnerID});\n }\n this._dataLoader.add(MediaEntryLoader, {entryId: entryId, ks: ks});\n this._dataLoader.add(UiConfigLoader, {uiConfId: uiConfId, ks: ks});\n this._dataLoader.fetchData()\n .then(response => {\n resolve(this.parseDataFromResponse(response));\n },\n err => {\n reject(err);\n });\n }\n else {\n reject({success: false, data: \"Missing mandatory parameter\"});\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n parseDataFromResponse(data: Map): Object {\n logger.debug(\"Data parsing started\");\n let config: playerConfig = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId,\n },\n sources: new MediaSources(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(SessionLoader.name)) {\n let sessionLoader = data.get(SessionLoader.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(UiConfigLoader.name)) {\n let uiConfLoader = data.get(UiConfigLoader.name);\n let pluginsJson: Object = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(MediaEntryLoader.name)) {\n let mediaLoader = data.get(MediaEntryLoader.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n let mediaEntry: MediaEntry = ProviderParser.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return (config);\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n validateParams(entryId?: string, uiConfId?: number): boolean {\n return !!entryId || !!uiConfId;\n }\n\n}\n\nexport default OvpProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/ovp-provider.js","//@flow\nimport Configuration from './config'\n\nconst config = Configuration.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\nexport default class PlaySourceUrlBuilder {\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n static build(urlParams: Object): string {\n let baseUrl: string = config.baseUrl;\n let partnerId: string = urlParams.partnerId;\n let entryId: string = urlParams.entryId;\n let ks: string = urlParams.ks;\n let uiConfId: string = urlParams.uiConfId;\n let format: string = urlParams.format;\n let protocol: string = urlParams.protocol;\n let extension: string = urlParams.extension;\n let flavorIds: string = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n let playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/falvorIds/\" + flavorIds;\n }\n else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n static endsWith(string: string, searchString: string): boolean {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/play-source-url-builder.js","//@flow\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nexport default class KalturaAccessControlMessage {\n /**\n * @member - The access control message\n * @type {string}\n */\n message: string;\n /**\n * @member - The access control message code\n * @@type {string}\n */\n code: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n this.message = data.message;\n this.code = data.code\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-access-control-message.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMediaEntry from './kaltura-media-entry'\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nexport default class KalturaBaseEntryListResponse extends ServiceResult {\n /**\n * @member - The total count\n * @type {number}\n */\n totalCount: number;\n /**\n * @member - The entries\n * @type {Array}\n */\n entries: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.entries = [];\n responseObj.objects.map(entry => this.entries.push(new KalturaMediaEntry(entry)));\n }\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","//@flow\nimport {Scheme} from '../../enums'\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nexport default class KalturaDrmPlaybackPluginData {\n /**\n * @member - The drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @member - The license URL\n * @type {string}\n */\n licenseURL: string;\n\n /**\n * @constructor\n * @param {Object} drm The json response\n */\n constructor(drm: any) {\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","//@flow\nimport {MetadataObjectType, MetadataStatus} from '../../enums'\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nexport default class KalturaMetadata {\n id: number;\n metadataProfileId: number;\n metadataProfileVersion: number;\n metadataObjectType: MetadataObjectType;\n objectId: string;\n version: number;\n created: Date;\n updated: Date;\n status: MetadataStatus;\n /**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n xml: string;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata.js","//@flow\nimport {KalturaRuleActionType} from '../../enums'\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nexport default class KalturaRuleAction {\n /**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n type: KalturaRuleActionType;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.type = data.type;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-rule-action.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport {UIConfType, UIConfCreationMode} from '../../enums';\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nexport default class KalturaUiConfResponse extends ServiceResult {\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n name: string;\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n description: string;\n objTypeAsString: string;\n width: number;\n height: number;\n htmlParams: string;\n swfUrl: string;\n confFilePath: string;\n confFile: string;\n confFileFeatures: string;\n name: string;\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n config: string;\n confVars: string;\n useCdn: boolean;\n tags: string;\n swfUrlVersion: string;\n created: Date;\n updated: Date;\n html5Url: string;\n version: string;\n partnerTags: string;\n objType: UIConfType;\n creationMode: UIConfCreationMode;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n super(data);\n if (!this.hasError) {\n this.name = data.name;\n\n this.description = data.description;\n this.objTypeAsString = data.objTypeAsString;\n this.width = data.width;\n this.height = data.height;\n this.htmlParams = data.htmlParams;\n this.swfUrl = data.swfUrl;\n this.confFilePath = data.confFilePath;\n this.confFile = data.confFile;\n this.confFileFeatures = data.confFileFeatures;\n this.config = data.config;\n this.confVars = data.confVars;\n this.useCdn = data.useCdn;\n this.tags = data.tags;\n this.swfUrlVersion = data.swfUrlVersion;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.html5Url = data.description;\n this.version = data.description;\n this.partnerTags = data.description;\n this.objType = data.description;\n this.creationMode = data.description;\n\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-ui-conf-response.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\nexport default class BaseEntryService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static getPlaybackContext(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n let contextDataParams = {objectType: \"KalturaContextDataParams\", flavorTags: \"all\"};\n let params = {entryId: entryId, ks: ks, contextDataParams: contextDataParams};\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n static getEntryListReqParams(entryId: string, ks: string): any {\n let filterParams = {redirectFromEntryId: entryId};\n let responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return {ks: ks, filter: filterParams, responseProfile: responseProfileParams};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/base-entry-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\nexport default class MetaDataService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n let filter = {objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\"};\n let params = {filter: filter, ks: ks};\n request.params = params;\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/meta-data-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\nexport default class SessionService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static anonymousSession(baseUrl: string, partnerId: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = {widgetId: \"_\" + partnerId};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/session-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\nexport default class UiConfService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static get(baseUrl: string, ks: string, uiConfID: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n let responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = {id: uiConfID, responseProfile: responseProfileParams, ks: ks};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ui-conf-service.js","//@flow\n\n/**\n * Xml parser\n * @classdesc\n */\nexport default class XmlParser {\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n static xmlToJson(xml: Object) {\n let obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n let attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n }\n else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n let item = xml.childNodes.item(i);\n let nodeName = item.nodeName;\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n }\n else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n let old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/xml-parser.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/ovpProvider.min.js","webpack:///providers/webpack/bootstrap 23bc45362ebde973588a","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/enums.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/./entities/media-sources.js","webpack:///providers/../~/js-logger/src/logger.js","webpack:///providers/./entities/media-entry.js","webpack:///providers/./entities/drm.js","webpack:///providers/./entities/media-format.js","webpack:///providers/./entities/media-source.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-flavor-asset.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-media-entry.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-context.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-source.js","webpack:///providers/../~/enumify/lib/enumify.js","webpack:///providers/./k-provider/ovp/loaders/data-loader-manager.js","webpack:///providers/./k-provider/ovp/loaders/media-entry-loader.js","webpack:///providers/./k-provider/ovp/loaders/session-loader.js","webpack:///providers/./k-provider/ovp/loaders/ui-config-loader.js","webpack:///providers/./k-provider/ovp/provider-parser.js","webpack:///providers/./k-provider/ovp/ovp-provider.js","webpack:///providers/./k-provider/ovp/play-source-url-builder.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-access-control-message.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-rule-action.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-ui-conf-response.js","webpack:///providers/./k-provider/ovp/services/base-entry-service.js","webpack:///providers/./k-provider/ovp/services/meta-data-service.js","webpack:///providers/./k-provider/ovp/services/session-service.js","webpack:///providers/./k-provider/ovp/services/ui-conf-service.js","webpack:///providers/./k-provider/xml-parser.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","_classCallCheck","instance","Constructor","TypeError","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","RequestBuilder","headers","arguments","undefined","Map","set","baseUrl","Error","service","action","_this","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","setRequestHeader","send","params","default","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","assign","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","UIConfCreationMode","UIConfType","MediaEntryType","MediaType","EntryType","EntryModerationStatus","EntryStatus","MetadataStatus","MetadataObjectType","Status","KalturaRuleActionType","Scheme","_enumify","_Enum","getPrototypeOf","apply","Enum","initEnum","PLAYREADY_CENC","WIDEVINE_CENC","FAIRPLAY","PLAYREADY","WIDEVINE","_Enum2","DRM_POLICY","BLOCK","PREVIEW","LIMIT_FLAVORS","ADD_TO_STORAGE","LIMIT_DELIVERY_PROFILES","SERVE_FROM_REMOTE_SERVER","REQUEST_HOST_REGEX","LIMIT_THUMBNAIL_CAPTURE","_Enum3","ERROR","QUEUED","CONVERTING","READY","DELETED","NOT_APPLICABLE","TEMP","WAIT_FOR_CONVERT","IMPORTING","VALIDATING","EXPORTING","_Enum4","AD_CUE_POINT","ANNOTATION","CODE_CUE_POINT","THUMB_CUE_POINT","ENTRY","CATEGORY","USER","PARTNER","DYNAMIC_OBJECT","_Enum5","VALID","INVALID","_Enum6","ERROR_IMPORTING","ERROR_CONVERTING","SCAN_FAILURE","IMPORT","INFECTED","PRECONVERT","PENDING","MODERATE","BLOCKED","NO_CONTENT","_Enum7","PENDING_MODERATION","APPROVED","REJECTED","FLAGGED_FOR_REVIEW","AUTO_APPROVED","_Enum8","AUTOMATIC","EXTERNAL_MEDIA","MEDIA_CLIP","MIX","PLAYLIST","DATA","LIVE_STREAM","LIVE_CHANNEL","DOCUMENT","_Enum9","VIDEO","IMAGE","AUDIO","LIVE_STREAM_FLASH","LIVE_STREAM_WINDOWS_MEDIA","LIVE_STREAM_REAL_MEDIA","LIVE_STREAM_QUICKTIME","_Enum10","_Enum11","PLAYER","CONTRIBUTION_WIZARD","SIMPLE_EDITOR","ADVANCED_EDITOR","APP_STUDIO","KRECORD","PLAYER_V3","KMC_ACCOUNT","KMC_ANALYTICS","KMC_CONTENT","KMC_DASHBOARD","KMC_LOGIN","PLAYER_SL","CLIENTSIDE_ENCODER","KMC_GENERAL","KMC_ROLES_AND_PERMISSIONS","CLIPPER","KSR","KUPLOAD","WEBCASTING","_Enum12","WIZARD","ADVANCED","_interopRequireDefault","_multiRequestBuilder","_multiRequestBuilder2","_config","_config2","config","OvpService","ks","partnerId","ovpParams","multiReq","ServiceResult","response","hasError","objectType","error","ServiceError","data","LOG_LEVEL","_jsLogger","JsLogger","newObj","LoggerFactory","options","useDefaults","Logger","defaultLevel","DEBUG","INFO","TIME","WARN","OFF","_defineProperty","MultiRequestResult","_requestBuilder","_requestBuilder2","_baseServiceResult","_baseServiceResult2","_logger","_logger2","logger","MultiRequestBuilder","_RequestBuilder","requests","push","requestParams","serviceDef","_this2","stringify","err","doHttpRequest","then","errorText","_this3","results","success","result","serviceResult","_mediaSource","MediaSources","progressive","dash","hls","source","mediaFormat","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","global","VERSION","logHandler","contextualLoggersByNameMap","bind","scope","func","merge","args","defineLogLevel","ContextualLogger","defaultContext","context","setLevel","filterLevel","log","info","newLevel","enabledFor","lvl","debug","invoke","warn","time","label","timeEnd","level","msgArgs","globalLogger","L","setHandler","createDefaultHandler","formatter","messages","unshift","timerStartTimeByLabelMap","invokeConsoleMethod","hdlr","Function","console","Array","slice","timerLabel","Date","getTime","_enums","_mediaSources","MediaEntry","metaData","type","Unknown","Drm","licenseUrl","scheme","MediaFormat","mimeType","pathExt","wvm","mp4","mp3","_drm","MediaSource","KalturaFlavorAsset","id","flavorParamsId","fileExt","bitrate","width","height","frameRate","isOriginal","isWeb","containerFormat","videoCodecId","language","KalturaMediaEntry","entry","dataUrl","entryType","mediaType","flavorParamsIds","duration","_kalturaMetadata","_kalturaMetadata2","KalturaMetadataListResponse","_ServiceResult","responseObj","totalCount","metas","objects","map","meta","_kalturaAccessControlMessage","_kalturaAccessControlMessage2","_kalturaPlaybackSource","_kalturaPlaybackSource2","_kalturaRuleAction","_kalturaRuleAction2","_kalturaFlavorAsset","_kalturaFlavorAsset2","KalturaPlaybackContext","sources","actions","flavorAssets","flavor","_kalturaDrmPlaybackPluginData","_kalturaDrmPlaybackPluginData2","KalturaPlaybackSource","drm","deliveryProfileId","url","protocols","flavorIds","protocol","returnValue","split","copyProperties","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","getOwnPropertyNames","next","done","desc","getOwnPropertyDescriptor","return","INITIALIZED","instanceProperties","arg","isArray","_enumValuesFromArray","_enumValuesFromObject","freeze","enumValues","arr","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_pushEnumValue","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","keys","enumValue","ordinal","find","x","_ovpService","_ovpService2","DataLoaderManager","partnerID","_loaders","_multiRequest","getMultirequest","loader","execution_loader","isValid","startIndex","add","executionLoaderResponseMap","from","val","index","_loadersResponseMap","execute","_multiResponse","preparedData","prepareData","loaderDataIndexes","_baseEntryService","_baseEntryService2","_metaDataService","_metaDataService2","_kalturaPlaybackContext","_kalturaPlaybackContext2","_kalturaMetadataListResponse","_kalturaMetadataListResponse2","_kalturaBaseEntryListResponse","_kalturaBaseEntryListResponse2","MediaEntryLoader","_response","buildRequests","_entryId","entryId","list","getPlaybackContext","_requests","mediaEntryResponse","entries","playBackContextResult","metadataListResult","_sessionService","_sessionService2","SessionLoader","_partnerId","anonymousSession","_uiConfService","_uiConfService2","_kalturaUiConfResponse","_kalturaUiConfResponse2","UiConfigLoader","_uiConfId","uiConfId","uiConf","plugins","_kalturaMediaEntry","_playSourceUrlBuilder","_playSourceUrlBuilder2","_xmlParser","_xmlParser2","_mediaFormat","_mediaEntry","_mediaEntry2","_drm2","_mediaSource2","_mediaSources2","SUPPORTED_FORMATS","ProviderParser","mediaEntry","playbackContext","metadataList","kalturaSources","_getParsedSources","metadata","_parseMetaData","Image","Audio","Vod","Live","_isProgressiveSource","parsedSource","_parseAdaptiveSource","sourceFormat","progressiveSource","_parseProgressiveSources","playUrl","mediaSource","hasFlavorIds","extension","mimetype","flavorIdsArr","flavors","filter","indexOf","build","getProtocol","_getBaseProtocol","hasDrmData","drmParams","licenseURL","drmData","metaXml","domParser","DOMParser","xml","replace","parseFromString","metasObj","xmlToJson","kalturaSource","sourceId","bandwidth","splittedUrl","substring","OvpProvider","_providerParser","_providerParser2","_dataLoaderManager","_dataLoaderManager2","_mediaEntryLoader","_mediaEntryLoader2","_sessionLoader","_sessionLoader2","_uiConfigLoader","_uiConfigLoader2","_isAnonymous","_dataLoader","validateParams","fetchData","parseDataFromResponse","session","uiConfID","has","sessionLoader","uiConfLoader","pluginsJson","mediaLoader","getMediaEntry","PlaySourceUrlBuilder","urlParams","endsWith","string","searchString","KalturaAccessControlMessage","_kalturaMediaEntry2","KalturaBaseEntryListResponse","KalturaDrmPlaybackPluginData","KalturaMetadata","metadataProfileId","metadataProfileVersion","metadataObjectType","objectId","version","created","setUTCSeconds","createdAt","updated","updatedAt","KalturaRuleAction","KalturaUiConfResponse","description","objTypeAsString","htmlParams","swfUrl","confFilePath","confFile","confFileFeatures","confVars","useCdn","tags","swfUrlVersion","html5Url","partnerTags","objType","creationMode","BaseEntryService","_OvpService","tag","contextDataParams","flavorTags","getEntryListReqParams","redirectFromEntryId","responseProfile","fields","MetaDataService","objectIdEqual","metadataObjectTypeEqual","SessionService","widgetId","UiConfService","responseProfileParams","XmlParser","nodeType","attributes","j","attribute","item","nodeName","nodeValue","hasChildNodes","childNodes","old"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,mBAAAD,IAEAD,EAAA,mBAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAE,EAAAF,EACAG,GAAA,EACAV,WAUA,OANAK,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,GAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KA+DA,OAnCAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAG,EAAA,SAAAK,GAA2C,MAAAA,IAG3CR,EAAAS,EAAA,SAAAf,EAAAgB,EAAAC,GACAX,EAAAY,EAAAlB,EAAAgB,IACAG,OAAAC,eAAApB,EAAAgB,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAX,EAAAkB,EAAA,SAAAvB,GACA,GAAAgB,GAAAhB,KAAAwB,WACA,WAA2B,MAAAxB,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAK,GAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAlB,KAAAe,EAAAC,IAGtDrB,EAAAwB,EAAA,GAGAxB,IAAAyB,EAAA,MDgBM,SAAU9B,EAAQD,EAASM,GAEjC,YAWA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCARhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAIsB,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOT,UAAY,eAAkBW,IAElQE,EAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MErF3gBiB,EF6FA,WEnDnB,QAAAA,KAAsD,GAA1CC,GAA0CC,UAAAR,OAAA,OAAAS,KAAAD,UAAA,GAAAA,UAAA,GAAX,GAAIE,IAAOvB,GAAA5B,KAAA+C,GACpD/C,KAAKgD,QAAUA,EACfhD,KAAKgD,QAAQI,IAAI,eAAgB,oBFqJnC,MA1CAf,GAAaU,IACXH,IAAK,SACLlC,MAAO,WEpGP,IAAKV,KAAKqD,QACR,KAAM,IAAIC,OAAM,2CAGlB,OADUtD,MAAKqD,QAAU,YAAcrD,KAAKuD,SAAWvD,KAAKwD,OAAS,WAAaxD,KAAKwD,OAAS,OFgHhGZ,IAAK,gBACLlC,MAAO,WExGqB,GAAA+C,GAAAzD,KACxB0D,EAAU,GAAIC,eAClB,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BJ,EAAQK,mBAAqB,WAC3B,GAA2B,IAAvBL,EAAQM,WACV,GAAuB,MAAnBN,EAAQO,OAAgB,CAC1B,GAAIC,GAAeC,KAAKC,MAAMV,EAAQW,aAClCH,IAAyC,gBAAzB,KAAOA,EAAP,YAAAlC,EAAOkC,KAA8BA,EAAaI,MAAQJ,EAAaK,QACzFT,EAAOI,GAEPL,EAAQK,OAEVJ,GAAOJ,EAAQW,eAIrBX,EAAQc,KAAKf,EAAKgB,OAAQhB,EAAKiB,UAC/BjB,EAAKT,QAAQ2B,QAAQ,SAACjE,EAAOkC,GAC3Bc,EAAQkB,iBAAiBhC,EAAKlC,KAEhCgD,EAAQmB,KAAKpB,EAAKqB,cF4Gf/B,IAGTnD,GAAQmF,QEpMahC,GFwMf,SAAUlD,EAAQD,EAASM,GAEjC,YASA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MGrN1hBkD,GACJC,MAAO,gCACP5B,QAAS,gCACT6B,eACEC,UAAW,aACXC,WAAY,QACZC,OAAQ,IAISC,EHyND,WAClB,QAASA,KACP1D,EAAgB5B,KAAMsF,GAiBxB,MAdAjD,GAAaiD,EAAe,OAC1B1C,IAAK,MACLlC,MAAO,SG9NE6E,GACLA,GACFxE,OAAOyE,OAAOR,EAAeO,MHkO/B3C,IAAK,MACLlC,MAAO,WG9NP,MAAOsE,OHmOFM,IAGT1F,GAAQmF,QG/OaO,EHgPrB1F,EGnOQ0F,iBHuOF,SAAUzF,EAAQD,EAASM,GAEjC,YAUA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS0D,GAA2BC,EAAMnF,GAAQ,IAAKmF,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpF,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmF,EAAPnF,EAElO,QAASqF,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI/D,WAAU,iEAAoE+D,GAAeD,GAASrE,UAAYT,OAAOgF,OAAOD,GAAcA,EAAWtE,WAAaY,aAAe1B,MAAOmF,EAAU3E,YAAY,EAAOyB,UAAU,EAAM1B,cAAc,KAAe6E,IAAY/E,OAAOiF,eAAiBjF,OAAOiF,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GAXje/E,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,IAETd,EAAQsG,mBAAqBtG,EAAQuG,WAAavG,EAAQwG,eAAiBxG,EAAQyG,UAAYzG,EAAQ0G,UAAY1G,EAAQ2G,sBAAwB3G,EAAQ4G,YAAc5G,EAAQ6G,eAAiB7G,EAAQ8G,mBAAqB9G,EAAQ+G,OAAS/G,EAAQgH,sBAAwBhH,EAAQiH,WAAS3D,EItQjS,IAAA4D,GAAA5G,EAAA,KJgRaN,EI9QAiH,OJ8QiB,SAAUE,GAGtC,QAASF,KAGP,MAFAjF,GAAgB5B,KAAM6G,GAEfpB,EAA2BzF,MAAO6G,EAAOZ,WAAalF,OAAOiG,eAAeH,IAASI,MAAMjH,KAAMiD,YAG1G,MARA2C,GAAUiB,EAAQE,GAQXF,GACPC,EAASI,OItRJC,UACLC,eAAgB,qBAChBC,cAAe,oBACfC,SAAU,oBACVC,UAAW,sBACXC,SAAU,uBJ2RgB5H,EIvRfgH,sBJuR+C,SAAUa,GAGpE,QAASb,KAGP,MAFAhF,GAAgB5B,KAAM4G,GAEfnB,EAA2BzF,MAAO4G,EAAsBX,WAAalF,OAAOiG,eAAeJ,IAAwBK,MAAMjH,KAAMiD,YAGxI,MARA2C,GAAUgB,EAAuBa,GAQ1Bb,GACPE,EAASI,OI/RWC,UACpBO,WAAY,iBACZC,MAAO,EACPC,QAAS,EACTC,cAAe,EACfC,eAAgB,EAChBC,wBAAyB,EACzBC,yBAA0B,EAC1BC,mBAAoB,EACpBC,wBAAyB,KJoSdtI,EIjSA+G,OJiSiB,SAAUwB,GAGtC,QAASxB,KAGP,MAFA/E,GAAgB5B,KAAM2G,GAEflB,EAA2BzF,MAAO2G,EAAOV,WAAalF,OAAOiG,eAAeL,IAASM,MAAMjH,KAAMiD,YAG1G,MARA2C,GAAUe,EAAQwB,GAQXxB,GACPG,EAASI,OIzSJC,UACLiB,OAAQ,EACRC,OAAQ,EACRC,WAAY,EACZC,MAAO,EACPC,QAAS,EACTC,eAAgB,EAChBC,KAAM,EACNC,iBAAkB,EAClBC,UAAW,EACXC,WAAY,EACZC,UAAW,KJ8SYlJ,EI3SZ8G,mBJ2SyC,SAAUqC,GAG9D,QAASrC,KAGP,MAFA9E,GAAgB5B,KAAM0G,GAEfjB,EAA2BzF,MAAO0G,EAAmBT,WAAalF,OAAOiG,eAAeN,IAAqBO,MAAMjH,KAAMiD,YAGlI,MARA2C,GAAUc,EAAoBqC,GAQvBrC,GACPI,EAASI,OInTQC,UACjB6B,aAAc,gCACdC,WAAY,gCACZC,eAAgB,oCAChBC,gBAAiB,sCACjBC,MAAO,EACPC,SAAU,EACVC,KAAM,EACNC,QAAS,EACTC,eAAgB,KJwTG5J,EIrTR6G,eJqTiC,SAAUgD,GAGtD,QAAShD,KAGP,MAFA7E,GAAgB5B,KAAMyG,GAEfhB,EAA2BzF,MAAOyG,EAAeR,WAAalF,OAAOiG,eAAeP,IAAiBQ,MAAMjH,KAAMiD,YAG1H,MARA2C,GAAUa,EAAgBgD,GAQnBhD,GACPK,EAASI,OI7TIC,UACbuC,MAAO,EACPC,QAAS,EACTnB,QAAS,KJkUO5I,EI9TL4G,YJ8T2B,SAAUoD,GAGhD,QAASpD,KAGP,MAFA5E,GAAgB5B,KAAMwG,GAEff,EAA2BzF,MAAOwG,EAAYP,WAAalF,OAAOiG,eAAeR,IAAcS,MAAMjH,KAAMiD,YAGpH,MARA2C,GAAUY,EAAaoD,GAQhBpD,GACPM,EAASI,OItUCC,UACV0C,iBAAkB,EAClBC,kBAAmB,EACnBC,aAAc,wBACdC,OAAQ,EACRC,SAAU,qBACVC,WAAY,EACZ3B,MAAO,EACPC,QAAS,EACT2B,QAAS,EACTC,SAAU,EACVC,QAAS,EACTC,WAAY,KJ2Uc1K,EIxUf2G,sBJwU+C,SAAUgE,GAGpE,QAAShE,KAGP,MAFA3E,GAAgB5B,KAAMuG,GAEfd,EAA2BzF,MAAOuG,EAAsBN,WAAalF,OAAOiG,eAAeT,IAAwBU,MAAMjH,KAAMiD,YAGxI,MARA2C,GAAUW,EAAuBgE,GAQ1BhE,GACPO,EAASI,OIhVWC,UACpBqD,mBAAoB,EACpBC,SAAU,EACVC,SAAU,EACVC,mBAAoB,EACpBP,SAAU,EACVQ,cAAe,KJqVDhL,EIlVH0G,UJkVuB,SAAUuE,GAG5C,QAASvE,KAGP,MAFA1E,GAAgB5B,KAAMsG,GAEfb,EAA2BzF,MAAOsG,EAAUL,WAAalF,OAAOiG,eAAeV,IAAYW,MAAMjH,KAAMiD,YAGhH,MARA2C,GAAUU,EAAWuE,GAQdvE,GACPQ,EAASI,OI1VDC,UACR2D,WAAYpK,OAAQ,GACpBqK,gBAAiBrK,MAAO,+BACxBsK,YAAatK,MAAO,GACpBuK,KAAMvK,MAAO,GACbwK,UAAWxK,MAAO,GAClByK,MAAOzK,MAAO,GACd0K,aAAc1K,MAAO,GACrB2K,cAAe3K,MAAO,GACtB4K,UAAW5K,MAAO,OJ+VJd,EI5VHyG,UJ4VuB,SAAUkF,GAG5C,QAASlF,KAGP,MAFAzE,GAAgB5B,KAAMqG,GAEfZ,EAA2BzF,MAAOqG,EAAUJ,WAAalF,OAAOiG,eAAeX,IAAYY,MAAMjH,KAAMiD,YAGhH,MARA2C,GAAUS,EAAWkF,GAQdlF,GACPS,EAASI,OIpWDC,UACRqE,OAAQ9K,MAAO,GACf+K,OAAQ/K,MAAO,GACfgL,OAAQhL,MAAO,GACfiL,mBAAoBjL,MAAO,KAC3BkL,2BAA4BlL,MAAO,KACnCmL,wBAAyBnL,MAAO,KAChCoL,uBAAwBpL,MAAO,QJyWZd,EIrWRwG,eJqWiC,SAAU2F,GAGtD,QAAS3F,KAGP,MAFAxE,GAAgB5B,KAAMoG,GAEfX,EAA2BzF,MAAOoG,EAAeH,WAAalF,OAAOiG,eAAeZ,IAAiBa,MAAMjH,KAAMiD,YAG1H,MARA2C,GAAUQ,EAAgB2F,GAQnB3F,GACPU,EAASI,OI7WIC,UAAU,MAAO,OAAQ,QAAS,QAAS,aJiXzCvH,EI/WJuG,WJ+WyB,SAAU6F,GAG9C,QAAS7F,KAGP,MAFAvE,GAAgB5B,KAAMmG,GAEfV,EAA2BzF,MAAOmG,EAAWF,WAAalF,OAAOiG,eAAeb,IAAac,MAAMjH,KAAMiD,YAGlH,MARA2C,GAAUO,EAAY6F,GAQf7F,GACPW,EAASI,OIvXAC,UACT8E,OAAQ,EACRC,oBAAqB,EACrBC,cAAe,EACfC,gBAAiB,EACjBlB,SAAU,EACVmB,WAAY,EACZC,QAAS,EACTC,UAAW,EACXC,YAAa,EACbC,cAAe,GACfC,YAAa,GACbC,cAAe,GACfC,UAAW,GACXC,UAAW,GACXC,mBAAoB,GACpBC,YAAa,GACbC,0BAA2B,GAC3BC,QAAS,GACTC,IAAK,GACLC,QAAS,GACTC,WAAY,MJ4XWxN,EIzXZsG,mBJyXyC,SAAUmH,GAG9D,QAASnH,KAGP,MAFAtE,GAAgB5B,KAAMkG,GAEfT,EAA2BzF,MAAOkG,EAAmBD,WAAalF,OAAOiG,eAAed,IAAqBe,MAAMjH,KAAMiD,YAGlI,MARA2C,GAAUM,EAAoBmH,GAQvBnH,GACPY,EAASI,OIjYQC,UACjBmG,OAAQ,EACRC,SAAU,KJwYN,SAAU1N,EAAQD,EAASM,GAEjC,YAiBA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAhBhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MK7iBhiB2L,EAAAvN,EAAA,GLijBIwN,EAAwBF,EAAuBC,GKhjBnDE,EAAAzN,EAAA,GLojBI0N,EAAWJ,EAAuBG,GKljBhCE,EAASD,EAAA7I,QAAc5D,MAOR2M,ELyjBJ,WACf,QAASA,KACPlM,EAAgB5B,KAAM8N,GA6BxB,MA1BAzL,GAAayL,EAAY,OACvBlL,IAAK,kBAULlC,MAAO,SKhkBcqN,EAAYC,GACjC,GAAIC,GAAYJ,EAAO3I,aACvBnE,QAAOyE,OAAOyI,GAAYF,GAAIA,IAC1BC,GACFjN,OAAOyE,OAAOyI,GAAYD,UAAWA,GAEvC,IAAIE,GAAW,GAAAR,GAAA3I,OAKf,OAJAmJ,GAASzJ,OAAS,OAClByJ,EAAS3K,QAvBgB,eAwBzB2K,EAAS7K,QAAUwK,EAAO5I,MAC1BiJ,EAASpJ,OAASmJ,EACXC,MLokBFJ,IAGTlO,GAAQmF,QK3lBa+I,GL+lBf,SAAUjO,EAAQD,EAASM,GAEjC,YAOA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAJhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAST,IMnnBqByN,GAsBnB,QAAAA,GAAYC,GAAkBxM,EAAA5B,KAAAmO,GAAAnO,KAhB9BqO,UAAoB,EAiBU,wBAAxBD,EAASE,YACXtO,KAAKqO,UAAW,EAChBrO,KAAKuO,MAAQ,GAAIC,GAAaJ,EAAS9J,KAAM8J,EAAS7J,UAGtDvE,KAAKyO,KAAOL,ENgoBlBxO,GAAQmF,QM5pBaoJ,CN8pBrB,IMznBMK,GAiBJ,QAAAA,GAAYlK,EAAcC,GAAiB3C,EAAA5B,KAAAwO,GACzCxO,KAAKsE,KAAOA,EACZtE,KAAKuE,QAAUA,INgoBb,SAAU1E,EAAQD,EAASM,GAEjC,YAgBA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAbhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,IAETd,EAAQ8O,cAAYxL,EAEpB,IAAIb,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MOvsBhiB6M,EAAAzO,EAAA,GAAY0O,EP6sBZ,SAAiCzM,GAAO,GAAIA,GAAOA,EAAId,WAAc,MAAOc,EAAc,IAAI0M,KAAa,IAAW,MAAP1M,EAAe,IAAK,GAAIS,KAAOT,GAAWpB,OAAOS,UAAUC,eAAelB,KAAK4B,EAAKS,KAAMiM,EAAOjM,GAAOT,EAAIS,GAAgC,OAAtBiM,GAAO9J,QAAU5C,EAAY0M,GAF3NF,GOzsBjCG,EP+sBc,WO9sBlB,QAAAA,GAAYC,GAAkBnN,EAAA5B,KAAA8O,GAC5BF,EAASI,YAAYD,OP8tBvB,MAVA1M,GAAayM,IACXlM,IAAK,MACLlC,MAAO,SOntBLE,GACF,MAAKA,GAGEgO,EAASzN,IAAIP,GAFXgO,MPytBJE,KOntBLG,EAAS,GAAIH,IAAeI,aAAcN,EAASO,QACjDT,GACJS,MAASP,EAASO,MAClBC,KAAQR,EAASQ,KACjBC,KAAQT,EAASS,KACjBC,KAAQV,EAASU,KACjBlH,MAASwG,EAASxG,MAClBmH,IAAOX,EAASW,IPytBlB3P,GAAQmF,QOttBOkK,EPutBfrP,EOttBQ8O,aP0tBF,SAAU7O,EAAQD,EAASM,GAEjC,YAsBA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASqN,GAAgBrN,EAAKS,EAAKlC,GAAiK,MAApJkC,KAAOT,GAAOpB,OAAOC,eAAemB,EAAKS,GAAOlC,MAAOA,EAAOQ,YAAY,EAAMD,cAAc,EAAM0B,UAAU,IAAkBR,EAAIS,GAAOlC,EAAgByB,EAE3M,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS0D,GAA2BC,EAAMnF,GAAQ,IAAKmF,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpF,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmF,EAAPnF,EAElO,QAASqF,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI/D,WAAU,iEAAoE+D,GAAeD,GAASrE,UAAYT,OAAOgF,OAAOD,GAAcA,EAAWtE,WAAaY,aAAe1B,MAAOmF,EAAU3E,YAAY,EAAOyB,UAAU,EAAM1B,cAAc,KAAe6E,IAAY/E,OAAOiF,eAAiBjF,OAAOiF,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GA3Bje/E,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,IAETd,EAAQ6P,uBAAqBvM,EAE7B,IAAIb,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MQ9vBhiB4N,EAAAxP,EAAA,GRkwBIyP,EAAmBnC,EAAuBkC,GQjwB9CE,EAAA1P,EAAA,GRqwBI2P,EAAsBrC,EAAuBoC,GQpwBjDE,EAAA5P,EAAA,GRwwBI6P,EAAWvC,EAAuBsC,GQpwBhCE,EAASD,EAAAhL,QAAO5D,IAAI,eAML8O,ERoxBK,SAAUC,GQzwBlC,QAAAD,KAAcrO,EAAA5B,KAAAiQ,EAAA,IAAAxM,GAAAgC,EAAAzF,MAAAiQ,EAAAhK,WAAAlF,OAAAiG,eAAAiJ,IAAA1P,KAAAP,MAAA,OAAAyD,GALd0M,YAKc1M,ER60Bd,MAnEAmC,GAAUqK,EAAqBC,GA4B/B7N,EAAa4N,IACXrN,IAAK,MACLlC,MAAO,SQ9xBLgD,GACF1D,KAAKmQ,SAASC,KAAK1M,EACnB,IAAI2M,MACAC,GAAsB/M,QAASG,EAAQH,QAASC,OAAQE,EAAQF,OAIpE,OAHAzC,QAAOyE,OAAO6K,EAAdb,KAA+BxP,KAAKmQ,SAAS1N,OAAS1B,OAAOyE,OAAO8K,EAAY5M,EAAQoB,UACxF/D,OAAOyE,OAAO6K,EAAerQ,KAAK8E,QAClC9E,KAAK8E,OAASuL,EACPrQ,QRwyBP4C,IAAK,UACLlC,MAAO,WQjyBkB,GAAA6P,GAAAvQ,IACzB,KACEA,KAAK8E,OAASX,KAAKqM,UAAUxQ,KAAK8E,QAEpC,MAAO2L,GACLT,EAAOzB,MAAP,GAAgBkC,EAAIlM,SAEtB,MAAO,IAAIX,SAAQ,SAACC,EAASC,GAC3ByM,EAAKG,gBAAgBC,KAAK,SAAAlC,GACtB5K,EAAQ,GAAI4L,GAAmBhB,KAEjC,SAAAgC,GAEE3M,EADI8M,2CAA+DH,EAA/D,cRwyBLR,GACPN,EAAiB5K,QAQnBnF,GAAQmF,QQj2BakL,CRm2BrB,IQtyBaR,GRkzBb7P,EQlzBa6P,mBAiBX,QAAAA,GAAYrB,GAAkB,GAAAyC,GAAA7Q,IAAA4B,GAAA5B,KAAAyP,GAAAzP,KAN9B8Q,WAOE9Q,KAAK+Q,SAAU,EACf3C,EAASzJ,QAAQ,SAACqM,GAChB,GAAIC,GAA+B,GAAApB,GAAA9K,QAAkBiM,EAErD,IADAH,EAAKC,QAAQV,KAAKa,GACdA,EAAc5C,SAGhB,MAFA2B,GAAOzB,MAAP,8CAA2D0C,EAAc1C,MAAMjK,KAA/E,iBAAoG2M,EAAc1C,MAAMhK,QAAxH,UACAsM,EAAKE,SAAU,ORozBjB,SAAUlR,EAAQD,EAASM,GAEjC,YAiBA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAdhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MS95BhiBoP,EAAAhR,EAAA,IAOqBiR,GT+5BrB,SAAgChP,GAAcA,GAAOA,EAAId,YAJd6P,GSj6B3ChR,EAAA,IT66BmB,WSh5BjB,QAAAiR,KAAcvP,EAAA5B,KAAAmR,GACZnR,KAAKoR,eACLpR,KAAKqR,QACLrR,KAAKsR,OTy8BP,MArBAjP,GAAa8O,IACXvO,IAAK,MACLlC,MAAO,SS76BL6Q,EAAqBC,GACvB,GAAIA,EACF,OAAQA,EAAY5Q,MAClB,IAAK,MACHZ,KAAKoR,YAAYhB,KAAKmB,EACtB,MACF,KAAK,OACHvR,KAAKqR,KAAKjB,KAAKmB,EACf,MACF,KAAK,MACHvR,KAAKsR,IAAIlB,KAAKmB,QTs7BfJ,KAGTvR,GAAQmF,QSt+BaoM,GT0+Bf,SAAUtR,EAAQD,EAASM,GUl/BjC,GAAAuR,GAAAC;;;;;CAKA,SAAAC,GACA,YAGA,IAAA1C,KAGAA,GAAA2C,QAAA,OAGA,IAAAC,GAGAC,KAGAC,EAAA,SAAAC,EAAAC,GACA,kBACA,MAAAA,GAAAhL,MAAA+K,EAAA/O,aAKAiP,EAAA,WACA,GAAAtP,GAAAvC,EAAA8R,EAAAlP,UAAAV,EAAA4P,EAAA,EACA,KAAA9R,EAAA,EAAaA,EAAA8R,EAAA1P,OAAiBpC,IAC9B,IAAAuC,IAAAuP,GAAA9R,GACAuC,IAAAL,KAAA4P,EAAA9R,GAAAoB,eAAAmB,KACAL,EAAAK,GAAAuP,EAAA9R,GAAAuC,GAIA,OAAAL,IAIA6P,EAAA,SAAA1R,EAAAE,GACA,OAAUF,QAAAE,QAIVqO,GAAAE,MAAAiD,EAAA,WACAnD,EAAAG,KAAAgD,EAAA,UACAnD,EAAAI,KAAA+C,EAAA,UACAnD,EAAAK,KAAA8C,EAAA,UACAnD,EAAA7G,MAAAgK,EAAA,WACAnD,EAAAM,IAAA6C,EAAA,SAIA,IAAAC,GAAA,SAAAC,GACAtS,KAAAuS,QAAAD,EACAtS,KAAAwS,SAAAF,EAAAG,aACAzS,KAAA0S,IAAA1S,KAAA2S,KAGAN,GAAA7Q,WAEAgR,SAAA,SAAAI,GAEAA,GAAA,SAAAA,KACA5S,KAAAuS,QAAAE,YAAAG,IAKAC,WAAA,SAAAC,GACA,GAAAL,GAAAzS,KAAAuS,QAAAE,WACA,OAAAK,GAAApS,OAAA+R,EAAA/R,OAGAqS,MAAA,WACA/S,KAAAgT,OAAA/D,EAAAE,MAAAlM,YAGA0P,KAAA,WACA3S,KAAAgT,OAAA/D,EAAAG,KAAAnM,YAGAgQ,KAAA,WACAjT,KAAAgT,OAAA/D,EAAAK,KAAArM,YAGAsL,MAAA,WACAvO,KAAAgT,OAAA/D,EAAA7G,MAAAnF,YAGAiQ,KAAA,SAAAC,GACA,gBAAAA,MAAA1Q,OAAA,GACAzC,KAAAgT,OAAA/D,EAAAI,MAAA8D,EAAA,WAIAC,QAAA,SAAAD,GACA,gBAAAA,MAAA1Q,OAAA,GACAzC,KAAAgT,OAAA/D,EAAAI,MAAA8D,EAAA,SAKAH,OAAA,SAAAK,EAAAC,GACAzB,GAAA7R,KAAA6S,WAAAQ,IACAxB,EAAAyB,EAAApB,GAA+BmB,SAAerT,KAAAuS,WAM9C,IAAAgB,GAAA,GAAAlB,IAA0CI,YAAAxD,EAAAM,OAG1C,WAEA,GAAAiE,GAAAvE,CAEAuE,GAAAX,WAAAd,EAAAwB,IAAAV,YACAW,EAAAT,MAAAhB,EAAAwB,IAAAR,OACAS,EAAAN,KAAAnB,EAAAwB,IAAAL,MACAM,EAAAJ,QAAArB,EAAAwB,IAAAH,SACAI,EAAAb,KAAAZ,EAAAwB,IAAAZ,MACAa,EAAAP,KAAAlB,EAAAwB,IAAAN,MACAO,EAAAjF,MAAAwD,EAAAwB,IAAAhF,OAGAiF,EAAAd,IAAAc,EAAAb,QAMA1D,EAAAwE,WAAA,SAAAxB,GACAJ,EAAAI,GAKAhD,EAAAuD,SAAA,SAAAa,GAEAE,EAAAf,SAAAa,EAGA,QAAAzQ,KAAAkP,GACAA,EAAArQ,eAAAmB,IACAkP,EAAAlP,GAAA4P,SAAAa,IAOApE,EAAA9N,IAAA,SAAAP,GAEA,MAAAkR,GAAAlR,KACAkR,EAAAlR,GAAA,GAAAyR,GAAAH,GAAmEtR,QAAa2S,EAAAhB,YAMhFtD,EAAAyE,qBAAA,SAAA3E,GACAA,QAEAA,EAAA4E,UAAA5E,EAAA4E,WAAA,SAAAC,EAAArB,GAEAA,EAAA3R,MACAgT,EAAAC,QAAA,IAAAtB,EAAA3R,KAAA,KAMA,IAAAkT,MAGAC,EAAA,SAAAC,EAAAJ,GACAK,SAAAzS,UAAAyF,MAAA1G,KAAAyT,EAAAE,QAAAN,GAIA,0BAAAM,SACA,aAGA,SAAAN,EAAArB,GAEAqB,EAAAO,MAAA3S,UAAA4S,MAAA7T,KAAAqT,EAEA,IACAS,GADAL,EAAAE,QAAAxB,GAGAH,GAAAc,QAAApE,EAAAI,MACAgF,GAAA9B,EAAA3R,KAAA,IAAA2R,EAAA3R,KAAA,SAAAgT,EAAA,GAEA,UAAAA,EAAA,GACAM,QAAAhB,KACAgB,QAAAhB,KAAAmB,GAGAP,EAAAO,IAAA,GAAAC,OAAAC,UAIAL,QAAAd,QACAc,QAAAd,QAAAiB,GAGAN,EAAAC,GAAAK,EAAA,OACA,GAAAC,OAAAC,UAAAT,EAAAO,IAAA,SAMA9B,EAAAc,QAAApE,EAAAK,MAAA4E,QAAAjB,KACAe,EAAAE,QAAAjB,KACKV,EAAAc,QAAApE,EAAA7G,OAAA8L,QAAA3F,MACLyF,EAAAE,QAAA3F,MACKgE,EAAAc,QAAApE,EAAAG,MAAA8E,QAAAvB,OACLqB,EAAAE,QAAAvB,MAGA5D,EAAA4E,UAAAC,EAAArB,GACAwB,EAAAC,EAAAJ,MAOA3E,EAAAD,YAAA,SAAAD,GACAE,EAAAuD,SAAAzD,KAAAG,cAAAD,EAAAE,OACAF,EAAAwE,WAAAxE,EAAAyE,qBAAA3E,KAKA0C,EAAA,MAAAvO,MAAAwO,EAAA,kBAAAD,KAAAlR,KAAAX,EAAAM,EAAAN,EAAAC,GAAA4R,KAAA5R,EAAAD,QAAA8R,OV4gCM,SAAU7R,EAAQD,EAASM,GAEjC,YAeA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAZhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GWlwCT,IAAA8T,GAAAtU,EAAA,GACAuU,EAAAvU,EAAA,GAMqBwU,GXowCrB,SAAgCvS,GAAcA,GAAOA,EAAId,YAFboT,GWnuC1C,QAAAC,KAAc9S,EAAA5B,KAAA0U,GACZ1U,KAAK2U,SAAW,GAAIxR,KACpBnD,KAAK4U,KAAOJ,EAAApO,eAAeyO,SXixC/BjV,GAAQmF,QWlzCa2P,GXszCf,SAAU7U,EAAQD,EAASM,GAEjC,YASA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GYl0CT,IAMqBoU,IANrB5U,EAAA,GAwBE,QAAA4U,GAAYC,EAAoBC,GAAgBpT,EAAA5B,KAAA8U,GAC9C9U,KAAK+U,WAAaA,EAClB/U,KAAKgV,OAASA,GZ40ClBpV,GAAQmF,QYh2Ca+P,GZo2Cf,SAAUjV,EAAQD,EAASM,GAEjC,YAUA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS0D,GAA2BC,EAAMnF,GAAQ,IAAKmF,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpF,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmF,EAAPnF,EAElO,QAASqF,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI/D,WAAU,iEAAoE+D,GAAeD,GAASrE,UAAYT,OAAOgF,OAAOD,GAAcA,EAAWtE,WAAaY,aAAe1B,MAAOmF,EAAU3E,YAAY,EAAOyB,UAAU,EAAM1B,cAAc,KAAe6E,IAAY/E,OAAOiF,eAAiBjF,OAAOiF,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GAXje/E,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,IAETd,EAAQqV,gBAAc/R,Ean3CtB,IAAA4D,GAAA5G,EAAA,Kb63CkBN,Ea33CLqV,Yb23C2B,SAAUlO,GAGhD,QAASkO,KAGP,MAFArT,GAAgB5B,KAAMiV,GAEfxP,EAA2BzF,MAAOiV,EAAYhP,WAAalF,OAAOiG,eAAeiO,IAAchO,MAAMjH,KAAMiD,YAGpH,MARA2C,GAAUqP,EAAalO,GAQhBkO,GACPnO,EAASI,Oan4CCC,UACVkK,MACE6D,eACE,MAAO,wBAETC,cACE,MAAO,QAGX7D,KACE4D,eACE,MAAO,yBAETC,cACE,MAAO,SAGXC,KACEF,eACE,MAAO,aAETC,cACE,MAAO,QAGXE,KACEH,eACE,MAAO,aAETC,cACE,MAAO,QAGXG,KACEJ,eACE,MAAO,cAETC,cACE,MAAO,Wb44CP,SAAUtV,EAAQD,EAASM,GAEjC,YAaA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAVhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,Gc57CT,IAAA6U,GAAArV,EAAA,IAMqBsV,Gd67CrB,SAAgCrT,GAAcA,GAAOA,EAAId,YAFtBkU,Gc94CjC,QAAAC,KAAa5T,EAAA5B,KAAAwV,Idy8Cf5V,GAAQmF,Qct/CayQ,Gd0/Cf,SAAU3V,EAAQD,EAASM,GAEjC,YASA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GetgDT,IAMqB+U,IANrBvV,EAAA,GAkFE,QAAAuV,GAAYhH,GAAW7M,EAAA5B,KAAAyV,GACrBzV,KAAK0V,GAAKjH,EAAKiH,GACf1V,KAAK2V,eAAiBlH,EAAKkH,eAC3B3V,KAAK4V,QAAUnH,EAAKmH,QACpB5V,KAAK6V,QAAUpH,EAAKoH,QACpB7V,KAAK8V,MAAQrH,EAAKqH,MAClB9V,KAAK+V,OAAStH,EAAKsH,OACnB/V,KAAK0V,GAAKjH,EAAKiH,GACf1V,KAAKgW,UAAYvH,EAAKuH,UACtBhW,KAAKiW,WAAaxH,EAAKwH,WACvBjW,KAAKkW,MAAQzH,EAAKyH,MAClBlW,KAAKmW,gBAAkB1H,EAAK0H,gBAC5BnW,KAAKoW,aAAe3H,EAAK2H,aACzBpW,KAAKiE,OAASwK,EAAKxK,OACnBjE,KAAKqW,SAAW5H,EAAK4H,SACrBrW,KAAKmT,MAAQ1E,EAAK0E,OfghDtBvT,GAAQmF,Qe3mDa0Q,Gf+mDf,SAAU5V,EAAQD,EAASM,GAEjC,YASA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GgB3nDT,IAMqB4V,IANrBpW,EAAA,GA+CE,QAAAoW,GAAYC,GAAe3U,EAAA5B,KAAAsW,GACzBtW,KAAK0V,GAAKa,EAAMb,GAChB1V,KAAKY,KAAO2V,EAAM3V,KAClBZ,KAAKwW,QAAUD,EAAMC,QACrBxW,KAAK4U,KAAO2B,EAAM3B,KAClB5U,KAAKyW,UAAYF,EAAMG,UACvB1W,KAAK2W,gBAAkBJ,EAAMI,gBAC7B3W,KAAK4W,SAAWL,EAAMK,UhBqoD1BhX,GAAQmF,QgBrrDauR,GhByrDf,SAAUzW,EAAQD,EAASM,GAEjC,YAeA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS0D,GAA2BC,EAAMnF,GAAQ,IAAKmF,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpF,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmF,EAAPnF,EAElO,QAASqF,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI/D,WAAU,iEAAoE+D,GAAeD,GAASrE,UAAYT,OAAOgF,OAAOD,GAAcA,EAAWtE,WAAaY,aAAe1B,MAAOmF,EAAU3E,YAAY,EAAOyB,UAAU,EAAM1B,cAAc,KAAe6E,IAAY/E,OAAOiF,eAAiBjF,OAAOiF,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GAlBje/E,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GiBrsDT,IAAAkP,GAAA1P,EAAA,GjB0sDI2P,EAAsBrC,EAAuBoC,GiBzsDjDiH,EAAA3W,EAAA,IjB6sDI4W,EAAoBtJ,EAAuBqJ,GiBvsD1BE,EjBqtDa,SAAUC,GiBzsD1C,QAAAD,GAAYE,GAAqBrV,EAAA5B,KAAA+W,EAAA,IAAAtT,GAAAgC,EAAAzF,MAAA+W,EAAA9Q,WAAAlF,OAAAiG,eAAA+P,IAAAxW,KAAAP,KACzBiX,GADyB,OAE1BxT,GAAK4K,WACR5K,EAAKyT,WAAaD,EAAYC,WAC1BzT,EAAKyT,WAAa,IACpBzT,EAAK0T,SACLF,EAAYG,QAAQC,IAAI,SAAAC,GAAA,MAAQ7T,GAAK0T,MAAM/G,KAAK,GAAA0G,GAAA/R,QAAoBuS,QANzC7T,EjBsuDjC,MA5BAmC,GAAUmR,EAA6BC,GA4BhCD,GACPlH,EAAoB9K,QAEtBnF,GAAQmF,QiBrvDagS,GjByvDf,SAAUlX,EAAQD,EAASM,GAEjC,YA2BA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS0D,GAA2BC,EAAMnF,GAAQ,IAAKmF,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpF,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmF,EAAPnF,EAElO,QAASqF,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI/D,WAAU,iEAAoE+D,GAAeD,GAASrE,UAAYT,OAAOgF,OAAOD,GAAcA,EAAWtE,WAAaY,aAAe1B,MAAOmF,EAAU3E,YAAY,EAAOyB,UAAU,EAAM1B,cAAc,KAAe6E,IAAY/E,OAAOiF,eAAiBjF,OAAOiF,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GA9Bje/E,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GkBtwDT,IAAAkP,GAAA1P,EAAA,GlB2wDI2P,EAAsBrC,EAAuBoC,GkB1wDjD2H,EAAArX,EAAA,IlB8wDIsX,EAAgChK,EAAuB+J,GkB7wD3DE,EAAAvX,EAAA,IlBixDIwX,EAA0BlK,EAAuBiK,GkBhxDrDE,EAAAzX,EAAA,IlBoxDI0X,EAAsBpK,EAAuBmK,GkBnxDjDE,EAAA3X,EAAA,IlBuxDI4X,EAAuBtK,EAAuBqK,GkBjxD7BE,ElB+xDQ,SAAUf,GkBrwDrC,QAAAe,GAAY3J,GAAkBxM,EAAA5B,KAAA+X,EAAA,IAAAtU,GAAAgC,EAAAzF,MAAA+X,EAAA9R,WAAAlF,OAAAiG,eAAA+Q,IAAAxX,KAAAP,KACtBoO,GACN,IAF4B3K,EArB9BuU,WAqB8BvU,EAhB9BwU,WAgB8BxU,EAX9BmQ,YAW8BnQ,EAN9ByU,iBAQOzU,EAAK4K,SAAU,CAElB,GAAIuF,GAAWxF,EAASwF,QACpBA,IACFA,EAASyD,IAAI,SAAA9S,GAAA,MAAWd,GAAKmQ,SAASxD,KAAK,GAAAoH,GAAAzS,QAAgCR,KAG7E,IAAI0T,GAAU7J,EAAS6J,OACnBA,IACFA,EAAQZ,IAAI,SAAA7T,GAAA,MAAUC,GAAKwU,QAAQ7H,KAAK,GAAAwH,GAAA7S,QAAsBvB,KAGhE,IAAIwU,GAAU5J,EAAS4J,OACnBA,IACFA,EAAQX,IAAI,SAAA9F,GAAA,MAAU9N,GAAKuU,QAAQ5H,KAAK,GAAAsH,GAAA3S,QAA0BwM,KAGpE,IAAI2G,GAAe9J,EAAS8J,YACxBA,IACFA,EAAab,IAAI,SAAAc,GAAA,MAAU1U,GAAKyU,aAAa9H,KAAK,GAAA0H,GAAA/S,QAAuBoT,MArBjD,MAAA1U,GlB40D9B,MAtEAmC,GAAUmS,EAAwBf,GAsE3Be,GACPlI,EAAoB9K,QAEtBnF,GAAQmF,QkBz2DagT,GlB62Df,SAAUlY,EAAQD,EAASM,GAEjC,YAeA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAZhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MmBh4DhiBsW,EAAAlY,EAAA,InBo4DImY,EAEJ,SAAgClW,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,IAF3BiW,GmB93DvCE,EnBw4DO,WmBp2D1B,QAAAA,GAAY/G,GAAgB,GAAA9N,GAAAzD,IAAA4B,GAAA5B,KAAAsY,GAAAtY,KAN5BuY,OAOEvY,KAAKqF,OAASkM,EAAOlM,OACrBrF,KAAKwY,kBAAoBjH,EAAOiH,kBAChCxY,KAAKyY,IAAMlH,EAAOkH,IAClBzY,KAAK0Y,UAAYnH,EAAOmH,UACxB1Y,KAAK2Y,UAAYpH,EAAOoH,UAEpBpH,EAAOgH,KACThH,EAAOgH,IAAIlB,IAAI,SAAAkB,GAAA,MAAO9U,GAAK8U,IAAInI,KAAK,GAAAiI,GAAAtT,QAAiCwT,MnBq8DzE,MA1CAlW,GAAaiW,IACX1V,IAAK,aACLlC,MAAO,WmBj5DP,MAAOV,MAAKuY,KAAOvY,KAAKuY,IAAI9V,OAAS,KnB45DrCG,IAAK,eACLlC,MAAO,WmBp5DP,QAASV,KAAK2Y,WAAa3Y,KAAK2Y,UAAUlW,OAAS,KnB+5DnDG,IAAK,cACLlC,MAAO,SmBx5DGkY,GACV,GAAIC,GAAsB,EAC1B,IAAI7Y,KAAK0Y,WAAa1Y,KAAK0Y,UAAUjW,OAAS,EAAG,CACbzC,KAAK0Y,UAAUI,MAAM,KAC1CnU,QAAQ,SAACjD,GAChBA,GAAKkX,IACPC,EAAcnX,SAIf,IAAgB,QAAZkX,EACP,MAAOA,EAET,OAAOC,OnB25DFP,IAGT1Y,GAAQmF,QmBp/DauT,GnBw/Df,SAAUzY,EAAQD,EAASM,GAEjC,YoBt/DA,SAAA0B,GAAAC,EAAAC,GAAiD,KAAAD,YAAAC,IAA0C,SAAAC,WAAA,qCAuK3F,QAAAgX,GAAAxW,EAAAgP,GAGA,GAAAyH,IAAA,EACAC,GAAA,EACAC,MAAAhW,EAEA,KACA,OAAAiW,GAAAC,EAAArY,OAAAsY,oBAAA9H,GAAAtP,OAAAC,cAA4F8W,GAAAG,EAAAC,EAAAE,QAAAC,MAAmEP,GAAA,GAC/J,GAAApW,GAAAuW,EAAAzY,MAEA8Y,EAAAzY,OAAA0Y,yBAAAlI,EAAA3O,EACA7B,QAAAC,eAAAuB,EAAAK,EAAA4W,IAEK,MAAA/I,GACLwI,GAAA,EACAC,EAAAzI,EACK,QACL,KACAuI,GAAAI,EAAAM,QACAN,EAAAM,SAES,QACT,GAAAT,EACA,KAAAC,IAKA,MAAA3W,GA7MA,GAAAP,GAAA,kBAAAC,SAAA,gBAAAA,QAAAC,SAAA,SAAAC,GAAoG,aAAAA,IAAqB,SAAAA,GAAmB,MAAAA,IAAA,kBAAAF,SAAAE,EAAAC,cAAAH,OAAA,eAAAE,IAE5IE,EAAA,WAAgC,QAAAC,GAAAC,EAAAC,GAA2C,OAAAnC,GAAA,EAAgBA,EAAAmC,EAAAC,OAAkBpC,IAAA,CAAO,GAAAqC,GAAAF,EAAAnC,EAA2BqC,GAAAxB,WAAAwB,EAAAxB,aAAA,EAAwDwB,EAAAzB,cAAA,EAAgC,SAAAyB,OAAAC,UAAA,GAAuD5B,OAAAC,eAAAuB,EAAAG,EAAAE,IAAAF,IAA+D,gBAAAZ,EAAAe,EAAAC,GAA2L,MAAlID,IAAAP,EAAAR,EAAAN,UAAAqB,GAAqEC,GAAAR,EAAAR,EAAAgB,GAA6DhB,KAExhBf,QAAAC,eAAApB,EAAA,cACAc,OAAA,IAEAd,EAAAmZ,gBAIA,IAAAY,GAAA1X,QAQArC,GAAAsH,KAAA,WAUA,QAAAA,KACA,GAAA0S,GAAA3W,UAAAR,QAAA,OAAAS,KAAAD,UAAA,OAAAC,GAAAD,UAAA,EAMA,IAJArB,EAAA5B,KAAAkH,MAIczF,eAAAlB,KAAAP,KAAAoC,YAAAuX,GACd,SAAArW,OAAA,qCAEA,sBAAAsW,EAAA,YAAA5X,EAAA4X,KAAA,OAAAA,GACAb,EAAA/Y,KAAA4Z,GAqIA,MAzHAvX,GAAA6E,IACAtE,IAAA,WAKAlC,MAAA,WACA,MAAAV,MAAAoC,YAAAxB,KAAA,IAAAZ,KAAAY,UAGAgC,IAAA,WACAlC,MAAA,SAAAmZ,GAcA,MAbA9Y,QAAAC,eAAAhB,KAAA,cACAU,SACAO,cAAA,EACA0B,UAAA,EACAzB,YAAA,IAEAiT,MAAA2F,QAAAD,GACA7Z,KAAA+Z,qBAAAF,GAEA7Z,KAAAga,sBAAAH,GAEA9Y,OAAAkZ,OAAAja,KAAAka,YACAla,KAAA2Z,IAAA,EACA3Z,QAGA4C,IAAA,uBACAlC,MAAA,SAAAyZ,GACA,GAAAC,IAAA,EACAC,GAAA,EACAC,MAAApX,EAEA,KACA,OAAAqX,GAAAC,EAAAL,EAAAlY,OAAAC,cAAmEkY,GAAAG,EAAAC,EAAAlB,QAAAC,MAAgEa,GAAA,GACnI,GAAAxX,GAAA2X,EAAA7Z,KAEAV,MAAAya,eAAA,GAAAza,MAAA4C,IAEa,MAAA6N,GACb4J,GAAA,EACAC,EAAA7J,EACa,QACb,KACA2J,GAAAI,EAAAd,QACAc,EAAAd,SAEiB,QACjB,GAAAW,EACA,KAAAC,QAMA1X,IAAA,wBACAlC,MAAA,SAAAyB,GACA,GAAAuY,IAAA,EACAC,GAAA,EACAC,MAAA1X,EAEA,KACA,OAAA2X,GAAAC,EAAA/Z,OAAAga,KAAA5Y,GAAAF,OAAAC,cAAkFwY,GAAAG,EAAAC,EAAAxB,QAAAC,MAAmEmB,GAAA,GACrJ,GAAA9X,GAAAiY,EAAAna,MAEAA,EAAA,GAAAV,MAAAmC,EAAAS,GACA5C,MAAAya,eAAA/Z,EAAAkC,IAEa,MAAA6N,GACbkK,GAAA,EACAC,EAAAnK,EACa,QACb,KACAiK,GAAAI,EAAApB,QACAoB,EAAApB,SAEiB,QACjB,GAAAiB,EACA,KAAAC,QAMAhY,IAAA,iBACAlC,MAAA,SAAAsa,EAAApa,GACAoa,EAAApa,OACAoa,EAAAC,QAAAjb,KAAAka,WAAAzX,OACA1B,OAAAC,eAAAhB,KAAAY,GACAF,MAAAsa,EACA/Z,cAAA,EACA0B,UAAA,EACAzB,YAAA,IAEAlB,KAAAka,WAAA9J,KAAA4K,MAQApY,IAAA,cACAlC,MAAA,SAAAE,GACA,MAAAZ,MAAAka,WAAAgB,KAAA,SAAAC,GACA,MAAAA,GAAAva,cASAgC,IAAAX,OAAAC,SACAxB,MAAA,WACA,MAAAV,MAAAka,WAAAjY,OAAAC,gBAIAgF,MpBuiEM,SAAUrH,EAAQD,EAASM,GAEjC,YAiBA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAhBhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MqB9tEhiBsZ,EAAAlb,EAAA,GrBkuEImb,EAAe7N,EAAuB4N,GqBjuE1C3N,EAAAvN,EAAA,GAOqBob,GrB8tEO9N,EAAuBC,GAU3B,WqBxsEtB,QAAA6N,GAAYC,GAAoC,GAAjBxN,GAAiB9K,UAAAR,OAAA,OAAAS,KAAAD,UAAA,GAAAA,UAAA,GAAJ,EAAIrB,GAAA5B,KAAAsb,GAAAtb,KAPhDwb,SAAiC,GAAIrY,KAQnCnD,KAAKyb,cAAgBJ,EAAAtW,QAAW2W,gBAAgB3N,EAAIwN,GrBi0EtD,MAvEAlZ,GAAaiZ,IACX1Y,IAAK,MACLlC,MAAO,SqBlvELib,EAAwB7W,GAAsB,GAAArB,GAAAzD,KAC5C4b,EAAmB,GAAID,GAAO7W,EAClC,IAAI8W,EAAiBC,UAAW,CAC9B7b,KAAKwb,SAASpY,IAAIuY,EAAO/a,KAAMgb,EAE/B,IAAIE,GAAa9b,KAAKyb,cAActL,SAAS1N,OAEzC0N,EAAWyL,EAAiBzL,QAEhCA,GAASxL,QAAQ,SAACjB,GAChBD,EAAKgY,cAAcM,IAAIrY,IAGzB,IAAIsY,GAA6B7H,MAAM8H,KAAK,GAAI9H,OAAMhE,EAAS1N,QAAS,SAACyZ,EAAKC,GAAN,MAAgBA,GAAQL,GAEhGR,GAAkBc,oBAAoBhZ,IAAIuY,EAAO/a,KAAMob,OrBiwEzDpZ,IAAK,YACLlC,MAAO,WqBzvEiB,GAAA6P,GAAAvQ,IACxB,OAAO,IAAI4D,SAAQ,SAACC,EAASC,GAC3ByM,EAAKkL,cAAcY,UAChB1L,KAAK,SAAAvC,GAEF,GADAmC,EAAK+L,eAAiBlO,EACjBA,EAAS2C,QAGT,CACH,GAAIwL,GAAuBhM,EAAKiM,YAAYpO,EACxCmO,GAAaxL,QACflN,EAAQ0M,EAAKiL,UAGb1X,GAAQiN,SAAS,EAAOtC,KAAM8N,EAAahO,YAR7CzK,GAAOsK,IAYX,SAAAqC,GACE3M,EAAO2M,UrB4vEf7N,IAAK,cACLlC,MAAO,SqBxvEG0N,GAYV,MAXApO,MAAKwb,SAAS7W,QAAQ,SAAUgX,EAAQ/a,GACtC,GAAI6b,GAAoBnB,EAAkBc,oBAAoBjb,IAAIP,EAClE,KAC2B,MAArB6b,IACFd,EAAOvN,SAAYA,EAAS0C,QAAQsD,MAAMqI,EAAkB,GAAIA,EAAkBA,EAAkBha,OAAS,GAAK,IAGtH,MAAOgO,GACL,OAAQM,SAAS,EAAOxC,MAAOkC,OAG3BM,SAAS,EAAMtC,KAAMzO,KAAKwb,crB2vE7BF,KqBl2EYA,GAOZc,oBAAkD,GAAIjZ,KrB+1E/DvD,EAAQmF,QqBt2EauW,GrB02Ef,SAAUzb,EAAQD,EAASM,GAEjC,YAqCA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCApChHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MsB13EhiB4N,EAAAxP,EAAA,GACAwc,GtB63EuBlP,EAAuBkC,GsB73E9CxP,EAAA,KtBi4EIyc,EAAqBnP,EAAuBkP,GsBh4EhDE,EAAA1c,EAAA,ItBo4EI2c,EAAoBrP,EAAuBoP,GsBn4E/CjP,EAAAzN,EAAA,GtBu4EI0N,EAAWJ,EAAuBG,GsBt4EtCmP,EAAA5c,EAAA,ItB04EI6c,EAA2BvP,EAAuBsP,GsBz4EtDE,EAAA9c,EAAA,ItB64EI+c,EAAgCzP,EAAuBwP,GsB54E3DE,EAAAhd,EAAA,ItBg5EIid,EAAiC3P,EAAuB0P,GsB94EtDrP,EAASD,EAAA7I,QAAc5D,MAMRic,EtBq5EE,WsBx4ErB,QAAAA,GAAYtY,GAAgBlD,EAAA5B,KAAAod,GAAApd,KAN5Bqd,aAOErd,KAAKmQ,SAAWnQ,KAAKsd,cAAcxY,GACnC9E,KAAKud,SAAWzY,EAAO0Y,QtB88EzB,MAvEAnb,GAAa+a,EAAkB,OAC7Bxa,IAAK,OACLzB,IAAK,WsBt5EL,MAAO,YtBw6ETkB,EAAa+a,IACXxa,IAAK,gBAULlC,MAAO,SsBz4EKoE,GACZ,GAAIqL,KAIJ,OAHAA,GAASC,KAAKuM,EAAA5X,QAAiB0Y,KAAK5P,EAAO5I,MAAOH,EAAOiJ,GAAIjJ,EAAO0Y,UACpErN,EAASC,KAAKuM,EAAA5X,QAAiB2Y,mBAAmB7P,EAAO5I,MAAOH,EAAOiJ,GAAIjJ,EAAO0Y,UAClFrN,EAASC,KAAKyM,EAAA9X,QAAgB0Y,KAAK5P,EAAO5I,MAAOH,EAAOiJ,GAAIjJ,EAAO0Y,UAC5DrN,KtBm5EPvN,IAAK,UACLlC,MAAO,WsB34EP,QAASV,KAAKud,YtB+4Ed3a,IAAK,WACLQ,IAAK,SsBx7EM+M,GACXnQ,KAAK2d,UAAYxN,GtB07EjBhP,IAAK,WsBt7EL,MAAOnB,MAAK2d,atB07EZ/a,IAAK,WACLQ,IAAK,SsBx7EMgL,GACX,GAAIwP,GAAmD,GAAAT,GAAApY,QAAiCqJ,EAAS,GAAGK,KACpGzO,MAAKqd,UAAU9G,MAAQqH,EAAmBC,QAAQ,GAClD7d,KAAKqd,UAAUS,sBAAwB,GAAAf,GAAAhY,QAA2BqJ,EAAS,GAAGK,MAC9EzO,KAAKqd,UAAUU,mBAAqB,GAAAd,GAAAlY,QAAgCqJ,EAAS,GAAGK,OtB07EhFtN,IAAK,WsBt7EL,MAAOnB,MAAKqd,ctB27EPD,IAGTxd,GAAQmF,QsBh+EaqY,GtBo+Ef,SAAUvd,EAAQD,EAASM,GAEjC,YAqBA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCApBhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MuB5/EhiBkc,EAAA9d,EAAA,IvBggFI+d,EAAmBzQ,EAAuBwQ,GuB//E9CrQ,EAAAzN,EAAA,GvBmgFI0N,EAAWJ,EAAuBG,GuBlgFtC+B,EAAAxP,EAAA,GAEM2N,GvBogFiBL,EAAuBkC,GuBpgF/B9B,EAAA7I,QAAc5D,OAKR+c,EvB2gFD,WuBz/ElB,QAAAA,GAAYpZ,GAAgBlD,EAAA5B,KAAAke,GAAAle,KAN5Bqd,aAOErd,KAAKmQ,SAAWnQ,KAAKsd,cAAcxY,GACnC9E,KAAKme,WAAarZ,EAAOkJ,UvBikF3B,MAzEA3L,GAAa6b,EAAe,OAC1Btb,IAAK,OACLzB,IAAK,WuB5gFL,MAAO,cvBqiFTkB,EAAa6b,IACXtb,IAAK,gBAULlC,MAAO,SuBpgFKoE,GACZ,GAAIqL,KAEJ,OADAA,GAASC,KAAK6N,EAAAlZ,QAAeqZ,iBAAiBvQ,EAAO5I,MAAOH,EAAOkJ,YAC5DmC,KvB8gFPvN,IAAK,UACLlC,MAAO,WuBtgFP,QAASV,KAAKme,cvB0gFdvb,IAAK,WACLQ,IAAK,SuB9iFM+M,GACXnQ,KAAK2d,UAAYxN,GvBgjFjBhP,IAAK,WuB5iFL,MAAOnB,MAAK2d,avBgjFZ/a,IAAK,WACLQ,IAAK,SuB9iFMgL,GACXpO,KAAKqd,UAAUtP,GAAKK,EAAS,GAAGK,KAAKV,IvBgjFrC5M,IAAK,WuB5iFL,MAAOnB,MAAKqd,UAAUtP,OvBijFjBmQ,IAGTte,GAAQmF,QuBxlFamZ,GvB4lFf,SAAUre,EAAQD,EAASM,GAEjC,YAyBA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAxBhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MwB9mFhiBuc,EAAAne,EAAA,IxBknFIoe,EAAkB9Q,EAAuB6Q,GwBjnF7CE,EAAAre,EAAA,IxBqnFIse,EAA0BhR,EAAuB+Q,GwBpnFrD5Q,EAAAzN,EAAA,GxBwnFI0N,EAAWJ,EAAuBG,GwBvnFtC+B,EAAAxP,EAAA,GAEM2N,GxBynFiBL,EAAuBkC,GwBznF/B9B,EAAA7I,QAAc5D,OAERsd,ExB+nFA,WwB7mFnB,QAAAA,GAAY3Z,GAAgBlD,EAAA5B,KAAAye,GAAAze,KAN5Bqd,aAOErd,KAAKmQ,SAAWnQ,KAAKsd,cAAcxY,GACnC9E,KAAK0e,UAAY5Z,EAAO6Z,SxByrF1B,MA7EAtc,GAAaoc,EAAgB,OAC3B7b,IAAK,OACLzB,IAAK,WwBhoFL,MAAO,axBypFTkB,EAAaoc,IACX7b,IAAK,gBAULlC,MAAO,SwBhnFKoE,GACZ,GAAIqL,KAEJ,OADAA,GAASC,KAAKkO,EAAAvZ,QAAc5D,IAAI0M,EAAO5I,MAAOH,EAAOiJ,GAAIjJ,EAAO6Z,WACzDxO,KxB0nFPvN,IAAK,UACLlC,MAAO,WwBlnFP,QAASV,KAAK0e,axBsnFd9b,IAAK,WACLQ,IAAK,SwBlqFM+M,GACXnQ,KAAK2d,UAAYxN,GxBoqFjBhP,IAAK,WwBhqFL,MAAOnB,MAAK2d,axBoqFZ/a,IAAK,WACLQ,IAAK,SwBlqFMgL,GACXpO,KAAKqd,UAAUuB,OAAS,GAAAJ,GAAAzZ,QAA0BqJ,EAAS,GAAGK,OxBoqF9DtN,IAAK,WwBhqFL,GAAsB,MAAlBnB,KAAKqd,WAA8C,MAAzBrd,KAAKqd,UAAUuB,QAAkD,MAAhC5e,KAAKqd,UAAUuB,OAAO/Q,OAQnF,MAAO,KAPP,KACE,MAAO1J,MAAKC,MAAMpE,KAAKqd,UAAUuB,OAAO/Q,QAAQgR,QAElD,MAAOpO,GACL,MAAO,WxBoqFNgO,IAGT7e,GAAQmF,QwBhtFa0Z,GxBotFf,SAAU5e,EAAQD,EAASM,GAEjC,YAiEA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAhEhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MyBpuFhiBgd,EAAA5e,EAAA,IACA4c,GzBuuF0BtP,EAAuBsR,GyBvuFjD5e,EAAA,KACAuX,GzB0uF+BjK,EAAuBsP,GyB1uFtD5c,EAAA,KACA2X,GzB6uF8BrK,EAAuBiK,GyB7uFrDvX,EAAA,KACA8c,GzBgvF2BxP,EAAuBqK,GyBhvFlD3X,EAAA,KACA6e,GzBmvFoCvR,EAAuBwP,GyBnvF3D9c,EAAA,KzBuvFI8e,EAAyBxR,EAAuBuR,GyBtvFpDE,EAAA/e,EAAA,IzB0vFIgf,EAAc1R,EAAuByR,GyBzvFzCzK,EAAAtU,EAAA,GACA4P,EAAA5P,EAAA,GzB8vFI6P,EAAWvC,EAAuBsC,GyB7vFtCnC,EAAAzN,EAAA,GzBiwFI0N,EAAWJ,EAAuBG,GyBhwFtCwR,EAAAjf,EAAA,IACAkf,EAAAlf,EAAA,GzBqwFImf,EAAe7R,EAAuB4R,GyBpwF1C7J,EAAArV,EAAA,IzBwwFIof,EAAQ9R,EAAuB+H,GyBvwFnCrE,EAAAhR,EAAA,IzB2wFIqf,EAAgB/R,EAAuB0D,GyB1wF3CuD,EAAAvU,EAAA,GzB8wFIsf,EAAiBhS,EAAuBiH,GyB5wFtC5G,EAASD,EAAA7I,QAAc5D,MAIvB6O,EAASD,EAAAhL,QAAO5D,IAAI,eAMpBse,EAA8C,GAAItc,OACrD,WAAYgc,EAAAlK,YAAY5D,OACxB,YAAa8N,EAAAlK,YAAY3D,MACzB,MAAO6N,EAAAlK,YAAYI,OAODqK,EzB+wFA,WACnB,QAASA,KACP9d,EAAgB5B,KAAM0f,GA8OxB,MA3OArd,GAAaqd,EAAgB,OAC3B9c,IAAK,gBAcLlC,MAAO,SyBtxFYqN,EAAYwN,EAAmBoD,EAAkBf,GACpE,GAAI+B,GAAyB,GAAAN,GAAAta,QACzBwR,EAAQqH,EAAmBrH,MAC3BqJ,EAAkBhC,EAAmBE,sBACrC+B,EAAejC,EAAmBG,mBAClC+B,EAA+CF,EAAgB5H,QAC/DA,EAAwB0H,EAAeK,kBAAkBD,EAAgB/R,EAAIwN,EAAWoD,EAAUpI,EAAOqJ,EAE7GD,GAAW3H,QAAUA,CAErB,IAAIgI,GAAgChgB,KAAKigB,eAAeJ,EACxDF,GAAWhL,SAAWqL,EACtBL,EAAWjK,GAAKa,EAAMb,GACtBiK,EAAW/I,SAAWL,EAAMK,QAE5B,IAAIhC,GAAuBJ,EAAApO,eAAeyO,OAE1C,QAAQ0B,EAAME,WACZ,IAAKjC,GAAAnO,UAAUoF,MAAM/K,MACnBkU,EAAOJ,EAAApO,eAAe8Z,KACtB,MACF,KAAK1L,GAAAnO,UAAUqF,MAAMhL,MACnBkU,EAAOJ,EAAApO,eAAe+Z,KACtB,MACF,SACE,OAAQ5J,EAAM3B,MACZ,IAAKJ,GAAAlO,UAAU0E,WAAWtK,MACxBkU,EAAOJ,EAAApO,eAAega,GACtB,MACF,KAAK5L,GAAAlO,UAAU8E,YAAY1K,MAC3B,IAAK8T,GAAAlO,UAAU+E,aAAa3K,MAC1BkU,EAAOJ,EAAApO,eAAeia,IACtB,MACF,SACEzL,EAAOJ,EAAApO,eAAeyO,SAK9B,MAFA8K,GAAW/K,KAAOA,EAEX+K,KzByxFP/c,IAAK,oBACLlC,MAAO,SyBvxFgBof,EAA8C/R,EAAYwN,EAAmBoD,EAAkBpI,EAAOqJ,GAC7H,GAAI5H,GAAwB,GAAAwH,GAAAza,OAsB5B,OALI+a,IAAkBA,EAAerd,OAAS,IAfnB,WACzBqd,EAAenb,QAAQ,SAAC4M,GACtB,IAAoD,IAAhDmO,EAAeY,qBAAqB/O,GAAmB,CACzD,GAAIgP,GAAeb,EAAec,qBAAqBjP,EAAQxD,EAAIwN,EAAWoD,EAAUpI,EAAOqJ,GAC3Fa,EAAehB,EAAkBte,IAAIoQ,EAAOlM,OAChD2S,GAAQX,IAAIkJ,EAAcE,SAKF,WAC5B,GAAIC,GAAoBZ,EAAe5E,KAAK,SAAA3J,GAAA,MAAUmO,GAAeY,qBAAqB/O,IAC1FyG,GAAQ5G,YAAcsO,EAAeiB,yBAAyBD,EAAmBd,EAAgB1H,aAAcnK,EAAIwN,EAAWoD,EAAUpI,OAQnIyB,KzB4xFPpV,IAAK,uBACLlC,MAAO,SyB1xFmB6Q,GAC1B,GAAIkP,GAAehB,EAAkBte,IAAIoQ,EAAOlM,OAChD,OAAOob,IAAsC,QAAtBA,EAAa7f,QzB2yFpCgC,IAAK,uBACLlC,MAAO,SyB7xFmB6Q,EAA+BxD,EAAYwN,EAAmBoD,EAAkBpI,EAA0BqJ,GACpI,GAAIgB,GAAkB,GAClBpP,EAAciO,EAAkBte,IAAIoQ,EAAOlM,QAC3Cwb,EAA2B,GAAAtB,GAAAxa,OAE/B,IAAIwM,EAAOuP,eAAgB,CACzB,GAAIC,GAAoB,EACxB,IAAKvP,EAQHuP,EAAYvP,EAAY2D,QACxB0L,EAAYG,SAAWxP,EAAY0D,aATnB,CAChB,GAAI+L,GAAe1P,EAAOoH,UAAUG,MAAM,KACtCoI,EAAqCtB,EAAgB1H,aAAaiJ,OAAO,SAAAhJ,GAAA,OAA8C,GAApC8I,EAAaG,QAAQjJ,EAAOzC,KAC/GwL,IAAWA,EAAQze,OAAS,IAC9Bse,EAAYG,EAAQ,GAAGtL,SAQ3BgL,EAAU5B,EAAAja,QAAqBsc,OAC7B7D,QAASjH,EAAMb,GACfiD,UAAWpH,EAAOoH,UAClBtT,OAAQkM,EAAOlM,OACf0I,GAAIA,EACJC,UAAWuN,EACXoD,SAAUA,EACVoC,UAAWA,EACXnI,SAAUrH,EAAO+P,YAAYthB,KAAKuhB,0BAKpCX,GAAUrP,EAAOkH,GAGnB,IAAe,IAAXmI,EAEF,MADA5Q,GAAOzB,MAAP,8DAA2EgI,EAAMb,GAAjF,IAAuFnE,EAAOiH,kBAA9F,MAAqHjH,EAAOlM,OAA5H,KACOwb,CAKT,IAFAA,EAAYpI,IAAMmI,EAClBC,EAAYnL,GAAKa,EAAMb,GAAK,IAAMnE,EAAOiH,kBAAoB,IAAMjH,EAAOlM,OACtEkM,EAAOiQ,aAAc,CACvB,GAAIC,KACJlQ,GAAOgH,IAAI5T,QAAQ,SAAC4T,GAClBkJ,EAAUrR,KAAK,GAAAkP,GAAAva,QAAQwT,EAAImJ,WAAYnJ,EAAIvD,WAE7C6L,EAAYc,QAAUF,EAExB,MAAOZ,MzByyFPje,IAAK,iBACLlC,MAAO,SyB/xFamf,GACpB,GAAIG,KAiBJ,OAhBIH,IAAgBA,EAAa1I,OAAS0I,EAAa1I,MAAM1U,OAAS,GACpEod,EAAa1I,MAAMxS,QAAQ,SAAC2S,GAC1B,GAAIsK,UACAC,EAAuB,GAAIC,UAC/BxK,GAAKyK,IAAMzK,EAAKyK,IAAIC,QAAQ,YAAa,IACzC1K,EAAKyK,IAAMzK,EAAKyK,IAAIC,QAAQ,QAAS,KACrC1K,EAAKyK,IAAMzK,EAAKyK,IAAIC,QAAQ,QAAS,KACrCJ,EAAUC,EAAUI,gBAAgB3K,EAAKyK,IAAK,WAC9C,IAAIG,GAAmBhD,EAAAna,QAAUod,UAAUP,EAC5B7gB,QAAOga,KAAKmH,EAASlC,UAC3Brb,QAAQ,SAAC/B,GAChBod,EAASpd,GAAOsf,EAASlC,SAASpd,GAAK,aAKtCod,KzBiyFPpd,IAAK,2BACLlC,MAAO,SyB/xFuB0hB,EAAelK,EAAcnK,EAAIwN,EAAWoD,EAAUpI,GACpF,GAAIyB,KACJ,IAAIoK,EAAe,CACjB,GAAIxJ,GAAWwJ,EAAcd,YAAYthB,KAAKuhB,oBAC1Clc,EAAS+c,EAAc/c,OACvBgd,EAAWD,EAAc5J,kBAAoB,IAAM4J,EAAc/c,MACrE6S,GAAab,IAAI,SAACc,GAChB,GAAIA,EAAOpC,QAAUoC,EAAOrC,MAAO,CACjC,GAAI+K,GAA2B,GAAAtB,GAAAxa,OAC/B8b,GAAYnL,GAAKyC,EAAOzC,GAAK2M,EAC7BxB,EAAYG,SAAW,YACvBH,EAAY9K,OAASoC,EAAOpC,OAC5B8K,EAAY/K,MAAQqC,EAAOrC,MAC3B+K,EAAYyB,UAA6B,KAAjBnK,EAAOtC,QAC/BgL,EAAY1N,MAAQgF,EAAOhF,OAASgF,EAAO9B,SAC3CwK,EAAYpI,IAAMuG,EAAAja,QAAqBsc,OACrC7D,QAASjH,EAAMb,GACfiD,UAAWR,EAAOzC,GAClBrQ,OAAQA,EACR0I,GAAIA,EACJC,UAAWuN,EACXoD,SAAUA,EACVoC,UAAW,MACXnI,SAAUA,IAEZZ,EAAQ5H,KAAKyQ,MAInB,MAAO7I,MzBkyFPpV,IAAK,mBACLlC,MAAO,WyB/xFP,GAAI6hB,GAA6B1U,EAAOxK,QAAQyV,MAAM,IAQtD,OANIyJ,IAAeA,EAAY9f,OAAS,EACvB8f,EAAY,GAAGC,UAAU,EAAGD,EAAY,GAAG9f,OAAS,GAGpD,WzBqyFZid,IAGT9f,GAAQmF,QyBlgGa2a,GzBqgGb,CAEF,SAAU7f,EAAQD,EAASM,GAEjC,YA8CA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCA7ChHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,IAETd,EAAQ6iB,gBAAcvf,EAEtB,IAAIb,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,M0BrjGhiBgO,EAAA5P,EAAA,G1ByjGI6P,EAAWvC,EAAuBsC,G0BxjGtC4S,EAAAxiB,EAAA,I1B4jGIyiB,EAAmBnV,EAAuBkV,G0B3jG9CE,EAAA1iB,EAAA,I1B+jGI2iB,EAAsBrV,EAAuBoV,G0B9jGjDE,EAAA5iB,EAAA,I1BkkGI6iB,EAAqBvV,EAAuBsV,G0BjkGhDE,EAAA9iB,EAAA,I1BqkGI+iB,EAAkBzV,EAAuBwV,G0BpkG7CE,EAAAhjB,EAAA,I1BwkGIijB,EAAmB3V,EAAuB0V,G0BvkG9CvV,EAAAzN,EAAA,G1B2kGI0N,EAAWJ,EAAuBG,G0B1kGtCyR,EAAAlf,EAAA,GACAuU,G1B6kGmBjH,EAAuB4R,G0B7kG1Clf,EAAA,I1BilGIsf,EAAiBhS,EAAuBiH,G0B7kGtCzE,EAASD,EAAAhL,QAAO5D,IAAI,eAgBbshB,E1B4kGK7iB,E0B5kGL6iB,Y1B4kG2B,W0BxiGtC,QAAAA,GAAYlH,GAAqD,GAAlCxN,GAAkC9K,UAAAR,OAAA,OAAAS,KAAAD,UAAA,GAAAA,UAAA,GAArB,GAAI4K,EAAiB5K,UAAA,EAAArB,GAAA5B,KAAAyiB,GAC/DziB,KAAKub,UAAYA,EACjBvb,KAAK+N,GAAKA,EACV/N,KAAKojB,cAAgBpjB,KAAK+N,GAC1BH,EAAA7I,QAAc3B,IAAIyK,G1BgsGpB,MAnGAxL,GAAaogB,IACX7f,IAAK,YACLlC,MAAO,S0BrlGC8c,EAAkBmB,GAAoC,GAAAlb,GAAAzD,IAK9D,OAJgB,OAAZ2e,IACF3e,KAAK0e,UAAYC,GAEnB3e,KAAKqjB,YAAc,GAAAR,GAAA9d,QAAsB/E,KAAKub,UAAWvb,KAAK+N,IACvD,GAAInK,SAAQ,SAACC,EAASC,GAC3B,GAAIL,EAAK6f,eAAe9F,EAASmB,GAAW,CAC1C,GAAI5Q,GAAatK,EAAKsK,EAClBtK,GAAK2f,eACPrV,EAAK,gBACLtK,EAAK4f,YAAYtH,IAAjBkH,EAAAle,SAAqCiJ,UAAWvK,EAAK8X,aAEvD9X,EAAK4f,YAAYtH,IAAjBgH,EAAAhe,SAAwCyY,QAASA,EAASzP,GAAIA,IAC9DtK,EAAK4f,YAAYtH,IAAjBoH,EAAApe,SAAsC4Z,SAAUA,EAAU5Q,GAAIA,IAC9DtK,EAAK4f,YAAYE,YACd5S,KAAK,SAAAvC,GACFvK,EAAQJ,EAAK+f,sBAAsBpV,KAErC,SAAAqC,GACE3M,EAAO2M,SAIb3M,IAAQiN,SAAS,EAAOtC,KAAM,qC1BimGlC7L,IAAK,wBACLlC,MAAO,S0BvlGa+N,GACpBuB,EAAO+C,MAAM,uBACb,IAAIlF,IACF6H,GAAI,GACJ+N,SACElI,UAAWvb,KAAKub,UAChBmI,SAAU1jB,KAAK0e,WAEjB1G,QAAS,GAAAwH,GAAAza,QACT6R,SAAU,EACVhC,KAAM,UACNoL,YACAnB,WAEF,IAAY,MAARpQ,EAAc,CAChB,GAAIA,EAAKkV,IAAIV,EAAAle,QAAcnE,MAAO,CAChC,GAAIgjB,GAAgBnV,EAAKtN,IAAI8hB,EAAAle,QAAcnE,KACtB,OAAjBgjB,GAAmD,MAA1BA,EAAcxV,WACzCpO,KAAK+N,GAAK6V,EAAcxV,SACxBpO,KAAKojB,cAAgBpjB,KAAK+N,GAC1BF,EAAO4V,QAAQ1V,GAAK/N,KAAK+N,IAG7B,GAAIU,EAAKkV,IAAIR,EAAApe,QAAenE,MAAO,CACjC,GAAIijB,GAAepV,EAAKtN,IAAIgiB,EAAApe,QAAenE,MACvCkjB,IACgB,OAAhBD,IACFC,EAAcD,EAAazV,UAE7BP,EAAOgR,QAAUiF,EAEnB,GAAIrV,EAAKkV,IAAIZ,EAAAhe,QAAiBnE,MAAO,CACnC,GAAImjB,GAActV,EAAKtN,IAAI4hB,EAAAhe,QAAiBnE,KAC5C,IAAmB,MAAfmjB,GAA+C,MAAxBA,EAAY3V,SAAkB,CACvD,GAAIuR,GAAyBgD,EAAA5d,QAAeif,cAAchkB,KAAK+N,GAAI/N,KAAKub,UAAWvb,KAAK0e,UAAWqF,EAAY3V,SAC/GP,GAAO6H,GAAKiK,EAAWjK,GACvB7H,EAAOmK,QAAU2H,EAAW3H,QAC5BnK,EAAO+I,SAAW+I,EAAW/I,SAC7B/I,EAAO+G,KAAO+K,EAAW/K,KAAKhU,KAC9BiN,EAAOmS,SAAWL,EAAWhL,WAKnC,MADA3E,GAAO+C,MAAM,wBAAyBlF,GAC9BA,K1BkmGRjL,IAAK,iBACLlC,MAAO,S0B1lGM8c,EAAkBmB,GAC/B,QAASnB,KAAamB,M1B8lGjB8D,IAGT7iB,GAAQmF,Q0B5lGO0d,G1BgmGT,SAAU5iB,EAAQD,EAASM,GAEjC,YAeA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAZhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,M2BpxGhiB6L,EAAAzN,EAAA,G3BwxGI0N,EAEJ,SAAgCzL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,IAFjDwL,G2BtxGhCE,EAASD,EAAA7I,QAAc5D,MAMR8iB,E3B6xGM,WACzB,QAASA,KACPriB,EAAgB5B,KAAMikB,GA2ExB,MAxEA5hB,GAAa4hB,EAAsB,OACjCrhB,IAAK,QAULlC,MAAO,S2BpyGIwjB,GACX,GAAI7gB,GAAkBwK,EAAOxK,QACzB2K,EAAoBkW,EAAUlW,UAC9BwP,EAAkB0G,EAAU1G,QAC5BzP,EAAamW,EAAUnW,GACvB4Q,EAAmBuF,EAAUvF,SAC7BtZ,EAAiB6e,EAAU7e,OAC3BuT,EAAmBsL,EAAUtL,SAC7BmI,EAAoBmD,EAAUnD,UAC9BpI,EAAoBuL,EAAUvL,SAElC,IAAe,IAAXtV,GAA8B,IAAb2K,GAA8B,IAAXwP,GAA8B,IAAbuD,GAA6B,IAAV1b,EAC1E,MAAO,EAGT,IAAIub,GAAUvd,CAuBd,OAtBK4gB,GAAqBE,SAAS9gB,EAAS,OAC1Cud,GAAW,KAEbA,GAAW,KAAO5S,EAAY,OAASA,EAAY,2BAAkCwP,EAAU,aAAe5E,EAAW,WAAavT,EAErH,IAAbsT,EACFiI,GAAW,cAAgBjI,EAER,IAAZgG,IACPiC,GAAW,aAAejC,GAGb,IAAX3e,KAAK+N,KACP6S,GAAW,OAAS7S,GAGtB6S,GAAW,MAAQG,EAEfpC,GAAyB,IAAbhG,IACdiI,GAAW,cAAgBjC,GAGtBiC,K3B8yGPhe,IAAK,WACLlC,MAAO,S2BtyGO0jB,EAAgBC,GAC9B,MAAsB,gBAAXD,KAGiB,gBAAjBC,KAIkE,GAAtED,EAAOhD,QAAQiD,EAAcD,EAAO3hB,OAAS4hB,EAAa5hB,a3B0yG5DwhB,IAGTrkB,GAAQmF,Q2B72Gakf,G3Bi3Gf,SAAUpkB,EAAQD,EAASM,GAEjC,YAOA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAJhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAST,I4Bn4GqB4jB,GAgBnB,QAAAA,GAAY7V,GAAc7M,EAAA5B,KAAAskB,GACxBtkB,KAAKuE,QAAUkK,EAAKlK,QACpBvE,KAAKsE,KAAOmK,EAAKnK,K5Bw4GrB1E,GAAQmF,Q4B15Gauf,G5B85Gf,SAAUzkB,EAAQD,EAASM,GAEjC,YAeA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS0D,GAA2BC,EAAMnF,GAAQ,IAAKmF,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpF,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmF,EAAPnF,EAElO,QAASqF,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI/D,WAAU,iEAAoE+D,GAAeD,GAASrE,UAAYT,OAAOgF,OAAOD,GAAcA,EAAWtE,WAAaY,aAAe1B,MAAOmF,EAAU3E,YAAY,EAAOyB,UAAU,EAAM1B,cAAc,KAAe6E,IAAY/E,OAAOiF,eAAiBjF,OAAOiF,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GAlBje/E,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,G6Bz6GT,IAAAkP,GAAA1P,EAAA,G7B86GI2P,EAAsBrC,EAAuBoC,G6B76GjDkP,EAAA5e,EAAA,I7Bi7GIqkB,EAAsB/W,EAAuBsR,G6B36G5B0F,E7By7Gc,SAAUxN,G6Bz6G3C,QAAAwN,GAAYvN,GAAqBrV,EAAA5B,KAAAwkB,EAAA,IAAA/gB,GAAAgC,EAAAzF,MAAAwkB,EAAAve,WAAAlF,OAAAiG,eAAAwd,IAAAjkB,KAAAP,KACzBiX,GADyB,OAE1BxT,GAAK4K,WACR5K,EAAKyT,WAAaD,EAAYC,WAC1BzT,EAAKyT,WAAa,IACpBzT,EAAKoa,WACL5G,EAAYG,QAAQC,IAAI,SAAAd,GAAA,MAAS9S,GAAKoa,QAAQzN,KAAK,GAAAmU,GAAAxf,QAAsBwR,QAN9C9S,E7B28GjC,MAjCAmC,GAAU4e,EAA8BxN,GAiCjCwN,GACP3U,EAAoB9K,QAEtBnF,GAAQmF,Q6B99Gayf,G7Bk+Gf,SAAU3kB,EAAQD,EAASM,GAEjC,YASA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,G8B/+GT,IAMqB+jB,IANrBvkB,EAAA,GAuBE,QAAAukB,GAAYlM,GAAU3W,EAAA5B,KAAAykB,GACpBzkB,KAAKgV,OAASuD,EAAIvD,OAClBhV,KAAK0hB,WAAanJ,EAAImJ,Y9By/G1B9hB,GAAQmF,Q8B5gHa0f,G9BghHf,SAAU5kB,EAAQD,EAASM,GAEjC,YASA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,G+B5hHT,IAMqBgkB,IANrBxkB,EAAA,GA0BE,QAAAwkB,GAAYjW,GAAc7M,EAAA5B,KAAA0kB,GACxB1kB,KAAK0V,GAAKjH,EAAKiH,GACf1V,KAAK2kB,kBAAoBlW,EAAKkW,kBAC9B3kB,KAAK4kB,uBAAyBnW,EAAKmW,uBACnC5kB,KAAK2kB,kBAAoBlW,EAAKkW,kBAC9B3kB,KAAK6kB,mBAAqBpW,EAAKoW,mBAC/B7kB,KAAK8kB,SAAWrW,EAAKqW,SACrB9kB,KAAK+kB,QAAUtW,EAAKsW,QACpB/kB,KAAKglB,QAAU,GAAI1Q,MAAK,GACxBtU,KAAKglB,QAAQC,cAAcxW,EAAKyW,WAChCllB,KAAKmlB,QAAU,GAAI7Q,MAAK,GACxBtU,KAAKmlB,QAAQF,cAAcxW,EAAK2W,WAChCplB,KAAKiE,OAASwK,EAAKxK,OACnBjE,KAAK+hB,IAAMtT,EAAKsT,K/B6hHpBniB,GAAQmF,Q+B9jHa2f,G/BkkHf,SAAU7kB,EAAQD,EAASM,GAEjC,YASA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GgC9kHT,IAMqB2kB,IANrBnlB,EAAA,GAiBE,QAAAmlB,GAAY5W,GAAc7M,EAAA5B,KAAAqlB,GACxBrlB,KAAK4U,KAAOnG,EAAKmG,MhCwlHrBhV,GAAQmF,QgCpmHasgB,GhCwmHf,SAAUxlB,EAAQD,EAASM,GAEjC,YAeA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS0D,GAA2BC,EAAMnF,GAAQ,IAAKmF,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpF,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmF,EAAPnF,EAElO,QAASqF,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI/D,WAAU,iEAAoE+D,GAAeD,GAASrE,UAAYT,OAAOgF,OAAOD,GAAcA,EAAWtE,WAAaY,aAAe1B,MAAOmF,EAAU3E,YAAY,EAAOyB,UAAU,EAAM1B,cAAc,KAAe6E,IAAY/E,OAAOiF,eAAiBjF,OAAOiF,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GAhBje/E,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GiCpnHT,IAAAkP,GAAA1P,EAAA,GjCynHI2P,EAIJ,SAAgC1N,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,IAJtCyN,GiClnH5B0V,GANrBplB,EAAA,GjCwoH4B,SAAU8W,GiCzlHpC,QAAAsO,GAAY7W,GAAc7M,EAAA5B,KAAAslB,EAAA,IAAA7hB,GAAAgC,EAAAzF,MAAAslB,EAAArf,WAAAlF,OAAAiG,eAAAse,IAAA/kB,KAAAP,KAClByO,GADkB,OAEnBhL,GAAK4K,WACR5K,EAAK7C,KAAO6N,EAAK7N,KAEjB6C,EAAK8hB,YAAc9W,EAAK8W,YACxB9hB,EAAK+hB,gBAAkB/W,EAAK+W,gBAC5B/hB,EAAKqS,MAAQrH,EAAKqH,MAClBrS,EAAKsS,OAAStH,EAAKsH,OACnBtS,EAAKgiB,WAAahX,EAAKgX,WACvBhiB,EAAKiiB,OAASjX,EAAKiX,OACnBjiB,EAAKkiB,aAAelX,EAAKkX,aACzBliB,EAAKmiB,SAAWnX,EAAKmX,SACrBniB,EAAKoiB,iBAAmBpX,EAAKoX,iBAC7BpiB,EAAKoK,OAASY,EAAKZ,OACnBpK,EAAKqiB,SAAWrX,EAAKqX,SACrBriB,EAAKsiB,OAAStX,EAAKsX,OACnBtiB,EAAKuiB,KAAOvX,EAAKuX,KACjBviB,EAAKwiB,cAAgBxX,EAAKwX,cAC1BxiB,EAAKuhB,QAAU,GAAI1Q,MAAK,GACxB7Q,EAAKuhB,QAAQC,cAAcxW,EAAKyW,WAChCzhB,EAAK0hB,QAAU,GAAI7Q,MAAK,GACxB7Q,EAAK0hB,QAAQF,cAAcxW,EAAK2W,WAChC3hB,EAAKyiB,SAAWzX,EAAK8W,YACrB9hB,EAAKshB,QAAUtW,EAAK8W,YACpB9hB,EAAK0iB,YAAc1X,EAAK8W,YACxB9hB,EAAK2iB,QAAU3X,EAAK8W,YACpB9hB,EAAK4iB,aAAe5X,EAAK8W,aA3BH9hB,EjCkpH1B,MAxDAmC,GAAU0f,EAAuBtO,GAwD1BsO,GACPzV,EAAoB9K,SAEtBnF,GAAQmF,QiC9rHaugB,GjCksHf,SAAUzlB,EAAQD,EAASM,GAEjC,YAiBA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS0D,GAA2BC,EAAMnF,GAAQ,IAAKmF,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpF,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmF,EAAPnF,EAElO,QAASqF,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI/D,WAAU,iEAAoE+D,GAAeD,GAASrE,UAAYT,OAAOgF,OAAOD,GAAcA,EAAWtE,WAAaY,aAAe1B,MAAOmF,EAAU3E,YAAY,EAAOyB,UAAU,EAAM1B,cAAc,KAAe6E,IAAY/E,OAAOiF,eAAiBjF,OAAOiF,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GApBje/E,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MkCltHhiBsZ,EAAAlb,EAAA,GlCstHImb,EAAe7N,EAAuB4N,GkCrtH1C1L,EAAAxP,EAAA,GlCytHIyP,EAAmBnC,EAAuBkC,GkCjtHzB4W,ElCkuHE,SAAUC,GAG/B,QAASD,KAGP,MAFA1kB,GAAgB5B,KAAMsmB,GAEf7gB,EAA2BzF,MAAOsmB,EAAiBrgB,WAAalF,OAAOiG,eAAesf,IAAmBrf,MAAMjH,KAAMiD,YAyE9H,MA9EA2C,GAAU0gB,EAAkBC,GAQ5BlkB,EAAaikB,EAAkB,OAC7B1jB,IAAK,qBAYLlC,MAAO,SkC7uHiB2C,EAAiB0K,EAAYyP,GACrD,GAAI9Z,GAAU,GAAAiM,GAAA5K,OACdrB,GAAQH,QAnBiB,YAoBzBG,EAAQF,OAAS,qBACjBE,EAAQe,OAAS,OACjBf,EAAQL,QAAUA,EAClBK,EAAQ8iB,IAAM,8BACd,IAAIC,IAAqBnY,WAAY,2BAA4BoY,WAAY,OACzE5hB,GAAU0Y,QAASA,EAASzP,GAAIA,EAAI0Y,kBAAmBA,EAE3D,OADA/iB,GAAQoB,OAASA,EACVpB,KlC2vHPd,IAAK,OACLlC,MAAO,SkChvHG2C,EAAiB0K,EAAYyP,GACvC,GAAI9Z,GAAU,GAAAiM,GAAA5K,OAOd,OANArB,GAAQH,QAzCiB,YA0CzBG,EAAQF,OAAS,OACjBE,EAAQe,OAAS,OACjBf,EAAQL,QAAUA,EAClBK,EAAQ8iB,IAAM,OACd9iB,EAAQoB,OAASwhB,EAAiBK,sBAAsBnJ,EAASzP,GAC1DrK,KlC6vHPd,IAAK,wBACLlC,MAAO,SkCnvHoB8c,EAAiBzP,GAM5C,OAAQA,GAAIA,EAAIoT,QALIyF,oBAAqBpJ,GAKHqJ,iBAHpCC,OAAQ,0EACRlS,KAAM,QlCyvHH0R,GACPjL,EAAatW,QAEfnF,GAAQmF,QkCpzHauhB,GlCwzHf,SAAUzmB,EAAQD,EAASM,GAEjC,YAiBA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS0D,GAA2BC,EAAMnF,GAAQ,IAAKmF,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpF,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmF,EAAPnF,EAElO,QAASqF,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI/D,WAAU,iEAAoE+D,GAAeD,GAASrE,UAAYT,OAAOgF,OAAOD,GAAcA,EAAWtE,WAAaY,aAAe1B,MAAOmF,EAAU3E,YAAY,EAAOyB,UAAU,EAAM1B,cAAc,KAAe6E,IAAY/E,OAAOiF,eAAiBjF,OAAOiF,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GApBje/E,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MmCz0HhiBsZ,EAAAlb,EAAA,GnC60HImb,EAAe7N,EAAuB4N,GmC50H1C1L,EAAAxP,EAAA,GnCg1HIyP,EAAmBnC,EAAuBkC,GmCx0HzBqX,EnCy1HC,SAAUR,GAG9B,QAASQ,KAGP,MAFAnlB,GAAgB5B,KAAM+mB,GAEfthB,EAA2BzF,MAAO+mB,EAAgB9gB,WAAalF,OAAOiG,eAAe+f,IAAkB9f,MAAMjH,KAAMiD,YA6B5H,MAlCA2C,GAAUmhB,EAAiBR,GAQ3BlkB,EAAa0kB,EAAiB,OAC5BnkB,IAAK,OAWLlC,MAAO,SmCp2HG2C,EAAiB0K,EAAYyP,GACvC,GAAI9Z,GAAU,GAAAiM,GAAA5K,OACdrB,GAAQH,QAlBiB,oBAmBzBG,EAAQF,OAAS,OACjBE,EAAQe,OAAS,OACjBf,EAAQL,QAAUA,EAClBK,EAAQ8iB,IAAM,wBACd,IAAIrF,IAAU7S,WAAY,wBAAyB0Y,cAAexJ,EAASyJ,wBAAyB,KAChGniB,GAAUqc,OAAQA,EAAQpT,GAAIA,EAElC,OADArK,GAAQoB,OAASA,EACVpB,MnCw2HFqjB,GACP1L,EAAatW,QAEfnF,GAAQmF,QmC/3HagiB,GnCm4Hf,SAAUlnB,EAAQD,EAASM,GAEjC,YAiBA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS0D,GAA2BC,EAAMnF,GAAQ,IAAKmF,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpF,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmF,EAAPnF,EAElO,QAASqF,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI/D,WAAU,iEAAoE+D,GAAeD,GAASrE,UAAYT,OAAOgF,OAAOD,GAAcA,EAAWtE,WAAaY,aAAe1B,MAAOmF,EAAU3E,YAAY,EAAOyB,UAAU,EAAM1B,cAAc,KAAe6E,IAAY/E,OAAOiF,eAAiBjF,OAAOiF,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GApBje/E,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MoCr5HhiBsZ,EAAAlb,EAAA,GpCy5HImb,EAAe7N,EAAuB4N,GoCx5H1C1L,EAAAxP,EAAA,GpC45HIyP,EAAmBnC,EAAuBkC,GoCp5HzBwX,EpCq6HA,SAAUX,GAG7B,QAASW,KAGP,MAFAtlB,GAAgB5B,KAAMknB,GAEfzhB,EAA2BzF,MAAOknB,EAAejhB,WAAalF,OAAOiG,eAAekgB,IAAiBjgB,MAAMjH,KAAMiD,YA0B1H,MA/BA2C,GAAUshB,EAAgBX,GAQ1BlkB,EAAa6kB,EAAgB,OAC3BtkB,IAAK,mBAULlC,MAAO,SoCh7He2C,EAAiB2K,GACvC,GAAItK,GAAU,GAAAiM,GAAA5K,OAOd,OANArB,GAAQH,QAjBiB,UAkBzBG,EAAQF,OAAS,qBACjBE,EAAQe,OAAS,OACjBf,EAAQL,QAAUA,EAClBK,EAAQ8iB,IAAM,sBACd9iB,EAAQoB,QAAUqiB,SAAU,IAAMnZ,GAC3BtK,MpCo7HFwjB,GACP7L,EAAatW,QAEfnF,GAAQmF,QoCx8HamiB,GpC28Hb,CAEF,SAAUrnB,EAAQD,EAASM,GAEjC,YAiBA,SAASsN,GAAuBrL,GAAO,MAAOA,IAAOA,EAAId,WAAac,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS0D,GAA2BC,EAAMnF,GAAQ,IAAKmF,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOpF,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BmF,EAAPnF,EAElO,QAASqF,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI/D,WAAU,iEAAoE+D,GAAeD,GAASrE,UAAYT,OAAOgF,OAAOD,GAAcA,EAAWtE,WAAaY,aAAe1B,MAAOmF,EAAU3E,YAAY,EAAOyB,UAAU,EAAM1B,cAAc,KAAe6E,IAAY/E,OAAOiF,eAAiBjF,OAAOiF,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GApBje/E,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MqC/9HhiBsZ,EAAAlb,EAAA,GrCm+HImb,EAAe7N,EAAuB4N,GqCl+H1C1L,EAAAxP,EAAA,GrCs+HIyP,EAAmBnC,EAAuBkC,GqC99HzB0X,ErC++HD,SAAUb,GAG5B,QAASa,KAGP,MAFAxlB,GAAgB5B,KAAMonB,GAEf3hB,EAA2BzF,MAAOonB,EAAcnhB,WAAalF,OAAOiG,eAAeogB,IAAgBngB,MAAMjH,KAAMiD,YA+BxH,MApCA2C,GAAUwhB,EAAeb,GAQzBlkB,EAAa+kB,EAAe,OAC1BxkB,IAAK,MAWLlC,MAAO,SqC1/HE2C,EAAiB0K,EAAY2V,GACtC,GAAIhgB,GAAU,GAAAiM,GAAA5K,OACdrB,GAAQH,QAlBiB,SAmBzBG,EAAQF,OAAS,MACjBE,EAAQe,OAAS,OACjBf,EAAQL,QAAUA,EAClBK,EAAQ8iB,IAAM,YACd,IAAIa,IACFP,OAAQ,SACRlS,KAAM,EAGR,OADAlR,GAAQoB,QAAU4Q,GAAIgO,EAAUmD,gBAAiBQ,EAAuBtZ,GAAIA,GACrErK,MrC8/HF0jB,GACP/L,EAAatW,QAEfnF,GAAQmF,QqCvhIaqiB,GrC2hIf,SAAUvnB,EAAQD,EAASM,GAEjC,YASA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHhB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInC,GAAI,EAAGA,EAAImC,EAAMC,OAAQpC,IAAK,CAAE,GAAIqC,GAAaF,EAAMnC,EAAIqC,GAAWxB,WAAawB,EAAWxB,aAAc,EAAOwB,EAAWzB,cAAe,EAAU,SAAWyB,KAAYA,EAAWC,UAAW,GAAM5B,OAAOC,eAAeuB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYN,UAAWqB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MsCziI3gBwlB,EtCijIL,WACd,QAASA,KACP1lB,EAAgB5B,KAAMsnB,GA6CxB,MA1CAjlB,GAAailB,EAAW,OACtB1kB,IAAK,YAQLlC,MAAO,SsCxjIQqhB,GACf,GAAI5f,KACJ,IAAoB,GAAhB4f,EAAIwF,UACN,GAAIxF,EAAIyF,WAAW/kB,OAAS,EAAG,CAC7BN,EAAI,iBACJ,KAAK,GAAIslB,GAAI,EAAGA,EAAI1F,EAAIyF,WAAW/kB,OAAQglB,IAAK,CAC9C,GAAIC,GAAY3F,EAAIyF,WAAWG,KAAKF,EACpCtlB,GAAI,eAAeulB,EAAUE,UAAYF,EAAUG,gBAIhC,IAAhB9F,EAAIwF,WACXplB,EAAM4f,EAAI8F,UAEZ,IAAI9F,EAAI+F,gBACN,IAAK,GAAIznB,GAAI,EAAGA,EAAI0hB,EAAIgG,WAAWtlB,OAAQpC,IAAK,CAC9C,GAAIsnB,GAAO5F,EAAIgG,WAAWJ,KAAKtnB,GAC3BunB,EAAWD,EAAKC,QACpB,QAA8B,KAAlBzlB,EAAIylB,GACdzlB,EAAIylB,GAAY5nB,KAAKmiB,UAAUwF,OAE5B,CACH,OAAmC,KAAvBxlB,EAAIylB,GAAUxX,KAAsB,CAC9C,GAAI4X,GAAM7lB,EAAIylB,EACdzlB,GAAIylB,MACJzlB,EAAIylB,GAAUxX,KAAK4X,GAErB7lB,EAAIylB,GAAUxX,KAAKpQ,KAAKmiB,UAAUwF,KAIxC,MAAOxlB,OtC0jIFmlB,IAGT1nB,GAAQmF,QsCnmIauiB","file":"ovpProvider.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 25);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Request builder\n * @classdesc\n */\nvar RequestBuilder = function () {\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n\n /**\n * @member - Service headers\n * @type {Map}\n */\n\n /**\n * @member - Service action\n * @type {string}\n */\n function RequestBuilder() {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n _classCallCheck(this, RequestBuilder);\n\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n\n /**\n * @member - Service tag\n * @type {string}\n */\n\n /**\n * @member - Service base url\n * @type {Map}\n */\n\n /**\n * @member - Service params\n * @type {any}\n */\n\n\n /**\n * @member - Service name\n * @type {string}\n */\n\n\n _createClass(RequestBuilder, [{\n key: \"getUrl\",\n value: function getUrl() {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n var url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n\n }, {\n key: \"doHttpRequest\",\n value: function doHttpRequest() {\n var _this = this;\n\n var request = new XMLHttpRequest();\n return new Promise(function (resolve, reject) {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n var jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && (typeof jsonResponse === \"undefined\" ? \"undefined\" : _typeof(jsonResponse)) === 'object' && jsonResponse.code && jsonResponse.message) reject(jsonResponse);else resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(_this.method, _this.getUrl());\n _this.headers.forEach(function (value, key) {\n request.setRequestHeader(key, value);\n });\n request.send(_this.params);\n });\n }\n }]);\n\n return RequestBuilder;\n}();\n\nexports.default = RequestBuilder;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nvar Configuration = function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n }\n\n _createClass(Configuration, null, [{\n key: \"set\",\n value: function set(clientConfig) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n return defaultConfig;\n }\n }]);\n\n return Configuration;\n}();\n\nexports.default = Configuration;\nexports.Configuration = Configuration;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UIConfCreationMode = exports.UIConfType = exports.MediaEntryType = exports.MediaType = exports.EntryType = exports.EntryModerationStatus = exports.EntryStatus = exports.MetadataStatus = exports.MetadataObjectType = exports.Status = exports.KalturaRuleActionType = exports.Scheme = undefined;\n\nvar _enumify = __webpack_require__(18);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Scheme = exports.Scheme = function (_Enum) {\n _inherits(Scheme, _Enum);\n\n function Scheme() {\n _classCallCheck(this, Scheme);\n\n return _possibleConstructorReturn(this, (Scheme.__proto__ || Object.getPrototypeOf(Scheme)).apply(this, arguments));\n }\n\n return Scheme;\n}(_enumify.Enum);\n\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\nvar KalturaRuleActionType = exports.KalturaRuleActionType = function (_Enum2) {\n _inherits(KalturaRuleActionType, _Enum2);\n\n function KalturaRuleActionType() {\n _classCallCheck(this, KalturaRuleActionType);\n\n return _possibleConstructorReturn(this, (KalturaRuleActionType.__proto__ || Object.getPrototypeOf(KalturaRuleActionType)).apply(this, arguments));\n }\n\n return KalturaRuleActionType;\n}(_enumify.Enum);\n\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nvar Status = exports.Status = function (_Enum3) {\n _inherits(Status, _Enum3);\n\n function Status() {\n _classCallCheck(this, Status);\n\n return _possibleConstructorReturn(this, (Status.__proto__ || Object.getPrototypeOf(Status)).apply(this, arguments));\n }\n\n return Status;\n}(_enumify.Enum);\n\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nvar MetadataObjectType = exports.MetadataObjectType = function (_Enum4) {\n _inherits(MetadataObjectType, _Enum4);\n\n function MetadataObjectType() {\n _classCallCheck(this, MetadataObjectType);\n\n return _possibleConstructorReturn(this, (MetadataObjectType.__proto__ || Object.getPrototypeOf(MetadataObjectType)).apply(this, arguments));\n }\n\n return MetadataObjectType;\n}(_enumify.Enum);\n\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nvar MetadataStatus = exports.MetadataStatus = function (_Enum5) {\n _inherits(MetadataStatus, _Enum5);\n\n function MetadataStatus() {\n _classCallCheck(this, MetadataStatus);\n\n return _possibleConstructorReturn(this, (MetadataStatus.__proto__ || Object.getPrototypeOf(MetadataStatus)).apply(this, arguments));\n }\n\n return MetadataStatus;\n}(_enumify.Enum);\n\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\nvar EntryStatus = exports.EntryStatus = function (_Enum6) {\n _inherits(EntryStatus, _Enum6);\n\n function EntryStatus() {\n _classCallCheck(this, EntryStatus);\n\n return _possibleConstructorReturn(this, (EntryStatus.__proto__ || Object.getPrototypeOf(EntryStatus)).apply(this, arguments));\n }\n\n return EntryStatus;\n}(_enumify.Enum);\n\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nvar EntryModerationStatus = exports.EntryModerationStatus = function (_Enum7) {\n _inherits(EntryModerationStatus, _Enum7);\n\n function EntryModerationStatus() {\n _classCallCheck(this, EntryModerationStatus);\n\n return _possibleConstructorReturn(this, (EntryModerationStatus.__proto__ || Object.getPrototypeOf(EntryModerationStatus)).apply(this, arguments));\n }\n\n return EntryModerationStatus;\n}(_enumify.Enum);\n\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nvar EntryType = exports.EntryType = function (_Enum8) {\n _inherits(EntryType, _Enum8);\n\n function EntryType() {\n _classCallCheck(this, EntryType);\n\n return _possibleConstructorReturn(this, (EntryType.__proto__ || Object.getPrototypeOf(EntryType)).apply(this, arguments));\n }\n\n return EntryType;\n}(_enumify.Enum);\n\nEntryType.initEnum({\n AUTOMATIC: { value: -1 },\n EXTERNAL_MEDIA: { value: \"externalMedia.externalMedia\" },\n MEDIA_CLIP: { value: 1 },\n MIX: { value: 2 },\n PLAYLIST: { value: 5 },\n DATA: { value: 6 },\n LIVE_STREAM: { value: 7 },\n LIVE_CHANNEL: { value: 8 },\n DOCUMENT: { value: 10 }\n});\n\nvar MediaType = exports.MediaType = function (_Enum9) {\n _inherits(MediaType, _Enum9);\n\n function MediaType() {\n _classCallCheck(this, MediaType);\n\n return _possibleConstructorReturn(this, (MediaType.__proto__ || Object.getPrototypeOf(MediaType)).apply(this, arguments));\n }\n\n return MediaType;\n}(_enumify.Enum);\n\nMediaType.initEnum({\n VIDEO: { value: 1 },\n IMAGE: { value: 2 },\n AUDIO: { value: 5 },\n LIVE_STREAM_FLASH: { value: 201 },\n LIVE_STREAM_WINDOWS_MEDIA: { value: 202 },\n LIVE_STREAM_REAL_MEDIA: { value: 203 },\n LIVE_STREAM_QUICKTIME: { value: 204 }\n});\n\nvar MediaEntryType = exports.MediaEntryType = function (_Enum10) {\n _inherits(MediaEntryType, _Enum10);\n\n function MediaEntryType() {\n _classCallCheck(this, MediaEntryType);\n\n return _possibleConstructorReturn(this, (MediaEntryType.__proto__ || Object.getPrototypeOf(MediaEntryType)).apply(this, arguments));\n }\n\n return MediaEntryType;\n}(_enumify.Enum);\n\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nvar UIConfType = exports.UIConfType = function (_Enum11) {\n _inherits(UIConfType, _Enum11);\n\n function UIConfType() {\n _classCallCheck(this, UIConfType);\n\n return _possibleConstructorReturn(this, (UIConfType.__proto__ || Object.getPrototypeOf(UIConfType)).apply(this, arguments));\n }\n\n return UIConfType;\n}(_enumify.Enum);\n\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nvar UIConfCreationMode = exports.UIConfCreationMode = function (_Enum12) {\n _inherits(UIConfCreationMode, _Enum12);\n\n function UIConfCreationMode() {\n _classCallCheck(this, UIConfCreationMode);\n\n return _possibleConstructorReturn(this, (UIConfCreationMode.__proto__ || Object.getPrototypeOf(UIConfCreationMode)).apply(this, arguments));\n }\n\n return UIConfCreationMode;\n}(_enumify.Enum);\n\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\nvar SERVICE_NAME = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\n\nvar OvpService = function () {\n function OvpService() {\n _classCallCheck(this, OvpService);\n }\n\n _createClass(OvpService, null, [{\n key: 'getMultirequest',\n\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n value: function getMultirequest(ks, partnerId) {\n var ovpParams = config.serviceParams;\n Object.assign(ovpParams, { ks: ks });\n if (partnerId) {\n Object.assign(ovpParams, { partnerId: partnerId });\n }\n var multiReq = new _multiRequestBuilder2.default();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n }]);\n\n return OvpService;\n}();\n\nexports.default = OvpService;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base service result\n * @classdesc\n */\nvar ServiceResult =\n\n/**\n * @constructor\n * @param {Object} response - Service response\n */\n\n/**\n * @member - The service error\n * @type {ServiceError}\n */\n\n/**\n * @member - The service result data\n * @type {Object}\n */\nfunction ServiceResult(response) {\n _classCallCheck(this, ServiceResult);\n\n this.hasError = false;\n\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else {\n this.data = response;\n }\n}\n\n/**\n * @member - Is service returned an error\n * @type {boolean}\n */\n;\n\n/**\n * Service error\n * @classdesc\n */\n\n\nexports.default = ServiceResult;\n\nvar ServiceError =\n\n/**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n\n/**\n * @member - The error code\n * @type {string}\n */\nfunction ServiceError(code, message) {\n _classCallCheck(this, ServiceError);\n\n this.code = code;\n this.message = message;\n}\n/**\n * @member - The error message\n * @type {string}\n */\n;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOG_LEVEL = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jsLogger = __webpack_require__(8);\n\nvar JsLogger = _interopRequireWildcard(_jsLogger);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LoggerFactory = function () {\n function LoggerFactory(options) {\n _classCallCheck(this, LoggerFactory);\n\n JsLogger.useDefaults(options || {});\n }\n\n _createClass(LoggerFactory, [{\n key: \"get\",\n value: function get(name) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n }]);\n\n return LoggerFactory;\n}();\n\nvar Logger = new LoggerFactory({ defaultLevel: JsLogger.DEBUG });\nvar LOG_LEVEL = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexports.default = Logger;\nexports.LOG_LEVEL = LOG_LEVEL;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MultiRequestResult = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\n\nvar MultiRequestBuilder = function (_RequestBuilder) {\n _inherits(MultiRequestBuilder, _RequestBuilder);\n\n /**\n * @constructor\n */\n function MultiRequestBuilder() {\n _classCallCheck(this, MultiRequestBuilder);\n\n var _this = _possibleConstructorReturn(this, (MultiRequestBuilder.__proto__ || Object.getPrototypeOf(MultiRequestBuilder)).call(this));\n\n _this.requests = [];\n return _this;\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n\n\n _createClass(MultiRequestBuilder, [{\n key: 'add',\n value: function add(request) {\n this.requests.push(request);\n var requestParams = {};\n var serviceDef = { service: request.service, action: request.action };\n Object.assign(requestParams, _defineProperty({}, this.requests.length, Object.assign(serviceDef, request.params)));\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n\n }, {\n key: 'execute',\n value: function execute() {\n var _this2 = this;\n\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n logger.error('' + err.message);\n }\n return new Promise(function (resolve, reject) {\n _this2.doHttpRequest().then(function (data) {\n resolve(new MultiRequestResult(data));\n }, function (err) {\n var errorText = 'Error on multiRequest execution, error <' + err + '>.';\n reject(errorText);\n });\n });\n }\n }]);\n\n return MultiRequestBuilder;\n}(_requestBuilder2.default);\n\n/**\n * Multi Request result object\n * @classdesc\n */\n\n\nexports.default = MultiRequestBuilder;\n\nvar MultiRequestResult =\n\n/**\n * @constructor\n * @param {Object} response data\n */\n\n\n/**\n * @member - Is success\n * @type {boolean}\n */\nexports.MultiRequestResult = function MultiRequestResult(response) {\n var _this3 = this;\n\n _classCallCheck(this, MultiRequestResult);\n\n this.results = [];\n\n this.success = true;\n response.forEach(function (result) {\n var serviceResult = new _baseServiceResult2.default(result);\n _this3.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error('Service returned an error with error code: ' + serviceResult.error.code + ' and message: ' + serviceResult.error.message + '.');\n _this3.success = false;\n return;\n }\n });\n}\n/**\n * @member - Multi request response data\n * @type {Object}\n */\n;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _mediaSource = __webpack_require__(12);\n\nvar _mediaSource2 = _interopRequireDefault(_mediaSource);\n\nvar _mediaFormat = __webpack_require__(11);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nvar MediaSources = function () {\n\n /**\n * @constructor\n */\n\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n function MediaSources() {\n _classCallCheck(this, MediaSources);\n\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n\n\n _createClass(MediaSources, [{\n key: 'map',\n value: function map(source, mediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n }]);\n\n return MediaSources;\n}();\n\nexports.default = MediaSources;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nvar _mediaSources = __webpack_require__(7);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Media entry\n * @classdesc\n */\nvar MediaEntry =\n\n/**\n * @constructor\n */\n\n/**\n * @member - entry type\n * @type {MediaEntryType}\n */\n\n/**\n * @member - entry sources\n * @type {MediaSources}\n */\nfunction MediaEntry() {\n _classCallCheck(this, MediaEntry);\n\n this.metaData = new Map();\n this.type = _enums.MediaEntryType.Unknown;\n}\n/**\n * @member - entry metadata\n * @type {Map}\n */\n\n/**\n * @member - entry duration\n * @type {number}\n */\n\n\n/**\n * @member - entry ID\n * @type {string}\n */\n;\n\nexports.default = MediaEntry;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Drm data\n * @classdesc\n */\nvar Drm =\n\n/**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n\n\n/**\n * @member - license URL\n * @type {string}\n */\nfunction Drm(licenseUrl, scheme) {\n _classCallCheck(this, Drm);\n\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n}\n/**\n * @member - drm scheme\n * @type {Scheme}\n */\n;\n\nexports.default = Drm;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MediaFormat = undefined;\n\nvar _enumify = __webpack_require__(18);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MediaFormat = exports.MediaFormat = function (_Enum) {\n _inherits(MediaFormat, _Enum);\n\n function MediaFormat() {\n _classCallCheck(this, MediaFormat);\n\n return _possibleConstructorReturn(this, (MediaFormat.__proto__ || Object.getPrototypeOf(MediaFormat)).apply(this, arguments));\n }\n\n return MediaFormat;\n}(_enumify.Enum);\n\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _drm = __webpack_require__(10);\n\nvar _drm2 = _interopRequireDefault(_drm);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Media source\n * @classdesc\n */\nvar MediaSource =\n\n/**\n * @constructor\n */\n\n/**\n * @member - media source height\n * @type {number}\n */\n\n/**\n * @member - media source bandwidth\n * @type {number}\n */\n\n/**\n * @member - media source mimetype\n * @type {string}\n */\n\n/**\n * @member - media source ID\n * @type {string}\n */\nfunction MediaSource() {\n _classCallCheck(this, MediaSource);\n}\n/**\n * @member - media source label\n * @type {string}\n */\n\n/**\n * @member - media source width\n * @type {number}\n */\n\n/**\n * @member - media source drm data\n * @type {Array}\n */\n\n/**\n * @member - media source URL\n * @type {string}\n */\n;\n\nexports.default = MediaSource;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nvar KalturaFlavorAsset =\n\n/**\n * @constructor\n * @param {Object} data The json response\n */\n\n/**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n\n/**\n *@member - The video codec\n * @type {boolean}\n */\n\n/**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n\n/**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member -The file extension\n * @type {string}\n */\n\n/**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\nfunction KalturaFlavorAsset(data) {\n _classCallCheck(this, KalturaFlavorAsset);\n\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n}\n/**\n * @member - The label of the flavor asset\n * @type {string}\n */\n\n/**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n\n/**\n * @member - The container format\n * @type {boolean}\n */\n\n/**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n\n/**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n\n/**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n;\n\nexports.default = KalturaFlavorAsset;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nvar KalturaMediaEntry =\n\n/**\n * @constructor\n * @param {Object} entry The json response\n */\n\n/**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n\n/**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n\n/**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\nfunction KalturaMediaEntry(entry) {\n _classCallCheck(this, KalturaMediaEntry);\n\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n}\n/**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n\n/**\n * @member - The entry duration\n * @type {number}\n */\n\n/**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n\n/**\n * @member - The entry id\n * @type {string}\n */\n;\n\nexports.default = KalturaMediaEntry;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaMetadata = __webpack_require__(30);\n\nvar _kalturaMetadata2 = _interopRequireDefault(_kalturaMetadata);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nvar KalturaMetadataListResponse = function (_ServiceResult) {\n _inherits(KalturaMetadataListResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n function KalturaMetadataListResponse(responseObj) {\n _classCallCheck(this, KalturaMetadataListResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaMetadataListResponse.__proto__ || Object.getPrototypeOf(KalturaMetadataListResponse)).call(this, responseObj));\n\n if (!_this.hasError) {\n _this.totalCount = responseObj.totalCount;\n if (_this.totalCount > 0) {\n _this.metas = [];\n responseObj.objects.map(function (meta) {\n return _this.metas.push(new _kalturaMetadata2.default(meta));\n });\n }\n }\n return _this;\n }\n /**\n * @member -The mata data array\n * @type {Array}\n */\n\n\n return KalturaMetadataListResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaMetadataListResponse;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaAccessControlMessage = __webpack_require__(27);\n\nvar _kalturaAccessControlMessage2 = _interopRequireDefault(_kalturaAccessControlMessage);\n\nvar _kalturaPlaybackSource = __webpack_require__(17);\n\nvar _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource);\n\nvar _kalturaRuleAction = __webpack_require__(31);\n\nvar _kalturaRuleAction2 = _interopRequireDefault(_kalturaRuleAction);\n\nvar _kalturaFlavorAsset = __webpack_require__(13);\n\nvar _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nvar KalturaPlaybackContext = function (_ServiceResult) {\n _inherits(KalturaPlaybackContext, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n\n /**\n * @member - The playback sources\n * @type {Array}\n */\n function KalturaPlaybackContext(response) {\n _classCallCheck(this, KalturaPlaybackContext);\n\n var _this = _possibleConstructorReturn(this, (KalturaPlaybackContext.__proto__ || Object.getPrototypeOf(KalturaPlaybackContext)).call(this, response));\n\n _this.sources = [];\n _this.actions = [];\n _this.messages = [];\n _this.flavorAssets = [];\n\n if (!_this.hasError) {\n\n var messages = response.messages;\n if (messages) {\n messages.map(function (message) {\n return _this.messages.push(new _kalturaAccessControlMessage2.default(message));\n });\n }\n\n var actions = response.actions;\n if (actions) {\n actions.map(function (action) {\n return _this.actions.push(new _kalturaRuleAction2.default(action));\n });\n }\n\n var sources = response.sources;\n if (sources) {\n sources.map(function (source) {\n return _this.sources.push(new _kalturaPlaybackSource2.default(source));\n });\n }\n\n var flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(function (flavor) {\n return _this.flavorAssets.push(new _kalturaFlavorAsset2.default(flavor));\n });\n }\n }\n\n return _this;\n }\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n\n\n return KalturaPlaybackContext;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaPlaybackContext;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _kalturaDrmPlaybackPluginData = __webpack_require__(29);\n\nvar _kalturaDrmPlaybackPluginData2 = _interopRequireDefault(_kalturaDrmPlaybackPluginData);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nvar KalturaPlaybackSource = function () {\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n\n /**\n * @member - The source URL\n * @type {string}\n */\n\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n function KalturaPlaybackSource(source) {\n var _this = this;\n\n _classCallCheck(this, KalturaPlaybackSource);\n\n this.drm = [];\n\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(function (drm) {\n return _this.drm.push(new _kalturaDrmPlaybackPluginData2.default(drm));\n });\n }\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n\n\n _createClass(KalturaPlaybackSource, [{\n key: \"hasDrmData\",\n value: function hasDrmData() {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n\n }, {\n key: \"hasFlavorIds\",\n value: function hasFlavorIds() {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n\n }, {\n key: \"getProtocol\",\n value: function getProtocol(protocol) {\n var returnValue = \"\";\n if (this.protocols && this.protocols.length > 0) {\n var protocolsArr = this.protocols.split(\",\");\n protocolsArr.forEach(function (p) {\n if (p == protocol) {\n returnValue = p;\n }\n });\n } else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n }]);\n\n return KalturaPlaybackSource;\n}();\n\nexports.default = KalturaPlaybackSource;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Data loaders manager\n * @classdesc\n */\nvar DataLoaderManager = function () {\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n function DataLoaderManager(partnerID) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n\n _classCallCheck(this, DataLoaderManager);\n\n this._loaders = new Map();\n\n this._multiRequest = _ovpService2.default.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n\n\n _createClass(DataLoaderManager, [{\n key: 'add',\n value: function add(loader, params) {\n var _this = this;\n\n var execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n var startIndex = this._multiRequest.requests.length;\n //Get the requests\n var requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach(function (request) {\n _this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n var executionLoaderResponseMap = Array.from(new Array(requests.length), function (val, index) {\n return index + startIndex;\n });\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n\n }, {\n key: 'fetchData',\n value: function fetchData() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2._multiRequest.execute().then(function (response) {\n _this2._multiResponse = response;\n if (!response.success) {\n reject(response);\n } else {\n var preparedData = _this2.prepareData(response);\n if (preparedData.success) {\n resolve(_this2._loaders);\n } else {\n reject({ success: false, data: preparedData.error });\n }\n }\n }, function (err) {\n reject(err);\n });\n });\n }\n }, {\n key: 'prepareData',\n value: function prepareData(response) {\n this._loaders.forEach(function (loader, name) {\n var loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1);\n }\n } catch (err) {\n return { success: false, error: err };\n }\n });\n return { success: true, data: this._loaders };\n }\n }]);\n\n return DataLoaderManager;\n}();\n\nDataLoaderManager._loadersResponseMap = new Map();\nexports.default = DataLoaderManager;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseEntryService = __webpack_require__(33);\n\nvar _baseEntryService2 = _interopRequireDefault(_baseEntryService);\n\nvar _metaDataService = __webpack_require__(34);\n\nvar _metaDataService2 = _interopRequireDefault(_metaDataService);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _kalturaPlaybackContext = __webpack_require__(16);\n\nvar _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext);\n\nvar _kalturaMetadataListResponse = __webpack_require__(15);\n\nvar _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse);\n\nvar _kalturaBaseEntryListResponse = __webpack_require__(28);\n\nvar _kalturaBaseEntryListResponse2 = _interopRequireDefault(_kalturaBaseEntryListResponse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\n\nvar MediaEntryLoader = function () {\n _createClass(MediaEntryLoader, null, [{\n key: 'name',\n get: function get() {\n return \"media\";\n }\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function MediaEntryLoader(params) {\n _classCallCheck(this, MediaEntryLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n _createClass(MediaEntryLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_baseEntryService2.default.list(config.beUrl, params.ks, params.entryId));\n requests.push(_baseEntryService2.default.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(_metaDataService2.default.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._entryId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n var mediaEntryResponse = new _kalturaBaseEntryListResponse2.default(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new _kalturaPlaybackContext2.default(response[1].data);\n this._response.metadataListResult = new _kalturaMetadataListResponse2.default(response[2].data);\n },\n get: function get() {\n return this._response;\n }\n }]);\n\n return MediaEntryLoader;\n}();\n\nexports.default = MediaEntryLoader;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _sessionService = __webpack_require__(35);\n\nvar _sessionService2 = _interopRequireDefault(_sessionService);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n/**\n * Media entry loader\n * @classdesc\n */\n\nvar SessionLoader = function () {\n _createClass(SessionLoader, null, [{\n key: 'name',\n get: function get() {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function SessionLoader(params) {\n _classCallCheck(this, SessionLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n _createClass(SessionLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_sessionService2.default.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._partnerId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n this._response.ks = response[0].data.ks;\n },\n get: function get() {\n return this._response.ks;\n }\n }]);\n\n return SessionLoader;\n}();\n\nexports.default = SessionLoader;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _uiConfService = __webpack_require__(37);\n\nvar _uiConfService2 = _interopRequireDefault(_uiConfService);\n\nvar _kalturaUiConfResponse = __webpack_require__(32);\n\nvar _kalturaUiConfResponse2 = _interopRequireDefault(_kalturaUiConfResponse);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\nvar UiConfigLoader = function () {\n _createClass(UiConfigLoader, null, [{\n key: 'name',\n get: function get() {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function UiConfigLoader(params) {\n _classCallCheck(this, UiConfigLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n _createClass(UiConfigLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_uiConfService2.default.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._uiConfId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n this._response.uiConf = new _kalturaUiConfResponse2.default(response[0].data);\n },\n get: function get() {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null) try {\n return JSON.parse(this._response.uiConf.config).plugins;\n } catch (err) {\n return null;\n } else return null;\n }\n }]);\n\n return UiConfigLoader;\n}();\n\nexports.default = UiConfigLoader;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _kalturaMediaEntry = __webpack_require__(14);\n\nvar _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry);\n\nvar _kalturaPlaybackContext = __webpack_require__(16);\n\nvar _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext);\n\nvar _kalturaPlaybackSource = __webpack_require__(17);\n\nvar _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource);\n\nvar _kalturaFlavorAsset = __webpack_require__(13);\n\nvar _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset);\n\nvar _kalturaMetadataListResponse = __webpack_require__(15);\n\nvar _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse);\n\nvar _playSourceUrlBuilder = __webpack_require__(26);\n\nvar _playSourceUrlBuilder2 = _interopRequireDefault(_playSourceUrlBuilder);\n\nvar _xmlParser = __webpack_require__(38);\n\nvar _xmlParser2 = _interopRequireDefault(_xmlParser);\n\nvar _enums = __webpack_require__(2);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _mediaFormat = __webpack_require__(11);\n\nvar _mediaEntry = __webpack_require__(9);\n\nvar _mediaEntry2 = _interopRequireDefault(_mediaEntry);\n\nvar _drm = __webpack_require__(10);\n\nvar _drm2 = _interopRequireDefault(_drm);\n\nvar _mediaSource = __webpack_require__(12);\n\nvar _mediaSource2 = _interopRequireDefault(_mediaSource);\n\nvar _mediaSources = __webpack_require__(7);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nvar SUPPORTED_FORMATS = new Map([[\"mpegdash\", _mediaFormat.MediaFormat.dash], [\"applehttp\", _mediaFormat.MediaFormat.hls], [\"url\", _mediaFormat.MediaFormat.mp4]]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\n\nvar ProviderParser = function () {\n function ProviderParser() {\n _classCallCheck(this, ProviderParser);\n }\n\n _createClass(ProviderParser, null, [{\n key: 'getMediaEntry',\n\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {any} mediaEntryResponse The media entry response\n * @returns {MediaEntry} The media entry\n * @static\n * @public\n */\n value: function getMediaEntry(ks, partnerID, uiConfId, mediaEntryResponse) {\n var mediaEntry = new _mediaEntry2.default();\n var entry = mediaEntryResponse.entry;\n var playbackContext = mediaEntryResponse.playBackContextResult;\n var metadataList = mediaEntryResponse.metadataListResult;\n var kalturaSources = playbackContext.sources;\n var sources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n var metadata = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n var type = _enums.MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case _enums.MediaType.IMAGE.value:\n type = _enums.MediaEntryType.Image;\n break;\n case _enums.MediaType.AUDIO.value:\n type = _enums.MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case _enums.EntryType.MEDIA_CLIP.value:\n type = _enums.MediaEntryType.Vod;\n break;\n case _enums.EntryType.LIVE_STREAM.value:\n case _enums.EntryType.LIVE_CHANNEL.value:\n type = _enums.MediaEntryType.Live;\n break;\n default:\n type = _enums.MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n }, {\n key: '_getParsedSources',\n value: function _getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext) {\n var sources = new _mediaSources2.default();\n\n var parseAdaptiveSources = function parseAdaptiveSources() {\n kalturaSources.forEach(function (source) {\n if (ProviderParser._isProgressiveSource(source) === false) {\n var parsedSource = ProviderParser._parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext);\n var sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n }\n });\n };\n\n var parseProgressiveSources = function parseProgressiveSources() {\n var progressiveSource = kalturaSources.find(function (source) {\n return ProviderParser._isProgressiveSource(source);\n });\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n }, {\n key: '_isProgressiveSource',\n value: function _isProgressiveSource(source) {\n var sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n *\n * @param {KalturaPlaybackSource} source The source\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {KalturaMediaEntry} entry The entry\n * @param {KalturaPlaybackContext} playbackContext The playback context\n * @returns {MediaSource} The parsed media source\n * @static\n * @private\n */\n\n }, {\n key: '_parseAdaptiveSource',\n value: function _parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext) {\n var playUrl = \"\";\n var mediaFormat = SUPPORTED_FORMATS.get(source.format);\n var mediaSource = new _mediaSource2.default();\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (source.hasFlavorIds()) {\n var extension = \"\";\n if (!mediaFormat) {\n var flavorIdsArr = source.flavorIds.split(\",\");\n var flavors = playbackContext.flavorAssets.filter(function (flavor) {\n return flavorIdsArr.indexOf(flavor.id) != -1;\n });\n if (flavors && flavors.length > 0) {\n extension = flavors[0].fileExt;\n }\n } else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = _playSourceUrlBuilder2.default.build({\n entryId: entry.id,\n flavorIds: source.flavorIds,\n format: source.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: source.getProtocol(this._getBaseProtocol())\n });\n } else {\n playUrl = source.url;\n }\n\n if (playUrl == \"\") {\n logger.error('failed to create play url from source, discarding source: (' + entry.id + '_' + source.deliveryProfileId + '), ' + source.format + '.');\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entry.id + \"_\" + source.deliveryProfileId + \",\" + source.format;\n if (source.hasDrmData()) {\n var drmParams = [];\n source.drm.forEach(function (drm) {\n drmParams.push(new _drm2.default(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n return mediaSource;\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n\n }, {\n key: '_parseMetaData',\n value: function _parseMetaData(metadataList) {\n var metadata = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach(function (meta) {\n var metaXml = void 0;\n var domParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n var metasObj = _xmlParser2.default.xmlToJson(metaXml);\n var metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach(function (key) {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n });\n });\n }\n return metadata;\n }\n }, {\n key: '_parseProgressiveSources',\n value: function _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entry) {\n var sources = [];\n if (kalturaSource) {\n var protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n var format = kalturaSource.format;\n var sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map(function (flavor) {\n if (flavor.height && flavor.width) {\n var mediaSource = new _mediaSource2.default();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = _playSourceUrlBuilder2.default.build({\n entryId: entry.id,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n }, {\n key: '_getBaseProtocol',\n value: function _getBaseProtocol() {\n var splittedUrl = config.baseUrl.split(\"/\");\n var baseProtocol = void 0;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n } else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n }]);\n\n return ProviderParser;\n}();\n\nexports.default = ProviderParser;\n\n/***/ }),\n/* 24 */,\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OvpProvider = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _providerParser = __webpack_require__(23);\n\nvar _providerParser2 = _interopRequireDefault(_providerParser);\n\nvar _dataLoaderManager = __webpack_require__(19);\n\nvar _dataLoaderManager2 = _interopRequireDefault(_dataLoaderManager);\n\nvar _mediaEntryLoader = __webpack_require__(20);\n\nvar _mediaEntryLoader2 = _interopRequireDefault(_mediaEntryLoader);\n\nvar _sessionLoader = __webpack_require__(21);\n\nvar _sessionLoader2 = _interopRequireDefault(_sessionLoader);\n\nvar _uiConfigLoader = __webpack_require__(22);\n\nvar _uiConfigLoader2 = _interopRequireDefault(_uiConfigLoader);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _mediaEntry = __webpack_require__(9);\n\nvar _mediaEntry2 = _interopRequireDefault(_mediaEntry);\n\nvar _mediaSources = __webpack_require__(7);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Ovp provider\n * @classdesc\n */\nvar OvpProvider = exports.OvpProvider = function () {\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n\n /**\n * @member - partner ID\n * @type {number}\n */\n function OvpProvider(partnerID) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var config = arguments[2];\n\n _classCallCheck(this, OvpProvider);\n\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n _config2.default.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n\n /**\n * @member - ks\n * @type {string}\n */\n\n\n _createClass(OvpProvider, [{\n key: 'getConfig',\n value: function getConfig(entryId, uiConfId) {\n var _this = this;\n\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new _dataLoaderManager2.default(this.partnerID, this.ks);\n return new Promise(function (resolve, reject) {\n if (_this.validateParams(entryId, uiConfId)) {\n var ks = _this.ks;\n if (_this._isAnonymous) {\n ks = \"{1:result:ks}\";\n _this._dataLoader.add(_sessionLoader2.default, { partnerId: _this.partnerID });\n }\n _this._dataLoader.add(_mediaEntryLoader2.default, { entryId: entryId, ks: ks });\n _this._dataLoader.add(_uiConfigLoader2.default, { uiConfId: uiConfId, ks: ks });\n _this._dataLoader.fetchData().then(function (response) {\n resolve(_this.parseDataFromResponse(response));\n }, function (err) {\n reject(err);\n });\n } else {\n reject({ success: false, data: \"Missing mandatory parameter\" });\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n\n }, {\n key: 'parseDataFromResponse',\n value: function parseDataFromResponse(data) {\n logger.debug(\"Data parsing started\");\n var config = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId\n },\n sources: new _mediaSources2.default(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(_sessionLoader2.default.name)) {\n var sessionLoader = data.get(_sessionLoader2.default.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(_uiConfigLoader2.default.name)) {\n var uiConfLoader = data.get(_uiConfigLoader2.default.name);\n var pluginsJson = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(_mediaEntryLoader2.default.name)) {\n var mediaLoader = data.get(_mediaEntryLoader2.default.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n var mediaEntry = _providerParser2.default.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return config;\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n\n }, {\n key: 'validateParams',\n value: function validateParams(entryId, uiConfId) {\n return !!entryId || !!uiConfId;\n }\n }]);\n\n return OvpProvider;\n}();\n\nexports.default = OvpProvider;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\n\nvar PlaySourceUrlBuilder = function () {\n function PlaySourceUrlBuilder() {\n _classCallCheck(this, PlaySourceUrlBuilder);\n }\n\n _createClass(PlaySourceUrlBuilder, null, [{\n key: \"build\",\n\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n value: function build(urlParams) {\n var baseUrl = config.baseUrl;\n var partnerId = urlParams.partnerId;\n var entryId = urlParams.entryId;\n var ks = urlParams.ks;\n var uiConfId = urlParams.uiConfId;\n var format = urlParams.format;\n var protocol = urlParams.protocol;\n var extension = urlParams.extension;\n var flavorIds = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n var playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n } else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n\n }, {\n key: \"endsWith\",\n value: function endsWith(string, searchString) {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n }]);\n\n return PlaySourceUrlBuilder;\n}();\n\nexports.default = PlaySourceUrlBuilder;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nvar KalturaAccessControlMessage =\n\n/**\n * @constructor\n * @param {Object} data The json response\n */\n\n/**\n * @member - The access control message\n * @type {string}\n */\nfunction KalturaAccessControlMessage(data) {\n _classCallCheck(this, KalturaAccessControlMessage);\n\n this.message = data.message;\n this.code = data.code;\n}\n/**\n * @member - The access control message code\n * @@type {string}\n */\n;\n\nexports.default = KalturaAccessControlMessage;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaMediaEntry = __webpack_require__(14);\n\nvar _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nvar KalturaBaseEntryListResponse = function (_ServiceResult) {\n _inherits(KalturaBaseEntryListResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n\n /**\n * @member - The total count\n * @type {number}\n */\n function KalturaBaseEntryListResponse(responseObj) {\n _classCallCheck(this, KalturaBaseEntryListResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaBaseEntryListResponse.__proto__ || Object.getPrototypeOf(KalturaBaseEntryListResponse)).call(this, responseObj));\n\n if (!_this.hasError) {\n _this.totalCount = responseObj.totalCount;\n if (_this.totalCount > 0) {\n _this.entries = [];\n responseObj.objects.map(function (entry) {\n return _this.entries.push(new _kalturaMediaEntry2.default(entry));\n });\n }\n }\n return _this;\n }\n /**\n * @member - The entries\n * @type {Array}\n */\n\n\n return KalturaBaseEntryListResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaBaseEntryListResponse;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nvar KalturaDrmPlaybackPluginData =\n\n/**\n * @constructor\n * @param {Object} drm The json response\n */\n\n/**\n * @member - The drm scheme\n * @type {Scheme}\n */\nfunction KalturaDrmPlaybackPluginData(drm) {\n _classCallCheck(this, KalturaDrmPlaybackPluginData);\n\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n}\n\n/**\n * @member - The license URL\n * @type {string}\n */\n;\n\nexports.default = KalturaDrmPlaybackPluginData;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nvar KalturaMetadata =\n\n/**\n * @constructor\n * @param {Object} data The response\n */\nfunction KalturaMetadata(data) {\n _classCallCheck(this, KalturaMetadata);\n\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n}\n/**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n;\n\nexports.default = KalturaMetadata;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nvar KalturaRuleAction =\n\n/**\n * @constructor\n * @param {Object} data The response\n */\nfunction KalturaRuleAction(data) {\n _classCallCheck(this, KalturaRuleAction);\n\n this.type = data.type;\n}\n/**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n;\n\nexports.default = KalturaRuleAction;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _enums = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nvar KalturaUiConfResponse = function (_ServiceResult) {\n _inherits(KalturaUiConfResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n function KalturaUiConfResponse(data) {\n _classCallCheck(this, KalturaUiConfResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaUiConfResponse.__proto__ || Object.getPrototypeOf(KalturaUiConfResponse)).call(this, data));\n\n if (!_this.hasError) {\n _this.name = data.name;\n\n _this.description = data.description;\n _this.objTypeAsString = data.objTypeAsString;\n _this.width = data.width;\n _this.height = data.height;\n _this.htmlParams = data.htmlParams;\n _this.swfUrl = data.swfUrl;\n _this.confFilePath = data.confFilePath;\n _this.confFile = data.confFile;\n _this.confFileFeatures = data.confFileFeatures;\n _this.config = data.config;\n _this.confVars = data.confVars;\n _this.useCdn = data.useCdn;\n _this.tags = data.tags;\n _this.swfUrlVersion = data.swfUrlVersion;\n _this.created = new Date(0);\n _this.created.setUTCSeconds(data.createdAt);\n _this.updated = new Date(0);\n _this.updated.setUTCSeconds(data.updatedAt);\n _this.html5Url = data.description;\n _this.version = data.description;\n _this.partnerTags = data.description;\n _this.objType = data.description;\n _this.creationMode = data.description;\n }\n return _this;\n }\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n\n\n return KalturaUiConfResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaUiConfResponse;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\n\nvar BaseEntryService = function (_OvpService) {\n _inherits(BaseEntryService, _OvpService);\n\n function BaseEntryService() {\n _classCallCheck(this, BaseEntryService);\n\n return _possibleConstructorReturn(this, (BaseEntryService.__proto__ || Object.getPrototypeOf(BaseEntryService)).apply(this, arguments));\n }\n\n _createClass(BaseEntryService, null, [{\n key: 'getPlaybackContext',\n\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function getPlaybackContext(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n var contextDataParams = { objectType: \"KalturaContextDataParams\", flavorTags: \"all\" };\n var params = { entryId: entryId, ks: ks, contextDataParams: contextDataParams };\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n\n }, {\n key: 'list',\n value: function list(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n\n }, {\n key: 'getEntryListReqParams',\n value: function getEntryListReqParams(entryId, ks) {\n var filterParams = { redirectFromEntryId: entryId };\n var responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return { ks: ks, filter: filterParams, responseProfile: responseProfileParams };\n }\n }]);\n\n return BaseEntryService;\n}(_ovpService2.default);\n\nexports.default = BaseEntryService;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\n\nvar MetaDataService = function (_OvpService) {\n _inherits(MetaDataService, _OvpService);\n\n function MetaDataService() {\n _classCallCheck(this, MetaDataService);\n\n return _possibleConstructorReturn(this, (MetaDataService.__proto__ || Object.getPrototypeOf(MetaDataService)).apply(this, arguments));\n }\n\n _createClass(MetaDataService, null, [{\n key: 'list',\n\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function list(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n var filter = { objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\" };\n var params = { filter: filter, ks: ks };\n request.params = params;\n return request;\n }\n }]);\n\n return MetaDataService;\n}(_ovpService2.default);\n\nexports.default = MetaDataService;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\n\nvar SessionService = function (_OvpService) {\n _inherits(SessionService, _OvpService);\n\n function SessionService() {\n _classCallCheck(this, SessionService);\n\n return _possibleConstructorReturn(this, (SessionService.__proto__ || Object.getPrototypeOf(SessionService)).apply(this, arguments));\n }\n\n _createClass(SessionService, null, [{\n key: 'anonymousSession',\n\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function anonymousSession(baseUrl, partnerId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = { widgetId: \"_\" + partnerId };\n return request;\n }\n }]);\n\n return SessionService;\n}(_ovpService2.default);\n\nexports.default = SessionService;\n\n/***/ }),\n/* 36 */,\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\n\nvar UiConfService = function (_OvpService) {\n _inherits(UiConfService, _OvpService);\n\n function UiConfService() {\n _classCallCheck(this, UiConfService);\n\n return _possibleConstructorReturn(this, (UiConfService.__proto__ || Object.getPrototypeOf(UiConfService)).apply(this, arguments));\n }\n\n _createClass(UiConfService, null, [{\n key: 'get',\n\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function get(baseUrl, ks, uiConfID) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n var responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = { id: uiConfID, responseProfile: responseProfileParams, ks: ks };\n return request;\n }\n }]);\n\n return UiConfService;\n}(_ovpService2.default);\n\nexports.default = UiConfService;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Xml parser\n * @classdesc\n */\nvar XmlParser = function () {\n function XmlParser() {\n _classCallCheck(this, XmlParser);\n }\n\n _createClass(XmlParser, null, [{\n key: \"xmlToJson\",\n\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n value: function xmlToJson(xml) {\n var obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (var j = 0; j < xml.attributes.length; j++) {\n var attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (var i = 0; i < xml.childNodes.length; i++) {\n var item = xml.childNodes.item(i);\n var nodeName = item.nodeName;\n if (typeof obj[nodeName] == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n } else {\n if (typeof obj[nodeName].push == \"undefined\") {\n var old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n }]);\n\n return XmlParser;\n}();\n\nexports.default = XmlParser;\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// ovpProvider.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 25);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 23bc45362ebde973588a","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\nimport {Enum} from 'enumify';\n\nexport class Scheme extends Enum {\n}\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\n\nexport class KalturaRuleActionType extends Enum {\n}\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nexport class Status extends Enum {\n}\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nexport class MetadataObjectType extends Enum {\n}\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nexport class MetadataStatus extends Enum {\n}\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\n\nexport class EntryStatus extends Enum {\n}\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nexport class EntryModerationStatus extends Enum {\n}\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nexport class EntryType extends Enum {\n}\nEntryType.initEnum({\n AUTOMATIC: {value: -1},\n EXTERNAL_MEDIA: {value: \"externalMedia.externalMedia\"},\n MEDIA_CLIP: {value: 1},\n MIX: {value: 2},\n PLAYLIST: {value: 5},\n DATA: {value: 6},\n LIVE_STREAM: {value: 7},\n LIVE_CHANNEL: {value: 8},\n DOCUMENT: {value: 10}\n});\n\nexport class MediaType extends Enum {\n}\nMediaType.initEnum({\n VIDEO: {value: 1},\n IMAGE: {value: 2},\n AUDIO: {value: 5},\n LIVE_STREAM_FLASH: {value: 201},\n LIVE_STREAM_WINDOWS_MEDIA: {value: 202},\n LIVE_STREAM_REAL_MEDIA: {value: 203},\n LIVE_STREAM_QUICKTIME: {value: 204}\n});\n\n\nexport class MediaEntryType extends Enum {\n}\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nexport class UIConfType extends Enum {\n}\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nexport class UIConfCreationMode extends Enum {\n}\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/enums.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","// @flow\nimport MediaSource from './media-source'\nimport {MediaFormat} from './media-format'\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nexport default class MediaSources {\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n progressive: Array;\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n dash: Array;\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n hls: Array;\n\n /**\n * @constructor\n */\n constructor() {\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n map(source: MediaSource, mediaFormat: ?MediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-sources.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/js-logger/src/logger.js\n// module id = 8\n// module chunks = 0 1","//@flow\nimport {MediaEntryType} from '../k-provider/enums'\nimport MediaSources from './media-sources'\n\n/**\n * Media entry\n * @classdesc\n */\nexport default class MediaEntry {\n\n /**\n * @member - entry ID\n * @type {string}\n */\n id: string;\n /**\n * @member - entry sources\n * @type {MediaSources}\n */\n sources: MediaSources;\n /**\n * @member - entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - entry type\n * @type {MediaEntryType}\n */\n type: MediaEntryType;\n /**\n * @member - entry metadata\n * @type {Map}\n */\n metaData: Map;\n\n /**\n * @constructor\n */\n constructor() {\n this.metaData = new Map();\n this.type = MediaEntryType.Unknown;\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-entry.js","//@flow\n\nimport {Scheme} from '../k-provider/enums';\n\n/**\n * Drm data\n * @classdesc\n */\nexport default class Drm {\n\n /**\n * @member - license URL\n * @type {string}\n */\n licenseUrl: string;\n /**\n * @member - drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n constructor(licenseUrl: string, scheme: Scheme) {\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/drm.js","//@flow\nimport {Enum} from 'enumify';\n\nexport class MediaFormat extends Enum {\n}\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-format.js","//@flow\nimport Drm from '../entities/drm'\n\n/**\n * Media source\n * @classdesc\n */\nexport default class MediaSource {\n /**\n * @member - media source ID\n * @type {string}\n */\n id: string;\n /**\n * @member - media source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - media source mimetype\n * @type {string}\n */\n mimetype: string;\n /**\n * @member - media source drm data\n * @type {Array}\n */\n drmData: Array;\n /**\n * @member - media source bandwidth\n * @type {number}\n */\n bandwidth: number;\n /**\n * @member - media source width\n * @type {number}\n */\n width: number;\n /**\n * @member - media source height\n * @type {number}\n */\n height: number;\n /**\n * @member - media source label\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n */\n constructor(){}\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-source.js","//@flow\nimport {Status} from '../../enums'\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nexport default class KalturaFlavorAsset {\n /**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\n id: string;\n /**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n flavorParamsId: string;\n /**\n * @member -The file extension\n * @type {string}\n */\n fileExt: string;\n /**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n bitrate: number;\n /**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n width: number;\n /**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n height: number;\n /**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n frameRate: number;\n /**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n isOriginal: boolean;\n /**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n isWeb: boolean;\n /**\n * @member - The container format\n * @type {boolean}\n */\n containerFormat: string;\n /**\n *@member - The video codec\n * @type {boolean}\n */\n videoCodecId: string;\n /**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n status: Status;\n /**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n language: string;\n /**\n * @member - The label of the flavor asset\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: any) {\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-flavor-asset.js","//@flow\nimport {EntryType, MediaType} from '../../enums'\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nexport default class KalturaMediaEntry {\n /**\n * @member - The entry id\n * @type {string}\n */\n id: string;\n /**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\n name: string;\n /**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n dataUrl: string;\n /**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n flavorParamsIds: string;\n /**\n * @member - The entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n type: EntryType;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n entryType: MediaType;\n\n /**\n * @constructor\n * @param {Object} entry The json response\n */\n constructor(entry: Object) {\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n }\n}\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-media-entry.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMetadata from './kaltura-metadata'\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nexport default class KalturaMetadataListResponse extends ServiceResult {\n totalCount: number;\n /**\n * @member -The mata data array\n * @type {Array}\n */\n metas: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.metas = [];\n responseObj.objects.map(meta => this.metas.push(new KalturaMetadata(meta)));\n }\n\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata-list-response.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaAccessControlMessage from './kaltura-access-control-message'\nimport KalturaPlaybackSource from './kaltura-playback-source'\nimport KalturaRuleAction from './kaltura-rule-action'\nimport KalturaFlavorAsset from './kaltura-flavor-asset'\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nexport default class KalturaPlaybackContext extends ServiceResult {\n /**\n * @member - The playback sources\n * @type {Array}\n */\n sources: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n actions: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n messages: Array = [];\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n flavorAssets: Array = [];\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n constructor(response: Object) {\n super(response);\n if (!this.hasError) {\n\n let messages = response.messages;\n if (messages) {\n messages.map(message => this.messages.push(new KalturaAccessControlMessage(message)));\n }\n\n let actions = response.actions;\n if (actions) {\n actions.map(action => this.actions.push(new KalturaRuleAction(action)));\n }\n\n let sources = response.sources;\n if (sources) {\n sources.map(source => this.sources.push(new KalturaPlaybackSource(source)));\n }\n\n let flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(flavor => this.flavorAssets.push(new KalturaFlavorAsset(flavor)));\n }\n }\n\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-context.js","//@flow\nimport KalturaDrmPlaybackPluginData from './kaltura-drm-playback-plugin-data'\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nexport default class KalturaPlaybackSource {\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n format: string;\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n deliveryProfileId: string;\n /**\n * @member - The source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n protocols: string;\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n flavorIds: string;\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n drm: Array = [];\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n constructor(source: Object) {\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(drm => this.drm.push(new KalturaDrmPlaybackPluginData(drm)));\n }\n\n\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n hasDrmData(): boolean {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n hasFlavorIds(): boolean {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n getProtocol(protocol: string): string {\n let returnValue: string = \"\";\n if (this.protocols && this.protocols.length > 0) {\n let protocolsArr: Array = this.protocols.split(\",\");\n protocolsArr.forEach((p) => {\n if (p == protocol) {\n returnValue = p;\n }\n });\n }\n else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-source.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/enumify/lib/enumify.js\n// module id = 18\n// module chunks = 0","//@flow\nimport OvpService from '../services/ovp-service'\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport {MultiRequestResult} from '../../multi-request-builder'\n\n/**\n * Data loaders manager\n * @classdesc\n */\nexport default class DataLoaderManager {\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n static _loadersResponseMap: Map> = new Map();\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n _multiRequest: MultiRequestBuilder;\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n _multiResponse: MultiRequestResult;\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n _loaders: Map = new Map();\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n constructor(partnerID: number, ks: string = \"\") {\n this._multiRequest = OvpService.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n add(loader: typeof ILoader, params: Object): void {\n let execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n let startIndex = this._multiRequest.requests.length;\n //Get the requests\n let requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach((request) => {\n this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n let executionLoaderResponseMap = Array.from(new Array(requests.length), (val, index) => index + startIndex);\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n fetchData(): Promise {\n return new Promise((resolve, reject) => {\n this._multiRequest.execute()\n .then(response => {\n this._multiResponse = response;\n if (!response.success) {\n reject(response);\n }\n else {\n let preparedData: Object = this.prepareData(response);\n if (preparedData.success) {\n resolve(this._loaders);\n }\n else {\n reject({success: false, data: preparedData.error});\n }\n }\n },\n err => {\n reject(err);\n });\n });\n }\n\n prepareData(response: MultiRequestResult): Object {\n this._loaders.forEach(function (loader, name) {\n let loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = (response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1));\n }\n }\n catch (err) {\n return {success: false, error: err};\n }\n });\n return {success: true, data: this._loaders};\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/data-loader-manager.js","//@flow\n\nimport RequestBuilder from '../../request-builder'\nimport BaseEntryService from '../services/base-entry-service'\nimport MetaDataService from '../services/meta-data-service'\nimport Configuration from '../config'\nimport KalturaPlaybackContext from '../response-types/kaltura-playback-context'\nimport KalturaMetadataListResponse from '../response-types/kaltura-metadata-list-response'\nimport KalturaBaseEntryListResponse from '../response-types/kaltura-base-entry-list-response'\n\nconst config = Configuration.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class MediaEntryLoader implements ILoader {\n static get name(): string {\n return \"media\";\n }\n\n _entryId: string;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n let mediaEntryResponse: KalturaBaseEntryListResponse = new KalturaBaseEntryListResponse(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);\n this._response.metadataListResult = new KalturaMetadataListResponse(response[2].data);\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(BaseEntryService.list(config.beUrl, params.ks, params.entryId));\n requests.push(BaseEntryService.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(MetaDataService.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._entryId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/media-entry-loader.js","//@flow\nimport SessionService from '../services/session-service'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class SessionLoader implements ILoader {\n static get name(): string {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n _partnerId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.ks = response[0].data.ks;\n }\n\n get response(): any {\n return this._response.ks;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(SessionService.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._partnerId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/session-loader.js","//@flow\nimport UiConfService from '../services/ui-conf-service'\nimport KalturaUiConfResponse from '../response-types/kaltura-ui-conf-response'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n\nexport default class UiConfigLoader implements ILoader {\n static get name(): string {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.uiConf = new KalturaUiConfResponse(response[0].data);\n }\n\n get response(): any {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null)\n try {\n return JSON.parse(this._response.uiConf.config).plugins;\n }\n catch (err) {\n return null;\n }\n else\n return null;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(UiConfService.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._uiConfId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/ui-config-loader.js","//@flow\nimport KalturaMediaEntry from './response-types/kaltura-media-entry'\nimport KalturaPlaybackContext from './response-types/kaltura-playback-context'\nimport KalturaPlaybackSource from './response-types/kaltura-playback-source'\nimport KalturaFlavorAsset from './response-types/kaltura-flavor-asset'\nimport KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response'\nimport PlaySourceUrlBuilder from \"./play-source-url-builder\"\nimport XmlParser from '../xml-parser'\nimport {MediaEntryType, EntryType, MediaType} from '../enums'\nimport Logger from '../../util/logger'\nimport Configuration from './config'\nimport {MediaFormat} from '../../entities/media-format'\nimport MediaEntry from '../../entities/media-entry'\nimport Drm from '../../entities/drm'\nimport MediaSource from '../../entities/media-source'\nimport MediaSources from '../../entities/media-sources'\n\nconst config = Configuration.get();\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nconst SUPPORTED_FORMATS: Map = new Map([\n [\"mpegdash\", MediaFormat.dash],\n [\"applehttp\", MediaFormat.hls],\n [\"url\", MediaFormat.mp4]\n]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\nexport default class ProviderParser {\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {any} mediaEntryResponse The media entry response\n * @returns {MediaEntry} The media entry\n * @static\n * @public\n */\n static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry {\n let mediaEntry: MediaEntry = new MediaEntry();\n let entry = mediaEntryResponse.entry;\n let playbackContext = mediaEntryResponse.playBackContextResult;\n let metadataList = mediaEntryResponse.metadataListResult;\n let kalturaSources: Array = playbackContext.sources;\n let sources: MediaSources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n let metadata: Map = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n let type: MediaEntryType = MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case MediaType.IMAGE.value:\n type = MediaEntryType.Image;\n break;\n case MediaType.AUDIO.value:\n type = MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case EntryType.MEDIA_CLIP.value:\n type = MediaEntryType.Vod;\n break;\n case EntryType.LIVE_STREAM.value:\n case EntryType.LIVE_CHANNEL.value:\n type = MediaEntryType.Live;\n break;\n default:\n type = MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry, playbackContext): MediaSources {\n let sources: MediaSources = new MediaSources();\n\n let parseAdaptiveSources = function () {\n kalturaSources.forEach((source) => {\n if (ProviderParser._isProgressiveSource(source) === false) {\n let parsedSource = ProviderParser._parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext);\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n }\n });\n };\n\n let parseProgressiveSources = function () {\n let progressiveSource = kalturaSources.find(source => ProviderParser._isProgressiveSource(source));\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n static _isProgressiveSource(source) {\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n *\n * @param {KalturaPlaybackSource} source The source\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {KalturaMediaEntry} entry The entry\n * @param {KalturaPlaybackContext} playbackContext The playback context\n * @returns {MediaSource} The parsed media source\n * @static\n * @private\n */\n static _parseAdaptiveSource(source: KalturaPlaybackSource, ks: string, partnerID: number, uiConfId: number, entry: KalturaMediaEntry, playbackContext: KalturaPlaybackContext): MediaSource {\n let playUrl: string = \"\";\n let mediaFormat = SUPPORTED_FORMATS.get(source.format);\n let mediaSource: MediaSource = new MediaSource();\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (source.hasFlavorIds()) {\n let extension: string = \"\";\n if (!mediaFormat) {\n let flavorIdsArr = source.flavorIds.split(\",\");\n let flavors: Array = playbackContext.flavorAssets.filter(flavor => flavorIdsArr.indexOf(flavor.id) != -1);\n if (flavors && flavors.length > 0) {\n extension = flavors[0].fileExt;\n }\n }\n else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = PlaySourceUrlBuilder.build({\n entryId: entry.id,\n flavorIds: source.flavorIds,\n format: source.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: source.getProtocol(this._getBaseProtocol())\n });\n\n }\n else {\n playUrl = source.url;\n }\n\n if (playUrl == \"\") {\n logger.error(`failed to create play url from source, discarding source: (${entry.id}_${source.deliveryProfileId}), ${source.format}.`);\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entry.id + \"_\" + source.deliveryProfileId + \",\" + source.format;\n if (source.hasDrmData()) {\n let drmParams: Array = [];\n source.drm.forEach((drm) => {\n drmParams.push(new Drm(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n return mediaSource;\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n static _parseMetaData(metadataList: KalturaMetadataListResponse): Map {\n let metadata: Object = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach((meta) => {\n let metaXml: Object;\n let domParser: DOMParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n let metasObj: Object = XmlParser.xmlToJson(metaXml);\n let metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach((key) => {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n })\n\n })\n }\n return metadata;\n }\n\n static _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entry) {\n let sources = [];\n if (kalturaSource) {\n let protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n let format = kalturaSource.format;\n let sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map((flavor) => {\n if (flavor.height && flavor.width) {\n let mediaSource: MediaSource = new MediaSource();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = PlaySourceUrlBuilder.build({\n entryId: entry.id,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n static _getBaseProtocol(): string {\n let splittedUrl: Array = config.baseUrl.split(\"/\");\n let baseProtocol: string;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n }\n else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/provider-parser.js","//@flow\nimport Logger from '../../util/logger'\nimport ProviderParser from './provider-parser'\nimport DataLoaderManager from './loaders/data-loader-manager'\nimport MediaEntryLoader from './loaders/media-entry-loader'\nimport SessionLoader from './loaders/session-loader'\nimport UiConfigLoader from './loaders/ui-config-loader'\nimport Configuration from './config'\nimport MediaEntry from '../../entities/media-entry'\nimport MediaSources from '../../entities/media-sources'\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\ntype playerConfig = {\n id: string,\n session: Object,\n sources: MediaSources,\n duration: number,\n type: string,\n metadata: Object,\n plugins: Object\n};\n\n/**\n * Ovp provider\n * @classdesc\n */\nexport class OvpProvider {\n /**\n * @member - ks\n * @type {string}\n */\n ks: string;\n /**\n * @member - partner ID\n * @type {number}\n */\n partnerID: number;\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n _isAnonymous: boolean;\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n _dataLoader: DataLoaderManager;\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n constructor(partnerID: number, ks: string = \"\", config?: Object) {\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n Configuration.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n getConfig(entryId?: string, uiConfId?: number): Promise {\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new DataLoaderManager(this.partnerID, this.ks);\n return new Promise((resolve, reject) => {\n if (this.validateParams(entryId, uiConfId)) {\n let ks: string = this.ks;\n if (this._isAnonymous) {\n ks = \"{1:result:ks}\";\n this._dataLoader.add(SessionLoader, {partnerId: this.partnerID});\n }\n this._dataLoader.add(MediaEntryLoader, {entryId: entryId, ks: ks});\n this._dataLoader.add(UiConfigLoader, {uiConfId: uiConfId, ks: ks});\n this._dataLoader.fetchData()\n .then(response => {\n resolve(this.parseDataFromResponse(response));\n },\n err => {\n reject(err);\n });\n }\n else {\n reject({success: false, data: \"Missing mandatory parameter\"});\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n parseDataFromResponse(data: Map): Object {\n logger.debug(\"Data parsing started\");\n let config: playerConfig = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId,\n },\n sources: new MediaSources(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(SessionLoader.name)) {\n let sessionLoader = data.get(SessionLoader.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(UiConfigLoader.name)) {\n let uiConfLoader = data.get(UiConfigLoader.name);\n let pluginsJson: Object = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(MediaEntryLoader.name)) {\n let mediaLoader = data.get(MediaEntryLoader.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n let mediaEntry: MediaEntry = ProviderParser.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return (config);\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n validateParams(entryId?: string, uiConfId?: number): boolean {\n return !!entryId || !!uiConfId;\n }\n\n}\n\nexport default OvpProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/ovp-provider.js","//@flow\nimport Configuration from './config'\n\nconst config = Configuration.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\nexport default class PlaySourceUrlBuilder {\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n static build(urlParams: Object): string {\n let baseUrl: string = config.baseUrl;\n let partnerId: string = urlParams.partnerId;\n let entryId: string = urlParams.entryId;\n let ks: string = urlParams.ks;\n let uiConfId: string = urlParams.uiConfId;\n let format: string = urlParams.format;\n let protocol: string = urlParams.protocol;\n let extension: string = urlParams.extension;\n let flavorIds: string = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n let playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n }\n else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n static endsWith(string: string, searchString: string): boolean {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/play-source-url-builder.js","//@flow\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nexport default class KalturaAccessControlMessage {\n /**\n * @member - The access control message\n * @type {string}\n */\n message: string;\n /**\n * @member - The access control message code\n * @@type {string}\n */\n code: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n this.message = data.message;\n this.code = data.code\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-access-control-message.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMediaEntry from './kaltura-media-entry'\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nexport default class KalturaBaseEntryListResponse extends ServiceResult {\n /**\n * @member - The total count\n * @type {number}\n */\n totalCount: number;\n /**\n * @member - The entries\n * @type {Array}\n */\n entries: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.entries = [];\n responseObj.objects.map(entry => this.entries.push(new KalturaMediaEntry(entry)));\n }\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","//@flow\nimport {Scheme} from '../../enums'\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nexport default class KalturaDrmPlaybackPluginData {\n /**\n * @member - The drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @member - The license URL\n * @type {string}\n */\n licenseURL: string;\n\n /**\n * @constructor\n * @param {Object} drm The json response\n */\n constructor(drm: any) {\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","//@flow\nimport {MetadataObjectType, MetadataStatus} from '../../enums'\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nexport default class KalturaMetadata {\n id: number;\n metadataProfileId: number;\n metadataProfileVersion: number;\n metadataObjectType: MetadataObjectType;\n objectId: string;\n version: number;\n created: Date;\n updated: Date;\n status: MetadataStatus;\n /**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n xml: string;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata.js","//@flow\nimport {KalturaRuleActionType} from '../../enums'\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nexport default class KalturaRuleAction {\n /**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n type: KalturaRuleActionType;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.type = data.type;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-rule-action.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport {UIConfType, UIConfCreationMode} from '../../enums';\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nexport default class KalturaUiConfResponse extends ServiceResult {\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n name: string;\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n description: string;\n objTypeAsString: string;\n width: number;\n height: number;\n htmlParams: string;\n swfUrl: string;\n confFilePath: string;\n confFile: string;\n confFileFeatures: string;\n name: string;\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n config: string;\n confVars: string;\n useCdn: boolean;\n tags: string;\n swfUrlVersion: string;\n created: Date;\n updated: Date;\n html5Url: string;\n version: string;\n partnerTags: string;\n objType: UIConfType;\n creationMode: UIConfCreationMode;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n super(data);\n if (!this.hasError) {\n this.name = data.name;\n\n this.description = data.description;\n this.objTypeAsString = data.objTypeAsString;\n this.width = data.width;\n this.height = data.height;\n this.htmlParams = data.htmlParams;\n this.swfUrl = data.swfUrl;\n this.confFilePath = data.confFilePath;\n this.confFile = data.confFile;\n this.confFileFeatures = data.confFileFeatures;\n this.config = data.config;\n this.confVars = data.confVars;\n this.useCdn = data.useCdn;\n this.tags = data.tags;\n this.swfUrlVersion = data.swfUrlVersion;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.html5Url = data.description;\n this.version = data.description;\n this.partnerTags = data.description;\n this.objType = data.description;\n this.creationMode = data.description;\n\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-ui-conf-response.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\nexport default class BaseEntryService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static getPlaybackContext(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n let contextDataParams = {objectType: \"KalturaContextDataParams\", flavorTags: \"all\"};\n let params = {entryId: entryId, ks: ks, contextDataParams: contextDataParams};\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n static getEntryListReqParams(entryId: string, ks: string): any {\n let filterParams = {redirectFromEntryId: entryId};\n let responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return {ks: ks, filter: filterParams, responseProfile: responseProfileParams};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/base-entry-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\nexport default class MetaDataService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n let filter = {objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\"};\n let params = {filter: filter, ks: ks};\n request.params = params;\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/meta-data-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\nexport default class SessionService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static anonymousSession(baseUrl: string, partnerId: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = {widgetId: \"_\" + partnerId};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/session-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\nexport default class UiConfService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static get(baseUrl: string, ks: string, uiConfID: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n let responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = {id: uiConfID, responseProfile: responseProfileParams, ks: ks};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ui-conf-service.js","//@flow\n\n/**\n * Xml parser\n * @classdesc\n */\nexport default class XmlParser {\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n static xmlToJson(xml: Object) {\n let obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n let attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n }\n else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n let item = xml.childNodes.item(i);\n let nodeName = item.nodeName;\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n }\n else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n let old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/xml-parser.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/statsService.js.map b/dist/statsService.js.map index a2f2accb..4ed734f6 100644 --- a/dist/statsService.js.map +++ b/dist/statsService.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///webpack/bootstrap 638014c152c6bb21e972?a44b","webpack:///./k-provider/request-builder.js?c3f6","webpack:///./k-provider/ovp/config.js?e6e3","webpack:///./k-provider/ovp/services/ovp-service.js?fc9d","webpack:///providers/./k-provider/ovp/services/stats-service.js","webpack:///./k-provider/base-service-result.js?60ef","webpack:///./util/logger.js?8c6e","webpack:///./k-provider/multi-request-builder.js?9243","webpack:///../~/js-logger/src/logger.js?779b"],"names":["RequestBuilder","headers","Map","set","baseUrl","Error","url","service","action","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","value","key","setRequestHeader","send","params","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","Object","assign","config","get","SERVICE_NAME","OvpService","ks","partnerId","ovpParams","multiReq","StatsService","event","tag","stringify","ServiceResult","response","hasError","objectType","error","ServiceError","data","JsLogger","LoggerFactory","options","useDefaults","name","Logger","defaultLevel","DEBUG","LOG_LEVEL","INFO","TIME","WARN","ERROR","OFF","logger","MultiRequestBuilder","requests","push","requestParams","serviceDef","length","err","doHttpRequest","then","MultiRequestResult","errorText","results","success","result","serviceResult"],"mappings":"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CA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;;AAEA;AACA,0CAA0C,0BAA0B;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC","file":"statsService.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 638014c152c6bb21e972","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\nimport Configuration from '../config'\n\nconst SERVICE_NAME: string = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\nexport default class StatsService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static collect(ks: string, event: Object, baseUrl: ?string): RequestBuilder {\n let ovpParams = Configuration.get();\n let serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks}, event);\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n\nexport {StatsService, Configuration, RequestBuilder};\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/stats-service.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/js-logger/src/logger.js\n// module id = 8\n// module chunks = 0 1"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///webpack/bootstrap 40363af1b4965fde30fb?46d4","webpack:///./k-provider/request-builder.js?c3f6","webpack:///./k-provider/ovp/config.js?e6e3","webpack:///./k-provider/ovp/services/ovp-service.js?fc9d","webpack:///providers/./k-provider/ovp/services/stats-service.js","webpack:///./k-provider/base-service-result.js?60ef","webpack:///./util/logger.js?8c6e","webpack:///./k-provider/multi-request-builder.js?9243","webpack:///../~/js-logger/src/logger.js?779b"],"names":["RequestBuilder","headers","Map","set","baseUrl","Error","url","service","action","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","value","key","setRequestHeader","send","params","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","Object","assign","config","get","SERVICE_NAME","OvpService","ks","partnerId","ovpParams","multiReq","StatsService","event","tag","stringify","ServiceResult","response","hasError","objectType","error","ServiceError","data","JsLogger","LoggerFactory","options","useDefaults","name","Logger","defaultLevel","DEBUG","LOG_LEVEL","INFO","TIME","WARN","ERROR","OFF","logger","MultiRequestBuilder","requests","push","requestParams","serviceDef","length","err","doHttpRequest","then","MultiRequestResult","errorText","results","success","result","serviceResult"],"mappings":"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CA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;;AAEA;AACA,0CAA0C,0BAA0B;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC","file":"statsService.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 40363af1b4965fde30fb","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\nimport Configuration from '../config'\n\nconst SERVICE_NAME: string = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\nexport default class StatsService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static collect(ks: string, event: Object, baseUrl: ?string): RequestBuilder {\n let ovpParams = Configuration.get();\n let serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks}, event);\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n\nexport {StatsService, Configuration, RequestBuilder};\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/stats-service.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/js-logger/src/logger.js\n// module id = 8\n// module chunks = 0 1"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/statsService.min.js.map b/dist/statsService.min.js.map index af4fe669..a839dc8b 100644 --- a/dist/statsService.min.js.map +++ b/dist/statsService.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///providers/statsService.min.js","webpack:///webpack/bootstrap a230e31148c3bdf5b594?9dd7","webpack:///./k-provider/request-builder.js?c3f6","webpack:///./k-provider/ovp/config.js?e6e3","webpack:///./k-provider/ovp/services/ovp-service.js?fc9d","webpack:///providers/./k-provider/ovp/services/stats-service.js","webpack:///./k-provider/base-service-result.js?60ef","webpack:///./util/logger.js?8c6e","webpack:///./k-provider/multi-request-builder.js?9243","webpack:///../~/js-logger/src/logger.js?779b"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","0","_classCallCheck","instance","Constructor","TypeError","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","RequestBuilder","headers","arguments","undefined","Map","set","baseUrl","Error","service","action","_this","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","setRequestHeader","send","params","default","1","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","assign","3","_interopRequireDefault","_multiRequestBuilder","_multiRequestBuilder2","_config","_config2","config","OvpService","ks","partnerId","ovpParams","multiReq","36","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","StatsService","_ovpService","_ovpService2","_requestBuilder","_requestBuilder2","_OvpService","getPrototypeOf","apply","event","tag","stringify","4","ServiceResult","response","hasError","objectType","error","ServiceError","data","5","LOG_LEVEL","_jsLogger","JsLogger","newObj","LoggerFactory","options","useDefaults","Logger","defaultLevel","DEBUG","INFO","TIME","WARN","ERROR","OFF","6","_defineProperty","MultiRequestResult","_baseServiceResult","_baseServiceResult2","_logger","_logger2","logger","MultiRequestBuilder","_RequestBuilder","requests","push","requestParams","serviceDef","_this2","err","doHttpRequest","then","errorText","_this3","results","success","result","serviceResult","8","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","global","VERSION","logHandler","contextualLoggersByNameMap","bind","scope","func","merge","args","defineLogLevel","ContextualLogger","defaultContext","context","setLevel","filterLevel","log","info","newLevel","enabledFor","lvl","debug","invoke","warn","time","label","timeEnd","level","msgArgs","globalLogger","L","setHandler","createDefaultHandler","formatter","messages","unshift","timerStartTimeByLabelMap","invokeConsoleMethod","hdlr","Function","console","Array","slice","timerLabel","Date","getTime"],"mappings":"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","file":"statsService.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 36);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Request builder\n * @classdesc\n */\nvar RequestBuilder = function () {\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n\n /**\n * @member - Service headers\n * @type {Map}\n */\n\n /**\n * @member - Service action\n * @type {string}\n */\n function RequestBuilder() {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n _classCallCheck(this, RequestBuilder);\n\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n\n /**\n * @member - Service tag\n * @type {string}\n */\n\n /**\n * @member - Service base url\n * @type {Map}\n */\n\n /**\n * @member - Service params\n * @type {any}\n */\n\n\n /**\n * @member - Service name\n * @type {string}\n */\n\n\n _createClass(RequestBuilder, [{\n key: \"getUrl\",\n value: function getUrl() {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n var url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n\n }, {\n key: \"doHttpRequest\",\n value: function doHttpRequest() {\n var _this = this;\n\n var request = new XMLHttpRequest();\n return new Promise(function (resolve, reject) {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n var jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && (typeof jsonResponse === \"undefined\" ? \"undefined\" : _typeof(jsonResponse)) === 'object' && jsonResponse.code && jsonResponse.message) reject(jsonResponse);else resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(_this.method, _this.getUrl());\n _this.headers.forEach(function (value, key) {\n request.setRequestHeader(key, value);\n });\n request.send(_this.params);\n });\n }\n }]);\n\n return RequestBuilder;\n}();\n\nexports.default = RequestBuilder;\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nvar Configuration = function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n }\n\n _createClass(Configuration, null, [{\n key: \"set\",\n value: function set(clientConfig) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n return defaultConfig;\n }\n }]);\n\n return Configuration;\n}();\n\nexports.default = Configuration;\nexports.Configuration = Configuration;\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\nvar SERVICE_NAME = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\n\nvar OvpService = function () {\n function OvpService() {\n _classCallCheck(this, OvpService);\n }\n\n _createClass(OvpService, null, [{\n key: 'getMultirequest',\n\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n value: function getMultirequest(ks, partnerId) {\n var ovpParams = config.serviceParams;\n Object.assign(ovpParams, { ks: ks });\n if (partnerId) {\n Object.assign(ovpParams, { partnerId: partnerId });\n }\n var multiReq = new _multiRequestBuilder2.default();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n }]);\n\n return OvpService;\n}();\n\nexports.default = OvpService;\n\n/***/ }),\n\n/***/ 36:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RequestBuilder = exports.Configuration = exports.StatsService = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\n\nvar StatsService = function (_OvpService) {\n _inherits(StatsService, _OvpService);\n\n function StatsService() {\n _classCallCheck(this, StatsService);\n\n return _possibleConstructorReturn(this, (StatsService.__proto__ || Object.getPrototypeOf(StatsService)).apply(this, arguments));\n }\n\n _createClass(StatsService, null, [{\n key: 'collect',\n\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n value: function collect(ks, event, baseUrl) {\n var ovpParams = _config2.default.get();\n var serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, { ks: ks }, event);\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n }]);\n\n return StatsService;\n}(_ovpService2.default);\n\nexports.default = StatsService;\nexports.StatsService = StatsService;\nexports.Configuration = _config2.default;\nexports.RequestBuilder = _requestBuilder2.default;\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base service result\n * @classdesc\n */\nvar ServiceResult =\n\n/**\n * @constructor\n * @param {Object} response - Service response\n */\n\n/**\n * @member - The service error\n * @type {ServiceError}\n */\n\n/**\n * @member - The service result data\n * @type {Object}\n */\nfunction ServiceResult(response) {\n _classCallCheck(this, ServiceResult);\n\n this.hasError = false;\n\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else {\n this.data = response;\n }\n}\n\n/**\n * @member - Is service returned an error\n * @type {boolean}\n */\n;\n\n/**\n * Service error\n * @classdesc\n */\n\n\nexports.default = ServiceResult;\n\nvar ServiceError =\n\n/**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n\n/**\n * @member - The error code\n * @type {string}\n */\nfunction ServiceError(code, message) {\n _classCallCheck(this, ServiceError);\n\n this.code = code;\n this.message = message;\n}\n/**\n * @member - The error message\n * @type {string}\n */\n;\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOG_LEVEL = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jsLogger = __webpack_require__(8);\n\nvar JsLogger = _interopRequireWildcard(_jsLogger);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LoggerFactory = function () {\n function LoggerFactory(options) {\n _classCallCheck(this, LoggerFactory);\n\n JsLogger.useDefaults(options || {});\n }\n\n _createClass(LoggerFactory, [{\n key: \"get\",\n value: function get(name) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n }]);\n\n return LoggerFactory;\n}();\n\nvar Logger = new LoggerFactory({ defaultLevel: JsLogger.DEBUG });\nvar LOG_LEVEL = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexports.default = Logger;\nexports.LOG_LEVEL = LOG_LEVEL;\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MultiRequestResult = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\n\nvar MultiRequestBuilder = function (_RequestBuilder) {\n _inherits(MultiRequestBuilder, _RequestBuilder);\n\n /**\n * @constructor\n */\n function MultiRequestBuilder() {\n _classCallCheck(this, MultiRequestBuilder);\n\n var _this = _possibleConstructorReturn(this, (MultiRequestBuilder.__proto__ || Object.getPrototypeOf(MultiRequestBuilder)).call(this));\n\n _this.requests = [];\n return _this;\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n\n\n _createClass(MultiRequestBuilder, [{\n key: 'add',\n value: function add(request) {\n this.requests.push(request);\n var requestParams = {};\n var serviceDef = { service: request.service, action: request.action };\n Object.assign(requestParams, _defineProperty({}, this.requests.length, Object.assign(serviceDef, request.params)));\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n\n }, {\n key: 'execute',\n value: function execute() {\n var _this2 = this;\n\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n logger.error('' + err.message);\n }\n return new Promise(function (resolve, reject) {\n _this2.doHttpRequest().then(function (data) {\n resolve(new MultiRequestResult(data));\n }, function (err) {\n var errorText = 'Error on multiRequest execution, error <' + err + '>.';\n reject(errorText);\n });\n });\n }\n }]);\n\n return MultiRequestBuilder;\n}(_requestBuilder2.default);\n\n/**\n * Multi Request result object\n * @classdesc\n */\n\n\nexports.default = MultiRequestBuilder;\n\nvar MultiRequestResult =\n\n/**\n * @constructor\n * @param {Object} response data\n */\n\n\n/**\n * @member - Is success\n * @type {boolean}\n */\nexports.MultiRequestResult = function MultiRequestResult(response) {\n var _this3 = this;\n\n _classCallCheck(this, MultiRequestResult);\n\n this.results = [];\n\n this.success = true;\n response.forEach(function (result) {\n var serviceResult = new _baseServiceResult2.default(result);\n _this3.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error('Service returned an error with error code: ' + serviceResult.error.code + ' and message: ' + serviceResult.error.message + '.');\n _this3.success = false;\n return;\n }\n });\n}\n/**\n * @member - Multi request response data\n * @type {Object}\n */\n;\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n/***/ })\n\n/******/ });\n});\n\n\n// WEBPACK FOOTER //\n// statsService.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a230e31148c3bdf5b594","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\nimport Configuration from '../config'\n\nconst SERVICE_NAME: string = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\nexport default class StatsService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static collect(ks: string, event: Object, baseUrl: ?string): RequestBuilder {\n let ovpParams = Configuration.get();\n let serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks}, event);\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n\nexport {StatsService, Configuration, RequestBuilder};\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/stats-service.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/js-logger/src/logger.js\n// module id = 8\n// module chunks = 0 1"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///providers/statsService.min.js","webpack:///webpack/bootstrap 23bc45362ebde973588a?6bf4","webpack:///./k-provider/request-builder.js?c3f6","webpack:///./k-provider/ovp/config.js?e6e3","webpack:///./k-provider/ovp/services/ovp-service.js?fc9d","webpack:///providers/./k-provider/ovp/services/stats-service.js","webpack:///./k-provider/base-service-result.js?60ef","webpack:///./util/logger.js?8c6e","webpack:///./k-provider/multi-request-builder.js?9243","webpack:///../~/js-logger/src/logger.js?779b"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","0","_classCallCheck","instance","Constructor","TypeError","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","RequestBuilder","headers","arguments","undefined","Map","set","baseUrl","Error","service","action","_this","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","setRequestHeader","send","params","default","1","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","assign","3","_interopRequireDefault","_multiRequestBuilder","_multiRequestBuilder2","_config","_config2","config","OvpService","ks","partnerId","ovpParams","multiReq","36","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","StatsService","_ovpService","_ovpService2","_requestBuilder","_requestBuilder2","_OvpService","getPrototypeOf","apply","event","tag","stringify","4","ServiceResult","response","hasError","objectType","error","ServiceError","data","5","LOG_LEVEL","_jsLogger","JsLogger","newObj","LoggerFactory","options","useDefaults","Logger","defaultLevel","DEBUG","INFO","TIME","WARN","ERROR","OFF","6","_defineProperty","MultiRequestResult","_baseServiceResult","_baseServiceResult2","_logger","_logger2","logger","MultiRequestBuilder","_RequestBuilder","requests","push","requestParams","serviceDef","_this2","err","doHttpRequest","then","errorText","_this3","results","success","result","serviceResult","8","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","global","VERSION","logHandler","contextualLoggersByNameMap","bind","scope","func","merge","args","defineLogLevel","ContextualLogger","defaultContext","context","setLevel","filterLevel","log","info","newLevel","enabledFor","lvl","debug","invoke","warn","time","label","timeEnd","level","msgArgs","globalLogger","L","setHandler","createDefaultHandler","formatter","messages","unshift","timerStartTimeByLabelMap","invokeConsoleMethod","hdlr","Function","console","Array","slice","timerLabel","Date","getTime"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,mBAAAD,IAEAD,EAAA,mBAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAE,EAAAF,EACAG,GAAA,EACAV,WAUA,OANAK,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,GAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KA+DA,OAnCAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAG,EAAA,SAAAK,GAA2C,MAAAA,IAG3CR,EAAAS,EAAA,SAAAf,EAAAgB,EAAAC,GACAX,EAAAY,EAAAlB,EAAAgB,IACAG,OAAAC,eAAApB,EAAAgB,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAX,EAAAkB,EAAA,SAAAvB,GACA,GAAAgB,GAAAhB,KAAAwB,WACA,WAA2B,MAAAxB,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAK,GAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAlB,KAAAe,EAAAC,IAGtDrB,EAAAwB,EAAA,GAGAxB,IAAAyB,EAAA,MDgBMC,EACA,SAAU/B,EAAQD,EAASM,GAEjC,YAWA,SAAS2B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCARhHjB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAIuB,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOV,UAAY,eAAkBY,IAElQE,EAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIpC,GAAI,EAAGA,EAAIoC,EAAMC,OAAQrC,IAAK,CAAE,GAAIsC,GAAaF,EAAMpC,EAAIsC,GAAWzB,WAAayB,EAAWzB,aAAc,EAAOyB,EAAW1B,cAAe,EAAU,SAAW0B,KAAYA,EAAWC,UAAW,GAAM7B,OAAOC,eAAewB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYP,UAAWsB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MEtF3gBiB,EF8FA,WEpDnB,QAAAA,KAAsD,GAA1CC,GAA0CC,UAAAR,OAAA,OAAAS,KAAAD,UAAA,GAAAA,UAAA,GAAX,GAAIE,IAAOvB,GAAA7B,KAAAgD,GACpDhD,KAAKiD,QAAUA,EACfjD,KAAKiD,QAAQI,IAAI,eAAgB,oBFsJnC,MA1CAf,GAAaU,IACXH,IAAK,SACLnC,MAAO,WErGP,IAAKV,KAAKsD,QACR,KAAM,IAAIC,OAAM,2CAGlB,OADUvD,MAAKsD,QAAU,YAActD,KAAKwD,SAAWxD,KAAKyD,OAAS,WAAazD,KAAKyD,OAAS,OFiHhGZ,IAAK,gBACLnC,MAAO,WEzGqB,GAAAgD,GAAA1D,KACxB2D,EAAU,GAAIC,eAClB,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BJ,EAAQK,mBAAqB,WAC3B,GAA2B,IAAvBL,EAAQM,WACV,GAAuB,MAAnBN,EAAQO,OAAgB,CAC1B,GAAIC,GAAeC,KAAKC,MAAMV,EAAQW,aAClCH,IAAyC,gBAAzB,KAAOA,EAAP,YAAAlC,EAAOkC,KAA8BA,EAAaI,MAAQJ,EAAaK,QACzFT,EAAOI,GAEPL,EAAQK,OAEVJ,GAAOJ,EAAQW,eAIrBX,EAAQc,KAAKf,EAAKgB,OAAQhB,EAAKiB,UAC/BjB,EAAKT,QAAQ2B,QAAQ,SAAClE,EAAOmC,GAC3Bc,EAAQkB,iBAAiBhC,EAAKnC,KAEhCiD,EAAQmB,KAAKpB,EAAKqB,cF6Gf/B,IAGTpD,GAAQoF,QErMahC,GFyMfiC,EACA,SAAUpF,EAAQD,EAASM,GAEjC,YASA,SAAS2B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHjB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI4B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIpC,GAAI,EAAGA,EAAIoC,EAAMC,OAAQrC,IAAK,CAAE,GAAIsC,GAAaF,EAAMpC,EAAIsC,GAAWzB,WAAayB,EAAWzB,aAAc,EAAOyB,EAAW1B,cAAe,EAAU,SAAW0B,KAAYA,EAAWC,UAAW,GAAM7B,OAAOC,eAAewB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYP,UAAWsB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MGvN1hBmD,GACJC,MAAO,gCACP7B,QAAS,gCACT8B,eACEC,UAAW,aACXC,WAAY,QACZC,OAAQ,IAISC,EH2ND,WAClB,QAASA,KACP3D,EAAgB7B,KAAMwF,GAiBxB,MAdAlD,GAAakD,EAAe,OAC1B3C,IAAK,MACLnC,MAAO,SGhOE+E,GACLA,GACF1E,OAAO2E,OAAOR,EAAeO,MHoO/B5C,IAAK,MACLnC,MAAO,WGhOP,MAAOwE,OHqOFM,IAGT5F,GAAQoF,QGjPaQ,EHkPrB5F,EGrOQ4F,iBHyOFG,EACA,SAAU9F,EAAQD,EAASM,GAEjC,YAiBA,SAAS0F,GAAuBxD,GAAO,MAAOA,IAAOA,EAAIf,WAAae,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAhBhHjB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAGT,IAAI4B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIpC,GAAI,EAAGA,EAAIoC,EAAMC,OAAQrC,IAAK,CAAE,GAAIsC,GAAaF,EAAMpC,EAAIsC,GAAWzB,WAAayB,EAAWzB,aAAc,EAAOyB,EAAW1B,cAAe,EAAU,SAAW0B,KAAYA,EAAWC,UAAW,GAAM7B,OAAOC,eAAewB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYP,UAAWsB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MI3QhiB8D,EAAA3F,EAAA,GJ+QI4F,EAAwBF,EAAuBC,GI9QnDE,EAAA7F,EAAA,GJkRI8F,EAAWJ,EAAuBG,GIhRhCE,EAASD,EAAAhB,QAAc7D,MAOR+E,EJuRJ,WACf,QAASA,KACPrE,EAAgB7B,KAAMkG,GA6BxB,MA1BA5D,GAAa4D,EAAY,OACvBrD,IAAK,kBAULnC,MAAO,SI9RcyF,EAAYC,GACjC,GAAIC,GAAYJ,EAAOb,aACvBrE,QAAO2E,OAAOW,GAAYF,GAAIA,IAC1BC,GACFrF,OAAO2E,OAAOW,GAAYD,UAAWA,GAEvC,IAAIE,GAAW,GAAAR,GAAAd,OAKf,OAJAsB,GAAS5B,OAAS,OAClB4B,EAAS9C,QAvBgB,eAwBzB8C,EAAShD,QAAU2C,EAAOd,MAC1BmB,EAASvB,OAASsB,EACXC,MJkSFJ,IAGTtG,GAAQoF,QIzTakB,GJ6TfK,GACA,SAAU1G,EAAQD,EAASM,GAEjC,YAsBA,SAAS0F,GAAuBxD,GAAO,MAAOA,IAAOA,EAAIf,WAAae,GAAQ4C,QAAS5C,GAEvF,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASwE,GAA2BC,EAAMlG,GAAQ,IAAKkG,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOnG,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BkG,EAAPlG,EAElO,QAASoG,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI7E,WAAU,iEAAoE6E,GAAeD,GAASpF,UAAYT,OAAO+F,OAAOD,GAAcA,EAAWrF,WAAaa,aAAe3B,MAAOkG,EAAU1F,YAAY,EAAO0B,UAAU,EAAM3B,cAAc,KAAe4F,IAAY9F,OAAOgG,eAAiBhG,OAAOgG,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GAzBje9F,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,IAETd,EAAQoD,eAAiBpD,EAAQ4F,cAAgB5F,EAAQqH,iBAAe9D,EAExE,IAAIb,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIpC,GAAI,EAAGA,EAAIoC,EAAMC,OAAQrC,IAAK,CAAE,GAAIsC,GAAaF,EAAMpC,EAAIsC,GAAWzB,WAAayB,EAAWzB,aAAc,EAAOyB,EAAW1B,cAAe,EAAU,SAAW0B,KAAYA,EAAWC,UAAW,GAAM7B,OAAOC,eAAewB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYP,UAAWsB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MKlVhiBmF,EAAAhH,EAAA,GLsVIiH,EAAevB,EAAuBsB,GKrV1CE,EAAAlH,EAAA,GLyVImH,EAAmBzB,EAAuBwB,GKxV9CrB,EAAA7F,EAAA,GL4VI8F,EAAWJ,EAAuBG,GKrVjBkB,ELqWF,SAAUK,GAG3B,QAASL,KAGP,MAFApF,GAAgB7B,KAAMiH,GAEfT,EAA2BxG,MAAOiH,EAAaD,WAAajG,OAAOwG,eAAeN,IAAeO,MAAMxH,KAAMkD,YA+BtH,MApCAyD,GAAUM,EAAcK,GAQxBhF,EAAa2E,EAAc,OACzBpE,IAAK,UAYLnC,MAAO,SKhXMyF,EAAYsB,EAAenE,GACxC,GAAI+C,GAAYL,EAAAhB,QAAc7D,MAC1BiE,IACJrE,QAAO2E,OAAON,EAAeiB,EAAUjB,eAAgBe,GAAIA,GAAKsB,EAChE,IAAI9D,GAAU,GAAA0D,GAAArC,OAOd,OANArB,GAAQH,QArBiB,QAsBzBG,EAAQF,OAAS,UACjBE,EAAQe,OAAS,OACjBf,EAAQL,QAAUA,GAAW+C,EAAUlB,MACvCxB,EAAQ+D,IAAM,gBACd/D,EAAQoB,OAASX,KAAKuD,UAAUvC,GACzBzB,MLoXFsD,GACPE,EAAanC,QAEfpF,GAAQoF,QK7YaiC,EL8YrBrH,EKpXQqH,eLqXRrH,EKrXsB4F,cLqXEQ,EAAShB,QACjCpF,EKtXqCoD,eLsXZqE,EAAiBrC,SAIpC4C,EACA,SAAU/H,EAAQD,EAASM,GAEjC,YAOA,SAAS2B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAJhHjB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,GAST,IMxaqBmH,GAsBnB,QAAAA,GAAYC,GAAkBjG,EAAA7B,KAAA6H,GAAA7H,KAhB9B+H,UAAoB,EAiBU,wBAAxBD,EAASE,YACXhI,KAAK+H,UAAW,EAChB/H,KAAKiI,MAAQ,GAAIC,GAAaJ,EAASvD,KAAMuD,EAAStD,UAGtDxE,KAAKmI,KAAOL,ENqblBlI,GAAQoF,QMjda6C,CNmdrB,IM9aMK,GAiBJ,QAAAA,GAAY3D,EAAcC,GAAiB3C,EAAA7B,KAAAkI,GACzClI,KAAKuE,KAAOA,EACZvE,KAAKwE,QAAUA,INqbb4D,EACA,SAAUvI,EAAQD,EAASM,GAEjC,YAgBA,SAAS2B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAbhHjB,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,IAETd,EAAQyI,cAAYlF,EAEpB,IAAIb,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIpC,GAAI,EAAGA,EAAIoC,EAAMC,OAAQrC,IAAK,CAAE,GAAIsC,GAAaF,EAAMpC,EAAIsC,GAAWzB,WAAayB,EAAWzB,aAAc,EAAOyB,EAAW1B,cAAe,EAAU,SAAW0B,KAAYA,EAAWC,UAAW,GAAM7B,OAAOC,eAAewB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYP,UAAWsB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MO7fhiBuG,EAAApI,EAAA,GAAYqI,EPmgBZ,SAAiCnG,GAAO,GAAIA,GAAOA,EAAIf,WAAc,MAAOe,EAAc,IAAIoG,KAAa,IAAW,MAAPpG,EAAe,IAAK,GAAIS,KAAOT,GAAWrB,OAAOS,UAAUC,eAAelB,KAAK6B,EAAKS,KAAM2F,EAAO3F,GAAOT,EAAIS,GAAgC,OAAtB2F,GAAOxD,QAAU5C,EAAYoG,GAF3NF,GO/fjCG,EPqgBc,WOpgBlB,QAAAA,GAAYC,GAAkB7G,EAAA7B,KAAAyI,GAC5BF,EAASI,YAAYD,OPohBvB,MAVApG,GAAamG,IACX5F,IAAK,MACLnC,MAAO,SOzgBLE,GACF,MAAKA,GAGE2H,EAASpH,IAAIP,GAFX2H,MP+gBJE,KOzgBLG,EAAS,GAAIH,IAAeI,aAAcN,EAASO,QACjDT,GACJS,MAASP,EAASO,MAClBC,KAAQR,EAASQ,KACjBC,KAAQT,EAASS,KACjBC,KAAQV,EAASU,KACjBC,MAASX,EAASW,MAClBC,IAAOZ,EAASY,IP+gBlBvJ,GAAQoF,QO5gBO4D,EP6gBfhJ,EO5gBQyI,aPghBFe,EACA,SAAUvJ,EAAQD,EAASM,GAEjC,YAsBA,SAAS0F,GAAuBxD,GAAO,MAAOA,IAAOA,EAAIf,WAAae,GAAQ4C,QAAS5C,GAEvF,QAASiH,GAAgBjH,EAAKS,EAAKnC,GAAiK,MAApJmC,KAAOT,GAAOrB,OAAOC,eAAeoB,EAAKS,GAAOnC,MAAOA,EAAOQ,YAAY,EAAMD,cAAc,EAAM2B,UAAU,IAAkBR,EAAIS,GAAOnC,EAAgB0B,EAE3M,QAASP,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASwE,GAA2BC,EAAMlG,GAAQ,IAAKkG,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOnG,GAAyB,gBAATA,IAAqC,kBAATA,GAA8BkG,EAAPlG,EAElO,QAASoG,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI7E,WAAU,iEAAoE6E,GAAeD,GAASpF,UAAYT,OAAO+F,OAAOD,GAAcA,EAAWrF,WAAaa,aAAe3B,MAAOkG,EAAU1F,YAAY,EAAO0B,UAAU,EAAM3B,cAAc,KAAe4F,IAAY9F,OAAOgG,eAAiBhG,OAAOgG,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GA3Bje9F,OAAOC,eAAepB,EAAS,cAC7Bc,OAAO,IAETd,EAAQ0J,uBAAqBnG,EAE7B,IAAIb,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIpC,GAAI,EAAGA,EAAIoC,EAAMC,OAAQrC,IAAK,CAAE,GAAIsC,GAAaF,EAAMpC,EAAIsC,GAAWzB,WAAayB,EAAWzB,aAAc,EAAOyB,EAAW1B,cAAe,EAAU,SAAW0B,KAAYA,EAAWC,UAAW,GAAM7B,OAAOC,eAAewB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUZ,EAAae,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBR,EAAYP,UAAWsB,GAAiBC,GAAaR,EAAiBR,EAAagB,GAAqBhB,MQrjBhiBqF,EAAAlH,EAAA,GRyjBImH,EAAmBzB,EAAuBwB,GQxjB9CmC,EAAArJ,EAAA,GR4jBIsJ,EAAsB5D,EAAuB2D,GQ3jBjDE,EAAAvJ,EAAA,GR+jBIwJ,EAAW9D,EAAuB6D,GQ3jBhCE,EAASD,EAAA1E,QAAO7D,IAAI,eAMLyI,ER2kBK,SAAUC,GQhkBlC,QAAAD,KAAc/H,EAAA7B,KAAA4J,EAAA,IAAAlG,GAAA8C,EAAAxG,MAAA4J,EAAA5C,WAAAjG,OAAAwG,eAAAqC,IAAArJ,KAAAP,MAAA,OAAA0D,GALdoG,YAKcpG,ERooBd,MAnEAiD,GAAUiD,EAAqBC,GA4B/BvH,EAAasH,IACX/G,IAAK,MACLnC,MAAO,SQrlBLiD,GACF3D,KAAK8J,SAASC,KAAKpG,EACnB,IAAIqG,MACAC,GAAsBzG,QAASG,EAAQH,QAASC,OAAQE,EAAQF,OAIpE,OAHA1C,QAAO2E,OAAOsE,EAAdX,KAA+BrJ,KAAK8J,SAASpH,OAAS3B,OAAO2E,OAAOuE,EAAYtG,EAAQoB,UACxFhE,OAAO2E,OAAOsE,EAAehK,KAAK+E,QAClC/E,KAAK+E,OAASiF,EACPhK,QR+lBP6C,IAAK,UACLnC,MAAO,WQxlBkB,GAAAwJ,GAAAlK,IACzB,KACEA,KAAK+E,OAASX,KAAKuD,UAAU3H,KAAK+E,QAEpC,MAAOoF,GACLR,EAAO1B,MAAP,GAAgBkC,EAAI3F,SAEtB,MAAO,IAAIX,SAAQ,SAACC,EAASC,GAC3BmG,EAAKE,gBAAgBC,KAAK,SAAAlC,GACtBrE,EAAQ,GAAIwF,GAAmBnB,KAEjC,SAAAgC,GAEEpG,EADIuG,2CAA+DH,EAA/D,cR+lBLP,GACPvC,EAAiBrC,QAQnBpF,GAAQoF,QQxpBa4E,CR0pBrB,IQ7lBaN,GRymBb1J,EQzmBa0J,mBAiBX,QAAAA,GAAYxB,GAAkB,GAAAyC,GAAAvK,IAAA6B,GAAA7B,KAAAsJ,GAAAtJ,KAN9BwK,WAOExK,KAAKyK,SAAU,EACf3C,EAASlD,QAAQ,SAAC8F,GAChB,GAAIC,GAA+B,GAAAnB,GAAAxE,QAAkB0F,EAErD,IADAH,EAAKC,QAAQT,KAAKY,GACdA,EAAc5C,SAGhB,MAFA4B,GAAO1B,MAAP,8CAA2D0C,EAAc1C,MAAM1D,KAA/E,iBAAoGoG,EAAc1C,MAAMzD,QAAxH,UACA+F,EAAKE,SAAU,OR2mBjBG,EACA,SAAU/K,EAAQD,EAASM,GS9sBjC,GAAA2K,GAAAC;;;;;CAKA,SAAAC,GACA,YAGA,IAAAnC,KAGAA,GAAAoC,QAAA,OAGA,IAAAC,GAGAC,KAGAC,EAAA,SAAAC,EAAAC,GACA,kBACA,MAAAA,GAAA7D,MAAA4D,EAAAlI,aAKAoI,EAAA,WACA,GAAAzI,GAAAxC,EAAAkL,EAAArI,UAAAV,EAAA+I,EAAA,EACA,KAAAlL,EAAA,EAAaA,EAAAkL,EAAA7I,OAAiBrC,IAC9B,IAAAwC,IAAA0I,GAAAlL,GACAwC,IAAAL,KAAA+I,EAAAlL,GAAAoB,eAAAoB,KACAL,EAAAK,GAAA0I,EAAAlL,GAAAwC,GAIA,OAAAL,IAIAgJ,EAAA,SAAA9K,EAAAE,GACA,OAAUF,QAAAE,QAIVgI,GAAAE,MAAA0C,EAAA,WACA5C,EAAAG,KAAAyC,EAAA,UACA5C,EAAAI,KAAAwC,EAAA,UACA5C,EAAAK,KAAAuC,EAAA,UACA5C,EAAAM,MAAAsC,EAAA,WACA5C,EAAAO,IAAAqC,EAAA,SAIA,IAAAC,GAAA,SAAAC,GACA1L,KAAA2L,QAAAD,EACA1L,KAAA4L,SAAAF,EAAAG,aACA7L,KAAA8L,IAAA9L,KAAA+L,KAGAN,GAAAjK,WAEAoK,SAAA,SAAAI,GAEAA,GAAA,SAAAA,KACAhM,KAAA2L,QAAAE,YAAAG,IAKAC,WAAA,SAAAC,GACA,GAAAL,GAAA7L,KAAA2L,QAAAE,WACA,OAAAK,GAAAxL,OAAAmL,EAAAnL,OAGAyL,MAAA,WACAnM,KAAAoM,OAAAxD,EAAAE,MAAA5F,YAGA6I,KAAA,WACA/L,KAAAoM,OAAAxD,EAAAG,KAAA7F,YAGAmJ,KAAA,WACArM,KAAAoM,OAAAxD,EAAAK,KAAA/F,YAGA+E,MAAA,WACAjI,KAAAoM,OAAAxD,EAAAM,MAAAhG,YAGAoJ,KAAA,SAAAC,GACA,gBAAAA,MAAA7J,OAAA,GACA1C,KAAAoM,OAAAxD,EAAAI,MAAAuD,EAAA,WAIAC,QAAA,SAAAD,GACA,gBAAAA,MAAA7J,OAAA,GACA1C,KAAAoM,OAAAxD,EAAAI,MAAAuD,EAAA,SAKAH,OAAA,SAAAK,EAAAC,GACAzB,GAAAjL,KAAAiM,WAAAQ,IACAxB,EAAAyB,EAAApB,GAA+BmB,SAAezM,KAAA2L,WAM9C,IAAAgB,GAAA,GAAAlB,IAA0CI,YAAAjD,EAAAO,OAG1C,WAEA,GAAAyD,GAAAhE,CAEAgE,GAAAX,WAAAd,EAAAwB,IAAAV,YACAW,EAAAT,MAAAhB,EAAAwB,IAAAR,OACAS,EAAAN,KAAAnB,EAAAwB,IAAAL,MACAM,EAAAJ,QAAArB,EAAAwB,IAAAH,SACAI,EAAAb,KAAAZ,EAAAwB,IAAAZ,MACAa,EAAAP,KAAAlB,EAAAwB,IAAAN,MACAO,EAAA3E,MAAAkD,EAAAwB,IAAA1E,OAGA2E,EAAAd,IAAAc,EAAAb,QAMAnD,EAAAiE,WAAA,SAAAxB,GACAJ,EAAAI,GAKAzC,EAAAgD,SAAA,SAAAa,GAEAE,EAAAf,SAAAa,EAGA,QAAA5J,KAAAqI,GACAA,EAAAzJ,eAAAoB,IACAqI,EAAArI,GAAA+I,SAAAa,IAOA7D,EAAAzH,IAAA,SAAAP,GAEA,MAAAsK,GAAAtK,KACAsK,EAAAtK,GAAA,GAAA6K,GAAAH,GAAmE1K,QAAa+L,EAAAhB,YAMhF/C,EAAAkE,qBAAA,SAAApE,GACAA,QAEAA,EAAAqE,UAAArE,EAAAqE,WAAA,SAAAC,EAAArB,GAEAA,EAAA/K,MACAoM,EAAAC,QAAA,IAAAtB,EAAA/K,KAAA,KAMA,IAAAsM,MAGAC,EAAA,SAAAC,EAAAJ,GACAK,SAAA7L,UAAAgG,MAAAjH,KAAA6M,EAAAE,QAAAN,GAIA,0BAAAM,SACA,aAGA,SAAAN,EAAArB,GAEAqB,EAAAO,MAAA/L,UAAAgM,MAAAjN,KAAAyM,EAEA,IACAS,GADAL,EAAAE,QAAAxB,GAGAH,GAAAc,QAAA7D,EAAAI,MACAyE,GAAA9B,EAAA/K,KAAA,IAAA+K,EAAA/K,KAAA,SAAAoM,EAAA,GAEA,UAAAA,EAAA,GACAM,QAAAhB,KACAgB,QAAAhB,KAAAmB,GAGAP,EAAAO,IAAA,GAAAC,OAAAC,UAIAL,QAAAd,QACAc,QAAAd,QAAAiB,GAGAN,EAAAC,GAAAK,EAAA,OACA,GAAAC,OAAAC,UAAAT,EAAAO,IAAA,SAMA9B,EAAAc,QAAA7D,EAAAK,MAAAqE,QAAAjB,KACAe,EAAAE,QAAAjB,KACKV,EAAAc,QAAA7D,EAAAM,OAAAoE,QAAArF,MACLmF,EAAAE,QAAArF,MACK0D,EAAAc,QAAA7D,EAAAG,MAAAuE,QAAAvB,OACLqB,EAAAE,QAAAvB,MAGArD,EAAAqE,UAAAC,EAAArB,GACAwB,EAAAC,EAAAJ,MAOApE,EAAAD,YAAA,SAAAD,GACAE,EAAAgD,SAAAlD,KAAAG,cAAAD,EAAAE,OACAF,EAAAiE,WAAAjE,EAAAkE,qBAAApE,KAKAmC,EAAA,MAAA1H,MAAA2H,EAAA,kBAAAD,KAAAtK,KAAAX,EAAAM,EAAAN,EAAAC,GAAAgL,KAAAhL,EAAAD,QAAAkL","file":"statsService.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 36);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Request builder\n * @classdesc\n */\nvar RequestBuilder = function () {\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n\n /**\n * @member - Service headers\n * @type {Map}\n */\n\n /**\n * @member - Service action\n * @type {string}\n */\n function RequestBuilder() {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n _classCallCheck(this, RequestBuilder);\n\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n\n /**\n * @member - Service tag\n * @type {string}\n */\n\n /**\n * @member - Service base url\n * @type {Map}\n */\n\n /**\n * @member - Service params\n * @type {any}\n */\n\n\n /**\n * @member - Service name\n * @type {string}\n */\n\n\n _createClass(RequestBuilder, [{\n key: \"getUrl\",\n value: function getUrl() {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n var url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n\n }, {\n key: \"doHttpRequest\",\n value: function doHttpRequest() {\n var _this = this;\n\n var request = new XMLHttpRequest();\n return new Promise(function (resolve, reject) {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n var jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && (typeof jsonResponse === \"undefined\" ? \"undefined\" : _typeof(jsonResponse)) === 'object' && jsonResponse.code && jsonResponse.message) reject(jsonResponse);else resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(_this.method, _this.getUrl());\n _this.headers.forEach(function (value, key) {\n request.setRequestHeader(key, value);\n });\n request.send(_this.params);\n });\n }\n }]);\n\n return RequestBuilder;\n}();\n\nexports.default = RequestBuilder;\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nvar Configuration = function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n }\n\n _createClass(Configuration, null, [{\n key: \"set\",\n value: function set(clientConfig) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n return defaultConfig;\n }\n }]);\n\n return Configuration;\n}();\n\nexports.default = Configuration;\nexports.Configuration = Configuration;\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\nvar SERVICE_NAME = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\n\nvar OvpService = function () {\n function OvpService() {\n _classCallCheck(this, OvpService);\n }\n\n _createClass(OvpService, null, [{\n key: 'getMultirequest',\n\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n value: function getMultirequest(ks, partnerId) {\n var ovpParams = config.serviceParams;\n Object.assign(ovpParams, { ks: ks });\n if (partnerId) {\n Object.assign(ovpParams, { partnerId: partnerId });\n }\n var multiReq = new _multiRequestBuilder2.default();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n }]);\n\n return OvpService;\n}();\n\nexports.default = OvpService;\n\n/***/ }),\n\n/***/ 36:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RequestBuilder = exports.Configuration = exports.StatsService = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\n\nvar StatsService = function (_OvpService) {\n _inherits(StatsService, _OvpService);\n\n function StatsService() {\n _classCallCheck(this, StatsService);\n\n return _possibleConstructorReturn(this, (StatsService.__proto__ || Object.getPrototypeOf(StatsService)).apply(this, arguments));\n }\n\n _createClass(StatsService, null, [{\n key: 'collect',\n\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n value: function collect(ks, event, baseUrl) {\n var ovpParams = _config2.default.get();\n var serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, { ks: ks }, event);\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n }]);\n\n return StatsService;\n}(_ovpService2.default);\n\nexports.default = StatsService;\nexports.StatsService = StatsService;\nexports.Configuration = _config2.default;\nexports.RequestBuilder = _requestBuilder2.default;\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base service result\n * @classdesc\n */\nvar ServiceResult =\n\n/**\n * @constructor\n * @param {Object} response - Service response\n */\n\n/**\n * @member - The service error\n * @type {ServiceError}\n */\n\n/**\n * @member - The service result data\n * @type {Object}\n */\nfunction ServiceResult(response) {\n _classCallCheck(this, ServiceResult);\n\n this.hasError = false;\n\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else {\n this.data = response;\n }\n}\n\n/**\n * @member - Is service returned an error\n * @type {boolean}\n */\n;\n\n/**\n * Service error\n * @classdesc\n */\n\n\nexports.default = ServiceResult;\n\nvar ServiceError =\n\n/**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n\n/**\n * @member - The error code\n * @type {string}\n */\nfunction ServiceError(code, message) {\n _classCallCheck(this, ServiceError);\n\n this.code = code;\n this.message = message;\n}\n/**\n * @member - The error message\n * @type {string}\n */\n;\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOG_LEVEL = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jsLogger = __webpack_require__(8);\n\nvar JsLogger = _interopRequireWildcard(_jsLogger);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LoggerFactory = function () {\n function LoggerFactory(options) {\n _classCallCheck(this, LoggerFactory);\n\n JsLogger.useDefaults(options || {});\n }\n\n _createClass(LoggerFactory, [{\n key: \"get\",\n value: function get(name) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n }]);\n\n return LoggerFactory;\n}();\n\nvar Logger = new LoggerFactory({ defaultLevel: JsLogger.DEBUG });\nvar LOG_LEVEL = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexports.default = Logger;\nexports.LOG_LEVEL = LOG_LEVEL;\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MultiRequestResult = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\n\nvar MultiRequestBuilder = function (_RequestBuilder) {\n _inherits(MultiRequestBuilder, _RequestBuilder);\n\n /**\n * @constructor\n */\n function MultiRequestBuilder() {\n _classCallCheck(this, MultiRequestBuilder);\n\n var _this = _possibleConstructorReturn(this, (MultiRequestBuilder.__proto__ || Object.getPrototypeOf(MultiRequestBuilder)).call(this));\n\n _this.requests = [];\n return _this;\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n\n\n _createClass(MultiRequestBuilder, [{\n key: 'add',\n value: function add(request) {\n this.requests.push(request);\n var requestParams = {};\n var serviceDef = { service: request.service, action: request.action };\n Object.assign(requestParams, _defineProperty({}, this.requests.length, Object.assign(serviceDef, request.params)));\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n\n }, {\n key: 'execute',\n value: function execute() {\n var _this2 = this;\n\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n logger.error('' + err.message);\n }\n return new Promise(function (resolve, reject) {\n _this2.doHttpRequest().then(function (data) {\n resolve(new MultiRequestResult(data));\n }, function (err) {\n var errorText = 'Error on multiRequest execution, error <' + err + '>.';\n reject(errorText);\n });\n });\n }\n }]);\n\n return MultiRequestBuilder;\n}(_requestBuilder2.default);\n\n/**\n * Multi Request result object\n * @classdesc\n */\n\n\nexports.default = MultiRequestBuilder;\n\nvar MultiRequestResult =\n\n/**\n * @constructor\n * @param {Object} response data\n */\n\n\n/**\n * @member - Is success\n * @type {boolean}\n */\nexports.MultiRequestResult = function MultiRequestResult(response) {\n var _this3 = this;\n\n _classCallCheck(this, MultiRequestResult);\n\n this.results = [];\n\n this.success = true;\n response.forEach(function (result) {\n var serviceResult = new _baseServiceResult2.default(result);\n _this3.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error('Service returned an error with error code: ' + serviceResult.error.code + ' and message: ' + serviceResult.error.message + '.');\n _this3.success = false;\n return;\n }\n });\n}\n/**\n * @member - Multi request response data\n * @type {Object}\n */\n;\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n/***/ })\n\n/******/ });\n});\n\n\n// WEBPACK FOOTER //\n// statsService.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 23bc45362ebde973588a","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\nimport Configuration from '../config'\n\nconst SERVICE_NAME: string = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\nexport default class StatsService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static collect(ks: string, event: Object, baseUrl: ?string): RequestBuilder {\n let ovpParams = Configuration.get();\n let serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks}, event);\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n\nexport {StatsService, Configuration, RequestBuilder};\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/stats-service.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/js-logger/src/logger.js\n// module id = 8\n// module chunks = 0 1"],"sourceRoot":""} \ No newline at end of file From bd9bfebe441714733b0ce613498c0ec681573071 Mon Sep 17 00:00:00 2001 From: "yair.ansbacher" Date: Wed, 19 Jul 2017 10:55:35 +0300 Subject: [PATCH 3/5] CR and tests fixes --- .../ovp/loaders/data-loader-manager.js | 2 +- src/k-provider/ovp/provider-parser.js | 238 ++++++++++-------- .../k-provider/ovp/player-config-parsed.js | 212 ++++++++++++---- 3 files changed, 300 insertions(+), 152 deletions(-) diff --git a/src/k-provider/ovp/loaders/data-loader-manager.js b/src/k-provider/ovp/loaders/data-loader-manager.js index 0880c376..d1413a8a 100644 --- a/src/k-provider/ovp/loaders/data-loader-manager.js +++ b/src/k-provider/ovp/loaders/data-loader-manager.js @@ -50,7 +50,7 @@ export default class DataLoaderManager { * @param {Object} params Loader params * @returns {void} */ - add(loader: typeof ILoader, params: Object): void { + add(loader: Function, params: Object): void { let execution_loader = new loader(params); if (execution_loader.isValid()) { this._loaders.set(loader.name, execution_loader); diff --git a/src/k-provider/ovp/provider-parser.js b/src/k-provider/ovp/provider-parser.js index 6e64873a..c083d7ad 100644 --- a/src/k-provider/ovp/provider-parser.js +++ b/src/k-provider/ovp/provider-parser.js @@ -1,6 +1,4 @@ //@flow -import KalturaMediaEntry from './response-types/kaltura-media-entry' -import KalturaPlaybackContext from './response-types/kaltura-playback-context' import KalturaPlaybackSource from './response-types/kaltura-playback-source' import KalturaFlavorAsset from './response-types/kaltura-flavor-asset' import KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response' @@ -40,11 +38,11 @@ export default class ProviderParser { /** * Returns parsed media entry by given OVP response objects * @function getMediaEntry - * @param {string} ks The ks - * @param {number} partnerID The partner ID - * @param {number} uiConfId The uiConf ID - * @param {any} mediaEntryResponse The media entry response - * @returns {MediaEntry} The media entry + * @param {string} ks - The ks + * @param {number} partnerID - The partner ID + * @param {number} uiConfId - The uiConf ID + * @param {any} mediaEntryResponse - The media entry response + * @returns {MediaEntry} - The media entry * @static * @public */ @@ -90,22 +88,35 @@ export default class ProviderParser { return mediaEntry; } - static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry, playbackContext): MediaSources { + /** + * Returns the parsed sources + * @function _getParsedSources + * @param {Array} kalturaSources - The kaltura sources + * @param {string} ks - The ks + * @param {number} partnerID - The partner ID + * @param {number} uiConfId - The uiConf ID + * @param {Object} entry - The entry + * @param {Object} playbackContext - The playback context + * @return {MediaSources} - A media sources + * @static + * @private + */ + static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry: Object, playbackContext: Object): MediaSources { let sources: MediaSources = new MediaSources(); - let parseAdaptiveSources = function () { - kalturaSources.forEach((source) => { - if (ProviderParser._isProgressiveSource(source) === false) { - let parsedSource = ProviderParser._parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext); - let sourceFormat = SUPPORTED_FORMATS.get(source.format); - sources.map(parsedSource, sourceFormat); - } - }); + let addAdaptiveSource = function(source: KalturaPlaybackSource): void{ + let parsedSource = ProviderParser._parseAdaptiveSource(source, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id); + let sourceFormat = SUPPORTED_FORMATS.get(source.format); + sources.map(parsedSource, sourceFormat); }; - let parseProgressiveSources = function () { - let progressiveSource = kalturaSources.find(source => ProviderParser._isProgressiveSource(source)); - sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry); + let parseAdaptiveSources = function (): void { + kalturaSources.filter((source) => !ProviderParser._isProgressiveSource(source)).forEach(addAdaptiveSource); + }; + + let parseProgressiveSources = function (): void{ + let progressiveSource = kalturaSources.find(ProviderParser._isProgressiveSource); + sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id); }; if (kalturaSources && kalturaSources.length > 0) { @@ -116,105 +127,85 @@ export default class ProviderParser { return sources; } - static _isProgressiveSource(source) { - let sourceFormat = SUPPORTED_FORMATS.get(source.format); - return sourceFormat && sourceFormat.name === 'mp4'; - } - /** - * - * @param {KalturaPlaybackSource} source The source - * @param {string} ks The ks - * @param {number} partnerID The partner ID - * @param {number} uiConfId The uiConf ID - * @param {KalturaMediaEntry} entry The entry - * @param {KalturaPlaybackContext} playbackContext The playback context - * @returns {MediaSource} The parsed media source + * Returns a parsed adaptive source + * @function _parseAdaptiveSource + * @param {KalturaPlaybackSource} kalturaSource - A kaltura source + * @param {Array} flavorAssets - The flavor Assets of the kaltura source + * @param {string} ks - The ks + * @param {number} partnerID - The partner ID + * @param {number} uiConfId - The uiConf ID + * @param {string} entryId - The entry id + * @returns {MediaSource} - The parsed adaptive kalturaSource * @static * @private */ - static _parseAdaptiveSource(source: KalturaPlaybackSource, ks: string, partnerID: number, uiConfId: number, entry: KalturaMediaEntry, playbackContext: KalturaPlaybackContext): MediaSource { - let playUrl: string = ""; - let mediaFormat = SUPPORTED_FORMATS.get(source.format); + static _parseAdaptiveSource(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): MediaSource { let mediaSource: MediaSource = new MediaSource(); - // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one. - if (source.hasFlavorIds()) { - let extension: string = ""; - if (!mediaFormat) { - let flavorIdsArr = source.flavorIds.split(","); - let flavors: Array = playbackContext.flavorAssets.filter(flavor => flavorIdsArr.indexOf(flavor.id) != -1); - if (flavors && flavors.length > 0) { - extension = flavors[0].fileExt; + if (kalturaSource) { + let playUrl: string = ""; + let mediaFormat = SUPPORTED_FORMATS.get(kalturaSource.format); + // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one. + if (kalturaSource.hasFlavorIds()) { + let extension: string = ""; + if (!mediaFormat) { + if (flavorAssets && flavorAssets.length > 0) { + extension = flavorAssets[0].fileExt; + } } + else { + extension = mediaFormat.pathExt; + mediaSource.mimetype = mediaFormat.mimeType; + } + + playUrl = PlaySourceUrlBuilder.build({ + entryId: entryId, + flavorIds: kalturaSource.flavorIds, + format: kalturaSource.format, + ks: ks, + partnerId: partnerID, + uiConfId: uiConfId, + extension: extension, + protocol: kalturaSource.getProtocol(this._getBaseProtocol()) + }); + } else { - extension = mediaFormat.pathExt; - mediaSource.mimetype = mediaFormat.mimeType; + playUrl = kalturaSource.url; } - playUrl = PlaySourceUrlBuilder.build({ - entryId: entry.id, - flavorIds: source.flavorIds, - format: source.format, - ks: ks, - partnerId: partnerID, - uiConfId: uiConfId, - extension: extension, - protocol: source.getProtocol(this._getBaseProtocol()) - }); - - } - else { - playUrl = source.url; - } - - if (playUrl == "") { - logger.error(`failed to create play url from source, discarding source: (${entry.id}_${source.deliveryProfileId}), ${source.format}.`); - return mediaSource; - } + if (playUrl == "") { + logger.error(`failed to create play url from source, discarding source: (${entryId}_${kalturaSource.deliveryProfileId}), ${kalturaSource.format}.`); + return mediaSource; + } - mediaSource.url = playUrl; - mediaSource.id = entry.id + "_" + source.deliveryProfileId + "," + source.format; - if (source.hasDrmData()) { - let drmParams: Array = []; - source.drm.forEach((drm) => { - drmParams.push(new Drm(drm.licenseURL, drm.scheme)); - }); - mediaSource.drmData = drmParams; + mediaSource.url = playUrl; + mediaSource.id = entryId + "_" + kalturaSource.deliveryProfileId + "," + kalturaSource.format; + if (kalturaSource.hasDrmData()) { + let drmParams: Array = []; + kalturaSource.drm.forEach((drm) => { + drmParams.push(new Drm(drm.licenseURL, drm.scheme)); + }); + mediaSource.drmData = drmParams; + } } return mediaSource; } /** - * Ovp metadata parser - * @function _parseMetaData - * @param {KalturaMetadataListResponse} metadataList The metadata list - * @returns {Map} Parsed metadata + * Returns parsed progressive sources + * @function _parseProgressiveSources + * @param {KalturaPlaybackSource} kalturaSource - A kaltura source + * @param {Array} flavorAssets - The flavor Assets of the kaltura source + * @param {string} ks - The ks + * @param {number} partnerID - The partner ID + * @param {number} uiConfId - The uiConf ID + * @param {string} entryId - The entry id + * @returns {Array} - The parsed progressive kalturaSources * @static * @private */ - static _parseMetaData(metadataList: KalturaMetadataListResponse): Map { - let metadata: Object = {}; - if (metadataList && metadataList.metas && metadataList.metas.length > 0) { - metadataList.metas.forEach((meta) => { - let metaXml: Object; - let domParser: DOMParser = new DOMParser(); - meta.xml = meta.xml.replace(/\r?\n|\r/g, ""); - meta.xml = meta.xml.replace(/>\s*/g, '>'); - meta.xml = meta.xml.replace(/>\s*/g, '>'); - metaXml = domParser.parseFromString(meta.xml, 'text/xml'); - let metasObj: Object = XmlParser.xmlToJson(metaXml); - let metaKeys = Object.keys(metasObj.metadata); - metaKeys.forEach((key) => { - metadata[key] = metasObj.metadata[key]["#text"]; - }) - - }) - } - return metadata; - } - - static _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entry) { + static _parseProgressiveSources(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): Array { let sources = []; if (kalturaSource) { let protocol = kalturaSource.getProtocol(this._getBaseProtocol()); @@ -230,7 +221,7 @@ export default class ProviderParser { mediaSource.bandwidth = flavor.bitrate * 1024; mediaSource.label = flavor.label || flavor.language; mediaSource.url = PlaySourceUrlBuilder.build({ - entryId: entry.id, + entryId: entryId, flavorIds: flavor.id, format: format, ks: ks, @@ -246,6 +237,53 @@ export default class ProviderParser { return sources; } + /** + * @function _isProgressiveSource + * @param {KalturaPlaybackSource} source - The kaltura source + * @return {boolean} - Is progressive source + * @static + * @private + */ + static _isProgressiveSource(source: KalturaPlaybackSource): boolean { + let sourceFormat = SUPPORTED_FORMATS.get(source.format); + return !!sourceFormat && sourceFormat.name === 'mp4'; + } + + /** + * Ovp metadata parser + * @function _parseMetaData + * @param {KalturaMetadataListResponse} metadataList The metadata list + * @returns {Map} Parsed metadata + * @static + * @private + */ + static _parseMetaData(metadataList: KalturaMetadataListResponse): Map { + let metadata: Object = {}; + if (metadataList && metadataList.metas && metadataList.metas.length > 0) { + metadataList.metas.forEach((meta) => { + let metaXml: Object; + let domParser: DOMParser = new DOMParser(); + meta.xml = meta.xml.replace(/\r?\n|\r/g, ""); + meta.xml = meta.xml.replace(/>\s*/g, '>'); + meta.xml = meta.xml.replace(/>\s*/g, '>'); + metaXml = domParser.parseFromString(meta.xml, 'text/xml'); + let metasObj: Object = XmlParser.xmlToJson(metaXml); + let metaKeys = Object.keys(metasObj.metadata); + metaKeys.forEach((key) => { + metadata[key] = metasObj.metadata[key]["#text"]; + }) + }) + } + return metadata; + } + + /** + * Returns the base protocol + * @function _getBaseProtocol + * @returns {string} - The base protocol + * @static + * @private + */ static _getBaseProtocol(): string { let splittedUrl: Array = config.baseUrl.split("/"); let baseProtocol: string; diff --git a/test/src/k-provider/ovp/player-config-parsed.js b/test/src/k-provider/ovp/player-config-parsed.js index 2aee270c..37284862 100644 --- a/test/src/k-provider/ovp/player-config-parsed.js +++ b/test/src/k-provider/ovp/player-config-parsed.js @@ -3,40 +3,98 @@ let NoPluginsNoDrm = { "id": "1_rsrdfext", "session": { "partnerID": 1082342, - "ks": "OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7", - "uiConfID": undefined + "uiConfID": undefined, + "ks": "OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7" }, "sources": { + "progressive": [ + { + "id": "1_ha0nqwz810081,url", + "mimetype": "video/mp4", + "height": 360, + "width": 640, + "bandwidth": 482304, + "label": "Undefined", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_ha0nqwz8/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4" + }, + { + "id": "1_gw7u4nf110081,url", + "mimetype": "video/mp4", + "height": 360, + "width": 640, + "bandwidth": 686080, + "label": "Undefined", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_gw7u4nf1/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4" + }, + { + "id": "1_rql6sqaa10081,url", + "mimetype": "video/mp4", + "height": 360, + "width": 640, + "bandwidth": 987136, + "label": "Undefined", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_rql6sqaa/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4" + }, + { + "id": "1_sufd1yd910081,url", + "mimetype": "video/mp4", + "height": 720, + "width": 1280, + "bandwidth": 1584128, + "label": "Undefined", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_sufd1yd9/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4" + }, + { + "id": "1_9xvkk7a510081,url", + "mimetype": "video/mp4", + "height": 720, + "width": 1280, + "bandwidth": 2691072, + "label": "Undefined", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_9xvkk7a5/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4" + }, + { + "id": "1_4typ4pat10081,url", + "mimetype": "video/mp4", + "height": 1080, + "width": 1920, + "bandwidth": 4227072, + "label": "Undefined", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_4typ4pat/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4" + }, + { + "id": "1_n75294r410081,url", + "mimetype": "video/mp4", + "height": 1080, + "width": 1920, + "bandwidth": 18454528, + "label": "English", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_n75294r4/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4" + } + ], "dash": [ { "mimetype": "application/dash+xml", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/mpegdash/falvorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/mpegdash/flavorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd", "id": "1_rsrdfext_11611,mpegdash" }, { "mimetype": "application/dash+xml", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/mpegdash/falvorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/mpegdash/flavorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd", "id": "1_rsrdfext_11261,mpegdash" } ], "hls": [ { "mimetype": "application/x-mpegURL", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/applehttp/falvorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/applehttp/flavorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8", "id": "1_rsrdfext_10091,applehttp" }, { "mimetype": "application/x-mpegURL", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/applehttp/falvorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/applehttp/flavorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8", "id": "1_rsrdfext_11241,applehttp" } - ], - "progressive": [ - { - "mimetype": "video/mp4", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/falvorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/OGM0ZWM0Y2IwOWI5ZjM0MDcyZmQ3YmYxNzBiMGEwNGYxNWQ0ZTcyOXwxMDgyMzQyOzEwODIzNDI7MTQ5MDExNTg5MzswOzE0OTAwMjk0OTMuMTY3ODswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4", - "id": "1_rsrdfext_10081,url" - } ] }, "duration": 55, @@ -66,14 +124,15 @@ let NoPluginsWithDrm = { "id": "1_rwbj3j0a", "session": { "partnerID": 1068292, - "ks": "NTAwZjViZWZjY2NjNTRkNGEyMjU1MTg4OGE1NmUwNDljZWJkMzk1MXwxMDY4MjkyOzEwNjgyOTI7MTQ5MDE3NjE0NjswOzE0OTAwODk3NDYuMDIyNjswO3ZpZXc6Kix3aWRnZXQ6MTs7", - "uiConfID": undefined + "uiConfID": undefined, + "ks": "NTAwZjViZWZjY2NjNTRkNGEyMjU1MTg4OGE1NmUwNDljZWJkMzk1MXwxMDY4MjkyOzEwNjgyOTI7MTQ5MDE3NjE0NjswOzE0OTAwODk3NDYuMDIyNjswO3ZpZXc6Kix3aWRnZXQ6MTs7" }, "sources": { + "progressive": [], "dash": [ { "mimetype": "application/dash+xml", - "url": "https://cdnapisec.kaltura.com/p/1068292/sp/106829200/playManifest/entryId/1_rwbj3j0a/protocol/https/format/mpegdash/falvorIds/1_92dfyrz5,1_9dhh6m0i,1_zudouuah,1_r0wu6y77,1_oz343kla/ks/NTAwZjViZWZjY2NjNTRkNGEyMjU1MTg4OGE1NmUwNDljZWJkMzk1MXwxMDY4MjkyOzEwNjgyOTI7MTQ5MDE3NjE0NjswOzE0OTAwODk3NDYuMDIyNjswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd", + "url": "https://cdnapisec.kaltura.com/p/1068292/sp/106829200/playManifest/entryId/1_rwbj3j0a/protocol/https/format/mpegdash/flavorIds/1_92dfyrz5,1_9dhh6m0i,1_zudouuah,1_r0wu6y77,1_oz343kla/ks/NTAwZjViZWZjY2NjNTRkNGEyMjU1MTg4OGE1NmUwNDljZWJkMzk1MXwxMDY4MjkyOzEwNjgyOTI7MTQ5MDE3NjE0NjswOzE0OTAwODk3NDYuMDIyNjswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd", "id": "1_rwbj3j0a_11331,mpegdash", "drmData": [ { @@ -90,7 +149,7 @@ let NoPluginsWithDrm = { "hls": [ { "mimetype": "application/x-mpegURL", - "url": "https://cdnapisec.kaltura.com/p/1068292/sp/106829200/playManifest/entryId/1_rwbj3j0a/protocol/https/format/applehttp/falvorIds/1_92dfyrz5,1_9dhh6m0i,1_zudouuah,1_r0wu6y77,1_oz343kla/ks/NTAwZjViZWZjY2NjNTRkNGEyMjU1MTg4OGE1NmUwNDljZWJkMzk1MXwxMDY4MjkyOzEwNjgyOTI7MTQ5MDE3NjE0NjswOzE0OTAwODk3NDYuMDIyNjswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8", + "url": "https://cdnapisec.kaltura.com/p/1068292/sp/106829200/playManifest/entryId/1_rwbj3j0a/protocol/https/format/applehttp/flavorIds/1_92dfyrz5,1_9dhh6m0i,1_zudouuah,1_r0wu6y77,1_oz343kla/ks/NTAwZjViZWZjY2NjNTRkNGEyMjU1MTg4OGE1NmUwNDljZWJkMzk1MXwxMDY4MjkyOzEwNjgyOTI7MTQ5MDE3NjE0NjswOzE0OTAwODk3NDYuMDIyNjswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8", "id": "1_rwbj3j0a_11311,applehttp", "drmData": [ { @@ -99,8 +158,7 @@ let NoPluginsWithDrm = { } ] } - ], - "progressive": [] + ] }, "duration": 596, "type": "Vod", @@ -112,40 +170,98 @@ let WithPluginsNoDrm = { "id": "1_rsrdfext", "session": { "partnerID": 1082342, - "ks": "YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7", - "uiConfID": 38621471 + "uiConfID": 38621471, + "ks": "YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7" }, "sources": { + "progressive": [ + { + "id": "1_ha0nqwz810081,url", + "mimetype": "video/mp4", + "height": 360, + "width": 640, + "bandwidth": 482304, + "label": "Undefined", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_ha0nqwz8/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4?uiConfId=.38621471" + }, + { + "id": "1_gw7u4nf110081,url", + "mimetype": "video/mp4", + "height": 360, + "width": 640, + "bandwidth": 686080, + "label": "Undefined", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_gw7u4nf1/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4?uiConfId=.38621471" + }, + { + "id": "1_rql6sqaa10081,url", + "mimetype": "video/mp4", + "height": 360, + "width": 640, + "bandwidth": 987136, + "label": "Undefined", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_rql6sqaa/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4?uiConfId=.38621471" + }, + { + "id": "1_sufd1yd910081,url", + "mimetype": "video/mp4", + "height": 720, + "width": 1280, + "bandwidth": 1584128, + "label": "Undefined", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_sufd1yd9/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4?uiConfId=.38621471" + }, + { + "id": "1_9xvkk7a510081,url", + "mimetype": "video/mp4", + "height": 720, + "width": 1280, + "bandwidth": 2691072, + "label": "Undefined", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_9xvkk7a5/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4?uiConfId=.38621471" + }, + { + "id": "1_4typ4pat10081,url", + "mimetype": "video/mp4", + "height": 1080, + "width": 1920, + "bandwidth": 4227072, + "label": "Undefined", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_4typ4pat/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4?uiConfId=.38621471" + }, + { + "id": "1_n75294r410081,url", + "mimetype": "video/mp4", + "height": 1080, + "width": 1920, + "bandwidth": 18454528, + "label": "English", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/flavorIds/1_n75294r4/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4?uiConfId=.38621471" + } + ], "dash": [ { "mimetype": "application/dash+xml", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/mpegdash/falvorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd?uiConfId=.38621471", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/mpegdash/flavorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd?uiConfId=.38621471", "id": "1_rsrdfext_11611,mpegdash" }, { "mimetype": "application/dash+xml", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/mpegdash/falvorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd?uiConfId=.38621471", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/mpegdash/flavorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd?uiConfId=.38621471", "id": "1_rsrdfext_11261,mpegdash" } ], "hls": [ { "mimetype": "application/x-mpegURL", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/applehttp/falvorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8?uiConfId=.38621471", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/applehttp/flavorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8?uiConfId=.38621471", "id": "1_rsrdfext_10091,applehttp" }, { "mimetype": "application/x-mpegURL", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/applehttp/falvorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8?uiConfId=.38621471", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/applehttp/flavorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8?uiConfId=.38621471", "id": "1_rsrdfext_11241,applehttp" } - ], - "progressive": [ - { - "mimetype": "video/mp4", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/1_rsrdfext/protocol/https/format/url/falvorIds/1_ha0nqwz8,1_gw7u4nf1,1_rql6sqaa,1_sufd1yd9,1_9xvkk7a5,1_4typ4pat,1_n75294r4/ks/YmQ0N2Q0M2QxZTAyMGIzYTY4YzI1ZDk5ZjI1NjhlZWVkOWZmOGViN3wxMDgyMzQyOzEwODIzNDI7MTQ5MDE5NjMwMDswOzE0OTAxMDk5MDAuOTA0NDswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4?uiConfId=.38621471", - "id": "1_rsrdfext_10081,url" - } ] }, "duration": 55, @@ -245,15 +361,16 @@ let WithPluginsNoDrm = { let WithPluginsWithDrm = { "id": "1_rwbj3j0a", "session": { - "ks": "ZTFiNzk4MmM5MjJiYzkwODliMzQzZTQ3Y2I4MzIwYTIzMmQzMTMxYnwxMDY4MjkyOzEwNjgyOTI7MTQ5MDI1Mjk5MjswOzE0OTAxNjY1OTIuODUyMTswO3ZpZXc6Kix3aWRnZXQ6MTs7", "partnerID": 1068292, - "uiConfID": 38601981 + "uiConfID": 38601981, + "ks": "ZTFiNzk4MmM5MjJiYzkwODliMzQzZTQ3Y2I4MzIwYTIzMmQzMTMxYnwxMDY4MjkyOzEwNjgyOTI7MTQ5MDI1Mjk5MjswOzE0OTAxNjY1OTIuODUyMTswO3ZpZXc6Kix3aWRnZXQ6MTs7" }, "sources": { + "progressive": [], "dash": [ { "mimetype": "application/dash+xml", - "url": "https://cdnapisec.kaltura.com/p/1068292/sp/106829200/playManifest/entryId/1_rwbj3j0a/protocol/https/format/mpegdash/falvorIds/1_92dfyrz5,1_9dhh6m0i,1_zudouuah,1_r0wu6y77,1_oz343kla/ks/ZTFiNzk4MmM5MjJiYzkwODliMzQzZTQ3Y2I4MzIwYTIzMmQzMTMxYnwxMDY4MjkyOzEwNjgyOTI7MTQ5MDI1Mjk5MjswOzE0OTAxNjY1OTIuODUyMTswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd?uiConfId=.38601981", + "url": "https://cdnapisec.kaltura.com/p/1068292/sp/106829200/playManifest/entryId/1_rwbj3j0a/protocol/https/format/mpegdash/flavorIds/1_92dfyrz5,1_9dhh6m0i,1_zudouuah,1_r0wu6y77,1_oz343kla/ks/ZTFiNzk4MmM5MjJiYzkwODliMzQzZTQ3Y2I4MzIwYTIzMmQzMTMxYnwxMDY4MjkyOzEwNjgyOTI7MTQ5MDI1Mjk5MjswOzE0OTAxNjY1OTIuODUyMTswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd?uiConfId=.38601981", "id": "1_rwbj3j0a_11331,mpegdash", "drmData": [ { @@ -270,7 +387,7 @@ let WithPluginsWithDrm = { "hls": [ { "mimetype": "application/x-mpegURL", - "url": "https://cdnapisec.kaltura.com/p/1068292/sp/106829200/playManifest/entryId/1_rwbj3j0a/protocol/https/format/applehttp/falvorIds/1_92dfyrz5,1_9dhh6m0i,1_zudouuah,1_r0wu6y77,1_oz343kla/ks/ZTFiNzk4MmM5MjJiYzkwODliMzQzZTQ3Y2I4MzIwYTIzMmQzMTMxYnwxMDY4MjkyOzEwNjgyOTI7MTQ5MDI1Mjk5MjswOzE0OTAxNjY1OTIuODUyMTswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8?uiConfId=.38601981", + "url": "https://cdnapisec.kaltura.com/p/1068292/sp/106829200/playManifest/entryId/1_rwbj3j0a/protocol/https/format/applehttp/flavorIds/1_92dfyrz5,1_9dhh6m0i,1_zudouuah,1_r0wu6y77,1_oz343kla/ks/ZTFiNzk4MmM5MjJiYzkwODliMzQzZTQ3Y2I4MzIwYTIzMmQzMTMxYnwxMDY4MjkyOzEwNjgyOTI7MTQ5MDI1Mjk5MjswOzE0OTAxNjY1OTIuODUyMTswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8?uiConfId=.38601981", "id": "1_rwbj3j0a_11311,applehttp", "drmData": [ { @@ -279,8 +396,7 @@ let WithPluginsWithDrm = { } ] } - ], - "progressive": [] + ] }, "duration": 596, "type": "Vod", @@ -363,40 +479,34 @@ let AudioEntryWithoutPlugins = { "id": "0_vyzw3ceu", "session": { "partnerID": 1082342, - "ks": "YWU4Y2I0ZDk4ZmNiMjUyZjA1NmQ1NmMzMTdjZmFjZWEyODc2NDE0YXwxMDgyMzQyOzEwODIzNDI7MTQ5MDg2MTk1OTswOzE0OTA3NzU1NTkuNzk0MzswO3ZpZXc6Kix3aWRnZXQ6MTs7", - "uiConfID": undefined + "uiConfID": undefined, + "ks": "YWU4Y2I0ZDk4ZmNiMjUyZjA1NmQ1NmMzMTdjZmFjZWEyODc2NDE0YXwxMDgyMzQyOzEwODIzNDI7MTQ5MDg2MTk1OTswOzE0OTA3NzU1NTkuNzk0MzswO3ZpZXc6Kix3aWRnZXQ6MTs7" }, "sources": { + "progressive": [], "dash": [ { "mimetype": "application/dash+xml", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/0_vyzw3ceu/protocol/https/format/mpegdash/falvorIds/0_hawbhpz3/ks/YWU4Y2I0ZDk4ZmNiMjUyZjA1NmQ1NmMzMTdjZmFjZWEyODc2NDE0YXwxMDgyMzQyOzEwODIzNDI7MTQ5MDg2MTk1OTswOzE0OTA3NzU1NTkuNzk0MzswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/0_vyzw3ceu/protocol/https/format/mpegdash/flavorIds/0_hawbhpz3/ks/YWU4Y2I0ZDk4ZmNiMjUyZjA1NmQ1NmMzMTdjZmFjZWEyODc2NDE0YXwxMDgyMzQyOzEwODIzNDI7MTQ5MDg2MTk1OTswOzE0OTA3NzU1NTkuNzk0MzswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd", "id": "0_vyzw3ceu_11611,mpegdash" }, { "mimetype": "application/dash+xml", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/0_vyzw3ceu/protocol/https/format/mpegdash/falvorIds/0_hawbhpz3/ks/YWU4Y2I0ZDk4ZmNiMjUyZjA1NmQ1NmMzMTdjZmFjZWEyODc2NDE0YXwxMDgyMzQyOzEwODIzNDI7MTQ5MDg2MTk1OTswOzE0OTA3NzU1NTkuNzk0MzswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/0_vyzw3ceu/protocol/https/format/mpegdash/flavorIds/0_hawbhpz3/ks/YWU4Y2I0ZDk4ZmNiMjUyZjA1NmQ1NmMzMTdjZmFjZWEyODc2NDE0YXwxMDgyMzQyOzEwODIzNDI7MTQ5MDg2MTk1OTswOzE0OTA3NzU1NTkuNzk0MzswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mpd", "id": "0_vyzw3ceu_11261,mpegdash" } ], "hls": [ { "mimetype": "application/x-mpegURL", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/0_vyzw3ceu/protocol/https/format/applehttp/falvorIds/0_hawbhpz3/ks/YWU4Y2I0ZDk4ZmNiMjUyZjA1NmQ1NmMzMTdjZmFjZWEyODc2NDE0YXwxMDgyMzQyOzEwODIzNDI7MTQ5MDg2MTk1OTswOzE0OTA3NzU1NTkuNzk0MzswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/0_vyzw3ceu/protocol/https/format/applehttp/flavorIds/0_hawbhpz3/ks/YWU4Y2I0ZDk4ZmNiMjUyZjA1NmQ1NmMzMTdjZmFjZWEyODc2NDE0YXwxMDgyMzQyOzEwODIzNDI7MTQ5MDg2MTk1OTswOzE0OTA3NzU1NTkuNzk0MzswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8", "id": "0_vyzw3ceu_10091,applehttp" }, { "mimetype": "application/x-mpegURL", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/0_vyzw3ceu/protocol/https/format/applehttp/falvorIds/0_hawbhpz3/ks/YWU4Y2I0ZDk4ZmNiMjUyZjA1NmQ1NmMzMTdjZmFjZWEyODc2NDE0YXwxMDgyMzQyOzEwODIzNDI7MTQ5MDg2MTk1OTswOzE0OTA3NzU1NTkuNzk0MzswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8", + "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/0_vyzw3ceu/protocol/https/format/applehttp/flavorIds/0_hawbhpz3/ks/YWU4Y2I0ZDk4ZmNiMjUyZjA1NmQ1NmMzMTdjZmFjZWEyODc2NDE0YXwxMDgyMzQyOzEwODIzNDI7MTQ5MDg2MTk1OTswOzE0OTA3NzU1NTkuNzk0MzswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.m3u8", "id": "0_vyzw3ceu_11241,applehttp" } - ], - "progressive": [ - { - "mimetype": "video/mp4", - "url": "https://cdnapisec.kaltura.com/p/1082342/sp/108234200/playManifest/entryId/0_vyzw3ceu/protocol/https/format/url/falvorIds/0_hawbhpz3/ks/YWU4Y2I0ZDk4ZmNiMjUyZjA1NmQ1NmMzMTdjZmFjZWEyODc2NDE0YXwxMDgyMzQyOzEwODIzNDI7MTQ5MDg2MTk1OTswOzE0OTA3NzU1NTkuNzk0MzswO3ZpZXc6Kix3aWRnZXQ6MTs7/a.mp4", - "id": "0_vyzw3ceu_10081,url" - } ] }, "duration": 0, From 12f1b584e250c7be649a005a0938c6c7b607e5ce Mon Sep 17 00:00:00 2001 From: "yair.ansbacher" Date: Wed, 19 Jul 2017 10:56:09 +0300 Subject: [PATCH 4/5] chore: update dist --- dist/ottProvider.js | 7 +- dist/ottProvider.js.map | 2 +- dist/ottProvider.min.js | 2 +- dist/ottProvider.min.js.map | 2 +- dist/ovpProvider.js | 4058 +++++++++++++++++----------------- dist/ovpProvider.js.map | 2 +- dist/ovpProvider.min.js | 4 +- dist/ovpProvider.min.js.map | 2 +- dist/statsService.js | 209 +- dist/statsService.js.map | 2 +- dist/statsService.min.js | 2 +- dist/statsService.min.js.map | 2 +- 12 files changed, 2161 insertions(+), 2133 deletions(-) diff --git a/dist/ottProvider.js b/dist/ottProvider.js index 7c0dc09b..347b9a7b 100644 --- a/dist/ottProvider.js +++ b/dist/ottProvider.js @@ -43,9 +43,6 @@ return /******/ (function(modules) { // webpackBootstrap /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ -/******/ // identity function for calling harmony imports with the correct context -/******/ __webpack_require__.i = function(value) { return value; }; -/******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { @@ -73,12 +70,12 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 24); +/******/ return __webpack_require__(__webpack_require__.s = 37); /******/ }) /************************************************************************/ /******/ ({ -/***/ 24: +/***/ 37: /***/ (function(module, exports, __webpack_require__) { "use strict"; diff --git a/dist/ottProvider.js.map b/dist/ottProvider.js.map index 332cc936..b0134200 100644 --- a/dist/ottProvider.js.map +++ b/dist/ottProvider.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6*","webpack:///webpack/bootstrap 40363af1b4965fde30fb?46d4*","webpack:///providers/./k-provider/ott/ott-provider.js"],"names":["OttProvider"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;IC/DqBA,W;AACnB,yBAAc;AAAA;AACb;;;;gCAEiB,CACjB;;;;;;kBALkBA,W","file":"ottProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 24);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 40363af1b4965fde30fb","//@flow\nexport default class OttProvider {\n constructor() {\n }\n\n getConfig(): void {\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ott/ott-provider.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/webpack/bootstrap e13f9de90e38187349d1","webpack:///providers/./k-provider/ott/ott-provider.js"],"names":["OttProvider"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;IC5DqBA,W;AACnB,yBAAc;AAAA;AACb;;;;gCAEiB,CACjB;;;;;;kBALkBA,W","file":"ottProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 37);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap e13f9de90e38187349d1","//@flow\nexport default class OttProvider {\n constructor() {\n }\n\n getConfig(): void {\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ott/ott-provider.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/ottProvider.min.js b/dist/ottProvider.min.js index 598db579..23902ae3 100644 --- a/dist/ottProvider.min.js +++ b/dist/ottProvider.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PlaykitJsProviders=t():e.PlaykitJsProviders=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=24)}({24:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n} - * @public - */ - function MediaSources() { - _classCallCheck(this, MediaSources); - - this.progressive = []; - this.dash = []; - this.hls = []; - } - - /** - * Maps the source to one of the containers according to his media format. - * @param {MediaSource} source - The source to add to one of the containers. - * @param {MediaFormat} mediaFormat - The media format of the source. - * @returns {void} - */ - - /** - * Hls media sources container. - * @type {Array} - * @public - */ - - /** - * Progressive download media sources container. - * @type {Array} - * @public - */ - - - _createClass(MediaSources, [{ - key: 'map', - value: function map(source, mediaFormat) { - if (mediaFormat) { - switch (mediaFormat.name) { - case 'mp4': - this.progressive.push(source); - break; - case 'dash': - this.dash.push(source); - break; - case 'hls': - this.hls.push(source); - break; - default: - break; - } - } - } - }]); - - return MediaSources; -}(); - -exports.default = MediaSources; - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! * js-logger - http://github.com/jonnyreeves/js-logger * Jonny Reeves, http://jonnyreeves.co.uk/ @@ -1274,7 +1179,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! /***/ }), -/* 9 */ +/* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1284,62 +1189,89 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _enums = __webpack_require__(2); +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _mediaSources = __webpack_require__(7); +var _mediaSource = __webpack_require__(15); -var _mediaSources2 = _interopRequireDefault(_mediaSources); +var _mediaSource2 = _interopRequireDefault(_mediaSource); + +var _mediaFormat = __webpack_require__(13); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** - * Media entry + * Container for the media sources aggregated by stream format. * @classdesc */ -var MediaEntry = - -/** - * @constructor - */ +var MediaSources = function () { -/** - * @member - entry type - * @type {MediaEntryType} - */ + /** + * @constructor + */ -/** - * @member - entry sources - * @type {MediaSources} - */ -function MediaEntry() { - _classCallCheck(this, MediaEntry); + /** + * Dash media sources container. + * @type {Array} + * @public + */ + function MediaSources() { + _classCallCheck(this, MediaSources); - this.metaData = new Map(); - this.type = _enums.MediaEntryType.Unknown; -} -/** - * @member - entry metadata - * @type {Map} - */ + this.progressive = []; + this.dash = []; + this.hls = []; + } -/** - * @member - entry duration - * @type {number} - */ + /** + * Maps the source to one of the containers according to his media format. + * @param {MediaSource} source - The source to add to one of the containers. + * @param {MediaFormat} mediaFormat - The media format of the source. + * @returns {void} + */ + + /** + * Hls media sources container. + * @type {Array} + * @public + */ + /** + * Progressive download media sources container. + * @type {Array} + * @public + */ -/** - * @member - entry ID - * @type {string} - */ -; -exports.default = MediaEntry; + _createClass(MediaSources, [{ + key: 'map', + value: function map(source, mediaFormat) { + if (mediaFormat) { + switch (mediaFormat.name) { + case 'mp4': + this.progressive.push(source); + break; + case 'dash': + this.dash.push(source); + break; + case 'hls': + this.hls.push(source); + break; + default: + break; + } + } + } + }]); + + return MediaSources; +}(); + +exports.default = MediaSources; /***/ }), -/* 10 */ +/* 9 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1349,192 +1281,347 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _enums = __webpack_require__(2); +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _kalturaDrmPlaybackPluginData = __webpack_require__(19); + +var _kalturaDrmPlaybackPluginData2 = _interopRequireDefault(_kalturaDrmPlaybackPluginData); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** - * Drm data + * Ovp BE playback source * @classdesc */ -var Drm = +var KalturaPlaybackSource = function () { -/** - * @constructor - * @param {string} licenseUrl - the license URL - * @param {Scheme} scheme - the drm scheme - */ + /** + * @constructor + * @param {Object} source The response + */ + /** + * @member - comma separated string of flavor ids + * @type {string} + */ -/** - * @member - license URL - * @type {string} - */ -function Drm(licenseUrl, scheme) { - _classCallCheck(this, Drm); + /** + * @member - The source URL + * @type {string} + */ - this.licenseUrl = licenseUrl; - this.scheme = scheme; -} -/** - * @member - drm scheme - * @type {Scheme} - */ -; + /** + * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.) + * @type {string} + */ + function KalturaPlaybackSource(source) { + var _this = this; -exports.default = Drm; + _classCallCheck(this, KalturaPlaybackSource); -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { + this.drm = []; -"use strict"; + this.format = source.format; + this.deliveryProfileId = source.deliveryProfileId; + this.url = source.url; + this.protocols = source.protocols; + this.flavorIds = source.flavorIds; + if (source.drm) { + source.drm.map(function (drm) { + return _this.drm.push(new _kalturaDrmPlaybackPluginData2.default(drm)); + }); + } + } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.MediaFormat = undefined; + /** + * Checks if source has DRM data + * @function hasDrmData + * @returns {boolean} Is source has DRM + */ -var _enumify = __webpack_require__(18); + /** + * @member - drm data object containing relevant license url ,scheme name and certificate + * @type {Array} + */ -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + /** + * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.) + * @type {string} + */ -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + /** + * @member - delivery profile Id + * @type {string} + */ -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var MediaFormat = exports.MediaFormat = function (_Enum) { - _inherits(MediaFormat, _Enum); + _createClass(KalturaPlaybackSource, [{ + key: "hasDrmData", + value: function hasDrmData() { + return this.drm && this.drm.length > 0; + } - function MediaFormat() { - _classCallCheck(this, MediaFormat); + /** + * Checks if source has flavor IDs + * @function hasFlavorIds + * @returns {boolean} Is source ha flavor IDs + */ - return _possibleConstructorReturn(this, (MediaFormat.__proto__ || Object.getPrototypeOf(MediaFormat)).apply(this, arguments)); - } + }, { + key: "hasFlavorIds", + value: function hasFlavorIds() { + return !!this.flavorIds && this.flavorIds.length > 0; + } - return MediaFormat; -}(_enumify.Enum); + /** + * Returns source desired protocol if supported + * @param {string} protocol - the desired protocol for the source (base play url protocol) + * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned + */ -MediaFormat.initEnum({ - dash: { - get mimeType() { - return "application/dash+xml"; - }, - get pathExt() { - return "mpd"; - } - }, - hls: { - get mimeType() { - return "application/x-mpegURL"; - }, - get pathExt() { - return "m3u8"; - } - }, - wvm: { - get mimeType() { - return "video/wvm"; - }, - get pathExt() { - return "wvm"; - } - }, - mp4: { - get mimeType() { - return "video/mp4"; - }, - get pathExt() { - return "mp4"; - } - }, - mp3: { - get mimeType() { - return "audio/mpeg"; - }, - get pathExt() { - return "mp3"; + }, { + key: "getProtocol", + value: function getProtocol(protocol) { + var returnValue = ""; + if (this.protocols && this.protocols.length > 0) { + var protocolsArr = this.protocols.split(","); + protocolsArr.forEach(function (p) { + if (p == protocol) { + returnValue = p; + } + }); + } else if (protocol == "http") { + return protocol; + } + return returnValue; } - } -}); + }]); + + return KalturaPlaybackSource; +}(); + +exports.default = KalturaPlaybackSource; /***/ }), -/* 12 */ +/* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _drm = __webpack_require__(10); +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; -var _drm2 = _interopRequireDefault(_drm); +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.copyProperties = copyProperties; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -/** - * Media source - * @classdesc - */ -var MediaSource = +var INITIALIZED = Symbol(); /** - * @constructor + * This is an abstract class that is not intended to be + * used directly. Extend it to turn your class into an enum + * (initialization is performed via `MyClass.initEnum()`). */ -/** - * @member - media source height - * @type {number} - */ +var Enum = exports.Enum = function () { + /** + * `initEnum()` closes the class. Then calling this constructor + * throws an exception. + * + * If your subclass has a constructor then you can control + * what properties are added to `this` via the argument you + * pass to `super()`. No arguments are fine, too. + */ -/** - * @member - media source bandwidth - * @type {number} - */ + function Enum() { + var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0]; -/** - * @member - media source mimetype - * @type {string} - */ + _classCallCheck(this, Enum); -/** - * @member - media source ID - * @type {string} - */ -function MediaSource() { - _classCallCheck(this, MediaSource); -} -/** - * @member - media source label - * @type {string} - */ + // new.target would be better than this.constructor, + // but isn’t supported by Babel + if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) { + throw new Error('Enum classes can’t be instantiated'); + } + if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) { + copyProperties(this, instanceProperties); + } + } + /** + * Set up the enum, close the class. + * + * @param arg Either an object whose properties provide the names + * and values (which must be mutable objects) of the enum constants. + * Or an Array whose elements are used as the names of the enum constants + * The values are create by instantiating the current class. + */ -/** - * @member - media source width - * @type {number} - */ + _createClass(Enum, [{ + key: 'toString', -/** - * @member - media source drm data - * @type {Array} - */ + /** + * Default `toString()` method for enum constant. + */ + value: function toString() { + return this.constructor.name + '.' + this.name; + } + }], [{ + key: 'initEnum', + value: function initEnum(arg) { + Object.defineProperty(this, 'enumValues', { + value: [], + configurable: false, + writable: false, + enumerable: true + }); + if (Array.isArray(arg)) { + this._enumValuesFromArray(arg); + } else { + this._enumValuesFromObject(arg); + } + Object.freeze(this.enumValues); + this[INITIALIZED] = true; + return this; + } + }, { + key: '_enumValuesFromArray', + value: function _enumValuesFromArray(arr) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; -/** - * @member - media source URL - * @type {string} - */ -; + try { + for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var key = _step.value; -exports.default = MediaSource; + this._pushEnumValue(new this(), key); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + }, { + key: '_enumValuesFromObject', + value: function _enumValuesFromObject(obj) { + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var key = _step2.value; + + var value = new this(obj[key]); + this._pushEnumValue(value, key); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + } + }, { + key: '_pushEnumValue', + value: function _pushEnumValue(enumValue, name) { + enumValue.name = name; + enumValue.ordinal = this.enumValues.length; + Object.defineProperty(this, name, { + value: enumValue, + configurable: false, + writable: false, + enumerable: true + }); + this.enumValues.push(enumValue); + } + + /** + * Given the name of an enum constant, return its value. + */ + + }, { + key: 'enumValueOf', + value: function enumValueOf(name) { + return this.enumValues.find(function (x) { + return x.name === name; + }); + } + + /** + * Make enum classes iterable + */ + + }, { + key: Symbol.iterator, + value: function value() { + return this.enumValues[Symbol.iterator](); + } + }]); + + return Enum; +}(); + +function copyProperties(target, source) { + // Ideally, we’d use Reflect.ownKeys() here, + // but I don’t want to depend on a polyfill + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; + + try { + for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var key = _step3.value; + + var desc = Object.getOwnPropertyDescriptor(source, key); + Object.defineProperty(target, key, desc); + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3.return) { + _iterator3.return(); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + + return target; +} /***/ }), -/* 13 */ +/* 11 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1651,7 +1738,7 @@ function KalturaFlavorAsset(data) { exports.default = KalturaFlavorAsset; /***/ }), -/* 14 */ +/* 12 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1661,87 +1748,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _enums = __webpack_require__(2); +var _baseServiceResult = __webpack_require__(3); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _baseServiceResult2 = _interopRequireDefault(_baseServiceResult); -/** - * Ovp BE MediaEntry - * @classdesc - */ -var KalturaMediaEntry = +var _kalturaMetadata = __webpack_require__(20); -/** - * @constructor - * @param {Object} entry The json response - */ - -/** - * @member - The type of the entry, this is auto filled by the derived entry object - * @type {EntryType} - */ - -/** - * @member - Comma separated flavor params ids that exists for this media entry - * @type {string} - */ - -/** - * @member - Entry name (Min 1 chars) - * @type {string} - */ -function KalturaMediaEntry(entry) { - _classCallCheck(this, KalturaMediaEntry); - - this.id = entry.id; - this.name = entry.name; - this.dataUrl = entry.dataUrl; - this.type = entry.type; - this.entryType = entry.mediaType; - this.flavorParamsIds = entry.flavorParamsIds; - this.duration = entry.duration; -} -/** - * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.) - * @type {MediaType} - */ - -/** - * @member - The entry duration - * @type {number} - */ - -/** - * @member - The URL used for playback. This is not the download URL. - * @type {string} - */ - -/** - * @member - The entry id - * @type {string} - */ -; - -exports.default = KalturaMediaEntry; - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _baseServiceResult = __webpack_require__(4); - -var _baseServiceResult2 = _interopRequireDefault(_baseServiceResult); - -var _kalturaMetadata = __webpack_require__(30); - -var _kalturaMetadata2 = _interopRequireDefault(_kalturaMetadata); +var _kalturaMetadata2 = _interopRequireDefault(_kalturaMetadata); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -1790,7 +1803,7 @@ var KalturaMetadataListResponse = function (_ServiceResult) { exports.default = KalturaMetadataListResponse; /***/ }), -/* 16 */ +/* 13 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1799,117 +1812,138 @@ exports.default = KalturaMetadataListResponse; Object.defineProperty(exports, "__esModule", { value: true }); +exports.MediaFormat = undefined; -var _baseServiceResult = __webpack_require__(4); - -var _baseServiceResult2 = _interopRequireDefault(_baseServiceResult); - -var _kalturaAccessControlMessage = __webpack_require__(27); - -var _kalturaAccessControlMessage2 = _interopRequireDefault(_kalturaAccessControlMessage); +var _enumify = __webpack_require__(10); -var _kalturaPlaybackSource = __webpack_require__(17); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource); +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } -var _kalturaRuleAction = __webpack_require__(31); +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var _kalturaRuleAction2 = _interopRequireDefault(_kalturaRuleAction); +var MediaFormat = exports.MediaFormat = function (_Enum) { + _inherits(MediaFormat, _Enum); -var _kalturaFlavorAsset = __webpack_require__(13); + function MediaFormat() { + _classCallCheck(this, MediaFormat); -var _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset); + return _possibleConstructorReturn(this, (MediaFormat.__proto__ || Object.getPrototypeOf(MediaFormat)).apply(this, arguments)); + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + return MediaFormat; +}(_enumify.Enum); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +MediaFormat.initEnum({ + dash: { + get mimeType() { + return "application/dash+xml"; + }, + get pathExt() { + return "mpd"; + } + }, + hls: { + get mimeType() { + return "application/x-mpegURL"; + }, + get pathExt() { + return "m3u8"; + } + }, + wvm: { + get mimeType() { + return "video/wvm"; + }, + get pathExt() { + return "wvm"; + } + }, + mp4: { + get mimeType() { + return "video/mp4"; + }, + get pathExt() { + return "mp4"; + } + }, + mp3: { + get mimeType() { + return "audio/mpeg"; + }, + get pathExt() { + return "mp3"; + } + } +}); -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } +"use strict"; -/** - * Ovp BE playback context response - * @classdesc - */ -var KalturaPlaybackContext = function (_ServiceResult) { - _inherits(KalturaPlaybackContext, _ServiceResult); - /** - * @constructor - * @param {Object} response The response - */ +Object.defineProperty(exports, "__esModule", { + value: true +}); - /** - * @member - Array of actions as received from the rules that invalidated - * @type {Array} - */ +var _enums = __webpack_require__(2); - /** - * @member - The playback sources - * @type {Array} - */ - function KalturaPlaybackContext(response) { - _classCallCheck(this, KalturaPlaybackContext); +var _mediaSources = __webpack_require__(8); - var _this = _possibleConstructorReturn(this, (KalturaPlaybackContext.__proto__ || Object.getPrototypeOf(KalturaPlaybackContext)).call(this, response)); +var _mediaSources2 = _interopRequireDefault(_mediaSources); - _this.sources = []; - _this.actions = []; - _this.messages = []; - _this.flavorAssets = []; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - if (!_this.hasError) { +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - var messages = response.messages; - if (messages) { - messages.map(function (message) { - return _this.messages.push(new _kalturaAccessControlMessage2.default(message)); - }); - } +/** + * Media entry + * @classdesc + */ +var MediaEntry = - var actions = response.actions; - if (actions) { - actions.map(function (action) { - return _this.actions.push(new _kalturaRuleAction2.default(action)); - }); - } +/** + * @constructor + */ - var sources = response.sources; - if (sources) { - sources.map(function (source) { - return _this.sources.push(new _kalturaPlaybackSource2.default(source)); - }); - } +/** + * @member - entry type + * @type {MediaEntryType} + */ - var flavorAssets = response.flavorAssets; - if (flavorAssets) { - flavorAssets.map(function (flavor) { - return _this.flavorAssets.push(new _kalturaFlavorAsset2.default(flavor)); - }); - } - } +/** + * @member - entry sources + * @type {MediaSources} + */ +function MediaEntry() { + _classCallCheck(this, MediaEntry); - return _this; - } - /** - * @member - The flavor assets - * @type {Array} - */ + this.metaData = new Map(); + this.type = _enums.MediaEntryType.Unknown; +} +/** + * @member - entry metadata + * @type {Map} + */ - /** - * @member - Array of actions as received from the rules that invalidated - * @type {Array} - */ +/** + * @member - entry duration + * @type {number} + */ - return KalturaPlaybackContext; -}(_baseServiceResult2.default); +/** + * @member - entry ID + * @type {string} + */ +; -exports.default = KalturaPlaybackContext; +exports.default = MediaEntry; /***/ }), -/* 17 */ +/* 15 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1919,347 +1953,341 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _kalturaDrmPlaybackPluginData = __webpack_require__(29); +var _drm = __webpack_require__(16); -var _kalturaDrmPlaybackPluginData2 = _interopRequireDefault(_kalturaDrmPlaybackPluginData); +var _drm2 = _interopRequireDefault(_drm); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** - * Ovp BE playback source + * Media source * @classdesc */ -var KalturaPlaybackSource = function () { +var MediaSource = - /** - * @constructor - * @param {Object} source The response - */ +/** + * @constructor + */ - /** - * @member - comma separated string of flavor ids - * @type {string} - */ +/** + * @member - media source height + * @type {number} + */ - /** - * @member - The source URL - * @type {string} - */ +/** + * @member - media source bandwidth + * @type {number} + */ - /** - * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.) - * @type {string} - */ - function KalturaPlaybackSource(source) { - var _this = this; +/** + * @member - media source mimetype + * @type {string} + */ - _classCallCheck(this, KalturaPlaybackSource); +/** + * @member - media source ID + * @type {string} + */ +function MediaSource() { + _classCallCheck(this, MediaSource); +} +/** + * @member - media source label + * @type {string} + */ - this.drm = []; +/** + * @member - media source width + * @type {number} + */ - this.format = source.format; - this.deliveryProfileId = source.deliveryProfileId; - this.url = source.url; - this.protocols = source.protocols; - this.flavorIds = source.flavorIds; +/** + * @member - media source drm data + * @type {Array} + */ - if (source.drm) { - source.drm.map(function (drm) { - return _this.drm.push(new _kalturaDrmPlaybackPluginData2.default(drm)); - }); - } - } +/** + * @member - media source URL + * @type {string} + */ +; - /** - * Checks if source has DRM data - * @function hasDrmData - * @returns {boolean} Is source has DRM - */ +exports.default = MediaSource; - /** - * @member - drm data object containing relevant license url ,scheme name and certificate - * @type {Array} - */ +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { - /** - * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.) - * @type {string} - */ +"use strict"; - /** - * @member - delivery profile Id - * @type {string} - */ +Object.defineProperty(exports, "__esModule", { + value: true +}); - _createClass(KalturaPlaybackSource, [{ - key: "hasDrmData", - value: function hasDrmData() { - return this.drm && this.drm.length > 0; - } +var _enums = __webpack_require__(2); - /** - * Checks if source has flavor IDs - * @function hasFlavorIds - * @returns {boolean} Is source ha flavor IDs - */ +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - }, { - key: "hasFlavorIds", - value: function hasFlavorIds() { - return !!this.flavorIds && this.flavorIds.length > 0; - } +/** + * Drm data + * @classdesc + */ +var Drm = - /** - * Returns source desired protocol if supported - * @param {string} protocol - the desired protocol for the source (base play url protocol) - * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned - */ +/** + * @constructor + * @param {string} licenseUrl - the license URL + * @param {Scheme} scheme - the drm scheme + */ - }, { - key: "getProtocol", - value: function getProtocol(protocol) { - var returnValue = ""; - if (this.protocols && this.protocols.length > 0) { - var protocolsArr = this.protocols.split(","); - protocolsArr.forEach(function (p) { - if (p == protocol) { - returnValue = p; - } - }); - } else if (protocol == "http") { - return protocol; - } - return returnValue; - } - }]); - return KalturaPlaybackSource; -}(); +/** + * @member - license URL + * @type {string} + */ +function Drm(licenseUrl, scheme) { + _classCallCheck(this, Drm); -exports.default = KalturaPlaybackSource; + this.licenseUrl = licenseUrl; + this.scheme = scheme; +} +/** + * @member - drm scheme + * @type {Scheme} + */ +; + +exports.default = Drm; /***/ }), -/* 18 */ +/* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.OvpProvider = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.copyProperties = copyProperties; +var _logger = __webpack_require__(5); + +var _logger2 = _interopRequireDefault(_logger); + +var _providerParser = __webpack_require__(18); + +var _providerParser2 = _interopRequireDefault(_providerParser); + +var _dataLoaderManager = __webpack_require__(23); + +var _dataLoaderManager2 = _interopRequireDefault(_dataLoaderManager); + +var _mediaEntryLoader = __webpack_require__(24); + +var _mediaEntryLoader2 = _interopRequireDefault(_mediaEntryLoader); + +var _sessionLoader = __webpack_require__(32); + +var _sessionLoader2 = _interopRequireDefault(_sessionLoader); + +var _uiConfigLoader = __webpack_require__(34); + +var _uiConfigLoader2 = _interopRequireDefault(_uiConfigLoader); + +var _config = __webpack_require__(1); + +var _config2 = _interopRequireDefault(_config); + +var _mediaEntry = __webpack_require__(14); + +var _mediaEntry2 = _interopRequireDefault(_mediaEntry); + +var _mediaSources = __webpack_require__(8); + +var _mediaSources2 = _interopRequireDefault(_mediaSources); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var INITIALIZED = Symbol(); +/** + * @constant + */ +var logger = _logger2.default.get("OvpProvider"); /** - * This is an abstract class that is not intended to be - * used directly. Extend it to turn your class into an enum - * (initialization is performed via `MyClass.initEnum()`). + * Ovp provider + * @classdesc */ +var OvpProvider = exports.OvpProvider = function () { -var Enum = exports.Enum = function () { - /** - * `initEnum()` closes the class. Then calling this constructor - * throws an exception. - * - * If your subclass has a constructor then you can control - * what properties are added to `this` via the argument you - * pass to `super()`. No arguments are fine, too. - */ + /** + * @constructor + * @param {number} partnerID The partner ID + * @param {string} [ks=""] The provider ks (has empty string as default value) + * @param {Object} [config] The provider config(optional) + */ - function Enum() { - var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0]; + /** + * @member - uiConf ID + * @type {number} + * @private + */ - _classCallCheck(this, Enum); + /** + * @member - partner ID + * @type {number} + */ + function OvpProvider(partnerID) { + var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; + var config = arguments[2]; - // new.target would be better than this.constructor, - // but isn’t supported by Babel - if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) { - throw new Error('Enum classes can’t be instantiated'); - } - if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) { - copyProperties(this, instanceProperties); - } - } - /** - * Set up the enum, close the class. - * - * @param arg Either an object whose properties provide the names - * and values (which must be mutable objects) of the enum constants. - * Or an Array whose elements are used as the names of the enum constants - * The values are create by instantiating the current class. - */ + _classCallCheck(this, OvpProvider); - _createClass(Enum, [{ - key: 'toString', + this.partnerID = partnerID; + this.ks = ks; + this._isAnonymous = !this.ks; + _config2.default.set(config); + } - /** - * Default `toString()` method for enum constant. - */ - value: function toString() { - return this.constructor.name + '.' + this.name; - } - }], [{ - key: 'initEnum', - value: function initEnum(arg) { - Object.defineProperty(this, 'enumValues', { - value: [], - configurable: false, - writable: false, - enumerable: true - }); - if (Array.isArray(arg)) { - this._enumValuesFromArray(arg); - } else { - this._enumValuesFromObject(arg); - } - Object.freeze(this.enumValues); - this[INITIALIZED] = true; - return this; - } - }, { - key: '_enumValuesFromArray', - value: function _enumValuesFromArray(arr) { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + /** + * Returns player json configuration + * @function getConfig + * @param {string} entryId The entry ID + * @param {number} uiConfId The uiConf ID + * @returns {Promise} The provider config object as promise + */ - try { - for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var key = _step.value; + /** + * @member - Data loader + * @type {DataLoaderManager} + * @private + */ - this._pushEnumValue(new this(), key); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - } - }, { - key: '_enumValuesFromObject', - value: function _enumValuesFromObject(obj) { - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + /** + * @member - is anonymous + * @type {boolean} + * @private + */ - try { - for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var key = _step2.value; + /** + * @member - ks + * @type {string} + */ - var value = new this(obj[key]); - this._pushEnumValue(value, key); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - } - }, { - key: '_pushEnumValue', - value: function _pushEnumValue(enumValue, name) { - enumValue.name = name; - enumValue.ordinal = this.enumValues.length; - Object.defineProperty(this, name, { - value: enumValue, - configurable: false, - writable: false, - enumerable: true - }); - this.enumValues.push(enumValue); - } - /** - * Given the name of an enum constant, return its value. - */ + _createClass(OvpProvider, [{ + key: 'getConfig', + value: function getConfig(entryId, uiConfId) { + var _this = this; - }, { - key: 'enumValueOf', - value: function enumValueOf(name) { - return this.enumValues.find(function (x) { - return x.name === name; - }); + if (uiConfId != null) { + this._uiConfId = uiConfId; + } + this._dataLoader = new _dataLoaderManager2.default(this.partnerID, this.ks); + return new Promise(function (resolve, reject) { + if (_this.validateParams(entryId, uiConfId)) { + var ks = _this.ks; + if (_this._isAnonymous) { + ks = "{1:result:ks}"; + _this._dataLoader.add(_sessionLoader2.default, { partnerId: _this.partnerID }); + } + _this._dataLoader.add(_mediaEntryLoader2.default, { entryId: entryId, ks: ks }); + _this._dataLoader.add(_uiConfigLoader2.default, { uiConfId: uiConfId, ks: ks }); + _this._dataLoader.fetchData().then(function (response) { + resolve(_this.parseDataFromResponse(response)); + }, function (err) { + reject(err); + }); + } else { + reject({ success: false, data: "Missing mandatory parameter" }); } + }); + } - /** - * Make enum classes iterable - */ + /** + * Parses BE data to json configuration object + * @function parseDataFromResponse + * @param {Map} data The data to parse + * @returns {Object} The parsed config object + */ - }, { - key: Symbol.iterator, - value: function value() { - return this.enumValues[Symbol.iterator](); + }, { + key: 'parseDataFromResponse', + value: function parseDataFromResponse(data) { + logger.debug("Data parsing started"); + var config = { + id: "", + session: { + partnerID: this.partnerID, + uiConfID: this._uiConfId + }, + sources: new _mediaSources2.default(), + duration: 0, + type: "Unknown", + metadata: {}, + plugins: {} + }; + if (data != null) { + if (data.has(_sessionLoader2.default.name)) { + var sessionLoader = data.get(_sessionLoader2.default.name); + if (sessionLoader != null && sessionLoader.response != null) { + this.ks = sessionLoader.response; + this._isAnonymous = !this.ks; + config.session.ks = this.ks; + } } - }]); - - return Enum; -}(); - -function copyProperties(target, source) { - // Ideally, we’d use Reflect.ownKeys() here, - // but I don’t want to depend on a polyfill - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; + if (data.has(_uiConfigLoader2.default.name)) { + var uiConfLoader = data.get(_uiConfigLoader2.default.name); + var pluginsJson = {}; + if (uiConfLoader != null) { + pluginsJson = uiConfLoader.response; + } + config.plugins = pluginsJson; + } + if (data.has(_mediaEntryLoader2.default.name)) { + var mediaLoader = data.get(_mediaEntryLoader2.default.name); + if (mediaLoader != null && mediaLoader.response != null) { + var mediaEntry = _providerParser2.default.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response); + config.id = mediaEntry.id; + config.sources = mediaEntry.sources; + config.duration = mediaEntry.duration; + config.type = mediaEntry.type.name; + config.metadata = mediaEntry.metaData; + } + } + } + logger.debug("Data parsing finished", config); + return config; + } - try { - for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var key = _step3.value; + /** + * Parameters validation function + * @param {string} entryId The entry ID + * @param {number} uiConfId The uiConfID + * @returns {boolean} Is valid params + */ - var desc = Object.getOwnPropertyDescriptor(source, key); - Object.defineProperty(target, key, desc); - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } + }, { + key: 'validateParams', + value: function validateParams(entryId, uiConfId) { + return !!entryId || !!uiConfId; } + }]); - return target; -} + return OvpProvider; +}(); + +exports.default = OvpProvider; /***/ }), -/* 19 */ +/* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2271,152 +2299,369 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _ovpService = __webpack_require__(3); +var _kalturaPlaybackSource = __webpack_require__(9); -var _ovpService2 = _interopRequireDefault(_ovpService); +var _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource); -var _multiRequestBuilder = __webpack_require__(6); +var _kalturaFlavorAsset = __webpack_require__(11); -var _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder); +var _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset); + +var _kalturaMetadataListResponse = __webpack_require__(12); + +var _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse); + +var _playSourceUrlBuilder = __webpack_require__(21); + +var _playSourceUrlBuilder2 = _interopRequireDefault(_playSourceUrlBuilder); + +var _xmlParser = __webpack_require__(22); + +var _xmlParser2 = _interopRequireDefault(_xmlParser); + +var _enums = __webpack_require__(2); + +var _logger = __webpack_require__(5); + +var _logger2 = _interopRequireDefault(_logger); + +var _config = __webpack_require__(1); + +var _config2 = _interopRequireDefault(_config); + +var _mediaFormat = __webpack_require__(13); + +var _mediaEntry = __webpack_require__(14); + +var _mediaEntry2 = _interopRequireDefault(_mediaEntry); + +var _drm = __webpack_require__(16); + +var _drm2 = _interopRequireDefault(_drm); + +var _mediaSource = __webpack_require__(15); + +var _mediaSource2 = _interopRequireDefault(_mediaSource); + +var _mediaSources = __webpack_require__(8); + +var _mediaSources2 = _interopRequireDefault(_mediaSources); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var config = _config2.default.get(); /** - * Data loaders manager + * @constant + */ +var logger = _logger2.default.get("OvpProvider"); + +/** + * @constant + * @type {Map} + */ +var SUPPORTED_FORMATS = new Map([["mpegdash", _mediaFormat.MediaFormat.dash], ["applehttp", _mediaFormat.MediaFormat.hls], ["url", _mediaFormat.MediaFormat.mp4]]); + +/** + * Ovp provider parser * @classdesc */ -var DataLoaderManager = function () { - /** - * @constructor - * @param {string} partnerID Then partner ID - * @param {string} ks The ks - */ +var ProviderParser = function () { + function ProviderParser() { + _classCallCheck(this, ProviderParser); + } - /** - * @member - Lodaers response map index - * @type {Map>} - * @private - * @static - */ - function DataLoaderManager(partnerID) { - var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; + _createClass(ProviderParser, null, [{ + key: 'getMediaEntry', - _classCallCheck(this, DataLoaderManager); - this._loaders = new Map(); + /** + * Returns parsed media entry by given OVP response objects + * @function getMediaEntry + * @param {string} ks - The ks + * @param {number} partnerID - The partner ID + * @param {number} uiConfId - The uiConf ID + * @param {any} mediaEntryResponse - The media entry response + * @returns {MediaEntry} - The media entry + * @static + * @public + */ + value: function getMediaEntry(ks, partnerID, uiConfId, mediaEntryResponse) { + var mediaEntry = new _mediaEntry2.default(); + var entry = mediaEntryResponse.entry; + var playbackContext = mediaEntryResponse.playBackContextResult; + var metadataList = mediaEntryResponse.metadataListResult; + var kalturaSources = playbackContext.sources; + var sources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext); - this._multiRequest = _ovpService2.default.getMultirequest(ks, partnerID); - } + mediaEntry.sources = sources; - /** - * Add loader too execution loaders map - * @function - * @param {Function} loader Loader to add - * @param {Object} params Loader params - * @returns {void} - */ + var metadata = this._parseMetaData(metadataList); + mediaEntry.metaData = metadata; + mediaEntry.id = entry.id; + mediaEntry.duration = entry.duration; - /** - * @member - Loaders to execute - * @type {Map} - * @private - */ + var type = _enums.MediaEntryType.Unknown; - /** - * @member - Loaders multi request - * @type {MultiRequestBuilder} - * @private - */ + switch (entry.entryType) { + case _enums.MediaType.IMAGE.value: + type = _enums.MediaEntryType.Image; + break; + case _enums.MediaType.AUDIO.value: + type = _enums.MediaEntryType.Audio; + break; + default: + switch (entry.type) { + case _enums.EntryType.MEDIA_CLIP.value: + type = _enums.MediaEntryType.Vod; + break; + case _enums.EntryType.LIVE_STREAM.value: + case _enums.EntryType.LIVE_CHANNEL.value: + type = _enums.MediaEntryType.Live; + break; + default: + type = _enums.MediaEntryType.Unknown; + } + } + mediaEntry.type = type; - /** - * @member - Loaders multi response - * @type {MultiRequestResult} - * @private - */ + return mediaEntry; + } + /** + * Returns the parsed sources + * @function _getParsedSources + * @param {Array} kalturaSources - The kaltura sources + * @param {string} ks - The ks + * @param {number} partnerID - The partner ID + * @param {number} uiConfId - The uiConf ID + * @param {Object} entry - The entry + * @param {Object} playbackContext - The playback context + * @return {MediaSources} - A media sources + * @static + * @private + */ - _createClass(DataLoaderManager, [{ - key: 'add', - value: function add(loader, params) { - var _this = this; + }, { + key: '_getParsedSources', + value: function _getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext) { + var sources = new _mediaSources2.default(); - var execution_loader = new loader(params); - if (execution_loader.isValid()) { - this._loaders.set(loader.name, execution_loader); - //Get the start index from the multiReqeust before adding current execution_loader requests - var startIndex = this._multiRequest.requests.length; - //Get the requests - var requests = execution_loader.requests; - //Add requests to muktiRequest queue - requests.forEach(function (request) { - _this._multiRequest.add(request); - }); - //Create range array of current execution_loader requests - var executionLoaderResponseMap = Array.from(new Array(requests.length), function (val, index) { - return index + startIndex; + var addAdaptiveSource = function addAdaptiveSource(source) { + var parsedSource = ProviderParser._parseAdaptiveSource(source, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id); + var sourceFormat = SUPPORTED_FORMATS.get(source.format); + sources.map(parsedSource, sourceFormat); + }; + + var parseAdaptiveSources = function parseAdaptiveSources() { + kalturaSources.filter(function (source) { + return !ProviderParser._isProgressiveSource(source); + }).forEach(addAdaptiveSource); + }; + + var parseProgressiveSources = function parseProgressiveSources() { + var progressiveSource = kalturaSources.find(ProviderParser._isProgressiveSource); + sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id); + }; + + if (kalturaSources && kalturaSources.length > 0) { + parseAdaptiveSources(); + parseProgressiveSources(); + } + + return sources; + } + + /** + * Returns a parsed adaptive source + * @function _parseAdaptiveSource + * @param {KalturaPlaybackSource} kalturaSource - A kaltura source + * @param {Array} flavorAssets - The flavor Assets of the kaltura source + * @param {string} ks - The ks + * @param {number} partnerID - The partner ID + * @param {number} uiConfId - The uiConf ID + * @param {string} entryId - The entry id + * @returns {MediaSource} - The parsed adaptive kalturaSource + * @static + * @private + */ + + }, { + key: '_parseAdaptiveSource', + value: function _parseAdaptiveSource(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entryId) { + var mediaSource = new _mediaSource2.default(); + if (kalturaSource) { + var playUrl = ""; + var mediaFormat = SUPPORTED_FORMATS.get(kalturaSource.format); + // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one. + if (kalturaSource.hasFlavorIds()) { + var extension = ""; + if (!mediaFormat) { + if (flavorAssets && flavorAssets.length > 0) { + extension = flavorAssets[0].fileExt; + } + } else { + extension = mediaFormat.pathExt; + mediaSource.mimetype = mediaFormat.mimeType; + } + + playUrl = _playSourceUrlBuilder2.default.build({ + entryId: entryId, + flavorIds: kalturaSource.flavorIds, + format: kalturaSource.format, + ks: ks, + partnerId: partnerID, + uiConfId: uiConfId, + extension: extension, + protocol: kalturaSource.getProtocol(this._getBaseProtocol()) + }); + } else { + playUrl = kalturaSource.url; + } + + if (playUrl == "") { + logger.error('failed to create play url from source, discarding source: (' + entryId + '_' + kalturaSource.deliveryProfileId + '), ' + kalturaSource.format + '.'); + return mediaSource; + } + + mediaSource.url = playUrl; + mediaSource.id = entryId + "_" + kalturaSource.deliveryProfileId + "," + kalturaSource.format; + if (kalturaSource.hasDrmData()) { + var drmParams = []; + kalturaSource.drm.forEach(function (drm) { + drmParams.push(new _drm2.default(drm.licenseURL, drm.scheme)); + }); + mediaSource.drmData = drmParams; + } + } + return mediaSource; + } + + /** + * Returns parsed progressive sources + * @function _parseProgressiveSources + * @param {KalturaPlaybackSource} kalturaSource - A kaltura source + * @param {Array} flavorAssets - The flavor Assets of the kaltura source + * @param {string} ks - The ks + * @param {number} partnerID - The partner ID + * @param {number} uiConfId - The uiConf ID + * @param {string} entryId - The entry id + * @returns {Array} - The parsed progressive kalturaSources + * @static + * @private + */ + + }, { + key: '_parseProgressiveSources', + value: function _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entryId) { + var sources = []; + if (kalturaSource) { + var protocol = kalturaSource.getProtocol(this._getBaseProtocol()); + var format = kalturaSource.format; + var sourceId = kalturaSource.deliveryProfileId + "," + kalturaSource.format; + flavorAssets.map(function (flavor) { + if (flavor.height && flavor.width) { + var mediaSource = new _mediaSource2.default(); + mediaSource.id = flavor.id + sourceId; + mediaSource.mimetype = 'video/mp4'; + mediaSource.height = flavor.height; + mediaSource.width = flavor.width; + mediaSource.bandwidth = flavor.bitrate * 1024; + mediaSource.label = flavor.label || flavor.language; + mediaSource.url = _playSourceUrlBuilder2.default.build({ + entryId: entryId, + flavorIds: flavor.id, + format: format, + ks: ks, + partnerId: partnerID, + uiConfId: uiConfId, + extension: 'mp4', + protocol: protocol + }); + sources.push(mediaSource); + } }); - //Add to map - DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap); } + return sources; } /** - * Get data from all loaders using multi request - * @function - * @returns {Promise} Promise + * @function _isProgressiveSource + * @param {KalturaPlaybackSource} source - The kaltura source + * @return {boolean} - Is progressive source + * @static + * @private */ }, { - key: 'fetchData', - value: function fetchData() { - var _this2 = this; + key: '_isProgressiveSource', + value: function _isProgressiveSource(source) { + var sourceFormat = SUPPORTED_FORMATS.get(source.format); + return !!sourceFormat && sourceFormat.name === 'mp4'; + } - return new Promise(function (resolve, reject) { - _this2._multiRequest.execute().then(function (response) { - _this2._multiResponse = response; - if (!response.success) { - reject(response); - } else { - var preparedData = _this2.prepareData(response); - if (preparedData.success) { - resolve(_this2._loaders); - } else { - reject({ success: false, data: preparedData.error }); - } - } - }, function (err) { - reject(err); + /** + * Ovp metadata parser + * @function _parseMetaData + * @param {KalturaMetadataListResponse} metadataList The metadata list + * @returns {Map} Parsed metadata + * @static + * @private + */ + + }, { + key: '_parseMetaData', + value: function _parseMetaData(metadataList) { + var metadata = {}; + if (metadataList && metadataList.metas && metadataList.metas.length > 0) { + metadataList.metas.forEach(function (meta) { + var metaXml = void 0; + var domParser = new DOMParser(); + meta.xml = meta.xml.replace(/\r?\n|\r/g, ""); + meta.xml = meta.xml.replace(/>\s*/g, '>'); + meta.xml = meta.xml.replace(/>\s*/g, '>'); + metaXml = domParser.parseFromString(meta.xml, 'text/xml'); + var metasObj = _xmlParser2.default.xmlToJson(metaXml); + var metaKeys = Object.keys(metasObj.metadata); + metaKeys.forEach(function (key) { + metadata[key] = metasObj.metadata[key]["#text"]; + }); }); - }); + } + return metadata; } + + /** + * Returns the base protocol + * @function _getBaseProtocol + * @returns {string} - The base protocol + * @static + * @private + */ + }, { - key: 'prepareData', - value: function prepareData(response) { - this._loaders.forEach(function (loader, name) { - var loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name); - try { - if (loaderDataIndexes != null) { - loader.response = response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1); - } - } catch (err) { - return { success: false, error: err }; - } - }); - return { success: true, data: this._loaders }; + key: '_getBaseProtocol', + value: function _getBaseProtocol() { + var splittedUrl = config.baseUrl.split("/"); + var baseProtocol = void 0; + if (splittedUrl && splittedUrl.length > 0) { + baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1); + } else { + baseProtocol = "http"; + } + return baseProtocol; } }]); - return DataLoaderManager; + return ProviderParser; }(); -DataLoaderManager._loadersResponseMap = new Map(); -exports.default = DataLoaderManager; +exports.default = ProviderParser; /***/ }), -/* 20 */ +/* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2426,123 +2671,89 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _requestBuilder = __webpack_require__(0); - -var _requestBuilder2 = _interopRequireDefault(_requestBuilder); - -var _baseEntryService = __webpack_require__(33); +var _enums = __webpack_require__(2); -var _baseEntryService2 = _interopRequireDefault(_baseEntryService); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var _metaDataService = __webpack_require__(34); +/** + * Ovp BE DrmPlaybackPluginData + * @classdesc + */ +var KalturaDrmPlaybackPluginData = -var _metaDataService2 = _interopRequireDefault(_metaDataService); +/** + * @constructor + * @param {Object} drm The json response + */ -var _config = __webpack_require__(1); +/** + * @member - The drm scheme + * @type {Scheme} + */ +function KalturaDrmPlaybackPluginData(drm) { + _classCallCheck(this, KalturaDrmPlaybackPluginData); -var _config2 = _interopRequireDefault(_config); + this.scheme = drm.scheme; + this.licenseURL = drm.licenseURL; +} -var _kalturaPlaybackContext = __webpack_require__(16); +/** + * @member - The license URL + * @type {string} + */ +; -var _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext); +exports.default = KalturaDrmPlaybackPluginData; -var _kalturaMetadataListResponse = __webpack_require__(15); +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { -var _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse); +"use strict"; -var _kalturaBaseEntryListResponse = __webpack_require__(28); -var _kalturaBaseEntryListResponse2 = _interopRequireDefault(_kalturaBaseEntryListResponse); +Object.defineProperty(exports, "__esModule", { + value: true +}); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +var _enums = __webpack_require__(2); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var config = _config2.default.get(); - /** - * Media entry loader + * Ovp BE Metadata * @classdesc */ +var KalturaMetadata = -var MediaEntryLoader = function () { - _createClass(MediaEntryLoader, null, [{ - key: 'name', - get: function get() { - return "media"; - } - }]); - - /** - * @constructor - * @param {Object} params loader params - */ - function MediaEntryLoader(params) { - _classCallCheck(this, MediaEntryLoader); - - this._response = {}; - - this.requests = this.buildRequests(params); - this._entryId = params.entryId; - } - - _createClass(MediaEntryLoader, [{ - key: 'buildRequests', - - - /** - * Builds loader requests - * @function - * @param {Object} params Requests parameters - * @returns {RequestBuilder} The request builder - * @static - */ - value: function buildRequests(params) { - var requests = []; - requests.push(_baseEntryService2.default.list(config.beUrl, params.ks, params.entryId)); - requests.push(_baseEntryService2.default.getPlaybackContext(config.beUrl, params.ks, params.entryId)); - requests.push(_metaDataService2.default.list(config.beUrl, params.ks, params.entryId)); - return requests; - } - - /** - * Loader validation function - * @function - * @returns {boolean} Is valid - */ - - }, { - key: 'isValid', - value: function isValid() { - return !!this._entryId; - } - }, { - key: 'requests', - set: function set(requests) { - this._requests = requests; - }, - get: function get() { - return this._requests; - } - }, { - key: 'response', - set: function set(response) { - var mediaEntryResponse = new _kalturaBaseEntryListResponse2.default(response[0].data); - this._response.entry = mediaEntryResponse.entries[0]; - this._response.playBackContextResult = new _kalturaPlaybackContext2.default(response[1].data); - this._response.metadataListResult = new _kalturaMetadataListResponse2.default(response[2].data); - }, - get: function get() { - return this._response; - } - }]); +/** + * @constructor + * @param {Object} data The response + */ +function KalturaMetadata(data) { + _classCallCheck(this, KalturaMetadata); - return MediaEntryLoader; -}(); + this.id = data.id; + this.metadataProfileId = data.metadataProfileId; + this.metadataProfileVersion = data.metadataProfileVersion; + this.metadataProfileId = data.metadataProfileId; + this.metadataObjectType = data.metadataObjectType; + this.objectId = data.objectId; + this.version = data.version; + this.created = new Date(0); + this.created.setUTCSeconds(data.createdAt); + this.updated = new Date(0); + this.updated.setUTCSeconds(data.updatedAt); + this.status = data.status; + this.xml = data.xml; +} +/** + * @member - The Metadata xml - represented as XML string + * @type {string} + */ +; -exports.default = MediaEntryLoader; +exports.default = KalturaMetadata; /***/ }), /* 21 */ @@ -2557,106 +2768,102 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _sessionService = __webpack_require__(35); - -var _sessionService2 = _interopRequireDefault(_sessionService); - var _config = __webpack_require__(1); var _config2 = _interopRequireDefault(_config); -var _requestBuilder = __webpack_require__(0); - -var _requestBuilder2 = _interopRequireDefault(_requestBuilder); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var config = _config2.default.get(); + /** - * Media entry loader + * Media source url builder * @classdesc */ -var SessionLoader = function () { - _createClass(SessionLoader, null, [{ - key: 'name', - get: function get() { - return "session"; - } +var PlaySourceUrlBuilder = function () { + function PlaySourceUrlBuilder() { + _classCallCheck(this, PlaySourceUrlBuilder); + } + + _createClass(PlaySourceUrlBuilder, null, [{ + key: "build", + /** - * @member - partner ID - * @type {number} - * @private + * Returns source url by given url params + * @function build + * @param {Object} urlParams The params + * @returns {string} The URL + * @static */ + value: function build(urlParams) { + var baseUrl = config.baseUrl; + var partnerId = urlParams.partnerId; + var entryId = urlParams.entryId; + var ks = urlParams.ks; + var uiConfId = urlParams.uiConfId; + var format = urlParams.format; + var protocol = urlParams.protocol; + var extension = urlParams.extension; + var flavorIds = urlParams.flavorIds; - }]); + if (baseUrl == "" && partnerId == "" && entryId == "" && extension == "" && format == "") { + return ""; + } - /** - * @constructor - * @param {Object} params loader params - */ - function SessionLoader(params) { - _classCallCheck(this, SessionLoader); + var playUrl = baseUrl; + if (!PlaySourceUrlBuilder.endsWith(baseUrl, "/")) { + playUrl += "/"; + } + playUrl += "p/" + partnerId + "/sp/" + partnerId + "00" + "/playManifest/entryId/" + entryId + "/protocol/" + protocol + "/format/" + format; - this._response = {}; + if (flavorIds != "") { + playUrl += "/flavorIds/" + flavorIds; + } else if (uiConfId != "") { + playUrl += "/uiConfId/" + uiConfId; + } - this.requests = this.buildRequests(params); - this._partnerId = params.partnerId; - } + if (this.ks != "") { + playUrl += "/ks/" + ks; + } - _createClass(SessionLoader, [{ - key: 'buildRequests', + playUrl += "/a." + extension; + if (uiConfId && flavorIds != "") { + playUrl += "?uiConfId=." + uiConfId; + } - /** - * Builds loader requests - * @function - * @param {Object} params Requests parameters - * @returns {RequestBuilder} The request builder - * @static - */ - value: function buildRequests(params) { - var requests = []; - requests.push(_sessionService2.default.anonymousSession(config.beUrl, params.partnerId)); - return requests; + return playUrl; } /** - * Loader validation function - * @function - * @returns {boolean} Is valid + * Checks if given string end with search string + * @param {string} string The given string + * @param {string} searchString The string to search + * @returns {boolean} Is given string end with search string */ }, { - key: 'isValid', - value: function isValid() { - return !!this._partnerId; - } - }, { - key: 'requests', - set: function set(requests) { - this._requests = requests; - }, - get: function get() { - return this._requests; - } - }, { - key: 'response', - set: function set(response) { - this._response.ks = response[0].data.ks; - }, - get: function get() { - return this._response.ks; + key: "endsWith", + value: function endsWith(string, searchString) { + if (typeof string !== 'string') { + return false; + } + if (typeof searchString !== 'string') { + return false; + } + + return string.indexOf(searchString, string.length - searchString.length) != -1; } }]); - return SessionLoader; + return PlaySourceUrlBuilder; }(); -exports.default = SessionLoader; +exports.default = PlaySourceUrlBuilder; /***/ }), /* 22 */ @@ -2671,110 +2878,63 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _uiConfService = __webpack_require__(37); - -var _uiConfService2 = _interopRequireDefault(_uiConfService); - -var _kalturaUiConfResponse = __webpack_require__(32); - -var _kalturaUiConfResponse2 = _interopRequireDefault(_kalturaUiConfResponse); - -var _config = __webpack_require__(1); - -var _config2 = _interopRequireDefault(_config); - -var _requestBuilder = __webpack_require__(0); - -var _requestBuilder2 = _interopRequireDefault(_requestBuilder); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var config = _config2.default.get(); - -var UiConfigLoader = function () { - _createClass(UiConfigLoader, null, [{ - key: 'name', - get: function get() { - return "uiConf"; - } - - /** - * @member - uiConf ID - * @type {number} - * @private - */ - - }]); - - /** - * @constructor - * @param {Object} params loader params - */ - function UiConfigLoader(params) { - _classCallCheck(this, UiConfigLoader); - - this._response = {}; - - this.requests = this.buildRequests(params); - this._uiConfId = params.uiConfId; +/** + * Xml parser + * @classdesc + */ +var XmlParser = function () { + function XmlParser() { + _classCallCheck(this, XmlParser); } - _createClass(UiConfigLoader, [{ - key: 'buildRequests', - + _createClass(XmlParser, null, [{ + key: "xmlToJson", /** - * Builds loader requests - * @function - * @param {Object} params Requests parameters - * @returns {RequestBuilder} The request builder + * Parses xml string to json object + * @param {string} xml The xml to parse + * @returns {{}} The parsed xml as Json object * @static */ - value: function buildRequests(params) { - var requests = []; - requests.push(_uiConfService2.default.get(config.beUrl, params.ks, params.uiConfId)); - return requests; - } - - /** - * Loader validation function - * @function - * @returns {boolean} Is valid - */ - - }, { - key: 'isValid', - value: function isValid() { - return !!this._uiConfId; - } - }, { - key: 'requests', - set: function set(requests) { - this._requests = requests; - }, - get: function get() { - return this._requests; - } - }, { - key: 'response', - set: function set(response) { - this._response.uiConf = new _kalturaUiConfResponse2.default(response[0].data); - }, - get: function get() { - if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null) try { - return JSON.parse(this._response.uiConf.config).plugins; - } catch (err) { - return null; - } else return null; + value: function xmlToJson(xml) { + var obj = {}; + if (xml.nodeType == 1) { + if (xml.attributes.length > 0) { + obj["@attributes"] = {}; + for (var j = 0; j < xml.attributes.length; j++) { + var attribute = xml.attributes.item(j); + obj["@attributes"][attribute.nodeName] = attribute.nodeValue; + } + } + } else if (xml.nodeType == 3) { + obj = xml.nodeValue; + } + if (xml.hasChildNodes()) { + for (var i = 0; i < xml.childNodes.length; i++) { + var item = xml.childNodes.item(i); + var nodeName = item.nodeName; + if (typeof obj[nodeName] == "undefined") { + obj[nodeName] = this.xmlToJson(item); + } else { + if (typeof obj[nodeName].push == "undefined") { + var old = obj[nodeName]; + obj[nodeName] = []; + obj[nodeName].push(old); + } + obj[nodeName].push(this.xmlToJson(item)); + } + } + } + return obj; } }]); - return UiConfigLoader; + return XmlParser; }(); -exports.default = UiConfigLoader; +exports.default = XmlParser; /***/ }), /* 23 */ @@ -2789,331 +2949,152 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _kalturaMediaEntry = __webpack_require__(14); - -var _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry); - -var _kalturaPlaybackContext = __webpack_require__(16); - -var _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext); - -var _kalturaPlaybackSource = __webpack_require__(17); - -var _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource); - -var _kalturaFlavorAsset = __webpack_require__(13); - -var _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset); - -var _kalturaMetadataListResponse = __webpack_require__(15); - -var _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse); - -var _playSourceUrlBuilder = __webpack_require__(26); +var _ovpService = __webpack_require__(4); -var _playSourceUrlBuilder2 = _interopRequireDefault(_playSourceUrlBuilder); - -var _xmlParser = __webpack_require__(38); - -var _xmlParser2 = _interopRequireDefault(_xmlParser); - -var _enums = __webpack_require__(2); - -var _logger = __webpack_require__(5); - -var _logger2 = _interopRequireDefault(_logger); - -var _config = __webpack_require__(1); - -var _config2 = _interopRequireDefault(_config); - -var _mediaFormat = __webpack_require__(11); - -var _mediaEntry = __webpack_require__(9); - -var _mediaEntry2 = _interopRequireDefault(_mediaEntry); - -var _drm = __webpack_require__(10); - -var _drm2 = _interopRequireDefault(_drm); - -var _mediaSource = __webpack_require__(12); - -var _mediaSource2 = _interopRequireDefault(_mediaSource); +var _ovpService2 = _interopRequireDefault(_ovpService); -var _mediaSources = __webpack_require__(7); +var _multiRequestBuilder = __webpack_require__(6); -var _mediaSources2 = _interopRequireDefault(_mediaSources); +var _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var config = _config2.default.get(); -/** - * @constant - */ -var logger = _logger2.default.get("OvpProvider"); - -/** - * @constant - * @type {Map} - */ -var SUPPORTED_FORMATS = new Map([["mpegdash", _mediaFormat.MediaFormat.dash], ["applehttp", _mediaFormat.MediaFormat.hls], ["url", _mediaFormat.MediaFormat.mp4]]); - /** - * Ovp provider parser + * Data loaders manager * @classdesc */ +var DataLoaderManager = function () { -var ProviderParser = function () { - function ProviderParser() { - _classCallCheck(this, ProviderParser); - } - - _createClass(ProviderParser, null, [{ - key: 'getMediaEntry', - - - /** - * Returns parsed media entry by given OVP response objects - * @function getMediaEntry - * @param {string} ks The ks - * @param {number} partnerID The partner ID - * @param {number} uiConfId The uiConf ID - * @param {any} mediaEntryResponse The media entry response - * @returns {MediaEntry} The media entry - * @static - * @public - */ - value: function getMediaEntry(ks, partnerID, uiConfId, mediaEntryResponse) { - var mediaEntry = new _mediaEntry2.default(); - var entry = mediaEntryResponse.entry; - var playbackContext = mediaEntryResponse.playBackContextResult; - var metadataList = mediaEntryResponse.metadataListResult; - var kalturaSources = playbackContext.sources; - var sources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext); - - mediaEntry.sources = sources; + /** + * @constructor + * @param {string} partnerID Then partner ID + * @param {string} ks The ks + */ - var metadata = this._parseMetaData(metadataList); - mediaEntry.metaData = metadata; - mediaEntry.id = entry.id; - mediaEntry.duration = entry.duration; + /** + * @member - Lodaers response map index + * @type {Map>} + * @private + * @static + */ + function DataLoaderManager(partnerID) { + var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; - var type = _enums.MediaEntryType.Unknown; + _classCallCheck(this, DataLoaderManager); - switch (entry.entryType) { - case _enums.MediaType.IMAGE.value: - type = _enums.MediaEntryType.Image; - break; - case _enums.MediaType.AUDIO.value: - type = _enums.MediaEntryType.Audio; - break; - default: - switch (entry.type) { - case _enums.EntryType.MEDIA_CLIP.value: - type = _enums.MediaEntryType.Vod; - break; - case _enums.EntryType.LIVE_STREAM.value: - case _enums.EntryType.LIVE_CHANNEL.value: - type = _enums.MediaEntryType.Live; - break; - default: - type = _enums.MediaEntryType.Unknown; - } - } - mediaEntry.type = type; + this._loaders = new Map(); - return mediaEntry; - } - }, { - key: '_getParsedSources', - value: function _getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext) { - var sources = new _mediaSources2.default(); + this._multiRequest = _ovpService2.default.getMultirequest(ks, partnerID); + } - var parseAdaptiveSources = function parseAdaptiveSources() { - kalturaSources.forEach(function (source) { - if (ProviderParser._isProgressiveSource(source) === false) { - var parsedSource = ProviderParser._parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext); - var sourceFormat = SUPPORTED_FORMATS.get(source.format); - sources.map(parsedSource, sourceFormat); - } - }); - }; + /** + * Add loader too execution loaders map + * @function + * @param {Function} loader Loader to add + * @param {Object} params Loader params + * @returns {void} + */ - var parseProgressiveSources = function parseProgressiveSources() { - var progressiveSource = kalturaSources.find(function (source) { - return ProviderParser._isProgressiveSource(source); - }); - sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry); - }; + /** + * @member - Loaders to execute + * @type {Map} + * @private + */ - if (kalturaSources && kalturaSources.length > 0) { - parseAdaptiveSources(); - parseProgressiveSources(); - } + /** + * @member - Loaders multi request + * @type {MultiRequestBuilder} + * @private + */ - return sources; - } - }, { - key: '_isProgressiveSource', - value: function _isProgressiveSource(source) { - var sourceFormat = SUPPORTED_FORMATS.get(source.format); - return sourceFormat && sourceFormat.name === 'mp4'; - } + /** + * @member - Loaders multi response + * @type {MultiRequestResult} + * @private + */ - /** - * - * @param {KalturaPlaybackSource} source The source - * @param {string} ks The ks - * @param {number} partnerID The partner ID - * @param {number} uiConfId The uiConf ID - * @param {KalturaMediaEntry} entry The entry - * @param {KalturaPlaybackContext} playbackContext The playback context - * @returns {MediaSource} The parsed media source - * @static - * @private - */ - }, { - key: '_parseAdaptiveSource', - value: function _parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext) { - var playUrl = ""; - var mediaFormat = SUPPORTED_FORMATS.get(source.format); - var mediaSource = new _mediaSource2.default(); - // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one. - if (source.hasFlavorIds()) { - var extension = ""; - if (!mediaFormat) { - var flavorIdsArr = source.flavorIds.split(","); - var flavors = playbackContext.flavorAssets.filter(function (flavor) { - return flavorIdsArr.indexOf(flavor.id) != -1; - }); - if (flavors && flavors.length > 0) { - extension = flavors[0].fileExt; - } - } else { - extension = mediaFormat.pathExt; - mediaSource.mimetype = mediaFormat.mimeType; - } + _createClass(DataLoaderManager, [{ + key: 'add', + value: function add(loader, params) { + var _this = this; - playUrl = _playSourceUrlBuilder2.default.build({ - entryId: entry.id, - flavorIds: source.flavorIds, - format: source.format, - ks: ks, - partnerId: partnerID, - uiConfId: uiConfId, - extension: extension, - protocol: source.getProtocol(this._getBaseProtocol()) + var execution_loader = new loader(params); + if (execution_loader.isValid()) { + this._loaders.set(loader.name, execution_loader); + //Get the start index from the multiReqeust before adding current execution_loader requests + var startIndex = this._multiRequest.requests.length; + //Get the requests + var requests = execution_loader.requests; + //Add requests to muktiRequest queue + requests.forEach(function (request) { + _this._multiRequest.add(request); }); - } else { - playUrl = source.url; - } - - if (playUrl == "") { - logger.error('failed to create play url from source, discarding source: (' + entry.id + '_' + source.deliveryProfileId + '), ' + source.format + '.'); - return mediaSource; - } - - mediaSource.url = playUrl; - mediaSource.id = entry.id + "_" + source.deliveryProfileId + "," + source.format; - if (source.hasDrmData()) { - var drmParams = []; - source.drm.forEach(function (drm) { - drmParams.push(new _drm2.default(drm.licenseURL, drm.scheme)); + //Create range array of current execution_loader requests + var executionLoaderResponseMap = Array.from(new Array(requests.length), function (val, index) { + return index + startIndex; }); - mediaSource.drmData = drmParams; + //Add to map + DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap); } - return mediaSource; } /** - * Ovp metadata parser - * @function _parseMetaData - * @param {KalturaMetadataListResponse} metadataList The metadata list - * @returns {Map} Parsed metadata - * @static - * @private - */ - - }, { - key: '_parseMetaData', - value: function _parseMetaData(metadataList) { - var metadata = {}; - if (metadataList && metadataList.metas && metadataList.metas.length > 0) { - metadataList.metas.forEach(function (meta) { - var metaXml = void 0; - var domParser = new DOMParser(); - meta.xml = meta.xml.replace(/\r?\n|\r/g, ""); - meta.xml = meta.xml.replace(/>\s*/g, '>'); - meta.xml = meta.xml.replace(/>\s*/g, '>'); - metaXml = domParser.parseFromString(meta.xml, 'text/xml'); - var metasObj = _xmlParser2.default.xmlToJson(metaXml); - var metaKeys = Object.keys(metasObj.metadata); - metaKeys.forEach(function (key) { - metadata[key] = metasObj.metadata[key]["#text"]; - }); - }); - } - return metadata; - } + * Get data from all loaders using multi request + * @function + * @returns {Promise} Promise + */ + }, { - key: '_parseProgressiveSources', - value: function _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entry) { - var sources = []; - if (kalturaSource) { - var protocol = kalturaSource.getProtocol(this._getBaseProtocol()); - var format = kalturaSource.format; - var sourceId = kalturaSource.deliveryProfileId + "," + kalturaSource.format; - flavorAssets.map(function (flavor) { - if (flavor.height && flavor.width) { - var mediaSource = new _mediaSource2.default(); - mediaSource.id = flavor.id + sourceId; - mediaSource.mimetype = 'video/mp4'; - mediaSource.height = flavor.height; - mediaSource.width = flavor.width; - mediaSource.bandwidth = flavor.bitrate * 1024; - mediaSource.label = flavor.label || flavor.language; - mediaSource.url = _playSourceUrlBuilder2.default.build({ - entryId: entry.id, - flavorIds: flavor.id, - format: format, - ks: ks, - partnerId: partnerID, - uiConfId: uiConfId, - extension: 'mp4', - protocol: protocol - }); - sources.push(mediaSource); + key: 'fetchData', + value: function fetchData() { + var _this2 = this; + + return new Promise(function (resolve, reject) { + _this2._multiRequest.execute().then(function (response) { + _this2._multiResponse = response; + if (!response.success) { + reject(response); + } else { + var preparedData = _this2.prepareData(response); + if (preparedData.success) { + resolve(_this2._loaders); + } else { + reject({ success: false, data: preparedData.error }); + } } + }, function (err) { + reject(err); }); - } - return sources; + }); } }, { - key: '_getBaseProtocol', - value: function _getBaseProtocol() { - var splittedUrl = config.baseUrl.split("/"); - var baseProtocol = void 0; - if (splittedUrl && splittedUrl.length > 0) { - baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1); - } else { - baseProtocol = "http"; - } - return baseProtocol; + key: 'prepareData', + value: function prepareData(response) { + this._loaders.forEach(function (loader, name) { + var loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name); + try { + if (loaderDataIndexes != null) { + loader.response = response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1); + } + } catch (err) { + return { success: false, error: err }; + } + }); + return { success: true, data: this._loaders }; } }]); - return ProviderParser; + return DataLoaderManager; }(); -exports.default = ProviderParser; +DataLoaderManager._loadersResponseMap = new Map(); +exports.default = DataLoaderManager; /***/ }), -/* 24 */, -/* 25 */ +/* 24 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3122,222 +3103,127 @@ exports.default = ProviderParser; Object.defineProperty(exports, "__esModule", { value: true }); -exports.OvpProvider = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _logger = __webpack_require__(5); - -var _logger2 = _interopRequireDefault(_logger); - -var _providerParser = __webpack_require__(23); - -var _providerParser2 = _interopRequireDefault(_providerParser); - -var _dataLoaderManager = __webpack_require__(19); - -var _dataLoaderManager2 = _interopRequireDefault(_dataLoaderManager); - -var _mediaEntryLoader = __webpack_require__(20); +var _requestBuilder = __webpack_require__(0); -var _mediaEntryLoader2 = _interopRequireDefault(_mediaEntryLoader); +var _requestBuilder2 = _interopRequireDefault(_requestBuilder); -var _sessionLoader = __webpack_require__(21); +var _baseEntryService = __webpack_require__(25); -var _sessionLoader2 = _interopRequireDefault(_sessionLoader); +var _baseEntryService2 = _interopRequireDefault(_baseEntryService); -var _uiConfigLoader = __webpack_require__(22); +var _metaDataService = __webpack_require__(26); -var _uiConfigLoader2 = _interopRequireDefault(_uiConfigLoader); +var _metaDataService2 = _interopRequireDefault(_metaDataService); var _config = __webpack_require__(1); var _config2 = _interopRequireDefault(_config); -var _mediaEntry = __webpack_require__(9); +var _kalturaPlaybackContext = __webpack_require__(27); -var _mediaEntry2 = _interopRequireDefault(_mediaEntry); +var _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext); -var _mediaSources = __webpack_require__(7); +var _kalturaMetadataListResponse = __webpack_require__(12); -var _mediaSources2 = _interopRequireDefault(_mediaSources); +var _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse); + +var _kalturaBaseEntryListResponse = __webpack_require__(30); + +var _kalturaBaseEntryListResponse2 = _interopRequireDefault(_kalturaBaseEntryListResponse); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -/** - * @constant - */ -var logger = _logger2.default.get("OvpProvider"); +var config = _config2.default.get(); /** - * Ovp provider + * Media entry loader * @classdesc */ -var OvpProvider = exports.OvpProvider = function () { - /** - * @constructor - * @param {number} partnerID The partner ID - * @param {string} [ks=""] The provider ks (has empty string as default value) - * @param {Object} [config] The provider config(optional) - */ - - /** - * @member - uiConf ID - * @type {number} - * @private - */ +var MediaEntryLoader = function () { + _createClass(MediaEntryLoader, null, [{ + key: 'name', + get: function get() { + return "media"; + } + }]); /** - * @member - partner ID - * @type {number} + * @constructor + * @param {Object} params loader params */ - function OvpProvider(partnerID) { - var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ""; - var config = arguments[2]; + function MediaEntryLoader(params) { + _classCallCheck(this, MediaEntryLoader); - _classCallCheck(this, OvpProvider); + this._response = {}; - this.partnerID = partnerID; - this.ks = ks; - this._isAnonymous = !this.ks; - _config2.default.set(config); + this.requests = this.buildRequests(params); + this._entryId = params.entryId; } - /** - * Returns player json configuration - * @function getConfig - * @param {string} entryId The entry ID - * @param {number} uiConfId The uiConf ID - * @returns {Promise} The provider config object as promise - */ - - /** - * @member - Data loader - * @type {DataLoaderManager} - * @private - */ - - /** - * @member - is anonymous - * @type {boolean} - * @private - */ - - /** - * @member - ks - * @type {string} - */ - - - _createClass(OvpProvider, [{ - key: 'getConfig', - value: function getConfig(entryId, uiConfId) { - var _this = this; + _createClass(MediaEntryLoader, [{ + key: 'buildRequests', - if (uiConfId != null) { - this._uiConfId = uiConfId; - } - this._dataLoader = new _dataLoaderManager2.default(this.partnerID, this.ks); - return new Promise(function (resolve, reject) { - if (_this.validateParams(entryId, uiConfId)) { - var ks = _this.ks; - if (_this._isAnonymous) { - ks = "{1:result:ks}"; - _this._dataLoader.add(_sessionLoader2.default, { partnerId: _this.partnerID }); - } - _this._dataLoader.add(_mediaEntryLoader2.default, { entryId: entryId, ks: ks }); - _this._dataLoader.add(_uiConfigLoader2.default, { uiConfId: uiConfId, ks: ks }); - _this._dataLoader.fetchData().then(function (response) { - resolve(_this.parseDataFromResponse(response)); - }, function (err) { - reject(err); - }); - } else { - reject({ success: false, data: "Missing mandatory parameter" }); - } - }); - } /** - * Parses BE data to json configuration object - * @function parseDataFromResponse - * @param {Map} data The data to parse - * @returns {Object} The parsed config object - */ - - }, { - key: 'parseDataFromResponse', - value: function parseDataFromResponse(data) { - logger.debug("Data parsing started"); - var config = { - id: "", - session: { - partnerID: this.partnerID, - uiConfID: this._uiConfId - }, - sources: new _mediaSources2.default(), - duration: 0, - type: "Unknown", - metadata: {}, - plugins: {} - }; - if (data != null) { - if (data.has(_sessionLoader2.default.name)) { - var sessionLoader = data.get(_sessionLoader2.default.name); - if (sessionLoader != null && sessionLoader.response != null) { - this.ks = sessionLoader.response; - this._isAnonymous = !this.ks; - config.session.ks = this.ks; - } - } - if (data.has(_uiConfigLoader2.default.name)) { - var uiConfLoader = data.get(_uiConfigLoader2.default.name); - var pluginsJson = {}; - if (uiConfLoader != null) { - pluginsJson = uiConfLoader.response; - } - config.plugins = pluginsJson; - } - if (data.has(_mediaEntryLoader2.default.name)) { - var mediaLoader = data.get(_mediaEntryLoader2.default.name); - if (mediaLoader != null && mediaLoader.response != null) { - var mediaEntry = _providerParser2.default.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response); - config.id = mediaEntry.id; - config.sources = mediaEntry.sources; - config.duration = mediaEntry.duration; - config.type = mediaEntry.type.name; - config.metadata = mediaEntry.metaData; - } - } - } - logger.debug("Data parsing finished", config); - return config; + * Builds loader requests + * @function + * @param {Object} params Requests parameters + * @returns {RequestBuilder} The request builder + * @static + */ + value: function buildRequests(params) { + var requests = []; + requests.push(_baseEntryService2.default.list(config.beUrl, params.ks, params.entryId)); + requests.push(_baseEntryService2.default.getPlaybackContext(config.beUrl, params.ks, params.entryId)); + requests.push(_metaDataService2.default.list(config.beUrl, params.ks, params.entryId)); + return requests; } /** - * Parameters validation function - * @param {string} entryId The entry ID - * @param {number} uiConfId The uiConfID - * @returns {boolean} Is valid params + * Loader validation function + * @function + * @returns {boolean} Is valid */ }, { - key: 'validateParams', - value: function validateParams(entryId, uiConfId) { - return !!entryId || !!uiConfId; + key: 'isValid', + value: function isValid() { + return !!this._entryId; + } + }, { + key: 'requests', + set: function set(requests) { + this._requests = requests; + }, + get: function get() { + return this._requests; + } + }, { + key: 'response', + set: function set(response) { + var mediaEntryResponse = new _kalturaBaseEntryListResponse2.default(response[0].data); + this._response.entry = mediaEntryResponse.entries[0]; + this._response.playBackContextResult = new _kalturaPlaybackContext2.default(response[1].data); + this._response.metadataListResult = new _kalturaMetadataListResponse2.default(response[2].data); + }, + get: function get() { + return this._response; } }]); - return OvpProvider; + return MediaEntryLoader; }(); -exports.default = OvpProvider; +exports.default = MediaEntryLoader; /***/ }), -/* 26 */ +/* 25 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3349,102 +3235,188 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _config = __webpack_require__(1); +var _ovpService = __webpack_require__(4); -var _config2 = _interopRequireDefault(_config); +var _ovpService2 = _interopRequireDefault(_ovpService); + +var _requestBuilder = __webpack_require__(0); + +var _requestBuilder2 = _interopRequireDefault(_requestBuilder); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var config = _config2.default.get(); +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var SERVICE_NAME = "baseEntry"; /** - * Media source url builder + * Ovp BaseEntry service methods * @classdesc */ -var PlaySourceUrlBuilder = function () { - function PlaySourceUrlBuilder() { - _classCallCheck(this, PlaySourceUrlBuilder); +var BaseEntryService = function (_OvpService) { + _inherits(BaseEntryService, _OvpService); + + function BaseEntryService() { + _classCallCheck(this, BaseEntryService); + + return _possibleConstructorReturn(this, (BaseEntryService.__proto__ || Object.getPrototypeOf(BaseEntryService)).apply(this, arguments)); } - _createClass(PlaySourceUrlBuilder, null, [{ - key: "build", + _createClass(BaseEntryService, null, [{ + key: 'getPlaybackContext', /** - * Returns source url by given url params - * @function build - * @param {Object} urlParams The params - * @returns {string} The URL + * Creates an instance of RequestBuilder for baseentry.getPlaybackContext + * @function getPlaybackContext + * @param {string} baseUrl The service base URL + * @param {string} ks The ks + * @param {string} entryId The entry ID + * @returns {RequestBuilder} The request builder * @static */ - value: function build(urlParams) { - var baseUrl = config.baseUrl; - var partnerId = urlParams.partnerId; - var entryId = urlParams.entryId; - var ks = urlParams.ks; - var uiConfId = urlParams.uiConfId; - var format = urlParams.format; - var protocol = urlParams.protocol; - var extension = urlParams.extension; - var flavorIds = urlParams.flavorIds; + value: function getPlaybackContext(baseUrl, ks, entryId) { + var request = new _requestBuilder2.default(); + request.service = SERVICE_NAME; + request.action = "getPlaybackContext"; + request.method = "POST"; + request.baseUrl = baseUrl; + request.tag = "baseEntry-getPlaybackContext"; + var contextDataParams = { objectType: "KalturaContextDataParams", flavorTags: "all" }; + var params = { entryId: entryId, ks: ks, contextDataParams: contextDataParams }; + request.params = params; + return request; + } - if (baseUrl == "" && partnerId == "" && entryId == "" && extension == "" && format == "") { - return ""; - } + /** + * Creates an instance of RequestBuilder for baseentry.list + * @function list + * @param {string} baseUrl The base URL + * @param {string} ks The ks + * @param {string} entryId The entry ID + * @returns {RequestBuilder} The request builder + * @static + */ - var playUrl = baseUrl; - if (!PlaySourceUrlBuilder.endsWith(baseUrl, "/")) { - playUrl += "/"; - } - playUrl += "p/" + partnerId + "/sp/" + partnerId + "00" + "/playManifest/entryId/" + entryId + "/protocol/" + protocol + "/format/" + format; + }, { + key: 'list', + value: function list(baseUrl, ks, entryId) { + var request = new _requestBuilder2.default(); + request.service = SERVICE_NAME; + request.action = "list"; + request.method = "POST"; + request.baseUrl = baseUrl; + request.tag = "list"; + request.params = BaseEntryService.getEntryListReqParams(entryId, ks); + return request; + } - if (flavorIds != "") { - playUrl += "/flavorIds/" + flavorIds; - } else if (uiConfId != "") { - playUrl += "/uiConfId/" + uiConfId; - } + /** + * Gets baseentry.list service params + * @function getEntryListReqParams + * @param {string} entryId The entry ID + * @param {string} ks The ks + * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object + * @static + */ - if (this.ks != "") { - playUrl += "/ks/" + ks; - } + }, { + key: 'getEntryListReqParams', + value: function getEntryListReqParams(entryId, ks) { + var filterParams = { redirectFromEntryId: entryId }; + var responseProfileParams = { + fields: "id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags", + type: 1 + }; + return { ks: ks, filter: filterParams, responseProfile: responseProfileParams }; + } + }]); - playUrl += "/a." + extension; + return BaseEntryService; +}(_ovpService2.default); - if (uiConfId && flavorIds != "") { - playUrl += "?uiConfId=." + uiConfId; - } +exports.default = BaseEntryService; - return playUrl; - } +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { - /** - * Checks if given string end with search string - * @param {string} string The given string - * @param {string} searchString The string to search - * @returns {boolean} Is given string end with search string - */ +"use strict"; - }, { - key: "endsWith", - value: function endsWith(string, searchString) { - if (typeof string !== 'string') { - return false; - } - if (typeof searchString !== 'string') { - return false; - } - return string.indexOf(searchString, string.length - searchString.length) != -1; +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _ovpService = __webpack_require__(4); + +var _ovpService2 = _interopRequireDefault(_ovpService); + +var _requestBuilder = __webpack_require__(0); + +var _requestBuilder2 = _interopRequireDefault(_requestBuilder); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var SERVICE_NAME = "metadata_metadata"; + +/** + * Ovp metadata_metadata service methods + * @classdesc + */ + +var MetaDataService = function (_OvpService) { + _inherits(MetaDataService, _OvpService); + + function MetaDataService() { + _classCallCheck(this, MetaDataService); + + return _possibleConstructorReturn(this, (MetaDataService.__proto__ || Object.getPrototypeOf(MetaDataService)).apply(this, arguments)); + } + + _createClass(MetaDataService, null, [{ + key: 'list', + + /** + * Creates an instance of RequestBuilder for metadata_metadata.list + * @function getPlaybackContext + * @param {string} baseUrl The service base URL + * @param {string} ks The ks + * @param {string} entryId The entry ID + * @returns {RequestBuilder} The request builder + * @static + */ + value: function list(baseUrl, ks, entryId) { + var request = new _requestBuilder2.default(); + request.service = SERVICE_NAME; + request.action = "list"; + request.method = "POST"; + request.baseUrl = baseUrl; + request.tag = "metadata_metadata-list"; + var filter = { objectType: "KalturaMetadataFilter", objectIdEqual: entryId, metadataObjectTypeEqual: "1" }; + var params = { filter: filter, ks: ks }; + request.params = params; + return request; } }]); - return PlaySourceUrlBuilder; -}(); + return MetaDataService; +}(_ovpService2.default); -exports.default = PlaySourceUrlBuilder; +exports.default = MetaDataService; /***/ }), /* 27 */ @@ -3457,55 +3429,25 @@ Object.defineProperty(exports, "__esModule", { value: true }); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/** - * Ovp BE access control message - * @classdesc - */ -var KalturaAccessControlMessage = - -/** - * @constructor - * @param {Object} data The json response - */ - -/** - * @member - The access control message - * @type {string} - */ -function KalturaAccessControlMessage(data) { - _classCallCheck(this, KalturaAccessControlMessage); - - this.message = data.message; - this.code = data.code; -} -/** - * @member - The access control message code - * @@type {string} - */ -; +var _baseServiceResult = __webpack_require__(3); -exports.default = KalturaAccessControlMessage; +var _baseServiceResult2 = _interopRequireDefault(_baseServiceResult); -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { +var _kalturaAccessControlMessage = __webpack_require__(28); -"use strict"; +var _kalturaAccessControlMessage2 = _interopRequireDefault(_kalturaAccessControlMessage); +var _kalturaPlaybackSource = __webpack_require__(9); -Object.defineProperty(exports, "__esModule", { - value: true -}); +var _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource); -var _baseServiceResult = __webpack_require__(4); +var _kalturaRuleAction = __webpack_require__(29); -var _baseServiceResult2 = _interopRequireDefault(_baseServiceResult); +var _kalturaRuleAction2 = _interopRequireDefault(_kalturaRuleAction); -var _kalturaMediaEntry = __webpack_require__(14); +var _kalturaFlavorAsset = __webpack_require__(11); -var _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry); +var _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -3516,50 +3458,87 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** - * Ovp BE BaseEntryList service response + * Ovp BE playback context response * @classdesc */ -var KalturaBaseEntryListResponse = function (_ServiceResult) { - _inherits(KalturaBaseEntryListResponse, _ServiceResult); +var KalturaPlaybackContext = function (_ServiceResult) { + _inherits(KalturaPlaybackContext, _ServiceResult); /** * @constructor - * @param {Object} responseObj The json response + * @param {Object} response The response */ /** - * @member - The total count - * @type {number} + * @member - Array of actions as received from the rules that invalidated + * @type {Array} */ - function KalturaBaseEntryListResponse(responseObj) { - _classCallCheck(this, KalturaBaseEntryListResponse); - var _this = _possibleConstructorReturn(this, (KalturaBaseEntryListResponse.__proto__ || Object.getPrototypeOf(KalturaBaseEntryListResponse)).call(this, responseObj)); + /** + * @member - The playback sources + * @type {Array} + */ + function KalturaPlaybackContext(response) { + _classCallCheck(this, KalturaPlaybackContext); + + var _this = _possibleConstructorReturn(this, (KalturaPlaybackContext.__proto__ || Object.getPrototypeOf(KalturaPlaybackContext)).call(this, response)); + + _this.sources = []; + _this.actions = []; + _this.messages = []; + _this.flavorAssets = []; if (!_this.hasError) { - _this.totalCount = responseObj.totalCount; - if (_this.totalCount > 0) { - _this.entries = []; - responseObj.objects.map(function (entry) { - return _this.entries.push(new _kalturaMediaEntry2.default(entry)); + + var messages = response.messages; + if (messages) { + messages.map(function (message) { + return _this.messages.push(new _kalturaAccessControlMessage2.default(message)); + }); + } + + var actions = response.actions; + if (actions) { + actions.map(function (action) { + return _this.actions.push(new _kalturaRuleAction2.default(action)); + }); + } + + var sources = response.sources; + if (sources) { + sources.map(function (source) { + return _this.sources.push(new _kalturaPlaybackSource2.default(source)); + }); + } + + var flavorAssets = response.flavorAssets; + if (flavorAssets) { + flavorAssets.map(function (flavor) { + return _this.flavorAssets.push(new _kalturaFlavorAsset2.default(flavor)); }); } } + return _this; } /** - * @member - The entries - * @type {Array} + * @member - The flavor assets + * @type {Array} + */ + + /** + * @member - Array of actions as received from the rules that invalidated + * @type {Array} */ - return KalturaBaseEntryListResponse; + return KalturaPlaybackContext; }(_baseServiceResult2.default); -exports.default = KalturaBaseEntryListResponse; +exports.default = KalturaPlaybackContext; /***/ }), -/* 29 */ +/* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3569,92 +3548,39 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _enums = __webpack_require__(2); - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** - * Ovp BE DrmPlaybackPluginData + * Ovp BE access control message * @classdesc */ -var KalturaDrmPlaybackPluginData = +var KalturaAccessControlMessage = /** * @constructor - * @param {Object} drm The json response - */ - -/** - * @member - The drm scheme - * @type {Scheme} + * @param {Object} data The json response */ -function KalturaDrmPlaybackPluginData(drm) { - _classCallCheck(this, KalturaDrmPlaybackPluginData); - - this.scheme = drm.scheme; - this.licenseURL = drm.licenseURL; -} /** - * @member - The license URL + * @member - The access control message * @type {string} */ -; - -exports.default = KalturaDrmPlaybackPluginData; - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _enums = __webpack_require__(2); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -/** - * Ovp BE Metadata - * @classdesc - */ -var KalturaMetadata = - -/** - * @constructor - * @param {Object} data The response - */ -function KalturaMetadata(data) { - _classCallCheck(this, KalturaMetadata); +function KalturaAccessControlMessage(data) { + _classCallCheck(this, KalturaAccessControlMessage); - this.id = data.id; - this.metadataProfileId = data.metadataProfileId; - this.metadataProfileVersion = data.metadataProfileVersion; - this.metadataProfileId = data.metadataProfileId; - this.metadataObjectType = data.metadataObjectType; - this.objectId = data.objectId; - this.version = data.version; - this.created = new Date(0); - this.created.setUTCSeconds(data.createdAt); - this.updated = new Date(0); - this.updated.setUTCSeconds(data.updatedAt); - this.status = data.status; - this.xml = data.xml; + this.message = data.message; + this.code = data.code; } /** - * @member - The Metadata xml - represented as XML string - * @type {string} + * @member - The access control message code + * @@type {string} */ ; -exports.default = KalturaMetadata; +exports.default = KalturaAccessControlMessage; /***/ }), -/* 31 */ +/* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3692,7 +3618,7 @@ function KalturaRuleAction(data) { exports.default = KalturaRuleAction; /***/ }), -/* 32 */ +/* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3702,11 +3628,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _baseServiceResult = __webpack_require__(4); +var _baseServiceResult = __webpack_require__(3); var _baseServiceResult2 = _interopRequireDefault(_baseServiceResult); -var _enums = __webpack_require__(2); +var _kalturaMediaEntry = __webpack_require__(31); + +var _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -3717,73 +3645,50 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** - * Ovp BE Ui config response + * Ovp BE BaseEntryList service response * @classdesc */ -var KalturaUiConfResponse = function (_ServiceResult) { - _inherits(KalturaUiConfResponse, _ServiceResult); - - /** - * @constructor - * @param {Object} data The json response - */ - - /** - * @member -plugins configuration represented as Json string - * @type {string} - */ +var KalturaBaseEntryListResponse = function (_ServiceResult) { + _inherits(KalturaBaseEntryListResponse, _ServiceResult); /** - * @member -Name of the uiConf, this is not a primary key - * @type {string} - */ - function KalturaUiConfResponse(data) { - _classCallCheck(this, KalturaUiConfResponse); - - var _this = _possibleConstructorReturn(this, (KalturaUiConfResponse.__proto__ || Object.getPrototypeOf(KalturaUiConfResponse)).call(this, data)); - - if (!_this.hasError) { - _this.name = data.name; - - _this.description = data.description; - _this.objTypeAsString = data.objTypeAsString; - _this.width = data.width; - _this.height = data.height; - _this.htmlParams = data.htmlParams; - _this.swfUrl = data.swfUrl; - _this.confFilePath = data.confFilePath; - _this.confFile = data.confFile; - _this.confFileFeatures = data.confFileFeatures; - _this.config = data.config; - _this.confVars = data.confVars; - _this.useCdn = data.useCdn; - _this.tags = data.tags; - _this.swfUrlVersion = data.swfUrlVersion; - _this.created = new Date(0); - _this.created.setUTCSeconds(data.createdAt); - _this.updated = new Date(0); - _this.updated.setUTCSeconds(data.updatedAt); - _this.html5Url = data.description; - _this.version = data.description; - _this.partnerTags = data.description; - _this.objType = data.description; - _this.creationMode = data.description; + * @constructor + * @param {Object} responseObj The json response + */ + + /** + * @member - The total count + * @type {number} + */ + function KalturaBaseEntryListResponse(responseObj) { + _classCallCheck(this, KalturaBaseEntryListResponse); + + var _this = _possibleConstructorReturn(this, (KalturaBaseEntryListResponse.__proto__ || Object.getPrototypeOf(KalturaBaseEntryListResponse)).call(this, responseObj)); + + if (!_this.hasError) { + _this.totalCount = responseObj.totalCount; + if (_this.totalCount > 0) { + _this.entries = []; + responseObj.objects.map(function (entry) { + return _this.entries.push(new _kalturaMediaEntry2.default(entry)); + }); + } } return _this; } /** - * @member -Name of the uiConf, this is not a primary key - * @type {string} + * @member - The entries + * @type {Array} */ - return KalturaUiConfResponse; + return KalturaBaseEntryListResponse; }(_baseServiceResult2.default); -exports.default = KalturaUiConfResponse; +exports.default = KalturaBaseEntryListResponse; /***/ }), -/* 33 */ +/* 31 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3793,117 +3698,71 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _ovpService = __webpack_require__(3); - -var _ovpService2 = _interopRequireDefault(_ovpService); - -var _requestBuilder = __webpack_require__(0); - -var _requestBuilder2 = _interopRequireDefault(_requestBuilder); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +var _enums = __webpack_require__(2); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var SERVICE_NAME = "baseEntry"; - /** - * Ovp BaseEntry service methods + * Ovp BE MediaEntry * @classdesc */ +var KalturaMediaEntry = -var BaseEntryService = function (_OvpService) { - _inherits(BaseEntryService, _OvpService); - - function BaseEntryService() { - _classCallCheck(this, BaseEntryService); - - return _possibleConstructorReturn(this, (BaseEntryService.__proto__ || Object.getPrototypeOf(BaseEntryService)).apply(this, arguments)); - } - - _createClass(BaseEntryService, null, [{ - key: 'getPlaybackContext', +/** + * @constructor + * @param {Object} entry The json response + */ +/** + * @member - The type of the entry, this is auto filled by the derived entry object + * @type {EntryType} + */ - /** - * Creates an instance of RequestBuilder for baseentry.getPlaybackContext - * @function getPlaybackContext - * @param {string} baseUrl The service base URL - * @param {string} ks The ks - * @param {string} entryId The entry ID - * @returns {RequestBuilder} The request builder - * @static - */ - value: function getPlaybackContext(baseUrl, ks, entryId) { - var request = new _requestBuilder2.default(); - request.service = SERVICE_NAME; - request.action = "getPlaybackContext"; - request.method = "POST"; - request.baseUrl = baseUrl; - request.tag = "baseEntry-getPlaybackContext"; - var contextDataParams = { objectType: "KalturaContextDataParams", flavorTags: "all" }; - var params = { entryId: entryId, ks: ks, contextDataParams: contextDataParams }; - request.params = params; - return request; - } +/** + * @member - Comma separated flavor params ids that exists for this media entry + * @type {string} + */ - /** - * Creates an instance of RequestBuilder for baseentry.list - * @function list - * @param {string} baseUrl The base URL - * @param {string} ks The ks - * @param {string} entryId The entry ID - * @returns {RequestBuilder} The request builder - * @static - */ +/** + * @member - Entry name (Min 1 chars) + * @type {string} + */ +function KalturaMediaEntry(entry) { + _classCallCheck(this, KalturaMediaEntry); - }, { - key: 'list', - value: function list(baseUrl, ks, entryId) { - var request = new _requestBuilder2.default(); - request.service = SERVICE_NAME; - request.action = "list"; - request.method = "POST"; - request.baseUrl = baseUrl; - request.tag = "list"; - request.params = BaseEntryService.getEntryListReqParams(entryId, ks); - return request; - } + this.id = entry.id; + this.name = entry.name; + this.dataUrl = entry.dataUrl; + this.type = entry.type; + this.entryType = entry.mediaType; + this.flavorParamsIds = entry.flavorParamsIds; + this.duration = entry.duration; +} +/** + * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.) + * @type {MediaType} + */ - /** - * Gets baseentry.list service params - * @function getEntryListReqParams - * @param {string} entryId The entry ID - * @param {string} ks The ks - * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object - * @static - */ +/** + * @member - The entry duration + * @type {number} + */ - }, { - key: 'getEntryListReqParams', - value: function getEntryListReqParams(entryId, ks) { - var filterParams = { redirectFromEntryId: entryId }; - var responseProfileParams = { - fields: "id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags", - type: 1 - }; - return { ks: ks, filter: filterParams, responseProfile: responseProfileParams }; - } - }]); +/** + * @member - The URL used for playback. This is not the download URL. + * @type {string} + */ - return BaseEntryService; -}(_ovpService2.default); +/** + * @member - The entry id + * @type {string} + */ +; -exports.default = BaseEntryService; +exports.default = KalturaMediaEntry; /***/ }), -/* 34 */ +/* 32 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3915,9 +3774,13 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _ovpService = __webpack_require__(3); +var _sessionService = __webpack_require__(33); -var _ovpService2 = _interopRequireDefault(_ovpService); +var _sessionService2 = _interopRequireDefault(_sessionService); + +var _config = __webpack_require__(1); + +var _config2 = _interopRequireDefault(_config); var _requestBuilder = __webpack_require__(0); @@ -3927,59 +3790,93 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - -var SERVICE_NAME = "metadata_metadata"; - +var config = _config2.default.get(); /** - * Ovp metadata_metadata service methods + * Media entry loader * @classdesc */ -var MetaDataService = function (_OvpService) { - _inherits(MetaDataService, _OvpService); +var SessionLoader = function () { + _createClass(SessionLoader, null, [{ + key: 'name', + get: function get() { + return "session"; + } - function MetaDataService() { - _classCallCheck(this, MetaDataService); + /** + * @member - partner ID + * @type {number} + * @private + */ - return _possibleConstructorReturn(this, (MetaDataService.__proto__ || Object.getPrototypeOf(MetaDataService)).apply(this, arguments)); + }]); + + /** + * @constructor + * @param {Object} params loader params + */ + function SessionLoader(params) { + _classCallCheck(this, SessionLoader); + + this._response = {}; + + this.requests = this.buildRequests(params); + this._partnerId = params.partnerId; } - _createClass(MetaDataService, null, [{ - key: 'list', + _createClass(SessionLoader, [{ + key: 'buildRequests', + /** - * Creates an instance of RequestBuilder for metadata_metadata.list - * @function getPlaybackContext - * @param {string} baseUrl The service base URL - * @param {string} ks The ks - * @param {string} entryId The entry ID + * Builds loader requests + * @function + * @param {Object} params Requests parameters * @returns {RequestBuilder} The request builder * @static */ - value: function list(baseUrl, ks, entryId) { - var request = new _requestBuilder2.default(); - request.service = SERVICE_NAME; - request.action = "list"; - request.method = "POST"; - request.baseUrl = baseUrl; - request.tag = "metadata_metadata-list"; - var filter = { objectType: "KalturaMetadataFilter", objectIdEqual: entryId, metadataObjectTypeEqual: "1" }; - var params = { filter: filter, ks: ks }; - request.params = params; - return request; + value: function buildRequests(params) { + var requests = []; + requests.push(_sessionService2.default.anonymousSession(config.beUrl, params.partnerId)); + return requests; + } + + /** + * Loader validation function + * @function + * @returns {boolean} Is valid + */ + + }, { + key: 'isValid', + value: function isValid() { + return !!this._partnerId; + } + }, { + key: 'requests', + set: function set(requests) { + this._requests = requests; + }, + get: function get() { + return this._requests; + } + }, { + key: 'response', + set: function set(response) { + this._response.ks = response[0].data.ks; + }, + get: function get() { + return this._response.ks; } }]); - return MetaDataService; -}(_ovpService2.default); + return SessionLoader; +}(); -exports.default = MetaDataService; +exports.default = SessionLoader; /***/ }), -/* 35 */ +/* 33 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3991,7 +3888,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _ovpService = __webpack_require__(3); +var _ovpService = __webpack_require__(4); var _ovpService2 = _interopRequireDefault(_ovpService); @@ -4052,8 +3949,125 @@ var SessionService = function (_OvpService) { exports.default = SessionService; /***/ }), -/* 36 */, -/* 37 */ +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _uiConfService = __webpack_require__(35); + +var _uiConfService2 = _interopRequireDefault(_uiConfService); + +var _kalturaUiConfResponse = __webpack_require__(36); + +var _kalturaUiConfResponse2 = _interopRequireDefault(_kalturaUiConfResponse); + +var _config = __webpack_require__(1); + +var _config2 = _interopRequireDefault(_config); + +var _requestBuilder = __webpack_require__(0); + +var _requestBuilder2 = _interopRequireDefault(_requestBuilder); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var config = _config2.default.get(); + +var UiConfigLoader = function () { + _createClass(UiConfigLoader, null, [{ + key: 'name', + get: function get() { + return "uiConf"; + } + + /** + * @member - uiConf ID + * @type {number} + * @private + */ + + }]); + + /** + * @constructor + * @param {Object} params loader params + */ + function UiConfigLoader(params) { + _classCallCheck(this, UiConfigLoader); + + this._response = {}; + + this.requests = this.buildRequests(params); + this._uiConfId = params.uiConfId; + } + + _createClass(UiConfigLoader, [{ + key: 'buildRequests', + + + /** + * Builds loader requests + * @function + * @param {Object} params Requests parameters + * @returns {RequestBuilder} The request builder + * @static + */ + value: function buildRequests(params) { + var requests = []; + requests.push(_uiConfService2.default.get(config.beUrl, params.ks, params.uiConfId)); + return requests; + } + + /** + * Loader validation function + * @function + * @returns {boolean} Is valid + */ + + }, { + key: 'isValid', + value: function isValid() { + return !!this._uiConfId; + } + }, { + key: 'requests', + set: function set(requests) { + this._requests = requests; + }, + get: function get() { + return this._requests; + } + }, { + key: 'response', + set: function set(response) { + this._response.uiConf = new _kalturaUiConfResponse2.default(response[0].data); + }, + get: function get() { + if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null) try { + return JSON.parse(this._response.uiConf.config).plugins; + } catch (err) { + return null; + } else return null; + } + }]); + + return UiConfigLoader; +}(); + +exports.default = UiConfigLoader; + +/***/ }), +/* 35 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4065,7 +4079,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _ovpService = __webpack_require__(3); +var _ovpService = __webpack_require__(4); var _ovpService2 = _interopRequireDefault(_ovpService); @@ -4131,7 +4145,7 @@ var UiConfService = function (_OvpService) { exports.default = UiConfService; /***/ }), -/* 38 */ +/* 36 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4141,65 +4155,85 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); +var _baseServiceResult = __webpack_require__(3); + +var _baseServiceResult2 = _interopRequireDefault(_baseServiceResult); + +var _enums = __webpack_require__(2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + /** - * Xml parser + * Ovp BE Ui config response * @classdesc */ -var XmlParser = function () { - function XmlParser() { - _classCallCheck(this, XmlParser); - } +var KalturaUiConfResponse = function (_ServiceResult) { + _inherits(KalturaUiConfResponse, _ServiceResult); - _createClass(XmlParser, null, [{ - key: "xmlToJson", + /** + * @constructor + * @param {Object} data The json response + */ - /** - * Parses xml string to json object - * @param {string} xml The xml to parse - * @returns {{}} The parsed xml as Json object - * @static - */ - value: function xmlToJson(xml) { - var obj = {}; - if (xml.nodeType == 1) { - if (xml.attributes.length > 0) { - obj["@attributes"] = {}; - for (var j = 0; j < xml.attributes.length; j++) { - var attribute = xml.attributes.item(j); - obj["@attributes"][attribute.nodeName] = attribute.nodeValue; - } - } - } else if (xml.nodeType == 3) { - obj = xml.nodeValue; - } - if (xml.hasChildNodes()) { - for (var i = 0; i < xml.childNodes.length; i++) { - var item = xml.childNodes.item(i); - var nodeName = item.nodeName; - if (typeof obj[nodeName] == "undefined") { - obj[nodeName] = this.xmlToJson(item); - } else { - if (typeof obj[nodeName].push == "undefined") { - var old = obj[nodeName]; - obj[nodeName] = []; - obj[nodeName].push(old); - } - obj[nodeName].push(this.xmlToJson(item)); - } - } - } - return obj; + /** + * @member -plugins configuration represented as Json string + * @type {string} + */ + + /** + * @member -Name of the uiConf, this is not a primary key + * @type {string} + */ + function KalturaUiConfResponse(data) { + _classCallCheck(this, KalturaUiConfResponse); + + var _this = _possibleConstructorReturn(this, (KalturaUiConfResponse.__proto__ || Object.getPrototypeOf(KalturaUiConfResponse)).call(this, data)); + + if (!_this.hasError) { + _this.name = data.name; + + _this.description = data.description; + _this.objTypeAsString = data.objTypeAsString; + _this.width = data.width; + _this.height = data.height; + _this.htmlParams = data.htmlParams; + _this.swfUrl = data.swfUrl; + _this.confFilePath = data.confFilePath; + _this.confFile = data.confFile; + _this.confFileFeatures = data.confFileFeatures; + _this.config = data.config; + _this.confVars = data.confVars; + _this.useCdn = data.useCdn; + _this.tags = data.tags; + _this.swfUrlVersion = data.swfUrlVersion; + _this.created = new Date(0); + _this.created.setUTCSeconds(data.createdAt); + _this.updated = new Date(0); + _this.updated.setUTCSeconds(data.updatedAt); + _this.html5Url = data.description; + _this.version = data.description; + _this.partnerTags = data.description; + _this.objType = data.description; + _this.creationMode = data.description; } - }]); + return _this; + } + /** + * @member -Name of the uiConf, this is not a primary key + * @type {string} + */ - return XmlParser; -}(); -exports.default = XmlParser; + return KalturaUiConfResponse; +}(_baseServiceResult2.default); + +exports.default = KalturaUiConfResponse; /***/ }) /******/ ]); diff --git a/dist/ovpProvider.js.map b/dist/ovpProvider.js.map index 887acbeb..ccdb9f1f 100644 --- a/dist/ovpProvider.js.map +++ b/dist/ovpProvider.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/webpack/bootstrap 40363af1b4965fde30fb","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/enums.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/./entities/media-sources.js","webpack:///providers/../~/js-logger/src/logger.js","webpack:///providers/./entities/media-entry.js","webpack:///providers/./entities/drm.js","webpack:///providers/./entities/media-format.js","webpack:///providers/./entities/media-source.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-flavor-asset.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-media-entry.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-context.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-source.js","webpack:///providers/../~/enumify/lib/enumify.js","webpack:///providers/./k-provider/ovp/loaders/data-loader-manager.js","webpack:///providers/./k-provider/ovp/loaders/media-entry-loader.js","webpack:///providers/./k-provider/ovp/loaders/session-loader.js","webpack:///providers/./k-provider/ovp/loaders/ui-config-loader.js","webpack:///providers/./k-provider/ovp/provider-parser.js","webpack:///providers/./k-provider/ovp/ovp-provider.js","webpack:///providers/./k-provider/ovp/play-source-url-builder.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-access-control-message.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-rule-action.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-ui-conf-response.js","webpack:///providers/./k-provider/ovp/services/base-entry-service.js","webpack:///providers/./k-provider/ovp/services/meta-data-service.js","webpack:///providers/./k-provider/ovp/services/session-service.js","webpack:///providers/./k-provider/ovp/services/ui-conf-service.js","webpack:///providers/./k-provider/xml-parser.js"],"names":["RequestBuilder","headers","Map","set","baseUrl","Error","url","service","action","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","value","key","setRequestHeader","send","params","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","Object","assign","Scheme","initEnum","PLAYREADY_CENC","WIDEVINE_CENC","FAIRPLAY","PLAYREADY","WIDEVINE","KalturaRuleActionType","DRM_POLICY","BLOCK","PREVIEW","LIMIT_FLAVORS","ADD_TO_STORAGE","LIMIT_DELIVERY_PROFILES","SERVE_FROM_REMOTE_SERVER","REQUEST_HOST_REGEX","LIMIT_THUMBNAIL_CAPTURE","Status","ERROR","QUEUED","CONVERTING","READY","DELETED","NOT_APPLICABLE","TEMP","WAIT_FOR_CONVERT","IMPORTING","VALIDATING","EXPORTING","MetadataObjectType","AD_CUE_POINT","ANNOTATION","CODE_CUE_POINT","THUMB_CUE_POINT","ENTRY","CATEGORY","USER","PARTNER","DYNAMIC_OBJECT","MetadataStatus","VALID","INVALID","EntryStatus","ERROR_IMPORTING","ERROR_CONVERTING","SCAN_FAILURE","IMPORT","INFECTED","PRECONVERT","PENDING","MODERATE","BLOCKED","NO_CONTENT","EntryModerationStatus","PENDING_MODERATION","APPROVED","REJECTED","FLAGGED_FOR_REVIEW","AUTO_APPROVED","EntryType","AUTOMATIC","EXTERNAL_MEDIA","MEDIA_CLIP","MIX","PLAYLIST","DATA","LIVE_STREAM","LIVE_CHANNEL","DOCUMENT","MediaType","VIDEO","IMAGE","AUDIO","LIVE_STREAM_FLASH","LIVE_STREAM_WINDOWS_MEDIA","LIVE_STREAM_REAL_MEDIA","LIVE_STREAM_QUICKTIME","MediaEntryType","UIConfType","PLAYER","CONTRIBUTION_WIZARD","SIMPLE_EDITOR","ADVANCED_EDITOR","APP_STUDIO","KRECORD","PLAYER_V3","KMC_ACCOUNT","KMC_ANALYTICS","KMC_CONTENT","KMC_DASHBOARD","KMC_LOGIN","PLAYER_SL","CLIENTSIDE_ENCODER","KMC_GENERAL","KMC_ROLES_AND_PERMISSIONS","CLIPPER","KSR","KUPLOAD","WEBCASTING","UIConfCreationMode","WIZARD","ADVANCED","config","get","SERVICE_NAME","OvpService","ks","partnerId","ovpParams","multiReq","ServiceResult","response","hasError","objectType","error","ServiceError","data","JsLogger","LoggerFactory","options","useDefaults","name","Logger","defaultLevel","DEBUG","LOG_LEVEL","INFO","TIME","WARN","OFF","logger","MultiRequestBuilder","requests","push","requestParams","serviceDef","length","stringify","err","doHttpRequest","then","MultiRequestResult","errorText","results","success","result","serviceResult","MediaSources","progressive","dash","hls","source","mediaFormat","MediaEntry","metaData","type","Unknown","Drm","licenseUrl","scheme","MediaFormat","mimeType","pathExt","wvm","mp4","mp3","MediaSource","KalturaFlavorAsset","id","flavorParamsId","fileExt","bitrate","width","height","frameRate","isOriginal","isWeb","containerFormat","videoCodecId","language","label","KalturaMediaEntry","entry","dataUrl","entryType","mediaType","flavorParamsIds","duration","KalturaMetadataListResponse","responseObj","totalCount","metas","objects","map","meta","KalturaPlaybackContext","sources","actions","messages","flavorAssets","flavor","KalturaPlaybackSource","drm","deliveryProfileId","protocols","flavorIds","protocol","returnValue","protocolsArr","split","p","DataLoaderManager","partnerID","_loaders","_multiRequest","getMultirequest","loader","execution_loader","isValid","startIndex","add","executionLoaderResponseMap","Array","from","val","index","_loadersResponseMap","execute","_multiResponse","preparedData","prepareData","loaderDataIndexes","slice","MediaEntryLoader","_response","buildRequests","_entryId","entryId","list","getPlaybackContext","_requests","mediaEntryResponse","entries","playBackContextResult","metadataListResult","SessionLoader","_partnerId","anonymousSession","UiConfigLoader","_uiConfId","uiConfId","uiConf","plugins","SUPPORTED_FORMATS","ProviderParser","mediaEntry","playbackContext","metadataList","kalturaSources","_getParsedSources","metadata","_parseMetaData","Image","Audio","Vod","Live","parseAdaptiveSources","_isProgressiveSource","parsedSource","_parseAdaptiveSource","sourceFormat","parseProgressiveSources","progressiveSource","find","_parseProgressiveSources","playUrl","mediaSource","hasFlavorIds","extension","flavorIdsArr","flavors","filter","indexOf","mimetype","build","getProtocol","_getBaseProtocol","hasDrmData","drmParams","licenseURL","drmData","metaXml","domParser","DOMParser","xml","replace","parseFromString","metasObj","xmlToJson","metaKeys","keys","kalturaSource","sourceId","bandwidth","splittedUrl","baseProtocol","substring","OvpProvider","_isAnonymous","_dataLoader","validateParams","fetchData","parseDataFromResponse","debug","session","uiConfID","has","sessionLoader","uiConfLoader","pluginsJson","mediaLoader","getMediaEntry","PlaySourceUrlBuilder","urlParams","endsWith","string","searchString","KalturaAccessControlMessage","KalturaBaseEntryListResponse","KalturaDrmPlaybackPluginData","KalturaMetadata","metadataProfileId","metadataProfileVersion","metadataObjectType","objectId","version","created","Date","setUTCSeconds","createdAt","updated","updatedAt","KalturaRuleAction","KalturaUiConfResponse","description","objTypeAsString","htmlParams","swfUrl","confFilePath","confFile","confFileFeatures","confVars","useCdn","tags","swfUrlVersion","html5Url","partnerTags","objType","creationMode","BaseEntryService","tag","contextDataParams","flavorTags","getEntryListReqParams","filterParams","redirectFromEntryId","responseProfileParams","fields","responseProfile","MetaDataService","objectIdEqual","metadataObjectTypeEqual","SessionService","widgetId","UiConfService","XmlParser","obj","nodeType","attributes","j","attribute","item","nodeName","nodeValue","hasChildNodes","i","childNodes","old"],"mappings":"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CA;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;;AAEA;AACA,0CAA0C,0BAA0B;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;;;;AC/PD;;AACA;;;;;;;;AAEA;;;;IAIqBM,U;;AA4BnB;;;;AA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AAP;AACD;;;;;;kBAvFkBN,qB;;;;;;;ACPrB;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;AACA;AACA,CAAC;AACD;;AAEA,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,mEAAmE,gEAAgE;AACnI;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,kFAAkF,mEAAmE;AACrJ;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,mE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","file":"ovpProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 25);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 40363af1b4965fde30fb","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\nimport {Enum} from 'enumify';\n\nexport class Scheme extends Enum {\n}\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\n\nexport class KalturaRuleActionType extends Enum {\n}\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nexport class Status extends Enum {\n}\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nexport class MetadataObjectType extends Enum {\n}\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nexport class MetadataStatus extends Enum {\n}\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\n\nexport class EntryStatus extends Enum {\n}\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nexport class EntryModerationStatus extends Enum {\n}\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nexport class EntryType extends Enum {\n}\nEntryType.initEnum({\n AUTOMATIC: {value: -1},\n EXTERNAL_MEDIA: {value: \"externalMedia.externalMedia\"},\n MEDIA_CLIP: {value: 1},\n MIX: {value: 2},\n PLAYLIST: {value: 5},\n DATA: {value: 6},\n LIVE_STREAM: {value: 7},\n LIVE_CHANNEL: {value: 8},\n DOCUMENT: {value: 10}\n});\n\nexport class MediaType extends Enum {\n}\nMediaType.initEnum({\n VIDEO: {value: 1},\n IMAGE: {value: 2},\n AUDIO: {value: 5},\n LIVE_STREAM_FLASH: {value: 201},\n LIVE_STREAM_WINDOWS_MEDIA: {value: 202},\n LIVE_STREAM_REAL_MEDIA: {value: 203},\n LIVE_STREAM_QUICKTIME: {value: 204}\n});\n\n\nexport class MediaEntryType extends Enum {\n}\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nexport class UIConfType extends Enum {\n}\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nexport class UIConfCreationMode extends Enum {\n}\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/enums.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","// @flow\nimport MediaSource from './media-source'\nimport {MediaFormat} from './media-format'\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nexport default class MediaSources {\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n progressive: Array;\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n dash: Array;\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n hls: Array;\n\n /**\n * @constructor\n */\n constructor() {\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n map(source: MediaSource, mediaFormat: ?MediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-sources.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/js-logger/src/logger.js\n// module id = 8\n// module chunks = 0 1","//@flow\nimport {MediaEntryType} from '../k-provider/enums'\nimport MediaSources from './media-sources'\n\n/**\n * Media entry\n * @classdesc\n */\nexport default class MediaEntry {\n\n /**\n * @member - entry ID\n * @type {string}\n */\n id: string;\n /**\n * @member - entry sources\n * @type {MediaSources}\n */\n sources: MediaSources;\n /**\n * @member - entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - entry type\n * @type {MediaEntryType}\n */\n type: MediaEntryType;\n /**\n * @member - entry metadata\n * @type {Map}\n */\n metaData: Map;\n\n /**\n * @constructor\n */\n constructor() {\n this.metaData = new Map();\n this.type = MediaEntryType.Unknown;\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-entry.js","//@flow\n\nimport {Scheme} from '../k-provider/enums';\n\n/**\n * Drm data\n * @classdesc\n */\nexport default class Drm {\n\n /**\n * @member - license URL\n * @type {string}\n */\n licenseUrl: string;\n /**\n * @member - drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n constructor(licenseUrl: string, scheme: Scheme) {\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/drm.js","//@flow\nimport {Enum} from 'enumify';\n\nexport class MediaFormat extends Enum {\n}\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-format.js","//@flow\nimport Drm from '../entities/drm'\n\n/**\n * Media source\n * @classdesc\n */\nexport default class MediaSource {\n /**\n * @member - media source ID\n * @type {string}\n */\n id: string;\n /**\n * @member - media source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - media source mimetype\n * @type {string}\n */\n mimetype: string;\n /**\n * @member - media source drm data\n * @type {Array}\n */\n drmData: Array;\n /**\n * @member - media source bandwidth\n * @type {number}\n */\n bandwidth: number;\n /**\n * @member - media source width\n * @type {number}\n */\n width: number;\n /**\n * @member - media source height\n * @type {number}\n */\n height: number;\n /**\n * @member - media source label\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n */\n constructor(){}\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-source.js","//@flow\nimport {Status} from '../../enums'\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nexport default class KalturaFlavorAsset {\n /**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\n id: string;\n /**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n flavorParamsId: string;\n /**\n * @member -The file extension\n * @type {string}\n */\n fileExt: string;\n /**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n bitrate: number;\n /**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n width: number;\n /**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n height: number;\n /**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n frameRate: number;\n /**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n isOriginal: boolean;\n /**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n isWeb: boolean;\n /**\n * @member - The container format\n * @type {boolean}\n */\n containerFormat: string;\n /**\n *@member - The video codec\n * @type {boolean}\n */\n videoCodecId: string;\n /**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n status: Status;\n /**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n language: string;\n /**\n * @member - The label of the flavor asset\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: any) {\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-flavor-asset.js","//@flow\nimport {EntryType, MediaType} from '../../enums'\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nexport default class KalturaMediaEntry {\n /**\n * @member - The entry id\n * @type {string}\n */\n id: string;\n /**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\n name: string;\n /**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n dataUrl: string;\n /**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n flavorParamsIds: string;\n /**\n * @member - The entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n type: EntryType;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n entryType: MediaType;\n\n /**\n * @constructor\n * @param {Object} entry The json response\n */\n constructor(entry: Object) {\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n }\n}\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-media-entry.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMetadata from './kaltura-metadata'\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nexport default class KalturaMetadataListResponse extends ServiceResult {\n totalCount: number;\n /**\n * @member -The mata data array\n * @type {Array}\n */\n metas: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.metas = [];\n responseObj.objects.map(meta => this.metas.push(new KalturaMetadata(meta)));\n }\n\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata-list-response.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaAccessControlMessage from './kaltura-access-control-message'\nimport KalturaPlaybackSource from './kaltura-playback-source'\nimport KalturaRuleAction from './kaltura-rule-action'\nimport KalturaFlavorAsset from './kaltura-flavor-asset'\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nexport default class KalturaPlaybackContext extends ServiceResult {\n /**\n * @member - The playback sources\n * @type {Array}\n */\n sources: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n actions: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n messages: Array = [];\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n flavorAssets: Array = [];\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n constructor(response: Object) {\n super(response);\n if (!this.hasError) {\n\n let messages = response.messages;\n if (messages) {\n messages.map(message => this.messages.push(new KalturaAccessControlMessage(message)));\n }\n\n let actions = response.actions;\n if (actions) {\n actions.map(action => this.actions.push(new KalturaRuleAction(action)));\n }\n\n let sources = response.sources;\n if (sources) {\n sources.map(source => this.sources.push(new KalturaPlaybackSource(source)));\n }\n\n let flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(flavor => this.flavorAssets.push(new KalturaFlavorAsset(flavor)));\n }\n }\n\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-context.js","//@flow\nimport KalturaDrmPlaybackPluginData from './kaltura-drm-playback-plugin-data'\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nexport default class KalturaPlaybackSource {\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n format: string;\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n deliveryProfileId: string;\n /**\n * @member - The source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n protocols: string;\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n flavorIds: string;\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n drm: Array = [];\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n constructor(source: Object) {\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(drm => this.drm.push(new KalturaDrmPlaybackPluginData(drm)));\n }\n\n\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n hasDrmData(): boolean {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n hasFlavorIds(): boolean {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n getProtocol(protocol: string): string {\n let returnValue: string = \"\";\n if (this.protocols && this.protocols.length > 0) {\n let protocolsArr: Array = this.protocols.split(\",\");\n protocolsArr.forEach((p) => {\n if (p == protocol) {\n returnValue = p;\n }\n });\n }\n else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-source.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/enumify/lib/enumify.js\n// module id = 18\n// module chunks = 0","//@flow\nimport OvpService from '../services/ovp-service'\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport {MultiRequestResult} from '../../multi-request-builder'\n\n/**\n * Data loaders manager\n * @classdesc\n */\nexport default class DataLoaderManager {\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n static _loadersResponseMap: Map> = new Map();\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n _multiRequest: MultiRequestBuilder;\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n _multiResponse: MultiRequestResult;\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n _loaders: Map = new Map();\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n constructor(partnerID: number, ks: string = \"\") {\n this._multiRequest = OvpService.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n add(loader: typeof ILoader, params: Object): void {\n let execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n let startIndex = this._multiRequest.requests.length;\n //Get the requests\n let requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach((request) => {\n this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n let executionLoaderResponseMap = Array.from(new Array(requests.length), (val, index) => index + startIndex);\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n fetchData(): Promise {\n return new Promise((resolve, reject) => {\n this._multiRequest.execute()\n .then(response => {\n this._multiResponse = response;\n if (!response.success) {\n reject(response);\n }\n else {\n let preparedData: Object = this.prepareData(response);\n if (preparedData.success) {\n resolve(this._loaders);\n }\n else {\n reject({success: false, data: preparedData.error});\n }\n }\n },\n err => {\n reject(err);\n });\n });\n }\n\n prepareData(response: MultiRequestResult): Object {\n this._loaders.forEach(function (loader, name) {\n let loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = (response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1));\n }\n }\n catch (err) {\n return {success: false, error: err};\n }\n });\n return {success: true, data: this._loaders};\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/data-loader-manager.js","//@flow\n\nimport RequestBuilder from '../../request-builder'\nimport BaseEntryService from '../services/base-entry-service'\nimport MetaDataService from '../services/meta-data-service'\nimport Configuration from '../config'\nimport KalturaPlaybackContext from '../response-types/kaltura-playback-context'\nimport KalturaMetadataListResponse from '../response-types/kaltura-metadata-list-response'\nimport KalturaBaseEntryListResponse from '../response-types/kaltura-base-entry-list-response'\n\nconst config = Configuration.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class MediaEntryLoader implements ILoader {\n static get name(): string {\n return \"media\";\n }\n\n _entryId: string;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n let mediaEntryResponse: KalturaBaseEntryListResponse = new KalturaBaseEntryListResponse(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);\n this._response.metadataListResult = new KalturaMetadataListResponse(response[2].data);\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(BaseEntryService.list(config.beUrl, params.ks, params.entryId));\n requests.push(BaseEntryService.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(MetaDataService.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._entryId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/media-entry-loader.js","//@flow\nimport SessionService from '../services/session-service'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class SessionLoader implements ILoader {\n static get name(): string {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n _partnerId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.ks = response[0].data.ks;\n }\n\n get response(): any {\n return this._response.ks;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(SessionService.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._partnerId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/session-loader.js","//@flow\nimport UiConfService from '../services/ui-conf-service'\nimport KalturaUiConfResponse from '../response-types/kaltura-ui-conf-response'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n\nexport default class UiConfigLoader implements ILoader {\n static get name(): string {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.uiConf = new KalturaUiConfResponse(response[0].data);\n }\n\n get response(): any {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null)\n try {\n return JSON.parse(this._response.uiConf.config).plugins;\n }\n catch (err) {\n return null;\n }\n else\n return null;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(UiConfService.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._uiConfId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/ui-config-loader.js","//@flow\nimport KalturaMediaEntry from './response-types/kaltura-media-entry'\nimport KalturaPlaybackContext from './response-types/kaltura-playback-context'\nimport KalturaPlaybackSource from './response-types/kaltura-playback-source'\nimport KalturaFlavorAsset from './response-types/kaltura-flavor-asset'\nimport KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response'\nimport PlaySourceUrlBuilder from \"./play-source-url-builder\"\nimport XmlParser from '../xml-parser'\nimport {MediaEntryType, EntryType, MediaType} from '../enums'\nimport Logger from '../../util/logger'\nimport Configuration from './config'\nimport {MediaFormat} from '../../entities/media-format'\nimport MediaEntry from '../../entities/media-entry'\nimport Drm from '../../entities/drm'\nimport MediaSource from '../../entities/media-source'\nimport MediaSources from '../../entities/media-sources'\n\nconst config = Configuration.get();\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nconst SUPPORTED_FORMATS: Map = new Map([\n [\"mpegdash\", MediaFormat.dash],\n [\"applehttp\", MediaFormat.hls],\n [\"url\", MediaFormat.mp4]\n]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\nexport default class ProviderParser {\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {any} mediaEntryResponse The media entry response\n * @returns {MediaEntry} The media entry\n * @static\n * @public\n */\n static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry {\n let mediaEntry: MediaEntry = new MediaEntry();\n let entry = mediaEntryResponse.entry;\n let playbackContext = mediaEntryResponse.playBackContextResult;\n let metadataList = mediaEntryResponse.metadataListResult;\n let kalturaSources: Array = playbackContext.sources;\n let sources: MediaSources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n let metadata: Map = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n let type: MediaEntryType = MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case MediaType.IMAGE.value:\n type = MediaEntryType.Image;\n break;\n case MediaType.AUDIO.value:\n type = MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case EntryType.MEDIA_CLIP.value:\n type = MediaEntryType.Vod;\n break;\n case EntryType.LIVE_STREAM.value:\n case EntryType.LIVE_CHANNEL.value:\n type = MediaEntryType.Live;\n break;\n default:\n type = MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry, playbackContext): MediaSources {\n let sources: MediaSources = new MediaSources();\n\n let parseAdaptiveSources = function () {\n kalturaSources.forEach((source) => {\n if (ProviderParser._isProgressiveSource(source) === false) {\n let parsedSource = ProviderParser._parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext);\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n }\n });\n };\n\n let parseProgressiveSources = function () {\n let progressiveSource = kalturaSources.find(source => ProviderParser._isProgressiveSource(source));\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n static _isProgressiveSource(source) {\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n *\n * @param {KalturaPlaybackSource} source The source\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {KalturaMediaEntry} entry The entry\n * @param {KalturaPlaybackContext} playbackContext The playback context\n * @returns {MediaSource} The parsed media source\n * @static\n * @private\n */\n static _parseAdaptiveSource(source: KalturaPlaybackSource, ks: string, partnerID: number, uiConfId: number, entry: KalturaMediaEntry, playbackContext: KalturaPlaybackContext): MediaSource {\n let playUrl: string = \"\";\n let mediaFormat = SUPPORTED_FORMATS.get(source.format);\n let mediaSource: MediaSource = new MediaSource();\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (source.hasFlavorIds()) {\n let extension: string = \"\";\n if (!mediaFormat) {\n let flavorIdsArr = source.flavorIds.split(\",\");\n let flavors: Array = playbackContext.flavorAssets.filter(flavor => flavorIdsArr.indexOf(flavor.id) != -1);\n if (flavors && flavors.length > 0) {\n extension = flavors[0].fileExt;\n }\n }\n else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = PlaySourceUrlBuilder.build({\n entryId: entry.id,\n flavorIds: source.flavorIds,\n format: source.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: source.getProtocol(this._getBaseProtocol())\n });\n\n }\n else {\n playUrl = source.url;\n }\n\n if (playUrl == \"\") {\n logger.error(`failed to create play url from source, discarding source: (${entry.id}_${source.deliveryProfileId}), ${source.format}.`);\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entry.id + \"_\" + source.deliveryProfileId + \",\" + source.format;\n if (source.hasDrmData()) {\n let drmParams: Array = [];\n source.drm.forEach((drm) => {\n drmParams.push(new Drm(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n return mediaSource;\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n static _parseMetaData(metadataList: KalturaMetadataListResponse): Map {\n let metadata: Object = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach((meta) => {\n let metaXml: Object;\n let domParser: DOMParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n let metasObj: Object = XmlParser.xmlToJson(metaXml);\n let metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach((key) => {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n })\n\n })\n }\n return metadata;\n }\n\n static _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entry) {\n let sources = [];\n if (kalturaSource) {\n let protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n let format = kalturaSource.format;\n let sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map((flavor) => {\n if (flavor.height && flavor.width) {\n let mediaSource: MediaSource = new MediaSource();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = PlaySourceUrlBuilder.build({\n entryId: entry.id,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n static _getBaseProtocol(): string {\n let splittedUrl: Array = config.baseUrl.split(\"/\");\n let baseProtocol: string;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n }\n else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/provider-parser.js","//@flow\nimport Logger from '../../util/logger'\nimport ProviderParser from './provider-parser'\nimport DataLoaderManager from './loaders/data-loader-manager'\nimport MediaEntryLoader from './loaders/media-entry-loader'\nimport SessionLoader from './loaders/session-loader'\nimport UiConfigLoader from './loaders/ui-config-loader'\nimport Configuration from './config'\nimport MediaEntry from '../../entities/media-entry'\nimport MediaSources from '../../entities/media-sources'\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\ntype playerConfig = {\n id: string,\n session: Object,\n sources: MediaSources,\n duration: number,\n type: string,\n metadata: Object,\n plugins: Object\n};\n\n/**\n * Ovp provider\n * @classdesc\n */\nexport class OvpProvider {\n /**\n * @member - ks\n * @type {string}\n */\n ks: string;\n /**\n * @member - partner ID\n * @type {number}\n */\n partnerID: number;\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n _isAnonymous: boolean;\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n _dataLoader: DataLoaderManager;\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n constructor(partnerID: number, ks: string = \"\", config?: Object) {\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n Configuration.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n getConfig(entryId?: string, uiConfId?: number): Promise {\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new DataLoaderManager(this.partnerID, this.ks);\n return new Promise((resolve, reject) => {\n if (this.validateParams(entryId, uiConfId)) {\n let ks: string = this.ks;\n if (this._isAnonymous) {\n ks = \"{1:result:ks}\";\n this._dataLoader.add(SessionLoader, {partnerId: this.partnerID});\n }\n this._dataLoader.add(MediaEntryLoader, {entryId: entryId, ks: ks});\n this._dataLoader.add(UiConfigLoader, {uiConfId: uiConfId, ks: ks});\n this._dataLoader.fetchData()\n .then(response => {\n resolve(this.parseDataFromResponse(response));\n },\n err => {\n reject(err);\n });\n }\n else {\n reject({success: false, data: \"Missing mandatory parameter\"});\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n parseDataFromResponse(data: Map): Object {\n logger.debug(\"Data parsing started\");\n let config: playerConfig = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId,\n },\n sources: new MediaSources(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(SessionLoader.name)) {\n let sessionLoader = data.get(SessionLoader.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(UiConfigLoader.name)) {\n let uiConfLoader = data.get(UiConfigLoader.name);\n let pluginsJson: Object = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(MediaEntryLoader.name)) {\n let mediaLoader = data.get(MediaEntryLoader.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n let mediaEntry: MediaEntry = ProviderParser.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return (config);\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n validateParams(entryId?: string, uiConfId?: number): boolean {\n return !!entryId || !!uiConfId;\n }\n\n}\n\nexport default OvpProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/ovp-provider.js","//@flow\nimport Configuration from './config'\n\nconst config = Configuration.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\nexport default class PlaySourceUrlBuilder {\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n static build(urlParams: Object): string {\n let baseUrl: string = config.baseUrl;\n let partnerId: string = urlParams.partnerId;\n let entryId: string = urlParams.entryId;\n let ks: string = urlParams.ks;\n let uiConfId: string = urlParams.uiConfId;\n let format: string = urlParams.format;\n let protocol: string = urlParams.protocol;\n let extension: string = urlParams.extension;\n let flavorIds: string = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n let playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n }\n else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n static endsWith(string: string, searchString: string): boolean {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/play-source-url-builder.js","//@flow\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nexport default class KalturaAccessControlMessage {\n /**\n * @member - The access control message\n * @type {string}\n */\n message: string;\n /**\n * @member - The access control message code\n * @@type {string}\n */\n code: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n this.message = data.message;\n this.code = data.code\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-access-control-message.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMediaEntry from './kaltura-media-entry'\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nexport default class KalturaBaseEntryListResponse extends ServiceResult {\n /**\n * @member - The total count\n * @type {number}\n */\n totalCount: number;\n /**\n * @member - The entries\n * @type {Array}\n */\n entries: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.entries = [];\n responseObj.objects.map(entry => this.entries.push(new KalturaMediaEntry(entry)));\n }\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","//@flow\nimport {Scheme} from '../../enums'\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nexport default class KalturaDrmPlaybackPluginData {\n /**\n * @member - The drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @member - The license URL\n * @type {string}\n */\n licenseURL: string;\n\n /**\n * @constructor\n * @param {Object} drm The json response\n */\n constructor(drm: any) {\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","//@flow\nimport {MetadataObjectType, MetadataStatus} from '../../enums'\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nexport default class KalturaMetadata {\n id: number;\n metadataProfileId: number;\n metadataProfileVersion: number;\n metadataObjectType: MetadataObjectType;\n objectId: string;\n version: number;\n created: Date;\n updated: Date;\n status: MetadataStatus;\n /**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n xml: string;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata.js","//@flow\nimport {KalturaRuleActionType} from '../../enums'\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nexport default class KalturaRuleAction {\n /**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n type: KalturaRuleActionType;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.type = data.type;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-rule-action.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport {UIConfType, UIConfCreationMode} from '../../enums';\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nexport default class KalturaUiConfResponse extends ServiceResult {\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n name: string;\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n description: string;\n objTypeAsString: string;\n width: number;\n height: number;\n htmlParams: string;\n swfUrl: string;\n confFilePath: string;\n confFile: string;\n confFileFeatures: string;\n name: string;\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n config: string;\n confVars: string;\n useCdn: boolean;\n tags: string;\n swfUrlVersion: string;\n created: Date;\n updated: Date;\n html5Url: string;\n version: string;\n partnerTags: string;\n objType: UIConfType;\n creationMode: UIConfCreationMode;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n super(data);\n if (!this.hasError) {\n this.name = data.name;\n\n this.description = data.description;\n this.objTypeAsString = data.objTypeAsString;\n this.width = data.width;\n this.height = data.height;\n this.htmlParams = data.htmlParams;\n this.swfUrl = data.swfUrl;\n this.confFilePath = data.confFilePath;\n this.confFile = data.confFile;\n this.confFileFeatures = data.confFileFeatures;\n this.config = data.config;\n this.confVars = data.confVars;\n this.useCdn = data.useCdn;\n this.tags = data.tags;\n this.swfUrlVersion = data.swfUrlVersion;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.html5Url = data.description;\n this.version = data.description;\n this.partnerTags = data.description;\n this.objType = data.description;\n this.creationMode = data.description;\n\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-ui-conf-response.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\nexport default class BaseEntryService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static getPlaybackContext(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n let contextDataParams = {objectType: \"KalturaContextDataParams\", flavorTags: \"all\"};\n let params = {entryId: entryId, ks: ks, contextDataParams: contextDataParams};\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n static getEntryListReqParams(entryId: string, ks: string): any {\n let filterParams = {redirectFromEntryId: entryId};\n let responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return {ks: ks, filter: filterParams, responseProfile: responseProfileParams};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/base-entry-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\nexport default class MetaDataService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n let filter = {objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\"};\n let params = {filter: filter, ks: ks};\n request.params = params;\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/meta-data-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\nexport default class SessionService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static anonymousSession(baseUrl: string, partnerId: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = {widgetId: \"_\" + partnerId};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/session-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\nexport default class UiConfService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static get(baseUrl: string, ks: string, uiConfID: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n let responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = {id: uiConfID, responseProfile: responseProfileParams, ks: ks};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ui-conf-service.js","//@flow\n\n/**\n * Xml parser\n * @classdesc\n */\nexport default class XmlParser {\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n static xmlToJson(xml: Object) {\n let obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n let attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n }\n else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n let item = xml.childNodes.item(i);\n let nodeName = item.nodeName;\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n }\n else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n let old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/xml-parser.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/webpack/bootstrap e13f9de90e38187349d1","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/enums.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/../node_modules/js-logger/src/logger.js","webpack:///providers/./entities/media-sources.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-source.js","webpack:///providers/../node_modules/enumify/lib/enumify.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-flavor-asset.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata-list-response.js","webpack:///providers/./entities/media-format.js","webpack:///providers/./entities/media-entry.js","webpack:///providers/./entities/media-source.js","webpack:///providers/./entities/drm.js","webpack:///providers/./k-provider/ovp/ovp-provider.js","webpack:///providers/./k-provider/ovp/provider-parser.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata.js","webpack:///providers/./k-provider/ovp/play-source-url-builder.js","webpack:///providers/./k-provider/xml-parser.js","webpack:///providers/./k-provider/ovp/loaders/data-loader-manager.js","webpack:///providers/./k-provider/ovp/loaders/media-entry-loader.js","webpack:///providers/./k-provider/ovp/services/base-entry-service.js","webpack:///providers/./k-provider/ovp/services/meta-data-service.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-context.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-access-control-message.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-rule-action.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-media-entry.js","webpack:///providers/./k-provider/ovp/loaders/session-loader.js","webpack:///providers/./k-provider/ovp/services/session-service.js","webpack:///providers/./k-provider/ovp/loaders/ui-config-loader.js","webpack:///providers/./k-provider/ovp/services/ui-conf-service.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-ui-conf-response.js"],"names":["RequestBuilder","headers","Map","set","baseUrl","Error","url","service","action","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","value","key","setRequestHeader","send","params","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","Object","assign","Scheme","initEnum","PLAYREADY_CENC","WIDEVINE_CENC","FAIRPLAY","PLAYREADY","WIDEVINE","KalturaRuleActionType","DRM_POLICY","BLOCK","PREVIEW","LIMIT_FLAVORS","ADD_TO_STORAGE","LIMIT_DELIVERY_PROFILES","SERVE_FROM_REMOTE_SERVER","REQUEST_HOST_REGEX","LIMIT_THUMBNAIL_CAPTURE","Status","ERROR","QUEUED","CONVERTING","READY","DELETED","NOT_APPLICABLE","TEMP","WAIT_FOR_CONVERT","IMPORTING","VALIDATING","EXPORTING","MetadataObjectType","AD_CUE_POINT","ANNOTATION","CODE_CUE_POINT","THUMB_CUE_POINT","ENTRY","CATEGORY","USER","PARTNER","DYNAMIC_OBJECT","MetadataStatus","VALID","INVALID","EntryStatus","ERROR_IMPORTING","ERROR_CONVERTING","SCAN_FAILURE","IMPORT","INFECTED","PRECONVERT","PENDING","MODERATE","BLOCKED","NO_CONTENT","EntryModerationStatus","PENDING_MODERATION","APPROVED","REJECTED","FLAGGED_FOR_REVIEW","AUTO_APPROVED","EntryType","AUTOMATIC","EXTERNAL_MEDIA","MEDIA_CLIP","MIX","PLAYLIST","DATA","LIVE_STREAM","LIVE_CHANNEL","DOCUMENT","MediaType","VIDEO","IMAGE","AUDIO","LIVE_STREAM_FLASH","LIVE_STREAM_WINDOWS_MEDIA","LIVE_STREAM_REAL_MEDIA","LIVE_STREAM_QUICKTIME","MediaEntryType","UIConfType","PLAYER","CONTRIBUTION_WIZARD","SIMPLE_EDITOR","ADVANCED_EDITOR","APP_STUDIO","KRECORD","PLAYER_V3","KMC_ACCOUNT","KMC_ANALYTICS","KMC_CONTENT","KMC_DASHBOARD","KMC_LOGIN","PLAYER_SL","CLIENTSIDE_ENCODER","KMC_GENERAL","KMC_ROLES_AND_PERMISSIONS","CLIPPER","KSR","KUPLOAD","WEBCASTING","UIConfCreationMode","WIZARD","ADVANCED","ServiceResult","response","hasError","objectType","error","ServiceError","data","config","get","SERVICE_NAME","OvpService","ks","partnerId","ovpParams","multiReq","JsLogger","LoggerFactory","options","useDefaults","name","Logger","defaultLevel","DEBUG","LOG_LEVEL","INFO","TIME","WARN","OFF","logger","MultiRequestBuilder","requests","push","requestParams","serviceDef","length","stringify","err","doHttpRequest","then","MultiRequestResult","errorText","results","success","result","serviceResult","MediaSources","progressive","dash","hls","source","mediaFormat","KalturaPlaybackSource","drm","deliveryProfileId","protocols","flavorIds","map","protocol","returnValue","protocolsArr","split","p","KalturaFlavorAsset","id","flavorParamsId","fileExt","bitrate","width","height","frameRate","isOriginal","isWeb","containerFormat","videoCodecId","language","label","KalturaMetadataListResponse","responseObj","totalCount","metas","objects","meta","MediaFormat","mimeType","pathExt","wvm","mp4","mp3","MediaEntry","metaData","type","Unknown","MediaSource","Drm","licenseUrl","scheme","OvpProvider","partnerID","_isAnonymous","entryId","uiConfId","_uiConfId","_dataLoader","validateParams","add","fetchData","parseDataFromResponse","debug","session","uiConfID","sources","duration","metadata","plugins","has","sessionLoader","uiConfLoader","pluginsJson","mediaLoader","mediaEntry","getMediaEntry","SUPPORTED_FORMATS","ProviderParser","mediaEntryResponse","entry","playbackContext","playBackContextResult","metadataList","metadataListResult","kalturaSources","_getParsedSources","_parseMetaData","entryType","Image","Audio","Vod","Live","addAdaptiveSource","parsedSource","_parseAdaptiveSource","flavorAssets","sourceFormat","parseAdaptiveSources","filter","_isProgressiveSource","parseProgressiveSources","progressiveSource","find","_parseProgressiveSources","kalturaSource","mediaSource","playUrl","hasFlavorIds","extension","mimetype","build","getProtocol","_getBaseProtocol","hasDrmData","drmParams","licenseURL","drmData","sourceId","flavor","bandwidth","metaXml","domParser","DOMParser","xml","replace","parseFromString","metasObj","xmlToJson","metaKeys","keys","splittedUrl","baseProtocol","substring","KalturaDrmPlaybackPluginData","KalturaMetadata","metadataProfileId","metadataProfileVersion","metadataObjectType","objectId","version","created","Date","setUTCSeconds","createdAt","updated","updatedAt","PlaySourceUrlBuilder","urlParams","endsWith","string","searchString","indexOf","XmlParser","obj","nodeType","attributes","j","attribute","item","nodeName","nodeValue","hasChildNodes","i","childNodes","old","DataLoaderManager","_loaders","_multiRequest","getMultirequest","loader","execution_loader","isValid","startIndex","executionLoaderResponseMap","Array","from","val","index","_loadersResponseMap","execute","_multiResponse","preparedData","prepareData","loaderDataIndexes","slice","MediaEntryLoader","_response","buildRequests","_entryId","list","getPlaybackContext","_requests","entries","BaseEntryService","tag","contextDataParams","flavorTags","getEntryListReqParams","filterParams","redirectFromEntryId","responseProfileParams","fields","responseProfile","MetaDataService","objectIdEqual","metadataObjectTypeEqual","KalturaPlaybackContext","actions","messages","KalturaAccessControlMessage","KalturaRuleAction","KalturaBaseEntryListResponse","KalturaMediaEntry","dataUrl","mediaType","flavorParamsIds","SessionLoader","_partnerId","anonymousSession","SessionService","widgetId","UiConfigLoader","uiConf","UiConfService","KalturaUiConfResponse","description","objTypeAsString","htmlParams","swfUrl","confFilePath","confFile","confFileFeatures","confVars","useCdn","tags","swfUrlVersion","html5Url","partnerTags","objType","creationMode"],"mappings":"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AAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,mEAAmE,gEAAgE;AACnI;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,kFAAkF,mEAAmE;AACrJ;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,mEAAmE;AAC/J;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;;AC/MA;;;;AAEA;;;;IAIqBW,kB;;AAwEnB;;;;;AAXA;;;;;AAVA;;;;;AAVA;;;;;AAVA;;;;;AAVA;;;;;AAVA;;;;;AAVA;;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","file":"ovpProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 17);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap e13f9de90e38187349d1","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\nimport {Enum} from 'enumify';\n\nexport class Scheme extends Enum {\n}\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\n\nexport class KalturaRuleActionType extends Enum {\n}\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nexport class Status extends Enum {\n}\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nexport class MetadataObjectType extends Enum {\n}\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nexport class MetadataStatus extends Enum {\n}\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\n\nexport class EntryStatus extends Enum {\n}\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nexport class EntryModerationStatus extends Enum {\n}\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nexport class EntryType extends Enum {\n}\nEntryType.initEnum({\n AUTOMATIC: {value: -1},\n EXTERNAL_MEDIA: {value: \"externalMedia.externalMedia\"},\n MEDIA_CLIP: {value: 1},\n MIX: {value: 2},\n PLAYLIST: {value: 5},\n DATA: {value: 6},\n LIVE_STREAM: {value: 7},\n LIVE_CHANNEL: {value: 8},\n DOCUMENT: {value: 10}\n});\n\nexport class MediaType extends Enum {\n}\nMediaType.initEnum({\n VIDEO: {value: 1},\n IMAGE: {value: 2},\n AUDIO: {value: 5},\n LIVE_STREAM_FLASH: {value: 201},\n LIVE_STREAM_WINDOWS_MEDIA: {value: 202},\n LIVE_STREAM_REAL_MEDIA: {value: 203},\n LIVE_STREAM_QUICKTIME: {value: 204}\n});\n\n\nexport class MediaEntryType extends Enum {\n}\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nexport class UIConfType extends Enum {\n}\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nexport class UIConfCreationMode extends Enum {\n}\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/enums.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/js-logger/src/logger.js\n// module id = 7\n// module chunks = 0 1","// @flow\nimport MediaSource from './media-source'\nimport {MediaFormat} from './media-format'\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nexport default class MediaSources {\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n progressive: Array;\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n dash: Array;\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n hls: Array;\n\n /**\n * @constructor\n */\n constructor() {\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n map(source: MediaSource, mediaFormat: ?MediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-sources.js","//@flow\nimport KalturaDrmPlaybackPluginData from './kaltura-drm-playback-plugin-data'\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nexport default class KalturaPlaybackSource {\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n format: string;\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n deliveryProfileId: string;\n /**\n * @member - The source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n protocols: string;\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n flavorIds: string;\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n drm: Array = [];\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n constructor(source: Object) {\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(drm => this.drm.push(new KalturaDrmPlaybackPluginData(drm)));\n }\n\n\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n hasDrmData(): boolean {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n hasFlavorIds(): boolean {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n getProtocol(protocol: string): string {\n let returnValue: string = \"\";\n if (this.protocols && this.protocols.length > 0) {\n let protocolsArr: Array = this.protocols.split(\",\");\n protocolsArr.forEach((p) => {\n if (p == protocol) {\n returnValue = p;\n }\n });\n }\n else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-source.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/enumify/lib/enumify.js\n// module id = 10\n// module chunks = 0","//@flow\nimport {Status} from '../../enums'\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nexport default class KalturaFlavorAsset {\n /**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\n id: string;\n /**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n flavorParamsId: string;\n /**\n * @member -The file extension\n * @type {string}\n */\n fileExt: string;\n /**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n bitrate: number;\n /**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n width: number;\n /**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n height: number;\n /**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n frameRate: number;\n /**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n isOriginal: boolean;\n /**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n isWeb: boolean;\n /**\n * @member - The container format\n * @type {boolean}\n */\n containerFormat: string;\n /**\n *@member - The video codec\n * @type {boolean}\n */\n videoCodecId: string;\n /**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n status: Status;\n /**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n language: string;\n /**\n * @member - The label of the flavor asset\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: any) {\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-flavor-asset.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMetadata from './kaltura-metadata'\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nexport default class KalturaMetadataListResponse extends ServiceResult {\n totalCount: number;\n /**\n * @member -The mata data array\n * @type {Array}\n */\n metas: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.metas = [];\n responseObj.objects.map(meta => this.metas.push(new KalturaMetadata(meta)));\n }\n\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata-list-response.js","//@flow\nimport {Enum} from 'enumify';\n\nexport class MediaFormat extends Enum {\n}\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-format.js","//@flow\nimport {MediaEntryType} from '../k-provider/enums'\nimport MediaSources from './media-sources'\n\n/**\n * Media entry\n * @classdesc\n */\nexport default class MediaEntry {\n\n /**\n * @member - entry ID\n * @type {string}\n */\n id: string;\n /**\n * @member - entry sources\n * @type {MediaSources}\n */\n sources: MediaSources;\n /**\n * @member - entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - entry type\n * @type {MediaEntryType}\n */\n type: MediaEntryType;\n /**\n * @member - entry metadata\n * @type {Map}\n */\n metaData: Map;\n\n /**\n * @constructor\n */\n constructor() {\n this.metaData = new Map();\n this.type = MediaEntryType.Unknown;\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-entry.js","//@flow\nimport Drm from '../entities/drm'\n\n/**\n * Media source\n * @classdesc\n */\nexport default class MediaSource {\n /**\n * @member - media source ID\n * @type {string}\n */\n id: string;\n /**\n * @member - media source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - media source mimetype\n * @type {string}\n */\n mimetype: string;\n /**\n * @member - media source drm data\n * @type {Array}\n */\n drmData: Array;\n /**\n * @member - media source bandwidth\n * @type {number}\n */\n bandwidth: number;\n /**\n * @member - media source width\n * @type {number}\n */\n width: number;\n /**\n * @member - media source height\n * @type {number}\n */\n height: number;\n /**\n * @member - media source label\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n */\n constructor(){}\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-source.js","//@flow\n\nimport {Scheme} from '../k-provider/enums';\n\n/**\n * Drm data\n * @classdesc\n */\nexport default class Drm {\n\n /**\n * @member - license URL\n * @type {string}\n */\n licenseUrl: string;\n /**\n * @member - drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n constructor(licenseUrl: string, scheme: Scheme) {\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/drm.js","//@flow\nimport Logger from '../../util/logger'\nimport ProviderParser from './provider-parser'\nimport DataLoaderManager from './loaders/data-loader-manager'\nimport MediaEntryLoader from './loaders/media-entry-loader'\nimport SessionLoader from './loaders/session-loader'\nimport UiConfigLoader from './loaders/ui-config-loader'\nimport Configuration from './config'\nimport MediaEntry from '../../entities/media-entry'\nimport MediaSources from '../../entities/media-sources'\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\ntype playerConfig = {\n id: string,\n session: Object,\n sources: MediaSources,\n duration: number,\n type: string,\n metadata: Object,\n plugins: Object\n};\n\n/**\n * Ovp provider\n * @classdesc\n */\nexport class OvpProvider {\n /**\n * @member - ks\n * @type {string}\n */\n ks: string;\n /**\n * @member - partner ID\n * @type {number}\n */\n partnerID: number;\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n _isAnonymous: boolean;\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n _dataLoader: DataLoaderManager;\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n constructor(partnerID: number, ks: string = \"\", config?: Object) {\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n Configuration.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n getConfig(entryId?: string, uiConfId?: number): Promise {\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new DataLoaderManager(this.partnerID, this.ks);\n return new Promise((resolve, reject) => {\n if (this.validateParams(entryId, uiConfId)) {\n let ks: string = this.ks;\n if (this._isAnonymous) {\n ks = \"{1:result:ks}\";\n this._dataLoader.add(SessionLoader, {partnerId: this.partnerID});\n }\n this._dataLoader.add(MediaEntryLoader, {entryId: entryId, ks: ks});\n this._dataLoader.add(UiConfigLoader, {uiConfId: uiConfId, ks: ks});\n this._dataLoader.fetchData()\n .then(response => {\n resolve(this.parseDataFromResponse(response));\n },\n err => {\n reject(err);\n });\n }\n else {\n reject({success: false, data: \"Missing mandatory parameter\"});\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n parseDataFromResponse(data: Map): Object {\n logger.debug(\"Data parsing started\");\n let config: playerConfig = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId,\n },\n sources: new MediaSources(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(SessionLoader.name)) {\n let sessionLoader = data.get(SessionLoader.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(UiConfigLoader.name)) {\n let uiConfLoader = data.get(UiConfigLoader.name);\n let pluginsJson: Object = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(MediaEntryLoader.name)) {\n let mediaLoader = data.get(MediaEntryLoader.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n let mediaEntry: MediaEntry = ProviderParser.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return (config);\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n validateParams(entryId?: string, uiConfId?: number): boolean {\n return !!entryId || !!uiConfId;\n }\n\n}\n\nexport default OvpProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/ovp-provider.js","//@flow\nimport KalturaPlaybackSource from './response-types/kaltura-playback-source'\nimport KalturaFlavorAsset from './response-types/kaltura-flavor-asset'\nimport KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response'\nimport PlaySourceUrlBuilder from \"./play-source-url-builder\"\nimport XmlParser from '../xml-parser'\nimport {MediaEntryType, EntryType, MediaType} from '../enums'\nimport Logger from '../../util/logger'\nimport Configuration from './config'\nimport {MediaFormat} from '../../entities/media-format'\nimport MediaEntry from '../../entities/media-entry'\nimport Drm from '../../entities/drm'\nimport MediaSource from '../../entities/media-source'\nimport MediaSources from '../../entities/media-sources'\n\nconst config = Configuration.get();\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nconst SUPPORTED_FORMATS: Map = new Map([\n [\"mpegdash\", MediaFormat.dash],\n [\"applehttp\", MediaFormat.hls],\n [\"url\", MediaFormat.mp4]\n]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\nexport default class ProviderParser {\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {any} mediaEntryResponse - The media entry response\n * @returns {MediaEntry} - The media entry\n * @static\n * @public\n */\n static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry {\n let mediaEntry: MediaEntry = new MediaEntry();\n let entry = mediaEntryResponse.entry;\n let playbackContext = mediaEntryResponse.playBackContextResult;\n let metadataList = mediaEntryResponse.metadataListResult;\n let kalturaSources: Array = playbackContext.sources;\n let sources: MediaSources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n let metadata: Map = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n let type: MediaEntryType = MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case MediaType.IMAGE.value:\n type = MediaEntryType.Image;\n break;\n case MediaType.AUDIO.value:\n type = MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case EntryType.MEDIA_CLIP.value:\n type = MediaEntryType.Vod;\n break;\n case EntryType.LIVE_STREAM.value:\n case EntryType.LIVE_CHANNEL.value:\n type = MediaEntryType.Live;\n break;\n default:\n type = MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n /**\n * Returns the parsed sources\n * @function _getParsedSources\n * @param {Array} kalturaSources - The kaltura sources\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {Object} entry - The entry\n * @param {Object} playbackContext - The playback context\n * @return {MediaSources} - A media sources\n * @static\n * @private\n */\n static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry: Object, playbackContext: Object): MediaSources {\n let sources: MediaSources = new MediaSources();\n\n let addAdaptiveSource = function(source: KalturaPlaybackSource): void{\n let parsedSource = ProviderParser._parseAdaptiveSource(source, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n };\n\n let parseAdaptiveSources = function (): void {\n kalturaSources.filter((source) => !ProviderParser._isProgressiveSource(source)).forEach(addAdaptiveSource);\n };\n\n let parseProgressiveSources = function (): void{\n let progressiveSource = kalturaSources.find(ProviderParser._isProgressiveSource);\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n /**\n * Returns a parsed adaptive source\n * @function _parseAdaptiveSource\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {MediaSource} - The parsed adaptive kalturaSource\n * @static\n * @private\n */\n static _parseAdaptiveSource(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): MediaSource {\n let mediaSource: MediaSource = new MediaSource();\n if (kalturaSource) {\n let playUrl: string = \"\";\n let mediaFormat = SUPPORTED_FORMATS.get(kalturaSource.format);\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (kalturaSource.hasFlavorIds()) {\n let extension: string = \"\";\n if (!mediaFormat) {\n if (flavorAssets && flavorAssets.length > 0) {\n extension = flavorAssets[0].fileExt;\n }\n }\n else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = PlaySourceUrlBuilder.build({\n entryId: entryId,\n flavorIds: kalturaSource.flavorIds,\n format: kalturaSource.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: kalturaSource.getProtocol(this._getBaseProtocol())\n });\n\n }\n else {\n playUrl = kalturaSource.url;\n }\n\n if (playUrl == \"\") {\n logger.error(`failed to create play url from source, discarding source: (${entryId}_${kalturaSource.deliveryProfileId}), ${kalturaSource.format}.`);\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entryId + \"_\" + kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n if (kalturaSource.hasDrmData()) {\n let drmParams: Array = [];\n kalturaSource.drm.forEach((drm) => {\n drmParams.push(new Drm(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n }\n return mediaSource;\n }\n\n /**\n * Returns parsed progressive sources\n * @function _parseProgressiveSources\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {Array} - The parsed progressive kalturaSources\n * @static\n * @private\n */\n static _parseProgressiveSources(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): Array {\n let sources = [];\n if (kalturaSource) {\n let protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n let format = kalturaSource.format;\n let sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map((flavor) => {\n if (flavor.height && flavor.width) {\n let mediaSource: MediaSource = new MediaSource();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = PlaySourceUrlBuilder.build({\n entryId: entryId,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n /**\n * @function _isProgressiveSource\n * @param {KalturaPlaybackSource} source - The kaltura source\n * @return {boolean} - Is progressive source\n * @static\n * @private\n */\n static _isProgressiveSource(source: KalturaPlaybackSource): boolean {\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return !!sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n static _parseMetaData(metadataList: KalturaMetadataListResponse): Map {\n let metadata: Object = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach((meta) => {\n let metaXml: Object;\n let domParser: DOMParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n let metasObj: Object = XmlParser.xmlToJson(metaXml);\n let metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach((key) => {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n })\n })\n }\n return metadata;\n }\n\n /**\n * Returns the base protocol\n * @function _getBaseProtocol\n * @returns {string} - The base protocol\n * @static\n * @private\n */\n static _getBaseProtocol(): string {\n let splittedUrl: Array = config.baseUrl.split(\"/\");\n let baseProtocol: string;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n }\n else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/provider-parser.js","//@flow\nimport {Scheme} from '../../enums'\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nexport default class KalturaDrmPlaybackPluginData {\n /**\n * @member - The drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @member - The license URL\n * @type {string}\n */\n licenseURL: string;\n\n /**\n * @constructor\n * @param {Object} drm The json response\n */\n constructor(drm: any) {\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","//@flow\nimport {MetadataObjectType, MetadataStatus} from '../../enums'\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nexport default class KalturaMetadata {\n id: number;\n metadataProfileId: number;\n metadataProfileVersion: number;\n metadataObjectType: MetadataObjectType;\n objectId: string;\n version: number;\n created: Date;\n updated: Date;\n status: MetadataStatus;\n /**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n xml: string;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata.js","//@flow\nimport Configuration from './config'\n\nconst config = Configuration.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\nexport default class PlaySourceUrlBuilder {\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n static build(urlParams: Object): string {\n let baseUrl: string = config.baseUrl;\n let partnerId: string = urlParams.partnerId;\n let entryId: string = urlParams.entryId;\n let ks: string = urlParams.ks;\n let uiConfId: string = urlParams.uiConfId;\n let format: string = urlParams.format;\n let protocol: string = urlParams.protocol;\n let extension: string = urlParams.extension;\n let flavorIds: string = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n let playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n }\n else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n static endsWith(string: string, searchString: string): boolean {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/play-source-url-builder.js","//@flow\n\n/**\n * Xml parser\n * @classdesc\n */\nexport default class XmlParser {\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n static xmlToJson(xml: Object) {\n let obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n let attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n }\n else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n let item = xml.childNodes.item(i);\n let nodeName = item.nodeName;\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n }\n else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n let old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/xml-parser.js","//@flow\nimport OvpService from '../services/ovp-service'\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport {MultiRequestResult} from '../../multi-request-builder'\n\n/**\n * Data loaders manager\n * @classdesc\n */\nexport default class DataLoaderManager {\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n static _loadersResponseMap: Map> = new Map();\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n _multiRequest: MultiRequestBuilder;\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n _multiResponse: MultiRequestResult;\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n _loaders: Map = new Map();\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n constructor(partnerID: number, ks: string = \"\") {\n this._multiRequest = OvpService.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n add(loader: Function, params: Object): void {\n let execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n let startIndex = this._multiRequest.requests.length;\n //Get the requests\n let requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach((request) => {\n this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n let executionLoaderResponseMap = Array.from(new Array(requests.length), (val, index) => index + startIndex);\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n fetchData(): Promise {\n return new Promise((resolve, reject) => {\n this._multiRequest.execute()\n .then(response => {\n this._multiResponse = response;\n if (!response.success) {\n reject(response);\n }\n else {\n let preparedData: Object = this.prepareData(response);\n if (preparedData.success) {\n resolve(this._loaders);\n }\n else {\n reject({success: false, data: preparedData.error});\n }\n }\n },\n err => {\n reject(err);\n });\n });\n }\n\n prepareData(response: MultiRequestResult): Object {\n this._loaders.forEach(function (loader, name) {\n let loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = (response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1));\n }\n }\n catch (err) {\n return {success: false, error: err};\n }\n });\n return {success: true, data: this._loaders};\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/data-loader-manager.js","//@flow\n\nimport RequestBuilder from '../../request-builder'\nimport BaseEntryService from '../services/base-entry-service'\nimport MetaDataService from '../services/meta-data-service'\nimport Configuration from '../config'\nimport KalturaPlaybackContext from '../response-types/kaltura-playback-context'\nimport KalturaMetadataListResponse from '../response-types/kaltura-metadata-list-response'\nimport KalturaBaseEntryListResponse from '../response-types/kaltura-base-entry-list-response'\n\nconst config = Configuration.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class MediaEntryLoader implements ILoader {\n static get name(): string {\n return \"media\";\n }\n\n _entryId: string;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n let mediaEntryResponse: KalturaBaseEntryListResponse = new KalturaBaseEntryListResponse(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);\n this._response.metadataListResult = new KalturaMetadataListResponse(response[2].data);\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(BaseEntryService.list(config.beUrl, params.ks, params.entryId));\n requests.push(BaseEntryService.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(MetaDataService.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._entryId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/media-entry-loader.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\nexport default class BaseEntryService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static getPlaybackContext(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n let contextDataParams = {objectType: \"KalturaContextDataParams\", flavorTags: \"all\"};\n let params = {entryId: entryId, ks: ks, contextDataParams: contextDataParams};\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n static getEntryListReqParams(entryId: string, ks: string): any {\n let filterParams = {redirectFromEntryId: entryId};\n let responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return {ks: ks, filter: filterParams, responseProfile: responseProfileParams};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/base-entry-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\nexport default class MetaDataService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n let filter = {objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\"};\n let params = {filter: filter, ks: ks};\n request.params = params;\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/meta-data-service.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaAccessControlMessage from './kaltura-access-control-message'\nimport KalturaPlaybackSource from './kaltura-playback-source'\nimport KalturaRuleAction from './kaltura-rule-action'\nimport KalturaFlavorAsset from './kaltura-flavor-asset'\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nexport default class KalturaPlaybackContext extends ServiceResult {\n /**\n * @member - The playback sources\n * @type {Array}\n */\n sources: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n actions: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n messages: Array = [];\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n flavorAssets: Array = [];\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n constructor(response: Object) {\n super(response);\n if (!this.hasError) {\n\n let messages = response.messages;\n if (messages) {\n messages.map(message => this.messages.push(new KalturaAccessControlMessage(message)));\n }\n\n let actions = response.actions;\n if (actions) {\n actions.map(action => this.actions.push(new KalturaRuleAction(action)));\n }\n\n let sources = response.sources;\n if (sources) {\n sources.map(source => this.sources.push(new KalturaPlaybackSource(source)));\n }\n\n let flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(flavor => this.flavorAssets.push(new KalturaFlavorAsset(flavor)));\n }\n }\n\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-context.js","//@flow\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nexport default class KalturaAccessControlMessage {\n /**\n * @member - The access control message\n * @type {string}\n */\n message: string;\n /**\n * @member - The access control message code\n * @@type {string}\n */\n code: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n this.message = data.message;\n this.code = data.code\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-access-control-message.js","//@flow\nimport {KalturaRuleActionType} from '../../enums'\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nexport default class KalturaRuleAction {\n /**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n type: KalturaRuleActionType;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.type = data.type;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-rule-action.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMediaEntry from './kaltura-media-entry'\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nexport default class KalturaBaseEntryListResponse extends ServiceResult {\n /**\n * @member - The total count\n * @type {number}\n */\n totalCount: number;\n /**\n * @member - The entries\n * @type {Array}\n */\n entries: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.entries = [];\n responseObj.objects.map(entry => this.entries.push(new KalturaMediaEntry(entry)));\n }\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","//@flow\nimport {EntryType, MediaType} from '../../enums'\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nexport default class KalturaMediaEntry {\n /**\n * @member - The entry id\n * @type {string}\n */\n id: string;\n /**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\n name: string;\n /**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n dataUrl: string;\n /**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n flavorParamsIds: string;\n /**\n * @member - The entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n type: EntryType;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n entryType: MediaType;\n\n /**\n * @constructor\n * @param {Object} entry The json response\n */\n constructor(entry: Object) {\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n }\n}\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-media-entry.js","//@flow\nimport SessionService from '../services/session-service'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class SessionLoader implements ILoader {\n static get name(): string {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n _partnerId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.ks = response[0].data.ks;\n }\n\n get response(): any {\n return this._response.ks;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(SessionService.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._partnerId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/session-loader.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\nexport default class SessionService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static anonymousSession(baseUrl: string, partnerId: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = {widgetId: \"_\" + partnerId};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/session-service.js","//@flow\nimport UiConfService from '../services/ui-conf-service'\nimport KalturaUiConfResponse from '../response-types/kaltura-ui-conf-response'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n\nexport default class UiConfigLoader implements ILoader {\n static get name(): string {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.uiConf = new KalturaUiConfResponse(response[0].data);\n }\n\n get response(): any {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null)\n try {\n return JSON.parse(this._response.uiConf.config).plugins;\n }\n catch (err) {\n return null;\n }\n else\n return null;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(UiConfService.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._uiConfId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/ui-config-loader.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\nexport default class UiConfService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static get(baseUrl: string, ks: string, uiConfID: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n let responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = {id: uiConfID, responseProfile: responseProfileParams, ks: ks};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ui-conf-service.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport {UIConfType, UIConfCreationMode} from '../../enums';\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nexport default class KalturaUiConfResponse extends ServiceResult {\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n name: string;\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n description: string;\n objTypeAsString: string;\n width: number;\n height: number;\n htmlParams: string;\n swfUrl: string;\n confFilePath: string;\n confFile: string;\n confFileFeatures: string;\n name: string;\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n config: string;\n confVars: string;\n useCdn: boolean;\n tags: string;\n swfUrlVersion: string;\n created: Date;\n updated: Date;\n html5Url: string;\n version: string;\n partnerTags: string;\n objType: UIConfType;\n creationMode: UIConfCreationMode;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n super(data);\n if (!this.hasError) {\n this.name = data.name;\n\n this.description = data.description;\n this.objTypeAsString = data.objTypeAsString;\n this.width = data.width;\n this.height = data.height;\n this.htmlParams = data.htmlParams;\n this.swfUrl = data.swfUrl;\n this.confFilePath = data.confFilePath;\n this.confFile = data.confFile;\n this.confFileFeatures = data.confFileFeatures;\n this.config = data.config;\n this.confVars = data.confVars;\n this.useCdn = data.useCdn;\n this.tags = data.tags;\n this.swfUrlVersion = data.swfUrlVersion;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.html5Url = data.description;\n this.version = data.description;\n this.partnerTags = data.description;\n this.objType = data.description;\n this.creationMode = data.description;\n\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-ui-conf-response.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/ovpProvider.min.js b/dist/ovpProvider.min.js index ccc8c403..6eaea013 100644 --- a/dist/ovpProvider.min.js +++ b/dist/ovpProvider.min.js @@ -1,7 +1,7 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PlaykitJsProviders=t():e.PlaykitJsProviders=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=25)}([function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),this.headers=t,this.headers.set("Content-Type","application/json")}return a(e,[{key:"getUrl",value:function(){if(!this.baseUrl)throw new Error("baseUrl is mandatory for request builder");return this.baseUrl+"/service/"+this.service+(this.action?"/action/"+this.action:"")}},{key:"doHttpRequest",value:function(){var e=this,t=new XMLHttpRequest;return new Promise(function(n,r){t.onreadystatechange=function(){if(4===t.readyState)if(200===t.status){var e=JSON.parse(t.responseText);e&&"object"===(void 0===e?"undefined":o(e))&&e.code&&e.message?r(e):n(e)}else r(t.responseText)},t.open(e.method,e.getUrl()),e.headers.forEach(function(e,n){t.setRequestHeader(n,e)}),t.send(e.params)})}}]),e}();t.default=i},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n.")})})}}]),t}(l.default);t.default=v;var b=t.MultiRequestResult=function e(t){var n=this;a(this,e),this.results=[],this.success=!0,t.forEach(function(e){var t=new p.default(e);if(n.results.push(t),t.hasError)return y.error("Service returned an error with error code: "+t.error.code+" and message: "+t.error.message+"."),void(n.success=!1)})}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),this.headers=t,this.headers.set("Content-Type","application/json")}return a(e,[{key:"getUrl",value:function(){if(!this.baseUrl)throw new Error("baseUrl is mandatory for request builder");return this.baseUrl+"/service/"+this.service+(this.action?"/action/"+this.action:"")}},{key:"doHttpRequest",value:function(){var e=this,t=new XMLHttpRequest;return new Promise(function(n,r){t.onreadystatechange=function(){if(4===t.readyState)if(200===t.status){var e=JSON.parse(t.responseText);e&&"object"===(void 0===e?"undefined":o(e))&&e.code&&e.message?r(e):n(e)}else r(t.responseText)},t.open(e.method,e.getUrl()),e.headers.forEach(function(e,n){t.setRequestHeader(n,e)}),t.send(e.params)})}}]),e}();t.default=i},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n.")})})}}]),t}(l.default);t.default=v;var b=t.MultiRequestResult=function e(t){var n=this;a(this,e),this.results=[],this.success=!0,t.forEach(function(e){var t=new p.default(e);if(n.results.push(t),t.hasError)return y.error("Service returned an error with error code: "+t.error.code+" and message: "+t.error.message+"."),void(n.success=!1)})}},function(e,t,n){var r,o;/*! * js-logger - http://github.com/jonnyreeves/js-logger * Jonny Reeves, http://jonnyreeves.co.uk/ * js-logger may be freely distributed under the MIT license. */ -!function(a){"use strict";var i={};i.VERSION="1.3.0";var u,s={},c=function(e,t){return function(){return t.apply(e,arguments)}},l=function(){var e,t,n=arguments,r=n[0];for(t=1;t=t.value},debug:function(){this.invoke(i.DEBUG,arguments)},info:function(){this.invoke(i.INFO,arguments)},warn:function(){this.invoke(i.WARN,arguments)},error:function(){this.invoke(i.ERROR,arguments)},time:function(e){"string"==typeof e&&e.length>0&&this.invoke(i.TIME,[e,"start"])},timeEnd:function(e){"string"==typeof e&&e.length>0&&this.invoke(i.TIME,[e,"end"])},invoke:function(e,t){u&&this.enabledFor(e)&&u(t,l({level:e},this.context))}};var d=new p({filterLevel:i.OFF});!function(){var e=i;e.enabledFor=c(d,d.enabledFor),e.debug=c(d,d.debug),e.time=c(d,d.time),e.timeEnd=c(d,d.timeEnd),e.info=c(d,d.info),e.warn=c(d,d.warn),e.error=c(d,d.error),e.log=e.info}(),i.setHandler=function(e){u=e},i.setLevel=function(e){d.setLevel(e);for(var t in s)s.hasOwnProperty(t)&&s[t].setLevel(e)},i.get=function(e){return s[e]||(s[e]=new p(l({name:e},d.context)))},i.createDefaultHandler=function(e){e=e||{},e.formatter=e.formatter||function(e,t){t.name&&e.unshift("["+t.name+"]")};var t={},n=function(e,t){Function.prototype.apply.call(e,console,t)};return"undefined"==typeof console?function(){}:function(r,o){r=Array.prototype.slice.call(r);var a,u=console.log;o.level===i.TIME?(a=(o.name?"["+o.name+"] ":"")+r[0],"start"===r[1]?console.time?console.time(a):t[a]=(new Date).getTime():console.timeEnd?console.timeEnd(a):n(u,[a+": "+((new Date).getTime()-t[a])+"ms"])):(o.level===i.WARN&&console.warn?u=console.warn:o.level===i.ERROR&&console.error?u=console.error:o.level===i.INFO&&console.info&&(u=console.info),e.formatter(r,o),n(u,r))}},i.useDefaults=function(e){i.setLevel(e&&e.defaultLevel||i.DEBUG),i.setHandler(i.createDefaultHandler(e))},r=i,void 0!==(o="function"==typeof r?r.call(t,n,t,e):r)&&(e.exports=o)}()},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(2),a=n(7),i=(function(e){e&&e.__esModule}(a),function e(){r(this,e),this.metaData=new Map,this.type=o.MediaEntryType.Unknown});t.default=i},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t,n){r(this,e),this.licenseUrl=t,this.scheme=n});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.MediaFormat=void 0;var i=n(18);(t.MediaFormat=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return a(t,e),t}(i.Enum)).initEnum({dash:{get mimeType(){return"application/dash+xml"},get pathExt(){return"mpd"}},hls:{get mimeType(){return"application/x-mpegURL"},get pathExt(){return"m3u8"}},wvm:{get mimeType(){return"video/wvm"},get pathExt(){return"wvm"}},mp4:{get mimeType(){return"video/mp4"},get pathExt(){return"mp4"}},mp3:{get mimeType(){return"audio/mpeg"},get pathExt(){return"mp3"}}})},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(10),a=(function(e){e&&e.__esModule}(o),function e(){r(this,e)});t.default=a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.flavorParamsId=t.flavorParamsId,this.fileExt=t.fileExt,this.bitrate=t.bitrate,this.width=t.width,this.height=t.height,this.id=t.id,this.frameRate=t.frameRate,this.isOriginal=t.isOriginal,this.isWeb=t.isWeb,this.containerFormat=t.containerFormat,this.videoCodecId=t.videoCodecId,this.status=t.status,this.language=t.language,this.label=t.label});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.name=t.name,this.dataUrl=t.dataUrl,this.type=t.type,this.entryType=t.mediaType,this.flavorParamsIds=t.flavorParamsIds,this.duration=t.duration});t.default=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=n(4),s=r(u),c=n(30),l=r(c),f=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.hasError||(n.totalCount=e.totalCount,n.totalCount>0&&(n.metas=[],e.objects.map(function(e){return n.metas.push(new l.default(e))}))),n}return i(t,e),t}(s.default);t.default=f},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=n(4),s=r(u),c=n(27),l=r(c),f=n(17),p=r(f),d=n(31),h=r(d),y=n(13),v=r(y),b=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));if(n.sources=[],n.actions=[],n.messages=[],n.flavorAssets=[],!n.hasError){var r=e.messages;r&&r.map(function(e){return n.messages.push(new l.default(e))});var i=e.actions;i&&i.map(function(e){return n.actions.push(new h.default(e))});var u=e.sources;u&&u.map(function(e){return n.sources.push(new p.default(e))});var s=e.flavorAssets;s&&s.map(function(e){return n.flavorAssets.push(new v.default(e))})}return n}return i(t,e),t}(s.default);t.default=b},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0}},{key:"hasFlavorIds",value:function(){return!!this.flavorIds&&this.flavorIds.length>0}},{key:"getProtocol",value:function(e){var t="";if(this.protocols&&this.protocols.length>0){this.protocols.split(",").forEach(function(n){n==e&&(t=n)})}else if("http"==e)return e;return t}}]),e}();t.default=u},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){var n=!0,r=!1,o=void 0;try{for(var a,i=Object.getOwnPropertyNames(t)[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var u=a.value,s=Object.getOwnPropertyDescriptor(t,u);Object.defineProperty(e,u,s)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}return e}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"";o(this,e),this._loaders=new Map,this._multiRequest=u.default.getMultirequest(n,t)}return a(e,[{key:"add",value:function(t,n){var r=this,o=new t(n);if(o.isValid()){this._loaders.set(t.name,o);var a=this._multiRequest.requests.length,i=o.requests;i.forEach(function(e){r._multiRequest.add(e)});var u=Array.from(new Array(i.length),function(e,t){return t+a});e._loadersResponseMap.set(t.name,u)}}},{key:"fetchData",value:function(){var e=this;return new Promise(function(t,n){e._multiRequest.execute().then(function(r){if(e._multiResponse=r,r.success){var o=e.prepareData(r);o.success?t(e._loaders):n({success:!1,data:o.error})}else n(r)},function(e){n(e)})})}},{key:"prepareData",value:function(t){return this._loaders.forEach(function(n,r){var o=e._loadersResponseMap.get(r);try{null!=o&&(n.response=t.results.slice(o[0],o[o.length-1]+1))}catch(e){return{success:!1,error:e}}}),{success:!0,data:this._loaders}}}]),e}());c._loadersResponseMap=new Map,t.default=c},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&(function(){t.forEach(function(t){if(!1===e._isProgressiveSource(t)){var s=e._parseAdaptiveSource(t,n,r,o,a,i),c=k.get(t.format);u.map(s,c)}})}(),function(){var s=t.find(function(t){return e._isProgressiveSource(t)});u.progressive=e._parseProgressiveSources(s,i.flavorAssets,n,r,o,a)}()),u}},{key:"_isProgressiveSource",value:function(e){var t=k.get(e.format);return t&&"mp4"===t.name}},{key:"_parseAdaptiveSource",value:function(e,t,n,r,o,a){var i="",u=k.get(e.format),s=new j.default;if(e.hasFlavorIds()){var c="";if(u)c=u.pathExt,s.mimetype=u.mimeType;else{var l=e.flavorIds.split(","),f=a.flavorAssets.filter(function(e){return-1!=l.indexOf(e.id)});f&&f.length>0&&(c=f[0].fileExt)}i=p.default.build({entryId:o.id,flavorIds:e.flavorIds,format:e.format,ks:t,partnerId:n,uiConfId:r,extension:c,protocol:e.getProtocol(this._getBaseProtocol())})}else i=e.url;if(""==i)return C.error("failed to create play url from source, discarding source: ("+o.id+"_"+e.deliveryProfileId+"), "+e.format+"."),s;if(s.url=i,s.id=o.id+"_"+e.deliveryProfileId+","+e.format,e.hasDrmData()){var d=[];e.drm.forEach(function(e){d.push(new P.default(e.licenseURL,e.scheme))}),s.drmData=d}return s}},{key:"_parseMetaData",value:function(e){var t={};return e&&e.metas&&e.metas.length>0&&e.metas.forEach(function(e){var n=void 0,r=new DOMParser;e.xml=e.xml.replace(/\r?\n|\r/g,""),e.xml=e.xml.replace(/>\s*/g,">"),e.xml=e.xml.replace(/>\s*/g,">"),n=r.parseFromString(e.xml,"text/xml");var o=h.default.xmlToJson(n);Object.keys(o.metadata).forEach(function(e){t[e]=o.metadata[e]["#text"]})}),t}},{key:"_parseProgressiveSources",value:function(e,t,n,r,o,a){var i=[];if(e){var u=e.getProtocol(this._getBaseProtocol()),s=e.format,c=e.deliveryProfileId+","+e.format;t.map(function(e){if(e.height&&e.width){var t=new j.default;t.id=e.id+c,t.mimetype="video/mp4",t.height=e.height,t.width=e.width,t.bandwidth=1024*e.bitrate,t.label=e.label||e.language,t.url=p.default.build({entryId:a.id,flavorIds:e.id,format:s,ks:n,partnerId:r,uiConfId:o,extension:"mp4",protocol:u}),i.push(t)}})}return i}},{key:"_getBaseProtocol",value:function(){var e=R.baseUrl.split("/");return e&&e.length>0?e[0].substring(0,e[0].length-1):"http"}}]),e}();t.default=A},,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.OvpProvider=void 0;var a=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"",r=arguments[2];o(this,e),this.partnerID=t,this.ks=n,this._isAnonymous=!this.ks,m.default.set(r)}return a(e,[{key:"getConfig",value:function(e,t){var n=this;return null!=t&&(this._uiConfId=t),this._dataLoader=new f.default(this.partnerID,this.ks),new Promise(function(r,o){if(n.validateParams(e,t)){var a=n.ks;n._isAnonymous&&(a="{1:result:ks}",n._dataLoader.add(y.default,{partnerId:n.partnerID})),n._dataLoader.add(d.default,{entryId:e,ks:a}),n._dataLoader.add(b.default,{uiConfId:t,ks:a}),n._dataLoader.fetchData().then(function(e){r(n.parseDataFromResponse(e))},function(e){o(e)})}else o({success:!1,data:"Missing mandatory parameter"})})}},{key:"parseDataFromResponse",value:function(e){w.debug("Data parsing started");var t={id:"",session:{partnerID:this.partnerID,uiConfID:this._uiConfId},sources:new g.default,duration:0,type:"Unknown",metadata:{},plugins:{}};if(null!=e){if(e.has(y.default.name)){var n=e.get(y.default.name);null!=n&&null!=n.response&&(this.ks=n.response,this._isAnonymous=!this.ks,t.session.ks=this.ks)}if(e.has(b.default.name)){var r=e.get(b.default.name),o={};null!=r&&(o=r.response),t.plugins=o}if(e.has(d.default.name)){var a=e.get(d.default.name);if(null!=a&&null!=a.response){var i=c.default.getMediaEntry(this.ks,this.partnerID,this._uiConfId,a.response);t.id=i.id,t.sources=i.sources,t.duration=i.duration,t.type=i.type.name,t.metadata=i.metaData}}}return w.debug("Data parsing finished",t),t}},{key:"validateParams",value:function(e,t){return!!e||!!t}}]),e}();t.default=P},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0&&(n.entries=[],e.objects.map(function(e){return n.entries.push(new l.default(e))}))),n}return i(t,e),t}(s.default);t.default=f},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.scheme=t.scheme,this.licenseURL=t.licenseURL});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.metadataProfileId=t.metadataProfileId,this.metadataProfileVersion=t.metadataProfileVersion,this.metadataProfileId=t.metadataProfileId,this.metadataObjectType=t.metadataObjectType,this.objectId=t.objectId,this.version=t.version,this.created=new Date(0),this.created.setUTCSeconds(t.createdAt),this.updated=new Date(0),this.updated.setUTCSeconds(t.updatedAt),this.status=t.status,this.xml=t.xml});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.type=t.type});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=n(4),u=function(e){return e&&e.__esModule?e:{default:e}}(i),s=(n(2),function(e){function t(e){r(this,t);var n=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.hasError||(n.name=e.name,n.description=e.description,n.objTypeAsString=e.objTypeAsString,n.width=e.width,n.height=e.height,n.htmlParams=e.htmlParams,n.swfUrl=e.swfUrl,n.confFilePath=e.confFilePath,n.confFile=e.confFile,n.confFileFeatures=e.confFileFeatures,n.config=e.config,n.confVars=e.confVars,n.useCdn=e.useCdn,n.tags=e.tags,n.swfUrlVersion=e.swfUrlVersion,n.created=new Date(0),n.created.setUTCSeconds(e.createdAt),n.updated=new Date(0),n.updated.setUTCSeconds(e.updatedAt),n.html5Url=e.description,n.version=e.description,n.partnerTags=e.description,n.objType=e.description,n.creationMode=e.description),n}return a(t,e),t}(u.default));t.default=s},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=function(){function e(e,t){for(var n=0;n0){t["@attributes"]={};for(var n=0;n=t.value},debug:function(){this.invoke(i.DEBUG,arguments)},info:function(){this.invoke(i.INFO,arguments)},warn:function(){this.invoke(i.WARN,arguments)},error:function(){this.invoke(i.ERROR,arguments)},time:function(e){"string"==typeof e&&e.length>0&&this.invoke(i.TIME,[e,"start"])},timeEnd:function(e){"string"==typeof e&&e.length>0&&this.invoke(i.TIME,[e,"end"])},invoke:function(e,t){u&&this.enabledFor(e)&&u(t,l({level:e},this.context))}};var d=new p({filterLevel:i.OFF});!function(){var e=i;e.enabledFor=c(d,d.enabledFor),e.debug=c(d,d.debug),e.time=c(d,d.time),e.timeEnd=c(d,d.timeEnd),e.info=c(d,d.info),e.warn=c(d,d.warn),e.error=c(d,d.error),e.log=e.info}(),i.setHandler=function(e){u=e},i.setLevel=function(e){d.setLevel(e);for(var t in s)s.hasOwnProperty(t)&&s[t].setLevel(e)},i.get=function(e){return s[e]||(s[e]=new p(l({name:e},d.context)))},i.createDefaultHandler=function(e){e=e||{},e.formatter=e.formatter||function(e,t){t.name&&e.unshift("["+t.name+"]")};var t={},n=function(e,t){Function.prototype.apply.call(e,console,t)};return"undefined"==typeof console?function(){}:function(r,o){r=Array.prototype.slice.call(r);var a,u=console.log;o.level===i.TIME?(a=(o.name?"["+o.name+"] ":"")+r[0],"start"===r[1]?console.time?console.time(a):t[a]=(new Date).getTime():console.timeEnd?console.timeEnd(a):n(u,[a+": "+((new Date).getTime()-t[a])+"ms"])):(o.level===i.WARN&&console.warn?u=console.warn:o.level===i.ERROR&&console.error?u=console.error:o.level===i.INFO&&console.info&&(u=console.info),e.formatter(r,o),n(u,r))}},i.useDefaults=function(e){i.setLevel(e&&e.defaultLevel||i.DEBUG),i.setHandler(i.createDefaultHandler(e))},r=i,void 0!==(o="function"==typeof r?r.call(t,n,t,e):r)&&(e.exports=o)}()},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0}},{key:"hasFlavorIds",value:function(){return!!this.flavorIds&&this.flavorIds.length>0}},{key:"getProtocol",value:function(e){var t="";if(this.protocols&&this.protocols.length>0){this.protocols.split(",").forEach(function(n){n==e&&(t=n)})}else if("http"==e)return e;return t}}]),e}();t.default=u},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){var n=!0,r=!1,o=void 0;try{for(var a,i=Object.getOwnPropertyNames(t)[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var u=a.value,s=Object.getOwnPropertyDescriptor(t,u);Object.defineProperty(e,u,s)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}return e}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n0&&(n.metas=[],e.objects.map(function(e){return n.metas.push(new l.default(e))}))),n}return i(t,e),t}(s.default);t.default=f},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.MediaFormat=void 0;var i=n(10);(t.MediaFormat=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return a(t,e),t}(i.Enum)).initEnum({dash:{get mimeType(){return"application/dash+xml"},get pathExt(){return"mpd"}},hls:{get mimeType(){return"application/x-mpegURL"},get pathExt(){return"m3u8"}},wvm:{get mimeType(){return"video/wvm"},get pathExt(){return"wvm"}},mp4:{get mimeType(){return"video/mp4"},get pathExt(){return"mp4"}},mp3:{get mimeType(){return"audio/mpeg"},get pathExt(){return"mp3"}}})},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(2),a=n(8),i=(function(e){e&&e.__esModule}(a),function e(){r(this,e),this.metaData=new Map,this.type=o.MediaEntryType.Unknown});t.default=i},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(16),a=(function(e){e&&e.__esModule}(o),function e(){r(this,e)});t.default=a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t,n){r(this,e),this.licenseUrl=t,this.scheme=n});t.default=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.OvpProvider=void 0;var a=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"",r=arguments[2];o(this,e),this.partnerID=t,this.ks=n,this._isAnonymous=!this.ks,m.default.set(r)}return a(e,[{key:"getConfig",value:function(e,t){var n=this;return null!=t&&(this._uiConfId=t),this._dataLoader=new f.default(this.partnerID,this.ks),new Promise(function(r,o){if(n.validateParams(e,t)){var a=n.ks;n._isAnonymous&&(a="{1:result:ks}",n._dataLoader.add(y.default,{partnerId:n.partnerID})),n._dataLoader.add(d.default,{entryId:e,ks:a}),n._dataLoader.add(b.default,{uiConfId:t,ks:a}),n._dataLoader.fetchData().then(function(e){r(n.parseDataFromResponse(e))},function(e){o(e)})}else o({success:!1,data:"Missing mandatory parameter"})})}},{key:"parseDataFromResponse",value:function(e){w.debug("Data parsing started");var t={id:"",session:{partnerID:this.partnerID,uiConfID:this._uiConfId},sources:new g.default,duration:0,type:"Unknown",metadata:{},plugins:{}};if(null!=e){if(e.has(y.default.name)){var n=e.get(y.default.name);null!=n&&null!=n.response&&(this.ks=n.response,this._isAnonymous=!this.ks,t.session.ks=this.ks)}if(e.has(b.default.name)){var r=e.get(b.default.name),o={};null!=r&&(o=r.response),t.plugins=o}if(e.has(d.default.name)){var a=e.get(d.default.name);if(null!=a&&null!=a.response){var i=c.default.getMediaEntry(this.ks,this.partnerID,this._uiConfId,a.response);t.id=i.id,t.sources=i.sources,t.duration=i.duration,t.type=i.type.name,t.metadata=i.metaData}}}return w.debug("Data parsing finished",t),t}},{key:"validateParams",value:function(e,t){return!!e||!!t}}]),e}();t.default=P},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&(function(){t.filter(function(t){return!e._isProgressiveSource(t)}).forEach(s)}(),function(){var s=t.find(e._isProgressiveSource);u.progressive=e._parseProgressiveSources(s,i.flavorAssets,n,r,o,a.id)}()),u}},{key:"_parseAdaptiveSource",value:function(e,t,n,r,o,a){var i=new P.default;if(e){var u="",s=R.get(e.format);if(e.hasFlavorIds()){var c="";s?(c=s.pathExt,i.mimetype=s.mimeType):t&&t.length>0&&(c=t[0].fileExt),u=l.default.build({entryId:a,flavorIds:e.flavorIds,format:e.format,ks:n,partnerId:r,uiConfId:o,extension:c,protocol:e.getProtocol(this._getBaseProtocol())})}else u=e.url;if(""==u)return M.error("failed to create play url from source, discarding source: ("+a+"_"+e.deliveryProfileId+"), "+e.format+"."),i;if(i.url=u,i.id=a+"_"+e.deliveryProfileId+","+e.format,e.hasDrmData()){var f=[];e.drm.forEach(function(e){f.push(new g.default(e.licenseURL,e.scheme))}),i.drmData=f}}return i}},{key:"_parseProgressiveSources",value:function(e,t,n,r,o,a){var i=[];if(e){var u=e.getProtocol(this._getBaseProtocol()),s=e.format,c=e.deliveryProfileId+","+e.format;t.map(function(e){if(e.height&&e.width){var t=new P.default;t.id=e.id+c,t.mimetype="video/mp4",t.height=e.height,t.width=e.width,t.bandwidth=1024*e.bitrate,t.label=e.label||e.language,t.url=l.default.build({entryId:a,flavorIds:e.id,format:s,ks:n,partnerId:r,uiConfId:o,extension:"mp4",protocol:u}),i.push(t)}})}return i}},{key:"_isProgressiveSource",value:function(e){var t=R.get(e.format);return!!t&&"mp4"===t.name}},{key:"_parseMetaData",value:function(e){var t={};return e&&e.metas&&e.metas.length>0&&e.metas.forEach(function(e){var n=void 0,r=new DOMParser;e.xml=e.xml.replace(/\r?\n|\r/g,""),e.xml=e.xml.replace(/>\s*/g,">"),e.xml=e.xml.replace(/>\s*/g,">"),n=r.parseFromString(e.xml,"text/xml");var o=p.default.xmlToJson(n);Object.keys(o.metadata).forEach(function(e){t[e]=o.metadata[e]["#text"]})}),t}},{key:"_getBaseProtocol",value:function(){var e=T.baseUrl.split("/");return e&&e.length>0?e[0].substring(0,e[0].length-1):"http"}}]),e}();t.default=C},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.scheme=t.scheme,this.licenseURL=t.licenseURL});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.metadataProfileId=t.metadataProfileId,this.metadataProfileVersion=t.metadataProfileVersion,this.metadataProfileId=t.metadataProfileId,this.metadataObjectType=t.metadataObjectType,this.objectId=t.objectId,this.version=t.version,this.created=new Date(0),this.created.setUTCSeconds(t.createdAt),this.updated=new Date(0),this.updated.setUTCSeconds(t.updatedAt),this.status=t.status,this.xml=t.xml});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0){t["@attributes"]={};for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"";o(this,e),this._loaders=new Map,this._multiRequest=u.default.getMultirequest(n,t)}return a(e,[{key:"add",value:function(t,n){var r=this,o=new t(n);if(o.isValid()){this._loaders.set(t.name,o);var a=this._multiRequest.requests.length,i=o.requests;i.forEach(function(e){r._multiRequest.add(e)});var u=Array.from(new Array(i.length),function(e,t){return t+a});e._loadersResponseMap.set(t.name,u)}}},{key:"fetchData",value:function(){var e=this;return new Promise(function(t,n){e._multiRequest.execute().then(function(r){if(e._multiResponse=r,r.success){var o=e.prepareData(r);o.success?t(e._loaders):n({success:!1,data:o.error})}else n(r)},function(e){n(e)})})}},{key:"prepareData",value:function(t){return this._loaders.forEach(function(n,r){var o=e._loadersResponseMap.get(r);try{null!=o&&(n.response=t.results.slice(o[0],o[o.length-1]+1))}catch(e){return{success:!1,error:e}}}),{success:!0,data:this._loaders}}}]),e}());c._loadersResponseMap=new Map,t.default=c},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&(n.entries=[],e.objects.map(function(e){return n.entries.push(new l.default(e))}))),n}return i(t,e),t}(s.default);t.default=f},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.name=t.name,this.dataUrl=t.dataUrl,this.type=t.type,this.entryType=t.mediaType,this.flavorParamsIds=t.flavorParamsIds,this.duration=t.duration});t.default=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n} headers The request headers\n */\n\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n\n /**\n * @member - Service headers\n * @type {Map}\n */\n\n /**\n * @member - Service action\n * @type {string}\n */\n function RequestBuilder() {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n _classCallCheck(this, RequestBuilder);\n\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n\n /**\n * @member - Service tag\n * @type {string}\n */\n\n /**\n * @member - Service base url\n * @type {Map}\n */\n\n /**\n * @member - Service params\n * @type {any}\n */\n\n\n /**\n * @member - Service name\n * @type {string}\n */\n\n\n _createClass(RequestBuilder, [{\n key: \"getUrl\",\n value: function getUrl() {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n var url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n\n }, {\n key: \"doHttpRequest\",\n value: function doHttpRequest() {\n var _this = this;\n\n var request = new XMLHttpRequest();\n return new Promise(function (resolve, reject) {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n var jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && (typeof jsonResponse === \"undefined\" ? \"undefined\" : _typeof(jsonResponse)) === 'object' && jsonResponse.code && jsonResponse.message) reject(jsonResponse);else resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(_this.method, _this.getUrl());\n _this.headers.forEach(function (value, key) {\n request.setRequestHeader(key, value);\n });\n request.send(_this.params);\n });\n }\n }]);\n\n return RequestBuilder;\n}();\n\nexports.default = RequestBuilder;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nvar Configuration = function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n }\n\n _createClass(Configuration, null, [{\n key: \"set\",\n value: function set(clientConfig) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n return defaultConfig;\n }\n }]);\n\n return Configuration;\n}();\n\nexports.default = Configuration;\nexports.Configuration = Configuration;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UIConfCreationMode = exports.UIConfType = exports.MediaEntryType = exports.MediaType = exports.EntryType = exports.EntryModerationStatus = exports.EntryStatus = exports.MetadataStatus = exports.MetadataObjectType = exports.Status = exports.KalturaRuleActionType = exports.Scheme = undefined;\n\nvar _enumify = __webpack_require__(18);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Scheme = exports.Scheme = function (_Enum) {\n _inherits(Scheme, _Enum);\n\n function Scheme() {\n _classCallCheck(this, Scheme);\n\n return _possibleConstructorReturn(this, (Scheme.__proto__ || Object.getPrototypeOf(Scheme)).apply(this, arguments));\n }\n\n return Scheme;\n}(_enumify.Enum);\n\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\nvar KalturaRuleActionType = exports.KalturaRuleActionType = function (_Enum2) {\n _inherits(KalturaRuleActionType, _Enum2);\n\n function KalturaRuleActionType() {\n _classCallCheck(this, KalturaRuleActionType);\n\n return _possibleConstructorReturn(this, (KalturaRuleActionType.__proto__ || Object.getPrototypeOf(KalturaRuleActionType)).apply(this, arguments));\n }\n\n return KalturaRuleActionType;\n}(_enumify.Enum);\n\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nvar Status = exports.Status = function (_Enum3) {\n _inherits(Status, _Enum3);\n\n function Status() {\n _classCallCheck(this, Status);\n\n return _possibleConstructorReturn(this, (Status.__proto__ || Object.getPrototypeOf(Status)).apply(this, arguments));\n }\n\n return Status;\n}(_enumify.Enum);\n\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nvar MetadataObjectType = exports.MetadataObjectType = function (_Enum4) {\n _inherits(MetadataObjectType, _Enum4);\n\n function MetadataObjectType() {\n _classCallCheck(this, MetadataObjectType);\n\n return _possibleConstructorReturn(this, (MetadataObjectType.__proto__ || Object.getPrototypeOf(MetadataObjectType)).apply(this, arguments));\n }\n\n return MetadataObjectType;\n}(_enumify.Enum);\n\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nvar MetadataStatus = exports.MetadataStatus = function (_Enum5) {\n _inherits(MetadataStatus, _Enum5);\n\n function MetadataStatus() {\n _classCallCheck(this, MetadataStatus);\n\n return _possibleConstructorReturn(this, (MetadataStatus.__proto__ || Object.getPrototypeOf(MetadataStatus)).apply(this, arguments));\n }\n\n return MetadataStatus;\n}(_enumify.Enum);\n\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\nvar EntryStatus = exports.EntryStatus = function (_Enum6) {\n _inherits(EntryStatus, _Enum6);\n\n function EntryStatus() {\n _classCallCheck(this, EntryStatus);\n\n return _possibleConstructorReturn(this, (EntryStatus.__proto__ || Object.getPrototypeOf(EntryStatus)).apply(this, arguments));\n }\n\n return EntryStatus;\n}(_enumify.Enum);\n\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nvar EntryModerationStatus = exports.EntryModerationStatus = function (_Enum7) {\n _inherits(EntryModerationStatus, _Enum7);\n\n function EntryModerationStatus() {\n _classCallCheck(this, EntryModerationStatus);\n\n return _possibleConstructorReturn(this, (EntryModerationStatus.__proto__ || Object.getPrototypeOf(EntryModerationStatus)).apply(this, arguments));\n }\n\n return EntryModerationStatus;\n}(_enumify.Enum);\n\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nvar EntryType = exports.EntryType = function (_Enum8) {\n _inherits(EntryType, _Enum8);\n\n function EntryType() {\n _classCallCheck(this, EntryType);\n\n return _possibleConstructorReturn(this, (EntryType.__proto__ || Object.getPrototypeOf(EntryType)).apply(this, arguments));\n }\n\n return EntryType;\n}(_enumify.Enum);\n\nEntryType.initEnum({\n AUTOMATIC: { value: -1 },\n EXTERNAL_MEDIA: { value: \"externalMedia.externalMedia\" },\n MEDIA_CLIP: { value: 1 },\n MIX: { value: 2 },\n PLAYLIST: { value: 5 },\n DATA: { value: 6 },\n LIVE_STREAM: { value: 7 },\n LIVE_CHANNEL: { value: 8 },\n DOCUMENT: { value: 10 }\n});\n\nvar MediaType = exports.MediaType = function (_Enum9) {\n _inherits(MediaType, _Enum9);\n\n function MediaType() {\n _classCallCheck(this, MediaType);\n\n return _possibleConstructorReturn(this, (MediaType.__proto__ || Object.getPrototypeOf(MediaType)).apply(this, arguments));\n }\n\n return MediaType;\n}(_enumify.Enum);\n\nMediaType.initEnum({\n VIDEO: { value: 1 },\n IMAGE: { value: 2 },\n AUDIO: { value: 5 },\n LIVE_STREAM_FLASH: { value: 201 },\n LIVE_STREAM_WINDOWS_MEDIA: { value: 202 },\n LIVE_STREAM_REAL_MEDIA: { value: 203 },\n LIVE_STREAM_QUICKTIME: { value: 204 }\n});\n\nvar MediaEntryType = exports.MediaEntryType = function (_Enum10) {\n _inherits(MediaEntryType, _Enum10);\n\n function MediaEntryType() {\n _classCallCheck(this, MediaEntryType);\n\n return _possibleConstructorReturn(this, (MediaEntryType.__proto__ || Object.getPrototypeOf(MediaEntryType)).apply(this, arguments));\n }\n\n return MediaEntryType;\n}(_enumify.Enum);\n\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nvar UIConfType = exports.UIConfType = function (_Enum11) {\n _inherits(UIConfType, _Enum11);\n\n function UIConfType() {\n _classCallCheck(this, UIConfType);\n\n return _possibleConstructorReturn(this, (UIConfType.__proto__ || Object.getPrototypeOf(UIConfType)).apply(this, arguments));\n }\n\n return UIConfType;\n}(_enumify.Enum);\n\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nvar UIConfCreationMode = exports.UIConfCreationMode = function (_Enum12) {\n _inherits(UIConfCreationMode, _Enum12);\n\n function UIConfCreationMode() {\n _classCallCheck(this, UIConfCreationMode);\n\n return _possibleConstructorReturn(this, (UIConfCreationMode.__proto__ || Object.getPrototypeOf(UIConfCreationMode)).apply(this, arguments));\n }\n\n return UIConfCreationMode;\n}(_enumify.Enum);\n\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\nvar SERVICE_NAME = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\n\nvar OvpService = function () {\n function OvpService() {\n _classCallCheck(this, OvpService);\n }\n\n _createClass(OvpService, null, [{\n key: 'getMultirequest',\n\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n value: function getMultirequest(ks, partnerId) {\n var ovpParams = config.serviceParams;\n Object.assign(ovpParams, { ks: ks });\n if (partnerId) {\n Object.assign(ovpParams, { partnerId: partnerId });\n }\n var multiReq = new _multiRequestBuilder2.default();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n }]);\n\n return OvpService;\n}();\n\nexports.default = OvpService;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base service result\n * @classdesc\n */\nvar ServiceResult =\n\n/**\n * @constructor\n * @param {Object} response - Service response\n */\n\n/**\n * @member - The service error\n * @type {ServiceError}\n */\n\n/**\n * @member - The service result data\n * @type {Object}\n */\nfunction ServiceResult(response) {\n _classCallCheck(this, ServiceResult);\n\n this.hasError = false;\n\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else {\n this.data = response;\n }\n}\n\n/**\n * @member - Is service returned an error\n * @type {boolean}\n */\n;\n\n/**\n * Service error\n * @classdesc\n */\n\n\nexports.default = ServiceResult;\n\nvar ServiceError =\n\n/**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n\n/**\n * @member - The error code\n * @type {string}\n */\nfunction ServiceError(code, message) {\n _classCallCheck(this, ServiceError);\n\n this.code = code;\n this.message = message;\n}\n/**\n * @member - The error message\n * @type {string}\n */\n;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOG_LEVEL = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jsLogger = __webpack_require__(8);\n\nvar JsLogger = _interopRequireWildcard(_jsLogger);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LoggerFactory = function () {\n function LoggerFactory(options) {\n _classCallCheck(this, LoggerFactory);\n\n JsLogger.useDefaults(options || {});\n }\n\n _createClass(LoggerFactory, [{\n key: \"get\",\n value: function get(name) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n }]);\n\n return LoggerFactory;\n}();\n\nvar Logger = new LoggerFactory({ defaultLevel: JsLogger.DEBUG });\nvar LOG_LEVEL = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexports.default = Logger;\nexports.LOG_LEVEL = LOG_LEVEL;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MultiRequestResult = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\n\nvar MultiRequestBuilder = function (_RequestBuilder) {\n _inherits(MultiRequestBuilder, _RequestBuilder);\n\n /**\n * @constructor\n */\n function MultiRequestBuilder() {\n _classCallCheck(this, MultiRequestBuilder);\n\n var _this = _possibleConstructorReturn(this, (MultiRequestBuilder.__proto__ || Object.getPrototypeOf(MultiRequestBuilder)).call(this));\n\n _this.requests = [];\n return _this;\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n\n\n _createClass(MultiRequestBuilder, [{\n key: 'add',\n value: function add(request) {\n this.requests.push(request);\n var requestParams = {};\n var serviceDef = { service: request.service, action: request.action };\n Object.assign(requestParams, _defineProperty({}, this.requests.length, Object.assign(serviceDef, request.params)));\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n\n }, {\n key: 'execute',\n value: function execute() {\n var _this2 = this;\n\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n logger.error('' + err.message);\n }\n return new Promise(function (resolve, reject) {\n _this2.doHttpRequest().then(function (data) {\n resolve(new MultiRequestResult(data));\n }, function (err) {\n var errorText = 'Error on multiRequest execution, error <' + err + '>.';\n reject(errorText);\n });\n });\n }\n }]);\n\n return MultiRequestBuilder;\n}(_requestBuilder2.default);\n\n/**\n * Multi Request result object\n * @classdesc\n */\n\n\nexports.default = MultiRequestBuilder;\n\nvar MultiRequestResult =\n\n/**\n * @constructor\n * @param {Object} response data\n */\n\n\n/**\n * @member - Is success\n * @type {boolean}\n */\nexports.MultiRequestResult = function MultiRequestResult(response) {\n var _this3 = this;\n\n _classCallCheck(this, MultiRequestResult);\n\n this.results = [];\n\n this.success = true;\n response.forEach(function (result) {\n var serviceResult = new _baseServiceResult2.default(result);\n _this3.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error('Service returned an error with error code: ' + serviceResult.error.code + ' and message: ' + serviceResult.error.message + '.');\n _this3.success = false;\n return;\n }\n });\n}\n/**\n * @member - Multi request response data\n * @type {Object}\n */\n;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _mediaSource = __webpack_require__(12);\n\nvar _mediaSource2 = _interopRequireDefault(_mediaSource);\n\nvar _mediaFormat = __webpack_require__(11);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nvar MediaSources = function () {\n\n /**\n * @constructor\n */\n\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n function MediaSources() {\n _classCallCheck(this, MediaSources);\n\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n\n\n _createClass(MediaSources, [{\n key: 'map',\n value: function map(source, mediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n }]);\n\n return MediaSources;\n}();\n\nexports.default = MediaSources;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nvar _mediaSources = __webpack_require__(7);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Media entry\n * @classdesc\n */\nvar MediaEntry =\n\n/**\n * @constructor\n */\n\n/**\n * @member - entry type\n * @type {MediaEntryType}\n */\n\n/**\n * @member - entry sources\n * @type {MediaSources}\n */\nfunction MediaEntry() {\n _classCallCheck(this, MediaEntry);\n\n this.metaData = new Map();\n this.type = _enums.MediaEntryType.Unknown;\n}\n/**\n * @member - entry metadata\n * @type {Map}\n */\n\n/**\n * @member - entry duration\n * @type {number}\n */\n\n\n/**\n * @member - entry ID\n * @type {string}\n */\n;\n\nexports.default = MediaEntry;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Drm data\n * @classdesc\n */\nvar Drm =\n\n/**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n\n\n/**\n * @member - license URL\n * @type {string}\n */\nfunction Drm(licenseUrl, scheme) {\n _classCallCheck(this, Drm);\n\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n}\n/**\n * @member - drm scheme\n * @type {Scheme}\n */\n;\n\nexports.default = Drm;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MediaFormat = undefined;\n\nvar _enumify = __webpack_require__(18);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MediaFormat = exports.MediaFormat = function (_Enum) {\n _inherits(MediaFormat, _Enum);\n\n function MediaFormat() {\n _classCallCheck(this, MediaFormat);\n\n return _possibleConstructorReturn(this, (MediaFormat.__proto__ || Object.getPrototypeOf(MediaFormat)).apply(this, arguments));\n }\n\n return MediaFormat;\n}(_enumify.Enum);\n\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _drm = __webpack_require__(10);\n\nvar _drm2 = _interopRequireDefault(_drm);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Media source\n * @classdesc\n */\nvar MediaSource =\n\n/**\n * @constructor\n */\n\n/**\n * @member - media source height\n * @type {number}\n */\n\n/**\n * @member - media source bandwidth\n * @type {number}\n */\n\n/**\n * @member - media source mimetype\n * @type {string}\n */\n\n/**\n * @member - media source ID\n * @type {string}\n */\nfunction MediaSource() {\n _classCallCheck(this, MediaSource);\n}\n/**\n * @member - media source label\n * @type {string}\n */\n\n/**\n * @member - media source width\n * @type {number}\n */\n\n/**\n * @member - media source drm data\n * @type {Array}\n */\n\n/**\n * @member - media source URL\n * @type {string}\n */\n;\n\nexports.default = MediaSource;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nvar KalturaFlavorAsset =\n\n/**\n * @constructor\n * @param {Object} data The json response\n */\n\n/**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n\n/**\n *@member - The video codec\n * @type {boolean}\n */\n\n/**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n\n/**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member -The file extension\n * @type {string}\n */\n\n/**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\nfunction KalturaFlavorAsset(data) {\n _classCallCheck(this, KalturaFlavorAsset);\n\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n}\n/**\n * @member - The label of the flavor asset\n * @type {string}\n */\n\n/**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n\n/**\n * @member - The container format\n * @type {boolean}\n */\n\n/**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n\n/**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n\n/**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n;\n\nexports.default = KalturaFlavorAsset;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nvar KalturaMediaEntry =\n\n/**\n * @constructor\n * @param {Object} entry The json response\n */\n\n/**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n\n/**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n\n/**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\nfunction KalturaMediaEntry(entry) {\n _classCallCheck(this, KalturaMediaEntry);\n\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n}\n/**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n\n/**\n * @member - The entry duration\n * @type {number}\n */\n\n/**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n\n/**\n * @member - The entry id\n * @type {string}\n */\n;\n\nexports.default = KalturaMediaEntry;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaMetadata = __webpack_require__(30);\n\nvar _kalturaMetadata2 = _interopRequireDefault(_kalturaMetadata);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nvar KalturaMetadataListResponse = function (_ServiceResult) {\n _inherits(KalturaMetadataListResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n function KalturaMetadataListResponse(responseObj) {\n _classCallCheck(this, KalturaMetadataListResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaMetadataListResponse.__proto__ || Object.getPrototypeOf(KalturaMetadataListResponse)).call(this, responseObj));\n\n if (!_this.hasError) {\n _this.totalCount = responseObj.totalCount;\n if (_this.totalCount > 0) {\n _this.metas = [];\n responseObj.objects.map(function (meta) {\n return _this.metas.push(new _kalturaMetadata2.default(meta));\n });\n }\n }\n return _this;\n }\n /**\n * @member -The mata data array\n * @type {Array}\n */\n\n\n return KalturaMetadataListResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaMetadataListResponse;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaAccessControlMessage = __webpack_require__(27);\n\nvar _kalturaAccessControlMessage2 = _interopRequireDefault(_kalturaAccessControlMessage);\n\nvar _kalturaPlaybackSource = __webpack_require__(17);\n\nvar _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource);\n\nvar _kalturaRuleAction = __webpack_require__(31);\n\nvar _kalturaRuleAction2 = _interopRequireDefault(_kalturaRuleAction);\n\nvar _kalturaFlavorAsset = __webpack_require__(13);\n\nvar _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nvar KalturaPlaybackContext = function (_ServiceResult) {\n _inherits(KalturaPlaybackContext, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n\n /**\n * @member - The playback sources\n * @type {Array}\n */\n function KalturaPlaybackContext(response) {\n _classCallCheck(this, KalturaPlaybackContext);\n\n var _this = _possibleConstructorReturn(this, (KalturaPlaybackContext.__proto__ || Object.getPrototypeOf(KalturaPlaybackContext)).call(this, response));\n\n _this.sources = [];\n _this.actions = [];\n _this.messages = [];\n _this.flavorAssets = [];\n\n if (!_this.hasError) {\n\n var messages = response.messages;\n if (messages) {\n messages.map(function (message) {\n return _this.messages.push(new _kalturaAccessControlMessage2.default(message));\n });\n }\n\n var actions = response.actions;\n if (actions) {\n actions.map(function (action) {\n return _this.actions.push(new _kalturaRuleAction2.default(action));\n });\n }\n\n var sources = response.sources;\n if (sources) {\n sources.map(function (source) {\n return _this.sources.push(new _kalturaPlaybackSource2.default(source));\n });\n }\n\n var flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(function (flavor) {\n return _this.flavorAssets.push(new _kalturaFlavorAsset2.default(flavor));\n });\n }\n }\n\n return _this;\n }\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n\n\n return KalturaPlaybackContext;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaPlaybackContext;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _kalturaDrmPlaybackPluginData = __webpack_require__(29);\n\nvar _kalturaDrmPlaybackPluginData2 = _interopRequireDefault(_kalturaDrmPlaybackPluginData);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nvar KalturaPlaybackSource = function () {\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n\n /**\n * @member - The source URL\n * @type {string}\n */\n\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n function KalturaPlaybackSource(source) {\n var _this = this;\n\n _classCallCheck(this, KalturaPlaybackSource);\n\n this.drm = [];\n\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(function (drm) {\n return _this.drm.push(new _kalturaDrmPlaybackPluginData2.default(drm));\n });\n }\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n\n\n _createClass(KalturaPlaybackSource, [{\n key: \"hasDrmData\",\n value: function hasDrmData() {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n\n }, {\n key: \"hasFlavorIds\",\n value: function hasFlavorIds() {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n\n }, {\n key: \"getProtocol\",\n value: function getProtocol(protocol) {\n var returnValue = \"\";\n if (this.protocols && this.protocols.length > 0) {\n var protocolsArr = this.protocols.split(\",\");\n protocolsArr.forEach(function (p) {\n if (p == protocol) {\n returnValue = p;\n }\n });\n } else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n }]);\n\n return KalturaPlaybackSource;\n}();\n\nexports.default = KalturaPlaybackSource;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Data loaders manager\n * @classdesc\n */\nvar DataLoaderManager = function () {\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n function DataLoaderManager(partnerID) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n\n _classCallCheck(this, DataLoaderManager);\n\n this._loaders = new Map();\n\n this._multiRequest = _ovpService2.default.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n\n\n _createClass(DataLoaderManager, [{\n key: 'add',\n value: function add(loader, params) {\n var _this = this;\n\n var execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n var startIndex = this._multiRequest.requests.length;\n //Get the requests\n var requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach(function (request) {\n _this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n var executionLoaderResponseMap = Array.from(new Array(requests.length), function (val, index) {\n return index + startIndex;\n });\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n\n }, {\n key: 'fetchData',\n value: function fetchData() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2._multiRequest.execute().then(function (response) {\n _this2._multiResponse = response;\n if (!response.success) {\n reject(response);\n } else {\n var preparedData = _this2.prepareData(response);\n if (preparedData.success) {\n resolve(_this2._loaders);\n } else {\n reject({ success: false, data: preparedData.error });\n }\n }\n }, function (err) {\n reject(err);\n });\n });\n }\n }, {\n key: 'prepareData',\n value: function prepareData(response) {\n this._loaders.forEach(function (loader, name) {\n var loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1);\n }\n } catch (err) {\n return { success: false, error: err };\n }\n });\n return { success: true, data: this._loaders };\n }\n }]);\n\n return DataLoaderManager;\n}();\n\nDataLoaderManager._loadersResponseMap = new Map();\nexports.default = DataLoaderManager;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseEntryService = __webpack_require__(33);\n\nvar _baseEntryService2 = _interopRequireDefault(_baseEntryService);\n\nvar _metaDataService = __webpack_require__(34);\n\nvar _metaDataService2 = _interopRequireDefault(_metaDataService);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _kalturaPlaybackContext = __webpack_require__(16);\n\nvar _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext);\n\nvar _kalturaMetadataListResponse = __webpack_require__(15);\n\nvar _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse);\n\nvar _kalturaBaseEntryListResponse = __webpack_require__(28);\n\nvar _kalturaBaseEntryListResponse2 = _interopRequireDefault(_kalturaBaseEntryListResponse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\n\nvar MediaEntryLoader = function () {\n _createClass(MediaEntryLoader, null, [{\n key: 'name',\n get: function get() {\n return \"media\";\n }\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function MediaEntryLoader(params) {\n _classCallCheck(this, MediaEntryLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n _createClass(MediaEntryLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_baseEntryService2.default.list(config.beUrl, params.ks, params.entryId));\n requests.push(_baseEntryService2.default.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(_metaDataService2.default.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._entryId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n var mediaEntryResponse = new _kalturaBaseEntryListResponse2.default(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new _kalturaPlaybackContext2.default(response[1].data);\n this._response.metadataListResult = new _kalturaMetadataListResponse2.default(response[2].data);\n },\n get: function get() {\n return this._response;\n }\n }]);\n\n return MediaEntryLoader;\n}();\n\nexports.default = MediaEntryLoader;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _sessionService = __webpack_require__(35);\n\nvar _sessionService2 = _interopRequireDefault(_sessionService);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n/**\n * Media entry loader\n * @classdesc\n */\n\nvar SessionLoader = function () {\n _createClass(SessionLoader, null, [{\n key: 'name',\n get: function get() {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function SessionLoader(params) {\n _classCallCheck(this, SessionLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n _createClass(SessionLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_sessionService2.default.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._partnerId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n this._response.ks = response[0].data.ks;\n },\n get: function get() {\n return this._response.ks;\n }\n }]);\n\n return SessionLoader;\n}();\n\nexports.default = SessionLoader;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _uiConfService = __webpack_require__(37);\n\nvar _uiConfService2 = _interopRequireDefault(_uiConfService);\n\nvar _kalturaUiConfResponse = __webpack_require__(32);\n\nvar _kalturaUiConfResponse2 = _interopRequireDefault(_kalturaUiConfResponse);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\nvar UiConfigLoader = function () {\n _createClass(UiConfigLoader, null, [{\n key: 'name',\n get: function get() {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function UiConfigLoader(params) {\n _classCallCheck(this, UiConfigLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n _createClass(UiConfigLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_uiConfService2.default.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._uiConfId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n this._response.uiConf = new _kalturaUiConfResponse2.default(response[0].data);\n },\n get: function get() {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null) try {\n return JSON.parse(this._response.uiConf.config).plugins;\n } catch (err) {\n return null;\n } else return null;\n }\n }]);\n\n return UiConfigLoader;\n}();\n\nexports.default = UiConfigLoader;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _kalturaMediaEntry = __webpack_require__(14);\n\nvar _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry);\n\nvar _kalturaPlaybackContext = __webpack_require__(16);\n\nvar _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext);\n\nvar _kalturaPlaybackSource = __webpack_require__(17);\n\nvar _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource);\n\nvar _kalturaFlavorAsset = __webpack_require__(13);\n\nvar _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset);\n\nvar _kalturaMetadataListResponse = __webpack_require__(15);\n\nvar _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse);\n\nvar _playSourceUrlBuilder = __webpack_require__(26);\n\nvar _playSourceUrlBuilder2 = _interopRequireDefault(_playSourceUrlBuilder);\n\nvar _xmlParser = __webpack_require__(38);\n\nvar _xmlParser2 = _interopRequireDefault(_xmlParser);\n\nvar _enums = __webpack_require__(2);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _mediaFormat = __webpack_require__(11);\n\nvar _mediaEntry = __webpack_require__(9);\n\nvar _mediaEntry2 = _interopRequireDefault(_mediaEntry);\n\nvar _drm = __webpack_require__(10);\n\nvar _drm2 = _interopRequireDefault(_drm);\n\nvar _mediaSource = __webpack_require__(12);\n\nvar _mediaSource2 = _interopRequireDefault(_mediaSource);\n\nvar _mediaSources = __webpack_require__(7);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nvar SUPPORTED_FORMATS = new Map([[\"mpegdash\", _mediaFormat.MediaFormat.dash], [\"applehttp\", _mediaFormat.MediaFormat.hls], [\"url\", _mediaFormat.MediaFormat.mp4]]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\n\nvar ProviderParser = function () {\n function ProviderParser() {\n _classCallCheck(this, ProviderParser);\n }\n\n _createClass(ProviderParser, null, [{\n key: 'getMediaEntry',\n\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {any} mediaEntryResponse The media entry response\n * @returns {MediaEntry} The media entry\n * @static\n * @public\n */\n value: function getMediaEntry(ks, partnerID, uiConfId, mediaEntryResponse) {\n var mediaEntry = new _mediaEntry2.default();\n var entry = mediaEntryResponse.entry;\n var playbackContext = mediaEntryResponse.playBackContextResult;\n var metadataList = mediaEntryResponse.metadataListResult;\n var kalturaSources = playbackContext.sources;\n var sources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n var metadata = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n var type = _enums.MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case _enums.MediaType.IMAGE.value:\n type = _enums.MediaEntryType.Image;\n break;\n case _enums.MediaType.AUDIO.value:\n type = _enums.MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case _enums.EntryType.MEDIA_CLIP.value:\n type = _enums.MediaEntryType.Vod;\n break;\n case _enums.EntryType.LIVE_STREAM.value:\n case _enums.EntryType.LIVE_CHANNEL.value:\n type = _enums.MediaEntryType.Live;\n break;\n default:\n type = _enums.MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n }, {\n key: '_getParsedSources',\n value: function _getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext) {\n var sources = new _mediaSources2.default();\n\n var parseAdaptiveSources = function parseAdaptiveSources() {\n kalturaSources.forEach(function (source) {\n if (ProviderParser._isProgressiveSource(source) === false) {\n var parsedSource = ProviderParser._parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext);\n var sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n }\n });\n };\n\n var parseProgressiveSources = function parseProgressiveSources() {\n var progressiveSource = kalturaSources.find(function (source) {\n return ProviderParser._isProgressiveSource(source);\n });\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n }, {\n key: '_isProgressiveSource',\n value: function _isProgressiveSource(source) {\n var sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n *\n * @param {KalturaPlaybackSource} source The source\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {KalturaMediaEntry} entry The entry\n * @param {KalturaPlaybackContext} playbackContext The playback context\n * @returns {MediaSource} The parsed media source\n * @static\n * @private\n */\n\n }, {\n key: '_parseAdaptiveSource',\n value: function _parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext) {\n var playUrl = \"\";\n var mediaFormat = SUPPORTED_FORMATS.get(source.format);\n var mediaSource = new _mediaSource2.default();\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (source.hasFlavorIds()) {\n var extension = \"\";\n if (!mediaFormat) {\n var flavorIdsArr = source.flavorIds.split(\",\");\n var flavors = playbackContext.flavorAssets.filter(function (flavor) {\n return flavorIdsArr.indexOf(flavor.id) != -1;\n });\n if (flavors && flavors.length > 0) {\n extension = flavors[0].fileExt;\n }\n } else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = _playSourceUrlBuilder2.default.build({\n entryId: entry.id,\n flavorIds: source.flavorIds,\n format: source.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: source.getProtocol(this._getBaseProtocol())\n });\n } else {\n playUrl = source.url;\n }\n\n if (playUrl == \"\") {\n logger.error('failed to create play url from source, discarding source: (' + entry.id + '_' + source.deliveryProfileId + '), ' + source.format + '.');\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entry.id + \"_\" + source.deliveryProfileId + \",\" + source.format;\n if (source.hasDrmData()) {\n var drmParams = [];\n source.drm.forEach(function (drm) {\n drmParams.push(new _drm2.default(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n return mediaSource;\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n\n }, {\n key: '_parseMetaData',\n value: function _parseMetaData(metadataList) {\n var metadata = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach(function (meta) {\n var metaXml = void 0;\n var domParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n var metasObj = _xmlParser2.default.xmlToJson(metaXml);\n var metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach(function (key) {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n });\n });\n }\n return metadata;\n }\n }, {\n key: '_parseProgressiveSources',\n value: function _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entry) {\n var sources = [];\n if (kalturaSource) {\n var protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n var format = kalturaSource.format;\n var sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map(function (flavor) {\n if (flavor.height && flavor.width) {\n var mediaSource = new _mediaSource2.default();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = _playSourceUrlBuilder2.default.build({\n entryId: entry.id,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n }, {\n key: '_getBaseProtocol',\n value: function _getBaseProtocol() {\n var splittedUrl = config.baseUrl.split(\"/\");\n var baseProtocol = void 0;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n } else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n }]);\n\n return ProviderParser;\n}();\n\nexports.default = ProviderParser;\n\n/***/ }),\n/* 24 */,\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OvpProvider = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _providerParser = __webpack_require__(23);\n\nvar _providerParser2 = _interopRequireDefault(_providerParser);\n\nvar _dataLoaderManager = __webpack_require__(19);\n\nvar _dataLoaderManager2 = _interopRequireDefault(_dataLoaderManager);\n\nvar _mediaEntryLoader = __webpack_require__(20);\n\nvar _mediaEntryLoader2 = _interopRequireDefault(_mediaEntryLoader);\n\nvar _sessionLoader = __webpack_require__(21);\n\nvar _sessionLoader2 = _interopRequireDefault(_sessionLoader);\n\nvar _uiConfigLoader = __webpack_require__(22);\n\nvar _uiConfigLoader2 = _interopRequireDefault(_uiConfigLoader);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _mediaEntry = __webpack_require__(9);\n\nvar _mediaEntry2 = _interopRequireDefault(_mediaEntry);\n\nvar _mediaSources = __webpack_require__(7);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Ovp provider\n * @classdesc\n */\nvar OvpProvider = exports.OvpProvider = function () {\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n\n /**\n * @member - partner ID\n * @type {number}\n */\n function OvpProvider(partnerID) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var config = arguments[2];\n\n _classCallCheck(this, OvpProvider);\n\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n _config2.default.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n\n /**\n * @member - ks\n * @type {string}\n */\n\n\n _createClass(OvpProvider, [{\n key: 'getConfig',\n value: function getConfig(entryId, uiConfId) {\n var _this = this;\n\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new _dataLoaderManager2.default(this.partnerID, this.ks);\n return new Promise(function (resolve, reject) {\n if (_this.validateParams(entryId, uiConfId)) {\n var ks = _this.ks;\n if (_this._isAnonymous) {\n ks = \"{1:result:ks}\";\n _this._dataLoader.add(_sessionLoader2.default, { partnerId: _this.partnerID });\n }\n _this._dataLoader.add(_mediaEntryLoader2.default, { entryId: entryId, ks: ks });\n _this._dataLoader.add(_uiConfigLoader2.default, { uiConfId: uiConfId, ks: ks });\n _this._dataLoader.fetchData().then(function (response) {\n resolve(_this.parseDataFromResponse(response));\n }, function (err) {\n reject(err);\n });\n } else {\n reject({ success: false, data: \"Missing mandatory parameter\" });\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n\n }, {\n key: 'parseDataFromResponse',\n value: function parseDataFromResponse(data) {\n logger.debug(\"Data parsing started\");\n var config = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId\n },\n sources: new _mediaSources2.default(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(_sessionLoader2.default.name)) {\n var sessionLoader = data.get(_sessionLoader2.default.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(_uiConfigLoader2.default.name)) {\n var uiConfLoader = data.get(_uiConfigLoader2.default.name);\n var pluginsJson = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(_mediaEntryLoader2.default.name)) {\n var mediaLoader = data.get(_mediaEntryLoader2.default.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n var mediaEntry = _providerParser2.default.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return config;\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n\n }, {\n key: 'validateParams',\n value: function validateParams(entryId, uiConfId) {\n return !!entryId || !!uiConfId;\n }\n }]);\n\n return OvpProvider;\n}();\n\nexports.default = OvpProvider;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\n\nvar PlaySourceUrlBuilder = function () {\n function PlaySourceUrlBuilder() {\n _classCallCheck(this, PlaySourceUrlBuilder);\n }\n\n _createClass(PlaySourceUrlBuilder, null, [{\n key: \"build\",\n\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n value: function build(urlParams) {\n var baseUrl = config.baseUrl;\n var partnerId = urlParams.partnerId;\n var entryId = urlParams.entryId;\n var ks = urlParams.ks;\n var uiConfId = urlParams.uiConfId;\n var format = urlParams.format;\n var protocol = urlParams.protocol;\n var extension = urlParams.extension;\n var flavorIds = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n var playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n } else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n\n }, {\n key: \"endsWith\",\n value: function endsWith(string, searchString) {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n }]);\n\n return PlaySourceUrlBuilder;\n}();\n\nexports.default = PlaySourceUrlBuilder;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nvar KalturaAccessControlMessage =\n\n/**\n * @constructor\n * @param {Object} data The json response\n */\n\n/**\n * @member - The access control message\n * @type {string}\n */\nfunction KalturaAccessControlMessage(data) {\n _classCallCheck(this, KalturaAccessControlMessage);\n\n this.message = data.message;\n this.code = data.code;\n}\n/**\n * @member - The access control message code\n * @@type {string}\n */\n;\n\nexports.default = KalturaAccessControlMessage;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaMediaEntry = __webpack_require__(14);\n\nvar _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nvar KalturaBaseEntryListResponse = function (_ServiceResult) {\n _inherits(KalturaBaseEntryListResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n\n /**\n * @member - The total count\n * @type {number}\n */\n function KalturaBaseEntryListResponse(responseObj) {\n _classCallCheck(this, KalturaBaseEntryListResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaBaseEntryListResponse.__proto__ || Object.getPrototypeOf(KalturaBaseEntryListResponse)).call(this, responseObj));\n\n if (!_this.hasError) {\n _this.totalCount = responseObj.totalCount;\n if (_this.totalCount > 0) {\n _this.entries = [];\n responseObj.objects.map(function (entry) {\n return _this.entries.push(new _kalturaMediaEntry2.default(entry));\n });\n }\n }\n return _this;\n }\n /**\n * @member - The entries\n * @type {Array}\n */\n\n\n return KalturaBaseEntryListResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaBaseEntryListResponse;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nvar KalturaDrmPlaybackPluginData =\n\n/**\n * @constructor\n * @param {Object} drm The json response\n */\n\n/**\n * @member - The drm scheme\n * @type {Scheme}\n */\nfunction KalturaDrmPlaybackPluginData(drm) {\n _classCallCheck(this, KalturaDrmPlaybackPluginData);\n\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n}\n\n/**\n * @member - The license URL\n * @type {string}\n */\n;\n\nexports.default = KalturaDrmPlaybackPluginData;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nvar KalturaMetadata =\n\n/**\n * @constructor\n * @param {Object} data The response\n */\nfunction KalturaMetadata(data) {\n _classCallCheck(this, KalturaMetadata);\n\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n}\n/**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n;\n\nexports.default = KalturaMetadata;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nvar KalturaRuleAction =\n\n/**\n * @constructor\n * @param {Object} data The response\n */\nfunction KalturaRuleAction(data) {\n _classCallCheck(this, KalturaRuleAction);\n\n this.type = data.type;\n}\n/**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n;\n\nexports.default = KalturaRuleAction;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _enums = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nvar KalturaUiConfResponse = function (_ServiceResult) {\n _inherits(KalturaUiConfResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n function KalturaUiConfResponse(data) {\n _classCallCheck(this, KalturaUiConfResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaUiConfResponse.__proto__ || Object.getPrototypeOf(KalturaUiConfResponse)).call(this, data));\n\n if (!_this.hasError) {\n _this.name = data.name;\n\n _this.description = data.description;\n _this.objTypeAsString = data.objTypeAsString;\n _this.width = data.width;\n _this.height = data.height;\n _this.htmlParams = data.htmlParams;\n _this.swfUrl = data.swfUrl;\n _this.confFilePath = data.confFilePath;\n _this.confFile = data.confFile;\n _this.confFileFeatures = data.confFileFeatures;\n _this.config = data.config;\n _this.confVars = data.confVars;\n _this.useCdn = data.useCdn;\n _this.tags = data.tags;\n _this.swfUrlVersion = data.swfUrlVersion;\n _this.created = new Date(0);\n _this.created.setUTCSeconds(data.createdAt);\n _this.updated = new Date(0);\n _this.updated.setUTCSeconds(data.updatedAt);\n _this.html5Url = data.description;\n _this.version = data.description;\n _this.partnerTags = data.description;\n _this.objType = data.description;\n _this.creationMode = data.description;\n }\n return _this;\n }\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n\n\n return KalturaUiConfResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaUiConfResponse;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\n\nvar BaseEntryService = function (_OvpService) {\n _inherits(BaseEntryService, _OvpService);\n\n function BaseEntryService() {\n _classCallCheck(this, BaseEntryService);\n\n return _possibleConstructorReturn(this, (BaseEntryService.__proto__ || Object.getPrototypeOf(BaseEntryService)).apply(this, arguments));\n }\n\n _createClass(BaseEntryService, null, [{\n key: 'getPlaybackContext',\n\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function getPlaybackContext(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n var contextDataParams = { objectType: \"KalturaContextDataParams\", flavorTags: \"all\" };\n var params = { entryId: entryId, ks: ks, contextDataParams: contextDataParams };\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n\n }, {\n key: 'list',\n value: function list(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n\n }, {\n key: 'getEntryListReqParams',\n value: function getEntryListReqParams(entryId, ks) {\n var filterParams = { redirectFromEntryId: entryId };\n var responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return { ks: ks, filter: filterParams, responseProfile: responseProfileParams };\n }\n }]);\n\n return BaseEntryService;\n}(_ovpService2.default);\n\nexports.default = BaseEntryService;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\n\nvar MetaDataService = function (_OvpService) {\n _inherits(MetaDataService, _OvpService);\n\n function MetaDataService() {\n _classCallCheck(this, MetaDataService);\n\n return _possibleConstructorReturn(this, (MetaDataService.__proto__ || Object.getPrototypeOf(MetaDataService)).apply(this, arguments));\n }\n\n _createClass(MetaDataService, null, [{\n key: 'list',\n\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function list(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n var filter = { objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\" };\n var params = { filter: filter, ks: ks };\n request.params = params;\n return request;\n }\n }]);\n\n return MetaDataService;\n}(_ovpService2.default);\n\nexports.default = MetaDataService;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\n\nvar SessionService = function (_OvpService) {\n _inherits(SessionService, _OvpService);\n\n function SessionService() {\n _classCallCheck(this, SessionService);\n\n return _possibleConstructorReturn(this, (SessionService.__proto__ || Object.getPrototypeOf(SessionService)).apply(this, arguments));\n }\n\n _createClass(SessionService, null, [{\n key: 'anonymousSession',\n\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function anonymousSession(baseUrl, partnerId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = { widgetId: \"_\" + partnerId };\n return request;\n }\n }]);\n\n return SessionService;\n}(_ovpService2.default);\n\nexports.default = SessionService;\n\n/***/ }),\n/* 36 */,\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\n\nvar UiConfService = function (_OvpService) {\n _inherits(UiConfService, _OvpService);\n\n function UiConfService() {\n _classCallCheck(this, UiConfService);\n\n return _possibleConstructorReturn(this, (UiConfService.__proto__ || Object.getPrototypeOf(UiConfService)).apply(this, arguments));\n }\n\n _createClass(UiConfService, null, [{\n key: 'get',\n\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function get(baseUrl, ks, uiConfID) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n var responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = { id: uiConfID, responseProfile: responseProfileParams, ks: ks };\n return request;\n }\n }]);\n\n return UiConfService;\n}(_ovpService2.default);\n\nexports.default = UiConfService;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Xml parser\n * @classdesc\n */\nvar XmlParser = function () {\n function XmlParser() {\n _classCallCheck(this, XmlParser);\n }\n\n _createClass(XmlParser, null, [{\n key: \"xmlToJson\",\n\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n value: function xmlToJson(xml) {\n var obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (var j = 0; j < xml.attributes.length; j++) {\n var attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (var i = 0; i < xml.childNodes.length; i++) {\n var item = xml.childNodes.item(i);\n var nodeName = item.nodeName;\n if (typeof obj[nodeName] == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n } else {\n if (typeof obj[nodeName].push == \"undefined\") {\n var old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n }]);\n\n return XmlParser;\n}();\n\nexports.default = XmlParser;\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// ovpProvider.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 25);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 23bc45362ebde973588a","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\nimport {Enum} from 'enumify';\n\nexport class Scheme extends Enum {\n}\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\n\nexport class KalturaRuleActionType extends Enum {\n}\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nexport class Status extends Enum {\n}\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nexport class MetadataObjectType extends Enum {\n}\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nexport class MetadataStatus extends Enum {\n}\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\n\nexport class EntryStatus extends Enum {\n}\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nexport class EntryModerationStatus extends Enum {\n}\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nexport class EntryType extends Enum {\n}\nEntryType.initEnum({\n AUTOMATIC: {value: -1},\n EXTERNAL_MEDIA: {value: \"externalMedia.externalMedia\"},\n MEDIA_CLIP: {value: 1},\n MIX: {value: 2},\n PLAYLIST: {value: 5},\n DATA: {value: 6},\n LIVE_STREAM: {value: 7},\n LIVE_CHANNEL: {value: 8},\n DOCUMENT: {value: 10}\n});\n\nexport class MediaType extends Enum {\n}\nMediaType.initEnum({\n VIDEO: {value: 1},\n IMAGE: {value: 2},\n AUDIO: {value: 5},\n LIVE_STREAM_FLASH: {value: 201},\n LIVE_STREAM_WINDOWS_MEDIA: {value: 202},\n LIVE_STREAM_REAL_MEDIA: {value: 203},\n LIVE_STREAM_QUICKTIME: {value: 204}\n});\n\n\nexport class MediaEntryType extends Enum {\n}\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nexport class UIConfType extends Enum {\n}\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nexport class UIConfCreationMode extends Enum {\n}\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/enums.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","// @flow\nimport MediaSource from './media-source'\nimport {MediaFormat} from './media-format'\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nexport default class MediaSources {\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n progressive: Array;\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n dash: Array;\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n hls: Array;\n\n /**\n * @constructor\n */\n constructor() {\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n map(source: MediaSource, mediaFormat: ?MediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-sources.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/js-logger/src/logger.js\n// module id = 8\n// module chunks = 0 1","//@flow\nimport {MediaEntryType} from '../k-provider/enums'\nimport MediaSources from './media-sources'\n\n/**\n * Media entry\n * @classdesc\n */\nexport default class MediaEntry {\n\n /**\n * @member - entry ID\n * @type {string}\n */\n id: string;\n /**\n * @member - entry sources\n * @type {MediaSources}\n */\n sources: MediaSources;\n /**\n * @member - entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - entry type\n * @type {MediaEntryType}\n */\n type: MediaEntryType;\n /**\n * @member - entry metadata\n * @type {Map}\n */\n metaData: Map;\n\n /**\n * @constructor\n */\n constructor() {\n this.metaData = new Map();\n this.type = MediaEntryType.Unknown;\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-entry.js","//@flow\n\nimport {Scheme} from '../k-provider/enums';\n\n/**\n * Drm data\n * @classdesc\n */\nexport default class Drm {\n\n /**\n * @member - license URL\n * @type {string}\n */\n licenseUrl: string;\n /**\n * @member - drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n constructor(licenseUrl: string, scheme: Scheme) {\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/drm.js","//@flow\nimport {Enum} from 'enumify';\n\nexport class MediaFormat extends Enum {\n}\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-format.js","//@flow\nimport Drm from '../entities/drm'\n\n/**\n * Media source\n * @classdesc\n */\nexport default class MediaSource {\n /**\n * @member - media source ID\n * @type {string}\n */\n id: string;\n /**\n * @member - media source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - media source mimetype\n * @type {string}\n */\n mimetype: string;\n /**\n * @member - media source drm data\n * @type {Array}\n */\n drmData: Array;\n /**\n * @member - media source bandwidth\n * @type {number}\n */\n bandwidth: number;\n /**\n * @member - media source width\n * @type {number}\n */\n width: number;\n /**\n * @member - media source height\n * @type {number}\n */\n height: number;\n /**\n * @member - media source label\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n */\n constructor(){}\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-source.js","//@flow\nimport {Status} from '../../enums'\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nexport default class KalturaFlavorAsset {\n /**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\n id: string;\n /**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n flavorParamsId: string;\n /**\n * @member -The file extension\n * @type {string}\n */\n fileExt: string;\n /**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n bitrate: number;\n /**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n width: number;\n /**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n height: number;\n /**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n frameRate: number;\n /**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n isOriginal: boolean;\n /**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n isWeb: boolean;\n /**\n * @member - The container format\n * @type {boolean}\n */\n containerFormat: string;\n /**\n *@member - The video codec\n * @type {boolean}\n */\n videoCodecId: string;\n /**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n status: Status;\n /**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n language: string;\n /**\n * @member - The label of the flavor asset\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: any) {\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-flavor-asset.js","//@flow\nimport {EntryType, MediaType} from '../../enums'\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nexport default class KalturaMediaEntry {\n /**\n * @member - The entry id\n * @type {string}\n */\n id: string;\n /**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\n name: string;\n /**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n dataUrl: string;\n /**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n flavorParamsIds: string;\n /**\n * @member - The entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n type: EntryType;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n entryType: MediaType;\n\n /**\n * @constructor\n * @param {Object} entry The json response\n */\n constructor(entry: Object) {\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n }\n}\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-media-entry.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMetadata from './kaltura-metadata'\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nexport default class KalturaMetadataListResponse extends ServiceResult {\n totalCount: number;\n /**\n * @member -The mata data array\n * @type {Array}\n */\n metas: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.metas = [];\n responseObj.objects.map(meta => this.metas.push(new KalturaMetadata(meta)));\n }\n\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata-list-response.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaAccessControlMessage from './kaltura-access-control-message'\nimport KalturaPlaybackSource from './kaltura-playback-source'\nimport KalturaRuleAction from './kaltura-rule-action'\nimport KalturaFlavorAsset from './kaltura-flavor-asset'\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nexport default class KalturaPlaybackContext extends ServiceResult {\n /**\n * @member - The playback sources\n * @type {Array}\n */\n sources: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n actions: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n messages: Array = [];\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n flavorAssets: Array = [];\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n constructor(response: Object) {\n super(response);\n if (!this.hasError) {\n\n let messages = response.messages;\n if (messages) {\n messages.map(message => this.messages.push(new KalturaAccessControlMessage(message)));\n }\n\n let actions = response.actions;\n if (actions) {\n actions.map(action => this.actions.push(new KalturaRuleAction(action)));\n }\n\n let sources = response.sources;\n if (sources) {\n sources.map(source => this.sources.push(new KalturaPlaybackSource(source)));\n }\n\n let flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(flavor => this.flavorAssets.push(new KalturaFlavorAsset(flavor)));\n }\n }\n\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-context.js","//@flow\nimport KalturaDrmPlaybackPluginData from './kaltura-drm-playback-plugin-data'\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nexport default class KalturaPlaybackSource {\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n format: string;\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n deliveryProfileId: string;\n /**\n * @member - The source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n protocols: string;\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n flavorIds: string;\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n drm: Array = [];\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n constructor(source: Object) {\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(drm => this.drm.push(new KalturaDrmPlaybackPluginData(drm)));\n }\n\n\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n hasDrmData(): boolean {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n hasFlavorIds(): boolean {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n getProtocol(protocol: string): string {\n let returnValue: string = \"\";\n if (this.protocols && this.protocols.length > 0) {\n let protocolsArr: Array = this.protocols.split(\",\");\n protocolsArr.forEach((p) => {\n if (p == protocol) {\n returnValue = p;\n }\n });\n }\n else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-source.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/enumify/lib/enumify.js\n// module id = 18\n// module chunks = 0","//@flow\nimport OvpService from '../services/ovp-service'\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport {MultiRequestResult} from '../../multi-request-builder'\n\n/**\n * Data loaders manager\n * @classdesc\n */\nexport default class DataLoaderManager {\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n static _loadersResponseMap: Map> = new Map();\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n _multiRequest: MultiRequestBuilder;\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n _multiResponse: MultiRequestResult;\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n _loaders: Map = new Map();\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n constructor(partnerID: number, ks: string = \"\") {\n this._multiRequest = OvpService.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n add(loader: typeof ILoader, params: Object): void {\n let execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n let startIndex = this._multiRequest.requests.length;\n //Get the requests\n let requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach((request) => {\n this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n let executionLoaderResponseMap = Array.from(new Array(requests.length), (val, index) => index + startIndex);\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n fetchData(): Promise {\n return new Promise((resolve, reject) => {\n this._multiRequest.execute()\n .then(response => {\n this._multiResponse = response;\n if (!response.success) {\n reject(response);\n }\n else {\n let preparedData: Object = this.prepareData(response);\n if (preparedData.success) {\n resolve(this._loaders);\n }\n else {\n reject({success: false, data: preparedData.error});\n }\n }\n },\n err => {\n reject(err);\n });\n });\n }\n\n prepareData(response: MultiRequestResult): Object {\n this._loaders.forEach(function (loader, name) {\n let loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = (response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1));\n }\n }\n catch (err) {\n return {success: false, error: err};\n }\n });\n return {success: true, data: this._loaders};\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/data-loader-manager.js","//@flow\n\nimport RequestBuilder from '../../request-builder'\nimport BaseEntryService from '../services/base-entry-service'\nimport MetaDataService from '../services/meta-data-service'\nimport Configuration from '../config'\nimport KalturaPlaybackContext from '../response-types/kaltura-playback-context'\nimport KalturaMetadataListResponse from '../response-types/kaltura-metadata-list-response'\nimport KalturaBaseEntryListResponse from '../response-types/kaltura-base-entry-list-response'\n\nconst config = Configuration.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class MediaEntryLoader implements ILoader {\n static get name(): string {\n return \"media\";\n }\n\n _entryId: string;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n let mediaEntryResponse: KalturaBaseEntryListResponse = new KalturaBaseEntryListResponse(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);\n this._response.metadataListResult = new KalturaMetadataListResponse(response[2].data);\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(BaseEntryService.list(config.beUrl, params.ks, params.entryId));\n requests.push(BaseEntryService.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(MetaDataService.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._entryId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/media-entry-loader.js","//@flow\nimport SessionService from '../services/session-service'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class SessionLoader implements ILoader {\n static get name(): string {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n _partnerId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.ks = response[0].data.ks;\n }\n\n get response(): any {\n return this._response.ks;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(SessionService.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._partnerId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/session-loader.js","//@flow\nimport UiConfService from '../services/ui-conf-service'\nimport KalturaUiConfResponse from '../response-types/kaltura-ui-conf-response'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n\nexport default class UiConfigLoader implements ILoader {\n static get name(): string {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.uiConf = new KalturaUiConfResponse(response[0].data);\n }\n\n get response(): any {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null)\n try {\n return JSON.parse(this._response.uiConf.config).plugins;\n }\n catch (err) {\n return null;\n }\n else\n return null;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(UiConfService.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._uiConfId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/ui-config-loader.js","//@flow\nimport KalturaMediaEntry from './response-types/kaltura-media-entry'\nimport KalturaPlaybackContext from './response-types/kaltura-playback-context'\nimport KalturaPlaybackSource from './response-types/kaltura-playback-source'\nimport KalturaFlavorAsset from './response-types/kaltura-flavor-asset'\nimport KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response'\nimport PlaySourceUrlBuilder from \"./play-source-url-builder\"\nimport XmlParser from '../xml-parser'\nimport {MediaEntryType, EntryType, MediaType} from '../enums'\nimport Logger from '../../util/logger'\nimport Configuration from './config'\nimport {MediaFormat} from '../../entities/media-format'\nimport MediaEntry from '../../entities/media-entry'\nimport Drm from '../../entities/drm'\nimport MediaSource from '../../entities/media-source'\nimport MediaSources from '../../entities/media-sources'\n\nconst config = Configuration.get();\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nconst SUPPORTED_FORMATS: Map = new Map([\n [\"mpegdash\", MediaFormat.dash],\n [\"applehttp\", MediaFormat.hls],\n [\"url\", MediaFormat.mp4]\n]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\nexport default class ProviderParser {\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {any} mediaEntryResponse The media entry response\n * @returns {MediaEntry} The media entry\n * @static\n * @public\n */\n static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry {\n let mediaEntry: MediaEntry = new MediaEntry();\n let entry = mediaEntryResponse.entry;\n let playbackContext = mediaEntryResponse.playBackContextResult;\n let metadataList = mediaEntryResponse.metadataListResult;\n let kalturaSources: Array = playbackContext.sources;\n let sources: MediaSources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n let metadata: Map = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n let type: MediaEntryType = MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case MediaType.IMAGE.value:\n type = MediaEntryType.Image;\n break;\n case MediaType.AUDIO.value:\n type = MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case EntryType.MEDIA_CLIP.value:\n type = MediaEntryType.Vod;\n break;\n case EntryType.LIVE_STREAM.value:\n case EntryType.LIVE_CHANNEL.value:\n type = MediaEntryType.Live;\n break;\n default:\n type = MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry, playbackContext): MediaSources {\n let sources: MediaSources = new MediaSources();\n\n let parseAdaptiveSources = function () {\n kalturaSources.forEach((source) => {\n if (ProviderParser._isProgressiveSource(source) === false) {\n let parsedSource = ProviderParser._parseAdaptiveSource(source, ks, partnerID, uiConfId, entry, playbackContext);\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n }\n });\n };\n\n let parseProgressiveSources = function () {\n let progressiveSource = kalturaSources.find(source => ProviderParser._isProgressiveSource(source));\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n static _isProgressiveSource(source) {\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n *\n * @param {KalturaPlaybackSource} source The source\n * @param {string} ks The ks\n * @param {number} partnerID The partner ID\n * @param {number} uiConfId The uiConf ID\n * @param {KalturaMediaEntry} entry The entry\n * @param {KalturaPlaybackContext} playbackContext The playback context\n * @returns {MediaSource} The parsed media source\n * @static\n * @private\n */\n static _parseAdaptiveSource(source: KalturaPlaybackSource, ks: string, partnerID: number, uiConfId: number, entry: KalturaMediaEntry, playbackContext: KalturaPlaybackContext): MediaSource {\n let playUrl: string = \"\";\n let mediaFormat = SUPPORTED_FORMATS.get(source.format);\n let mediaSource: MediaSource = new MediaSource();\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (source.hasFlavorIds()) {\n let extension: string = \"\";\n if (!mediaFormat) {\n let flavorIdsArr = source.flavorIds.split(\",\");\n let flavors: Array = playbackContext.flavorAssets.filter(flavor => flavorIdsArr.indexOf(flavor.id) != -1);\n if (flavors && flavors.length > 0) {\n extension = flavors[0].fileExt;\n }\n }\n else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = PlaySourceUrlBuilder.build({\n entryId: entry.id,\n flavorIds: source.flavorIds,\n format: source.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: source.getProtocol(this._getBaseProtocol())\n });\n\n }\n else {\n playUrl = source.url;\n }\n\n if (playUrl == \"\") {\n logger.error(`failed to create play url from source, discarding source: (${entry.id}_${source.deliveryProfileId}), ${source.format}.`);\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entry.id + \"_\" + source.deliveryProfileId + \",\" + source.format;\n if (source.hasDrmData()) {\n let drmParams: Array = [];\n source.drm.forEach((drm) => {\n drmParams.push(new Drm(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n return mediaSource;\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n static _parseMetaData(metadataList: KalturaMetadataListResponse): Map {\n let metadata: Object = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach((meta) => {\n let metaXml: Object;\n let domParser: DOMParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n let metasObj: Object = XmlParser.xmlToJson(metaXml);\n let metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach((key) => {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n })\n\n })\n }\n return metadata;\n }\n\n static _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entry) {\n let sources = [];\n if (kalturaSource) {\n let protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n let format = kalturaSource.format;\n let sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map((flavor) => {\n if (flavor.height && flavor.width) {\n let mediaSource: MediaSource = new MediaSource();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = PlaySourceUrlBuilder.build({\n entryId: entry.id,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n static _getBaseProtocol(): string {\n let splittedUrl: Array = config.baseUrl.split(\"/\");\n let baseProtocol: string;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n }\n else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/provider-parser.js","//@flow\nimport Logger from '../../util/logger'\nimport ProviderParser from './provider-parser'\nimport DataLoaderManager from './loaders/data-loader-manager'\nimport MediaEntryLoader from './loaders/media-entry-loader'\nimport SessionLoader from './loaders/session-loader'\nimport UiConfigLoader from './loaders/ui-config-loader'\nimport Configuration from './config'\nimport MediaEntry from '../../entities/media-entry'\nimport MediaSources from '../../entities/media-sources'\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\ntype playerConfig = {\n id: string,\n session: Object,\n sources: MediaSources,\n duration: number,\n type: string,\n metadata: Object,\n plugins: Object\n};\n\n/**\n * Ovp provider\n * @classdesc\n */\nexport class OvpProvider {\n /**\n * @member - ks\n * @type {string}\n */\n ks: string;\n /**\n * @member - partner ID\n * @type {number}\n */\n partnerID: number;\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n _isAnonymous: boolean;\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n _dataLoader: DataLoaderManager;\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n constructor(partnerID: number, ks: string = \"\", config?: Object) {\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n Configuration.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n getConfig(entryId?: string, uiConfId?: number): Promise {\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new DataLoaderManager(this.partnerID, this.ks);\n return new Promise((resolve, reject) => {\n if (this.validateParams(entryId, uiConfId)) {\n let ks: string = this.ks;\n if (this._isAnonymous) {\n ks = \"{1:result:ks}\";\n this._dataLoader.add(SessionLoader, {partnerId: this.partnerID});\n }\n this._dataLoader.add(MediaEntryLoader, {entryId: entryId, ks: ks});\n this._dataLoader.add(UiConfigLoader, {uiConfId: uiConfId, ks: ks});\n this._dataLoader.fetchData()\n .then(response => {\n resolve(this.parseDataFromResponse(response));\n },\n err => {\n reject(err);\n });\n }\n else {\n reject({success: false, data: \"Missing mandatory parameter\"});\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n parseDataFromResponse(data: Map): Object {\n logger.debug(\"Data parsing started\");\n let config: playerConfig = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId,\n },\n sources: new MediaSources(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(SessionLoader.name)) {\n let sessionLoader = data.get(SessionLoader.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(UiConfigLoader.name)) {\n let uiConfLoader = data.get(UiConfigLoader.name);\n let pluginsJson: Object = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(MediaEntryLoader.name)) {\n let mediaLoader = data.get(MediaEntryLoader.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n let mediaEntry: MediaEntry = ProviderParser.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return (config);\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n validateParams(entryId?: string, uiConfId?: number): boolean {\n return !!entryId || !!uiConfId;\n }\n\n}\n\nexport default OvpProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/ovp-provider.js","//@flow\nimport Configuration from './config'\n\nconst config = Configuration.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\nexport default class PlaySourceUrlBuilder {\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n static build(urlParams: Object): string {\n let baseUrl: string = config.baseUrl;\n let partnerId: string = urlParams.partnerId;\n let entryId: string = urlParams.entryId;\n let ks: string = urlParams.ks;\n let uiConfId: string = urlParams.uiConfId;\n let format: string = urlParams.format;\n let protocol: string = urlParams.protocol;\n let extension: string = urlParams.extension;\n let flavorIds: string = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n let playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n }\n else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n static endsWith(string: string, searchString: string): boolean {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/play-source-url-builder.js","//@flow\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nexport default class KalturaAccessControlMessage {\n /**\n * @member - The access control message\n * @type {string}\n */\n message: string;\n /**\n * @member - The access control message code\n * @@type {string}\n */\n code: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n this.message = data.message;\n this.code = data.code\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-access-control-message.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMediaEntry from './kaltura-media-entry'\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nexport default class KalturaBaseEntryListResponse extends ServiceResult {\n /**\n * @member - The total count\n * @type {number}\n */\n totalCount: number;\n /**\n * @member - The entries\n * @type {Array}\n */\n entries: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.entries = [];\n responseObj.objects.map(entry => this.entries.push(new KalturaMediaEntry(entry)));\n }\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","//@flow\nimport {Scheme} from '../../enums'\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nexport default class KalturaDrmPlaybackPluginData {\n /**\n * @member - The drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @member - The license URL\n * @type {string}\n */\n licenseURL: string;\n\n /**\n * @constructor\n * @param {Object} drm The json response\n */\n constructor(drm: any) {\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","//@flow\nimport {MetadataObjectType, MetadataStatus} from '../../enums'\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nexport default class KalturaMetadata {\n id: number;\n metadataProfileId: number;\n metadataProfileVersion: number;\n metadataObjectType: MetadataObjectType;\n objectId: string;\n version: number;\n created: Date;\n updated: Date;\n status: MetadataStatus;\n /**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n xml: string;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata.js","//@flow\nimport {KalturaRuleActionType} from '../../enums'\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nexport default class KalturaRuleAction {\n /**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n type: KalturaRuleActionType;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.type = data.type;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-rule-action.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport {UIConfType, UIConfCreationMode} from '../../enums';\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nexport default class KalturaUiConfResponse extends ServiceResult {\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n name: string;\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n description: string;\n objTypeAsString: string;\n width: number;\n height: number;\n htmlParams: string;\n swfUrl: string;\n confFilePath: string;\n confFile: string;\n confFileFeatures: string;\n name: string;\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n config: string;\n confVars: string;\n useCdn: boolean;\n tags: string;\n swfUrlVersion: string;\n created: Date;\n updated: Date;\n html5Url: string;\n version: string;\n partnerTags: string;\n objType: UIConfType;\n creationMode: UIConfCreationMode;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n super(data);\n if (!this.hasError) {\n this.name = data.name;\n\n this.description = data.description;\n this.objTypeAsString = data.objTypeAsString;\n this.width = data.width;\n this.height = data.height;\n this.htmlParams = data.htmlParams;\n this.swfUrl = data.swfUrl;\n this.confFilePath = data.confFilePath;\n this.confFile = data.confFile;\n this.confFileFeatures = data.confFileFeatures;\n this.config = data.config;\n this.confVars = data.confVars;\n this.useCdn = data.useCdn;\n this.tags = data.tags;\n this.swfUrlVersion = data.swfUrlVersion;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.html5Url = data.description;\n this.version = data.description;\n this.partnerTags = data.description;\n this.objType = data.description;\n this.creationMode = data.description;\n\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-ui-conf-response.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\nexport default class BaseEntryService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static getPlaybackContext(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n let contextDataParams = {objectType: \"KalturaContextDataParams\", flavorTags: \"all\"};\n let params = {entryId: entryId, ks: ks, contextDataParams: contextDataParams};\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n static getEntryListReqParams(entryId: string, ks: string): any {\n let filterParams = {redirectFromEntryId: entryId};\n let responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return {ks: ks, filter: filterParams, responseProfile: responseProfileParams};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/base-entry-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\nexport default class MetaDataService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n let filter = {objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\"};\n let params = {filter: filter, ks: ks};\n request.params = params;\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/meta-data-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\nexport default class SessionService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static anonymousSession(baseUrl: string, partnerId: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = {widgetId: \"_\" + partnerId};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/session-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\nexport default class UiConfService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static get(baseUrl: string, ks: string, uiConfID: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n let responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = {id: uiConfID, responseProfile: responseProfileParams, ks: ks};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ui-conf-service.js","//@flow\n\n/**\n * Xml parser\n * @classdesc\n */\nexport default class XmlParser {\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n static xmlToJson(xml: Object) {\n let obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n let attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n }\n else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n let item = xml.childNodes.item(i);\n let nodeName = item.nodeName;\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n }\n else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n let old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/xml-parser.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/ovpProvider.min.js","webpack:///providers/webpack/bootstrap 57f592a94818e7616bb1","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/enums.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/../node_modules/js-logger/src/logger.js","webpack:///providers/./entities/media-sources.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-source.js","webpack:///providers/../node_modules/enumify/lib/enumify.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-flavor-asset.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata-list-response.js","webpack:///providers/./entities/media-format.js","webpack:///providers/./entities/media-entry.js","webpack:///providers/./entities/media-source.js","webpack:///providers/./entities/drm.js","webpack:///providers/./k-provider/ovp/ovp-provider.js","webpack:///providers/./k-provider/ovp/provider-parser.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata.js","webpack:///providers/./k-provider/ovp/play-source-url-builder.js","webpack:///providers/./k-provider/xml-parser.js","webpack:///providers/./k-provider/ovp/loaders/data-loader-manager.js","webpack:///providers/./k-provider/ovp/loaders/media-entry-loader.js","webpack:///providers/./k-provider/ovp/services/base-entry-service.js","webpack:///providers/./k-provider/ovp/services/meta-data-service.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-context.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-access-control-message.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-rule-action.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-media-entry.js","webpack:///providers/./k-provider/ovp/loaders/session-loader.js","webpack:///providers/./k-provider/ovp/services/session-service.js","webpack:///providers/./k-provider/ovp/loaders/ui-config-loader.js","webpack:///providers/./k-provider/ovp/services/ui-conf-service.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-ui-conf-response.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","_classCallCheck","instance","Constructor","TypeError","value","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","RequestBuilder","headers","arguments","undefined","Map","set","baseUrl","Error","service","action","_this","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","setRequestHeader","send","params","default","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","assign","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","UIConfCreationMode","UIConfType","MediaEntryType","MediaType","EntryType","EntryModerationStatus","EntryStatus","MetadataStatus","MetadataObjectType","Status","KalturaRuleActionType","Scheme","_enumify","_Enum","getPrototypeOf","apply","Enum","initEnum","PLAYREADY_CENC","WIDEVINE_CENC","FAIRPLAY","PLAYREADY","WIDEVINE","_Enum2","DRM_POLICY","BLOCK","PREVIEW","LIMIT_FLAVORS","ADD_TO_STORAGE","LIMIT_DELIVERY_PROFILES","SERVE_FROM_REMOTE_SERVER","REQUEST_HOST_REGEX","LIMIT_THUMBNAIL_CAPTURE","_Enum3","ERROR","QUEUED","CONVERTING","READY","DELETED","NOT_APPLICABLE","TEMP","WAIT_FOR_CONVERT","IMPORTING","VALIDATING","EXPORTING","_Enum4","AD_CUE_POINT","ANNOTATION","CODE_CUE_POINT","THUMB_CUE_POINT","ENTRY","CATEGORY","USER","PARTNER","DYNAMIC_OBJECT","_Enum5","VALID","INVALID","_Enum6","ERROR_IMPORTING","ERROR_CONVERTING","SCAN_FAILURE","IMPORT","INFECTED","PRECONVERT","PENDING","MODERATE","BLOCKED","NO_CONTENT","_Enum7","PENDING_MODERATION","APPROVED","REJECTED","FLAGGED_FOR_REVIEW","AUTO_APPROVED","_Enum8","AUTOMATIC","EXTERNAL_MEDIA","MEDIA_CLIP","MIX","PLAYLIST","DATA","LIVE_STREAM","LIVE_CHANNEL","DOCUMENT","_Enum9","VIDEO","IMAGE","AUDIO","LIVE_STREAM_FLASH","LIVE_STREAM_WINDOWS_MEDIA","LIVE_STREAM_REAL_MEDIA","LIVE_STREAM_QUICKTIME","_Enum10","_Enum11","PLAYER","CONTRIBUTION_WIZARD","SIMPLE_EDITOR","ADVANCED_EDITOR","APP_STUDIO","KRECORD","PLAYER_V3","KMC_ACCOUNT","KMC_ANALYTICS","KMC_CONTENT","KMC_DASHBOARD","KMC_LOGIN","PLAYER_SL","CLIENTSIDE_ENCODER","KMC_GENERAL","KMC_ROLES_AND_PERMISSIONS","CLIPPER","KSR","KUPLOAD","WEBCASTING","_Enum12","WIZARD","ADVANCED","ServiceResult","response","hasError","objectType","error","ServiceError","data","_interopRequireDefault","_multiRequestBuilder","_multiRequestBuilder2","_config","_config2","config","OvpService","ks","partnerId","ovpParams","multiReq","LOG_LEVEL","_jsLogger","JsLogger","newObj","LoggerFactory","options","useDefaults","Logger","defaultLevel","DEBUG","INFO","TIME","WARN","OFF","_defineProperty","MultiRequestResult","_requestBuilder","_requestBuilder2","_baseServiceResult","_baseServiceResult2","_logger","_logger2","logger","MultiRequestBuilder","_RequestBuilder","requests","push","requestParams","serviceDef","_this2","stringify","err","doHttpRequest","then","errorText","_this3","results","success","result","serviceResult","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","global","VERSION","logHandler","contextualLoggersByNameMap","bind","scope","func","merge","args","defineLogLevel","ContextualLogger","defaultContext","context","setLevel","filterLevel","log","info","newLevel","enabledFor","lvl","debug","invoke","warn","time","label","timeEnd","level","msgArgs","globalLogger","L","setHandler","createDefaultHandler","formatter","messages","unshift","timerStartTimeByLabelMap","invokeConsoleMethod","hdlr","Function","console","Array","slice","timerLabel","Date","getTime","_mediaSource","MediaSources","progressive","dash","hls","source","mediaFormat","_kalturaDrmPlaybackPluginData","_kalturaDrmPlaybackPluginData2","KalturaPlaybackSource","drm","deliveryProfileId","url","protocols","flavorIds","map","protocol","returnValue","split","copyProperties","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","getOwnPropertyNames","next","done","desc","getOwnPropertyDescriptor","return","INITIALIZED","instanceProperties","arg","isArray","_enumValuesFromArray","_enumValuesFromObject","freeze","enumValues","arr","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_pushEnumValue","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","keys","enumValue","ordinal","find","x","KalturaFlavorAsset","id","flavorParamsId","fileExt","bitrate","width","height","frameRate","isOriginal","isWeb","containerFormat","videoCodecId","language","_kalturaMetadata","_kalturaMetadata2","KalturaMetadataListResponse","_ServiceResult","responseObj","totalCount","metas","objects","meta","MediaFormat","mimeType","pathExt","wvm","mp4","mp3","_enums","_mediaSources","MediaEntry","metaData","type","Unknown","_drm","MediaSource","Drm","licenseUrl","scheme","OvpProvider","_providerParser","_providerParser2","_dataLoaderManager","_dataLoaderManager2","_mediaEntryLoader","_mediaEntryLoader2","_sessionLoader","_sessionLoader2","_uiConfigLoader","_uiConfigLoader2","_mediaEntry","_mediaSources2","partnerID","_isAnonymous","entryId","uiConfId","_uiConfId","_dataLoader","validateParams","add","fetchData","parseDataFromResponse","session","uiConfID","sources","duration","metadata","plugins","has","sessionLoader","uiConfLoader","pluginsJson","mediaLoader","mediaEntry","getMediaEntry","_kalturaPlaybackSource","_kalturaFlavorAsset","_kalturaMetadataListResponse","_playSourceUrlBuilder","_playSourceUrlBuilder2","_xmlParser","_xmlParser2","_mediaFormat","_mediaEntry2","_drm2","_mediaSource2","SUPPORTED_FORMATS","ProviderParser","mediaEntryResponse","entry","playbackContext","playBackContextResult","metadataList","metadataListResult","kalturaSources","_getParsedSources","_parseMetaData","entryType","Image","Audio","Vod","Live","addAdaptiveSource","parsedSource","_parseAdaptiveSource","flavorAssets","sourceFormat","filter","_isProgressiveSource","progressiveSource","_parseProgressiveSources","kalturaSource","mediaSource","playUrl","hasFlavorIds","extension","mimetype","build","getProtocol","_getBaseProtocol","hasDrmData","drmParams","licenseURL","drmData","sourceId","flavor","bandwidth","metaXml","domParser","DOMParser","xml","replace","parseFromString","metasObj","xmlToJson","splittedUrl","substring","KalturaDrmPlaybackPluginData","KalturaMetadata","metadataProfileId","metadataProfileVersion","metadataObjectType","objectId","version","created","setUTCSeconds","createdAt","updated","updatedAt","PlaySourceUrlBuilder","urlParams","endsWith","string","searchString","indexOf","XmlParser","nodeType","attributes","j","attribute","item","nodeName","nodeValue","hasChildNodes","childNodes","old","_ovpService","_ovpService2","DataLoaderManager","_loaders","_multiRequest","getMultirequest","loader","execution_loader","isValid","startIndex","executionLoaderResponseMap","from","val","index","_loadersResponseMap","execute","_multiResponse","preparedData","prepareData","loaderDataIndexes","_baseEntryService","_baseEntryService2","_metaDataService","_metaDataService2","_kalturaPlaybackContext","_kalturaPlaybackContext2","_kalturaMetadataListResponse2","_kalturaBaseEntryListResponse","_kalturaBaseEntryListResponse2","MediaEntryLoader","_response","buildRequests","_entryId","list","getPlaybackContext","_requests","entries","BaseEntryService","_OvpService","tag","contextDataParams","flavorTags","getEntryListReqParams","redirectFromEntryId","responseProfile","fields","MetaDataService","objectIdEqual","metadataObjectTypeEqual","_kalturaAccessControlMessage","_kalturaAccessControlMessage2","_kalturaPlaybackSource2","_kalturaRuleAction","_kalturaRuleAction2","_kalturaFlavorAsset2","KalturaPlaybackContext","actions","KalturaAccessControlMessage","KalturaRuleAction","_kalturaMediaEntry","_kalturaMediaEntry2","KalturaBaseEntryListResponse","KalturaMediaEntry","dataUrl","mediaType","flavorParamsIds","_sessionService","_sessionService2","SessionLoader","_partnerId","anonymousSession","SessionService","widgetId","_uiConfService","_uiConfService2","_kalturaUiConfResponse","_kalturaUiConfResponse2","UiConfigLoader","uiConf","UiConfService","responseProfileParams","KalturaUiConfResponse","description","objTypeAsString","htmlParams","swfUrl","confFilePath","confFile","confFileFeatures","confVars","useCdn","tags","swfUrlVersion","html5Url","partnerTags","objType","creationMode"],"mappings":"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","file":"ovpProvider.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 17);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Request builder\n * @classdesc\n */\nvar RequestBuilder = function () {\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n\n /**\n * @member - Service headers\n * @type {Map}\n */\n\n /**\n * @member - Service action\n * @type {string}\n */\n function RequestBuilder() {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n _classCallCheck(this, RequestBuilder);\n\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n\n /**\n * @member - Service tag\n * @type {string}\n */\n\n /**\n * @member - Service base url\n * @type {Map}\n */\n\n /**\n * @member - Service params\n * @type {any}\n */\n\n\n /**\n * @member - Service name\n * @type {string}\n */\n\n\n _createClass(RequestBuilder, [{\n key: \"getUrl\",\n value: function getUrl() {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n var url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n\n }, {\n key: \"doHttpRequest\",\n value: function doHttpRequest() {\n var _this = this;\n\n var request = new XMLHttpRequest();\n return new Promise(function (resolve, reject) {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n var jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && (typeof jsonResponse === \"undefined\" ? \"undefined\" : _typeof(jsonResponse)) === 'object' && jsonResponse.code && jsonResponse.message) reject(jsonResponse);else resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(_this.method, _this.getUrl());\n _this.headers.forEach(function (value, key) {\n request.setRequestHeader(key, value);\n });\n request.send(_this.params);\n });\n }\n }]);\n\n return RequestBuilder;\n}();\n\nexports.default = RequestBuilder;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nvar Configuration = function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n }\n\n _createClass(Configuration, null, [{\n key: \"set\",\n value: function set(clientConfig) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n return defaultConfig;\n }\n }]);\n\n return Configuration;\n}();\n\nexports.default = Configuration;\nexports.Configuration = Configuration;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UIConfCreationMode = exports.UIConfType = exports.MediaEntryType = exports.MediaType = exports.EntryType = exports.EntryModerationStatus = exports.EntryStatus = exports.MetadataStatus = exports.MetadataObjectType = exports.Status = exports.KalturaRuleActionType = exports.Scheme = undefined;\n\nvar _enumify = __webpack_require__(10);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Scheme = exports.Scheme = function (_Enum) {\n _inherits(Scheme, _Enum);\n\n function Scheme() {\n _classCallCheck(this, Scheme);\n\n return _possibleConstructorReturn(this, (Scheme.__proto__ || Object.getPrototypeOf(Scheme)).apply(this, arguments));\n }\n\n return Scheme;\n}(_enumify.Enum);\n\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\nvar KalturaRuleActionType = exports.KalturaRuleActionType = function (_Enum2) {\n _inherits(KalturaRuleActionType, _Enum2);\n\n function KalturaRuleActionType() {\n _classCallCheck(this, KalturaRuleActionType);\n\n return _possibleConstructorReturn(this, (KalturaRuleActionType.__proto__ || Object.getPrototypeOf(KalturaRuleActionType)).apply(this, arguments));\n }\n\n return KalturaRuleActionType;\n}(_enumify.Enum);\n\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nvar Status = exports.Status = function (_Enum3) {\n _inherits(Status, _Enum3);\n\n function Status() {\n _classCallCheck(this, Status);\n\n return _possibleConstructorReturn(this, (Status.__proto__ || Object.getPrototypeOf(Status)).apply(this, arguments));\n }\n\n return Status;\n}(_enumify.Enum);\n\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nvar MetadataObjectType = exports.MetadataObjectType = function (_Enum4) {\n _inherits(MetadataObjectType, _Enum4);\n\n function MetadataObjectType() {\n _classCallCheck(this, MetadataObjectType);\n\n return _possibleConstructorReturn(this, (MetadataObjectType.__proto__ || Object.getPrototypeOf(MetadataObjectType)).apply(this, arguments));\n }\n\n return MetadataObjectType;\n}(_enumify.Enum);\n\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nvar MetadataStatus = exports.MetadataStatus = function (_Enum5) {\n _inherits(MetadataStatus, _Enum5);\n\n function MetadataStatus() {\n _classCallCheck(this, MetadataStatus);\n\n return _possibleConstructorReturn(this, (MetadataStatus.__proto__ || Object.getPrototypeOf(MetadataStatus)).apply(this, arguments));\n }\n\n return MetadataStatus;\n}(_enumify.Enum);\n\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\nvar EntryStatus = exports.EntryStatus = function (_Enum6) {\n _inherits(EntryStatus, _Enum6);\n\n function EntryStatus() {\n _classCallCheck(this, EntryStatus);\n\n return _possibleConstructorReturn(this, (EntryStatus.__proto__ || Object.getPrototypeOf(EntryStatus)).apply(this, arguments));\n }\n\n return EntryStatus;\n}(_enumify.Enum);\n\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nvar EntryModerationStatus = exports.EntryModerationStatus = function (_Enum7) {\n _inherits(EntryModerationStatus, _Enum7);\n\n function EntryModerationStatus() {\n _classCallCheck(this, EntryModerationStatus);\n\n return _possibleConstructorReturn(this, (EntryModerationStatus.__proto__ || Object.getPrototypeOf(EntryModerationStatus)).apply(this, arguments));\n }\n\n return EntryModerationStatus;\n}(_enumify.Enum);\n\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nvar EntryType = exports.EntryType = function (_Enum8) {\n _inherits(EntryType, _Enum8);\n\n function EntryType() {\n _classCallCheck(this, EntryType);\n\n return _possibleConstructorReturn(this, (EntryType.__proto__ || Object.getPrototypeOf(EntryType)).apply(this, arguments));\n }\n\n return EntryType;\n}(_enumify.Enum);\n\nEntryType.initEnum({\n AUTOMATIC: { value: -1 },\n EXTERNAL_MEDIA: { value: \"externalMedia.externalMedia\" },\n MEDIA_CLIP: { value: 1 },\n MIX: { value: 2 },\n PLAYLIST: { value: 5 },\n DATA: { value: 6 },\n LIVE_STREAM: { value: 7 },\n LIVE_CHANNEL: { value: 8 },\n DOCUMENT: { value: 10 }\n});\n\nvar MediaType = exports.MediaType = function (_Enum9) {\n _inherits(MediaType, _Enum9);\n\n function MediaType() {\n _classCallCheck(this, MediaType);\n\n return _possibleConstructorReturn(this, (MediaType.__proto__ || Object.getPrototypeOf(MediaType)).apply(this, arguments));\n }\n\n return MediaType;\n}(_enumify.Enum);\n\nMediaType.initEnum({\n VIDEO: { value: 1 },\n IMAGE: { value: 2 },\n AUDIO: { value: 5 },\n LIVE_STREAM_FLASH: { value: 201 },\n LIVE_STREAM_WINDOWS_MEDIA: { value: 202 },\n LIVE_STREAM_REAL_MEDIA: { value: 203 },\n LIVE_STREAM_QUICKTIME: { value: 204 }\n});\n\nvar MediaEntryType = exports.MediaEntryType = function (_Enum10) {\n _inherits(MediaEntryType, _Enum10);\n\n function MediaEntryType() {\n _classCallCheck(this, MediaEntryType);\n\n return _possibleConstructorReturn(this, (MediaEntryType.__proto__ || Object.getPrototypeOf(MediaEntryType)).apply(this, arguments));\n }\n\n return MediaEntryType;\n}(_enumify.Enum);\n\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nvar UIConfType = exports.UIConfType = function (_Enum11) {\n _inherits(UIConfType, _Enum11);\n\n function UIConfType() {\n _classCallCheck(this, UIConfType);\n\n return _possibleConstructorReturn(this, (UIConfType.__proto__ || Object.getPrototypeOf(UIConfType)).apply(this, arguments));\n }\n\n return UIConfType;\n}(_enumify.Enum);\n\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nvar UIConfCreationMode = exports.UIConfCreationMode = function (_Enum12) {\n _inherits(UIConfCreationMode, _Enum12);\n\n function UIConfCreationMode() {\n _classCallCheck(this, UIConfCreationMode);\n\n return _possibleConstructorReturn(this, (UIConfCreationMode.__proto__ || Object.getPrototypeOf(UIConfCreationMode)).apply(this, arguments));\n }\n\n return UIConfCreationMode;\n}(_enumify.Enum);\n\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base service result\n * @classdesc\n */\nvar ServiceResult =\n\n/**\n * @constructor\n * @param {Object} response - Service response\n */\n\n/**\n * @member - The service error\n * @type {ServiceError}\n */\n\n/**\n * @member - The service result data\n * @type {Object}\n */\nfunction ServiceResult(response) {\n _classCallCheck(this, ServiceResult);\n\n this.hasError = false;\n\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else {\n this.data = response;\n }\n}\n\n/**\n * @member - Is service returned an error\n * @type {boolean}\n */\n;\n\n/**\n * Service error\n * @classdesc\n */\n\n\nexports.default = ServiceResult;\n\nvar ServiceError =\n\n/**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n\n/**\n * @member - The error code\n * @type {string}\n */\nfunction ServiceError(code, message) {\n _classCallCheck(this, ServiceError);\n\n this.code = code;\n this.message = message;\n}\n/**\n * @member - The error message\n * @type {string}\n */\n;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\nvar SERVICE_NAME = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\n\nvar OvpService = function () {\n function OvpService() {\n _classCallCheck(this, OvpService);\n }\n\n _createClass(OvpService, null, [{\n key: 'getMultirequest',\n\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n value: function getMultirequest(ks, partnerId) {\n var ovpParams = config.serviceParams;\n Object.assign(ovpParams, { ks: ks });\n if (partnerId) {\n Object.assign(ovpParams, { partnerId: partnerId });\n }\n var multiReq = new _multiRequestBuilder2.default();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n }]);\n\n return OvpService;\n}();\n\nexports.default = OvpService;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOG_LEVEL = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jsLogger = __webpack_require__(7);\n\nvar JsLogger = _interopRequireWildcard(_jsLogger);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LoggerFactory = function () {\n function LoggerFactory(options) {\n _classCallCheck(this, LoggerFactory);\n\n JsLogger.useDefaults(options || {});\n }\n\n _createClass(LoggerFactory, [{\n key: \"get\",\n value: function get(name) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n }]);\n\n return LoggerFactory;\n}();\n\nvar Logger = new LoggerFactory({ defaultLevel: JsLogger.DEBUG });\nvar LOG_LEVEL = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexports.default = Logger;\nexports.LOG_LEVEL = LOG_LEVEL;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MultiRequestResult = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseServiceResult = __webpack_require__(3);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\n\nvar MultiRequestBuilder = function (_RequestBuilder) {\n _inherits(MultiRequestBuilder, _RequestBuilder);\n\n /**\n * @constructor\n */\n function MultiRequestBuilder() {\n _classCallCheck(this, MultiRequestBuilder);\n\n var _this = _possibleConstructorReturn(this, (MultiRequestBuilder.__proto__ || Object.getPrototypeOf(MultiRequestBuilder)).call(this));\n\n _this.requests = [];\n return _this;\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n\n\n _createClass(MultiRequestBuilder, [{\n key: 'add',\n value: function add(request) {\n this.requests.push(request);\n var requestParams = {};\n var serviceDef = { service: request.service, action: request.action };\n Object.assign(requestParams, _defineProperty({}, this.requests.length, Object.assign(serviceDef, request.params)));\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n\n }, {\n key: 'execute',\n value: function execute() {\n var _this2 = this;\n\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n logger.error('' + err.message);\n }\n return new Promise(function (resolve, reject) {\n _this2.doHttpRequest().then(function (data) {\n resolve(new MultiRequestResult(data));\n }, function (err) {\n var errorText = 'Error on multiRequest execution, error <' + err + '>.';\n reject(errorText);\n });\n });\n }\n }]);\n\n return MultiRequestBuilder;\n}(_requestBuilder2.default);\n\n/**\n * Multi Request result object\n * @classdesc\n */\n\n\nexports.default = MultiRequestBuilder;\n\nvar MultiRequestResult =\n\n/**\n * @constructor\n * @param {Object} response data\n */\n\n\n/**\n * @member - Is success\n * @type {boolean}\n */\nexports.MultiRequestResult = function MultiRequestResult(response) {\n var _this3 = this;\n\n _classCallCheck(this, MultiRequestResult);\n\n this.results = [];\n\n this.success = true;\n response.forEach(function (result) {\n var serviceResult = new _baseServiceResult2.default(result);\n _this3.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error('Service returned an error with error code: ' + serviceResult.error.code + ' and message: ' + serviceResult.error.message + '.');\n _this3.success = false;\n return;\n }\n });\n}\n/**\n * @member - Multi request response data\n * @type {Object}\n */\n;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _mediaSource = __webpack_require__(15);\n\nvar _mediaSource2 = _interopRequireDefault(_mediaSource);\n\nvar _mediaFormat = __webpack_require__(13);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nvar MediaSources = function () {\n\n /**\n * @constructor\n */\n\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n function MediaSources() {\n _classCallCheck(this, MediaSources);\n\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n\n\n _createClass(MediaSources, [{\n key: 'map',\n value: function map(source, mediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n }]);\n\n return MediaSources;\n}();\n\nexports.default = MediaSources;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _kalturaDrmPlaybackPluginData = __webpack_require__(19);\n\nvar _kalturaDrmPlaybackPluginData2 = _interopRequireDefault(_kalturaDrmPlaybackPluginData);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nvar KalturaPlaybackSource = function () {\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n\n /**\n * @member - The source URL\n * @type {string}\n */\n\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n function KalturaPlaybackSource(source) {\n var _this = this;\n\n _classCallCheck(this, KalturaPlaybackSource);\n\n this.drm = [];\n\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(function (drm) {\n return _this.drm.push(new _kalturaDrmPlaybackPluginData2.default(drm));\n });\n }\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n\n\n _createClass(KalturaPlaybackSource, [{\n key: \"hasDrmData\",\n value: function hasDrmData() {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n\n }, {\n key: \"hasFlavorIds\",\n value: function hasFlavorIds() {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n\n }, {\n key: \"getProtocol\",\n value: function getProtocol(protocol) {\n var returnValue = \"\";\n if (this.protocols && this.protocols.length > 0) {\n var protocolsArr = this.protocols.split(\",\");\n protocolsArr.forEach(function (p) {\n if (p == protocol) {\n returnValue = p;\n }\n });\n } else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n }]);\n\n return KalturaPlaybackSource;\n}();\n\nexports.default = KalturaPlaybackSource;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nvar KalturaFlavorAsset =\n\n/**\n * @constructor\n * @param {Object} data The json response\n */\n\n/**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n\n/**\n *@member - The video codec\n * @type {boolean}\n */\n\n/**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n\n/**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member -The file extension\n * @type {string}\n */\n\n/**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\nfunction KalturaFlavorAsset(data) {\n _classCallCheck(this, KalturaFlavorAsset);\n\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n}\n/**\n * @member - The label of the flavor asset\n * @type {string}\n */\n\n/**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n\n/**\n * @member - The container format\n * @type {boolean}\n */\n\n/**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n\n/**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n\n/**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n;\n\nexports.default = KalturaFlavorAsset;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(3);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaMetadata = __webpack_require__(20);\n\nvar _kalturaMetadata2 = _interopRequireDefault(_kalturaMetadata);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nvar KalturaMetadataListResponse = function (_ServiceResult) {\n _inherits(KalturaMetadataListResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n function KalturaMetadataListResponse(responseObj) {\n _classCallCheck(this, KalturaMetadataListResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaMetadataListResponse.__proto__ || Object.getPrototypeOf(KalturaMetadataListResponse)).call(this, responseObj));\n\n if (!_this.hasError) {\n _this.totalCount = responseObj.totalCount;\n if (_this.totalCount > 0) {\n _this.metas = [];\n responseObj.objects.map(function (meta) {\n return _this.metas.push(new _kalturaMetadata2.default(meta));\n });\n }\n }\n return _this;\n }\n /**\n * @member -The mata data array\n * @type {Array}\n */\n\n\n return KalturaMetadataListResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaMetadataListResponse;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MediaFormat = undefined;\n\nvar _enumify = __webpack_require__(10);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MediaFormat = exports.MediaFormat = function (_Enum) {\n _inherits(MediaFormat, _Enum);\n\n function MediaFormat() {\n _classCallCheck(this, MediaFormat);\n\n return _possibleConstructorReturn(this, (MediaFormat.__proto__ || Object.getPrototypeOf(MediaFormat)).apply(this, arguments));\n }\n\n return MediaFormat;\n}(_enumify.Enum);\n\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nvar _mediaSources = __webpack_require__(8);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Media entry\n * @classdesc\n */\nvar MediaEntry =\n\n/**\n * @constructor\n */\n\n/**\n * @member - entry type\n * @type {MediaEntryType}\n */\n\n/**\n * @member - entry sources\n * @type {MediaSources}\n */\nfunction MediaEntry() {\n _classCallCheck(this, MediaEntry);\n\n this.metaData = new Map();\n this.type = _enums.MediaEntryType.Unknown;\n}\n/**\n * @member - entry metadata\n * @type {Map}\n */\n\n/**\n * @member - entry duration\n * @type {number}\n */\n\n\n/**\n * @member - entry ID\n * @type {string}\n */\n;\n\nexports.default = MediaEntry;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _drm = __webpack_require__(16);\n\nvar _drm2 = _interopRequireDefault(_drm);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Media source\n * @classdesc\n */\nvar MediaSource =\n\n/**\n * @constructor\n */\n\n/**\n * @member - media source height\n * @type {number}\n */\n\n/**\n * @member - media source bandwidth\n * @type {number}\n */\n\n/**\n * @member - media source mimetype\n * @type {string}\n */\n\n/**\n * @member - media source ID\n * @type {string}\n */\nfunction MediaSource() {\n _classCallCheck(this, MediaSource);\n}\n/**\n * @member - media source label\n * @type {string}\n */\n\n/**\n * @member - media source width\n * @type {number}\n */\n\n/**\n * @member - media source drm data\n * @type {Array}\n */\n\n/**\n * @member - media source URL\n * @type {string}\n */\n;\n\nexports.default = MediaSource;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Drm data\n * @classdesc\n */\nvar Drm =\n\n/**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n\n\n/**\n * @member - license URL\n * @type {string}\n */\nfunction Drm(licenseUrl, scheme) {\n _classCallCheck(this, Drm);\n\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n}\n/**\n * @member - drm scheme\n * @type {Scheme}\n */\n;\n\nexports.default = Drm;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OvpProvider = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _providerParser = __webpack_require__(18);\n\nvar _providerParser2 = _interopRequireDefault(_providerParser);\n\nvar _dataLoaderManager = __webpack_require__(23);\n\nvar _dataLoaderManager2 = _interopRequireDefault(_dataLoaderManager);\n\nvar _mediaEntryLoader = __webpack_require__(24);\n\nvar _mediaEntryLoader2 = _interopRequireDefault(_mediaEntryLoader);\n\nvar _sessionLoader = __webpack_require__(32);\n\nvar _sessionLoader2 = _interopRequireDefault(_sessionLoader);\n\nvar _uiConfigLoader = __webpack_require__(34);\n\nvar _uiConfigLoader2 = _interopRequireDefault(_uiConfigLoader);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _mediaEntry = __webpack_require__(14);\n\nvar _mediaEntry2 = _interopRequireDefault(_mediaEntry);\n\nvar _mediaSources = __webpack_require__(8);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Ovp provider\n * @classdesc\n */\nvar OvpProvider = exports.OvpProvider = function () {\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n\n /**\n * @member - partner ID\n * @type {number}\n */\n function OvpProvider(partnerID) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var config = arguments[2];\n\n _classCallCheck(this, OvpProvider);\n\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n _config2.default.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n\n /**\n * @member - ks\n * @type {string}\n */\n\n\n _createClass(OvpProvider, [{\n key: 'getConfig',\n value: function getConfig(entryId, uiConfId) {\n var _this = this;\n\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new _dataLoaderManager2.default(this.partnerID, this.ks);\n return new Promise(function (resolve, reject) {\n if (_this.validateParams(entryId, uiConfId)) {\n var ks = _this.ks;\n if (_this._isAnonymous) {\n ks = \"{1:result:ks}\";\n _this._dataLoader.add(_sessionLoader2.default, { partnerId: _this.partnerID });\n }\n _this._dataLoader.add(_mediaEntryLoader2.default, { entryId: entryId, ks: ks });\n _this._dataLoader.add(_uiConfigLoader2.default, { uiConfId: uiConfId, ks: ks });\n _this._dataLoader.fetchData().then(function (response) {\n resolve(_this.parseDataFromResponse(response));\n }, function (err) {\n reject(err);\n });\n } else {\n reject({ success: false, data: \"Missing mandatory parameter\" });\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n\n }, {\n key: 'parseDataFromResponse',\n value: function parseDataFromResponse(data) {\n logger.debug(\"Data parsing started\");\n var config = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId\n },\n sources: new _mediaSources2.default(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(_sessionLoader2.default.name)) {\n var sessionLoader = data.get(_sessionLoader2.default.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(_uiConfigLoader2.default.name)) {\n var uiConfLoader = data.get(_uiConfigLoader2.default.name);\n var pluginsJson = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(_mediaEntryLoader2.default.name)) {\n var mediaLoader = data.get(_mediaEntryLoader2.default.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n var mediaEntry = _providerParser2.default.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return config;\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n\n }, {\n key: 'validateParams',\n value: function validateParams(entryId, uiConfId) {\n return !!entryId || !!uiConfId;\n }\n }]);\n\n return OvpProvider;\n}();\n\nexports.default = OvpProvider;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _kalturaPlaybackSource = __webpack_require__(9);\n\nvar _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource);\n\nvar _kalturaFlavorAsset = __webpack_require__(11);\n\nvar _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset);\n\nvar _kalturaMetadataListResponse = __webpack_require__(12);\n\nvar _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse);\n\nvar _playSourceUrlBuilder = __webpack_require__(21);\n\nvar _playSourceUrlBuilder2 = _interopRequireDefault(_playSourceUrlBuilder);\n\nvar _xmlParser = __webpack_require__(22);\n\nvar _xmlParser2 = _interopRequireDefault(_xmlParser);\n\nvar _enums = __webpack_require__(2);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _mediaFormat = __webpack_require__(13);\n\nvar _mediaEntry = __webpack_require__(14);\n\nvar _mediaEntry2 = _interopRequireDefault(_mediaEntry);\n\nvar _drm = __webpack_require__(16);\n\nvar _drm2 = _interopRequireDefault(_drm);\n\nvar _mediaSource = __webpack_require__(15);\n\nvar _mediaSource2 = _interopRequireDefault(_mediaSource);\n\nvar _mediaSources = __webpack_require__(8);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nvar SUPPORTED_FORMATS = new Map([[\"mpegdash\", _mediaFormat.MediaFormat.dash], [\"applehttp\", _mediaFormat.MediaFormat.hls], [\"url\", _mediaFormat.MediaFormat.mp4]]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\n\nvar ProviderParser = function () {\n function ProviderParser() {\n _classCallCheck(this, ProviderParser);\n }\n\n _createClass(ProviderParser, null, [{\n key: 'getMediaEntry',\n\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {any} mediaEntryResponse - The media entry response\n * @returns {MediaEntry} - The media entry\n * @static\n * @public\n */\n value: function getMediaEntry(ks, partnerID, uiConfId, mediaEntryResponse) {\n var mediaEntry = new _mediaEntry2.default();\n var entry = mediaEntryResponse.entry;\n var playbackContext = mediaEntryResponse.playBackContextResult;\n var metadataList = mediaEntryResponse.metadataListResult;\n var kalturaSources = playbackContext.sources;\n var sources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n var metadata = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n var type = _enums.MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case _enums.MediaType.IMAGE.value:\n type = _enums.MediaEntryType.Image;\n break;\n case _enums.MediaType.AUDIO.value:\n type = _enums.MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case _enums.EntryType.MEDIA_CLIP.value:\n type = _enums.MediaEntryType.Vod;\n break;\n case _enums.EntryType.LIVE_STREAM.value:\n case _enums.EntryType.LIVE_CHANNEL.value:\n type = _enums.MediaEntryType.Live;\n break;\n default:\n type = _enums.MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n /**\n * Returns the parsed sources\n * @function _getParsedSources\n * @param {Array} kalturaSources - The kaltura sources\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {Object} entry - The entry\n * @param {Object} playbackContext - The playback context\n * @return {MediaSources} - A media sources\n * @static\n * @private\n */\n\n }, {\n key: '_getParsedSources',\n value: function _getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext) {\n var sources = new _mediaSources2.default();\n\n var addAdaptiveSource = function addAdaptiveSource(source) {\n var parsedSource = ProviderParser._parseAdaptiveSource(source, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n var sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n };\n\n var parseAdaptiveSources = function parseAdaptiveSources() {\n kalturaSources.filter(function (source) {\n return !ProviderParser._isProgressiveSource(source);\n }).forEach(addAdaptiveSource);\n };\n\n var parseProgressiveSources = function parseProgressiveSources() {\n var progressiveSource = kalturaSources.find(ProviderParser._isProgressiveSource);\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n /**\n * Returns a parsed adaptive source\n * @function _parseAdaptiveSource\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {MediaSource} - The parsed adaptive kalturaSource\n * @static\n * @private\n */\n\n }, {\n key: '_parseAdaptiveSource',\n value: function _parseAdaptiveSource(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entryId) {\n var mediaSource = new _mediaSource2.default();\n if (kalturaSource) {\n var playUrl = \"\";\n var mediaFormat = SUPPORTED_FORMATS.get(kalturaSource.format);\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (kalturaSource.hasFlavorIds()) {\n var extension = \"\";\n if (!mediaFormat) {\n if (flavorAssets && flavorAssets.length > 0) {\n extension = flavorAssets[0].fileExt;\n }\n } else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = _playSourceUrlBuilder2.default.build({\n entryId: entryId,\n flavorIds: kalturaSource.flavorIds,\n format: kalturaSource.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: kalturaSource.getProtocol(this._getBaseProtocol())\n });\n } else {\n playUrl = kalturaSource.url;\n }\n\n if (playUrl == \"\") {\n logger.error('failed to create play url from source, discarding source: (' + entryId + '_' + kalturaSource.deliveryProfileId + '), ' + kalturaSource.format + '.');\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entryId + \"_\" + kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n if (kalturaSource.hasDrmData()) {\n var drmParams = [];\n kalturaSource.drm.forEach(function (drm) {\n drmParams.push(new _drm2.default(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n }\n return mediaSource;\n }\n\n /**\n * Returns parsed progressive sources\n * @function _parseProgressiveSources\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {Array} - The parsed progressive kalturaSources\n * @static\n * @private\n */\n\n }, {\n key: '_parseProgressiveSources',\n value: function _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entryId) {\n var sources = [];\n if (kalturaSource) {\n var protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n var format = kalturaSource.format;\n var sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map(function (flavor) {\n if (flavor.height && flavor.width) {\n var mediaSource = new _mediaSource2.default();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = _playSourceUrlBuilder2.default.build({\n entryId: entryId,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n /**\n * @function _isProgressiveSource\n * @param {KalturaPlaybackSource} source - The kaltura source\n * @return {boolean} - Is progressive source\n * @static\n * @private\n */\n\n }, {\n key: '_isProgressiveSource',\n value: function _isProgressiveSource(source) {\n var sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return !!sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n\n }, {\n key: '_parseMetaData',\n value: function _parseMetaData(metadataList) {\n var metadata = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach(function (meta) {\n var metaXml = void 0;\n var domParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n var metasObj = _xmlParser2.default.xmlToJson(metaXml);\n var metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach(function (key) {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n });\n });\n }\n return metadata;\n }\n\n /**\n * Returns the base protocol\n * @function _getBaseProtocol\n * @returns {string} - The base protocol\n * @static\n * @private\n */\n\n }, {\n key: '_getBaseProtocol',\n value: function _getBaseProtocol() {\n var splittedUrl = config.baseUrl.split(\"/\");\n var baseProtocol = void 0;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n } else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n }]);\n\n return ProviderParser;\n}();\n\nexports.default = ProviderParser;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nvar KalturaDrmPlaybackPluginData =\n\n/**\n * @constructor\n * @param {Object} drm The json response\n */\n\n/**\n * @member - The drm scheme\n * @type {Scheme}\n */\nfunction KalturaDrmPlaybackPluginData(drm) {\n _classCallCheck(this, KalturaDrmPlaybackPluginData);\n\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n}\n\n/**\n * @member - The license URL\n * @type {string}\n */\n;\n\nexports.default = KalturaDrmPlaybackPluginData;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nvar KalturaMetadata =\n\n/**\n * @constructor\n * @param {Object} data The response\n */\nfunction KalturaMetadata(data) {\n _classCallCheck(this, KalturaMetadata);\n\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n}\n/**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n;\n\nexports.default = KalturaMetadata;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\n\nvar PlaySourceUrlBuilder = function () {\n function PlaySourceUrlBuilder() {\n _classCallCheck(this, PlaySourceUrlBuilder);\n }\n\n _createClass(PlaySourceUrlBuilder, null, [{\n key: \"build\",\n\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n value: function build(urlParams) {\n var baseUrl = config.baseUrl;\n var partnerId = urlParams.partnerId;\n var entryId = urlParams.entryId;\n var ks = urlParams.ks;\n var uiConfId = urlParams.uiConfId;\n var format = urlParams.format;\n var protocol = urlParams.protocol;\n var extension = urlParams.extension;\n var flavorIds = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n var playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n } else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n\n }, {\n key: \"endsWith\",\n value: function endsWith(string, searchString) {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n }]);\n\n return PlaySourceUrlBuilder;\n}();\n\nexports.default = PlaySourceUrlBuilder;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Xml parser\n * @classdesc\n */\nvar XmlParser = function () {\n function XmlParser() {\n _classCallCheck(this, XmlParser);\n }\n\n _createClass(XmlParser, null, [{\n key: \"xmlToJson\",\n\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n value: function xmlToJson(xml) {\n var obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (var j = 0; j < xml.attributes.length; j++) {\n var attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (var i = 0; i < xml.childNodes.length; i++) {\n var item = xml.childNodes.item(i);\n var nodeName = item.nodeName;\n if (typeof obj[nodeName] == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n } else {\n if (typeof obj[nodeName].push == \"undefined\") {\n var old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n }]);\n\n return XmlParser;\n}();\n\nexports.default = XmlParser;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(4);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Data loaders manager\n * @classdesc\n */\nvar DataLoaderManager = function () {\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n function DataLoaderManager(partnerID) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n\n _classCallCheck(this, DataLoaderManager);\n\n this._loaders = new Map();\n\n this._multiRequest = _ovpService2.default.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n\n\n _createClass(DataLoaderManager, [{\n key: 'add',\n value: function add(loader, params) {\n var _this = this;\n\n var execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n var startIndex = this._multiRequest.requests.length;\n //Get the requests\n var requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach(function (request) {\n _this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n var executionLoaderResponseMap = Array.from(new Array(requests.length), function (val, index) {\n return index + startIndex;\n });\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n\n }, {\n key: 'fetchData',\n value: function fetchData() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2._multiRequest.execute().then(function (response) {\n _this2._multiResponse = response;\n if (!response.success) {\n reject(response);\n } else {\n var preparedData = _this2.prepareData(response);\n if (preparedData.success) {\n resolve(_this2._loaders);\n } else {\n reject({ success: false, data: preparedData.error });\n }\n }\n }, function (err) {\n reject(err);\n });\n });\n }\n }, {\n key: 'prepareData',\n value: function prepareData(response) {\n this._loaders.forEach(function (loader, name) {\n var loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1);\n }\n } catch (err) {\n return { success: false, error: err };\n }\n });\n return { success: true, data: this._loaders };\n }\n }]);\n\n return DataLoaderManager;\n}();\n\nDataLoaderManager._loadersResponseMap = new Map();\nexports.default = DataLoaderManager;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseEntryService = __webpack_require__(25);\n\nvar _baseEntryService2 = _interopRequireDefault(_baseEntryService);\n\nvar _metaDataService = __webpack_require__(26);\n\nvar _metaDataService2 = _interopRequireDefault(_metaDataService);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _kalturaPlaybackContext = __webpack_require__(27);\n\nvar _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext);\n\nvar _kalturaMetadataListResponse = __webpack_require__(12);\n\nvar _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse);\n\nvar _kalturaBaseEntryListResponse = __webpack_require__(30);\n\nvar _kalturaBaseEntryListResponse2 = _interopRequireDefault(_kalturaBaseEntryListResponse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\n\nvar MediaEntryLoader = function () {\n _createClass(MediaEntryLoader, null, [{\n key: 'name',\n get: function get() {\n return \"media\";\n }\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function MediaEntryLoader(params) {\n _classCallCheck(this, MediaEntryLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n _createClass(MediaEntryLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_baseEntryService2.default.list(config.beUrl, params.ks, params.entryId));\n requests.push(_baseEntryService2.default.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(_metaDataService2.default.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._entryId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n var mediaEntryResponse = new _kalturaBaseEntryListResponse2.default(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new _kalturaPlaybackContext2.default(response[1].data);\n this._response.metadataListResult = new _kalturaMetadataListResponse2.default(response[2].data);\n },\n get: function get() {\n return this._response;\n }\n }]);\n\n return MediaEntryLoader;\n}();\n\nexports.default = MediaEntryLoader;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(4);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\n\nvar BaseEntryService = function (_OvpService) {\n _inherits(BaseEntryService, _OvpService);\n\n function BaseEntryService() {\n _classCallCheck(this, BaseEntryService);\n\n return _possibleConstructorReturn(this, (BaseEntryService.__proto__ || Object.getPrototypeOf(BaseEntryService)).apply(this, arguments));\n }\n\n _createClass(BaseEntryService, null, [{\n key: 'getPlaybackContext',\n\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function getPlaybackContext(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n var contextDataParams = { objectType: \"KalturaContextDataParams\", flavorTags: \"all\" };\n var params = { entryId: entryId, ks: ks, contextDataParams: contextDataParams };\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n\n }, {\n key: 'list',\n value: function list(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n\n }, {\n key: 'getEntryListReqParams',\n value: function getEntryListReqParams(entryId, ks) {\n var filterParams = { redirectFromEntryId: entryId };\n var responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return { ks: ks, filter: filterParams, responseProfile: responseProfileParams };\n }\n }]);\n\n return BaseEntryService;\n}(_ovpService2.default);\n\nexports.default = BaseEntryService;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(4);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\n\nvar MetaDataService = function (_OvpService) {\n _inherits(MetaDataService, _OvpService);\n\n function MetaDataService() {\n _classCallCheck(this, MetaDataService);\n\n return _possibleConstructorReturn(this, (MetaDataService.__proto__ || Object.getPrototypeOf(MetaDataService)).apply(this, arguments));\n }\n\n _createClass(MetaDataService, null, [{\n key: 'list',\n\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function list(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n var filter = { objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\" };\n var params = { filter: filter, ks: ks };\n request.params = params;\n return request;\n }\n }]);\n\n return MetaDataService;\n}(_ovpService2.default);\n\nexports.default = MetaDataService;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(3);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaAccessControlMessage = __webpack_require__(28);\n\nvar _kalturaAccessControlMessage2 = _interopRequireDefault(_kalturaAccessControlMessage);\n\nvar _kalturaPlaybackSource = __webpack_require__(9);\n\nvar _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource);\n\nvar _kalturaRuleAction = __webpack_require__(29);\n\nvar _kalturaRuleAction2 = _interopRequireDefault(_kalturaRuleAction);\n\nvar _kalturaFlavorAsset = __webpack_require__(11);\n\nvar _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nvar KalturaPlaybackContext = function (_ServiceResult) {\n _inherits(KalturaPlaybackContext, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n\n /**\n * @member - The playback sources\n * @type {Array}\n */\n function KalturaPlaybackContext(response) {\n _classCallCheck(this, KalturaPlaybackContext);\n\n var _this = _possibleConstructorReturn(this, (KalturaPlaybackContext.__proto__ || Object.getPrototypeOf(KalturaPlaybackContext)).call(this, response));\n\n _this.sources = [];\n _this.actions = [];\n _this.messages = [];\n _this.flavorAssets = [];\n\n if (!_this.hasError) {\n\n var messages = response.messages;\n if (messages) {\n messages.map(function (message) {\n return _this.messages.push(new _kalturaAccessControlMessage2.default(message));\n });\n }\n\n var actions = response.actions;\n if (actions) {\n actions.map(function (action) {\n return _this.actions.push(new _kalturaRuleAction2.default(action));\n });\n }\n\n var sources = response.sources;\n if (sources) {\n sources.map(function (source) {\n return _this.sources.push(new _kalturaPlaybackSource2.default(source));\n });\n }\n\n var flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(function (flavor) {\n return _this.flavorAssets.push(new _kalturaFlavorAsset2.default(flavor));\n });\n }\n }\n\n return _this;\n }\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n\n\n return KalturaPlaybackContext;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaPlaybackContext;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nvar KalturaAccessControlMessage =\n\n/**\n * @constructor\n * @param {Object} data The json response\n */\n\n/**\n * @member - The access control message\n * @type {string}\n */\nfunction KalturaAccessControlMessage(data) {\n _classCallCheck(this, KalturaAccessControlMessage);\n\n this.message = data.message;\n this.code = data.code;\n}\n/**\n * @member - The access control message code\n * @@type {string}\n */\n;\n\nexports.default = KalturaAccessControlMessage;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nvar KalturaRuleAction =\n\n/**\n * @constructor\n * @param {Object} data The response\n */\nfunction KalturaRuleAction(data) {\n _classCallCheck(this, KalturaRuleAction);\n\n this.type = data.type;\n}\n/**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n;\n\nexports.default = KalturaRuleAction;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(3);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaMediaEntry = __webpack_require__(31);\n\nvar _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nvar KalturaBaseEntryListResponse = function (_ServiceResult) {\n _inherits(KalturaBaseEntryListResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n\n /**\n * @member - The total count\n * @type {number}\n */\n function KalturaBaseEntryListResponse(responseObj) {\n _classCallCheck(this, KalturaBaseEntryListResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaBaseEntryListResponse.__proto__ || Object.getPrototypeOf(KalturaBaseEntryListResponse)).call(this, responseObj));\n\n if (!_this.hasError) {\n _this.totalCount = responseObj.totalCount;\n if (_this.totalCount > 0) {\n _this.entries = [];\n responseObj.objects.map(function (entry) {\n return _this.entries.push(new _kalturaMediaEntry2.default(entry));\n });\n }\n }\n return _this;\n }\n /**\n * @member - The entries\n * @type {Array}\n */\n\n\n return KalturaBaseEntryListResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaBaseEntryListResponse;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nvar KalturaMediaEntry =\n\n/**\n * @constructor\n * @param {Object} entry The json response\n */\n\n/**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n\n/**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n\n/**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\nfunction KalturaMediaEntry(entry) {\n _classCallCheck(this, KalturaMediaEntry);\n\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n}\n/**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n\n/**\n * @member - The entry duration\n * @type {number}\n */\n\n/**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n\n/**\n * @member - The entry id\n * @type {string}\n */\n;\n\nexports.default = KalturaMediaEntry;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _sessionService = __webpack_require__(33);\n\nvar _sessionService2 = _interopRequireDefault(_sessionService);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n/**\n * Media entry loader\n * @classdesc\n */\n\nvar SessionLoader = function () {\n _createClass(SessionLoader, null, [{\n key: 'name',\n get: function get() {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function SessionLoader(params) {\n _classCallCheck(this, SessionLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n _createClass(SessionLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_sessionService2.default.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._partnerId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n this._response.ks = response[0].data.ks;\n },\n get: function get() {\n return this._response.ks;\n }\n }]);\n\n return SessionLoader;\n}();\n\nexports.default = SessionLoader;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(4);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\n\nvar SessionService = function (_OvpService) {\n _inherits(SessionService, _OvpService);\n\n function SessionService() {\n _classCallCheck(this, SessionService);\n\n return _possibleConstructorReturn(this, (SessionService.__proto__ || Object.getPrototypeOf(SessionService)).apply(this, arguments));\n }\n\n _createClass(SessionService, null, [{\n key: 'anonymousSession',\n\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function anonymousSession(baseUrl, partnerId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = { widgetId: \"_\" + partnerId };\n return request;\n }\n }]);\n\n return SessionService;\n}(_ovpService2.default);\n\nexports.default = SessionService;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _uiConfService = __webpack_require__(35);\n\nvar _uiConfService2 = _interopRequireDefault(_uiConfService);\n\nvar _kalturaUiConfResponse = __webpack_require__(36);\n\nvar _kalturaUiConfResponse2 = _interopRequireDefault(_kalturaUiConfResponse);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\nvar UiConfigLoader = function () {\n _createClass(UiConfigLoader, null, [{\n key: 'name',\n get: function get() {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function UiConfigLoader(params) {\n _classCallCheck(this, UiConfigLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n _createClass(UiConfigLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_uiConfService2.default.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._uiConfId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n this._response.uiConf = new _kalturaUiConfResponse2.default(response[0].data);\n },\n get: function get() {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null) try {\n return JSON.parse(this._response.uiConf.config).plugins;\n } catch (err) {\n return null;\n } else return null;\n }\n }]);\n\n return UiConfigLoader;\n}();\n\nexports.default = UiConfigLoader;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(4);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\n\nvar UiConfService = function (_OvpService) {\n _inherits(UiConfService, _OvpService);\n\n function UiConfService() {\n _classCallCheck(this, UiConfService);\n\n return _possibleConstructorReturn(this, (UiConfService.__proto__ || Object.getPrototypeOf(UiConfService)).apply(this, arguments));\n }\n\n _createClass(UiConfService, null, [{\n key: 'get',\n\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function get(baseUrl, ks, uiConfID) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n var responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = { id: uiConfID, responseProfile: responseProfileParams, ks: ks };\n return request;\n }\n }]);\n\n return UiConfService;\n}(_ovpService2.default);\n\nexports.default = UiConfService;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(3);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _enums = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nvar KalturaUiConfResponse = function (_ServiceResult) {\n _inherits(KalturaUiConfResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n function KalturaUiConfResponse(data) {\n _classCallCheck(this, KalturaUiConfResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaUiConfResponse.__proto__ || Object.getPrototypeOf(KalturaUiConfResponse)).call(this, data));\n\n if (!_this.hasError) {\n _this.name = data.name;\n\n _this.description = data.description;\n _this.objTypeAsString = data.objTypeAsString;\n _this.width = data.width;\n _this.height = data.height;\n _this.htmlParams = data.htmlParams;\n _this.swfUrl = data.swfUrl;\n _this.confFilePath = data.confFilePath;\n _this.confFile = data.confFile;\n _this.confFileFeatures = data.confFileFeatures;\n _this.config = data.config;\n _this.confVars = data.confVars;\n _this.useCdn = data.useCdn;\n _this.tags = data.tags;\n _this.swfUrlVersion = data.swfUrlVersion;\n _this.created = new Date(0);\n _this.created.setUTCSeconds(data.createdAt);\n _this.updated = new Date(0);\n _this.updated.setUTCSeconds(data.updatedAt);\n _this.html5Url = data.description;\n _this.version = data.description;\n _this.partnerTags = data.description;\n _this.objType = data.description;\n _this.creationMode = data.description;\n }\n return _this;\n }\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n\n\n return KalturaUiConfResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaUiConfResponse;\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// ovpProvider.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 17);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 57f592a94818e7616bb1","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\nimport {Enum} from 'enumify';\n\nexport class Scheme extends Enum {\n}\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\n\nexport class KalturaRuleActionType extends Enum {\n}\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nexport class Status extends Enum {\n}\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nexport class MetadataObjectType extends Enum {\n}\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nexport class MetadataStatus extends Enum {\n}\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\n\nexport class EntryStatus extends Enum {\n}\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nexport class EntryModerationStatus extends Enum {\n}\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nexport class EntryType extends Enum {\n}\nEntryType.initEnum({\n AUTOMATIC: {value: -1},\n EXTERNAL_MEDIA: {value: \"externalMedia.externalMedia\"},\n MEDIA_CLIP: {value: 1},\n MIX: {value: 2},\n PLAYLIST: {value: 5},\n DATA: {value: 6},\n LIVE_STREAM: {value: 7},\n LIVE_CHANNEL: {value: 8},\n DOCUMENT: {value: 10}\n});\n\nexport class MediaType extends Enum {\n}\nMediaType.initEnum({\n VIDEO: {value: 1},\n IMAGE: {value: 2},\n AUDIO: {value: 5},\n LIVE_STREAM_FLASH: {value: 201},\n LIVE_STREAM_WINDOWS_MEDIA: {value: 202},\n LIVE_STREAM_REAL_MEDIA: {value: 203},\n LIVE_STREAM_QUICKTIME: {value: 204}\n});\n\n\nexport class MediaEntryType extends Enum {\n}\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nexport class UIConfType extends Enum {\n}\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nexport class UIConfCreationMode extends Enum {\n}\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/enums.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/js-logger/src/logger.js\n// module id = 7\n// module chunks = 0 1","// @flow\nimport MediaSource from './media-source'\nimport {MediaFormat} from './media-format'\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nexport default class MediaSources {\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n progressive: Array;\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n dash: Array;\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n hls: Array;\n\n /**\n * @constructor\n */\n constructor() {\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n map(source: MediaSource, mediaFormat: ?MediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-sources.js","//@flow\nimport KalturaDrmPlaybackPluginData from './kaltura-drm-playback-plugin-data'\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nexport default class KalturaPlaybackSource {\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n format: string;\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n deliveryProfileId: string;\n /**\n * @member - The source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n protocols: string;\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n flavorIds: string;\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n drm: Array = [];\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n constructor(source: Object) {\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(drm => this.drm.push(new KalturaDrmPlaybackPluginData(drm)));\n }\n\n\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n hasDrmData(): boolean {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n hasFlavorIds(): boolean {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n getProtocol(protocol: string): string {\n let returnValue: string = \"\";\n if (this.protocols && this.protocols.length > 0) {\n let protocolsArr: Array = this.protocols.split(\",\");\n protocolsArr.forEach((p) => {\n if (p == protocol) {\n returnValue = p;\n }\n });\n }\n else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-source.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/enumify/lib/enumify.js\n// module id = 10\n// module chunks = 0","//@flow\nimport {Status} from '../../enums'\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nexport default class KalturaFlavorAsset {\n /**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\n id: string;\n /**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n flavorParamsId: string;\n /**\n * @member -The file extension\n * @type {string}\n */\n fileExt: string;\n /**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n bitrate: number;\n /**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n width: number;\n /**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n height: number;\n /**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n frameRate: number;\n /**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n isOriginal: boolean;\n /**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n isWeb: boolean;\n /**\n * @member - The container format\n * @type {boolean}\n */\n containerFormat: string;\n /**\n *@member - The video codec\n * @type {boolean}\n */\n videoCodecId: string;\n /**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n status: Status;\n /**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n language: string;\n /**\n * @member - The label of the flavor asset\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: any) {\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-flavor-asset.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMetadata from './kaltura-metadata'\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nexport default class KalturaMetadataListResponse extends ServiceResult {\n totalCount: number;\n /**\n * @member -The mata data array\n * @type {Array}\n */\n metas: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.metas = [];\n responseObj.objects.map(meta => this.metas.push(new KalturaMetadata(meta)));\n }\n\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata-list-response.js","//@flow\nimport {Enum} from 'enumify';\n\nexport class MediaFormat extends Enum {\n}\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-format.js","//@flow\nimport {MediaEntryType} from '../k-provider/enums'\nimport MediaSources from './media-sources'\n\n/**\n * Media entry\n * @classdesc\n */\nexport default class MediaEntry {\n\n /**\n * @member - entry ID\n * @type {string}\n */\n id: string;\n /**\n * @member - entry sources\n * @type {MediaSources}\n */\n sources: MediaSources;\n /**\n * @member - entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - entry type\n * @type {MediaEntryType}\n */\n type: MediaEntryType;\n /**\n * @member - entry metadata\n * @type {Map}\n */\n metaData: Map;\n\n /**\n * @constructor\n */\n constructor() {\n this.metaData = new Map();\n this.type = MediaEntryType.Unknown;\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-entry.js","//@flow\nimport Drm from '../entities/drm'\n\n/**\n * Media source\n * @classdesc\n */\nexport default class MediaSource {\n /**\n * @member - media source ID\n * @type {string}\n */\n id: string;\n /**\n * @member - media source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - media source mimetype\n * @type {string}\n */\n mimetype: string;\n /**\n * @member - media source drm data\n * @type {Array}\n */\n drmData: Array;\n /**\n * @member - media source bandwidth\n * @type {number}\n */\n bandwidth: number;\n /**\n * @member - media source width\n * @type {number}\n */\n width: number;\n /**\n * @member - media source height\n * @type {number}\n */\n height: number;\n /**\n * @member - media source label\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n */\n constructor(){}\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-source.js","//@flow\n\nimport {Scheme} from '../k-provider/enums';\n\n/**\n * Drm data\n * @classdesc\n */\nexport default class Drm {\n\n /**\n * @member - license URL\n * @type {string}\n */\n licenseUrl: string;\n /**\n * @member - drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n constructor(licenseUrl: string, scheme: Scheme) {\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/drm.js","//@flow\nimport Logger from '../../util/logger'\nimport ProviderParser from './provider-parser'\nimport DataLoaderManager from './loaders/data-loader-manager'\nimport MediaEntryLoader from './loaders/media-entry-loader'\nimport SessionLoader from './loaders/session-loader'\nimport UiConfigLoader from './loaders/ui-config-loader'\nimport Configuration from './config'\nimport MediaEntry from '../../entities/media-entry'\nimport MediaSources from '../../entities/media-sources'\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\ntype playerConfig = {\n id: string,\n session: Object,\n sources: MediaSources,\n duration: number,\n type: string,\n metadata: Object,\n plugins: Object\n};\n\n/**\n * Ovp provider\n * @classdesc\n */\nexport class OvpProvider {\n /**\n * @member - ks\n * @type {string}\n */\n ks: string;\n /**\n * @member - partner ID\n * @type {number}\n */\n partnerID: number;\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n _isAnonymous: boolean;\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n _dataLoader: DataLoaderManager;\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n constructor(partnerID: number, ks: string = \"\", config?: Object) {\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n Configuration.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n getConfig(entryId?: string, uiConfId?: number): Promise {\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new DataLoaderManager(this.partnerID, this.ks);\n return new Promise((resolve, reject) => {\n if (this.validateParams(entryId, uiConfId)) {\n let ks: string = this.ks;\n if (this._isAnonymous) {\n ks = \"{1:result:ks}\";\n this._dataLoader.add(SessionLoader, {partnerId: this.partnerID});\n }\n this._dataLoader.add(MediaEntryLoader, {entryId: entryId, ks: ks});\n this._dataLoader.add(UiConfigLoader, {uiConfId: uiConfId, ks: ks});\n this._dataLoader.fetchData()\n .then(response => {\n resolve(this.parseDataFromResponse(response));\n },\n err => {\n reject(err);\n });\n }\n else {\n reject({success: false, data: \"Missing mandatory parameter\"});\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n parseDataFromResponse(data: Map): Object {\n logger.debug(\"Data parsing started\");\n let config: playerConfig = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId,\n },\n sources: new MediaSources(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(SessionLoader.name)) {\n let sessionLoader = data.get(SessionLoader.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(UiConfigLoader.name)) {\n let uiConfLoader = data.get(UiConfigLoader.name);\n let pluginsJson: Object = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(MediaEntryLoader.name)) {\n let mediaLoader = data.get(MediaEntryLoader.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n let mediaEntry: MediaEntry = ProviderParser.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return (config);\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n validateParams(entryId?: string, uiConfId?: number): boolean {\n return !!entryId || !!uiConfId;\n }\n\n}\n\nexport default OvpProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/ovp-provider.js","//@flow\nimport KalturaPlaybackSource from './response-types/kaltura-playback-source'\nimport KalturaFlavorAsset from './response-types/kaltura-flavor-asset'\nimport KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response'\nimport PlaySourceUrlBuilder from \"./play-source-url-builder\"\nimport XmlParser from '../xml-parser'\nimport {MediaEntryType, EntryType, MediaType} from '../enums'\nimport Logger from '../../util/logger'\nimport Configuration from './config'\nimport {MediaFormat} from '../../entities/media-format'\nimport MediaEntry from '../../entities/media-entry'\nimport Drm from '../../entities/drm'\nimport MediaSource from '../../entities/media-source'\nimport MediaSources from '../../entities/media-sources'\n\nconst config = Configuration.get();\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nconst SUPPORTED_FORMATS: Map = new Map([\n [\"mpegdash\", MediaFormat.dash],\n [\"applehttp\", MediaFormat.hls],\n [\"url\", MediaFormat.mp4]\n]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\nexport default class ProviderParser {\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {any} mediaEntryResponse - The media entry response\n * @returns {MediaEntry} - The media entry\n * @static\n * @public\n */\n static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry {\n let mediaEntry: MediaEntry = new MediaEntry();\n let entry = mediaEntryResponse.entry;\n let playbackContext = mediaEntryResponse.playBackContextResult;\n let metadataList = mediaEntryResponse.metadataListResult;\n let kalturaSources: Array = playbackContext.sources;\n let sources: MediaSources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n let metadata: Map = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n let type: MediaEntryType = MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case MediaType.IMAGE.value:\n type = MediaEntryType.Image;\n break;\n case MediaType.AUDIO.value:\n type = MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case EntryType.MEDIA_CLIP.value:\n type = MediaEntryType.Vod;\n break;\n case EntryType.LIVE_STREAM.value:\n case EntryType.LIVE_CHANNEL.value:\n type = MediaEntryType.Live;\n break;\n default:\n type = MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n /**\n * Returns the parsed sources\n * @function _getParsedSources\n * @param {Array} kalturaSources - The kaltura sources\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {Object} entry - The entry\n * @param {Object} playbackContext - The playback context\n * @return {MediaSources} - A media sources\n * @static\n * @private\n */\n static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry: Object, playbackContext: Object): MediaSources {\n let sources: MediaSources = new MediaSources();\n\n let addAdaptiveSource = function(source: KalturaPlaybackSource): void{\n let parsedSource = ProviderParser._parseAdaptiveSource(source, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n };\n\n let parseAdaptiveSources = function (): void {\n kalturaSources.filter((source) => !ProviderParser._isProgressiveSource(source)).forEach(addAdaptiveSource);\n };\n\n let parseProgressiveSources = function (): void{\n let progressiveSource = kalturaSources.find(ProviderParser._isProgressiveSource);\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n /**\n * Returns a parsed adaptive source\n * @function _parseAdaptiveSource\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {MediaSource} - The parsed adaptive kalturaSource\n * @static\n * @private\n */\n static _parseAdaptiveSource(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): MediaSource {\n let mediaSource: MediaSource = new MediaSource();\n if (kalturaSource) {\n let playUrl: string = \"\";\n let mediaFormat = SUPPORTED_FORMATS.get(kalturaSource.format);\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (kalturaSource.hasFlavorIds()) {\n let extension: string = \"\";\n if (!mediaFormat) {\n if (flavorAssets && flavorAssets.length > 0) {\n extension = flavorAssets[0].fileExt;\n }\n }\n else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = PlaySourceUrlBuilder.build({\n entryId: entryId,\n flavorIds: kalturaSource.flavorIds,\n format: kalturaSource.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: kalturaSource.getProtocol(this._getBaseProtocol())\n });\n\n }\n else {\n playUrl = kalturaSource.url;\n }\n\n if (playUrl == \"\") {\n logger.error(`failed to create play url from source, discarding source: (${entryId}_${kalturaSource.deliveryProfileId}), ${kalturaSource.format}.`);\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entryId + \"_\" + kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n if (kalturaSource.hasDrmData()) {\n let drmParams: Array = [];\n kalturaSource.drm.forEach((drm) => {\n drmParams.push(new Drm(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n }\n return mediaSource;\n }\n\n /**\n * Returns parsed progressive sources\n * @function _parseProgressiveSources\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {Array} - The parsed progressive kalturaSources\n * @static\n * @private\n */\n static _parseProgressiveSources(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): Array {\n let sources = [];\n if (kalturaSource) {\n let protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n let format = kalturaSource.format;\n let sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map((flavor) => {\n if (flavor.height && flavor.width) {\n let mediaSource: MediaSource = new MediaSource();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = PlaySourceUrlBuilder.build({\n entryId: entryId,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n /**\n * @function _isProgressiveSource\n * @param {KalturaPlaybackSource} source - The kaltura source\n * @return {boolean} - Is progressive source\n * @static\n * @private\n */\n static _isProgressiveSource(source: KalturaPlaybackSource): boolean {\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return !!sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n static _parseMetaData(metadataList: KalturaMetadataListResponse): Map {\n let metadata: Object = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach((meta) => {\n let metaXml: Object;\n let domParser: DOMParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n let metasObj: Object = XmlParser.xmlToJson(metaXml);\n let metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach((key) => {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n })\n })\n }\n return metadata;\n }\n\n /**\n * Returns the base protocol\n * @function _getBaseProtocol\n * @returns {string} - The base protocol\n * @static\n * @private\n */\n static _getBaseProtocol(): string {\n let splittedUrl: Array = config.baseUrl.split(\"/\");\n let baseProtocol: string;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n }\n else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/provider-parser.js","//@flow\nimport {Scheme} from '../../enums'\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nexport default class KalturaDrmPlaybackPluginData {\n /**\n * @member - The drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @member - The license URL\n * @type {string}\n */\n licenseURL: string;\n\n /**\n * @constructor\n * @param {Object} drm The json response\n */\n constructor(drm: any) {\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","//@flow\nimport {MetadataObjectType, MetadataStatus} from '../../enums'\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nexport default class KalturaMetadata {\n id: number;\n metadataProfileId: number;\n metadataProfileVersion: number;\n metadataObjectType: MetadataObjectType;\n objectId: string;\n version: number;\n created: Date;\n updated: Date;\n status: MetadataStatus;\n /**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n xml: string;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata.js","//@flow\nimport Configuration from './config'\n\nconst config = Configuration.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\nexport default class PlaySourceUrlBuilder {\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n static build(urlParams: Object): string {\n let baseUrl: string = config.baseUrl;\n let partnerId: string = urlParams.partnerId;\n let entryId: string = urlParams.entryId;\n let ks: string = urlParams.ks;\n let uiConfId: string = urlParams.uiConfId;\n let format: string = urlParams.format;\n let protocol: string = urlParams.protocol;\n let extension: string = urlParams.extension;\n let flavorIds: string = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n let playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n }\n else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n static endsWith(string: string, searchString: string): boolean {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/play-source-url-builder.js","//@flow\n\n/**\n * Xml parser\n * @classdesc\n */\nexport default class XmlParser {\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n static xmlToJson(xml: Object) {\n let obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n let attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n }\n else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n let item = xml.childNodes.item(i);\n let nodeName = item.nodeName;\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n }\n else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n let old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/xml-parser.js","//@flow\nimport OvpService from '../services/ovp-service'\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport {MultiRequestResult} from '../../multi-request-builder'\n\n/**\n * Data loaders manager\n * @classdesc\n */\nexport default class DataLoaderManager {\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n static _loadersResponseMap: Map> = new Map();\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n _multiRequest: MultiRequestBuilder;\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n _multiResponse: MultiRequestResult;\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n _loaders: Map = new Map();\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n constructor(partnerID: number, ks: string = \"\") {\n this._multiRequest = OvpService.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n add(loader: Function, params: Object): void {\n let execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n let startIndex = this._multiRequest.requests.length;\n //Get the requests\n let requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach((request) => {\n this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n let executionLoaderResponseMap = Array.from(new Array(requests.length), (val, index) => index + startIndex);\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n fetchData(): Promise {\n return new Promise((resolve, reject) => {\n this._multiRequest.execute()\n .then(response => {\n this._multiResponse = response;\n if (!response.success) {\n reject(response);\n }\n else {\n let preparedData: Object = this.prepareData(response);\n if (preparedData.success) {\n resolve(this._loaders);\n }\n else {\n reject({success: false, data: preparedData.error});\n }\n }\n },\n err => {\n reject(err);\n });\n });\n }\n\n prepareData(response: MultiRequestResult): Object {\n this._loaders.forEach(function (loader, name) {\n let loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = (response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1));\n }\n }\n catch (err) {\n return {success: false, error: err};\n }\n });\n return {success: true, data: this._loaders};\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/data-loader-manager.js","//@flow\n\nimport RequestBuilder from '../../request-builder'\nimport BaseEntryService from '../services/base-entry-service'\nimport MetaDataService from '../services/meta-data-service'\nimport Configuration from '../config'\nimport KalturaPlaybackContext from '../response-types/kaltura-playback-context'\nimport KalturaMetadataListResponse from '../response-types/kaltura-metadata-list-response'\nimport KalturaBaseEntryListResponse from '../response-types/kaltura-base-entry-list-response'\n\nconst config = Configuration.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class MediaEntryLoader implements ILoader {\n static get name(): string {\n return \"media\";\n }\n\n _entryId: string;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n let mediaEntryResponse: KalturaBaseEntryListResponse = new KalturaBaseEntryListResponse(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);\n this._response.metadataListResult = new KalturaMetadataListResponse(response[2].data);\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(BaseEntryService.list(config.beUrl, params.ks, params.entryId));\n requests.push(BaseEntryService.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(MetaDataService.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._entryId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/media-entry-loader.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\nexport default class BaseEntryService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static getPlaybackContext(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n let contextDataParams = {objectType: \"KalturaContextDataParams\", flavorTags: \"all\"};\n let params = {entryId: entryId, ks: ks, contextDataParams: contextDataParams};\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n static getEntryListReqParams(entryId: string, ks: string): any {\n let filterParams = {redirectFromEntryId: entryId};\n let responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return {ks: ks, filter: filterParams, responseProfile: responseProfileParams};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/base-entry-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\nexport default class MetaDataService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n let filter = {objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\"};\n let params = {filter: filter, ks: ks};\n request.params = params;\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/meta-data-service.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaAccessControlMessage from './kaltura-access-control-message'\nimport KalturaPlaybackSource from './kaltura-playback-source'\nimport KalturaRuleAction from './kaltura-rule-action'\nimport KalturaFlavorAsset from './kaltura-flavor-asset'\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nexport default class KalturaPlaybackContext extends ServiceResult {\n /**\n * @member - The playback sources\n * @type {Array}\n */\n sources: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n actions: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n messages: Array = [];\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n flavorAssets: Array = [];\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n constructor(response: Object) {\n super(response);\n if (!this.hasError) {\n\n let messages = response.messages;\n if (messages) {\n messages.map(message => this.messages.push(new KalturaAccessControlMessage(message)));\n }\n\n let actions = response.actions;\n if (actions) {\n actions.map(action => this.actions.push(new KalturaRuleAction(action)));\n }\n\n let sources = response.sources;\n if (sources) {\n sources.map(source => this.sources.push(new KalturaPlaybackSource(source)));\n }\n\n let flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(flavor => this.flavorAssets.push(new KalturaFlavorAsset(flavor)));\n }\n }\n\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-context.js","//@flow\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nexport default class KalturaAccessControlMessage {\n /**\n * @member - The access control message\n * @type {string}\n */\n message: string;\n /**\n * @member - The access control message code\n * @@type {string}\n */\n code: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n this.message = data.message;\n this.code = data.code\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-access-control-message.js","//@flow\nimport {KalturaRuleActionType} from '../../enums'\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nexport default class KalturaRuleAction {\n /**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n type: KalturaRuleActionType;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.type = data.type;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-rule-action.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMediaEntry from './kaltura-media-entry'\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nexport default class KalturaBaseEntryListResponse extends ServiceResult {\n /**\n * @member - The total count\n * @type {number}\n */\n totalCount: number;\n /**\n * @member - The entries\n * @type {Array}\n */\n entries: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.entries = [];\n responseObj.objects.map(entry => this.entries.push(new KalturaMediaEntry(entry)));\n }\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","//@flow\nimport {EntryType, MediaType} from '../../enums'\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nexport default class KalturaMediaEntry {\n /**\n * @member - The entry id\n * @type {string}\n */\n id: string;\n /**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\n name: string;\n /**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n dataUrl: string;\n /**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n flavorParamsIds: string;\n /**\n * @member - The entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n type: EntryType;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n entryType: MediaType;\n\n /**\n * @constructor\n * @param {Object} entry The json response\n */\n constructor(entry: Object) {\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n }\n}\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-media-entry.js","//@flow\nimport SessionService from '../services/session-service'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class SessionLoader implements ILoader {\n static get name(): string {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n _partnerId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.ks = response[0].data.ks;\n }\n\n get response(): any {\n return this._response.ks;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(SessionService.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._partnerId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/session-loader.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\nexport default class SessionService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static anonymousSession(baseUrl: string, partnerId: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = {widgetId: \"_\" + partnerId};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/session-service.js","//@flow\nimport UiConfService from '../services/ui-conf-service'\nimport KalturaUiConfResponse from '../response-types/kaltura-ui-conf-response'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n\nexport default class UiConfigLoader implements ILoader {\n static get name(): string {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.uiConf = new KalturaUiConfResponse(response[0].data);\n }\n\n get response(): any {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null)\n try {\n return JSON.parse(this._response.uiConf.config).plugins;\n }\n catch (err) {\n return null;\n }\n else\n return null;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(UiConfService.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._uiConfId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/ui-config-loader.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\nexport default class UiConfService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static get(baseUrl: string, ks: string, uiConfID: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n let responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = {id: uiConfID, responseProfile: responseProfileParams, ks: ks};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ui-conf-service.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport {UIConfType, UIConfCreationMode} from '../../enums';\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nexport default class KalturaUiConfResponse extends ServiceResult {\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n name: string;\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n description: string;\n objTypeAsString: string;\n width: number;\n height: number;\n htmlParams: string;\n swfUrl: string;\n confFilePath: string;\n confFile: string;\n confFileFeatures: string;\n name: string;\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n config: string;\n confVars: string;\n useCdn: boolean;\n tags: string;\n swfUrlVersion: string;\n created: Date;\n updated: Date;\n html5Url: string;\n version: string;\n partnerTags: string;\n objType: UIConfType;\n creationMode: UIConfCreationMode;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n super(data);\n if (!this.hasError) {\n this.name = data.name;\n\n this.description = data.description;\n this.objTypeAsString = data.objTypeAsString;\n this.width = data.width;\n this.height = data.height;\n this.htmlParams = data.htmlParams;\n this.swfUrl = data.swfUrl;\n this.confFilePath = data.confFilePath;\n this.confFile = data.confFile;\n this.confFileFeatures = data.confFileFeatures;\n this.config = data.config;\n this.confVars = data.confVars;\n this.useCdn = data.useCdn;\n this.tags = data.tags;\n this.swfUrlVersion = data.swfUrlVersion;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.html5Url = data.description;\n this.version = data.description;\n this.partnerTags = data.description;\n this.objType = data.description;\n this.creationMode = data.description;\n\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-ui-conf-response.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/statsService.js b/dist/statsService.js index b478fac1..fcd4b442 100644 --- a/dist/statsService.js +++ b/dist/statsService.js @@ -43,9 +43,6 @@ return /******/ (function(modules) { // webpackBootstrap /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ -/******/ // identity function for calling harmony imports with the correct context -/******/ __webpack_require__.i = function(value) { return value; }; -/******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { @@ -73,7 +70,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 36); +/******/ return __webpack_require__(__webpack_require__.s = 38); /******/ }) /************************************************************************/ /******/ ({ @@ -266,67 +263,82 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var _multiRequestBuilder = __webpack_require__(6); +/** + * Base service result + * @classdesc + */ +var ServiceResult = -var _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder); +/** + * @constructor + * @param {Object} response - Service response + */ -var _config = __webpack_require__(1); +/** + * @member - The service error + * @type {ServiceError} + */ -var _config2 = _interopRequireDefault(_config); +/** + * @member - The service result data + * @type {Object} + */ +function ServiceResult(response) { + _classCallCheck(this, ServiceResult); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + this.hasError = false; -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + if (response.objectType === "KalturaAPIException") { + this.hasError = true; + this.error = new ServiceError(response.code, response.message); + } else { + this.data = response; + } +} -var config = _config2.default.get(); -var SERVICE_NAME = "multirequest"; +/** + * @member - Is service returned an error + * @type {boolean} + */ +; /** - * Base for all ovp services + * Service error * @classdesc */ -var OvpService = function () { - function OvpService() { - _classCallCheck(this, OvpService); - } - _createClass(OvpService, null, [{ - key: 'getMultirequest', +exports.default = ServiceResult; - /** - * Gets a new instance of MultiRequestBuilder with ovp params - * @function getMultirequest - * @param {string} ks The ks - * @param {string} partnerId The partner ID - * @returns {MultiRequestBuilder} The multi request builder - * @static - */ - value: function getMultirequest(ks, partnerId) { - var ovpParams = config.serviceParams; - Object.assign(ovpParams, { ks: ks }); - if (partnerId) { - Object.assign(ovpParams, { partnerId: partnerId }); - } - var multiReq = new _multiRequestBuilder2.default(); - multiReq.method = "POST"; - multiReq.service = SERVICE_NAME; - multiReq.baseUrl = config.beUrl; - multiReq.params = ovpParams; - return multiReq; - } - }]); +var ServiceError = - return OvpService; -}(); +/** + * @constructor + * @param {string} code - The result code + * @param {string} message - The result message + */ -exports.default = OvpService; +/** + * @member - The error code + * @type {string} + */ +function ServiceError(code, message) { + _classCallCheck(this, ServiceError); + + this.code = code; + this.message = message; +} +/** + * @member - The error message + * @type {string} + */ +; /***/ }), -/***/ 36: +/***/ 38: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -339,7 +351,7 @@ exports.RequestBuilder = exports.Configuration = exports.StatsService = undefine var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _ovpService = __webpack_require__(3); +var _ovpService = __webpack_require__(4); var _ovpService2 = _interopRequireDefault(_ovpService); @@ -422,78 +434,63 @@ Object.defineProperty(exports, "__esModule", { value: true }); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -/** - * Base service result - * @classdesc - */ -var ServiceResult = +var _multiRequestBuilder = __webpack_require__(6); -/** - * @constructor - * @param {Object} response - Service response - */ +var _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder); -/** - * @member - The service error - * @type {ServiceError} - */ +var _config = __webpack_require__(1); -/** - * @member - The service result data - * @type {Object} - */ -function ServiceResult(response) { - _classCallCheck(this, ServiceResult); +var _config2 = _interopRequireDefault(_config); - this.hasError = false; +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - if (response.objectType === "KalturaAPIException") { - this.hasError = true; - this.error = new ServiceError(response.code, response.message); - } else { - this.data = response; - } -} +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -/** - * @member - Is service returned an error - * @type {boolean} - */ -; +var config = _config2.default.get(); +var SERVICE_NAME = "multirequest"; /** - * Service error + * Base for all ovp services * @classdesc */ +var OvpService = function () { + function OvpService() { + _classCallCheck(this, OvpService); + } -exports.default = ServiceResult; - -var ServiceError = + _createClass(OvpService, null, [{ + key: 'getMultirequest', -/** - * @constructor - * @param {string} code - The result code - * @param {string} message - The result message - */ + /** + * Gets a new instance of MultiRequestBuilder with ovp params + * @function getMultirequest + * @param {string} ks The ks + * @param {string} partnerId The partner ID + * @returns {MultiRequestBuilder} The multi request builder + * @static + */ + value: function getMultirequest(ks, partnerId) { + var ovpParams = config.serviceParams; + Object.assign(ovpParams, { ks: ks }); + if (partnerId) { + Object.assign(ovpParams, { partnerId: partnerId }); + } + var multiReq = new _multiRequestBuilder2.default(); + multiReq.method = "POST"; + multiReq.service = SERVICE_NAME; + multiReq.baseUrl = config.beUrl; + multiReq.params = ovpParams; + return multiReq; + } + }]); -/** - * @member - The error code - * @type {string} - */ -function ServiceError(code, message) { - _classCallCheck(this, ServiceError); + return OvpService; +}(); - this.code = code; - this.message = message; -} -/** - * @member - The error message - * @type {string} - */ -; +exports.default = OvpService; /***/ }), @@ -510,7 +507,7 @@ exports.LOG_LEVEL = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _jsLogger = __webpack_require__(8); +var _jsLogger = __webpack_require__(7); var JsLogger = _interopRequireWildcard(_jsLogger); @@ -570,7 +567,7 @@ var _requestBuilder = __webpack_require__(0); var _requestBuilder2 = _interopRequireDefault(_requestBuilder); -var _baseServiceResult = __webpack_require__(4); +var _baseServiceResult = __webpack_require__(3); var _baseServiceResult2 = _interopRequireDefault(_baseServiceResult); @@ -715,7 +712,7 @@ exports.MultiRequestResult = function MultiRequestResult(response) { /***/ }), -/***/ 8: +/***/ 7: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! diff --git a/dist/statsService.js.map b/dist/statsService.js.map index 4ed734f6..84c44997 100644 --- a/dist/statsService.js.map +++ b/dist/statsService.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///webpack/bootstrap 40363af1b4965fde30fb?46d4","webpack:///./k-provider/request-builder.js?c3f6","webpack:///./k-provider/ovp/config.js?e6e3","webpack:///./k-provider/ovp/services/ovp-service.js?fc9d","webpack:///providers/./k-provider/ovp/services/stats-service.js","webpack:///./k-provider/base-service-result.js?60ef","webpack:///./util/logger.js?8c6e","webpack:///./k-provider/multi-request-builder.js?9243","webpack:///../~/js-logger/src/logger.js?779b"],"names":["RequestBuilder","headers","Map","set","baseUrl","Error","url","service","action","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","value","key","setRequestHeader","send","params","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","Object","assign","config","get","SERVICE_NAME","OvpService","ks","partnerId","ovpParams","multiReq","StatsService","event","tag","stringify","ServiceResult","response","hasError","objectType","error","ServiceError","data","JsLogger","LoggerFactory","options","useDefaults","name","Logger","defaultLevel","DEBUG","LOG_LEVEL","INFO","TIME","WARN","ERROR","OFF","logger","MultiRequestBuilder","requests","push","requestParams","serviceDef","length","err","doHttpRequest","then","MultiRequestResult","errorText","results","success","result","serviceResult"],"mappings":"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CA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;;AAEA;AACA,0CAA0C,0BAA0B;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC","file":"statsService.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 40363af1b4965fde30fb","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\nimport Configuration from '../config'\n\nconst SERVICE_NAME: string = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\nexport default class StatsService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static collect(ks: string, event: Object, baseUrl: ?string): RequestBuilder {\n let ovpParams = Configuration.get();\n let serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks}, event);\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n\nexport {StatsService, Configuration, RequestBuilder};\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/stats-service.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/js-logger/src/logger.js\n// module id = 8\n// module chunks = 0 1"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/webpack/bootstrap e13f9de90e38187349d1","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./k-provider/ovp/services/stats-service.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/../node_modules/js-logger/src/logger.js"],"names":["RequestBuilder","headers","Map","set","baseUrl","Error","url","service","action","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","value","key","setRequestHeader","send","params","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","Object","assign","ServiceResult","response","hasError","objectType","error","ServiceError","data","SERVICE_NAME","StatsService","ks","event","ovpParams","get","tag","stringify","config","OvpService","partnerId","multiReq","JsLogger","LoggerFactory","options","useDefaults","name","Logger","defaultLevel","DEBUG","LOG_LEVEL","INFO","TIME","WARN","ERROR","OFF","logger","MultiRequestBuilder","requests","push","requestParams","serviceDef","length","err","doHttpRequest","then","MultiRequestResult","errorText","results","success","result","serviceResult"],"mappings":"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;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;;AAEA;AACA,0CAA0C,0BAA0B;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC","file":"statsService.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 38);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap e13f9de90e38187349d1","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\nimport Configuration from '../config'\n\nconst SERVICE_NAME: string = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\nexport default class StatsService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static collect(ks: string, event: Object, baseUrl: ?string): RequestBuilder {\n let ovpParams = Configuration.get();\n let serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks}, event);\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n\nexport {StatsService, Configuration, RequestBuilder};\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/stats-service.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/js-logger/src/logger.js\n// module id = 7\n// module chunks = 0 1"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/statsService.min.js b/dist/statsService.min.js index fd18e8eb..f2fca2c2 100644 --- a/dist/statsService.min.js +++ b/dist/statsService.min.js @@ -1,4 +1,4 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PlaykitJsProviders=t():e.PlaykitJsProviders=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=36)}({0:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),this.headers=t,this.headers.set("Content-Type","application/json")}return i(e,[{key:"getUrl",value:function(){if(!this.baseUrl)throw new Error("baseUrl is mandatory for request builder");return this.baseUrl+"/service/"+this.service+(this.action?"/action/"+this.action:"")}},{key:"doHttpRequest",value:function(){var e=this,t=new XMLHttpRequest;return new Promise(function(n,r){t.onreadystatechange=function(){if(4===t.readyState)if(200===t.status){var e=JSON.parse(t.responseText);e&&"object"===(void 0===e?"undefined":o(e))&&e.code&&e.message?r(e):n(e)}else r(t.responseText)},t.open(e.method,e.getUrl()),e.headers.forEach(function(e,n){t.setRequestHeader(n,e)}),t.send(e.params)})}}]),e}();t.default=u},1:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n.")})})}}]),t}(l.default);t.default=y;var b=t.MultiRequestResult=function e(t){var n=this;i(this,e),this.results=[],this.success=!0,t.forEach(function(e){var t=new p.default(e);if(n.results.push(t),t.hasError)return h.error("Service returned an error with error code: "+t.error.code+" and message: "+t.error.message+"."),void(n.success=!1)})}},8:function(e,t,n){var r,o;/*! +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PlaykitJsProviders=t():e.PlaykitJsProviders=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=38)}({0:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),this.headers=t,this.headers.set("Content-Type","application/json")}return i(e,[{key:"getUrl",value:function(){if(!this.baseUrl)throw new Error("baseUrl is mandatory for request builder");return this.baseUrl+"/service/"+this.service+(this.action?"/action/"+this.action:"")}},{key:"doHttpRequest",value:function(){var e=this,t=new XMLHttpRequest;return new Promise(function(n,r){t.onreadystatechange=function(){if(4===t.readyState)if(200===t.status){var e=JSON.parse(t.responseText);e&&"object"===(void 0===e?"undefined":o(e))&&e.code&&e.message?r(e):n(e)}else r(t.responseText)},t.open(e.method,e.getUrl()),e.headers.forEach(function(e,n){t.setRequestHeader(n,e)}),t.send(e.params)})}}]),e}();t.default=u},1:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n.")})})}}]),t}(l.default);t.default=y;var b=t.MultiRequestResult=function e(t){var n=this;i(this,e),this.results=[],this.success=!0,t.forEach(function(e){var t=new p.default(e);if(n.results.push(t),t.hasError)return h.error("Service returned an error with error code: "+t.error.code+" and message: "+t.error.message+"."),void(n.success=!1)})}},7:function(e,t,n){var r,o;/*! * js-logger - http://github.com/jonnyreeves/js-logger * Jonny Reeves, http://jonnyreeves.co.uk/ * js-logger may be freely distributed under the MIT license. diff --git a/dist/statsService.min.js.map b/dist/statsService.min.js.map index a839dc8b..4d2da350 100644 --- a/dist/statsService.min.js.map +++ b/dist/statsService.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition?5ca6","webpack:///providers/statsService.min.js","webpack:///webpack/bootstrap 23bc45362ebde973588a?6bf4","webpack:///./k-provider/request-builder.js?c3f6","webpack:///./k-provider/ovp/config.js?e6e3","webpack:///./k-provider/ovp/services/ovp-service.js?fc9d","webpack:///providers/./k-provider/ovp/services/stats-service.js","webpack:///./k-provider/base-service-result.js?60ef","webpack:///./util/logger.js?8c6e","webpack:///./k-provider/multi-request-builder.js?9243","webpack:///../~/js-logger/src/logger.js?779b"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","value","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","0","_classCallCheck","instance","Constructor","TypeError","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","RequestBuilder","headers","arguments","undefined","Map","set","baseUrl","Error","service","action","_this","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","setRequestHeader","send","params","default","1","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","assign","3","_interopRequireDefault","_multiRequestBuilder","_multiRequestBuilder2","_config","_config2","config","OvpService","ks","partnerId","ovpParams","multiReq","36","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","StatsService","_ovpService","_ovpService2","_requestBuilder","_requestBuilder2","_OvpService","getPrototypeOf","apply","event","tag","stringify","4","ServiceResult","response","hasError","objectType","error","ServiceError","data","5","LOG_LEVEL","_jsLogger","JsLogger","newObj","LoggerFactory","options","useDefaults","Logger","defaultLevel","DEBUG","INFO","TIME","WARN","ERROR","OFF","6","_defineProperty","MultiRequestResult","_baseServiceResult","_baseServiceResult2","_logger","_logger2","logger","MultiRequestBuilder","_RequestBuilder","requests","push","requestParams","serviceDef","_this2","err","doHttpRequest","then","errorText","_this3","results","success","result","serviceResult","8","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","global","VERSION","logHandler","contextualLoggersByNameMap","bind","scope","func","merge","args","defineLogLevel","ContextualLogger","defaultContext","context","setLevel","filterLevel","log","info","newLevel","enabledFor","lvl","debug","invoke","warn","time","label","timeEnd","level","msgArgs","globalLogger","L","setHandler","createDefaultHandler","formatter","messages","unshift","timerStartTimeByLabelMap","invokeConsoleMethod","hdlr","Function","console","Array","slice","timerLabel","Date","getTime"],"mappings":"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","file":"statsService.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 36);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Request builder\n * @classdesc\n */\nvar RequestBuilder = function () {\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n\n /**\n * @member - Service headers\n * @type {Map}\n */\n\n /**\n * @member - Service action\n * @type {string}\n */\n function RequestBuilder() {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n _classCallCheck(this, RequestBuilder);\n\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n\n /**\n * @member - Service tag\n * @type {string}\n */\n\n /**\n * @member - Service base url\n * @type {Map}\n */\n\n /**\n * @member - Service params\n * @type {any}\n */\n\n\n /**\n * @member - Service name\n * @type {string}\n */\n\n\n _createClass(RequestBuilder, [{\n key: \"getUrl\",\n value: function getUrl() {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n var url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n\n }, {\n key: \"doHttpRequest\",\n value: function doHttpRequest() {\n var _this = this;\n\n var request = new XMLHttpRequest();\n return new Promise(function (resolve, reject) {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n var jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && (typeof jsonResponse === \"undefined\" ? \"undefined\" : _typeof(jsonResponse)) === 'object' && jsonResponse.code && jsonResponse.message) reject(jsonResponse);else resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(_this.method, _this.getUrl());\n _this.headers.forEach(function (value, key) {\n request.setRequestHeader(key, value);\n });\n request.send(_this.params);\n });\n }\n }]);\n\n return RequestBuilder;\n}();\n\nexports.default = RequestBuilder;\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nvar Configuration = function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n }\n\n _createClass(Configuration, null, [{\n key: \"set\",\n value: function set(clientConfig) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n return defaultConfig;\n }\n }]);\n\n return Configuration;\n}();\n\nexports.default = Configuration;\nexports.Configuration = Configuration;\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\nvar SERVICE_NAME = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\n\nvar OvpService = function () {\n function OvpService() {\n _classCallCheck(this, OvpService);\n }\n\n _createClass(OvpService, null, [{\n key: 'getMultirequest',\n\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n value: function getMultirequest(ks, partnerId) {\n var ovpParams = config.serviceParams;\n Object.assign(ovpParams, { ks: ks });\n if (partnerId) {\n Object.assign(ovpParams, { partnerId: partnerId });\n }\n var multiReq = new _multiRequestBuilder2.default();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n }]);\n\n return OvpService;\n}();\n\nexports.default = OvpService;\n\n/***/ }),\n\n/***/ 36:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RequestBuilder = exports.Configuration = exports.StatsService = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\n\nvar StatsService = function (_OvpService) {\n _inherits(StatsService, _OvpService);\n\n function StatsService() {\n _classCallCheck(this, StatsService);\n\n return _possibleConstructorReturn(this, (StatsService.__proto__ || Object.getPrototypeOf(StatsService)).apply(this, arguments));\n }\n\n _createClass(StatsService, null, [{\n key: 'collect',\n\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n value: function collect(ks, event, baseUrl) {\n var ovpParams = _config2.default.get();\n var serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, { ks: ks }, event);\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n }]);\n\n return StatsService;\n}(_ovpService2.default);\n\nexports.default = StatsService;\nexports.StatsService = StatsService;\nexports.Configuration = _config2.default;\nexports.RequestBuilder = _requestBuilder2.default;\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base service result\n * @classdesc\n */\nvar ServiceResult =\n\n/**\n * @constructor\n * @param {Object} response - Service response\n */\n\n/**\n * @member - The service error\n * @type {ServiceError}\n */\n\n/**\n * @member - The service result data\n * @type {Object}\n */\nfunction ServiceResult(response) {\n _classCallCheck(this, ServiceResult);\n\n this.hasError = false;\n\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else {\n this.data = response;\n }\n}\n\n/**\n * @member - Is service returned an error\n * @type {boolean}\n */\n;\n\n/**\n * Service error\n * @classdesc\n */\n\n\nexports.default = ServiceResult;\n\nvar ServiceError =\n\n/**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n\n/**\n * @member - The error code\n * @type {string}\n */\nfunction ServiceError(code, message) {\n _classCallCheck(this, ServiceError);\n\n this.code = code;\n this.message = message;\n}\n/**\n * @member - The error message\n * @type {string}\n */\n;\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOG_LEVEL = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jsLogger = __webpack_require__(8);\n\nvar JsLogger = _interopRequireWildcard(_jsLogger);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LoggerFactory = function () {\n function LoggerFactory(options) {\n _classCallCheck(this, LoggerFactory);\n\n JsLogger.useDefaults(options || {});\n }\n\n _createClass(LoggerFactory, [{\n key: \"get\",\n value: function get(name) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n }]);\n\n return LoggerFactory;\n}();\n\nvar Logger = new LoggerFactory({ defaultLevel: JsLogger.DEBUG });\nvar LOG_LEVEL = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexports.default = Logger;\nexports.LOG_LEVEL = LOG_LEVEL;\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MultiRequestResult = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseServiceResult = __webpack_require__(4);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\n\nvar MultiRequestBuilder = function (_RequestBuilder) {\n _inherits(MultiRequestBuilder, _RequestBuilder);\n\n /**\n * @constructor\n */\n function MultiRequestBuilder() {\n _classCallCheck(this, MultiRequestBuilder);\n\n var _this = _possibleConstructorReturn(this, (MultiRequestBuilder.__proto__ || Object.getPrototypeOf(MultiRequestBuilder)).call(this));\n\n _this.requests = [];\n return _this;\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n\n\n _createClass(MultiRequestBuilder, [{\n key: 'add',\n value: function add(request) {\n this.requests.push(request);\n var requestParams = {};\n var serviceDef = { service: request.service, action: request.action };\n Object.assign(requestParams, _defineProperty({}, this.requests.length, Object.assign(serviceDef, request.params)));\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n\n }, {\n key: 'execute',\n value: function execute() {\n var _this2 = this;\n\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n logger.error('' + err.message);\n }\n return new Promise(function (resolve, reject) {\n _this2.doHttpRequest().then(function (data) {\n resolve(new MultiRequestResult(data));\n }, function (err) {\n var errorText = 'Error on multiRequest execution, error <' + err + '>.';\n reject(errorText);\n });\n });\n }\n }]);\n\n return MultiRequestBuilder;\n}(_requestBuilder2.default);\n\n/**\n * Multi Request result object\n * @classdesc\n */\n\n\nexports.default = MultiRequestBuilder;\n\nvar MultiRequestResult =\n\n/**\n * @constructor\n * @param {Object} response data\n */\n\n\n/**\n * @member - Is success\n * @type {boolean}\n */\nexports.MultiRequestResult = function MultiRequestResult(response) {\n var _this3 = this;\n\n _classCallCheck(this, MultiRequestResult);\n\n this.results = [];\n\n this.success = true;\n response.forEach(function (result) {\n var serviceResult = new _baseServiceResult2.default(result);\n _this3.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error('Service returned an error with error code: ' + serviceResult.error.code + ' and message: ' + serviceResult.error.message + '.');\n _this3.success = false;\n return;\n }\n });\n}\n/**\n * @member - Multi request response data\n * @type {Object}\n */\n;\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n/***/ })\n\n/******/ });\n});\n\n\n// WEBPACK FOOTER //\n// statsService.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 23bc45362ebde973588a","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\nimport Configuration from '../config'\n\nconst SERVICE_NAME: string = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\nexport default class StatsService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static collect(ks: string, event: Object, baseUrl: ?string): RequestBuilder {\n let ovpParams = Configuration.get();\n let serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks}, event);\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n\nexport {StatsService, Configuration, RequestBuilder};\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/stats-service.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/js-logger/src/logger.js\n// module id = 8\n// module chunks = 0 1"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/statsService.min.js","webpack:///providers/webpack/bootstrap 57f592a94818e7616bb1","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./k-provider/ovp/services/stats-service.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/../node_modules/js-logger/src/logger.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","0","_classCallCheck","instance","Constructor","TypeError","value","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","RequestBuilder","headers","arguments","undefined","Map","set","baseUrl","Error","service","action","_this","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","setRequestHeader","send","params","default","1","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","assign","3","ServiceResult","response","hasError","objectType","error","ServiceError","data","38","_interopRequireDefault","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","StatsService","_ovpService","_ovpService2","_requestBuilder","_requestBuilder2","_config","_config2","_OvpService","getPrototypeOf","apply","ks","event","ovpParams","tag","stringify","4","_multiRequestBuilder","_multiRequestBuilder2","config","OvpService","partnerId","multiReq","5","LOG_LEVEL","_jsLogger","JsLogger","newObj","LoggerFactory","options","useDefaults","Logger","defaultLevel","DEBUG","INFO","TIME","WARN","ERROR","OFF","6","_defineProperty","MultiRequestResult","_baseServiceResult","_baseServiceResult2","_logger","_logger2","logger","MultiRequestBuilder","_RequestBuilder","requests","push","requestParams","serviceDef","_this2","err","doHttpRequest","then","errorText","_this3","results","success","result","serviceResult","7","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","global","VERSION","logHandler","contextualLoggersByNameMap","bind","scope","func","merge","args","defineLogLevel","ContextualLogger","defaultContext","context","setLevel","filterLevel","log","info","newLevel","enabledFor","lvl","debug","invoke","warn","time","label","timeEnd","level","msgArgs","globalLogger","L","setHandler","createDefaultHandler","formatter","messages","unshift","timerStartTimeByLabelMap","invokeConsoleMethod","hdlr","Function","console","Array","slice","timerLabel","Date","getTime"],"mappings":"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","file":"statsService.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 38);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Request builder\n * @classdesc\n */\nvar RequestBuilder = function () {\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n\n /**\n * @member - Service headers\n * @type {Map}\n */\n\n /**\n * @member - Service action\n * @type {string}\n */\n function RequestBuilder() {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n _classCallCheck(this, RequestBuilder);\n\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n\n /**\n * @member - Service tag\n * @type {string}\n */\n\n /**\n * @member - Service base url\n * @type {Map}\n */\n\n /**\n * @member - Service params\n * @type {any}\n */\n\n\n /**\n * @member - Service name\n * @type {string}\n */\n\n\n _createClass(RequestBuilder, [{\n key: \"getUrl\",\n value: function getUrl() {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n var url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n\n }, {\n key: \"doHttpRequest\",\n value: function doHttpRequest() {\n var _this = this;\n\n var request = new XMLHttpRequest();\n return new Promise(function (resolve, reject) {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n var jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && (typeof jsonResponse === \"undefined\" ? \"undefined\" : _typeof(jsonResponse)) === 'object' && jsonResponse.code && jsonResponse.message) reject(jsonResponse);else resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(_this.method, _this.getUrl());\n _this.headers.forEach(function (value, key) {\n request.setRequestHeader(key, value);\n });\n request.send(_this.params);\n });\n }\n }]);\n\n return RequestBuilder;\n}();\n\nexports.default = RequestBuilder;\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nvar Configuration = function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n }\n\n _createClass(Configuration, null, [{\n key: \"set\",\n value: function set(clientConfig) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n return defaultConfig;\n }\n }]);\n\n return Configuration;\n}();\n\nexports.default = Configuration;\nexports.Configuration = Configuration;\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base service result\n * @classdesc\n */\nvar ServiceResult =\n\n/**\n * @constructor\n * @param {Object} response - Service response\n */\n\n/**\n * @member - The service error\n * @type {ServiceError}\n */\n\n/**\n * @member - The service result data\n * @type {Object}\n */\nfunction ServiceResult(response) {\n _classCallCheck(this, ServiceResult);\n\n this.hasError = false;\n\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else {\n this.data = response;\n }\n}\n\n/**\n * @member - Is service returned an error\n * @type {boolean}\n */\n;\n\n/**\n * Service error\n * @classdesc\n */\n\n\nexports.default = ServiceResult;\n\nvar ServiceError =\n\n/**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n\n/**\n * @member - The error code\n * @type {string}\n */\nfunction ServiceError(code, message) {\n _classCallCheck(this, ServiceError);\n\n this.code = code;\n this.message = message;\n}\n/**\n * @member - The error message\n * @type {string}\n */\n;\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RequestBuilder = exports.Configuration = exports.StatsService = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(4);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\n\nvar StatsService = function (_OvpService) {\n _inherits(StatsService, _OvpService);\n\n function StatsService() {\n _classCallCheck(this, StatsService);\n\n return _possibleConstructorReturn(this, (StatsService.__proto__ || Object.getPrototypeOf(StatsService)).apply(this, arguments));\n }\n\n _createClass(StatsService, null, [{\n key: 'collect',\n\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n value: function collect(ks, event, baseUrl) {\n var ovpParams = _config2.default.get();\n var serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, { ks: ks }, event);\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n }]);\n\n return StatsService;\n}(_ovpService2.default);\n\nexports.default = StatsService;\nexports.StatsService = StatsService;\nexports.Configuration = _config2.default;\nexports.RequestBuilder = _requestBuilder2.default;\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\nvar SERVICE_NAME = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\n\nvar OvpService = function () {\n function OvpService() {\n _classCallCheck(this, OvpService);\n }\n\n _createClass(OvpService, null, [{\n key: 'getMultirequest',\n\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n value: function getMultirequest(ks, partnerId) {\n var ovpParams = config.serviceParams;\n Object.assign(ovpParams, { ks: ks });\n if (partnerId) {\n Object.assign(ovpParams, { partnerId: partnerId });\n }\n var multiReq = new _multiRequestBuilder2.default();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n }]);\n\n return OvpService;\n}();\n\nexports.default = OvpService;\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOG_LEVEL = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jsLogger = __webpack_require__(7);\n\nvar JsLogger = _interopRequireWildcard(_jsLogger);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LoggerFactory = function () {\n function LoggerFactory(options) {\n _classCallCheck(this, LoggerFactory);\n\n JsLogger.useDefaults(options || {});\n }\n\n _createClass(LoggerFactory, [{\n key: \"get\",\n value: function get(name) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n }]);\n\n return LoggerFactory;\n}();\n\nvar Logger = new LoggerFactory({ defaultLevel: JsLogger.DEBUG });\nvar LOG_LEVEL = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexports.default = Logger;\nexports.LOG_LEVEL = LOG_LEVEL;\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MultiRequestResult = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseServiceResult = __webpack_require__(3);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\n\nvar MultiRequestBuilder = function (_RequestBuilder) {\n _inherits(MultiRequestBuilder, _RequestBuilder);\n\n /**\n * @constructor\n */\n function MultiRequestBuilder() {\n _classCallCheck(this, MultiRequestBuilder);\n\n var _this = _possibleConstructorReturn(this, (MultiRequestBuilder.__proto__ || Object.getPrototypeOf(MultiRequestBuilder)).call(this));\n\n _this.requests = [];\n return _this;\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n\n\n _createClass(MultiRequestBuilder, [{\n key: 'add',\n value: function add(request) {\n this.requests.push(request);\n var requestParams = {};\n var serviceDef = { service: request.service, action: request.action };\n Object.assign(requestParams, _defineProperty({}, this.requests.length, Object.assign(serviceDef, request.params)));\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n\n }, {\n key: 'execute',\n value: function execute() {\n var _this2 = this;\n\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n logger.error('' + err.message);\n }\n return new Promise(function (resolve, reject) {\n _this2.doHttpRequest().then(function (data) {\n resolve(new MultiRequestResult(data));\n }, function (err) {\n var errorText = 'Error on multiRequest execution, error <' + err + '>.';\n reject(errorText);\n });\n });\n }\n }]);\n\n return MultiRequestBuilder;\n}(_requestBuilder2.default);\n\n/**\n * Multi Request result object\n * @classdesc\n */\n\n\nexports.default = MultiRequestBuilder;\n\nvar MultiRequestResult =\n\n/**\n * @constructor\n * @param {Object} response data\n */\n\n\n/**\n * @member - Is success\n * @type {boolean}\n */\nexports.MultiRequestResult = function MultiRequestResult(response) {\n var _this3 = this;\n\n _classCallCheck(this, MultiRequestResult);\n\n this.results = [];\n\n this.success = true;\n response.forEach(function (result) {\n var serviceResult = new _baseServiceResult2.default(result);\n _this3.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error('Service returned an error with error code: ' + serviceResult.error.code + ' and message: ' + serviceResult.error.message + '.');\n _this3.success = false;\n return;\n }\n });\n}\n/**\n * @member - Multi request response data\n * @type {Object}\n */\n;\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n/***/ })\n\n/******/ });\n});\n\n\n// WEBPACK FOOTER //\n// statsService.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 38);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 57f592a94818e7616bb1","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\nimport Configuration from '../config'\n\nconst SERVICE_NAME: string = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\nexport default class StatsService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static collect(ks: string, event: Object, baseUrl: ?string): RequestBuilder {\n let ovpParams = Configuration.get();\n let serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks}, event);\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n\nexport {StatsService, Configuration, RequestBuilder};\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/stats-service.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/js-logger/src/logger.js\n// module id = 7\n// module chunks = 0 1"],"sourceRoot":""} \ No newline at end of file From 985ae9709a436870c6d7a83c3a6c6259eeafc9cb Mon Sep 17 00:00:00 2001 From: "yair.ansbacher" Date: Wed, 19 Jul 2017 10:58:29 +0300 Subject: [PATCH 5/5] chore: update dist --- dist/ottProvider.js | 4 +- dist/ottProvider.js.map | 2 +- dist/ottProvider.min.js | 2 +- dist/ottProvider.min.js.map | 2 +- dist/ovpProvider.js | 1008 ++++++++++------------------------ dist/ovpProvider.js.map | 2 +- dist/ovpProvider.min.js | 4 +- dist/ovpProvider.min.js.map | 2 +- dist/statsService.js | 152 ++--- dist/statsService.js.map | 2 +- dist/statsService.min.js | 2 +- dist/statsService.min.js.map | 2 +- 12 files changed, 393 insertions(+), 791 deletions(-) diff --git a/dist/ottProvider.js b/dist/ottProvider.js index 347b9a7b..3b84b897 100644 --- a/dist/ottProvider.js +++ b/dist/ottProvider.js @@ -70,12 +70,12 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 37); +/******/ return __webpack_require__(__webpack_require__.s = 36); /******/ }) /************************************************************************/ /******/ ({ -/***/ 37: +/***/ 36: /***/ (function(module, exports, __webpack_require__) { "use strict"; diff --git a/dist/ottProvider.js.map b/dist/ottProvider.js.map index b0134200..0b5e2460 100644 --- a/dist/ottProvider.js.map +++ b/dist/ottProvider.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/webpack/bootstrap e13f9de90e38187349d1","webpack:///providers/./k-provider/ott/ott-provider.js"],"names":["OttProvider"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;IC5DqBA,W;AACnB,yBAAc;AAAA;AACb;;;;gCAEiB,CACjB;;;;;;kBALkBA,W","file":"ottProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 37);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap e13f9de90e38187349d1","//@flow\nexport default class OttProvider {\n constructor() {\n }\n\n getConfig(): void {\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ott/ott-provider.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/webpack/bootstrap c3b3ad0d4c43ceafbb61","webpack:///providers/./k-provider/ott/ott-provider.js"],"names":["OttProvider"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;IC5DqBA,W;AACnB,yBAAc;AAAA;AACb;;;;gCAEiB,CACjB;;;;;;kBALkBA,W","file":"ottProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 36);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c3b3ad0d4c43ceafbb61","//@flow\nexport default class OttProvider {\n constructor() {\n }\n\n getConfig(): void {\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ott/ott-provider.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/ottProvider.min.js b/dist/ottProvider.min.js index 23902ae3..8061315a 100644 --- a/dist/ottProvider.min.js +++ b/dist/ottProvider.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PlaykitJsProviders=t():e.PlaykitJsProviders=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=37)}({37:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n} */ -var SUPPORTED_FORMATS = new Map([["mpegdash", _mediaFormat.MediaFormat.dash], ["applehttp", _mediaFormat.MediaFormat.hls], ["url", _mediaFormat.MediaFormat.mp4]]); +var SUPPORTED_FORMATS = new Map([["mpegdash", _mediaFormat.MediaFormats.dash], ["applehttp", _mediaFormat.MediaFormats.hls], ["url", _mediaFormat.MediaFormats.mp4]]); /** * Ovp provider parser @@ -2403,26 +1990,26 @@ var ProviderParser = function () { mediaEntry.id = entry.id; mediaEntry.duration = entry.duration; - var type = _enums.MediaEntryType.Unknown; + var type = _enums.MediaEntryTypes.Unknown; switch (entry.entryType) { - case _enums.MediaType.IMAGE.value: - type = _enums.MediaEntryType.Image; + case _enums.MediaTypes.IMAGE.value: + type = _enums.MediaEntryTypes.Image; break; - case _enums.MediaType.AUDIO.value: - type = _enums.MediaEntryType.Audio; + case _enums.MediaTypes.AUDIO.value: + type = _enums.MediaEntryTypes.Audio; break; default: switch (entry.type) { - case _enums.EntryType.MEDIA_CLIP.value: - type = _enums.MediaEntryType.Vod; + case _enums.EntryTypes.MEDIA_CLIP.value: + type = _enums.MediaEntryTypes.Vod; break; - case _enums.EntryType.LIVE_STREAM.value: - case _enums.EntryType.LIVE_CHANNEL.value: - type = _enums.MediaEntryType.Live; + case _enums.EntryTypes.LIVE_STREAM.value: + case _enums.EntryTypes.LIVE_CHANNEL.value: + type = _enums.MediaEntryTypes.Live; break; default: - type = _enums.MediaEntryType.Unknown; + type = _enums.MediaEntryTypes.Unknown; } } mediaEntry.type = type; @@ -2661,7 +2248,7 @@ var ProviderParser = function () { exports.default = ProviderParser; /***/ }), -/* 19 */ +/* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2671,7 +2258,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _enums = __webpack_require__(2); +var _enums = __webpack_require__(5); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -2706,7 +2293,7 @@ function KalturaDrmPlaybackPluginData(drm) { exports.default = KalturaDrmPlaybackPluginData; /***/ }), -/* 20 */ +/* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2716,8 +2303,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _enums = __webpack_require__(2); - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** @@ -2756,7 +2341,7 @@ function KalturaMetadata(data) { exports.default = KalturaMetadata; /***/ }), -/* 21 */ +/* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2815,7 +2400,7 @@ var PlaySourceUrlBuilder = function () { } var playUrl = baseUrl; - if (!PlaySourceUrlBuilder.endsWith(baseUrl, "/")) { + if (!baseUrl.endsWith("/")) { playUrl += "/"; } playUrl += "p/" + partnerId + "/sp/" + partnerId + "00" + "/playManifest/entryId/" + entryId + "/protocol/" + protocol + "/format/" + format; @@ -2838,26 +2423,6 @@ var PlaySourceUrlBuilder = function () { return playUrl; } - - /** - * Checks if given string end with search string - * @param {string} string The given string - * @param {string} searchString The string to search - * @returns {boolean} Is given string end with search string - */ - - }, { - key: "endsWith", - value: function endsWith(string, searchString) { - if (typeof string !== 'string') { - return false; - } - if (typeof searchString !== 'string') { - return false; - } - - return string.indexOf(searchString, string.length - searchString.length) != -1; - } }]); return PlaySourceUrlBuilder; @@ -2866,7 +2431,7 @@ var PlaySourceUrlBuilder = function () { exports.default = PlaySourceUrlBuilder; /***/ }), -/* 22 */ +/* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2937,7 +2502,50 @@ var XmlParser = function () { exports.default = XmlParser; /***/ }), -/* 23 */ +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var MediaFormats = exports.MediaFormats = function MediaFormats() { + _classCallCheck(this, MediaFormats); +}; + +MediaFormats.dash = { + name: 'dash', + mimeType: "application/dash+xml", + pathExt: "mpd" +}; +MediaFormats.hls = { + name: 'hls', + mimeType: "application/x-mpegURL", + pathExt: "m3u8" +}; +MediaFormats.wvm = { + name: 'wvm', + mimeType: "video/wvm", + pathExt: "wvm" +}; +MediaFormats.mp4 = { + name: 'mp4', + mimeType: "video/mp4", + pathExt: "mp4" +}; +MediaFormats.mp3 = { + name: 'mp3', + mimeType: "audio/mpeg", + pathExt: "mp3" +}; + +/***/ }), +/* 22 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2949,7 +2557,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _ovpService = __webpack_require__(4); +var _ovpService = __webpack_require__(3); var _ovpService2 = _interopRequireDefault(_ovpService); @@ -3094,7 +2702,7 @@ DataLoaderManager._loadersResponseMap = new Map(); exports.default = DataLoaderManager; /***/ }), -/* 24 */ +/* 23 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3110,11 +2718,11 @@ var _requestBuilder = __webpack_require__(0); var _requestBuilder2 = _interopRequireDefault(_requestBuilder); -var _baseEntryService = __webpack_require__(25); +var _baseEntryService = __webpack_require__(24); var _baseEntryService2 = _interopRequireDefault(_baseEntryService); -var _metaDataService = __webpack_require__(26); +var _metaDataService = __webpack_require__(25); var _metaDataService2 = _interopRequireDefault(_metaDataService); @@ -3122,15 +2730,15 @@ var _config = __webpack_require__(1); var _config2 = _interopRequireDefault(_config); -var _kalturaPlaybackContext = __webpack_require__(27); +var _kalturaPlaybackContext = __webpack_require__(26); var _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext); -var _kalturaMetadataListResponse = __webpack_require__(12); +var _kalturaMetadataListResponse = __webpack_require__(11); var _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse); -var _kalturaBaseEntryListResponse = __webpack_require__(30); +var _kalturaBaseEntryListResponse = __webpack_require__(29); var _kalturaBaseEntryListResponse2 = _interopRequireDefault(_kalturaBaseEntryListResponse); @@ -3223,7 +2831,7 @@ var MediaEntryLoader = function () { exports.default = MediaEntryLoader; /***/ }), -/* 25 */ +/* 24 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3235,7 +2843,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _ovpService = __webpack_require__(4); +var _ovpService = __webpack_require__(3); var _ovpService2 = _interopRequireDefault(_ovpService); @@ -3343,7 +2951,7 @@ var BaseEntryService = function (_OvpService) { exports.default = BaseEntryService; /***/ }), -/* 26 */ +/* 25 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3355,7 +2963,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _ovpService = __webpack_require__(4); +var _ovpService = __webpack_require__(3); var _ovpService2 = _interopRequireDefault(_ovpService); @@ -3419,7 +3027,7 @@ var MetaDataService = function (_OvpService) { exports.default = MetaDataService; /***/ }), -/* 27 */ +/* 26 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3429,11 +3037,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _baseServiceResult = __webpack_require__(3); +var _baseServiceResult = __webpack_require__(2); var _baseServiceResult2 = _interopRequireDefault(_baseServiceResult); -var _kalturaAccessControlMessage = __webpack_require__(28); +var _kalturaAccessControlMessage = __webpack_require__(27); var _kalturaAccessControlMessage2 = _interopRequireDefault(_kalturaAccessControlMessage); @@ -3441,11 +3049,11 @@ var _kalturaPlaybackSource = __webpack_require__(9); var _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource); -var _kalturaRuleAction = __webpack_require__(29); +var _kalturaRuleAction = __webpack_require__(28); var _kalturaRuleAction2 = _interopRequireDefault(_kalturaRuleAction); -var _kalturaFlavorAsset = __webpack_require__(11); +var _kalturaFlavorAsset = __webpack_require__(10); var _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset); @@ -3538,7 +3146,7 @@ var KalturaPlaybackContext = function (_ServiceResult) { exports.default = KalturaPlaybackContext; /***/ }), -/* 28 */ +/* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3580,7 +3188,7 @@ function KalturaAccessControlMessage(data) { exports.default = KalturaAccessControlMessage; /***/ }), -/* 29 */ +/* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3590,8 +3198,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _enums = __webpack_require__(2); - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** @@ -3618,7 +3224,7 @@ function KalturaRuleAction(data) { exports.default = KalturaRuleAction; /***/ }), -/* 30 */ +/* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3628,11 +3234,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _baseServiceResult = __webpack_require__(3); +var _baseServiceResult = __webpack_require__(2); var _baseServiceResult2 = _interopRequireDefault(_baseServiceResult); -var _kalturaMediaEntry = __webpack_require__(31); +var _kalturaMediaEntry = __webpack_require__(30); var _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry); @@ -3688,7 +3294,7 @@ var KalturaBaseEntryListResponse = function (_ServiceResult) { exports.default = KalturaBaseEntryListResponse; /***/ }), -/* 31 */ +/* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3698,8 +3304,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _enums = __webpack_require__(2); - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** @@ -3762,7 +3366,7 @@ function KalturaMediaEntry(entry) { exports.default = KalturaMediaEntry; /***/ }), -/* 32 */ +/* 31 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3774,7 +3378,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _sessionService = __webpack_require__(33); +var _sessionService = __webpack_require__(32); var _sessionService2 = _interopRequireDefault(_sessionService); @@ -3876,7 +3480,7 @@ var SessionLoader = function () { exports.default = SessionLoader; /***/ }), -/* 33 */ +/* 32 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3888,7 +3492,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _ovpService = __webpack_require__(4); +var _ovpService = __webpack_require__(3); var _ovpService2 = _interopRequireDefault(_ovpService); @@ -3949,7 +3553,7 @@ var SessionService = function (_OvpService) { exports.default = SessionService; /***/ }), -/* 34 */ +/* 33 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3961,11 +3565,11 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _uiConfService = __webpack_require__(35); +var _uiConfService = __webpack_require__(34); var _uiConfService2 = _interopRequireDefault(_uiConfService); -var _kalturaUiConfResponse = __webpack_require__(36); +var _kalturaUiConfResponse = __webpack_require__(35); var _kalturaUiConfResponse2 = _interopRequireDefault(_kalturaUiConfResponse); @@ -4067,7 +3671,7 @@ var UiConfigLoader = function () { exports.default = UiConfigLoader; /***/ }), -/* 35 */ +/* 34 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4079,7 +3683,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _ovpService = __webpack_require__(4); +var _ovpService = __webpack_require__(3); var _ovpService2 = _interopRequireDefault(_ovpService); @@ -4145,7 +3749,7 @@ var UiConfService = function (_OvpService) { exports.default = UiConfService; /***/ }), -/* 36 */ +/* 35 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4155,12 +3759,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _baseServiceResult = __webpack_require__(3); +var _baseServiceResult = __webpack_require__(2); var _baseServiceResult2 = _interopRequireDefault(_baseServiceResult); -var _enums = __webpack_require__(2); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } diff --git a/dist/ovpProvider.js.map b/dist/ovpProvider.js.map index ccdb9f1f..ab439bb1 100644 --- a/dist/ovpProvider.js.map +++ b/dist/ovpProvider.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/webpack/bootstrap e13f9de90e38187349d1","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/enums.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/../node_modules/js-logger/src/logger.js","webpack:///providers/./entities/media-sources.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-source.js","webpack:///providers/../node_modules/enumify/lib/enumify.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-flavor-asset.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata-list-response.js","webpack:///providers/./entities/media-format.js","webpack:///providers/./entities/media-entry.js","webpack:///providers/./entities/media-source.js","webpack:///providers/./entities/drm.js","webpack:///providers/./k-provider/ovp/ovp-provider.js","webpack:///providers/./k-provider/ovp/provider-parser.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata.js","webpack:///providers/./k-provider/ovp/play-source-url-builder.js","webpack:///providers/./k-provider/xml-parser.js","webpack:///providers/./k-provider/ovp/loaders/data-loader-manager.js","webpack:///providers/./k-provider/ovp/loaders/media-entry-loader.js","webpack:///providers/./k-provider/ovp/services/base-entry-service.js","webpack:///providers/./k-provider/ovp/services/meta-data-service.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-context.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-access-control-message.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-rule-action.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-media-entry.js","webpack:///providers/./k-provider/ovp/loaders/session-loader.js","webpack:///providers/./k-provider/ovp/services/session-service.js","webpack:///providers/./k-provider/ovp/loaders/ui-config-loader.js","webpack:///providers/./k-provider/ovp/services/ui-conf-service.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-ui-conf-response.js"],"names":["RequestBuilder","headers","Map","set","baseUrl","Error","url","service","action","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","value","key","setRequestHeader","send","params","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","Object","assign","Scheme","initEnum","PLAYREADY_CENC","WIDEVINE_CENC","FAIRPLAY","PLAYREADY","WIDEVINE","KalturaRuleActionType","DRM_POLICY","BLOCK","PREVIEW","LIMIT_FLAVORS","ADD_TO_STORAGE","LIMIT_DELIVERY_PROFILES","SERVE_FROM_REMOTE_SERVER","REQUEST_HOST_REGEX","LIMIT_THUMBNAIL_CAPTURE","Status","ERROR","QUEUED","CONVERTING","READY","DELETED","NOT_APPLICABLE","TEMP","WAIT_FOR_CONVERT","IMPORTING","VALIDATING","EXPORTING","MetadataObjectType","AD_CUE_POINT","ANNOTATION","CODE_CUE_POINT","THUMB_CUE_POINT","ENTRY","CATEGORY","USER","PARTNER","DYNAMIC_OBJECT","MetadataStatus","VALID","INVALID","EntryStatus","ERROR_IMPORTING","ERROR_CONVERTING","SCAN_FAILURE","IMPORT","INFECTED","PRECONVERT","PENDING","MODERATE","BLOCKED","NO_CONTENT","EntryModerationStatus","PENDING_MODERATION","APPROVED","REJECTED","FLAGGED_FOR_REVIEW","AUTO_APPROVED","EntryType","AUTOMATIC","EXTERNAL_MEDIA","MEDIA_CLIP","MIX","PLAYLIST","DATA","LIVE_STREAM","LIVE_CHANNEL","DOCUMENT","MediaType","VIDEO","IMAGE","AUDIO","LIVE_STREAM_FLASH","LIVE_STREAM_WINDOWS_MEDIA","LIVE_STREAM_REAL_MEDIA","LIVE_STREAM_QUICKTIME","MediaEntryType","UIConfType","PLAYER","CONTRIBUTION_WIZARD","SIMPLE_EDITOR","ADVANCED_EDITOR","APP_STUDIO","KRECORD","PLAYER_V3","KMC_ACCOUNT","KMC_ANALYTICS","KMC_CONTENT","KMC_DASHBOARD","KMC_LOGIN","PLAYER_SL","CLIENTSIDE_ENCODER","KMC_GENERAL","KMC_ROLES_AND_PERMISSIONS","CLIPPER","KSR","KUPLOAD","WEBCASTING","UIConfCreationMode","WIZARD","ADVANCED","ServiceResult","response","hasError","objectType","error","ServiceError","data","config","get","SERVICE_NAME","OvpService","ks","partnerId","ovpParams","multiReq","JsLogger","LoggerFactory","options","useDefaults","name","Logger","defaultLevel","DEBUG","LOG_LEVEL","INFO","TIME","WARN","OFF","logger","MultiRequestBuilder","requests","push","requestParams","serviceDef","length","stringify","err","doHttpRequest","then","MultiRequestResult","errorText","results","success","result","serviceResult","MediaSources","progressive","dash","hls","source","mediaFormat","KalturaPlaybackSource","drm","deliveryProfileId","protocols","flavorIds","map","protocol","returnValue","protocolsArr","split","p","KalturaFlavorAsset","id","flavorParamsId","fileExt","bitrate","width","height","frameRate","isOriginal","isWeb","containerFormat","videoCodecId","language","label","KalturaMetadataListResponse","responseObj","totalCount","metas","objects","meta","MediaFormat","mimeType","pathExt","wvm","mp4","mp3","MediaEntry","metaData","type","Unknown","MediaSource","Drm","licenseUrl","scheme","OvpProvider","partnerID","_isAnonymous","entryId","uiConfId","_uiConfId","_dataLoader","validateParams","add","fetchData","parseDataFromResponse","debug","session","uiConfID","sources","duration","metadata","plugins","has","sessionLoader","uiConfLoader","pluginsJson","mediaLoader","mediaEntry","getMediaEntry","SUPPORTED_FORMATS","ProviderParser","mediaEntryResponse","entry","playbackContext","playBackContextResult","metadataList","metadataListResult","kalturaSources","_getParsedSources","_parseMetaData","entryType","Image","Audio","Vod","Live","addAdaptiveSource","parsedSource","_parseAdaptiveSource","flavorAssets","sourceFormat","parseAdaptiveSources","filter","_isProgressiveSource","parseProgressiveSources","progressiveSource","find","_parseProgressiveSources","kalturaSource","mediaSource","playUrl","hasFlavorIds","extension","mimetype","build","getProtocol","_getBaseProtocol","hasDrmData","drmParams","licenseURL","drmData","sourceId","flavor","bandwidth","metaXml","domParser","DOMParser","xml","replace","parseFromString","metasObj","xmlToJson","metaKeys","keys","splittedUrl","baseProtocol","substring","KalturaDrmPlaybackPluginData","KalturaMetadata","metadataProfileId","metadataProfileVersion","metadataObjectType","objectId","version","created","Date","setUTCSeconds","createdAt","updated","updatedAt","PlaySourceUrlBuilder","urlParams","endsWith","string","searchString","indexOf","XmlParser","obj","nodeType","attributes","j","attribute","item","nodeName","nodeValue","hasChildNodes","i","childNodes","old","DataLoaderManager","_loaders","_multiRequest","getMultirequest","loader","execution_loader","isValid","startIndex","executionLoaderResponseMap","Array","from","val","index","_loadersResponseMap","execute","_multiResponse","preparedData","prepareData","loaderDataIndexes","slice","MediaEntryLoader","_response","buildRequests","_entryId","list","getPlaybackContext","_requests","entries","BaseEntryService","tag","contextDataParams","flavorTags","getEntryListReqParams","filterParams","redirectFromEntryId","responseProfileParams","fields","responseProfile","MetaDataService","objectIdEqual","metadataObjectTypeEqual","KalturaPlaybackContext","actions","messages","KalturaAccessControlMessage","KalturaRuleAction","KalturaBaseEntryListResponse","KalturaMediaEntry","dataUrl","mediaType","flavorParamsIds","SessionLoader","_partnerId","anonymousSession","SessionService","widgetId","UiConfigLoader","uiConf","UiConfService","KalturaUiConfResponse","description","objTypeAsString","htmlParams","swfUrl","confFilePath","confFile","confFileFeatures","confVars","useCdn","tags","swfUrlVersion","html5Url","partnerTags","objType","creationMode"],"mappings":"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AAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,mEAAmE,gEAAgE;AACnI;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,kFAAkF,mEAAmE;AACrJ;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4FAA4F,mEAAmE;AAC/J;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;;AC/MA;;;;AAEA;;;;IAIqBW,kB;;AAwEnB;;;;;AAXA;;;;;AAVA;;;;;AAVA;;;;;AAVA;;;;;AAVA;;;;;AAVA;;;;;AAVA;;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","file":"ovpProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 17);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap e13f9de90e38187349d1","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\nimport {Enum} from 'enumify';\n\nexport class Scheme extends Enum {\n}\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\n\nexport class KalturaRuleActionType extends Enum {\n}\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nexport class Status extends Enum {\n}\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nexport class MetadataObjectType extends Enum {\n}\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nexport class MetadataStatus extends Enum {\n}\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\n\nexport class EntryStatus extends Enum {\n}\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nexport class EntryModerationStatus extends Enum {\n}\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nexport class EntryType extends Enum {\n}\nEntryType.initEnum({\n AUTOMATIC: {value: -1},\n EXTERNAL_MEDIA: {value: \"externalMedia.externalMedia\"},\n MEDIA_CLIP: {value: 1},\n MIX: {value: 2},\n PLAYLIST: {value: 5},\n DATA: {value: 6},\n LIVE_STREAM: {value: 7},\n LIVE_CHANNEL: {value: 8},\n DOCUMENT: {value: 10}\n});\n\nexport class MediaType extends Enum {\n}\nMediaType.initEnum({\n VIDEO: {value: 1},\n IMAGE: {value: 2},\n AUDIO: {value: 5},\n LIVE_STREAM_FLASH: {value: 201},\n LIVE_STREAM_WINDOWS_MEDIA: {value: 202},\n LIVE_STREAM_REAL_MEDIA: {value: 203},\n LIVE_STREAM_QUICKTIME: {value: 204}\n});\n\n\nexport class MediaEntryType extends Enum {\n}\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nexport class UIConfType extends Enum {\n}\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nexport class UIConfCreationMode extends Enum {\n}\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/enums.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/js-logger/src/logger.js\n// module id = 7\n// module chunks = 0 1","// @flow\nimport MediaSource from './media-source'\nimport {MediaFormat} from './media-format'\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nexport default class MediaSources {\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n progressive: Array;\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n dash: Array;\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n hls: Array;\n\n /**\n * @constructor\n */\n constructor() {\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n map(source: MediaSource, mediaFormat: ?MediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-sources.js","//@flow\nimport KalturaDrmPlaybackPluginData from './kaltura-drm-playback-plugin-data'\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nexport default class KalturaPlaybackSource {\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n format: string;\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n deliveryProfileId: string;\n /**\n * @member - The source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n protocols: string;\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n flavorIds: string;\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n drm: Array = [];\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n constructor(source: Object) {\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(drm => this.drm.push(new KalturaDrmPlaybackPluginData(drm)));\n }\n\n\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n hasDrmData(): boolean {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n hasFlavorIds(): boolean {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n getProtocol(protocol: string): string {\n let returnValue: string = \"\";\n if (this.protocols && this.protocols.length > 0) {\n let protocolsArr: Array = this.protocols.split(\",\");\n protocolsArr.forEach((p) => {\n if (p == protocol) {\n returnValue = p;\n }\n });\n }\n else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-source.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/enumify/lib/enumify.js\n// module id = 10\n// module chunks = 0","//@flow\nimport {Status} from '../../enums'\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nexport default class KalturaFlavorAsset {\n /**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\n id: string;\n /**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n flavorParamsId: string;\n /**\n * @member -The file extension\n * @type {string}\n */\n fileExt: string;\n /**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n bitrate: number;\n /**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n width: number;\n /**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n height: number;\n /**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n frameRate: number;\n /**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n isOriginal: boolean;\n /**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n isWeb: boolean;\n /**\n * @member - The container format\n * @type {boolean}\n */\n containerFormat: string;\n /**\n *@member - The video codec\n * @type {boolean}\n */\n videoCodecId: string;\n /**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n status: Status;\n /**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n language: string;\n /**\n * @member - The label of the flavor asset\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: any) {\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-flavor-asset.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMetadata from './kaltura-metadata'\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nexport default class KalturaMetadataListResponse extends ServiceResult {\n totalCount: number;\n /**\n * @member -The mata data array\n * @type {Array}\n */\n metas: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.metas = [];\n responseObj.objects.map(meta => this.metas.push(new KalturaMetadata(meta)));\n }\n\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata-list-response.js","//@flow\nimport {Enum} from 'enumify';\n\nexport class MediaFormat extends Enum {\n}\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-format.js","//@flow\nimport {MediaEntryType} from '../k-provider/enums'\nimport MediaSources from './media-sources'\n\n/**\n * Media entry\n * @classdesc\n */\nexport default class MediaEntry {\n\n /**\n * @member - entry ID\n * @type {string}\n */\n id: string;\n /**\n * @member - entry sources\n * @type {MediaSources}\n */\n sources: MediaSources;\n /**\n * @member - entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - entry type\n * @type {MediaEntryType}\n */\n type: MediaEntryType;\n /**\n * @member - entry metadata\n * @type {Map}\n */\n metaData: Map;\n\n /**\n * @constructor\n */\n constructor() {\n this.metaData = new Map();\n this.type = MediaEntryType.Unknown;\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-entry.js","//@flow\nimport Drm from '../entities/drm'\n\n/**\n * Media source\n * @classdesc\n */\nexport default class MediaSource {\n /**\n * @member - media source ID\n * @type {string}\n */\n id: string;\n /**\n * @member - media source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - media source mimetype\n * @type {string}\n */\n mimetype: string;\n /**\n * @member - media source drm data\n * @type {Array}\n */\n drmData: Array;\n /**\n * @member - media source bandwidth\n * @type {number}\n */\n bandwidth: number;\n /**\n * @member - media source width\n * @type {number}\n */\n width: number;\n /**\n * @member - media source height\n * @type {number}\n */\n height: number;\n /**\n * @member - media source label\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n */\n constructor(){}\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-source.js","//@flow\n\nimport {Scheme} from '../k-provider/enums';\n\n/**\n * Drm data\n * @classdesc\n */\nexport default class Drm {\n\n /**\n * @member - license URL\n * @type {string}\n */\n licenseUrl: string;\n /**\n * @member - drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n constructor(licenseUrl: string, scheme: Scheme) {\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/drm.js","//@flow\nimport Logger from '../../util/logger'\nimport ProviderParser from './provider-parser'\nimport DataLoaderManager from './loaders/data-loader-manager'\nimport MediaEntryLoader from './loaders/media-entry-loader'\nimport SessionLoader from './loaders/session-loader'\nimport UiConfigLoader from './loaders/ui-config-loader'\nimport Configuration from './config'\nimport MediaEntry from '../../entities/media-entry'\nimport MediaSources from '../../entities/media-sources'\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\ntype playerConfig = {\n id: string,\n session: Object,\n sources: MediaSources,\n duration: number,\n type: string,\n metadata: Object,\n plugins: Object\n};\n\n/**\n * Ovp provider\n * @classdesc\n */\nexport class OvpProvider {\n /**\n * @member - ks\n * @type {string}\n */\n ks: string;\n /**\n * @member - partner ID\n * @type {number}\n */\n partnerID: number;\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n _isAnonymous: boolean;\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n _dataLoader: DataLoaderManager;\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n constructor(partnerID: number, ks: string = \"\", config?: Object) {\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n Configuration.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n getConfig(entryId?: string, uiConfId?: number): Promise {\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new DataLoaderManager(this.partnerID, this.ks);\n return new Promise((resolve, reject) => {\n if (this.validateParams(entryId, uiConfId)) {\n let ks: string = this.ks;\n if (this._isAnonymous) {\n ks = \"{1:result:ks}\";\n this._dataLoader.add(SessionLoader, {partnerId: this.partnerID});\n }\n this._dataLoader.add(MediaEntryLoader, {entryId: entryId, ks: ks});\n this._dataLoader.add(UiConfigLoader, {uiConfId: uiConfId, ks: ks});\n this._dataLoader.fetchData()\n .then(response => {\n resolve(this.parseDataFromResponse(response));\n },\n err => {\n reject(err);\n });\n }\n else {\n reject({success: false, data: \"Missing mandatory parameter\"});\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n parseDataFromResponse(data: Map): Object {\n logger.debug(\"Data parsing started\");\n let config: playerConfig = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId,\n },\n sources: new MediaSources(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(SessionLoader.name)) {\n let sessionLoader = data.get(SessionLoader.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(UiConfigLoader.name)) {\n let uiConfLoader = data.get(UiConfigLoader.name);\n let pluginsJson: Object = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(MediaEntryLoader.name)) {\n let mediaLoader = data.get(MediaEntryLoader.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n let mediaEntry: MediaEntry = ProviderParser.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return (config);\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n validateParams(entryId?: string, uiConfId?: number): boolean {\n return !!entryId || !!uiConfId;\n }\n\n}\n\nexport default OvpProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/ovp-provider.js","//@flow\nimport KalturaPlaybackSource from './response-types/kaltura-playback-source'\nimport KalturaFlavorAsset from './response-types/kaltura-flavor-asset'\nimport KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response'\nimport PlaySourceUrlBuilder from \"./play-source-url-builder\"\nimport XmlParser from '../xml-parser'\nimport {MediaEntryType, EntryType, MediaType} from '../enums'\nimport Logger from '../../util/logger'\nimport Configuration from './config'\nimport {MediaFormat} from '../../entities/media-format'\nimport MediaEntry from '../../entities/media-entry'\nimport Drm from '../../entities/drm'\nimport MediaSource from '../../entities/media-source'\nimport MediaSources from '../../entities/media-sources'\n\nconst config = Configuration.get();\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nconst SUPPORTED_FORMATS: Map = new Map([\n [\"mpegdash\", MediaFormat.dash],\n [\"applehttp\", MediaFormat.hls],\n [\"url\", MediaFormat.mp4]\n]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\nexport default class ProviderParser {\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {any} mediaEntryResponse - The media entry response\n * @returns {MediaEntry} - The media entry\n * @static\n * @public\n */\n static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry {\n let mediaEntry: MediaEntry = new MediaEntry();\n let entry = mediaEntryResponse.entry;\n let playbackContext = mediaEntryResponse.playBackContextResult;\n let metadataList = mediaEntryResponse.metadataListResult;\n let kalturaSources: Array = playbackContext.sources;\n let sources: MediaSources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n let metadata: Map = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n let type: MediaEntryType = MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case MediaType.IMAGE.value:\n type = MediaEntryType.Image;\n break;\n case MediaType.AUDIO.value:\n type = MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case EntryType.MEDIA_CLIP.value:\n type = MediaEntryType.Vod;\n break;\n case EntryType.LIVE_STREAM.value:\n case EntryType.LIVE_CHANNEL.value:\n type = MediaEntryType.Live;\n break;\n default:\n type = MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n /**\n * Returns the parsed sources\n * @function _getParsedSources\n * @param {Array} kalturaSources - The kaltura sources\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {Object} entry - The entry\n * @param {Object} playbackContext - The playback context\n * @return {MediaSources} - A media sources\n * @static\n * @private\n */\n static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry: Object, playbackContext: Object): MediaSources {\n let sources: MediaSources = new MediaSources();\n\n let addAdaptiveSource = function(source: KalturaPlaybackSource): void{\n let parsedSource = ProviderParser._parseAdaptiveSource(source, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n };\n\n let parseAdaptiveSources = function (): void {\n kalturaSources.filter((source) => !ProviderParser._isProgressiveSource(source)).forEach(addAdaptiveSource);\n };\n\n let parseProgressiveSources = function (): void{\n let progressiveSource = kalturaSources.find(ProviderParser._isProgressiveSource);\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n /**\n * Returns a parsed adaptive source\n * @function _parseAdaptiveSource\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {MediaSource} - The parsed adaptive kalturaSource\n * @static\n * @private\n */\n static _parseAdaptiveSource(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): MediaSource {\n let mediaSource: MediaSource = new MediaSource();\n if (kalturaSource) {\n let playUrl: string = \"\";\n let mediaFormat = SUPPORTED_FORMATS.get(kalturaSource.format);\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (kalturaSource.hasFlavorIds()) {\n let extension: string = \"\";\n if (!mediaFormat) {\n if (flavorAssets && flavorAssets.length > 0) {\n extension = flavorAssets[0].fileExt;\n }\n }\n else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = PlaySourceUrlBuilder.build({\n entryId: entryId,\n flavorIds: kalturaSource.flavorIds,\n format: kalturaSource.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: kalturaSource.getProtocol(this._getBaseProtocol())\n });\n\n }\n else {\n playUrl = kalturaSource.url;\n }\n\n if (playUrl == \"\") {\n logger.error(`failed to create play url from source, discarding source: (${entryId}_${kalturaSource.deliveryProfileId}), ${kalturaSource.format}.`);\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entryId + \"_\" + kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n if (kalturaSource.hasDrmData()) {\n let drmParams: Array = [];\n kalturaSource.drm.forEach((drm) => {\n drmParams.push(new Drm(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n }\n return mediaSource;\n }\n\n /**\n * Returns parsed progressive sources\n * @function _parseProgressiveSources\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {Array} - The parsed progressive kalturaSources\n * @static\n * @private\n */\n static _parseProgressiveSources(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): Array {\n let sources = [];\n if (kalturaSource) {\n let protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n let format = kalturaSource.format;\n let sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map((flavor) => {\n if (flavor.height && flavor.width) {\n let mediaSource: MediaSource = new MediaSource();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = PlaySourceUrlBuilder.build({\n entryId: entryId,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n /**\n * @function _isProgressiveSource\n * @param {KalturaPlaybackSource} source - The kaltura source\n * @return {boolean} - Is progressive source\n * @static\n * @private\n */\n static _isProgressiveSource(source: KalturaPlaybackSource): boolean {\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return !!sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n static _parseMetaData(metadataList: KalturaMetadataListResponse): Map {\n let metadata: Object = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach((meta) => {\n let metaXml: Object;\n let domParser: DOMParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n let metasObj: Object = XmlParser.xmlToJson(metaXml);\n let metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach((key) => {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n })\n })\n }\n return metadata;\n }\n\n /**\n * Returns the base protocol\n * @function _getBaseProtocol\n * @returns {string} - The base protocol\n * @static\n * @private\n */\n static _getBaseProtocol(): string {\n let splittedUrl: Array = config.baseUrl.split(\"/\");\n let baseProtocol: string;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n }\n else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/provider-parser.js","//@flow\nimport {Scheme} from '../../enums'\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nexport default class KalturaDrmPlaybackPluginData {\n /**\n * @member - The drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @member - The license URL\n * @type {string}\n */\n licenseURL: string;\n\n /**\n * @constructor\n * @param {Object} drm The json response\n */\n constructor(drm: any) {\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","//@flow\nimport {MetadataObjectType, MetadataStatus} from '../../enums'\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nexport default class KalturaMetadata {\n id: number;\n metadataProfileId: number;\n metadataProfileVersion: number;\n metadataObjectType: MetadataObjectType;\n objectId: string;\n version: number;\n created: Date;\n updated: Date;\n status: MetadataStatus;\n /**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n xml: string;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata.js","//@flow\nimport Configuration from './config'\n\nconst config = Configuration.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\nexport default class PlaySourceUrlBuilder {\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n static build(urlParams: Object): string {\n let baseUrl: string = config.baseUrl;\n let partnerId: string = urlParams.partnerId;\n let entryId: string = urlParams.entryId;\n let ks: string = urlParams.ks;\n let uiConfId: string = urlParams.uiConfId;\n let format: string = urlParams.format;\n let protocol: string = urlParams.protocol;\n let extension: string = urlParams.extension;\n let flavorIds: string = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n let playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n }\n else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n static endsWith(string: string, searchString: string): boolean {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/play-source-url-builder.js","//@flow\n\n/**\n * Xml parser\n * @classdesc\n */\nexport default class XmlParser {\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n static xmlToJson(xml: Object) {\n let obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n let attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n }\n else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n let item = xml.childNodes.item(i);\n let nodeName = item.nodeName;\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n }\n else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n let old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/xml-parser.js","//@flow\nimport OvpService from '../services/ovp-service'\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport {MultiRequestResult} from '../../multi-request-builder'\n\n/**\n * Data loaders manager\n * @classdesc\n */\nexport default class DataLoaderManager {\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n static _loadersResponseMap: Map> = new Map();\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n _multiRequest: MultiRequestBuilder;\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n _multiResponse: MultiRequestResult;\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n _loaders: Map = new Map();\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n constructor(partnerID: number, ks: string = \"\") {\n this._multiRequest = OvpService.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n add(loader: Function, params: Object): void {\n let execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n let startIndex = this._multiRequest.requests.length;\n //Get the requests\n let requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach((request) => {\n this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n let executionLoaderResponseMap = Array.from(new Array(requests.length), (val, index) => index + startIndex);\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n fetchData(): Promise {\n return new Promise((resolve, reject) => {\n this._multiRequest.execute()\n .then(response => {\n this._multiResponse = response;\n if (!response.success) {\n reject(response);\n }\n else {\n let preparedData: Object = this.prepareData(response);\n if (preparedData.success) {\n resolve(this._loaders);\n }\n else {\n reject({success: false, data: preparedData.error});\n }\n }\n },\n err => {\n reject(err);\n });\n });\n }\n\n prepareData(response: MultiRequestResult): Object {\n this._loaders.forEach(function (loader, name) {\n let loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = (response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1));\n }\n }\n catch (err) {\n return {success: false, error: err};\n }\n });\n return {success: true, data: this._loaders};\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/data-loader-manager.js","//@flow\n\nimport RequestBuilder from '../../request-builder'\nimport BaseEntryService from '../services/base-entry-service'\nimport MetaDataService from '../services/meta-data-service'\nimport Configuration from '../config'\nimport KalturaPlaybackContext from '../response-types/kaltura-playback-context'\nimport KalturaMetadataListResponse from '../response-types/kaltura-metadata-list-response'\nimport KalturaBaseEntryListResponse from '../response-types/kaltura-base-entry-list-response'\n\nconst config = Configuration.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class MediaEntryLoader implements ILoader {\n static get name(): string {\n return \"media\";\n }\n\n _entryId: string;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n let mediaEntryResponse: KalturaBaseEntryListResponse = new KalturaBaseEntryListResponse(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);\n this._response.metadataListResult = new KalturaMetadataListResponse(response[2].data);\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(BaseEntryService.list(config.beUrl, params.ks, params.entryId));\n requests.push(BaseEntryService.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(MetaDataService.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._entryId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/media-entry-loader.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\nexport default class BaseEntryService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static getPlaybackContext(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n let contextDataParams = {objectType: \"KalturaContextDataParams\", flavorTags: \"all\"};\n let params = {entryId: entryId, ks: ks, contextDataParams: contextDataParams};\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n static getEntryListReqParams(entryId: string, ks: string): any {\n let filterParams = {redirectFromEntryId: entryId};\n let responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return {ks: ks, filter: filterParams, responseProfile: responseProfileParams};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/base-entry-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\nexport default class MetaDataService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n let filter = {objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\"};\n let params = {filter: filter, ks: ks};\n request.params = params;\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/meta-data-service.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaAccessControlMessage from './kaltura-access-control-message'\nimport KalturaPlaybackSource from './kaltura-playback-source'\nimport KalturaRuleAction from './kaltura-rule-action'\nimport KalturaFlavorAsset from './kaltura-flavor-asset'\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nexport default class KalturaPlaybackContext extends ServiceResult {\n /**\n * @member - The playback sources\n * @type {Array}\n */\n sources: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n actions: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n messages: Array = [];\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n flavorAssets: Array = [];\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n constructor(response: Object) {\n super(response);\n if (!this.hasError) {\n\n let messages = response.messages;\n if (messages) {\n messages.map(message => this.messages.push(new KalturaAccessControlMessage(message)));\n }\n\n let actions = response.actions;\n if (actions) {\n actions.map(action => this.actions.push(new KalturaRuleAction(action)));\n }\n\n let sources = response.sources;\n if (sources) {\n sources.map(source => this.sources.push(new KalturaPlaybackSource(source)));\n }\n\n let flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(flavor => this.flavorAssets.push(new KalturaFlavorAsset(flavor)));\n }\n }\n\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-context.js","//@flow\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nexport default class KalturaAccessControlMessage {\n /**\n * @member - The access control message\n * @type {string}\n */\n message: string;\n /**\n * @member - The access control message code\n * @@type {string}\n */\n code: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n this.message = data.message;\n this.code = data.code\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-access-control-message.js","//@flow\nimport {KalturaRuleActionType} from '../../enums'\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nexport default class KalturaRuleAction {\n /**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n type: KalturaRuleActionType;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.type = data.type;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-rule-action.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMediaEntry from './kaltura-media-entry'\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nexport default class KalturaBaseEntryListResponse extends ServiceResult {\n /**\n * @member - The total count\n * @type {number}\n */\n totalCount: number;\n /**\n * @member - The entries\n * @type {Array}\n */\n entries: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.entries = [];\n responseObj.objects.map(entry => this.entries.push(new KalturaMediaEntry(entry)));\n }\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","//@flow\nimport {EntryType, MediaType} from '../../enums'\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nexport default class KalturaMediaEntry {\n /**\n * @member - The entry id\n * @type {string}\n */\n id: string;\n /**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\n name: string;\n /**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n dataUrl: string;\n /**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n flavorParamsIds: string;\n /**\n * @member - The entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n type: EntryType;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n entryType: MediaType;\n\n /**\n * @constructor\n * @param {Object} entry The json response\n */\n constructor(entry: Object) {\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n }\n}\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-media-entry.js","//@flow\nimport SessionService from '../services/session-service'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class SessionLoader implements ILoader {\n static get name(): string {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n _partnerId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.ks = response[0].data.ks;\n }\n\n get response(): any {\n return this._response.ks;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(SessionService.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._partnerId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/session-loader.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\nexport default class SessionService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static anonymousSession(baseUrl: string, partnerId: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = {widgetId: \"_\" + partnerId};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/session-service.js","//@flow\nimport UiConfService from '../services/ui-conf-service'\nimport KalturaUiConfResponse from '../response-types/kaltura-ui-conf-response'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n\nexport default class UiConfigLoader implements ILoader {\n static get name(): string {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.uiConf = new KalturaUiConfResponse(response[0].data);\n }\n\n get response(): any {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null)\n try {\n return JSON.parse(this._response.uiConf.config).plugins;\n }\n catch (err) {\n return null;\n }\n else\n return null;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(UiConfService.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._uiConfId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/ui-config-loader.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\nexport default class UiConfService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static get(baseUrl: string, ks: string, uiConfID: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n let responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = {id: uiConfID, responseProfile: responseProfileParams, ks: ks};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ui-conf-service.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport {UIConfType, UIConfCreationMode} from '../../enums';\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nexport default class KalturaUiConfResponse extends ServiceResult {\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n name: string;\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n description: string;\n objTypeAsString: string;\n width: number;\n height: number;\n htmlParams: string;\n swfUrl: string;\n confFilePath: string;\n confFile: string;\n confFileFeatures: string;\n name: string;\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n config: string;\n confVars: string;\n useCdn: boolean;\n tags: string;\n swfUrlVersion: string;\n created: Date;\n updated: Date;\n html5Url: string;\n version: string;\n partnerTags: string;\n objType: UIConfType;\n creationMode: UIConfCreationMode;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n super(data);\n if (!this.hasError) {\n this.name = data.name;\n\n this.description = data.description;\n this.objTypeAsString = data.objTypeAsString;\n this.width = data.width;\n this.height = data.height;\n this.htmlParams = data.htmlParams;\n this.swfUrl = data.swfUrl;\n this.confFilePath = data.confFilePath;\n this.confFile = data.confFile;\n this.confFileFeatures = data.confFileFeatures;\n this.config = data.config;\n this.confVars = data.confVars;\n this.useCdn = data.useCdn;\n this.tags = data.tags;\n this.swfUrlVersion = data.swfUrlVersion;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.html5Url = data.description;\n this.version = data.description;\n this.partnerTags = data.description;\n this.objType = data.description;\n this.creationMode = data.description;\n\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-ui-conf-response.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/webpack/bootstrap c3b3ad0d4c43ceafbb61","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/enums.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/../node_modules/js-logger/src/logger.js","webpack:///providers/./entities/media-sources.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-source.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-flavor-asset.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata-list-response.js","webpack:///providers/./entities/media-entry.js","webpack:///providers/./entities/media-source.js","webpack:///providers/./entities/drm.js","webpack:///providers/./k-provider/ovp/ovp-provider.js","webpack:///providers/./k-provider/ovp/provider-parser.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata.js","webpack:///providers/./k-provider/ovp/play-source-url-builder.js","webpack:///providers/./k-provider/xml-parser.js","webpack:///providers/./entities/media-format.js","webpack:///providers/./k-provider/ovp/loaders/data-loader-manager.js","webpack:///providers/./k-provider/ovp/loaders/media-entry-loader.js","webpack:///providers/./k-provider/ovp/services/base-entry-service.js","webpack:///providers/./k-provider/ovp/services/meta-data-service.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-context.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-access-control-message.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-rule-action.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-media-entry.js","webpack:///providers/./k-provider/ovp/loaders/session-loader.js","webpack:///providers/./k-provider/ovp/services/session-service.js","webpack:///providers/./k-provider/ovp/loaders/ui-config-loader.js","webpack:///providers/./k-provider/ovp/services/ui-conf-service.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-ui-conf-response.js"],"names":["RequestBuilder","headers","Map","set","baseUrl","Error","url","service","action","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","value","key","setRequestHeader","send","params","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","Object","assign","ServiceResult","response","hasError","objectType","error","ServiceError","data","config","get","SERVICE_NAME","OvpService","ks","partnerId","ovpParams","multiReq","JsLogger","LoggerFactory","options","useDefaults","name","Logger","defaultLevel","DEBUG","LOG_LEVEL","INFO","TIME","WARN","ERROR","OFF","Scheme","PLAYREADY_CENC","WIDEVINE_CENC","FAIRPLAY","PLAYREADY","WIDEVINE","KalturaRuleActionTypes","DRM_POLICY","BLOCK","PREVIEW","LIMIT_FLAVORS","ADD_TO_STORAGE","LIMIT_DELIVERY_PROFILES","SERVE_FROM_REMOTE_SERVER","REQUEST_HOST_REGEX","LIMIT_THUMBNAIL_CAPTURE","Status","QUEUED","CONVERTING","READY","DELETED","NOT_APPLICABLE","TEMP","WAIT_FOR_CONVERT","IMPORTING","VALIDATING","EXPORTING","MetadataObjectTypes","AD_CUE_POINT","ANNOTATION","CODE_CUE_POINT","THUMB_CUE_POINT","ENTRY","CATEGORY","USER","PARTNER","DYNAMIC_OBJECT","MetadataStatuses","VALID","INVALID","EntryStatuses","ERROR_IMPORTING","ERROR_CONVERTING","SCAN_FAILURE","IMPORT","INFECTED","PRECONVERT","PENDING","MODERATE","BLOCKED","NO_CONTENT","EntryModerationStatuses","PENDING_MODERATION","APPROVED","REJECTED","FLAGGED_FOR_REVIEW","AUTO_APPROVED","EntryTypes","AUTOMATIC","EXTERNAL_MEDIA","MEDIA_CLIP","MIX","PLAYLIST","DATA","LIVE_STREAM","LIVE_CHANNEL","DOCUMENT","MediaTypes","VIDEO","IMAGE","AUDIO","LIVE_STREAM_FLASH","LIVE_STREAM_WINDOWS_MEDIA","LIVE_STREAM_REAL_MEDIA","LIVE_STREAM_QUICKTIME","MediaEntryTypes","Vod","Live","Image","Audio","Unknown","UIConfTypes","PLAYER","CONTRIBUTION_WIZARD","SIMPLE_EDITOR","ADVANCED_EDITOR","APP_STUDIO","KRECORD","PLAYER_V3","KMC_ACCOUNT","KMC_ANALYTICS","KMC_CONTENT","KMC_DASHBOARD","KMC_LOGIN","PLAYER_SL","CLIENTSIDE_ENCODER","KMC_GENERAL","KMC_ROLES_AND_PERMISSIONS","CLIPPER","KSR","KUPLOAD","WEBCASTING","UIConfCreationModes","WIZARD","ADVANCED","logger","MultiRequestBuilder","requests","push","requestParams","serviceDef","length","stringify","err","doHttpRequest","then","MultiRequestResult","errorText","results","success","result","serviceResult","MediaSources","progressive","dash","hls","source","mediaFormat","KalturaPlaybackSource","drm","deliveryProfileId","protocols","flavorIds","map","protocol","returnValue","protocolsArr","split","p","KalturaFlavorAsset","id","flavorParamsId","fileExt","bitrate","width","height","frameRate","isOriginal","isWeb","containerFormat","videoCodecId","language","label","KalturaMetadataListResponse","responseObj","totalCount","metas","objects","meta","MediaEntry","metaData","type","MediaSource","Drm","licenseUrl","scheme","OvpProvider","partnerID","_isAnonymous","entryId","uiConfId","_uiConfId","_dataLoader","validateParams","add","fetchData","parseDataFromResponse","debug","session","uiConfID","sources","duration","metadata","plugins","has","sessionLoader","uiConfLoader","pluginsJson","mediaLoader","mediaEntry","getMediaEntry","SUPPORTED_FORMATS","mp4","ProviderParser","mediaEntryResponse","entry","playbackContext","playBackContextResult","metadataList","metadataListResult","kalturaSources","_getParsedSources","_parseMetaData","entryType","addAdaptiveSource","parsedSource","_parseAdaptiveSource","flavorAssets","sourceFormat","parseAdaptiveSources","filter","_isProgressiveSource","parseProgressiveSources","progressiveSource","find","_parseProgressiveSources","kalturaSource","mediaSource","playUrl","hasFlavorIds","extension","pathExt","mimetype","mimeType","build","getProtocol","_getBaseProtocol","hasDrmData","drmParams","licenseURL","drmData","sourceId","flavor","bandwidth","metaXml","domParser","DOMParser","xml","replace","parseFromString","metasObj","xmlToJson","metaKeys","keys","splittedUrl","baseProtocol","substring","KalturaDrmPlaybackPluginData","KalturaMetadata","metadataProfileId","metadataProfileVersion","metadataObjectType","objectId","version","created","Date","setUTCSeconds","createdAt","updated","updatedAt","PlaySourceUrlBuilder","urlParams","endsWith","XmlParser","obj","nodeType","attributes","j","attribute","item","nodeName","nodeValue","hasChildNodes","i","childNodes","old","MediaFormats","wvm","mp3","DataLoaderManager","_loaders","_multiRequest","getMultirequest","loader","execution_loader","isValid","startIndex","executionLoaderResponseMap","Array","from","val","index","_loadersResponseMap","execute","_multiResponse","preparedData","prepareData","loaderDataIndexes","slice","MediaEntryLoader","_response","buildRequests","_entryId","list","getPlaybackContext","_requests","entries","BaseEntryService","tag","contextDataParams","flavorTags","getEntryListReqParams","filterParams","redirectFromEntryId","responseProfileParams","fields","responseProfile","MetaDataService","objectIdEqual","metadataObjectTypeEqual","KalturaPlaybackContext","actions","messages","KalturaAccessControlMessage","KalturaRuleAction","KalturaBaseEntryListResponse","KalturaMediaEntry","dataUrl","mediaType","flavorParamsIds","SessionLoader","_partnerId","anonymousSession","SessionService","widgetId","UiConfigLoader","uiConf","UiConfService","KalturaUiConfResponse","description","objTypeAsString","htmlParams","swfUrl","confFilePath","confFile","confFileFeatures","confVars","useCdn","tags","swfUrlVersion","html5Url","partnerTags","objType","creationMode"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;AC3DA;;;;IAIqBA,c;;AAsCnB;;;;;AAXA;;;;;AAVA;;;;;AAVA;;;;AAmCA,4BAAsD;AAAA,QAA1CC,OAA0C,uEAAX,IAAIC,GAAJ,EAAW;;AAAA;;AACpD,SAAKD,OAAL,GAAeA,OAAf;AACA,SAAKA,OAAL,CAAaE,GAAb,CAAiB,cAAjB,EAAiC,kBAAjC;AACD;;AAED;;;;;;AAfA;;;;;AAVA;;;;;AAVA;;;;;;AAVA;;;;;;;;6BAkDiB;AACf,UAAI,CAAC,KAAKC,OAAV,EAAmB;AACjB,cAAM,IAAIC,KAAJ,CAAU,0CAAV,CAAN;AACD;AACD,UAAIC,MAAM,KAAKF,OAAL,GAAe,WAAf,GAA6B,KAAKG,OAAlC,IAA6C,KAAKC,MAAL,GAAc,aAAa,KAAKA,MAAhC,GAAyC,EAAtF,CAAV;AACA,aAAOF,GAAP;AACD;;AAED;;;;;;;;oCAK8B;AAAA;;AAC5B,UAAIG,UAAU,IAAIC,cAAJ,EAAd;AACA,aAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtCJ,gBAAQK,kBAAR,GAA6B,YAAY;AACvC,cAAIL,QAAQM,UAAR,KAAuB,CAA3B,EAA8B;AAC5B,gBAAIN,QAAQO,MAAR,KAAmB,GAAvB,EAA4B;AAC1B,kBAAIC,eAAeC,KAAKC,KAAL,CAAWV,QAAQW,YAAnB,CAAnB;AACA,kBAAIH,gBAAgB,QAAOA,YAAP,yCAAOA,YAAP,OAAyB,QAAzC,IAAqDA,aAAaI,IAAlE,IAA0EJ,aAAaK,OAA3F,EACET,OAAOI,YAAP,EADF,KAGEL,QAAQK,YAAR;AACH,aAND,MAMO;AACLJ,qBAAOJ,QAAQW,YAAf;AACD;AACF;AACF,SAZD;AAaAX,gBAAQc,IAAR,CAAa,MAAKC,MAAlB,EAA0B,MAAKC,MAAL,EAA1B;AACA,cAAKxB,OAAL,CAAayB,OAAb,CAAqB,UAACC,KAAD,EAAQC,GAAR,EAAgB;AACnCnB,kBAAQoB,gBAAR,CAAyBD,GAAzB,EAA8BD,KAA9B;AACD,SAFD;AAGAlB,gBAAQqB,IAAR,CAAa,MAAKC,MAAlB;AACD,OAnBM,CAAP;AAoBD;;;;;;kBAvFkB/B,c;;;;;;;;;;;;;;;;;ACJrB,IAAMgC,gBAAwB;AAC5BC,SAAO,+BADqB;AAE5B7B,WAAS,+BAFmB;AAG5B8B,iBAAe;AACbC,eAAW,YADE;AAEbC,gBAAY,OAFC;AAGbC,YAAQ;AAHK;AAHa,CAA9B;;IAUqBC,a;;;;;;;wBAERC,Y,EAAuB;AAChC,UAAIA,YAAJ,EAAkB;AAChBC,eAAOC,MAAP,CAAcT,aAAd,EAA6BO,YAA7B;AACD;AACF;;;0BAEoB;AACnB,aAAOP,aAAP;AACD;;;;;;kBAVkBM,a;QAabA,a,GAAAA,a;;;;;;;;;;;;;;;ACvBR;;;;IAIqBI,a;;AAkBnB;;;;;AAXA;;;;;AAKA;;;;AAUA,uBAAYC,QAAZ,EAA8B;AAAA;;AAAA,OAhB9BC,QAgB8B,GAhBV,KAgBU;;AAC5B,MAAID,SAASE,UAAT,KAAwB,qBAA5B,EAAmD;AACjD,SAAKD,QAAL,GAAgB,IAAhB;AACA,SAAKE,KAAL,GAAa,IAAIC,YAAJ,CAAiBJ,SAAStB,IAA1B,EAAgCsB,SAASrB,OAAzC,CAAb;AACD,GAHD,MAIK;AACH,SAAK0B,IAAL,GAAYL,QAAZ;AACD;AACF;;AA5BD;;;;;;AA+BF;;;;;;kBAjCqBD,a;;IAqCfK,Y;;AAYJ;;;;;;AAXA;;;;AAgBA,sBAAY1B,IAAZ,EAA0BC,OAA1B,EAA2C;AAAA;;AACzC,OAAKD,IAAL,GAAYA,IAAZ;AACA,OAAKC,OAAL,GAAeA,OAAf;AACD;AAdD;;;;;;;;;;;;;;;;;;;AChDF;;;;AACA;;;;;;;;AAEA,IAAM2B,SAAS,iBAAcC,GAAd,EAAf;AACA,IAAMC,eAAuB,cAA7B;;AAEA;;;;;IAIqBC,U;;;;;;;;AACnB;;;;;;;;oCAQuBC,E,EAAYC,S,EAAyC;AAC1E,UAAIC,YAAYN,OAAOf,aAAvB;AACAM,aAAOC,MAAP,CAAcc,SAAd,EAAyB,EAACF,IAAIA,EAAL,EAAzB;AACA,UAAIC,SAAJ,EAAe;AACbd,eAAOC,MAAP,CAAcc,SAAd,EAAyB,EAACD,WAAWA,SAAZ,EAAzB;AACD;AACD,UAAIE,WAAW,mCAAf;AACAA,eAAShC,MAAT,GAAkB,MAAlB;AACAgC,eAASjD,OAAT,GAAmB4C,YAAnB;AACAK,eAASpD,OAAT,GAAmB6C,OAAOhB,KAA1B;AACAuB,eAASzB,MAAT,GAAkBwB,SAAlB;AACA,aAAOC,QAAP;AACD;;;;;;kBArBkBJ,U;;;;;;;;;;;;;;;;ACVrB;;IAAYK,Q;;;;;;IAENC,a;AACJ,yBAAYC,OAAZ,EAA8B;AAAA;;AAC5BF,aAASG,WAAT,CAAqBD,WAAW,EAAhC;AACD;;;;wBAEGE,I,EAAe;AACjB,UAAI,CAACA,IAAL,EAAW;AACT,eAAOJ,QAAP;AACD;AACD,aAAOA,SAASP,GAAT,CAAaW,IAAb,CAAP;AACD;;;;;;AAGH,IAAIC,SAAS,IAAIJ,aAAJ,CAAkB,EAACK,cAAcN,SAASO,KAAxB,EAAlB,CAAb;AACA,IAAMC,YAAyC;AAC7C,WAASR,SAASO,KAD2B;AAE7C,UAAQP,SAASS,IAF4B;AAG7C,UAAQT,SAASU,IAH4B;AAI7C,UAAQV,SAASW,IAJ4B;AAK7C,WAASX,SAASY,KAL2B;AAM7C,SAAOZ,SAASa;AAN6B,CAA/C;;kBASeR,M;QACPG,S,GAAAA,S;;;;;;;;;;;;;;;IC1BKM,M,WAAAA,M;;;;AAAAA,M,CACJC,c,GAAyB,oB;AADrBD,M,CAEJE,a,GAAwB,mB;AAFpBF,M,CAGJG,Q,GAAmB,mB;AAHfH,M,CAIJI,S,GAAoB,qB;AAJhBJ,M,CAKJK,Q,GAAmB,mB;;IAGfC,sB,WAAAA,sB;;;;AAAAA,sB,CACJC,U,GAAoC,gB;AADhCD,sB,CAEJE,K,GAA+B,C;AAF3BF,sB,CAGJG,O,GAAiC,C;AAH7BH,sB,CAIJI,a,GAAuC,C;AAJnCJ,sB,CAKJK,c,GAAwC,C;AALpCL,sB,CAMJM,uB,GAAiD,C;AAN7CN,sB,CAOJO,wB,GAAkD,C;AAP9CP,sB,CAQJQ,kB,GAA4C,C;AARxCR,sB,CASJS,uB,GAAiD,C;;IAG7CC,M,WAAAA,M;;;;AAAAA,M,CACJlB,K,GAAgB,CAAC,C;AADbkB,M,CAEJC,M,GAAiB,C;AAFbD,M,CAGJE,U,GAAqB,C;AAHjBF,M,CAIJG,K,GAAgB,C;AAJZH,M,CAKJI,O,GAAkB,C;AALdJ,M,CAMJK,c,GAAyB,C;AANrBL,M,CAOJM,I,GAAe,C;AAPXN,M,CAQJO,gB,GAA2B,C;AARvBP,M,CASJQ,S,GAAoB,C;AAThBR,M,CAUJS,U,GAAqB,C;AAVjBT,M,CAWJU,S,GAAoB,C;;IAGhBC,mB,WAAAA,mB;;;;AAAAA,mB,CACJC,Y,GAAmC,+B;AAD/BD,mB,CAEJE,U,GAAiC,+B;AAF7BF,mB,CAGJG,c,GAAqC,mC;AAHjCH,mB,CAIJI,e,GAAsC,qC;AAJlCJ,mB,CAKJK,K,GAA4B,C;AALxBL,mB,CAMJM,Q,GAA+B,C;AAN3BN,mB,CAOJO,I,GAA2B,C;AAPvBP,mB,CAQJQ,O,GAA8B,C;AAR1BR,mB,CASJS,c,GAAqC,C;;IAGjCC,gB,WAAAA,gB;;;;AAAAA,gB,CACJC,K,GAAwB,C;AADpBD,gB,CAEJE,O,GAA0B,C;AAFtBF,gB,CAGJjB,O,GAA0B,C;;IAGtBoB,a,WAAAA,a;;;;AAAAA,a,CACJC,e,GAA+B,CAAC,C;AAD5BD,a,CAEJE,gB,GAAgC,CAAC,C;AAF7BF,a,CAGJG,Y,GAA4B,uB;AAHxBH,a,CAIJI,M,GAAsB,C;AAJlBJ,a,CAKJK,Q,GAAwB,oB;AALpBL,a,CAMJM,U,GAA0B,C;AANtBN,a,CAOJrB,K,GAAqB,C;AAPjBqB,a,CAQJpB,O,GAAuB,C;AARnBoB,a,CASJO,O,GAAuB,C;AATnBP,a,CAUJQ,Q,GAAwB,C;AAVpBR,a,CAWJS,O,GAAuB,C;AAXnBT,a,CAYJU,U,GAA0B,C;;IAGtBC,uB,WAAAA,uB;;;;AAAAA,uB,CACJC,kB,GAA4C,C;AADxCD,uB,CAEJE,Q,GAAkC,C;AAF9BF,uB,CAGJG,Q,GAAkC,C;AAH9BH,uB,CAIJI,kB,GAA4C,C;AAJxCJ,uB,CAKJH,Q,GAAkC,C;AAL9BG,uB,CAMJK,a,GAAuC,C;;IAGnCC,U,WAAAA,U;;;;AAAAA,U,CACJC,S,GAAuB,EAACtG,OAAO,CAAC,CAAT,E;AADnBqG,U,CAEJE,c,GAA4B,EAACvG,OAAO,6BAAR,E;AAFxBqG,U,CAGJG,U,GAAwB,EAACxG,OAAO,CAAR,E;AAHpBqG,U,CAIJI,G,GAAiB,EAACzG,OAAO,CAAR,E;AAJbqG,U,CAKJK,Q,GAAsB,EAAC1G,OAAO,CAAR,E;AALlBqG,U,CAMJM,I,GAAkB,EAAC3G,OAAO,CAAR,E;AANdqG,U,CAOJO,W,GAAyB,EAAC5G,OAAO,CAAR,E;AAPrBqG,U,CAQJQ,Y,GAA0B,EAAC7G,OAAO,CAAR,E;AARtBqG,U,CASJS,Q,GAAsB,EAAC9G,OAAO,EAAR,E;;IAGlB+G,U,WAAAA,U;;;;AAAAA,U,CACJC,K,GAAmB,EAAChH,OAAO,CAAR,E;AADf+G,U,CAEJE,K,GAAmB,EAACjH,OAAO,CAAR,E;AAFf+G,U,CAGJG,K,GAAmB,EAAClH,OAAO,CAAR,E;AAHf+G,U,CAIJI,iB,GAA+B,EAACnH,OAAO,GAAR,E;AAJ3B+G,U,CAKJK,yB,GAAuC,EAACpH,OAAO,GAAR,E;AALnC+G,U,CAMJM,sB,GAAoC,EAACrH,OAAO,GAAR,E;AANhC+G,U,CAOJO,qB,GAAmC,EAACtH,OAAO,GAAR,E;;IAG/BuH,e,WAAAA,e;;;;AAAAA,e,CACJC,G,GAAsB,K;AADlBD,e,CAEJE,I,GAAuB,M;AAFnBF,e,CAGJG,K,GAAwB,O;AAHpBH,e,CAIJI,K,GAAwB,O;AAJpBJ,e,CAKJK,O,GAA0B,S;;IAGtBC,W,WAAAA,W;;;;AAAAA,W,CACJC,M,GAAqB,C;AADjBD,W,CAEJE,mB,GAAkC,C;AAF9BF,W,CAGJG,a,GAA4B,C;AAHxBH,W,CAIJI,e,GAA8B,C;AAJ1BJ,W,CAKJnB,Q,GAAuB,C;AALnBmB,W,CAMJK,U,GAAyB,C;AANrBL,W,CAOJM,O,GAAsB,C;AAPlBN,W,CAQJO,S,GAAwB,C;AARpBP,W,CASJQ,W,GAA0B,C;AATtBR,W,CAUJS,a,GAA4B,E;AAVxBT,W,CAWJU,W,GAA0B,E;AAXtBV,W,CAYJW,a,GAA4B,E;AAZxBX,W,CAaJY,S,GAAwB,E;AAbpBZ,W,CAcJa,S,GAAwB,E;AAdpBb,W,CAeJc,kB,GAAiC,E;AAf7Bd,W,CAgBJe,W,GAA0B,E;AAhBtBf,W,CAiBJgB,yB,GAAwC,E;AAjBpChB,W,CAkBJiB,O,GAAsB,E;AAlBlBjB,W,CAmBJkB,G,GAAkB,E;AAnBdlB,W,CAoBJmB,O,GAAsB,E;AApBlBnB,W,CAqBJoB,U,GAAyB,E;;IAGrBC,mB,WAAAA,mB;;;;AAAAA,mB,CACJC,M,GAA6B,C;AADzBD,mB,CAEJE,Q,GAA+B,C;;;;;;;;;;;;;;;;ACpIxC;;;;AACA;;;;AACA;;;;;;;;;;;;;;AACA;;;AAGA,IAAMC,SAAS,iBAAO9H,GAAP,CAAW,aAAX,CAAf;;AAEA;;;;;IAIqB+H,mB;;;AAQnB;;;AAGA,iCAAc;AAAA;;AAAA;;AAAA,UALdC,QAKc,GALoB,EAKpB;AAAA;AAEb;;AAED;;;;;;;;AAbA;;;;;;;;wBAmBIzK,O,EAA8C;AAChD,WAAKyK,QAAL,CAAcC,IAAd,CAAmB1K,OAAnB;AACA,UAAI2K,gBAAgB,EAApB;AACA,UAAIC,aAAqB,EAAC9K,SAASE,QAAQF,OAAlB,EAA2BC,QAAQC,QAAQD,MAA3C,EAAzB;AACAgC,aAAOC,MAAP,CAAc2I,aAAd,sBAA+B,KAAKF,QAAL,CAAcI,MAA7C,EAAsD9I,OAAOC,MAAP,CAAc4I,UAAd,EAA0B5K,QAAQsB,MAAlC,CAAtD;AACAS,aAAOC,MAAP,CAAc2I,aAAd,EAA6B,KAAKrJ,MAAlC;AACA,WAAKA,MAAL,GAAcqJ,aAAd;AACA,aAAO,IAAP;AACD;;AAED;;;;;;;;8BAK2B;AAAA;;AACzB,UAAI;AACF,aAAKrJ,MAAL,GAAcb,KAAKqK,SAAL,CAAe,KAAKxJ,MAApB,CAAd;AACD,OAFD,CAGA,OAAOyJ,GAAP,EAAY;AACVR,eAAOlI,KAAP,MAAgB0I,IAAIlK,OAApB;AACD;AACD,aAAO,IAAIX,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtC,eAAK4K,aAAL,GAAqBC,IAArB,CAA0B,gBAAQ;AAC9B9K,kBAAQ,IAAI+K,kBAAJ,CAAuB3I,IAAvB,CAAR;AACD,SAFH,EAGE,eAAO;AACL,cAAI4I,yDAA+DJ,GAA/D,OAAJ;AACA3K,iBAAO+K,SAAP;AAED,SAPH;AAQD,OATM,CAAP;AAUD;;;;;;AAIH;;;;;;kBAzDqBX,mB;;IA6DRU,kB;;AAaX;;;;;;AAXA;;;;QAFWA,kB,GAiBX,4BAAYhJ,QAAZ,EAA8B;AAAA;;AAAA;;AAAA,OAN9BkJ,OAM8B,GANE,EAMF;;AAC5B,OAAKC,OAAL,GAAe,IAAf;AACAnJ,WAASjB,OAAT,CAAiB,UAACqK,MAAD,EAAY;AAC3B,QAAIC,gBAA+B,gCAAkBD,MAAlB,CAAnC;AACA,WAAKF,OAAL,CAAaV,IAAb,CAAkBa,aAAlB;AACA,QAAIA,cAAcpJ,QAAlB,EAA4B;AAC1BoI,aAAOlI,KAAP,iDAA2DkJ,cAAclJ,KAAd,CAAoBzB,IAA/E,sBAAoG2K,cAAclJ,KAAd,CAAoBxB,OAAxH;AACA,aAAKwK,OAAL,GAAe,KAAf;AACA;AACD;AACF,GARD;AASD;AArBD;;;;;;;;;;ACjFF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe;;AAEf;AACA;;AAEA;AACA;;AAEA,8CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;;AAEA;AACA,0CAA0C,0BAA0B;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;AC/PD;;;;;;;;AAEA;;;;IAIqBG,Y;;AAoBnB;;;;AAbA;;;;;AAgBA,0BAAc;AAAA;;AACZ,SAAKC,WAAL,GAAmB,EAAnB;AACA,SAAKC,IAAL,GAAY,EAAZ;AACA,SAAKC,GAAL,GAAW,EAAX;AACD;;AAED;;;;;;;AAhBA;;;;;;AAZA;;;;;;;;;wBAkCIC,M,EAAqBC,W,EAA2B;AAClD,UAAIA,WAAJ,EAAiB;AACf,gBAAQA,YAAYzI,IAApB;AAC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","file":"ovpProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c3b3ad0d4c43ceafbb61","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: { [level: string]: Object } = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nexport class Scheme {\n static PLAYREADY_CENC: string = \"drm.PLAYREADY_CENC\";\n static WIDEVINE_CENC: string = \"drm.WIDEVINE_CENC\";\n static FAIRPLAY: string = \"fairplay.FAIRPLAY\";\n static PLAYREADY: string = \"playReady.PLAYREADY\";\n static WIDEVINE: string = \"widevine.WIDEVINE\";\n}\n\nexport class KalturaRuleActionTypes {\n static DRM_POLICY: KalturaRuleActionType = \"drm.DRM_POLICY\";\n static BLOCK: KalturaRuleActionType = 1;\n static PREVIEW: KalturaRuleActionType = 2;\n static LIMIT_FLAVORS: KalturaRuleActionType = 3;\n static ADD_TO_STORAGE: KalturaRuleActionType = 4;\n static LIMIT_DELIVERY_PROFILES: KalturaRuleActionType = 5;\n static SERVE_FROM_REMOTE_SERVER: KalturaRuleActionType = 6;\n static REQUEST_HOST_REGEX: KalturaRuleActionType = 7;\n static LIMIT_THUMBNAIL_CAPTURE: KalturaRuleActionType = 8;\n}\n\nexport class Status {\n static ERROR: number = -1;\n static QUEUED: number = 0;\n static CONVERTING: number = 1;\n static READY: number = 2;\n static DELETED: number = 3;\n static NOT_APPLICABLE: number = 4;\n static TEMP: number = 5;\n static WAIT_FOR_CONVERT: number = 6;\n static IMPORTING: number = 7;\n static VALIDATING: number = 8;\n static EXPORTING: number = 9;\n}\n\nexport class MetadataObjectTypes {\n static AD_CUE_POINT: MetadataObjectType = \"adCuePointMetadata.AdCuePoint\";\n static ANNOTATION: MetadataObjectType = \"annotationMetadata.Annotation\";\n static CODE_CUE_POINT: MetadataObjectType = \"codeCuePointMetadata.CodeCuePoint\";\n static THUMB_CUE_POINT: MetadataObjectType = \"thumbCuePointMetadata.thumbCuePoint\";\n static ENTRY: MetadataObjectType = 1;\n static CATEGORY: MetadataObjectType = 2;\n static USER: MetadataObjectType = 3;\n static PARTNER: MetadataObjectType = 4;\n static DYNAMIC_OBJECT: MetadataObjectType = 5;\n}\n\nexport class MetadataStatuses {\n static VALID: MetadataStatus = 1;\n static INVALID: MetadataStatus = 2;\n static DELETED: MetadataStatus = 3;\n}\n\nexport class EntryStatuses {\n static ERROR_IMPORTING: EntryStatus = -2;\n static ERROR_CONVERTING: EntryStatus = -1;\n static SCAN_FAILURE: EntryStatus = \"virusScan.ScanFailure\";\n static IMPORT: EntryStatus = 0;\n static INFECTED: EntryStatus = \"virusScan.Infected\";\n static PRECONVERT: EntryStatus = 1;\n static READY: EntryStatus = 2;\n static DELETED: EntryStatus = 3;\n static PENDING: EntryStatus = 4;\n static MODERATE: EntryStatus = 5;\n static BLOCKED: EntryStatus = 6;\n static NO_CONTENT: EntryStatus = 7\n}\n\nexport class EntryModerationStatuses {\n static PENDING_MODERATION: EntryModerationStatus = 1;\n static APPROVED: EntryModerationStatus = 2;\n static REJECTED: EntryModerationStatus = 3;\n static FLAGGED_FOR_REVIEW: EntryModerationStatus = 4;\n static MODERATE: EntryModerationStatus = 5;\n static AUTO_APPROVED: EntryModerationStatus = 6\n}\n\nexport class EntryTypes {\n static AUTOMATIC: EntryType = {value: -1};\n static EXTERNAL_MEDIA: EntryType = {value: \"externalMedia.externalMedia\"};\n static MEDIA_CLIP: EntryType = {value: 1};\n static MIX: EntryType = {value: 2};\n static PLAYLIST: EntryType = {value: 5};\n static DATA: EntryType = {value: 6};\n static LIVE_STREAM: EntryType = {value: 7};\n static LIVE_CHANNEL: EntryType = {value: 8};\n static DOCUMENT: EntryType = {value: 10};\n}\n\nexport class MediaTypes {\n static VIDEO: MediaType = {value: 1};\n static IMAGE: MediaType = {value: 2};\n static AUDIO: MediaType = {value: 5};\n static LIVE_STREAM_FLASH: MediaType = {value: 201};\n static LIVE_STREAM_WINDOWS_MEDIA: MediaType = {value: 202};\n static LIVE_STREAM_REAL_MEDIA: MediaType = {value: 203};\n static LIVE_STREAM_QUICKTIME: MediaType = {value: 204};\n}\n\nexport class MediaEntryTypes {\n static Vod: MediaEntryType = 'Vod';\n static Live: MediaEntryType = 'Live';\n static Image: MediaEntryType = 'Image';\n static Audio: MediaEntryType = 'Audio';\n static Unknown: MediaEntryType = 'Unknown';\n}\n\nexport class UIConfTypes {\n static PLAYER: UIConfType = 1;\n static CONTRIBUTION_WIZARD: UIConfType = 2;\n static SIMPLE_EDITOR: UIConfType = 3;\n static ADVANCED_EDITOR: UIConfType = 4;\n static PLAYLIST: UIConfType = 5;\n static APP_STUDIO: UIConfType = 6;\n static KRECORD: UIConfType = 7;\n static PLAYER_V3: UIConfType = 8;\n static KMC_ACCOUNT: UIConfType = 9;\n static KMC_ANALYTICS: UIConfType = 10;\n static KMC_CONTENT: UIConfType = 11;\n static KMC_DASHBOARD: UIConfType = 12;\n static KMC_LOGIN: UIConfType = 13;\n static PLAYER_SL: UIConfType = 14;\n static CLIENTSIDE_ENCODER: UIConfType = 15;\n static KMC_GENERAL: UIConfType = 16;\n static KMC_ROLES_AND_PERMISSIONS: UIConfType = 17;\n static CLIPPER: UIConfType = 18;\n static KSR: UIConfType = 19;\n static KUPLOAD: UIConfType = 20;\n static WEBCASTING: UIConfType = 21\n}\n\nexport class UIConfCreationModes {\n static WIZARD: UIConfCreationMode = 2;\n static ADVANCED: UIConfCreationMode = 3\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/enums.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/js-logger/src/logger.js\n// module id = 7\n// module chunks = 0 1","// @flow\nimport MediaSource from './media-source'\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nexport default class MediaSources {\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n progressive: Array;\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n dash: Array;\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n hls: Array;\n\n /**\n * @constructor\n */\n constructor() {\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n map(source: MediaSource, mediaFormat: ?MediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-sources.js","//@flow\nimport KalturaDrmPlaybackPluginData from './kaltura-drm-playback-plugin-data'\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nexport default class KalturaPlaybackSource {\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n format: string;\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n deliveryProfileId: string;\n /**\n * @member - The source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n protocols: string;\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n flavorIds: string;\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n drm: Array = [];\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n constructor(source: Object) {\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(drm => this.drm.push(new KalturaDrmPlaybackPluginData(drm)));\n }\n\n\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n hasDrmData(): boolean {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n hasFlavorIds(): boolean {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n getProtocol(protocol: string): string {\n let returnValue: string = \"\";\n if (this.protocols && this.protocols.length > 0) {\n let protocolsArr: Array = this.protocols.split(\",\");\n protocolsArr.forEach((p) => {\n if (p == protocol) {\n returnValue = p;\n }\n });\n }\n else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-source.js","//@flow\nimport {Status} from '../../enums'\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nexport default class KalturaFlavorAsset {\n /**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\n id: string;\n /**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n flavorParamsId: string;\n /**\n * @member -The file extension\n * @type {string}\n */\n fileExt: string;\n /**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n bitrate: number;\n /**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n width: number;\n /**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n height: number;\n /**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n frameRate: number;\n /**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n isOriginal: boolean;\n /**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n isWeb: boolean;\n /**\n * @member - The container format\n * @type {boolean}\n */\n containerFormat: string;\n /**\n *@member - The video codec\n * @type {boolean}\n */\n videoCodecId: string;\n /**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n status: Status;\n /**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n language: string;\n /**\n * @member - The label of the flavor asset\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: any) {\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-flavor-asset.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMetadata from './kaltura-metadata'\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nexport default class KalturaMetadataListResponse extends ServiceResult {\n totalCount: number;\n /**\n * @member -The mata data array\n * @type {Array}\n */\n metas: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.metas = [];\n responseObj.objects.map(meta => this.metas.push(new KalturaMetadata(meta)));\n }\n\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata-list-response.js","//@flow\nimport {MediaEntryTypes} from '../k-provider/enums'\nimport MediaSources from './media-sources'\n\n/**\n * Media entry\n * @classdesc\n */\nexport default class MediaEntry {\n\n /**\n * @member - entry ID\n * @type {string}\n */\n id: string;\n /**\n * @member - entry sources\n * @type {MediaSources}\n */\n sources: MediaSources;\n /**\n * @member - entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - entry type\n * @type {MediaEntryType}\n */\n type: MediaEntryType;\n /**\n * @member - entry metadata\n * @type {Map}\n */\n metaData: Map;\n\n /**\n * @constructor\n */\n constructor() {\n this.metaData = new Map();\n this.type = MediaEntryTypes.Unknown;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-entry.js","//@flow\nimport Drm from '../entities/drm'\n\n/**\n * Media source\n * @classdesc\n */\nexport default class MediaSource {\n /**\n * @member - media source ID\n * @type {string}\n */\n id: string;\n /**\n * @member - media source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - media source mimetype\n * @type {string}\n */\n mimetype: string;\n /**\n * @member - media source drm data\n * @type {Array}\n */\n drmData: Array;\n /**\n * @member - media source bandwidth\n * @type {number}\n */\n bandwidth: number;\n /**\n * @member - media source width\n * @type {number}\n */\n width: number;\n /**\n * @member - media source height\n * @type {number}\n */\n height: number;\n /**\n * @member - media source label\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n */\n constructor() {\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-source.js","//@flow\n\nimport {Scheme} from '../k-provider/enums';\n\n/**\n * Drm data\n * @classdesc\n */\nexport default class Drm {\n\n /**\n * @member - license URL\n * @type {string}\n */\n licenseUrl: string;\n /**\n * @member - drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n constructor(licenseUrl: string, scheme: Scheme) {\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/drm.js","//@flow\nimport Logger from '../../util/logger'\nimport ProviderParser from './provider-parser'\nimport DataLoaderManager from './loaders/data-loader-manager'\nimport MediaEntryLoader from './loaders/media-entry-loader'\nimport SessionLoader from './loaders/session-loader'\nimport UiConfigLoader from './loaders/ui-config-loader'\nimport Configuration from './config'\nimport MediaEntry from '../../entities/media-entry'\nimport MediaSources from '../../entities/media-sources'\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\ntype playerConfig = {\n id: string,\n session: Object,\n sources: MediaSources,\n duration: number,\n type: string,\n metadata: Object,\n plugins: Object\n};\n\n/**\n * Ovp provider\n * @classdesc\n */\nexport class OvpProvider {\n /**\n * @member - ks\n * @type {string}\n */\n ks: string;\n /**\n * @member - partner ID\n * @type {number}\n */\n partnerID: number;\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n _isAnonymous: boolean;\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n _dataLoader: DataLoaderManager;\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n constructor(partnerID: number, ks: string = \"\", config?: Object) {\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n Configuration.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n getConfig(entryId?: string, uiConfId?: number): Promise {\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new DataLoaderManager(this.partnerID, this.ks);\n return new Promise((resolve, reject) => {\n if (this.validateParams(entryId, uiConfId)) {\n let ks: string = this.ks;\n if (this._isAnonymous) {\n ks = \"{1:result:ks}\";\n this._dataLoader.add(SessionLoader, {partnerId: this.partnerID});\n }\n this._dataLoader.add(MediaEntryLoader, {entryId: entryId, ks: ks});\n this._dataLoader.add(UiConfigLoader, {uiConfId: uiConfId, ks: ks});\n this._dataLoader.fetchData()\n .then(response => {\n resolve(this.parseDataFromResponse(response));\n },\n err => {\n reject(err);\n });\n }\n else {\n reject({success: false, data: \"Missing mandatory parameter\"});\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n parseDataFromResponse(data: Map): Object {\n logger.debug(\"Data parsing started\");\n let config: playerConfig = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId,\n },\n sources: new MediaSources(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(SessionLoader.name)) {\n let sessionLoader = data.get(SessionLoader.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(UiConfigLoader.name)) {\n let uiConfLoader = data.get(UiConfigLoader.name);\n let pluginsJson: Object = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(MediaEntryLoader.name)) {\n let mediaLoader = data.get(MediaEntryLoader.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n let mediaEntry: MediaEntry = ProviderParser.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return (config);\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n validateParams(entryId?: string, uiConfId?: number): boolean {\n return !!entryId || !!uiConfId;\n }\n\n}\n\nexport default OvpProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/ovp-provider.js","//@flow\nimport KalturaPlaybackSource from './response-types/kaltura-playback-source'\nimport KalturaFlavorAsset from './response-types/kaltura-flavor-asset'\nimport KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response'\nimport PlaySourceUrlBuilder from \"./play-source-url-builder\"\nimport XmlParser from '../xml-parser'\nimport {MediaEntryTypes, EntryTypes, MediaTypes} from '../enums'\nimport Logger from '../../util/logger'\nimport Configuration from './config'\nimport {MediaFormats} from '../../entities/media-format'\nimport MediaEntry from '../../entities/media-entry'\nimport Drm from '../../entities/drm'\nimport MediaSource from '../../entities/media-source'\nimport MediaSources from '../../entities/media-sources'\n\nconst config = Configuration.get();\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nconst SUPPORTED_FORMATS: Map = new Map([\n [\"mpegdash\", MediaFormats.dash],\n [\"applehttp\", MediaFormats.hls],\n [\"url\", MediaFormats.mp4]\n]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\nexport default class ProviderParser {\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {any} mediaEntryResponse - The media entry response\n * @returns {MediaEntry} - The media entry\n * @static\n * @public\n */\n static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry {\n let mediaEntry: MediaEntry = new MediaEntry();\n let entry = mediaEntryResponse.entry;\n let playbackContext = mediaEntryResponse.playBackContextResult;\n let metadataList = mediaEntryResponse.metadataListResult;\n let kalturaSources: Array = playbackContext.sources;\n let sources: MediaSources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n let metadata: Map = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n let type: MediaEntryType = MediaEntryTypes.Unknown;\n\n switch (entry.entryType) {\n case MediaTypes.IMAGE.value:\n type = MediaEntryTypes.Image;\n break;\n case MediaTypes.AUDIO.value:\n type = MediaEntryTypes.Audio;\n break;\n default:\n switch (entry.type) {\n case EntryTypes.MEDIA_CLIP.value:\n type = MediaEntryTypes.Vod;\n break;\n case EntryTypes.LIVE_STREAM.value:\n case EntryTypes.LIVE_CHANNEL.value:\n type = MediaEntryTypes.Live;\n break;\n default:\n type = MediaEntryTypes.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n /**\n * Returns the parsed sources\n * @function _getParsedSources\n * @param {Array} kalturaSources - The kaltura sources\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {Object} entry - The entry\n * @param {Object} playbackContext - The playback context\n * @return {MediaSources} - A media sources\n * @static\n * @private\n */\n static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry: Object, playbackContext: Object): MediaSources {\n let sources: MediaSources = new MediaSources();\n\n let addAdaptiveSource = function(source: KalturaPlaybackSource): void{\n let parsedSource = ProviderParser._parseAdaptiveSource(source, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n };\n\n let parseAdaptiveSources = function (): void {\n kalturaSources.filter((source) => !ProviderParser._isProgressiveSource(source)).forEach(addAdaptiveSource);\n };\n\n let parseProgressiveSources = function (): void{\n let progressiveSource = kalturaSources.find(ProviderParser._isProgressiveSource);\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n /**\n * Returns a parsed adaptive source\n * @function _parseAdaptiveSource\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {MediaSource} - The parsed adaptive kalturaSource\n * @static\n * @private\n */\n static _parseAdaptiveSource(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): MediaSource {\n let mediaSource: MediaSource = new MediaSource();\n if (kalturaSource) {\n let playUrl: string = \"\";\n let mediaFormat = SUPPORTED_FORMATS.get(kalturaSource.format);\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (kalturaSource.hasFlavorIds()) {\n let extension: string = \"\";\n if (!mediaFormat) {\n if (flavorAssets && flavorAssets.length > 0) {\n extension = flavorAssets[0].fileExt;\n }\n }\n else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = PlaySourceUrlBuilder.build({\n entryId: entryId,\n flavorIds: kalturaSource.flavorIds,\n format: kalturaSource.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: kalturaSource.getProtocol(this._getBaseProtocol())\n });\n\n }\n else {\n playUrl = kalturaSource.url;\n }\n\n if (playUrl == \"\") {\n logger.error(`failed to create play url from source, discarding source: (${entryId}_${kalturaSource.deliveryProfileId}), ${kalturaSource.format}.`);\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entryId + \"_\" + kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n if (kalturaSource.hasDrmData()) {\n let drmParams: Array = [];\n kalturaSource.drm.forEach((drm) => {\n drmParams.push(new Drm(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n }\n return mediaSource;\n }\n\n /**\n * Returns parsed progressive sources\n * @function _parseProgressiveSources\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {Array} - The parsed progressive kalturaSources\n * @static\n * @private\n */\n static _parseProgressiveSources(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): Array {\n let sources = [];\n if (kalturaSource) {\n let protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n let format = kalturaSource.format;\n let sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map((flavor) => {\n if (flavor.height && flavor.width) {\n let mediaSource: MediaSource = new MediaSource();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = PlaySourceUrlBuilder.build({\n entryId: entryId,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n /**\n * @function _isProgressiveSource\n * @param {KalturaPlaybackSource} source - The kaltura source\n * @return {boolean} - Is progressive source\n * @static\n * @private\n */\n static _isProgressiveSource(source: KalturaPlaybackSource): boolean {\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return !!sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n static _parseMetaData(metadataList: KalturaMetadataListResponse): Map {\n let metadata: Object = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach((meta) => {\n let metaXml: Object;\n let domParser: DOMParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n let metasObj: Object = XmlParser.xmlToJson(metaXml);\n let metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach((key) => {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n })\n })\n }\n return metadata;\n }\n\n /**\n * Returns the base protocol\n * @function _getBaseProtocol\n * @returns {string} - The base protocol\n * @static\n * @private\n */\n static _getBaseProtocol(): string {\n let splittedUrl: Array = config.baseUrl.split(\"/\");\n let baseProtocol: string;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n }\n else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/provider-parser.js","//@flow\nimport {Scheme} from '../../enums'\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nexport default class KalturaDrmPlaybackPluginData {\n /**\n * @member - The drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @member - The license URL\n * @type {string}\n */\n licenseURL: string;\n\n /**\n * @constructor\n * @param {Object} drm The json response\n */\n constructor(drm: any) {\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","//@flow\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nexport default class KalturaMetadata {\n id: number;\n metadataProfileId: number;\n metadataProfileVersion: number;\n metadataObjectType: MetadataObjectType;\n objectId: string;\n version: number;\n created: Date;\n updated: Date;\n status: MetadataStatus;\n /**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n xml: string;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata.js","//@flow\nimport Configuration from './config'\n\nconst config = Configuration.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\nexport default class PlaySourceUrlBuilder {\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n static build(urlParams: Object): string {\n let baseUrl: string = config.baseUrl;\n let partnerId: string = urlParams.partnerId;\n let entryId: string = urlParams.entryId;\n let ks: string = urlParams.ks;\n let uiConfId: string = urlParams.uiConfId;\n let format: string = urlParams.format;\n let protocol: string = urlParams.protocol;\n let extension: string = urlParams.extension;\n let flavorIds: string = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n let playUrl = baseUrl;\n if (!baseUrl.endsWith(\"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n }\n else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/play-source-url-builder.js","//@flow\n\n/**\n * Xml parser\n * @classdesc\n */\nexport default class XmlParser {\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n static xmlToJson(xml: Object) {\n let obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n let attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n }\n else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n let item = xml.childNodes.item(i);\n let nodeName = item.nodeName;\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n }\n else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n let old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/xml-parser.js","//@flow\nexport class MediaFormats {\n static dash: MediaFormat = {\n name: 'dash',\n mimeType: \"application/dash+xml\",\n pathExt: \"mpd\"\n };\n\n static hls: MediaFormat = {\n name: 'hls',\n mimeType: \"application/x-mpegURL\",\n pathExt: \"m3u8\"\n };\n\n static wvm: MediaFormat = {\n name: 'wvm',\n mimeType: \"video/wvm\",\n pathExt: \"wvm\"\n };\n\n static mp4: MediaFormat = {\n name: 'mp4',\n mimeType: \"video/mp4\",\n pathExt: \"mp4\"\n };\n\n static mp3: MediaFormat = {\n name: 'mp3',\n mimeType: \"audio/mpeg\",\n pathExt: \"mp3\"\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-format.js","//@flow\nimport OvpService from '../services/ovp-service'\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport {MultiRequestResult} from '../../multi-request-builder'\n\n/**\n * Data loaders manager\n * @classdesc\n */\nexport default class DataLoaderManager {\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n static _loadersResponseMap: Map> = new Map();\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n _multiRequest: MultiRequestBuilder;\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n _multiResponse: MultiRequestResult;\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n _loaders: Map = new Map();\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n constructor(partnerID: number, ks: string = \"\") {\n this._multiRequest = OvpService.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n add(loader: Function, params: Object): void {\n let execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n let startIndex = this._multiRequest.requests.length;\n //Get the requests\n let requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach((request) => {\n this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n let executionLoaderResponseMap = Array.from(new Array(requests.length), (val, index) => index + startIndex);\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n fetchData(): Promise {\n return new Promise((resolve, reject) => {\n this._multiRequest.execute()\n .then(response => {\n this._multiResponse = response;\n if (!response.success) {\n reject(response);\n }\n else {\n let preparedData: Object = this.prepareData(response);\n if (preparedData.success) {\n resolve(this._loaders);\n }\n else {\n reject({success: false, data: preparedData.error});\n }\n }\n },\n err => {\n reject(err);\n });\n });\n }\n\n prepareData(response: MultiRequestResult): Object {\n this._loaders.forEach(function (loader, name) {\n let loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = (response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1));\n }\n }\n catch (err) {\n return {success: false, error: err};\n }\n });\n return {success: true, data: this._loaders};\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/data-loader-manager.js","//@flow\n\nimport RequestBuilder from '../../request-builder'\nimport BaseEntryService from '../services/base-entry-service'\nimport MetaDataService from '../services/meta-data-service'\nimport Configuration from '../config'\nimport KalturaPlaybackContext from '../response-types/kaltura-playback-context'\nimport KalturaMetadataListResponse from '../response-types/kaltura-metadata-list-response'\nimport KalturaBaseEntryListResponse from '../response-types/kaltura-base-entry-list-response'\n\nconst config = Configuration.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class MediaEntryLoader implements ILoader {\n static get name(): string {\n return \"media\";\n }\n\n _entryId: string;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n let mediaEntryResponse: KalturaBaseEntryListResponse = new KalturaBaseEntryListResponse(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);\n this._response.metadataListResult = new KalturaMetadataListResponse(response[2].data);\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(BaseEntryService.list(config.beUrl, params.ks, params.entryId));\n requests.push(BaseEntryService.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(MetaDataService.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._entryId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/media-entry-loader.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\nexport default class BaseEntryService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static getPlaybackContext(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n let contextDataParams = {objectType: \"KalturaContextDataParams\", flavorTags: \"all\"};\n let params = {entryId: entryId, ks: ks, contextDataParams: contextDataParams};\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n static getEntryListReqParams(entryId: string, ks: string): any {\n let filterParams = {redirectFromEntryId: entryId};\n let responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return {ks: ks, filter: filterParams, responseProfile: responseProfileParams};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/base-entry-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\nexport default class MetaDataService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n let filter = {objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\"};\n let params = {filter: filter, ks: ks};\n request.params = params;\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/meta-data-service.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaAccessControlMessage from './kaltura-access-control-message'\nimport KalturaPlaybackSource from './kaltura-playback-source'\nimport KalturaRuleAction from './kaltura-rule-action'\nimport KalturaFlavorAsset from './kaltura-flavor-asset'\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nexport default class KalturaPlaybackContext extends ServiceResult {\n /**\n * @member - The playback sources\n * @type {Array}\n */\n sources: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n actions: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n messages: Array = [];\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n flavorAssets: Array = [];\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n constructor(response: Object) {\n super(response);\n if (!this.hasError) {\n\n let messages = response.messages;\n if (messages) {\n messages.map(message => this.messages.push(new KalturaAccessControlMessage(message)));\n }\n\n let actions = response.actions;\n if (actions) {\n actions.map(action => this.actions.push(new KalturaRuleAction(action)));\n }\n\n let sources = response.sources;\n if (sources) {\n sources.map(source => this.sources.push(new KalturaPlaybackSource(source)));\n }\n\n let flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(flavor => this.flavorAssets.push(new KalturaFlavorAsset(flavor)));\n }\n }\n\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-context.js","//@flow\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nexport default class KalturaAccessControlMessage {\n /**\n * @member - The access control message\n * @type {string}\n */\n message: string;\n /**\n * @member - The access control message code\n * @@type {string}\n */\n code: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n this.message = data.message;\n this.code = data.code\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-access-control-message.js","//@flow\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nexport default class KalturaRuleAction {\n /**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n type: KalturaRuleActionType;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.type = data.type;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-rule-action.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMediaEntry from './kaltura-media-entry'\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nexport default class KalturaBaseEntryListResponse extends ServiceResult {\n /**\n * @member - The total count\n * @type {number}\n */\n totalCount: number;\n /**\n * @member - The entries\n * @type {Array}\n */\n entries: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.entries = [];\n responseObj.objects.map(entry => this.entries.push(new KalturaMediaEntry(entry)));\n }\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","//@flow\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nexport default class KalturaMediaEntry {\n /**\n * @member - The entry id\n * @type {string}\n */\n id: string;\n /**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\n name: string;\n /**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n dataUrl: string;\n /**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n flavorParamsIds: string;\n /**\n * @member - The entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n type: EntryType;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n entryType: MediaType;\n\n /**\n * @constructor\n * @param {Object} entry The json response\n */\n constructor(entry: Object) {\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n }\n}\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-media-entry.js","//@flow\nimport SessionService from '../services/session-service'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class SessionLoader implements ILoader {\n static get name(): string {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n _partnerId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.ks = response[0].data.ks;\n }\n\n get response(): any {\n return this._response.ks;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(SessionService.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._partnerId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/session-loader.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\nexport default class SessionService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static anonymousSession(baseUrl: string, partnerId: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = {widgetId: \"_\" + partnerId};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/session-service.js","//@flow\nimport UiConfService from '../services/ui-conf-service'\nimport KalturaUiConfResponse from '../response-types/kaltura-ui-conf-response'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n\nexport default class UiConfigLoader implements ILoader {\n static get name(): string {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.uiConf = new KalturaUiConfResponse(response[0].data);\n }\n\n get response(): any {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null)\n try {\n return JSON.parse(this._response.uiConf.config).plugins;\n }\n catch (err) {\n return null;\n }\n else\n return null;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(UiConfService.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._uiConfId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/ui-config-loader.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\nexport default class UiConfService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static get(baseUrl: string, ks: string, uiConfID: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n let responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = {id: uiConfID, responseProfile: responseProfileParams, ks: ks};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ui-conf-service.js","//@flow\nimport ServiceResult from '../../base-service-result'\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nexport default class KalturaUiConfResponse extends ServiceResult {\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n name: string;\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n description: string;\n objTypeAsString: string;\n width: number;\n height: number;\n htmlParams: string;\n swfUrl: string;\n confFilePath: string;\n confFile: string;\n confFileFeatures: string;\n name: string;\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n config: string;\n confVars: string;\n useCdn: boolean;\n tags: string;\n swfUrlVersion: string;\n created: Date;\n updated: Date;\n html5Url: string;\n version: string;\n partnerTags: string;\n objType: UIConfType;\n creationMode: UIConfCreationMode;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n super(data);\n if (!this.hasError) {\n this.name = data.name;\n\n this.description = data.description;\n this.objTypeAsString = data.objTypeAsString;\n this.width = data.width;\n this.height = data.height;\n this.htmlParams = data.htmlParams;\n this.swfUrl = data.swfUrl;\n this.confFilePath = data.confFilePath;\n this.confFile = data.confFile;\n this.confFileFeatures = data.confFileFeatures;\n this.config = data.config;\n this.confVars = data.confVars;\n this.useCdn = data.useCdn;\n this.tags = data.tags;\n this.swfUrlVersion = data.swfUrlVersion;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.html5Url = data.description;\n this.version = data.description;\n this.partnerTags = data.description;\n this.objType = data.description;\n this.creationMode = data.description;\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-ui-conf-response.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/ovpProvider.min.js b/dist/ovpProvider.min.js index 6eaea013..90c52ad5 100644 --- a/dist/ovpProvider.min.js +++ b/dist/ovpProvider.min.js @@ -1,7 +1,7 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PlaykitJsProviders=t():e.PlaykitJsProviders=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=17)}([function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),this.headers=t,this.headers.set("Content-Type","application/json")}return a(e,[{key:"getUrl",value:function(){if(!this.baseUrl)throw new Error("baseUrl is mandatory for request builder");return this.baseUrl+"/service/"+this.service+(this.action?"/action/"+this.action:"")}},{key:"doHttpRequest",value:function(){var e=this,t=new XMLHttpRequest;return new Promise(function(n,r){t.onreadystatechange=function(){if(4===t.readyState)if(200===t.status){var e=JSON.parse(t.responseText);e&&"object"===(void 0===e?"undefined":o(e))&&e.code&&e.message?r(e):n(e)}else r(t.responseText)},t.open(e.method,e.getUrl()),e.headers.forEach(function(e,n){t.setRequestHeader(n,e)}),t.send(e.params)})}}]),e}();t.default=i},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n.")})})}}]),t}(l.default);t.default=v;var b=t.MultiRequestResult=function e(t){var n=this;a(this,e),this.results=[],this.success=!0,t.forEach(function(e){var t=new p.default(e);if(n.results.push(t),t.hasError)return y.error("Service returned an error with error code: "+t.error.code+" and message: "+t.error.message+"."),void(n.success=!1)})}},function(e,t,n){var r,o;/*! +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PlaykitJsProviders=t():e.PlaykitJsProviders=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=15)}([function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),this.headers=t,this.headers.set("Content-Type","application/json")}return a(e,[{key:"getUrl",value:function(){if(!this.baseUrl)throw new Error("baseUrl is mandatory for request builder");return this.baseUrl+"/service/"+this.service+(this.action?"/action/"+this.action:"")}},{key:"doHttpRequest",value:function(){var e=this,t=new XMLHttpRequest;return new Promise(function(n,r){t.onreadystatechange=function(){if(4===t.readyState)if(200===t.status){var e=JSON.parse(t.responseText);e&&"object"===(void 0===e?"undefined":o(e))&&e.code&&e.message?r(e):n(e)}else r(t.responseText)},t.open(e.method,e.getUrl()),e.headers.forEach(function(e,n){t.setRequestHeader(n,e)}),t.send(e.params)})}}]),e}();t.default=i},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n.")})})}}]),t}(f.default);t.default=v;var b=t.MultiRequestResult=function e(t){var n=this;a(this,e),this.results=[],this.success=!0,t.forEach(function(e){var t=new d.default(e);if(n.results.push(t),t.hasError)return y.error("Service returned an error with error code: "+t.error.code+" and message: "+t.error.message+"."),void(n.success=!1)})}},function(e,t,n){var r,o;/*! * js-logger - http://github.com/jonnyreeves/js-logger * Jonny Reeves, http://jonnyreeves.co.uk/ * js-logger may be freely distributed under the MIT license. */ -!function(a){"use strict";var i={};i.VERSION="1.3.0";var u,s={},c=function(e,t){return function(){return t.apply(e,arguments)}},l=function(){var e,t,n=arguments,r=n[0];for(t=1;t=t.value},debug:function(){this.invoke(i.DEBUG,arguments)},info:function(){this.invoke(i.INFO,arguments)},warn:function(){this.invoke(i.WARN,arguments)},error:function(){this.invoke(i.ERROR,arguments)},time:function(e){"string"==typeof e&&e.length>0&&this.invoke(i.TIME,[e,"start"])},timeEnd:function(e){"string"==typeof e&&e.length>0&&this.invoke(i.TIME,[e,"end"])},invoke:function(e,t){u&&this.enabledFor(e)&&u(t,l({level:e},this.context))}};var d=new p({filterLevel:i.OFF});!function(){var e=i;e.enabledFor=c(d,d.enabledFor),e.debug=c(d,d.debug),e.time=c(d,d.time),e.timeEnd=c(d,d.timeEnd),e.info=c(d,d.info),e.warn=c(d,d.warn),e.error=c(d,d.error),e.log=e.info}(),i.setHandler=function(e){u=e},i.setLevel=function(e){d.setLevel(e);for(var t in s)s.hasOwnProperty(t)&&s[t].setLevel(e)},i.get=function(e){return s[e]||(s[e]=new p(l({name:e},d.context)))},i.createDefaultHandler=function(e){e=e||{},e.formatter=e.formatter||function(e,t){t.name&&e.unshift("["+t.name+"]")};var t={},n=function(e,t){Function.prototype.apply.call(e,console,t)};return"undefined"==typeof console?function(){}:function(r,o){r=Array.prototype.slice.call(r);var a,u=console.log;o.level===i.TIME?(a=(o.name?"["+o.name+"] ":"")+r[0],"start"===r[1]?console.time?console.time(a):t[a]=(new Date).getTime():console.timeEnd?console.timeEnd(a):n(u,[a+": "+((new Date).getTime()-t[a])+"ms"])):(o.level===i.WARN&&console.warn?u=console.warn:o.level===i.ERROR&&console.error?u=console.error:o.level===i.INFO&&console.info&&(u=console.info),e.formatter(r,o),n(u,r))}},i.useDefaults=function(e){i.setLevel(e&&e.defaultLevel||i.DEBUG),i.setHandler(i.createDefaultHandler(e))},r=i,void 0!==(o="function"==typeof r?r.call(t,n,t,e):r)&&(e.exports=o)}()},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0}},{key:"hasFlavorIds",value:function(){return!!this.flavorIds&&this.flavorIds.length>0}},{key:"getProtocol",value:function(e){var t="";if(this.protocols&&this.protocols.length>0){this.protocols.split(",").forEach(function(n){n==e&&(t=n)})}else if("http"==e)return e;return t}}]),e}();t.default=u},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){var n=!0,r=!1,o=void 0;try{for(var a,i=Object.getOwnPropertyNames(t)[Symbol.iterator]();!(n=(a=i.next()).done);n=!0){var u=a.value,s=Object.getOwnPropertyDescriptor(t,u);Object.defineProperty(e,u,s)}}catch(e){r=!0,o=e}finally{try{!n&&i.return&&i.return()}finally{if(r)throw o}}return e}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n0&&(n.metas=[],e.objects.map(function(e){return n.metas.push(new l.default(e))}))),n}return i(t,e),t}(s.default);t.default=f},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.MediaFormat=void 0;var i=n(10);(t.MediaFormat=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return a(t,e),t}(i.Enum)).initEnum({dash:{get mimeType(){return"application/dash+xml"},get pathExt(){return"mpd"}},hls:{get mimeType(){return"application/x-mpegURL"},get pathExt(){return"m3u8"}},wvm:{get mimeType(){return"video/wvm"},get pathExt(){return"wvm"}},mp4:{get mimeType(){return"video/mp4"},get pathExt(){return"mp4"}},mp3:{get mimeType(){return"audio/mpeg"},get pathExt(){return"mp3"}}})},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(2),a=n(8),i=(function(e){e&&e.__esModule}(a),function e(){r(this,e),this.metaData=new Map,this.type=o.MediaEntryType.Unknown});t.default=i},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(16),a=(function(e){e&&e.__esModule}(o),function e(){r(this,e)});t.default=a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t,n){r(this,e),this.licenseUrl=t,this.scheme=n});t.default=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.OvpProvider=void 0;var a=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"",r=arguments[2];o(this,e),this.partnerID=t,this.ks=n,this._isAnonymous=!this.ks,m.default.set(r)}return a(e,[{key:"getConfig",value:function(e,t){var n=this;return null!=t&&(this._uiConfId=t),this._dataLoader=new f.default(this.partnerID,this.ks),new Promise(function(r,o){if(n.validateParams(e,t)){var a=n.ks;n._isAnonymous&&(a="{1:result:ks}",n._dataLoader.add(y.default,{partnerId:n.partnerID})),n._dataLoader.add(d.default,{entryId:e,ks:a}),n._dataLoader.add(b.default,{uiConfId:t,ks:a}),n._dataLoader.fetchData().then(function(e){r(n.parseDataFromResponse(e))},function(e){o(e)})}else o({success:!1,data:"Missing mandatory parameter"})})}},{key:"parseDataFromResponse",value:function(e){w.debug("Data parsing started");var t={id:"",session:{partnerID:this.partnerID,uiConfID:this._uiConfId},sources:new g.default,duration:0,type:"Unknown",metadata:{},plugins:{}};if(null!=e){if(e.has(y.default.name)){var n=e.get(y.default.name);null!=n&&null!=n.response&&(this.ks=n.response,this._isAnonymous=!this.ks,t.session.ks=this.ks)}if(e.has(b.default.name)){var r=e.get(b.default.name),o={};null!=r&&(o=r.response),t.plugins=o}if(e.has(d.default.name)){var a=e.get(d.default.name);if(null!=a&&null!=a.response){var i=c.default.getMediaEntry(this.ks,this.partnerID,this._uiConfId,a.response);t.id=i.id,t.sources=i.sources,t.duration=i.duration,t.type=i.type.name,t.metadata=i.metaData}}}return w.debug("Data parsing finished",t),t}},{key:"validateParams",value:function(e,t){return!!e||!!t}}]),e}();t.default=P},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&(function(){t.filter(function(t){return!e._isProgressiveSource(t)}).forEach(s)}(),function(){var s=t.find(e._isProgressiveSource);u.progressive=e._parseProgressiveSources(s,i.flavorAssets,n,r,o,a.id)}()),u}},{key:"_parseAdaptiveSource",value:function(e,t,n,r,o,a){var i=new P.default;if(e){var u="",s=R.get(e.format);if(e.hasFlavorIds()){var c="";s?(c=s.pathExt,i.mimetype=s.mimeType):t&&t.length>0&&(c=t[0].fileExt),u=l.default.build({entryId:a,flavorIds:e.flavorIds,format:e.format,ks:n,partnerId:r,uiConfId:o,extension:c,protocol:e.getProtocol(this._getBaseProtocol())})}else u=e.url;if(""==u)return M.error("failed to create play url from source, discarding source: ("+a+"_"+e.deliveryProfileId+"), "+e.format+"."),i;if(i.url=u,i.id=a+"_"+e.deliveryProfileId+","+e.format,e.hasDrmData()){var f=[];e.drm.forEach(function(e){f.push(new g.default(e.licenseURL,e.scheme))}),i.drmData=f}}return i}},{key:"_parseProgressiveSources",value:function(e,t,n,r,o,a){var i=[];if(e){var u=e.getProtocol(this._getBaseProtocol()),s=e.format,c=e.deliveryProfileId+","+e.format;t.map(function(e){if(e.height&&e.width){var t=new P.default;t.id=e.id+c,t.mimetype="video/mp4",t.height=e.height,t.width=e.width,t.bandwidth=1024*e.bitrate,t.label=e.label||e.language,t.url=l.default.build({entryId:a,flavorIds:e.id,format:s,ks:n,partnerId:r,uiConfId:o,extension:"mp4",protocol:u}),i.push(t)}})}return i}},{key:"_isProgressiveSource",value:function(e){var t=R.get(e.format);return!!t&&"mp4"===t.name}},{key:"_parseMetaData",value:function(e){var t={};return e&&e.metas&&e.metas.length>0&&e.metas.forEach(function(e){var n=void 0,r=new DOMParser;e.xml=e.xml.replace(/\r?\n|\r/g,""),e.xml=e.xml.replace(/>\s*/g,">"),e.xml=e.xml.replace(/>\s*/g,">"),n=r.parseFromString(e.xml,"text/xml");var o=p.default.xmlToJson(n);Object.keys(o.metadata).forEach(function(e){t[e]=o.metadata[e]["#text"]})}),t}},{key:"_getBaseProtocol",value:function(){var e=T.baseUrl.split("/");return e&&e.length>0?e[0].substring(0,e[0].length-1):"http"}}]),e}();t.default=C},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.scheme=t.scheme,this.licenseURL=t.licenseURL});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.metadataProfileId=t.metadataProfileId,this.metadataProfileVersion=t.metadataProfileVersion,this.metadataProfileId=t.metadataProfileId,this.metadataObjectType=t.metadataObjectType,this.objectId=t.objectId,this.version=t.version,this.created=new Date(0),this.created.setUTCSeconds(t.createdAt),this.updated=new Date(0),this.updated.setUTCSeconds(t.updatedAt),this.status=t.status,this.xml=t.xml});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0){t["@attributes"]={};for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"";o(this,e),this._loaders=new Map,this._multiRequest=u.default.getMultirequest(n,t)}return a(e,[{key:"add",value:function(t,n){var r=this,o=new t(n);if(o.isValid()){this._loaders.set(t.name,o);var a=this._multiRequest.requests.length,i=o.requests;i.forEach(function(e){r._multiRequest.add(e)});var u=Array.from(new Array(i.length),function(e,t){return t+a});e._loadersResponseMap.set(t.name,u)}}},{key:"fetchData",value:function(){var e=this;return new Promise(function(t,n){e._multiRequest.execute().then(function(r){if(e._multiResponse=r,r.success){var o=e.prepareData(r);o.success?t(e._loaders):n({success:!1,data:o.error})}else n(r)},function(e){n(e)})})}},{key:"prepareData",value:function(t){return this._loaders.forEach(function(n,r){var o=e._loadersResponseMap.get(r);try{null!=o&&(n.response=t.results.slice(o[0],o[o.length-1]+1))}catch(e){return{success:!1,error:e}}}),{success:!0,data:this._loaders}}}]),e}());c._loadersResponseMap=new Map,t.default=c},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&(n.entries=[],e.objects.map(function(e){return n.entries.push(new l.default(e))}))),n}return i(t,e),t}(s.default);t.default=f},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(2),function e(t){r(this,e),this.id=t.id,this.name=t.name,this.dataUrl=t.dataUrl,this.type=t.type,this.entryType=t.mediaType,this.flavorParamsIds=t.flavorParamsIds,this.duration=t.duration});t.default=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n=t.value},debug:function(){this.invoke(i.DEBUG,arguments)},info:function(){this.invoke(i.INFO,arguments)},warn:function(){this.invoke(i.WARN,arguments)},error:function(){this.invoke(i.ERROR,arguments)},time:function(e){"string"==typeof e&&e.length>0&&this.invoke(i.TIME,[e,"start"])},timeEnd:function(e){"string"==typeof e&&e.length>0&&this.invoke(i.TIME,[e,"end"])},invoke:function(e,t){u&&this.enabledFor(e)&&u(t,f({level:e},this.context))}};var p=new d({filterLevel:i.OFF});!function(){var e=i;e.enabledFor=l(p,p.enabledFor),e.debug=l(p,p.debug),e.time=l(p,p.time),e.timeEnd=l(p,p.timeEnd),e.info=l(p,p.info),e.warn=l(p,p.warn),e.error=l(p,p.error),e.log=e.info}(),i.setHandler=function(e){u=e},i.setLevel=function(e){p.setLevel(e);for(var t in s)s.hasOwnProperty(t)&&s[t].setLevel(e)},i.get=function(e){return s[e]||(s[e]=new d(f({name:e},p.context)))},i.createDefaultHandler=function(e){e=e||{},e.formatter=e.formatter||function(e,t){t.name&&e.unshift("["+t.name+"]")};var t={},n=function(e,t){Function.prototype.apply.call(e,console,t)};return"undefined"==typeof console?function(){}:function(r,o){r=Array.prototype.slice.call(r);var a,u=console.log;o.level===i.TIME?(a=(o.name?"["+o.name+"] ":"")+r[0],"start"===r[1]?console.time?console.time(a):t[a]=(new Date).getTime():console.timeEnd?console.timeEnd(a):n(u,[a+": "+((new Date).getTime()-t[a])+"ms"])):(o.level===i.WARN&&console.warn?u=console.warn:o.level===i.ERROR&&console.error?u=console.error:o.level===i.INFO&&console.info&&(u=console.info),e.formatter(r,o),n(u,r))}},i.useDefaults=function(e){i.setLevel(e&&e.defaultLevel||i.DEBUG),i.setHandler(i.createDefaultHandler(e))},r=i,void 0!==(o="function"==typeof r?r.call(t,n,t,e):r)&&(e.exports=o)}()},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0}},{key:"hasFlavorIds",value:function(){return!!this.flavorIds&&this.flavorIds.length>0}},{key:"getProtocol",value:function(e){var t="";if(this.protocols&&this.protocols.length>0){this.protocols.split(",").forEach(function(n){n==e&&(t=n)})}else if("http"==e)return e;return t}}]),e}();t.default=u},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(5),function e(t){r(this,e),this.id=t.id,this.flavorParamsId=t.flavorParamsId,this.fileExt=t.fileExt,this.bitrate=t.bitrate,this.width=t.width,this.height=t.height,this.id=t.id,this.frameRate=t.frameRate,this.isOriginal=t.isOriginal,this.isWeb=t.isWeb,this.containerFormat=t.containerFormat,this.videoCodecId=t.videoCodecId,this.status=t.status,this.language=t.language,this.label=t.label});t.default=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var u=n(2),s=r(u),l=n(18),f=r(l),c=function(e){function t(e){o(this,t);var n=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.hasError||(n.totalCount=e.totalCount,n.totalCount>0&&(n.metas=[],e.objects.map(function(e){return n.metas.push(new f.default(e))}))),n}return i(t,e),t}(s.default);t.default=c},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(5),a=n(8),i=(function(e){e&&e.__esModule}(a),function e(){r(this,e),this.metaData=new Map,this.type=o.MediaEntryTypes.Unknown});t.default=i},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(14),a=(function(e){e&&e.__esModule}(o),function e(){r(this,e)});t.default=a},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(5),function e(t,n){r(this,e),this.licenseUrl=t,this.scheme=n});t.default=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0}),t.OvpProvider=void 0;var a=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"",r=arguments[2];o(this,e),this.partnerID=t,this.ks=n,this._isAnonymous=!this.ks,_.default.set(r)}return a(e,[{key:"getConfig",value:function(e,t){var n=this;return null!=t&&(this._uiConfId=t),this._dataLoader=new c.default(this.partnerID,this.ks),new Promise(function(r,o){if(n.validateParams(e,t)){var a=n.ks;n._isAnonymous&&(a="{1:result:ks}",n._dataLoader.add(y.default,{partnerId:n.partnerID})),n._dataLoader.add(p.default,{entryId:e,ks:a}),n._dataLoader.add(b.default,{uiConfId:t,ks:a}),n._dataLoader.fetchData().then(function(e){r(n.parseDataFromResponse(e))},function(e){o(e)})}else o({success:!1,data:"Missing mandatory parameter"})})}},{key:"parseDataFromResponse",value:function(e){w.debug("Data parsing started");var t={id:"",session:{partnerID:this.partnerID,uiConfID:this._uiConfId},sources:new g.default,duration:0,type:"Unknown",metadata:{},plugins:{}};if(null!=e){if(e.has(y.default.name)){var n=e.get(y.default.name);null!=n&&null!=n.response&&(this.ks=n.response,this._isAnonymous=!this.ks,t.session.ks=this.ks)}if(e.has(b.default.name)){var r=e.get(b.default.name),o={};null!=r&&(o=r.response),t.plugins=o}if(e.has(p.default.name)){var a=e.get(p.default.name);if(null!=a&&null!=a.response){var i=l.default.getMediaEntry(this.ks,this.partnerID,this._uiConfId,a.response);t.id=i.id,t.sources=i.sources,t.duration=i.duration,t.type=i.type,t.metadata=i.metaData}}}return w.debug("Data parsing finished",t),t}},{key:"validateParams",value:function(e,t){return!!e||!!t}}]),e}();t.default=P},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&(function(){t.filter(function(t){return!e._isProgressiveSource(t)}).forEach(s)}(),function(){var s=t.find(e._isProgressiveSource);u.progressive=e._parseProgressiveSources(s,i.flavorAssets,n,r,o,a.id)}()),u}},{key:"_parseAdaptiveSource",value:function(e,t,n,r,o,a){var i=new P.default;if(e){var u="",s=C.get(e.format);if(e.hasFlavorIds()){var l="";s?(l=s.pathExt,i.mimetype=s.mimeType):t&&t.length>0&&(l=t[0].fileExt),u=f.default.build({entryId:a,flavorIds:e.flavorIds,format:e.format,ks:n,partnerId:r,uiConfId:o,extension:l,protocol:e.getProtocol(this._getBaseProtocol())})}else u=e.url;if(""==u)return R.error("failed to create play url from source, discarding source: ("+a+"_"+e.deliveryProfileId+"), "+e.format+"."),i;if(i.url=u,i.id=a+"_"+e.deliveryProfileId+","+e.format,e.hasDrmData()){var c=[];e.drm.forEach(function(e){c.push(new g.default(e.licenseURL,e.scheme))}),i.drmData=c}}return i}},{key:"_parseProgressiveSources",value:function(e,t,n,r,o,a){var i=[];if(e){var u=e.getProtocol(this._getBaseProtocol()),s=e.format,l=e.deliveryProfileId+","+e.format;t.map(function(e){if(e.height&&e.width){var t=new P.default;t.id=e.id+l,t.mimetype="video/mp4",t.height=e.height,t.width=e.width,t.bandwidth=1024*e.bitrate,t.label=e.label||e.language,t.url=f.default.build({entryId:a,flavorIds:e.id,format:s,ks:n,partnerId:r,uiConfId:o,extension:"mp4",protocol:u}),i.push(t)}})}return i}},{key:"_isProgressiveSource",value:function(e){var t=C.get(e.format);return!!t&&"mp4"===t.name}},{key:"_parseMetaData",value:function(e){var t={};return e&&e.metas&&e.metas.length>0&&e.metas.forEach(function(e){var n=void 0,r=new DOMParser;e.xml=e.xml.replace(/\r?\n|\r/g,""),e.xml=e.xml.replace(/>\s*/g,">"),e.xml=e.xml.replace(/>\s*/g,">"),n=r.parseFromString(e.xml,"text/xml");var o=d.default.xmlToJson(n);Object.keys(o.metadata).forEach(function(e){t[e]=o.metadata[e]["#text"]})}),t}},{key:"_getBaseProtocol",value:function(){var e=M.baseUrl.split("/");return e&&e.length>0?e[0].substring(0,e[0].length-1):"http"}}]),e}();t.default=j},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=(n(5),function e(t){r(this,e),this.scheme=t.scheme,this.licenseURL=t.licenseURL});t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function e(t){r(this,e),this.id=t.id,this.metadataProfileId=t.metadataProfileId,this.metadataProfileVersion=t.metadataProfileVersion,this.metadataProfileId=t.metadataProfileId,this.metadataObjectType=t.metadataObjectType,this.objectId=t.objectId,this.version=t.version,this.created=new Date(0),this.created.setUTCSeconds(t.createdAt),this.updated=new Date(0),this.updated.setUTCSeconds(t.updatedAt),this.status=t.status,this.xml=t.xml};t.default=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n0){t["@attributes"]={};for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"";o(this,e),this._loaders=new Map,this._multiRequest=u.default.getMultirequest(n,t)}return a(e,[{key:"add",value:function(t,n){var r=this,o=new t(n);if(o.isValid()){this._loaders.set(t.name,o);var a=this._multiRequest.requests.length,i=o.requests;i.forEach(function(e){r._multiRequest.add(e)});var u=Array.from(new Array(i.length),function(e,t){return t+a});e._loadersResponseMap.set(t.name,u)}}},{key:"fetchData",value:function(){var e=this;return new Promise(function(t,n){e._multiRequest.execute().then(function(r){if(e._multiResponse=r,r.success){var o=e.prepareData(r);o.success?t(e._loaders):n({success:!1,data:o.error})}else n(r)},function(e){n(e)})})}},{key:"prepareData",value:function(t){return this._loaders.forEach(function(n,r){var o=e._loadersResponseMap.get(r);try{null!=o&&(n.response=t.results.slice(o[0],o[o.length-1]+1))}catch(e){return{success:!1,error:e}}}),{success:!0,data:this._loaders}}}]),e}());l._loadersResponseMap=new Map,t.default=l},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n0&&(n.entries=[],e.objects.map(function(e){return n.entries.push(new f.default(e))}))),n}return i(t,e),t}(s.default);t.default=c},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function e(t){r(this,e),this.id=t.id,this.name=t.name,this.dataUrl=t.dataUrl,this.type=t.type,this.entryType=t.mediaType,this.flavorParamsIds=t.flavorParamsIds,this.duration=t.duration};t.default=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n} headers The request headers\n */\n\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n\n /**\n * @member - Service headers\n * @type {Map}\n */\n\n /**\n * @member - Service action\n * @type {string}\n */\n function RequestBuilder() {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n _classCallCheck(this, RequestBuilder);\n\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n\n /**\n * @member - Service tag\n * @type {string}\n */\n\n /**\n * @member - Service base url\n * @type {Map}\n */\n\n /**\n * @member - Service params\n * @type {any}\n */\n\n\n /**\n * @member - Service name\n * @type {string}\n */\n\n\n _createClass(RequestBuilder, [{\n key: \"getUrl\",\n value: function getUrl() {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n var url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n\n }, {\n key: \"doHttpRequest\",\n value: function doHttpRequest() {\n var _this = this;\n\n var request = new XMLHttpRequest();\n return new Promise(function (resolve, reject) {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n var jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && (typeof jsonResponse === \"undefined\" ? \"undefined\" : _typeof(jsonResponse)) === 'object' && jsonResponse.code && jsonResponse.message) reject(jsonResponse);else resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(_this.method, _this.getUrl());\n _this.headers.forEach(function (value, key) {\n request.setRequestHeader(key, value);\n });\n request.send(_this.params);\n });\n }\n }]);\n\n return RequestBuilder;\n}();\n\nexports.default = RequestBuilder;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nvar Configuration = function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n }\n\n _createClass(Configuration, null, [{\n key: \"set\",\n value: function set(clientConfig) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n return defaultConfig;\n }\n }]);\n\n return Configuration;\n}();\n\nexports.default = Configuration;\nexports.Configuration = Configuration;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UIConfCreationMode = exports.UIConfType = exports.MediaEntryType = exports.MediaType = exports.EntryType = exports.EntryModerationStatus = exports.EntryStatus = exports.MetadataStatus = exports.MetadataObjectType = exports.Status = exports.KalturaRuleActionType = exports.Scheme = undefined;\n\nvar _enumify = __webpack_require__(10);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Scheme = exports.Scheme = function (_Enum) {\n _inherits(Scheme, _Enum);\n\n function Scheme() {\n _classCallCheck(this, Scheme);\n\n return _possibleConstructorReturn(this, (Scheme.__proto__ || Object.getPrototypeOf(Scheme)).apply(this, arguments));\n }\n\n return Scheme;\n}(_enumify.Enum);\n\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\nvar KalturaRuleActionType = exports.KalturaRuleActionType = function (_Enum2) {\n _inherits(KalturaRuleActionType, _Enum2);\n\n function KalturaRuleActionType() {\n _classCallCheck(this, KalturaRuleActionType);\n\n return _possibleConstructorReturn(this, (KalturaRuleActionType.__proto__ || Object.getPrototypeOf(KalturaRuleActionType)).apply(this, arguments));\n }\n\n return KalturaRuleActionType;\n}(_enumify.Enum);\n\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nvar Status = exports.Status = function (_Enum3) {\n _inherits(Status, _Enum3);\n\n function Status() {\n _classCallCheck(this, Status);\n\n return _possibleConstructorReturn(this, (Status.__proto__ || Object.getPrototypeOf(Status)).apply(this, arguments));\n }\n\n return Status;\n}(_enumify.Enum);\n\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nvar MetadataObjectType = exports.MetadataObjectType = function (_Enum4) {\n _inherits(MetadataObjectType, _Enum4);\n\n function MetadataObjectType() {\n _classCallCheck(this, MetadataObjectType);\n\n return _possibleConstructorReturn(this, (MetadataObjectType.__proto__ || Object.getPrototypeOf(MetadataObjectType)).apply(this, arguments));\n }\n\n return MetadataObjectType;\n}(_enumify.Enum);\n\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nvar MetadataStatus = exports.MetadataStatus = function (_Enum5) {\n _inherits(MetadataStatus, _Enum5);\n\n function MetadataStatus() {\n _classCallCheck(this, MetadataStatus);\n\n return _possibleConstructorReturn(this, (MetadataStatus.__proto__ || Object.getPrototypeOf(MetadataStatus)).apply(this, arguments));\n }\n\n return MetadataStatus;\n}(_enumify.Enum);\n\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\nvar EntryStatus = exports.EntryStatus = function (_Enum6) {\n _inherits(EntryStatus, _Enum6);\n\n function EntryStatus() {\n _classCallCheck(this, EntryStatus);\n\n return _possibleConstructorReturn(this, (EntryStatus.__proto__ || Object.getPrototypeOf(EntryStatus)).apply(this, arguments));\n }\n\n return EntryStatus;\n}(_enumify.Enum);\n\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nvar EntryModerationStatus = exports.EntryModerationStatus = function (_Enum7) {\n _inherits(EntryModerationStatus, _Enum7);\n\n function EntryModerationStatus() {\n _classCallCheck(this, EntryModerationStatus);\n\n return _possibleConstructorReturn(this, (EntryModerationStatus.__proto__ || Object.getPrototypeOf(EntryModerationStatus)).apply(this, arguments));\n }\n\n return EntryModerationStatus;\n}(_enumify.Enum);\n\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nvar EntryType = exports.EntryType = function (_Enum8) {\n _inherits(EntryType, _Enum8);\n\n function EntryType() {\n _classCallCheck(this, EntryType);\n\n return _possibleConstructorReturn(this, (EntryType.__proto__ || Object.getPrototypeOf(EntryType)).apply(this, arguments));\n }\n\n return EntryType;\n}(_enumify.Enum);\n\nEntryType.initEnum({\n AUTOMATIC: { value: -1 },\n EXTERNAL_MEDIA: { value: \"externalMedia.externalMedia\" },\n MEDIA_CLIP: { value: 1 },\n MIX: { value: 2 },\n PLAYLIST: { value: 5 },\n DATA: { value: 6 },\n LIVE_STREAM: { value: 7 },\n LIVE_CHANNEL: { value: 8 },\n DOCUMENT: { value: 10 }\n});\n\nvar MediaType = exports.MediaType = function (_Enum9) {\n _inherits(MediaType, _Enum9);\n\n function MediaType() {\n _classCallCheck(this, MediaType);\n\n return _possibleConstructorReturn(this, (MediaType.__proto__ || Object.getPrototypeOf(MediaType)).apply(this, arguments));\n }\n\n return MediaType;\n}(_enumify.Enum);\n\nMediaType.initEnum({\n VIDEO: { value: 1 },\n IMAGE: { value: 2 },\n AUDIO: { value: 5 },\n LIVE_STREAM_FLASH: { value: 201 },\n LIVE_STREAM_WINDOWS_MEDIA: { value: 202 },\n LIVE_STREAM_REAL_MEDIA: { value: 203 },\n LIVE_STREAM_QUICKTIME: { value: 204 }\n});\n\nvar MediaEntryType = exports.MediaEntryType = function (_Enum10) {\n _inherits(MediaEntryType, _Enum10);\n\n function MediaEntryType() {\n _classCallCheck(this, MediaEntryType);\n\n return _possibleConstructorReturn(this, (MediaEntryType.__proto__ || Object.getPrototypeOf(MediaEntryType)).apply(this, arguments));\n }\n\n return MediaEntryType;\n}(_enumify.Enum);\n\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nvar UIConfType = exports.UIConfType = function (_Enum11) {\n _inherits(UIConfType, _Enum11);\n\n function UIConfType() {\n _classCallCheck(this, UIConfType);\n\n return _possibleConstructorReturn(this, (UIConfType.__proto__ || Object.getPrototypeOf(UIConfType)).apply(this, arguments));\n }\n\n return UIConfType;\n}(_enumify.Enum);\n\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nvar UIConfCreationMode = exports.UIConfCreationMode = function (_Enum12) {\n _inherits(UIConfCreationMode, _Enum12);\n\n function UIConfCreationMode() {\n _classCallCheck(this, UIConfCreationMode);\n\n return _possibleConstructorReturn(this, (UIConfCreationMode.__proto__ || Object.getPrototypeOf(UIConfCreationMode)).apply(this, arguments));\n }\n\n return UIConfCreationMode;\n}(_enumify.Enum);\n\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base service result\n * @classdesc\n */\nvar ServiceResult =\n\n/**\n * @constructor\n * @param {Object} response - Service response\n */\n\n/**\n * @member - The service error\n * @type {ServiceError}\n */\n\n/**\n * @member - The service result data\n * @type {Object}\n */\nfunction ServiceResult(response) {\n _classCallCheck(this, ServiceResult);\n\n this.hasError = false;\n\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else {\n this.data = response;\n }\n}\n\n/**\n * @member - Is service returned an error\n * @type {boolean}\n */\n;\n\n/**\n * Service error\n * @classdesc\n */\n\n\nexports.default = ServiceResult;\n\nvar ServiceError =\n\n/**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n\n/**\n * @member - The error code\n * @type {string}\n */\nfunction ServiceError(code, message) {\n _classCallCheck(this, ServiceError);\n\n this.code = code;\n this.message = message;\n}\n/**\n * @member - The error message\n * @type {string}\n */\n;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\nvar SERVICE_NAME = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\n\nvar OvpService = function () {\n function OvpService() {\n _classCallCheck(this, OvpService);\n }\n\n _createClass(OvpService, null, [{\n key: 'getMultirequest',\n\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n value: function getMultirequest(ks, partnerId) {\n var ovpParams = config.serviceParams;\n Object.assign(ovpParams, { ks: ks });\n if (partnerId) {\n Object.assign(ovpParams, { partnerId: partnerId });\n }\n var multiReq = new _multiRequestBuilder2.default();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n }]);\n\n return OvpService;\n}();\n\nexports.default = OvpService;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOG_LEVEL = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jsLogger = __webpack_require__(7);\n\nvar JsLogger = _interopRequireWildcard(_jsLogger);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LoggerFactory = function () {\n function LoggerFactory(options) {\n _classCallCheck(this, LoggerFactory);\n\n JsLogger.useDefaults(options || {});\n }\n\n _createClass(LoggerFactory, [{\n key: \"get\",\n value: function get(name) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n }]);\n\n return LoggerFactory;\n}();\n\nvar Logger = new LoggerFactory({ defaultLevel: JsLogger.DEBUG });\nvar LOG_LEVEL = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexports.default = Logger;\nexports.LOG_LEVEL = LOG_LEVEL;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MultiRequestResult = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseServiceResult = __webpack_require__(3);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\n\nvar MultiRequestBuilder = function (_RequestBuilder) {\n _inherits(MultiRequestBuilder, _RequestBuilder);\n\n /**\n * @constructor\n */\n function MultiRequestBuilder() {\n _classCallCheck(this, MultiRequestBuilder);\n\n var _this = _possibleConstructorReturn(this, (MultiRequestBuilder.__proto__ || Object.getPrototypeOf(MultiRequestBuilder)).call(this));\n\n _this.requests = [];\n return _this;\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n\n\n _createClass(MultiRequestBuilder, [{\n key: 'add',\n value: function add(request) {\n this.requests.push(request);\n var requestParams = {};\n var serviceDef = { service: request.service, action: request.action };\n Object.assign(requestParams, _defineProperty({}, this.requests.length, Object.assign(serviceDef, request.params)));\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n\n }, {\n key: 'execute',\n value: function execute() {\n var _this2 = this;\n\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n logger.error('' + err.message);\n }\n return new Promise(function (resolve, reject) {\n _this2.doHttpRequest().then(function (data) {\n resolve(new MultiRequestResult(data));\n }, function (err) {\n var errorText = 'Error on multiRequest execution, error <' + err + '>.';\n reject(errorText);\n });\n });\n }\n }]);\n\n return MultiRequestBuilder;\n}(_requestBuilder2.default);\n\n/**\n * Multi Request result object\n * @classdesc\n */\n\n\nexports.default = MultiRequestBuilder;\n\nvar MultiRequestResult =\n\n/**\n * @constructor\n * @param {Object} response data\n */\n\n\n/**\n * @member - Is success\n * @type {boolean}\n */\nexports.MultiRequestResult = function MultiRequestResult(response) {\n var _this3 = this;\n\n _classCallCheck(this, MultiRequestResult);\n\n this.results = [];\n\n this.success = true;\n response.forEach(function (result) {\n var serviceResult = new _baseServiceResult2.default(result);\n _this3.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error('Service returned an error with error code: ' + serviceResult.error.code + ' and message: ' + serviceResult.error.message + '.');\n _this3.success = false;\n return;\n }\n });\n}\n/**\n * @member - Multi request response data\n * @type {Object}\n */\n;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _mediaSource = __webpack_require__(15);\n\nvar _mediaSource2 = _interopRequireDefault(_mediaSource);\n\nvar _mediaFormat = __webpack_require__(13);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nvar MediaSources = function () {\n\n /**\n * @constructor\n */\n\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n function MediaSources() {\n _classCallCheck(this, MediaSources);\n\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n\n\n _createClass(MediaSources, [{\n key: 'map',\n value: function map(source, mediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n }]);\n\n return MediaSources;\n}();\n\nexports.default = MediaSources;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _kalturaDrmPlaybackPluginData = __webpack_require__(19);\n\nvar _kalturaDrmPlaybackPluginData2 = _interopRequireDefault(_kalturaDrmPlaybackPluginData);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nvar KalturaPlaybackSource = function () {\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n\n /**\n * @member - The source URL\n * @type {string}\n */\n\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n function KalturaPlaybackSource(source) {\n var _this = this;\n\n _classCallCheck(this, KalturaPlaybackSource);\n\n this.drm = [];\n\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(function (drm) {\n return _this.drm.push(new _kalturaDrmPlaybackPluginData2.default(drm));\n });\n }\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n\n\n _createClass(KalturaPlaybackSource, [{\n key: \"hasDrmData\",\n value: function hasDrmData() {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n\n }, {\n key: \"hasFlavorIds\",\n value: function hasFlavorIds() {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n\n }, {\n key: \"getProtocol\",\n value: function getProtocol(protocol) {\n var returnValue = \"\";\n if (this.protocols && this.protocols.length > 0) {\n var protocolsArr = this.protocols.split(\",\");\n protocolsArr.forEach(function (p) {\n if (p == protocol) {\n returnValue = p;\n }\n });\n } else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n }]);\n\n return KalturaPlaybackSource;\n}();\n\nexports.default = KalturaPlaybackSource;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nvar KalturaFlavorAsset =\n\n/**\n * @constructor\n * @param {Object} data The json response\n */\n\n/**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n\n/**\n *@member - The video codec\n * @type {boolean}\n */\n\n/**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n\n/**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member -The file extension\n * @type {string}\n */\n\n/**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\nfunction KalturaFlavorAsset(data) {\n _classCallCheck(this, KalturaFlavorAsset);\n\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n}\n/**\n * @member - The label of the flavor asset\n * @type {string}\n */\n\n/**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n\n/**\n * @member - The container format\n * @type {boolean}\n */\n\n/**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n\n/**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n\n/**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n;\n\nexports.default = KalturaFlavorAsset;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(3);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaMetadata = __webpack_require__(20);\n\nvar _kalturaMetadata2 = _interopRequireDefault(_kalturaMetadata);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nvar KalturaMetadataListResponse = function (_ServiceResult) {\n _inherits(KalturaMetadataListResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n function KalturaMetadataListResponse(responseObj) {\n _classCallCheck(this, KalturaMetadataListResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaMetadataListResponse.__proto__ || Object.getPrototypeOf(KalturaMetadataListResponse)).call(this, responseObj));\n\n if (!_this.hasError) {\n _this.totalCount = responseObj.totalCount;\n if (_this.totalCount > 0) {\n _this.metas = [];\n responseObj.objects.map(function (meta) {\n return _this.metas.push(new _kalturaMetadata2.default(meta));\n });\n }\n }\n return _this;\n }\n /**\n * @member -The mata data array\n * @type {Array}\n */\n\n\n return KalturaMetadataListResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaMetadataListResponse;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MediaFormat = undefined;\n\nvar _enumify = __webpack_require__(10);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MediaFormat = exports.MediaFormat = function (_Enum) {\n _inherits(MediaFormat, _Enum);\n\n function MediaFormat() {\n _classCallCheck(this, MediaFormat);\n\n return _possibleConstructorReturn(this, (MediaFormat.__proto__ || Object.getPrototypeOf(MediaFormat)).apply(this, arguments));\n }\n\n return MediaFormat;\n}(_enumify.Enum);\n\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nvar _mediaSources = __webpack_require__(8);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Media entry\n * @classdesc\n */\nvar MediaEntry =\n\n/**\n * @constructor\n */\n\n/**\n * @member - entry type\n * @type {MediaEntryType}\n */\n\n/**\n * @member - entry sources\n * @type {MediaSources}\n */\nfunction MediaEntry() {\n _classCallCheck(this, MediaEntry);\n\n this.metaData = new Map();\n this.type = _enums.MediaEntryType.Unknown;\n}\n/**\n * @member - entry metadata\n * @type {Map}\n */\n\n/**\n * @member - entry duration\n * @type {number}\n */\n\n\n/**\n * @member - entry ID\n * @type {string}\n */\n;\n\nexports.default = MediaEntry;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _drm = __webpack_require__(16);\n\nvar _drm2 = _interopRequireDefault(_drm);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Media source\n * @classdesc\n */\nvar MediaSource =\n\n/**\n * @constructor\n */\n\n/**\n * @member - media source height\n * @type {number}\n */\n\n/**\n * @member - media source bandwidth\n * @type {number}\n */\n\n/**\n * @member - media source mimetype\n * @type {string}\n */\n\n/**\n * @member - media source ID\n * @type {string}\n */\nfunction MediaSource() {\n _classCallCheck(this, MediaSource);\n}\n/**\n * @member - media source label\n * @type {string}\n */\n\n/**\n * @member - media source width\n * @type {number}\n */\n\n/**\n * @member - media source drm data\n * @type {Array}\n */\n\n/**\n * @member - media source URL\n * @type {string}\n */\n;\n\nexports.default = MediaSource;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Drm data\n * @classdesc\n */\nvar Drm =\n\n/**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n\n\n/**\n * @member - license URL\n * @type {string}\n */\nfunction Drm(licenseUrl, scheme) {\n _classCallCheck(this, Drm);\n\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n}\n/**\n * @member - drm scheme\n * @type {Scheme}\n */\n;\n\nexports.default = Drm;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OvpProvider = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _providerParser = __webpack_require__(18);\n\nvar _providerParser2 = _interopRequireDefault(_providerParser);\n\nvar _dataLoaderManager = __webpack_require__(23);\n\nvar _dataLoaderManager2 = _interopRequireDefault(_dataLoaderManager);\n\nvar _mediaEntryLoader = __webpack_require__(24);\n\nvar _mediaEntryLoader2 = _interopRequireDefault(_mediaEntryLoader);\n\nvar _sessionLoader = __webpack_require__(32);\n\nvar _sessionLoader2 = _interopRequireDefault(_sessionLoader);\n\nvar _uiConfigLoader = __webpack_require__(34);\n\nvar _uiConfigLoader2 = _interopRequireDefault(_uiConfigLoader);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _mediaEntry = __webpack_require__(14);\n\nvar _mediaEntry2 = _interopRequireDefault(_mediaEntry);\n\nvar _mediaSources = __webpack_require__(8);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Ovp provider\n * @classdesc\n */\nvar OvpProvider = exports.OvpProvider = function () {\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n\n /**\n * @member - partner ID\n * @type {number}\n */\n function OvpProvider(partnerID) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var config = arguments[2];\n\n _classCallCheck(this, OvpProvider);\n\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n _config2.default.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n\n /**\n * @member - ks\n * @type {string}\n */\n\n\n _createClass(OvpProvider, [{\n key: 'getConfig',\n value: function getConfig(entryId, uiConfId) {\n var _this = this;\n\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new _dataLoaderManager2.default(this.partnerID, this.ks);\n return new Promise(function (resolve, reject) {\n if (_this.validateParams(entryId, uiConfId)) {\n var ks = _this.ks;\n if (_this._isAnonymous) {\n ks = \"{1:result:ks}\";\n _this._dataLoader.add(_sessionLoader2.default, { partnerId: _this.partnerID });\n }\n _this._dataLoader.add(_mediaEntryLoader2.default, { entryId: entryId, ks: ks });\n _this._dataLoader.add(_uiConfigLoader2.default, { uiConfId: uiConfId, ks: ks });\n _this._dataLoader.fetchData().then(function (response) {\n resolve(_this.parseDataFromResponse(response));\n }, function (err) {\n reject(err);\n });\n } else {\n reject({ success: false, data: \"Missing mandatory parameter\" });\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n\n }, {\n key: 'parseDataFromResponse',\n value: function parseDataFromResponse(data) {\n logger.debug(\"Data parsing started\");\n var config = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId\n },\n sources: new _mediaSources2.default(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(_sessionLoader2.default.name)) {\n var sessionLoader = data.get(_sessionLoader2.default.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(_uiConfigLoader2.default.name)) {\n var uiConfLoader = data.get(_uiConfigLoader2.default.name);\n var pluginsJson = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(_mediaEntryLoader2.default.name)) {\n var mediaLoader = data.get(_mediaEntryLoader2.default.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n var mediaEntry = _providerParser2.default.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return config;\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n\n }, {\n key: 'validateParams',\n value: function validateParams(entryId, uiConfId) {\n return !!entryId || !!uiConfId;\n }\n }]);\n\n return OvpProvider;\n}();\n\nexports.default = OvpProvider;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _kalturaPlaybackSource = __webpack_require__(9);\n\nvar _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource);\n\nvar _kalturaFlavorAsset = __webpack_require__(11);\n\nvar _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset);\n\nvar _kalturaMetadataListResponse = __webpack_require__(12);\n\nvar _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse);\n\nvar _playSourceUrlBuilder = __webpack_require__(21);\n\nvar _playSourceUrlBuilder2 = _interopRequireDefault(_playSourceUrlBuilder);\n\nvar _xmlParser = __webpack_require__(22);\n\nvar _xmlParser2 = _interopRequireDefault(_xmlParser);\n\nvar _enums = __webpack_require__(2);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _mediaFormat = __webpack_require__(13);\n\nvar _mediaEntry = __webpack_require__(14);\n\nvar _mediaEntry2 = _interopRequireDefault(_mediaEntry);\n\nvar _drm = __webpack_require__(16);\n\nvar _drm2 = _interopRequireDefault(_drm);\n\nvar _mediaSource = __webpack_require__(15);\n\nvar _mediaSource2 = _interopRequireDefault(_mediaSource);\n\nvar _mediaSources = __webpack_require__(8);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nvar SUPPORTED_FORMATS = new Map([[\"mpegdash\", _mediaFormat.MediaFormat.dash], [\"applehttp\", _mediaFormat.MediaFormat.hls], [\"url\", _mediaFormat.MediaFormat.mp4]]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\n\nvar ProviderParser = function () {\n function ProviderParser() {\n _classCallCheck(this, ProviderParser);\n }\n\n _createClass(ProviderParser, null, [{\n key: 'getMediaEntry',\n\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {any} mediaEntryResponse - The media entry response\n * @returns {MediaEntry} - The media entry\n * @static\n * @public\n */\n value: function getMediaEntry(ks, partnerID, uiConfId, mediaEntryResponse) {\n var mediaEntry = new _mediaEntry2.default();\n var entry = mediaEntryResponse.entry;\n var playbackContext = mediaEntryResponse.playBackContextResult;\n var metadataList = mediaEntryResponse.metadataListResult;\n var kalturaSources = playbackContext.sources;\n var sources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n var metadata = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n var type = _enums.MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case _enums.MediaType.IMAGE.value:\n type = _enums.MediaEntryType.Image;\n break;\n case _enums.MediaType.AUDIO.value:\n type = _enums.MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case _enums.EntryType.MEDIA_CLIP.value:\n type = _enums.MediaEntryType.Vod;\n break;\n case _enums.EntryType.LIVE_STREAM.value:\n case _enums.EntryType.LIVE_CHANNEL.value:\n type = _enums.MediaEntryType.Live;\n break;\n default:\n type = _enums.MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n /**\n * Returns the parsed sources\n * @function _getParsedSources\n * @param {Array} kalturaSources - The kaltura sources\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {Object} entry - The entry\n * @param {Object} playbackContext - The playback context\n * @return {MediaSources} - A media sources\n * @static\n * @private\n */\n\n }, {\n key: '_getParsedSources',\n value: function _getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext) {\n var sources = new _mediaSources2.default();\n\n var addAdaptiveSource = function addAdaptiveSource(source) {\n var parsedSource = ProviderParser._parseAdaptiveSource(source, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n var sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n };\n\n var parseAdaptiveSources = function parseAdaptiveSources() {\n kalturaSources.filter(function (source) {\n return !ProviderParser._isProgressiveSource(source);\n }).forEach(addAdaptiveSource);\n };\n\n var parseProgressiveSources = function parseProgressiveSources() {\n var progressiveSource = kalturaSources.find(ProviderParser._isProgressiveSource);\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n /**\n * Returns a parsed adaptive source\n * @function _parseAdaptiveSource\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {MediaSource} - The parsed adaptive kalturaSource\n * @static\n * @private\n */\n\n }, {\n key: '_parseAdaptiveSource',\n value: function _parseAdaptiveSource(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entryId) {\n var mediaSource = new _mediaSource2.default();\n if (kalturaSource) {\n var playUrl = \"\";\n var mediaFormat = SUPPORTED_FORMATS.get(kalturaSource.format);\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (kalturaSource.hasFlavorIds()) {\n var extension = \"\";\n if (!mediaFormat) {\n if (flavorAssets && flavorAssets.length > 0) {\n extension = flavorAssets[0].fileExt;\n }\n } else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = _playSourceUrlBuilder2.default.build({\n entryId: entryId,\n flavorIds: kalturaSource.flavorIds,\n format: kalturaSource.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: kalturaSource.getProtocol(this._getBaseProtocol())\n });\n } else {\n playUrl = kalturaSource.url;\n }\n\n if (playUrl == \"\") {\n logger.error('failed to create play url from source, discarding source: (' + entryId + '_' + kalturaSource.deliveryProfileId + '), ' + kalturaSource.format + '.');\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entryId + \"_\" + kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n if (kalturaSource.hasDrmData()) {\n var drmParams = [];\n kalturaSource.drm.forEach(function (drm) {\n drmParams.push(new _drm2.default(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n }\n return mediaSource;\n }\n\n /**\n * Returns parsed progressive sources\n * @function _parseProgressiveSources\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {Array} - The parsed progressive kalturaSources\n * @static\n * @private\n */\n\n }, {\n key: '_parseProgressiveSources',\n value: function _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entryId) {\n var sources = [];\n if (kalturaSource) {\n var protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n var format = kalturaSource.format;\n var sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map(function (flavor) {\n if (flavor.height && flavor.width) {\n var mediaSource = new _mediaSource2.default();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = _playSourceUrlBuilder2.default.build({\n entryId: entryId,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n /**\n * @function _isProgressiveSource\n * @param {KalturaPlaybackSource} source - The kaltura source\n * @return {boolean} - Is progressive source\n * @static\n * @private\n */\n\n }, {\n key: '_isProgressiveSource',\n value: function _isProgressiveSource(source) {\n var sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return !!sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n\n }, {\n key: '_parseMetaData',\n value: function _parseMetaData(metadataList) {\n var metadata = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach(function (meta) {\n var metaXml = void 0;\n var domParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n var metasObj = _xmlParser2.default.xmlToJson(metaXml);\n var metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach(function (key) {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n });\n });\n }\n return metadata;\n }\n\n /**\n * Returns the base protocol\n * @function _getBaseProtocol\n * @returns {string} - The base protocol\n * @static\n * @private\n */\n\n }, {\n key: '_getBaseProtocol',\n value: function _getBaseProtocol() {\n var splittedUrl = config.baseUrl.split(\"/\");\n var baseProtocol = void 0;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n } else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n }]);\n\n return ProviderParser;\n}();\n\nexports.default = ProviderParser;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nvar KalturaDrmPlaybackPluginData =\n\n/**\n * @constructor\n * @param {Object} drm The json response\n */\n\n/**\n * @member - The drm scheme\n * @type {Scheme}\n */\nfunction KalturaDrmPlaybackPluginData(drm) {\n _classCallCheck(this, KalturaDrmPlaybackPluginData);\n\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n}\n\n/**\n * @member - The license URL\n * @type {string}\n */\n;\n\nexports.default = KalturaDrmPlaybackPluginData;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nvar KalturaMetadata =\n\n/**\n * @constructor\n * @param {Object} data The response\n */\nfunction KalturaMetadata(data) {\n _classCallCheck(this, KalturaMetadata);\n\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n}\n/**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n;\n\nexports.default = KalturaMetadata;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\n\nvar PlaySourceUrlBuilder = function () {\n function PlaySourceUrlBuilder() {\n _classCallCheck(this, PlaySourceUrlBuilder);\n }\n\n _createClass(PlaySourceUrlBuilder, null, [{\n key: \"build\",\n\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n value: function build(urlParams) {\n var baseUrl = config.baseUrl;\n var partnerId = urlParams.partnerId;\n var entryId = urlParams.entryId;\n var ks = urlParams.ks;\n var uiConfId = urlParams.uiConfId;\n var format = urlParams.format;\n var protocol = urlParams.protocol;\n var extension = urlParams.extension;\n var flavorIds = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n var playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n } else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n\n }, {\n key: \"endsWith\",\n value: function endsWith(string, searchString) {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n }]);\n\n return PlaySourceUrlBuilder;\n}();\n\nexports.default = PlaySourceUrlBuilder;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Xml parser\n * @classdesc\n */\nvar XmlParser = function () {\n function XmlParser() {\n _classCallCheck(this, XmlParser);\n }\n\n _createClass(XmlParser, null, [{\n key: \"xmlToJson\",\n\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n value: function xmlToJson(xml) {\n var obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (var j = 0; j < xml.attributes.length; j++) {\n var attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (var i = 0; i < xml.childNodes.length; i++) {\n var item = xml.childNodes.item(i);\n var nodeName = item.nodeName;\n if (typeof obj[nodeName] == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n } else {\n if (typeof obj[nodeName].push == \"undefined\") {\n var old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n }]);\n\n return XmlParser;\n}();\n\nexports.default = XmlParser;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(4);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Data loaders manager\n * @classdesc\n */\nvar DataLoaderManager = function () {\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n function DataLoaderManager(partnerID) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n\n _classCallCheck(this, DataLoaderManager);\n\n this._loaders = new Map();\n\n this._multiRequest = _ovpService2.default.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n\n\n _createClass(DataLoaderManager, [{\n key: 'add',\n value: function add(loader, params) {\n var _this = this;\n\n var execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n var startIndex = this._multiRequest.requests.length;\n //Get the requests\n var requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach(function (request) {\n _this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n var executionLoaderResponseMap = Array.from(new Array(requests.length), function (val, index) {\n return index + startIndex;\n });\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n\n }, {\n key: 'fetchData',\n value: function fetchData() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2._multiRequest.execute().then(function (response) {\n _this2._multiResponse = response;\n if (!response.success) {\n reject(response);\n } else {\n var preparedData = _this2.prepareData(response);\n if (preparedData.success) {\n resolve(_this2._loaders);\n } else {\n reject({ success: false, data: preparedData.error });\n }\n }\n }, function (err) {\n reject(err);\n });\n });\n }\n }, {\n key: 'prepareData',\n value: function prepareData(response) {\n this._loaders.forEach(function (loader, name) {\n var loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1);\n }\n } catch (err) {\n return { success: false, error: err };\n }\n });\n return { success: true, data: this._loaders };\n }\n }]);\n\n return DataLoaderManager;\n}();\n\nDataLoaderManager._loadersResponseMap = new Map();\nexports.default = DataLoaderManager;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseEntryService = __webpack_require__(25);\n\nvar _baseEntryService2 = _interopRequireDefault(_baseEntryService);\n\nvar _metaDataService = __webpack_require__(26);\n\nvar _metaDataService2 = _interopRequireDefault(_metaDataService);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _kalturaPlaybackContext = __webpack_require__(27);\n\nvar _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext);\n\nvar _kalturaMetadataListResponse = __webpack_require__(12);\n\nvar _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse);\n\nvar _kalturaBaseEntryListResponse = __webpack_require__(30);\n\nvar _kalturaBaseEntryListResponse2 = _interopRequireDefault(_kalturaBaseEntryListResponse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\n\nvar MediaEntryLoader = function () {\n _createClass(MediaEntryLoader, null, [{\n key: 'name',\n get: function get() {\n return \"media\";\n }\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function MediaEntryLoader(params) {\n _classCallCheck(this, MediaEntryLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n _createClass(MediaEntryLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_baseEntryService2.default.list(config.beUrl, params.ks, params.entryId));\n requests.push(_baseEntryService2.default.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(_metaDataService2.default.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._entryId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n var mediaEntryResponse = new _kalturaBaseEntryListResponse2.default(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new _kalturaPlaybackContext2.default(response[1].data);\n this._response.metadataListResult = new _kalturaMetadataListResponse2.default(response[2].data);\n },\n get: function get() {\n return this._response;\n }\n }]);\n\n return MediaEntryLoader;\n}();\n\nexports.default = MediaEntryLoader;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(4);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\n\nvar BaseEntryService = function (_OvpService) {\n _inherits(BaseEntryService, _OvpService);\n\n function BaseEntryService() {\n _classCallCheck(this, BaseEntryService);\n\n return _possibleConstructorReturn(this, (BaseEntryService.__proto__ || Object.getPrototypeOf(BaseEntryService)).apply(this, arguments));\n }\n\n _createClass(BaseEntryService, null, [{\n key: 'getPlaybackContext',\n\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function getPlaybackContext(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n var contextDataParams = { objectType: \"KalturaContextDataParams\", flavorTags: \"all\" };\n var params = { entryId: entryId, ks: ks, contextDataParams: contextDataParams };\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n\n }, {\n key: 'list',\n value: function list(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n\n }, {\n key: 'getEntryListReqParams',\n value: function getEntryListReqParams(entryId, ks) {\n var filterParams = { redirectFromEntryId: entryId };\n var responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return { ks: ks, filter: filterParams, responseProfile: responseProfileParams };\n }\n }]);\n\n return BaseEntryService;\n}(_ovpService2.default);\n\nexports.default = BaseEntryService;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(4);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\n\nvar MetaDataService = function (_OvpService) {\n _inherits(MetaDataService, _OvpService);\n\n function MetaDataService() {\n _classCallCheck(this, MetaDataService);\n\n return _possibleConstructorReturn(this, (MetaDataService.__proto__ || Object.getPrototypeOf(MetaDataService)).apply(this, arguments));\n }\n\n _createClass(MetaDataService, null, [{\n key: 'list',\n\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function list(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n var filter = { objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\" };\n var params = { filter: filter, ks: ks };\n request.params = params;\n return request;\n }\n }]);\n\n return MetaDataService;\n}(_ovpService2.default);\n\nexports.default = MetaDataService;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(3);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaAccessControlMessage = __webpack_require__(28);\n\nvar _kalturaAccessControlMessage2 = _interopRequireDefault(_kalturaAccessControlMessage);\n\nvar _kalturaPlaybackSource = __webpack_require__(9);\n\nvar _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource);\n\nvar _kalturaRuleAction = __webpack_require__(29);\n\nvar _kalturaRuleAction2 = _interopRequireDefault(_kalturaRuleAction);\n\nvar _kalturaFlavorAsset = __webpack_require__(11);\n\nvar _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nvar KalturaPlaybackContext = function (_ServiceResult) {\n _inherits(KalturaPlaybackContext, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n\n /**\n * @member - The playback sources\n * @type {Array}\n */\n function KalturaPlaybackContext(response) {\n _classCallCheck(this, KalturaPlaybackContext);\n\n var _this = _possibleConstructorReturn(this, (KalturaPlaybackContext.__proto__ || Object.getPrototypeOf(KalturaPlaybackContext)).call(this, response));\n\n _this.sources = [];\n _this.actions = [];\n _this.messages = [];\n _this.flavorAssets = [];\n\n if (!_this.hasError) {\n\n var messages = response.messages;\n if (messages) {\n messages.map(function (message) {\n return _this.messages.push(new _kalturaAccessControlMessage2.default(message));\n });\n }\n\n var actions = response.actions;\n if (actions) {\n actions.map(function (action) {\n return _this.actions.push(new _kalturaRuleAction2.default(action));\n });\n }\n\n var sources = response.sources;\n if (sources) {\n sources.map(function (source) {\n return _this.sources.push(new _kalturaPlaybackSource2.default(source));\n });\n }\n\n var flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(function (flavor) {\n return _this.flavorAssets.push(new _kalturaFlavorAsset2.default(flavor));\n });\n }\n }\n\n return _this;\n }\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n\n\n return KalturaPlaybackContext;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaPlaybackContext;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nvar KalturaAccessControlMessage =\n\n/**\n * @constructor\n * @param {Object} data The json response\n */\n\n/**\n * @member - The access control message\n * @type {string}\n */\nfunction KalturaAccessControlMessage(data) {\n _classCallCheck(this, KalturaAccessControlMessage);\n\n this.message = data.message;\n this.code = data.code;\n}\n/**\n * @member - The access control message code\n * @@type {string}\n */\n;\n\nexports.default = KalturaAccessControlMessage;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nvar KalturaRuleAction =\n\n/**\n * @constructor\n * @param {Object} data The response\n */\nfunction KalturaRuleAction(data) {\n _classCallCheck(this, KalturaRuleAction);\n\n this.type = data.type;\n}\n/**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n;\n\nexports.default = KalturaRuleAction;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(3);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaMediaEntry = __webpack_require__(31);\n\nvar _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nvar KalturaBaseEntryListResponse = function (_ServiceResult) {\n _inherits(KalturaBaseEntryListResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n\n /**\n * @member - The total count\n * @type {number}\n */\n function KalturaBaseEntryListResponse(responseObj) {\n _classCallCheck(this, KalturaBaseEntryListResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaBaseEntryListResponse.__proto__ || Object.getPrototypeOf(KalturaBaseEntryListResponse)).call(this, responseObj));\n\n if (!_this.hasError) {\n _this.totalCount = responseObj.totalCount;\n if (_this.totalCount > 0) {\n _this.entries = [];\n responseObj.objects.map(function (entry) {\n return _this.entries.push(new _kalturaMediaEntry2.default(entry));\n });\n }\n }\n return _this;\n }\n /**\n * @member - The entries\n * @type {Array}\n */\n\n\n return KalturaBaseEntryListResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaBaseEntryListResponse;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(2);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nvar KalturaMediaEntry =\n\n/**\n * @constructor\n * @param {Object} entry The json response\n */\n\n/**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n\n/**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n\n/**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\nfunction KalturaMediaEntry(entry) {\n _classCallCheck(this, KalturaMediaEntry);\n\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n}\n/**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n\n/**\n * @member - The entry duration\n * @type {number}\n */\n\n/**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n\n/**\n * @member - The entry id\n * @type {string}\n */\n;\n\nexports.default = KalturaMediaEntry;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _sessionService = __webpack_require__(33);\n\nvar _sessionService2 = _interopRequireDefault(_sessionService);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n/**\n * Media entry loader\n * @classdesc\n */\n\nvar SessionLoader = function () {\n _createClass(SessionLoader, null, [{\n key: 'name',\n get: function get() {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function SessionLoader(params) {\n _classCallCheck(this, SessionLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n _createClass(SessionLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_sessionService2.default.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._partnerId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n this._response.ks = response[0].data.ks;\n },\n get: function get() {\n return this._response.ks;\n }\n }]);\n\n return SessionLoader;\n}();\n\nexports.default = SessionLoader;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(4);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\n\nvar SessionService = function (_OvpService) {\n _inherits(SessionService, _OvpService);\n\n function SessionService() {\n _classCallCheck(this, SessionService);\n\n return _possibleConstructorReturn(this, (SessionService.__proto__ || Object.getPrototypeOf(SessionService)).apply(this, arguments));\n }\n\n _createClass(SessionService, null, [{\n key: 'anonymousSession',\n\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function anonymousSession(baseUrl, partnerId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = { widgetId: \"_\" + partnerId };\n return request;\n }\n }]);\n\n return SessionService;\n}(_ovpService2.default);\n\nexports.default = SessionService;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _uiConfService = __webpack_require__(35);\n\nvar _uiConfService2 = _interopRequireDefault(_uiConfService);\n\nvar _kalturaUiConfResponse = __webpack_require__(36);\n\nvar _kalturaUiConfResponse2 = _interopRequireDefault(_kalturaUiConfResponse);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\nvar UiConfigLoader = function () {\n _createClass(UiConfigLoader, null, [{\n key: 'name',\n get: function get() {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function UiConfigLoader(params) {\n _classCallCheck(this, UiConfigLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n _createClass(UiConfigLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_uiConfService2.default.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._uiConfId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n this._response.uiConf = new _kalturaUiConfResponse2.default(response[0].data);\n },\n get: function get() {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null) try {\n return JSON.parse(this._response.uiConf.config).plugins;\n } catch (err) {\n return null;\n } else return null;\n }\n }]);\n\n return UiConfigLoader;\n}();\n\nexports.default = UiConfigLoader;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(4);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\n\nvar UiConfService = function (_OvpService) {\n _inherits(UiConfService, _OvpService);\n\n function UiConfService() {\n _classCallCheck(this, UiConfService);\n\n return _possibleConstructorReturn(this, (UiConfService.__proto__ || Object.getPrototypeOf(UiConfService)).apply(this, arguments));\n }\n\n _createClass(UiConfService, null, [{\n key: 'get',\n\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function get(baseUrl, ks, uiConfID) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n var responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = { id: uiConfID, responseProfile: responseProfileParams, ks: ks };\n return request;\n }\n }]);\n\n return UiConfService;\n}(_ovpService2.default);\n\nexports.default = UiConfService;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(3);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _enums = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nvar KalturaUiConfResponse = function (_ServiceResult) {\n _inherits(KalturaUiConfResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n function KalturaUiConfResponse(data) {\n _classCallCheck(this, KalturaUiConfResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaUiConfResponse.__proto__ || Object.getPrototypeOf(KalturaUiConfResponse)).call(this, data));\n\n if (!_this.hasError) {\n _this.name = data.name;\n\n _this.description = data.description;\n _this.objTypeAsString = data.objTypeAsString;\n _this.width = data.width;\n _this.height = data.height;\n _this.htmlParams = data.htmlParams;\n _this.swfUrl = data.swfUrl;\n _this.confFilePath = data.confFilePath;\n _this.confFile = data.confFile;\n _this.confFileFeatures = data.confFileFeatures;\n _this.config = data.config;\n _this.confVars = data.confVars;\n _this.useCdn = data.useCdn;\n _this.tags = data.tags;\n _this.swfUrlVersion = data.swfUrlVersion;\n _this.created = new Date(0);\n _this.created.setUTCSeconds(data.createdAt);\n _this.updated = new Date(0);\n _this.updated.setUTCSeconds(data.updatedAt);\n _this.html5Url = data.description;\n _this.version = data.description;\n _this.partnerTags = data.description;\n _this.objType = data.description;\n _this.creationMode = data.description;\n }\n return _this;\n }\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n\n\n return KalturaUiConfResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaUiConfResponse;\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// ovpProvider.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 17);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 57f592a94818e7616bb1","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\nimport {Enum} from 'enumify';\n\nexport class Scheme extends Enum {\n}\nScheme.initEnum({\n PLAYREADY_CENC: \"drm.PLAYREADY_CENC\",\n WIDEVINE_CENC: \"drm.WIDEVINE_CENC\",\n FAIRPLAY: \"fairplay.FAIRPLAY\",\n PLAYREADY: \"playReady.PLAYREADY\",\n WIDEVINE: \"widevine.WIDEVINE\"\n});\n\n\nexport class KalturaRuleActionType extends Enum {\n}\nKalturaRuleActionType.initEnum({\n DRM_POLICY: \"drm.DRM_POLICY\",\n BLOCK: 1,\n PREVIEW: 2,\n LIMIT_FLAVORS: 3,\n ADD_TO_STORAGE: 4,\n LIMIT_DELIVERY_PROFILES: 5,\n SERVE_FROM_REMOTE_SERVER: 6,\n REQUEST_HOST_REGEX: 7,\n LIMIT_THUMBNAIL_CAPTURE: 8\n});\n\nexport class Status extends Enum {\n}\nStatus.initEnum({\n ERROR: -1,\n QUEUED: 0,\n CONVERTING: 1,\n READY: 2,\n DELETED: 3,\n NOT_APPLICABLE: 4,\n TEMP: 5,\n WAIT_FOR_CONVERT: 6,\n IMPORTING: 7,\n VALIDATING: 8,\n EXPORTING: 9\n});\n\nexport class MetadataObjectType extends Enum {\n}\nMetadataObjectType.initEnum({\n AD_CUE_POINT: \"adCuePointMetadata.AdCuePoint\",\n ANNOTATION: \"annotationMetadata.Annotation\",\n CODE_CUE_POINT: \"codeCuePointMetadata.CodeCuePoint\",\n THUMB_CUE_POINT: \"thumbCuePointMetadata.thumbCuePoint\",\n ENTRY: 1,\n CATEGORY: 2,\n USER: 3,\n PARTNER: 4,\n DYNAMIC_OBJECT: 5\n});\n\nexport class MetadataStatus extends Enum {\n}\nMetadataStatus.initEnum({\n VALID: 1,\n INVALID: 2,\n DELETED: 3\n});\n\n\nexport class EntryStatus extends Enum {\n}\nEntryStatus.initEnum({\n ERROR_IMPORTING: -2,\n ERROR_CONVERTING: -1,\n SCAN_FAILURE: \"virusScan.ScanFailure\",\n IMPORT: 0,\n INFECTED: \"virusScan.Infected\",\n PRECONVERT: 1,\n READY: 2,\n DELETED: 3,\n PENDING: 4,\n MODERATE: 5,\n BLOCKED: 6,\n NO_CONTENT: 7\n});\n\nexport class EntryModerationStatus extends Enum {\n}\nEntryModerationStatus.initEnum({\n PENDING_MODERATION: 1,\n APPROVED: 2,\n REJECTED: 3,\n FLAGGED_FOR_REVIEW: 4,\n MODERATE: 5,\n AUTO_APPROVED: 6\n});\n\nexport class EntryType extends Enum {\n}\nEntryType.initEnum({\n AUTOMATIC: {value: -1},\n EXTERNAL_MEDIA: {value: \"externalMedia.externalMedia\"},\n MEDIA_CLIP: {value: 1},\n MIX: {value: 2},\n PLAYLIST: {value: 5},\n DATA: {value: 6},\n LIVE_STREAM: {value: 7},\n LIVE_CHANNEL: {value: 8},\n DOCUMENT: {value: 10}\n});\n\nexport class MediaType extends Enum {\n}\nMediaType.initEnum({\n VIDEO: {value: 1},\n IMAGE: {value: 2},\n AUDIO: {value: 5},\n LIVE_STREAM_FLASH: {value: 201},\n LIVE_STREAM_WINDOWS_MEDIA: {value: 202},\n LIVE_STREAM_REAL_MEDIA: {value: 203},\n LIVE_STREAM_QUICKTIME: {value: 204}\n});\n\n\nexport class MediaEntryType extends Enum {\n}\nMediaEntryType.initEnum(['Vod', 'Live', 'Image', 'Audio', 'Unknown']);\n\nexport class UIConfType extends Enum {\n}\nUIConfType.initEnum({\n PLAYER: 1,\n CONTRIBUTION_WIZARD: 2,\n SIMPLE_EDITOR: 3,\n ADVANCED_EDITOR: 4,\n PLAYLIST: 5,\n APP_STUDIO: 6,\n KRECORD: 7,\n PLAYER_V3: 8,\n KMC_ACCOUNT: 9,\n KMC_ANALYTICS: 10,\n KMC_CONTENT: 11,\n KMC_DASHBOARD: 12,\n KMC_LOGIN: 13,\n PLAYER_SL: 14,\n CLIENTSIDE_ENCODER: 15,\n KMC_GENERAL: 16,\n KMC_ROLES_AND_PERMISSIONS: 17,\n CLIPPER: 18,\n KSR: 19,\n KUPLOAD: 20,\n WEBCASTING: 21\n});\n\nexport class UIConfCreationMode extends Enum {\n}\nUIConfCreationMode.initEnum({\n WIZARD: 2,\n ADVANCED: 3\n});\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/enums.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/js-logger/src/logger.js\n// module id = 7\n// module chunks = 0 1","// @flow\nimport MediaSource from './media-source'\nimport {MediaFormat} from './media-format'\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nexport default class MediaSources {\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n progressive: Array;\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n dash: Array;\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n hls: Array;\n\n /**\n * @constructor\n */\n constructor() {\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n map(source: MediaSource, mediaFormat: ?MediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-sources.js","//@flow\nimport KalturaDrmPlaybackPluginData from './kaltura-drm-playback-plugin-data'\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nexport default class KalturaPlaybackSource {\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n format: string;\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n deliveryProfileId: string;\n /**\n * @member - The source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n protocols: string;\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n flavorIds: string;\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n drm: Array = [];\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n constructor(source: Object) {\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(drm => this.drm.push(new KalturaDrmPlaybackPluginData(drm)));\n }\n\n\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n hasDrmData(): boolean {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n hasFlavorIds(): boolean {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n getProtocol(protocol: string): string {\n let returnValue: string = \"\";\n if (this.protocols && this.protocols.length > 0) {\n let protocolsArr: Array = this.protocols.split(\",\");\n protocolsArr.forEach((p) => {\n if (p == protocol) {\n returnValue = p;\n }\n });\n }\n else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-source.js","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.copyProperties = copyProperties;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar INITIALIZED = Symbol();\n\n/**\n * This is an abstract class that is not intended to be\n * used directly. Extend it to turn your class into an enum\n * (initialization is performed via `MyClass.initEnum()`).\n */\n\nvar Enum = exports.Enum = function () {\n /**\n * `initEnum()` closes the class. Then calling this constructor\n * throws an exception.\n * \n * If your subclass has a constructor then you can control\n * what properties are added to `this` via the argument you\n * pass to `super()`. No arguments are fine, too.\n */\n\n function Enum() {\n var instanceProperties = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n\n _classCallCheck(this, Enum);\n\n // new.target would be better than this.constructor,\n // but isn’t supported by Babel\n if ({}.hasOwnProperty.call(this.constructor, INITIALIZED)) {\n throw new Error('Enum classes can’t be instantiated');\n }\n if ((typeof instanceProperties === 'undefined' ? 'undefined' : _typeof(instanceProperties)) === 'object' && instanceProperties !== null) {\n copyProperties(this, instanceProperties);\n }\n }\n /**\n * Set up the enum, close the class.\n * \n * @param arg Either an object whose properties provide the names\n * and values (which must be mutable objects) of the enum constants.\n * Or an Array whose elements are used as the names of the enum constants\n * The values are create by instantiating the current class.\n */\n\n _createClass(Enum, [{\n key: 'toString',\n\n /**\n * Default `toString()` method for enum constant.\n */\n value: function toString() {\n return this.constructor.name + '.' + this.name;\n }\n }], [{\n key: 'initEnum',\n value: function initEnum(arg) {\n Object.defineProperty(this, 'enumValues', {\n value: [],\n configurable: false,\n writable: false,\n enumerable: true\n });\n if (Array.isArray(arg)) {\n this._enumValuesFromArray(arg);\n } else {\n this._enumValuesFromObject(arg);\n }\n Object.freeze(this.enumValues);\n this[INITIALIZED] = true;\n return this;\n }\n }, {\n key: '_enumValuesFromArray',\n value: function _enumValuesFromArray(arr) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n this._pushEnumValue(new this(), key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: '_enumValuesFromObject',\n value: function _enumValuesFromObject(obj) {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = Object.keys(obj)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var key = _step2.value;\n\n var value = new this(obj[key]);\n this._pushEnumValue(value, key);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }, {\n key: '_pushEnumValue',\n value: function _pushEnumValue(enumValue, name) {\n enumValue.name = name;\n enumValue.ordinal = this.enumValues.length;\n Object.defineProperty(this, name, {\n value: enumValue,\n configurable: false,\n writable: false,\n enumerable: true\n });\n this.enumValues.push(enumValue);\n }\n\n /**\n * Given the name of an enum constant, return its value.\n */\n\n }, {\n key: 'enumValueOf',\n value: function enumValueOf(name) {\n return this.enumValues.find(function (x) {\n return x.name === name;\n });\n }\n\n /**\n * Make enum classes iterable\n */\n\n }, {\n key: Symbol.iterator,\n value: function value() {\n return this.enumValues[Symbol.iterator]();\n }\n }]);\n\n return Enum;\n}();\n\nfunction copyProperties(target, source) {\n // Ideally, we’d use Reflect.ownKeys() here,\n // but I don’t want to depend on a polyfill\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = Object.getOwnPropertyNames(source)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var key = _step3.value;\n\n var desc = Object.getOwnPropertyDescriptor(source, key);\n Object.defineProperty(target, key, desc);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/enumify/lib/enumify.js\n// module id = 10\n// module chunks = 0","//@flow\nimport {Status} from '../../enums'\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nexport default class KalturaFlavorAsset {\n /**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\n id: string;\n /**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n flavorParamsId: string;\n /**\n * @member -The file extension\n * @type {string}\n */\n fileExt: string;\n /**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n bitrate: number;\n /**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n width: number;\n /**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n height: number;\n /**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n frameRate: number;\n /**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n isOriginal: boolean;\n /**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n isWeb: boolean;\n /**\n * @member - The container format\n * @type {boolean}\n */\n containerFormat: string;\n /**\n *@member - The video codec\n * @type {boolean}\n */\n videoCodecId: string;\n /**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n status: Status;\n /**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n language: string;\n /**\n * @member - The label of the flavor asset\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: any) {\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-flavor-asset.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMetadata from './kaltura-metadata'\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nexport default class KalturaMetadataListResponse extends ServiceResult {\n totalCount: number;\n /**\n * @member -The mata data array\n * @type {Array}\n */\n metas: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.metas = [];\n responseObj.objects.map(meta => this.metas.push(new KalturaMetadata(meta)));\n }\n\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata-list-response.js","//@flow\nimport {Enum} from 'enumify';\n\nexport class MediaFormat extends Enum {\n}\nMediaFormat.initEnum({\n dash: {\n get mimeType() {\n return \"application/dash+xml\";\n },\n get pathExt() {\n return \"mpd\";\n }\n },\n hls: {\n get mimeType() {\n return \"application/x-mpegURL\";\n },\n get pathExt() {\n return \"m3u8\";\n }\n },\n wvm: {\n get mimeType() {\n return \"video/wvm\";\n },\n get pathExt() {\n return \"wvm\";\n }\n },\n mp4: {\n get mimeType() {\n return \"video/mp4\";\n },\n get pathExt() {\n return \"mp4\";\n }\n },\n mp3: {\n get mimeType() {\n return \"audio/mpeg\";\n },\n get pathExt() {\n return \"mp3\";\n }\n }\n});\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-format.js","//@flow\nimport {MediaEntryType} from '../k-provider/enums'\nimport MediaSources from './media-sources'\n\n/**\n * Media entry\n * @classdesc\n */\nexport default class MediaEntry {\n\n /**\n * @member - entry ID\n * @type {string}\n */\n id: string;\n /**\n * @member - entry sources\n * @type {MediaSources}\n */\n sources: MediaSources;\n /**\n * @member - entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - entry type\n * @type {MediaEntryType}\n */\n type: MediaEntryType;\n /**\n * @member - entry metadata\n * @type {Map}\n */\n metaData: Map;\n\n /**\n * @constructor\n */\n constructor() {\n this.metaData = new Map();\n this.type = MediaEntryType.Unknown;\n }\n\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-entry.js","//@flow\nimport Drm from '../entities/drm'\n\n/**\n * Media source\n * @classdesc\n */\nexport default class MediaSource {\n /**\n * @member - media source ID\n * @type {string}\n */\n id: string;\n /**\n * @member - media source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - media source mimetype\n * @type {string}\n */\n mimetype: string;\n /**\n * @member - media source drm data\n * @type {Array}\n */\n drmData: Array;\n /**\n * @member - media source bandwidth\n * @type {number}\n */\n bandwidth: number;\n /**\n * @member - media source width\n * @type {number}\n */\n width: number;\n /**\n * @member - media source height\n * @type {number}\n */\n height: number;\n /**\n * @member - media source label\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n */\n constructor(){}\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-source.js","//@flow\n\nimport {Scheme} from '../k-provider/enums';\n\n/**\n * Drm data\n * @classdesc\n */\nexport default class Drm {\n\n /**\n * @member - license URL\n * @type {string}\n */\n licenseUrl: string;\n /**\n * @member - drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n constructor(licenseUrl: string, scheme: Scheme) {\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/drm.js","//@flow\nimport Logger from '../../util/logger'\nimport ProviderParser from './provider-parser'\nimport DataLoaderManager from './loaders/data-loader-manager'\nimport MediaEntryLoader from './loaders/media-entry-loader'\nimport SessionLoader from './loaders/session-loader'\nimport UiConfigLoader from './loaders/ui-config-loader'\nimport Configuration from './config'\nimport MediaEntry from '../../entities/media-entry'\nimport MediaSources from '../../entities/media-sources'\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\ntype playerConfig = {\n id: string,\n session: Object,\n sources: MediaSources,\n duration: number,\n type: string,\n metadata: Object,\n plugins: Object\n};\n\n/**\n * Ovp provider\n * @classdesc\n */\nexport class OvpProvider {\n /**\n * @member - ks\n * @type {string}\n */\n ks: string;\n /**\n * @member - partner ID\n * @type {number}\n */\n partnerID: number;\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n _isAnonymous: boolean;\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n _dataLoader: DataLoaderManager;\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n constructor(partnerID: number, ks: string = \"\", config?: Object) {\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n Configuration.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n getConfig(entryId?: string, uiConfId?: number): Promise {\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new DataLoaderManager(this.partnerID, this.ks);\n return new Promise((resolve, reject) => {\n if (this.validateParams(entryId, uiConfId)) {\n let ks: string = this.ks;\n if (this._isAnonymous) {\n ks = \"{1:result:ks}\";\n this._dataLoader.add(SessionLoader, {partnerId: this.partnerID});\n }\n this._dataLoader.add(MediaEntryLoader, {entryId: entryId, ks: ks});\n this._dataLoader.add(UiConfigLoader, {uiConfId: uiConfId, ks: ks});\n this._dataLoader.fetchData()\n .then(response => {\n resolve(this.parseDataFromResponse(response));\n },\n err => {\n reject(err);\n });\n }\n else {\n reject({success: false, data: \"Missing mandatory parameter\"});\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n parseDataFromResponse(data: Map): Object {\n logger.debug(\"Data parsing started\");\n let config: playerConfig = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId,\n },\n sources: new MediaSources(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(SessionLoader.name)) {\n let sessionLoader = data.get(SessionLoader.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(UiConfigLoader.name)) {\n let uiConfLoader = data.get(UiConfigLoader.name);\n let pluginsJson: Object = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(MediaEntryLoader.name)) {\n let mediaLoader = data.get(MediaEntryLoader.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n let mediaEntry: MediaEntry = ProviderParser.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type.name;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return (config);\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n validateParams(entryId?: string, uiConfId?: number): boolean {\n return !!entryId || !!uiConfId;\n }\n\n}\n\nexport default OvpProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/ovp-provider.js","//@flow\nimport KalturaPlaybackSource from './response-types/kaltura-playback-source'\nimport KalturaFlavorAsset from './response-types/kaltura-flavor-asset'\nimport KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response'\nimport PlaySourceUrlBuilder from \"./play-source-url-builder\"\nimport XmlParser from '../xml-parser'\nimport {MediaEntryType, EntryType, MediaType} from '../enums'\nimport Logger from '../../util/logger'\nimport Configuration from './config'\nimport {MediaFormat} from '../../entities/media-format'\nimport MediaEntry from '../../entities/media-entry'\nimport Drm from '../../entities/drm'\nimport MediaSource from '../../entities/media-source'\nimport MediaSources from '../../entities/media-sources'\n\nconst config = Configuration.get();\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nconst SUPPORTED_FORMATS: Map = new Map([\n [\"mpegdash\", MediaFormat.dash],\n [\"applehttp\", MediaFormat.hls],\n [\"url\", MediaFormat.mp4]\n]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\nexport default class ProviderParser {\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {any} mediaEntryResponse - The media entry response\n * @returns {MediaEntry} - The media entry\n * @static\n * @public\n */\n static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry {\n let mediaEntry: MediaEntry = new MediaEntry();\n let entry = mediaEntryResponse.entry;\n let playbackContext = mediaEntryResponse.playBackContextResult;\n let metadataList = mediaEntryResponse.metadataListResult;\n let kalturaSources: Array = playbackContext.sources;\n let sources: MediaSources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n let metadata: Map = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n let type: MediaEntryType = MediaEntryType.Unknown;\n\n switch (entry.entryType) {\n case MediaType.IMAGE.value:\n type = MediaEntryType.Image;\n break;\n case MediaType.AUDIO.value:\n type = MediaEntryType.Audio;\n break;\n default:\n switch (entry.type) {\n case EntryType.MEDIA_CLIP.value:\n type = MediaEntryType.Vod;\n break;\n case EntryType.LIVE_STREAM.value:\n case EntryType.LIVE_CHANNEL.value:\n type = MediaEntryType.Live;\n break;\n default:\n type = MediaEntryType.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n /**\n * Returns the parsed sources\n * @function _getParsedSources\n * @param {Array} kalturaSources - The kaltura sources\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {Object} entry - The entry\n * @param {Object} playbackContext - The playback context\n * @return {MediaSources} - A media sources\n * @static\n * @private\n */\n static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry: Object, playbackContext: Object): MediaSources {\n let sources: MediaSources = new MediaSources();\n\n let addAdaptiveSource = function(source: KalturaPlaybackSource): void{\n let parsedSource = ProviderParser._parseAdaptiveSource(source, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n };\n\n let parseAdaptiveSources = function (): void {\n kalturaSources.filter((source) => !ProviderParser._isProgressiveSource(source)).forEach(addAdaptiveSource);\n };\n\n let parseProgressiveSources = function (): void{\n let progressiveSource = kalturaSources.find(ProviderParser._isProgressiveSource);\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n /**\n * Returns a parsed adaptive source\n * @function _parseAdaptiveSource\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {MediaSource} - The parsed adaptive kalturaSource\n * @static\n * @private\n */\n static _parseAdaptiveSource(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): MediaSource {\n let mediaSource: MediaSource = new MediaSource();\n if (kalturaSource) {\n let playUrl: string = \"\";\n let mediaFormat = SUPPORTED_FORMATS.get(kalturaSource.format);\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (kalturaSource.hasFlavorIds()) {\n let extension: string = \"\";\n if (!mediaFormat) {\n if (flavorAssets && flavorAssets.length > 0) {\n extension = flavorAssets[0].fileExt;\n }\n }\n else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = PlaySourceUrlBuilder.build({\n entryId: entryId,\n flavorIds: kalturaSource.flavorIds,\n format: kalturaSource.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: kalturaSource.getProtocol(this._getBaseProtocol())\n });\n\n }\n else {\n playUrl = kalturaSource.url;\n }\n\n if (playUrl == \"\") {\n logger.error(`failed to create play url from source, discarding source: (${entryId}_${kalturaSource.deliveryProfileId}), ${kalturaSource.format}.`);\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entryId + \"_\" + kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n if (kalturaSource.hasDrmData()) {\n let drmParams: Array = [];\n kalturaSource.drm.forEach((drm) => {\n drmParams.push(new Drm(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n }\n return mediaSource;\n }\n\n /**\n * Returns parsed progressive sources\n * @function _parseProgressiveSources\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {Array} - The parsed progressive kalturaSources\n * @static\n * @private\n */\n static _parseProgressiveSources(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): Array {\n let sources = [];\n if (kalturaSource) {\n let protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n let format = kalturaSource.format;\n let sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map((flavor) => {\n if (flavor.height && flavor.width) {\n let mediaSource: MediaSource = new MediaSource();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = PlaySourceUrlBuilder.build({\n entryId: entryId,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n /**\n * @function _isProgressiveSource\n * @param {KalturaPlaybackSource} source - The kaltura source\n * @return {boolean} - Is progressive source\n * @static\n * @private\n */\n static _isProgressiveSource(source: KalturaPlaybackSource): boolean {\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return !!sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n static _parseMetaData(metadataList: KalturaMetadataListResponse): Map {\n let metadata: Object = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach((meta) => {\n let metaXml: Object;\n let domParser: DOMParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n let metasObj: Object = XmlParser.xmlToJson(metaXml);\n let metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach((key) => {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n })\n })\n }\n return metadata;\n }\n\n /**\n * Returns the base protocol\n * @function _getBaseProtocol\n * @returns {string} - The base protocol\n * @static\n * @private\n */\n static _getBaseProtocol(): string {\n let splittedUrl: Array = config.baseUrl.split(\"/\");\n let baseProtocol: string;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n }\n else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/provider-parser.js","//@flow\nimport {Scheme} from '../../enums'\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nexport default class KalturaDrmPlaybackPluginData {\n /**\n * @member - The drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @member - The license URL\n * @type {string}\n */\n licenseURL: string;\n\n /**\n * @constructor\n * @param {Object} drm The json response\n */\n constructor(drm: any) {\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","//@flow\nimport {MetadataObjectType, MetadataStatus} from '../../enums'\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nexport default class KalturaMetadata {\n id: number;\n metadataProfileId: number;\n metadataProfileVersion: number;\n metadataObjectType: MetadataObjectType;\n objectId: string;\n version: number;\n created: Date;\n updated: Date;\n status: MetadataStatus;\n /**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n xml: string;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata.js","//@flow\nimport Configuration from './config'\n\nconst config = Configuration.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\nexport default class PlaySourceUrlBuilder {\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n static build(urlParams: Object): string {\n let baseUrl: string = config.baseUrl;\n let partnerId: string = urlParams.partnerId;\n let entryId: string = urlParams.entryId;\n let ks: string = urlParams.ks;\n let uiConfId: string = urlParams.uiConfId;\n let format: string = urlParams.format;\n let protocol: string = urlParams.protocol;\n let extension: string = urlParams.extension;\n let flavorIds: string = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n let playUrl = baseUrl;\n if (!PlaySourceUrlBuilder.endsWith(baseUrl, \"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n }\n else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n\n /**\n * Checks if given string end with search string\n * @param {string} string The given string\n * @param {string} searchString The string to search\n * @returns {boolean} Is given string end with search string\n */\n static endsWith(string: string, searchString: string): boolean {\n if (typeof string !== 'string') {\n return false;\n }\n if (typeof searchString !== 'string') {\n return false;\n }\n\n return string.indexOf(searchString, string.length - searchString.length) != -1;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/play-source-url-builder.js","//@flow\n\n/**\n * Xml parser\n * @classdesc\n */\nexport default class XmlParser {\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n static xmlToJson(xml: Object) {\n let obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n let attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n }\n else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n let item = xml.childNodes.item(i);\n let nodeName = item.nodeName;\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n }\n else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n let old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/xml-parser.js","//@flow\nimport OvpService from '../services/ovp-service'\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport {MultiRequestResult} from '../../multi-request-builder'\n\n/**\n * Data loaders manager\n * @classdesc\n */\nexport default class DataLoaderManager {\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n static _loadersResponseMap: Map> = new Map();\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n _multiRequest: MultiRequestBuilder;\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n _multiResponse: MultiRequestResult;\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n _loaders: Map = new Map();\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n constructor(partnerID: number, ks: string = \"\") {\n this._multiRequest = OvpService.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n add(loader: Function, params: Object): void {\n let execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n let startIndex = this._multiRequest.requests.length;\n //Get the requests\n let requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach((request) => {\n this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n let executionLoaderResponseMap = Array.from(new Array(requests.length), (val, index) => index + startIndex);\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n fetchData(): Promise {\n return new Promise((resolve, reject) => {\n this._multiRequest.execute()\n .then(response => {\n this._multiResponse = response;\n if (!response.success) {\n reject(response);\n }\n else {\n let preparedData: Object = this.prepareData(response);\n if (preparedData.success) {\n resolve(this._loaders);\n }\n else {\n reject({success: false, data: preparedData.error});\n }\n }\n },\n err => {\n reject(err);\n });\n });\n }\n\n prepareData(response: MultiRequestResult): Object {\n this._loaders.forEach(function (loader, name) {\n let loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = (response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1));\n }\n }\n catch (err) {\n return {success: false, error: err};\n }\n });\n return {success: true, data: this._loaders};\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/data-loader-manager.js","//@flow\n\nimport RequestBuilder from '../../request-builder'\nimport BaseEntryService from '../services/base-entry-service'\nimport MetaDataService from '../services/meta-data-service'\nimport Configuration from '../config'\nimport KalturaPlaybackContext from '../response-types/kaltura-playback-context'\nimport KalturaMetadataListResponse from '../response-types/kaltura-metadata-list-response'\nimport KalturaBaseEntryListResponse from '../response-types/kaltura-base-entry-list-response'\n\nconst config = Configuration.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class MediaEntryLoader implements ILoader {\n static get name(): string {\n return \"media\";\n }\n\n _entryId: string;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n let mediaEntryResponse: KalturaBaseEntryListResponse = new KalturaBaseEntryListResponse(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);\n this._response.metadataListResult = new KalturaMetadataListResponse(response[2].data);\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(BaseEntryService.list(config.beUrl, params.ks, params.entryId));\n requests.push(BaseEntryService.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(MetaDataService.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._entryId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/media-entry-loader.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\nexport default class BaseEntryService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static getPlaybackContext(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n let contextDataParams = {objectType: \"KalturaContextDataParams\", flavorTags: \"all\"};\n let params = {entryId: entryId, ks: ks, contextDataParams: contextDataParams};\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n static getEntryListReqParams(entryId: string, ks: string): any {\n let filterParams = {redirectFromEntryId: entryId};\n let responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return {ks: ks, filter: filterParams, responseProfile: responseProfileParams};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/base-entry-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\nexport default class MetaDataService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n let filter = {objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\"};\n let params = {filter: filter, ks: ks};\n request.params = params;\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/meta-data-service.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaAccessControlMessage from './kaltura-access-control-message'\nimport KalturaPlaybackSource from './kaltura-playback-source'\nimport KalturaRuleAction from './kaltura-rule-action'\nimport KalturaFlavorAsset from './kaltura-flavor-asset'\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nexport default class KalturaPlaybackContext extends ServiceResult {\n /**\n * @member - The playback sources\n * @type {Array}\n */\n sources: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n actions: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n messages: Array = [];\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n flavorAssets: Array = [];\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n constructor(response: Object) {\n super(response);\n if (!this.hasError) {\n\n let messages = response.messages;\n if (messages) {\n messages.map(message => this.messages.push(new KalturaAccessControlMessage(message)));\n }\n\n let actions = response.actions;\n if (actions) {\n actions.map(action => this.actions.push(new KalturaRuleAction(action)));\n }\n\n let sources = response.sources;\n if (sources) {\n sources.map(source => this.sources.push(new KalturaPlaybackSource(source)));\n }\n\n let flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(flavor => this.flavorAssets.push(new KalturaFlavorAsset(flavor)));\n }\n }\n\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-context.js","//@flow\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nexport default class KalturaAccessControlMessage {\n /**\n * @member - The access control message\n * @type {string}\n */\n message: string;\n /**\n * @member - The access control message code\n * @@type {string}\n */\n code: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n this.message = data.message;\n this.code = data.code\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-access-control-message.js","//@flow\nimport {KalturaRuleActionType} from '../../enums'\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nexport default class KalturaRuleAction {\n /**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n type: KalturaRuleActionType;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.type = data.type;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-rule-action.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMediaEntry from './kaltura-media-entry'\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nexport default class KalturaBaseEntryListResponse extends ServiceResult {\n /**\n * @member - The total count\n * @type {number}\n */\n totalCount: number;\n /**\n * @member - The entries\n * @type {Array}\n */\n entries: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.entries = [];\n responseObj.objects.map(entry => this.entries.push(new KalturaMediaEntry(entry)));\n }\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","//@flow\nimport {EntryType, MediaType} from '../../enums'\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nexport default class KalturaMediaEntry {\n /**\n * @member - The entry id\n * @type {string}\n */\n id: string;\n /**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\n name: string;\n /**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n dataUrl: string;\n /**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n flavorParamsIds: string;\n /**\n * @member - The entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n type: EntryType;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n entryType: MediaType;\n\n /**\n * @constructor\n * @param {Object} entry The json response\n */\n constructor(entry: Object) {\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n }\n}\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-media-entry.js","//@flow\nimport SessionService from '../services/session-service'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class SessionLoader implements ILoader {\n static get name(): string {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n _partnerId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.ks = response[0].data.ks;\n }\n\n get response(): any {\n return this._response.ks;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(SessionService.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._partnerId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/session-loader.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\nexport default class SessionService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static anonymousSession(baseUrl: string, partnerId: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = {widgetId: \"_\" + partnerId};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/session-service.js","//@flow\nimport UiConfService from '../services/ui-conf-service'\nimport KalturaUiConfResponse from '../response-types/kaltura-ui-conf-response'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n\nexport default class UiConfigLoader implements ILoader {\n static get name(): string {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.uiConf = new KalturaUiConfResponse(response[0].data);\n }\n\n get response(): any {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null)\n try {\n return JSON.parse(this._response.uiConf.config).plugins;\n }\n catch (err) {\n return null;\n }\n else\n return null;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(UiConfService.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._uiConfId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/ui-config-loader.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\nexport default class UiConfService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static get(baseUrl: string, ks: string, uiConfID: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n let responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = {id: uiConfID, responseProfile: responseProfileParams, ks: ks};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ui-conf-service.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport {UIConfType, UIConfCreationMode} from '../../enums';\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nexport default class KalturaUiConfResponse extends ServiceResult {\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n name: string;\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n description: string;\n objTypeAsString: string;\n width: number;\n height: number;\n htmlParams: string;\n swfUrl: string;\n confFilePath: string;\n confFile: string;\n confFileFeatures: string;\n name: string;\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n config: string;\n confVars: string;\n useCdn: boolean;\n tags: string;\n swfUrlVersion: string;\n created: Date;\n updated: Date;\n html5Url: string;\n version: string;\n partnerTags: string;\n objType: UIConfType;\n creationMode: UIConfCreationMode;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n super(data);\n if (!this.hasError) {\n this.name = data.name;\n\n this.description = data.description;\n this.objTypeAsString = data.objTypeAsString;\n this.width = data.width;\n this.height = data.height;\n this.htmlParams = data.htmlParams;\n this.swfUrl = data.swfUrl;\n this.confFilePath = data.confFilePath;\n this.confFile = data.confFile;\n this.confFileFeatures = data.confFileFeatures;\n this.config = data.config;\n this.confVars = data.confVars;\n this.useCdn = data.useCdn;\n this.tags = data.tags;\n this.swfUrlVersion = data.swfUrlVersion;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.html5Url = data.description;\n this.version = data.description;\n this.partnerTags = data.description;\n this.objType = data.description;\n this.creationMode = data.description;\n\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-ui-conf-response.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/ovpProvider.min.js","webpack:///providers/webpack/bootstrap f637f682938d5ebb67e6","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/enums.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/../node_modules/js-logger/src/logger.js","webpack:///providers/./entities/media-sources.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-source.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-flavor-asset.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata-list-response.js","webpack:///providers/./entities/media-entry.js","webpack:///providers/./entities/media-source.js","webpack:///providers/./entities/drm.js","webpack:///providers/./k-provider/ovp/ovp-provider.js","webpack:///providers/./k-provider/ovp/provider-parser.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-metadata.js","webpack:///providers/./k-provider/ovp/play-source-url-builder.js","webpack:///providers/./k-provider/xml-parser.js","webpack:///providers/./entities/media-format.js","webpack:///providers/./k-provider/ovp/loaders/data-loader-manager.js","webpack:///providers/./k-provider/ovp/loaders/media-entry-loader.js","webpack:///providers/./k-provider/ovp/services/base-entry-service.js","webpack:///providers/./k-provider/ovp/services/meta-data-service.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-playback-context.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-access-control-message.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-rule-action.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-media-entry.js","webpack:///providers/./k-provider/ovp/loaders/session-loader.js","webpack:///providers/./k-provider/ovp/services/session-service.js","webpack:///providers/./k-provider/ovp/loaders/ui-config-loader.js","webpack:///providers/./k-provider/ovp/services/ui-conf-service.js","webpack:///providers/./k-provider/ovp/response-types/kaltura-ui-conf-response.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","_classCallCheck","instance","Constructor","TypeError","value","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","RequestBuilder","headers","arguments","undefined","Map","set","baseUrl","Error","service","action","_this","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","setRequestHeader","send","params","default","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","assign","ServiceResult","response","hasError","objectType","error","ServiceError","data","_interopRequireDefault","_multiRequestBuilder","_multiRequestBuilder2","_config","_config2","config","OvpService","ks","partnerId","ovpParams","multiReq","LOG_LEVEL","_jsLogger","JsLogger","newObj","LoggerFactory","options","useDefaults","Logger","defaultLevel","DEBUG","INFO","TIME","WARN","ERROR","OFF","Scheme","PLAYREADY_CENC","WIDEVINE_CENC","FAIRPLAY","PLAYREADY","WIDEVINE","KalturaRuleActionTypes","DRM_POLICY","BLOCK","PREVIEW","LIMIT_FLAVORS","ADD_TO_STORAGE","LIMIT_DELIVERY_PROFILES","SERVE_FROM_REMOTE_SERVER","REQUEST_HOST_REGEX","LIMIT_THUMBNAIL_CAPTURE","Status","QUEUED","CONVERTING","READY","DELETED","NOT_APPLICABLE","TEMP","WAIT_FOR_CONVERT","IMPORTING","VALIDATING","EXPORTING","MetadataObjectTypes","AD_CUE_POINT","ANNOTATION","CODE_CUE_POINT","THUMB_CUE_POINT","ENTRY","CATEGORY","USER","PARTNER","DYNAMIC_OBJECT","MetadataStatuses","VALID","INVALID","EntryStatuses","ERROR_IMPORTING","ERROR_CONVERTING","SCAN_FAILURE","IMPORT","INFECTED","PRECONVERT","PENDING","MODERATE","BLOCKED","NO_CONTENT","EntryModerationStatuses","PENDING_MODERATION","APPROVED","REJECTED","FLAGGED_FOR_REVIEW","AUTO_APPROVED","EntryTypes","AUTOMATIC","EXTERNAL_MEDIA","MEDIA_CLIP","MIX","PLAYLIST","DATA","LIVE_STREAM","LIVE_CHANNEL","DOCUMENT","MediaTypes","VIDEO","IMAGE","AUDIO","LIVE_STREAM_FLASH","LIVE_STREAM_WINDOWS_MEDIA","LIVE_STREAM_REAL_MEDIA","LIVE_STREAM_QUICKTIME","MediaEntryTypes","Vod","Live","Image","Audio","Unknown","UIConfTypes","PLAYER","CONTRIBUTION_WIZARD","SIMPLE_EDITOR","ADVANCED_EDITOR","APP_STUDIO","KRECORD","PLAYER_V3","KMC_ACCOUNT","KMC_ANALYTICS","KMC_CONTENT","KMC_DASHBOARD","KMC_LOGIN","PLAYER_SL","CLIENTSIDE_ENCODER","KMC_GENERAL","KMC_ROLES_AND_PERMISSIONS","CLIPPER","KSR","KUPLOAD","WEBCASTING","UIConfCreationModes","WIZARD","ADVANCED","_defineProperty","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","MultiRequestResult","_requestBuilder","_requestBuilder2","_baseServiceResult","_baseServiceResult2","_logger","_logger2","logger","MultiRequestBuilder","_RequestBuilder","getPrototypeOf","requests","push","requestParams","serviceDef","_this2","stringify","err","doHttpRequest","then","errorText","_this3","results","success","result","serviceResult","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","global","VERSION","logHandler","contextualLoggersByNameMap","bind","scope","func","apply","merge","args","defineLogLevel","ContextualLogger","defaultContext","context","setLevel","filterLevel","log","info","newLevel","enabledFor","lvl","debug","invoke","warn","time","label","timeEnd","level","msgArgs","globalLogger","L","setHandler","createDefaultHandler","formatter","messages","unshift","timerStartTimeByLabelMap","invokeConsoleMethod","hdlr","Function","console","Array","slice","timerLabel","Date","getTime","_mediaSource","MediaSources","progressive","dash","hls","source","mediaFormat","_kalturaDrmPlaybackPluginData","_kalturaDrmPlaybackPluginData2","KalturaPlaybackSource","drm","deliveryProfileId","url","protocols","flavorIds","map","protocol","returnValue","split","KalturaFlavorAsset","id","flavorParamsId","fileExt","bitrate","width","height","frameRate","isOriginal","isWeb","containerFormat","videoCodecId","language","_kalturaMetadata","_kalturaMetadata2","KalturaMetadataListResponse","_ServiceResult","responseObj","totalCount","metas","objects","meta","_enums","_mediaSources","MediaEntry","metaData","type","_drm","MediaSource","Drm","licenseUrl","scheme","OvpProvider","_providerParser","_providerParser2","_dataLoaderManager","_dataLoaderManager2","_mediaEntryLoader","_mediaEntryLoader2","_sessionLoader","_sessionLoader2","_uiConfigLoader","_uiConfigLoader2","_mediaEntry","_mediaSources2","partnerID","_isAnonymous","entryId","uiConfId","_uiConfId","_dataLoader","validateParams","add","fetchData","parseDataFromResponse","session","uiConfID","sources","duration","metadata","plugins","has","sessionLoader","uiConfLoader","pluginsJson","mediaLoader","mediaEntry","getMediaEntry","_kalturaPlaybackSource","_kalturaFlavorAsset","_kalturaMetadataListResponse","_playSourceUrlBuilder","_playSourceUrlBuilder2","_xmlParser","_xmlParser2","_mediaFormat","_mediaEntry2","_drm2","_mediaSource2","SUPPORTED_FORMATS","MediaFormats","mp4","ProviderParser","mediaEntryResponse","entry","playbackContext","playBackContextResult","metadataList","metadataListResult","kalturaSources","_getParsedSources","_parseMetaData","entryType","addAdaptiveSource","parsedSource","_parseAdaptiveSource","flavorAssets","sourceFormat","filter","_isProgressiveSource","progressiveSource","find","_parseProgressiveSources","kalturaSource","mediaSource","playUrl","hasFlavorIds","extension","pathExt","mimetype","mimeType","build","getProtocol","_getBaseProtocol","hasDrmData","drmParams","licenseURL","drmData","sourceId","flavor","bandwidth","metaXml","domParser","DOMParser","xml","replace","parseFromString","metasObj","xmlToJson","keys","splittedUrl","substring","KalturaDrmPlaybackPluginData","KalturaMetadata","metadataProfileId","metadataProfileVersion","metadataObjectType","objectId","version","created","setUTCSeconds","createdAt","updated","updatedAt","PlaySourceUrlBuilder","urlParams","endsWith","XmlParser","nodeType","attributes","j","attribute","item","nodeName","nodeValue","hasChildNodes","childNodes","old","wvm","mp3","_ovpService","_ovpService2","DataLoaderManager","_loaders","_multiRequest","getMultirequest","loader","execution_loader","isValid","startIndex","executionLoaderResponseMap","from","val","index","_loadersResponseMap","execute","_multiResponse","preparedData","prepareData","loaderDataIndexes","_baseEntryService","_baseEntryService2","_metaDataService","_metaDataService2","_kalturaPlaybackContext","_kalturaPlaybackContext2","_kalturaMetadataListResponse2","_kalturaBaseEntryListResponse","_kalturaBaseEntryListResponse2","MediaEntryLoader","_response","buildRequests","_entryId","list","getPlaybackContext","_requests","entries","BaseEntryService","_OvpService","tag","contextDataParams","flavorTags","getEntryListReqParams","redirectFromEntryId","responseProfile","fields","MetaDataService","objectIdEqual","metadataObjectTypeEqual","_kalturaAccessControlMessage","_kalturaAccessControlMessage2","_kalturaPlaybackSource2","_kalturaRuleAction","_kalturaRuleAction2","_kalturaFlavorAsset2","KalturaPlaybackContext","actions","KalturaAccessControlMessage","KalturaRuleAction","_kalturaMediaEntry","_kalturaMediaEntry2","KalturaBaseEntryListResponse","KalturaMediaEntry","dataUrl","mediaType","flavorParamsIds","_sessionService","_sessionService2","SessionLoader","_partnerId","anonymousSession","SessionService","widgetId","_uiConfService","_uiConfService2","_kalturaUiConfResponse","_kalturaUiConfResponse2","UiConfigLoader","uiConf","UiConfService","responseProfileParams","KalturaUiConfResponse","description","objTypeAsString","htmlParams","swfUrl","confFilePath","confFile","confFileFeatures","confVars","useCdn","tags","swfUrlVersion","html5Url","partnerTags","objType","creationMode"],"mappings":"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","file":"ovpProvider.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 15);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Request builder\n * @classdesc\n */\nvar RequestBuilder = function () {\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n\n /**\n * @member - Service headers\n * @type {Map}\n */\n\n /**\n * @member - Service action\n * @type {string}\n */\n function RequestBuilder() {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n _classCallCheck(this, RequestBuilder);\n\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n\n /**\n * @member - Service tag\n * @type {string}\n */\n\n /**\n * @member - Service base url\n * @type {Map}\n */\n\n /**\n * @member - Service params\n * @type {any}\n */\n\n\n /**\n * @member - Service name\n * @type {string}\n */\n\n\n _createClass(RequestBuilder, [{\n key: \"getUrl\",\n value: function getUrl() {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n var url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n\n }, {\n key: \"doHttpRequest\",\n value: function doHttpRequest() {\n var _this = this;\n\n var request = new XMLHttpRequest();\n return new Promise(function (resolve, reject) {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n var jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && (typeof jsonResponse === \"undefined\" ? \"undefined\" : _typeof(jsonResponse)) === 'object' && jsonResponse.code && jsonResponse.message) reject(jsonResponse);else resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(_this.method, _this.getUrl());\n _this.headers.forEach(function (value, key) {\n request.setRequestHeader(key, value);\n });\n request.send(_this.params);\n });\n }\n }]);\n\n return RequestBuilder;\n}();\n\nexports.default = RequestBuilder;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nvar Configuration = function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n }\n\n _createClass(Configuration, null, [{\n key: \"set\",\n value: function set(clientConfig) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n return defaultConfig;\n }\n }]);\n\n return Configuration;\n}();\n\nexports.default = Configuration;\nexports.Configuration = Configuration;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base service result\n * @classdesc\n */\nvar ServiceResult =\n\n/**\n * @constructor\n * @param {Object} response - Service response\n */\n\n/**\n * @member - The service error\n * @type {ServiceError}\n */\n\n/**\n * @member - The service result data\n * @type {Object}\n */\nfunction ServiceResult(response) {\n _classCallCheck(this, ServiceResult);\n\n this.hasError = false;\n\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else {\n this.data = response;\n }\n}\n\n/**\n * @member - Is service returned an error\n * @type {boolean}\n */\n;\n\n/**\n * Service error\n * @classdesc\n */\n\n\nexports.default = ServiceResult;\n\nvar ServiceError =\n\n/**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n\n/**\n * @member - The error code\n * @type {string}\n */\nfunction ServiceError(code, message) {\n _classCallCheck(this, ServiceError);\n\n this.code = code;\n this.message = message;\n}\n/**\n * @member - The error message\n * @type {string}\n */\n;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\nvar SERVICE_NAME = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\n\nvar OvpService = function () {\n function OvpService() {\n _classCallCheck(this, OvpService);\n }\n\n _createClass(OvpService, null, [{\n key: 'getMultirequest',\n\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n value: function getMultirequest(ks, partnerId) {\n var ovpParams = config.serviceParams;\n Object.assign(ovpParams, { ks: ks });\n if (partnerId) {\n Object.assign(ovpParams, { partnerId: partnerId });\n }\n var multiReq = new _multiRequestBuilder2.default();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n }]);\n\n return OvpService;\n}();\n\nexports.default = OvpService;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOG_LEVEL = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jsLogger = __webpack_require__(7);\n\nvar JsLogger = _interopRequireWildcard(_jsLogger);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LoggerFactory = function () {\n function LoggerFactory(options) {\n _classCallCheck(this, LoggerFactory);\n\n JsLogger.useDefaults(options || {});\n }\n\n _createClass(LoggerFactory, [{\n key: \"get\",\n value: function get(name) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n }]);\n\n return LoggerFactory;\n}();\n\nvar Logger = new LoggerFactory({ defaultLevel: JsLogger.DEBUG });\nvar LOG_LEVEL = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexports.default = Logger;\nexports.LOG_LEVEL = LOG_LEVEL;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Scheme = exports.Scheme = function Scheme() {\n _classCallCheck(this, Scheme);\n};\n\nScheme.PLAYREADY_CENC = \"drm.PLAYREADY_CENC\";\nScheme.WIDEVINE_CENC = \"drm.WIDEVINE_CENC\";\nScheme.FAIRPLAY = \"fairplay.FAIRPLAY\";\nScheme.PLAYREADY = \"playReady.PLAYREADY\";\nScheme.WIDEVINE = \"widevine.WIDEVINE\";\n\nvar KalturaRuleActionTypes = exports.KalturaRuleActionTypes = function KalturaRuleActionTypes() {\n _classCallCheck(this, KalturaRuleActionTypes);\n};\n\nKalturaRuleActionTypes.DRM_POLICY = \"drm.DRM_POLICY\";\nKalturaRuleActionTypes.BLOCK = 1;\nKalturaRuleActionTypes.PREVIEW = 2;\nKalturaRuleActionTypes.LIMIT_FLAVORS = 3;\nKalturaRuleActionTypes.ADD_TO_STORAGE = 4;\nKalturaRuleActionTypes.LIMIT_DELIVERY_PROFILES = 5;\nKalturaRuleActionTypes.SERVE_FROM_REMOTE_SERVER = 6;\nKalturaRuleActionTypes.REQUEST_HOST_REGEX = 7;\nKalturaRuleActionTypes.LIMIT_THUMBNAIL_CAPTURE = 8;\n\nvar Status = exports.Status = function Status() {\n _classCallCheck(this, Status);\n};\n\nStatus.ERROR = -1;\nStatus.QUEUED = 0;\nStatus.CONVERTING = 1;\nStatus.READY = 2;\nStatus.DELETED = 3;\nStatus.NOT_APPLICABLE = 4;\nStatus.TEMP = 5;\nStatus.WAIT_FOR_CONVERT = 6;\nStatus.IMPORTING = 7;\nStatus.VALIDATING = 8;\nStatus.EXPORTING = 9;\n\nvar MetadataObjectTypes = exports.MetadataObjectTypes = function MetadataObjectTypes() {\n _classCallCheck(this, MetadataObjectTypes);\n};\n\nMetadataObjectTypes.AD_CUE_POINT = \"adCuePointMetadata.AdCuePoint\";\nMetadataObjectTypes.ANNOTATION = \"annotationMetadata.Annotation\";\nMetadataObjectTypes.CODE_CUE_POINT = \"codeCuePointMetadata.CodeCuePoint\";\nMetadataObjectTypes.THUMB_CUE_POINT = \"thumbCuePointMetadata.thumbCuePoint\";\nMetadataObjectTypes.ENTRY = 1;\nMetadataObjectTypes.CATEGORY = 2;\nMetadataObjectTypes.USER = 3;\nMetadataObjectTypes.PARTNER = 4;\nMetadataObjectTypes.DYNAMIC_OBJECT = 5;\n\nvar MetadataStatuses = exports.MetadataStatuses = function MetadataStatuses() {\n _classCallCheck(this, MetadataStatuses);\n};\n\nMetadataStatuses.VALID = 1;\nMetadataStatuses.INVALID = 2;\nMetadataStatuses.DELETED = 3;\n\nvar EntryStatuses = exports.EntryStatuses = function EntryStatuses() {\n _classCallCheck(this, EntryStatuses);\n};\n\nEntryStatuses.ERROR_IMPORTING = -2;\nEntryStatuses.ERROR_CONVERTING = -1;\nEntryStatuses.SCAN_FAILURE = \"virusScan.ScanFailure\";\nEntryStatuses.IMPORT = 0;\nEntryStatuses.INFECTED = \"virusScan.Infected\";\nEntryStatuses.PRECONVERT = 1;\nEntryStatuses.READY = 2;\nEntryStatuses.DELETED = 3;\nEntryStatuses.PENDING = 4;\nEntryStatuses.MODERATE = 5;\nEntryStatuses.BLOCKED = 6;\nEntryStatuses.NO_CONTENT = 7;\n\nvar EntryModerationStatuses = exports.EntryModerationStatuses = function EntryModerationStatuses() {\n _classCallCheck(this, EntryModerationStatuses);\n};\n\nEntryModerationStatuses.PENDING_MODERATION = 1;\nEntryModerationStatuses.APPROVED = 2;\nEntryModerationStatuses.REJECTED = 3;\nEntryModerationStatuses.FLAGGED_FOR_REVIEW = 4;\nEntryModerationStatuses.MODERATE = 5;\nEntryModerationStatuses.AUTO_APPROVED = 6;\n\nvar EntryTypes = exports.EntryTypes = function EntryTypes() {\n _classCallCheck(this, EntryTypes);\n};\n\nEntryTypes.AUTOMATIC = { value: -1 };\nEntryTypes.EXTERNAL_MEDIA = { value: \"externalMedia.externalMedia\" };\nEntryTypes.MEDIA_CLIP = { value: 1 };\nEntryTypes.MIX = { value: 2 };\nEntryTypes.PLAYLIST = { value: 5 };\nEntryTypes.DATA = { value: 6 };\nEntryTypes.LIVE_STREAM = { value: 7 };\nEntryTypes.LIVE_CHANNEL = { value: 8 };\nEntryTypes.DOCUMENT = { value: 10 };\n\nvar MediaTypes = exports.MediaTypes = function MediaTypes() {\n _classCallCheck(this, MediaTypes);\n};\n\nMediaTypes.VIDEO = { value: 1 };\nMediaTypes.IMAGE = { value: 2 };\nMediaTypes.AUDIO = { value: 5 };\nMediaTypes.LIVE_STREAM_FLASH = { value: 201 };\nMediaTypes.LIVE_STREAM_WINDOWS_MEDIA = { value: 202 };\nMediaTypes.LIVE_STREAM_REAL_MEDIA = { value: 203 };\nMediaTypes.LIVE_STREAM_QUICKTIME = { value: 204 };\n\nvar MediaEntryTypes = exports.MediaEntryTypes = function MediaEntryTypes() {\n _classCallCheck(this, MediaEntryTypes);\n};\n\nMediaEntryTypes.Vod = 'Vod';\nMediaEntryTypes.Live = 'Live';\nMediaEntryTypes.Image = 'Image';\nMediaEntryTypes.Audio = 'Audio';\nMediaEntryTypes.Unknown = 'Unknown';\n\nvar UIConfTypes = exports.UIConfTypes = function UIConfTypes() {\n _classCallCheck(this, UIConfTypes);\n};\n\nUIConfTypes.PLAYER = 1;\nUIConfTypes.CONTRIBUTION_WIZARD = 2;\nUIConfTypes.SIMPLE_EDITOR = 3;\nUIConfTypes.ADVANCED_EDITOR = 4;\nUIConfTypes.PLAYLIST = 5;\nUIConfTypes.APP_STUDIO = 6;\nUIConfTypes.KRECORD = 7;\nUIConfTypes.PLAYER_V3 = 8;\nUIConfTypes.KMC_ACCOUNT = 9;\nUIConfTypes.KMC_ANALYTICS = 10;\nUIConfTypes.KMC_CONTENT = 11;\nUIConfTypes.KMC_DASHBOARD = 12;\nUIConfTypes.KMC_LOGIN = 13;\nUIConfTypes.PLAYER_SL = 14;\nUIConfTypes.CLIENTSIDE_ENCODER = 15;\nUIConfTypes.KMC_GENERAL = 16;\nUIConfTypes.KMC_ROLES_AND_PERMISSIONS = 17;\nUIConfTypes.CLIPPER = 18;\nUIConfTypes.KSR = 19;\nUIConfTypes.KUPLOAD = 20;\nUIConfTypes.WEBCASTING = 21;\n\nvar UIConfCreationModes = exports.UIConfCreationModes = function UIConfCreationModes() {\n _classCallCheck(this, UIConfCreationModes);\n};\n\nUIConfCreationModes.WIZARD = 2;\nUIConfCreationModes.ADVANCED = 3;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MultiRequestResult = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseServiceResult = __webpack_require__(2);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _logger = __webpack_require__(4);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\n\nvar MultiRequestBuilder = function (_RequestBuilder) {\n _inherits(MultiRequestBuilder, _RequestBuilder);\n\n /**\n * @constructor\n */\n function MultiRequestBuilder() {\n _classCallCheck(this, MultiRequestBuilder);\n\n var _this = _possibleConstructorReturn(this, (MultiRequestBuilder.__proto__ || Object.getPrototypeOf(MultiRequestBuilder)).call(this));\n\n _this.requests = [];\n return _this;\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n\n\n _createClass(MultiRequestBuilder, [{\n key: 'add',\n value: function add(request) {\n this.requests.push(request);\n var requestParams = {};\n var serviceDef = { service: request.service, action: request.action };\n Object.assign(requestParams, _defineProperty({}, this.requests.length, Object.assign(serviceDef, request.params)));\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n\n }, {\n key: 'execute',\n value: function execute() {\n var _this2 = this;\n\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n logger.error('' + err.message);\n }\n return new Promise(function (resolve, reject) {\n _this2.doHttpRequest().then(function (data) {\n resolve(new MultiRequestResult(data));\n }, function (err) {\n var errorText = 'Error on multiRequest execution, error <' + err + '>.';\n reject(errorText);\n });\n });\n }\n }]);\n\n return MultiRequestBuilder;\n}(_requestBuilder2.default);\n\n/**\n * Multi Request result object\n * @classdesc\n */\n\n\nexports.default = MultiRequestBuilder;\n\nvar MultiRequestResult =\n\n/**\n * @constructor\n * @param {Object} response data\n */\n\n\n/**\n * @member - Is success\n * @type {boolean}\n */\nexports.MultiRequestResult = function MultiRequestResult(response) {\n var _this3 = this;\n\n _classCallCheck(this, MultiRequestResult);\n\n this.results = [];\n\n this.success = true;\n response.forEach(function (result) {\n var serviceResult = new _baseServiceResult2.default(result);\n _this3.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error('Service returned an error with error code: ' + serviceResult.error.code + ' and message: ' + serviceResult.error.message + '.');\n _this3.success = false;\n return;\n }\n });\n}\n/**\n * @member - Multi request response data\n * @type {Object}\n */\n;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _mediaSource = __webpack_require__(13);\n\nvar _mediaSource2 = _interopRequireDefault(_mediaSource);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nvar MediaSources = function () {\n\n /**\n * @constructor\n */\n\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n function MediaSources() {\n _classCallCheck(this, MediaSources);\n\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n\n\n _createClass(MediaSources, [{\n key: 'map',\n value: function map(source, mediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n }]);\n\n return MediaSources;\n}();\n\nexports.default = MediaSources;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _kalturaDrmPlaybackPluginData = __webpack_require__(17);\n\nvar _kalturaDrmPlaybackPluginData2 = _interopRequireDefault(_kalturaDrmPlaybackPluginData);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nvar KalturaPlaybackSource = function () {\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n\n /**\n * @member - The source URL\n * @type {string}\n */\n\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n function KalturaPlaybackSource(source) {\n var _this = this;\n\n _classCallCheck(this, KalturaPlaybackSource);\n\n this.drm = [];\n\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(function (drm) {\n return _this.drm.push(new _kalturaDrmPlaybackPluginData2.default(drm));\n });\n }\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n\n\n _createClass(KalturaPlaybackSource, [{\n key: \"hasDrmData\",\n value: function hasDrmData() {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n\n }, {\n key: \"hasFlavorIds\",\n value: function hasFlavorIds() {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n\n }, {\n key: \"getProtocol\",\n value: function getProtocol(protocol) {\n var returnValue = \"\";\n if (this.protocols && this.protocols.length > 0) {\n var protocolsArr = this.protocols.split(\",\");\n protocolsArr.forEach(function (p) {\n if (p == protocol) {\n returnValue = p;\n }\n });\n } else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n }]);\n\n return KalturaPlaybackSource;\n}();\n\nexports.default = KalturaPlaybackSource;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(5);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nvar KalturaFlavorAsset =\n\n/**\n * @constructor\n * @param {Object} data The json response\n */\n\n/**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n\n/**\n *@member - The video codec\n * @type {boolean}\n */\n\n/**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n\n/**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member -The file extension\n * @type {string}\n */\n\n/**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\nfunction KalturaFlavorAsset(data) {\n _classCallCheck(this, KalturaFlavorAsset);\n\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n}\n/**\n * @member - The label of the flavor asset\n * @type {string}\n */\n\n/**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n\n/**\n * @member - The container format\n * @type {boolean}\n */\n\n/**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n\n/**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n\n/**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n\n/**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n;\n\nexports.default = KalturaFlavorAsset;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(2);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaMetadata = __webpack_require__(18);\n\nvar _kalturaMetadata2 = _interopRequireDefault(_kalturaMetadata);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nvar KalturaMetadataListResponse = function (_ServiceResult) {\n _inherits(KalturaMetadataListResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n function KalturaMetadataListResponse(responseObj) {\n _classCallCheck(this, KalturaMetadataListResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaMetadataListResponse.__proto__ || Object.getPrototypeOf(KalturaMetadataListResponse)).call(this, responseObj));\n\n if (!_this.hasError) {\n _this.totalCount = responseObj.totalCount;\n if (_this.totalCount > 0) {\n _this.metas = [];\n responseObj.objects.map(function (meta) {\n return _this.metas.push(new _kalturaMetadata2.default(meta));\n });\n }\n }\n return _this;\n }\n /**\n * @member -The mata data array\n * @type {Array}\n */\n\n\n return KalturaMetadataListResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaMetadataListResponse;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(5);\n\nvar _mediaSources = __webpack_require__(8);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Media entry\n * @classdesc\n */\nvar MediaEntry =\n\n/**\n * @constructor\n */\n\n/**\n * @member - entry type\n * @type {MediaEntryType}\n */\n\n/**\n * @member - entry sources\n * @type {MediaSources}\n */\nfunction MediaEntry() {\n _classCallCheck(this, MediaEntry);\n\n this.metaData = new Map();\n this.type = _enums.MediaEntryTypes.Unknown;\n}\n/**\n * @member - entry metadata\n * @type {Map}\n */\n\n/**\n * @member - entry duration\n * @type {number}\n */\n\n\n/**\n * @member - entry ID\n * @type {string}\n */\n;\n\nexports.default = MediaEntry;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _drm = __webpack_require__(14);\n\nvar _drm2 = _interopRequireDefault(_drm);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Media source\n * @classdesc\n */\nvar MediaSource =\n\n/**\n * @constructor\n */\n\n/**\n * @member - media source height\n * @type {number}\n */\n\n/**\n * @member - media source bandwidth\n * @type {number}\n */\n\n/**\n * @member - media source mimetype\n * @type {string}\n */\n\n/**\n * @member - media source ID\n * @type {string}\n */\nfunction MediaSource() {\n _classCallCheck(this, MediaSource);\n}\n/**\n * @member - media source label\n * @type {string}\n */\n\n/**\n * @member - media source width\n * @type {number}\n */\n\n/**\n * @member - media source drm data\n * @type {Array}\n */\n\n/**\n * @member - media source URL\n * @type {string}\n */\n;\n\nexports.default = MediaSource;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(5);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Drm data\n * @classdesc\n */\nvar Drm =\n\n/**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n\n\n/**\n * @member - license URL\n * @type {string}\n */\nfunction Drm(licenseUrl, scheme) {\n _classCallCheck(this, Drm);\n\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n}\n/**\n * @member - drm scheme\n * @type {Scheme}\n */\n;\n\nexports.default = Drm;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.OvpProvider = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _logger = __webpack_require__(4);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _providerParser = __webpack_require__(16);\n\nvar _providerParser2 = _interopRequireDefault(_providerParser);\n\nvar _dataLoaderManager = __webpack_require__(22);\n\nvar _dataLoaderManager2 = _interopRequireDefault(_dataLoaderManager);\n\nvar _mediaEntryLoader = __webpack_require__(23);\n\nvar _mediaEntryLoader2 = _interopRequireDefault(_mediaEntryLoader);\n\nvar _sessionLoader = __webpack_require__(31);\n\nvar _sessionLoader2 = _interopRequireDefault(_sessionLoader);\n\nvar _uiConfigLoader = __webpack_require__(33);\n\nvar _uiConfigLoader2 = _interopRequireDefault(_uiConfigLoader);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _mediaEntry = __webpack_require__(12);\n\nvar _mediaEntry2 = _interopRequireDefault(_mediaEntry);\n\nvar _mediaSources = __webpack_require__(8);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Ovp provider\n * @classdesc\n */\nvar OvpProvider = exports.OvpProvider = function () {\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n\n /**\n * @member - partner ID\n * @type {number}\n */\n function OvpProvider(partnerID) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var config = arguments[2];\n\n _classCallCheck(this, OvpProvider);\n\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n _config2.default.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n\n /**\n * @member - ks\n * @type {string}\n */\n\n\n _createClass(OvpProvider, [{\n key: 'getConfig',\n value: function getConfig(entryId, uiConfId) {\n var _this = this;\n\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new _dataLoaderManager2.default(this.partnerID, this.ks);\n return new Promise(function (resolve, reject) {\n if (_this.validateParams(entryId, uiConfId)) {\n var ks = _this.ks;\n if (_this._isAnonymous) {\n ks = \"{1:result:ks}\";\n _this._dataLoader.add(_sessionLoader2.default, { partnerId: _this.partnerID });\n }\n _this._dataLoader.add(_mediaEntryLoader2.default, { entryId: entryId, ks: ks });\n _this._dataLoader.add(_uiConfigLoader2.default, { uiConfId: uiConfId, ks: ks });\n _this._dataLoader.fetchData().then(function (response) {\n resolve(_this.parseDataFromResponse(response));\n }, function (err) {\n reject(err);\n });\n } else {\n reject({ success: false, data: \"Missing mandatory parameter\" });\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n\n }, {\n key: 'parseDataFromResponse',\n value: function parseDataFromResponse(data) {\n logger.debug(\"Data parsing started\");\n var config = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId\n },\n sources: new _mediaSources2.default(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(_sessionLoader2.default.name)) {\n var sessionLoader = data.get(_sessionLoader2.default.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(_uiConfigLoader2.default.name)) {\n var uiConfLoader = data.get(_uiConfigLoader2.default.name);\n var pluginsJson = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(_mediaEntryLoader2.default.name)) {\n var mediaLoader = data.get(_mediaEntryLoader2.default.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n var mediaEntry = _providerParser2.default.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return config;\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n\n }, {\n key: 'validateParams',\n value: function validateParams(entryId, uiConfId) {\n return !!entryId || !!uiConfId;\n }\n }]);\n\n return OvpProvider;\n}();\n\nexports.default = OvpProvider;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _kalturaPlaybackSource = __webpack_require__(9);\n\nvar _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource);\n\nvar _kalturaFlavorAsset = __webpack_require__(10);\n\nvar _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset);\n\nvar _kalturaMetadataListResponse = __webpack_require__(11);\n\nvar _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse);\n\nvar _playSourceUrlBuilder = __webpack_require__(19);\n\nvar _playSourceUrlBuilder2 = _interopRequireDefault(_playSourceUrlBuilder);\n\nvar _xmlParser = __webpack_require__(20);\n\nvar _xmlParser2 = _interopRequireDefault(_xmlParser);\n\nvar _enums = __webpack_require__(5);\n\nvar _logger = __webpack_require__(4);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _mediaFormat = __webpack_require__(21);\n\nvar _mediaEntry = __webpack_require__(12);\n\nvar _mediaEntry2 = _interopRequireDefault(_mediaEntry);\n\nvar _drm = __webpack_require__(14);\n\nvar _drm2 = _interopRequireDefault(_drm);\n\nvar _mediaSource = __webpack_require__(13);\n\nvar _mediaSource2 = _interopRequireDefault(_mediaSource);\n\nvar _mediaSources = __webpack_require__(8);\n\nvar _mediaSources2 = _interopRequireDefault(_mediaSources);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nvar SUPPORTED_FORMATS = new Map([[\"mpegdash\", _mediaFormat.MediaFormats.dash], [\"applehttp\", _mediaFormat.MediaFormats.hls], [\"url\", _mediaFormat.MediaFormats.mp4]]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\n\nvar ProviderParser = function () {\n function ProviderParser() {\n _classCallCheck(this, ProviderParser);\n }\n\n _createClass(ProviderParser, null, [{\n key: 'getMediaEntry',\n\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {any} mediaEntryResponse - The media entry response\n * @returns {MediaEntry} - The media entry\n * @static\n * @public\n */\n value: function getMediaEntry(ks, partnerID, uiConfId, mediaEntryResponse) {\n var mediaEntry = new _mediaEntry2.default();\n var entry = mediaEntryResponse.entry;\n var playbackContext = mediaEntryResponse.playBackContextResult;\n var metadataList = mediaEntryResponse.metadataListResult;\n var kalturaSources = playbackContext.sources;\n var sources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n var metadata = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n var type = _enums.MediaEntryTypes.Unknown;\n\n switch (entry.entryType) {\n case _enums.MediaTypes.IMAGE.value:\n type = _enums.MediaEntryTypes.Image;\n break;\n case _enums.MediaTypes.AUDIO.value:\n type = _enums.MediaEntryTypes.Audio;\n break;\n default:\n switch (entry.type) {\n case _enums.EntryTypes.MEDIA_CLIP.value:\n type = _enums.MediaEntryTypes.Vod;\n break;\n case _enums.EntryTypes.LIVE_STREAM.value:\n case _enums.EntryTypes.LIVE_CHANNEL.value:\n type = _enums.MediaEntryTypes.Live;\n break;\n default:\n type = _enums.MediaEntryTypes.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n /**\n * Returns the parsed sources\n * @function _getParsedSources\n * @param {Array} kalturaSources - The kaltura sources\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {Object} entry - The entry\n * @param {Object} playbackContext - The playback context\n * @return {MediaSources} - A media sources\n * @static\n * @private\n */\n\n }, {\n key: '_getParsedSources',\n value: function _getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext) {\n var sources = new _mediaSources2.default();\n\n var addAdaptiveSource = function addAdaptiveSource(source) {\n var parsedSource = ProviderParser._parseAdaptiveSource(source, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n var sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n };\n\n var parseAdaptiveSources = function parseAdaptiveSources() {\n kalturaSources.filter(function (source) {\n return !ProviderParser._isProgressiveSource(source);\n }).forEach(addAdaptiveSource);\n };\n\n var parseProgressiveSources = function parseProgressiveSources() {\n var progressiveSource = kalturaSources.find(ProviderParser._isProgressiveSource);\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n /**\n * Returns a parsed adaptive source\n * @function _parseAdaptiveSource\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {MediaSource} - The parsed adaptive kalturaSource\n * @static\n * @private\n */\n\n }, {\n key: '_parseAdaptiveSource',\n value: function _parseAdaptiveSource(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entryId) {\n var mediaSource = new _mediaSource2.default();\n if (kalturaSource) {\n var playUrl = \"\";\n var mediaFormat = SUPPORTED_FORMATS.get(kalturaSource.format);\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (kalturaSource.hasFlavorIds()) {\n var extension = \"\";\n if (!mediaFormat) {\n if (flavorAssets && flavorAssets.length > 0) {\n extension = flavorAssets[0].fileExt;\n }\n } else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = _playSourceUrlBuilder2.default.build({\n entryId: entryId,\n flavorIds: kalturaSource.flavorIds,\n format: kalturaSource.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: kalturaSource.getProtocol(this._getBaseProtocol())\n });\n } else {\n playUrl = kalturaSource.url;\n }\n\n if (playUrl == \"\") {\n logger.error('failed to create play url from source, discarding source: (' + entryId + '_' + kalturaSource.deliveryProfileId + '), ' + kalturaSource.format + '.');\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entryId + \"_\" + kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n if (kalturaSource.hasDrmData()) {\n var drmParams = [];\n kalturaSource.drm.forEach(function (drm) {\n drmParams.push(new _drm2.default(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n }\n return mediaSource;\n }\n\n /**\n * Returns parsed progressive sources\n * @function _parseProgressiveSources\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {Array} - The parsed progressive kalturaSources\n * @static\n * @private\n */\n\n }, {\n key: '_parseProgressiveSources',\n value: function _parseProgressiveSources(kalturaSource, flavorAssets, ks, partnerID, uiConfId, entryId) {\n var sources = [];\n if (kalturaSource) {\n var protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n var format = kalturaSource.format;\n var sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map(function (flavor) {\n if (flavor.height && flavor.width) {\n var mediaSource = new _mediaSource2.default();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = _playSourceUrlBuilder2.default.build({\n entryId: entryId,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n /**\n * @function _isProgressiveSource\n * @param {KalturaPlaybackSource} source - The kaltura source\n * @return {boolean} - Is progressive source\n * @static\n * @private\n */\n\n }, {\n key: '_isProgressiveSource',\n value: function _isProgressiveSource(source) {\n var sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return !!sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n\n }, {\n key: '_parseMetaData',\n value: function _parseMetaData(metadataList) {\n var metadata = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach(function (meta) {\n var metaXml = void 0;\n var domParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n var metasObj = _xmlParser2.default.xmlToJson(metaXml);\n var metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach(function (key) {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n });\n });\n }\n return metadata;\n }\n\n /**\n * Returns the base protocol\n * @function _getBaseProtocol\n * @returns {string} - The base protocol\n * @static\n * @private\n */\n\n }, {\n key: '_getBaseProtocol',\n value: function _getBaseProtocol() {\n var splittedUrl = config.baseUrl.split(\"/\");\n var baseProtocol = void 0;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n } else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n }]);\n\n return ProviderParser;\n}();\n\nexports.default = ProviderParser;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _enums = __webpack_require__(5);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nvar KalturaDrmPlaybackPluginData =\n\n/**\n * @constructor\n * @param {Object} drm The json response\n */\n\n/**\n * @member - The drm scheme\n * @type {Scheme}\n */\nfunction KalturaDrmPlaybackPluginData(drm) {\n _classCallCheck(this, KalturaDrmPlaybackPluginData);\n\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n}\n\n/**\n * @member - The license URL\n * @type {string}\n */\n;\n\nexports.default = KalturaDrmPlaybackPluginData;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nvar KalturaMetadata =\n\n/**\n * @constructor\n * @param {Object} data The response\n */\nfunction KalturaMetadata(data) {\n _classCallCheck(this, KalturaMetadata);\n\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n}\n/**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n;\n\nexports.default = KalturaMetadata;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\n\nvar PlaySourceUrlBuilder = function () {\n function PlaySourceUrlBuilder() {\n _classCallCheck(this, PlaySourceUrlBuilder);\n }\n\n _createClass(PlaySourceUrlBuilder, null, [{\n key: \"build\",\n\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n value: function build(urlParams) {\n var baseUrl = config.baseUrl;\n var partnerId = urlParams.partnerId;\n var entryId = urlParams.entryId;\n var ks = urlParams.ks;\n var uiConfId = urlParams.uiConfId;\n var format = urlParams.format;\n var protocol = urlParams.protocol;\n var extension = urlParams.extension;\n var flavorIds = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n var playUrl = baseUrl;\n if (!baseUrl.endsWith(\"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n } else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n }]);\n\n return PlaySourceUrlBuilder;\n}();\n\nexports.default = PlaySourceUrlBuilder;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Xml parser\n * @classdesc\n */\nvar XmlParser = function () {\n function XmlParser() {\n _classCallCheck(this, XmlParser);\n }\n\n _createClass(XmlParser, null, [{\n key: \"xmlToJson\",\n\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n value: function xmlToJson(xml) {\n var obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (var j = 0; j < xml.attributes.length; j++) {\n var attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n } else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (var i = 0; i < xml.childNodes.length; i++) {\n var item = xml.childNodes.item(i);\n var nodeName = item.nodeName;\n if (typeof obj[nodeName] == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n } else {\n if (typeof obj[nodeName].push == \"undefined\") {\n var old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n }]);\n\n return XmlParser;\n}();\n\nexports.default = XmlParser;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar MediaFormats = exports.MediaFormats = function MediaFormats() {\n _classCallCheck(this, MediaFormats);\n};\n\nMediaFormats.dash = {\n name: 'dash',\n mimeType: \"application/dash+xml\",\n pathExt: \"mpd\"\n};\nMediaFormats.hls = {\n name: 'hls',\n mimeType: \"application/x-mpegURL\",\n pathExt: \"m3u8\"\n};\nMediaFormats.wvm = {\n name: 'wvm',\n mimeType: \"video/wvm\",\n pathExt: \"wvm\"\n};\nMediaFormats.mp4 = {\n name: 'mp4',\n mimeType: \"video/mp4\",\n pathExt: \"mp4\"\n};\nMediaFormats.mp3 = {\n name: 'mp3',\n mimeType: \"audio/mpeg\",\n pathExt: \"mp3\"\n};\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Data loaders manager\n * @classdesc\n */\nvar DataLoaderManager = function () {\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n function DataLoaderManager(partnerID) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n\n _classCallCheck(this, DataLoaderManager);\n\n this._loaders = new Map();\n\n this._multiRequest = _ovpService2.default.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n\n\n _createClass(DataLoaderManager, [{\n key: 'add',\n value: function add(loader, params) {\n var _this = this;\n\n var execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n var startIndex = this._multiRequest.requests.length;\n //Get the requests\n var requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach(function (request) {\n _this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n var executionLoaderResponseMap = Array.from(new Array(requests.length), function (val, index) {\n return index + startIndex;\n });\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n\n }, {\n key: 'fetchData',\n value: function fetchData() {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2._multiRequest.execute().then(function (response) {\n _this2._multiResponse = response;\n if (!response.success) {\n reject(response);\n } else {\n var preparedData = _this2.prepareData(response);\n if (preparedData.success) {\n resolve(_this2._loaders);\n } else {\n reject({ success: false, data: preparedData.error });\n }\n }\n }, function (err) {\n reject(err);\n });\n });\n }\n }, {\n key: 'prepareData',\n value: function prepareData(response) {\n this._loaders.forEach(function (loader, name) {\n var loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1);\n }\n } catch (err) {\n return { success: false, error: err };\n }\n });\n return { success: true, data: this._loaders };\n }\n }]);\n\n return DataLoaderManager;\n}();\n\nDataLoaderManager._loadersResponseMap = new Map();\nexports.default = DataLoaderManager;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseEntryService = __webpack_require__(24);\n\nvar _baseEntryService2 = _interopRequireDefault(_baseEntryService);\n\nvar _metaDataService = __webpack_require__(25);\n\nvar _metaDataService2 = _interopRequireDefault(_metaDataService);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _kalturaPlaybackContext = __webpack_require__(26);\n\nvar _kalturaPlaybackContext2 = _interopRequireDefault(_kalturaPlaybackContext);\n\nvar _kalturaMetadataListResponse = __webpack_require__(11);\n\nvar _kalturaMetadataListResponse2 = _interopRequireDefault(_kalturaMetadataListResponse);\n\nvar _kalturaBaseEntryListResponse = __webpack_require__(29);\n\nvar _kalturaBaseEntryListResponse2 = _interopRequireDefault(_kalturaBaseEntryListResponse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\n\nvar MediaEntryLoader = function () {\n _createClass(MediaEntryLoader, null, [{\n key: 'name',\n get: function get() {\n return \"media\";\n }\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function MediaEntryLoader(params) {\n _classCallCheck(this, MediaEntryLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n _createClass(MediaEntryLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_baseEntryService2.default.list(config.beUrl, params.ks, params.entryId));\n requests.push(_baseEntryService2.default.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(_metaDataService2.default.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._entryId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n var mediaEntryResponse = new _kalturaBaseEntryListResponse2.default(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new _kalturaPlaybackContext2.default(response[1].data);\n this._response.metadataListResult = new _kalturaMetadataListResponse2.default(response[2].data);\n },\n get: function get() {\n return this._response;\n }\n }]);\n\n return MediaEntryLoader;\n}();\n\nexports.default = MediaEntryLoader;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\n\nvar BaseEntryService = function (_OvpService) {\n _inherits(BaseEntryService, _OvpService);\n\n function BaseEntryService() {\n _classCallCheck(this, BaseEntryService);\n\n return _possibleConstructorReturn(this, (BaseEntryService.__proto__ || Object.getPrototypeOf(BaseEntryService)).apply(this, arguments));\n }\n\n _createClass(BaseEntryService, null, [{\n key: 'getPlaybackContext',\n\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function getPlaybackContext(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n var contextDataParams = { objectType: \"KalturaContextDataParams\", flavorTags: \"all\" };\n var params = { entryId: entryId, ks: ks, contextDataParams: contextDataParams };\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n\n }, {\n key: 'list',\n value: function list(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n\n }, {\n key: 'getEntryListReqParams',\n value: function getEntryListReqParams(entryId, ks) {\n var filterParams = { redirectFromEntryId: entryId };\n var responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return { ks: ks, filter: filterParams, responseProfile: responseProfileParams };\n }\n }]);\n\n return BaseEntryService;\n}(_ovpService2.default);\n\nexports.default = BaseEntryService;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\n\nvar MetaDataService = function (_OvpService) {\n _inherits(MetaDataService, _OvpService);\n\n function MetaDataService() {\n _classCallCheck(this, MetaDataService);\n\n return _possibleConstructorReturn(this, (MetaDataService.__proto__ || Object.getPrototypeOf(MetaDataService)).apply(this, arguments));\n }\n\n _createClass(MetaDataService, null, [{\n key: 'list',\n\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function list(baseUrl, ks, entryId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n var filter = { objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\" };\n var params = { filter: filter, ks: ks };\n request.params = params;\n return request;\n }\n }]);\n\n return MetaDataService;\n}(_ovpService2.default);\n\nexports.default = MetaDataService;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(2);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaAccessControlMessage = __webpack_require__(27);\n\nvar _kalturaAccessControlMessage2 = _interopRequireDefault(_kalturaAccessControlMessage);\n\nvar _kalturaPlaybackSource = __webpack_require__(9);\n\nvar _kalturaPlaybackSource2 = _interopRequireDefault(_kalturaPlaybackSource);\n\nvar _kalturaRuleAction = __webpack_require__(28);\n\nvar _kalturaRuleAction2 = _interopRequireDefault(_kalturaRuleAction);\n\nvar _kalturaFlavorAsset = __webpack_require__(10);\n\nvar _kalturaFlavorAsset2 = _interopRequireDefault(_kalturaFlavorAsset);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nvar KalturaPlaybackContext = function (_ServiceResult) {\n _inherits(KalturaPlaybackContext, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n\n /**\n * @member - The playback sources\n * @type {Array}\n */\n function KalturaPlaybackContext(response) {\n _classCallCheck(this, KalturaPlaybackContext);\n\n var _this = _possibleConstructorReturn(this, (KalturaPlaybackContext.__proto__ || Object.getPrototypeOf(KalturaPlaybackContext)).call(this, response));\n\n _this.sources = [];\n _this.actions = [];\n _this.messages = [];\n _this.flavorAssets = [];\n\n if (!_this.hasError) {\n\n var messages = response.messages;\n if (messages) {\n messages.map(function (message) {\n return _this.messages.push(new _kalturaAccessControlMessage2.default(message));\n });\n }\n\n var actions = response.actions;\n if (actions) {\n actions.map(function (action) {\n return _this.actions.push(new _kalturaRuleAction2.default(action));\n });\n }\n\n var sources = response.sources;\n if (sources) {\n sources.map(function (source) {\n return _this.sources.push(new _kalturaPlaybackSource2.default(source));\n });\n }\n\n var flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(function (flavor) {\n return _this.flavorAssets.push(new _kalturaFlavorAsset2.default(flavor));\n });\n }\n }\n\n return _this;\n }\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n\n\n return KalturaPlaybackContext;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaPlaybackContext;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nvar KalturaAccessControlMessage =\n\n/**\n * @constructor\n * @param {Object} data The json response\n */\n\n/**\n * @member - The access control message\n * @type {string}\n */\nfunction KalturaAccessControlMessage(data) {\n _classCallCheck(this, KalturaAccessControlMessage);\n\n this.message = data.message;\n this.code = data.code;\n}\n/**\n * @member - The access control message code\n * @@type {string}\n */\n;\n\nexports.default = KalturaAccessControlMessage;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nvar KalturaRuleAction =\n\n/**\n * @constructor\n * @param {Object} data The response\n */\nfunction KalturaRuleAction(data) {\n _classCallCheck(this, KalturaRuleAction);\n\n this.type = data.type;\n}\n/**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n;\n\nexports.default = KalturaRuleAction;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(2);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _kalturaMediaEntry = __webpack_require__(30);\n\nvar _kalturaMediaEntry2 = _interopRequireDefault(_kalturaMediaEntry);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nvar KalturaBaseEntryListResponse = function (_ServiceResult) {\n _inherits(KalturaBaseEntryListResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n\n /**\n * @member - The total count\n * @type {number}\n */\n function KalturaBaseEntryListResponse(responseObj) {\n _classCallCheck(this, KalturaBaseEntryListResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaBaseEntryListResponse.__proto__ || Object.getPrototypeOf(KalturaBaseEntryListResponse)).call(this, responseObj));\n\n if (!_this.hasError) {\n _this.totalCount = responseObj.totalCount;\n if (_this.totalCount > 0) {\n _this.entries = [];\n responseObj.objects.map(function (entry) {\n return _this.entries.push(new _kalturaMediaEntry2.default(entry));\n });\n }\n }\n return _this;\n }\n /**\n * @member - The entries\n * @type {Array}\n */\n\n\n return KalturaBaseEntryListResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaBaseEntryListResponse;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nvar KalturaMediaEntry =\n\n/**\n * @constructor\n * @param {Object} entry The json response\n */\n\n/**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n\n/**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n\n/**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\nfunction KalturaMediaEntry(entry) {\n _classCallCheck(this, KalturaMediaEntry);\n\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n}\n/**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n\n/**\n * @member - The entry duration\n * @type {number}\n */\n\n/**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n\n/**\n * @member - The entry id\n * @type {string}\n */\n;\n\nexports.default = KalturaMediaEntry;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _sessionService = __webpack_require__(32);\n\nvar _sessionService2 = _interopRequireDefault(_sessionService);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n/**\n * Media entry loader\n * @classdesc\n */\n\nvar SessionLoader = function () {\n _createClass(SessionLoader, null, [{\n key: 'name',\n get: function get() {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function SessionLoader(params) {\n _classCallCheck(this, SessionLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n _createClass(SessionLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_sessionService2.default.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._partnerId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n this._response.ks = response[0].data.ks;\n },\n get: function get() {\n return this._response.ks;\n }\n }]);\n\n return SessionLoader;\n}();\n\nexports.default = SessionLoader;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\n\nvar SessionService = function (_OvpService) {\n _inherits(SessionService, _OvpService);\n\n function SessionService() {\n _classCallCheck(this, SessionService);\n\n return _possibleConstructorReturn(this, (SessionService.__proto__ || Object.getPrototypeOf(SessionService)).apply(this, arguments));\n }\n\n _createClass(SessionService, null, [{\n key: 'anonymousSession',\n\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function anonymousSession(baseUrl, partnerId) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = { widgetId: \"_\" + partnerId };\n return request;\n }\n }]);\n\n return SessionService;\n}(_ovpService2.default);\n\nexports.default = SessionService;\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _uiConfService = __webpack_require__(34);\n\nvar _uiConfService2 = _interopRequireDefault(_uiConfService);\n\nvar _kalturaUiConfResponse = __webpack_require__(35);\n\nvar _kalturaUiConfResponse2 = _interopRequireDefault(_kalturaUiConfResponse);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\n\nvar UiConfigLoader = function () {\n _createClass(UiConfigLoader, null, [{\n key: 'name',\n get: function get() {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n\n }]);\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n function UiConfigLoader(params) {\n _classCallCheck(this, UiConfigLoader);\n\n this._response = {};\n\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n _createClass(UiConfigLoader, [{\n key: 'buildRequests',\n\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function buildRequests(params) {\n var requests = [];\n requests.push(_uiConfService2.default.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n\n }, {\n key: 'isValid',\n value: function isValid() {\n return !!this._uiConfId;\n }\n }, {\n key: 'requests',\n set: function set(requests) {\n this._requests = requests;\n },\n get: function get() {\n return this._requests;\n }\n }, {\n key: 'response',\n set: function set(response) {\n this._response.uiConf = new _kalturaUiConfResponse2.default(response[0].data);\n },\n get: function get() {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null) try {\n return JSON.parse(this._response.uiConf.config).plugins;\n } catch (err) {\n return null;\n } else return null;\n }\n }]);\n\n return UiConfigLoader;\n}();\n\nexports.default = UiConfigLoader;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\n\nvar UiConfService = function (_OvpService) {\n _inherits(UiConfService, _OvpService);\n\n function UiConfService() {\n _classCallCheck(this, UiConfService);\n\n return _possibleConstructorReturn(this, (UiConfService.__proto__ || Object.getPrototypeOf(UiConfService)).apply(this, arguments));\n }\n\n _createClass(UiConfService, null, [{\n key: 'get',\n\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n value: function get(baseUrl, ks, uiConfID) {\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n var responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = { id: uiConfID, responseProfile: responseProfileParams, ks: ks };\n return request;\n }\n }]);\n\n return UiConfService;\n}(_ovpService2.default);\n\nexports.default = UiConfService;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _baseServiceResult = __webpack_require__(2);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nvar KalturaUiConfResponse = function (_ServiceResult) {\n _inherits(KalturaUiConfResponse, _ServiceResult);\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n function KalturaUiConfResponse(data) {\n _classCallCheck(this, KalturaUiConfResponse);\n\n var _this = _possibleConstructorReturn(this, (KalturaUiConfResponse.__proto__ || Object.getPrototypeOf(KalturaUiConfResponse)).call(this, data));\n\n if (!_this.hasError) {\n _this.name = data.name;\n\n _this.description = data.description;\n _this.objTypeAsString = data.objTypeAsString;\n _this.width = data.width;\n _this.height = data.height;\n _this.htmlParams = data.htmlParams;\n _this.swfUrl = data.swfUrl;\n _this.confFilePath = data.confFilePath;\n _this.confFile = data.confFile;\n _this.confFileFeatures = data.confFileFeatures;\n _this.config = data.config;\n _this.confVars = data.confVars;\n _this.useCdn = data.useCdn;\n _this.tags = data.tags;\n _this.swfUrlVersion = data.swfUrlVersion;\n _this.created = new Date(0);\n _this.created.setUTCSeconds(data.createdAt);\n _this.updated = new Date(0);\n _this.updated.setUTCSeconds(data.updatedAt);\n _this.html5Url = data.description;\n _this.version = data.description;\n _this.partnerTags = data.description;\n _this.objType = data.description;\n _this.creationMode = data.description;\n }\n return _this;\n }\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n\n\n return KalturaUiConfResponse;\n}(_baseServiceResult2.default);\n\nexports.default = KalturaUiConfResponse;\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// ovpProvider.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f637f682938d5ebb67e6","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: { [level: string]: Object } = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nexport class Scheme {\n static PLAYREADY_CENC: string = \"drm.PLAYREADY_CENC\";\n static WIDEVINE_CENC: string = \"drm.WIDEVINE_CENC\";\n static FAIRPLAY: string = \"fairplay.FAIRPLAY\";\n static PLAYREADY: string = \"playReady.PLAYREADY\";\n static WIDEVINE: string = \"widevine.WIDEVINE\";\n}\n\nexport class KalturaRuleActionTypes {\n static DRM_POLICY: KalturaRuleActionType = \"drm.DRM_POLICY\";\n static BLOCK: KalturaRuleActionType = 1;\n static PREVIEW: KalturaRuleActionType = 2;\n static LIMIT_FLAVORS: KalturaRuleActionType = 3;\n static ADD_TO_STORAGE: KalturaRuleActionType = 4;\n static LIMIT_DELIVERY_PROFILES: KalturaRuleActionType = 5;\n static SERVE_FROM_REMOTE_SERVER: KalturaRuleActionType = 6;\n static REQUEST_HOST_REGEX: KalturaRuleActionType = 7;\n static LIMIT_THUMBNAIL_CAPTURE: KalturaRuleActionType = 8;\n}\n\nexport class Status {\n static ERROR: number = -1;\n static QUEUED: number = 0;\n static CONVERTING: number = 1;\n static READY: number = 2;\n static DELETED: number = 3;\n static NOT_APPLICABLE: number = 4;\n static TEMP: number = 5;\n static WAIT_FOR_CONVERT: number = 6;\n static IMPORTING: number = 7;\n static VALIDATING: number = 8;\n static EXPORTING: number = 9;\n}\n\nexport class MetadataObjectTypes {\n static AD_CUE_POINT: MetadataObjectType = \"adCuePointMetadata.AdCuePoint\";\n static ANNOTATION: MetadataObjectType = \"annotationMetadata.Annotation\";\n static CODE_CUE_POINT: MetadataObjectType = \"codeCuePointMetadata.CodeCuePoint\";\n static THUMB_CUE_POINT: MetadataObjectType = \"thumbCuePointMetadata.thumbCuePoint\";\n static ENTRY: MetadataObjectType = 1;\n static CATEGORY: MetadataObjectType = 2;\n static USER: MetadataObjectType = 3;\n static PARTNER: MetadataObjectType = 4;\n static DYNAMIC_OBJECT: MetadataObjectType = 5;\n}\n\nexport class MetadataStatuses {\n static VALID: MetadataStatus = 1;\n static INVALID: MetadataStatus = 2;\n static DELETED: MetadataStatus = 3;\n}\n\nexport class EntryStatuses {\n static ERROR_IMPORTING: EntryStatus = -2;\n static ERROR_CONVERTING: EntryStatus = -1;\n static SCAN_FAILURE: EntryStatus = \"virusScan.ScanFailure\";\n static IMPORT: EntryStatus = 0;\n static INFECTED: EntryStatus = \"virusScan.Infected\";\n static PRECONVERT: EntryStatus = 1;\n static READY: EntryStatus = 2;\n static DELETED: EntryStatus = 3;\n static PENDING: EntryStatus = 4;\n static MODERATE: EntryStatus = 5;\n static BLOCKED: EntryStatus = 6;\n static NO_CONTENT: EntryStatus = 7\n}\n\nexport class EntryModerationStatuses {\n static PENDING_MODERATION: EntryModerationStatus = 1;\n static APPROVED: EntryModerationStatus = 2;\n static REJECTED: EntryModerationStatus = 3;\n static FLAGGED_FOR_REVIEW: EntryModerationStatus = 4;\n static MODERATE: EntryModerationStatus = 5;\n static AUTO_APPROVED: EntryModerationStatus = 6\n}\n\nexport class EntryTypes {\n static AUTOMATIC: EntryType = {value: -1};\n static EXTERNAL_MEDIA: EntryType = {value: \"externalMedia.externalMedia\"};\n static MEDIA_CLIP: EntryType = {value: 1};\n static MIX: EntryType = {value: 2};\n static PLAYLIST: EntryType = {value: 5};\n static DATA: EntryType = {value: 6};\n static LIVE_STREAM: EntryType = {value: 7};\n static LIVE_CHANNEL: EntryType = {value: 8};\n static DOCUMENT: EntryType = {value: 10};\n}\n\nexport class MediaTypes {\n static VIDEO: MediaType = {value: 1};\n static IMAGE: MediaType = {value: 2};\n static AUDIO: MediaType = {value: 5};\n static LIVE_STREAM_FLASH: MediaType = {value: 201};\n static LIVE_STREAM_WINDOWS_MEDIA: MediaType = {value: 202};\n static LIVE_STREAM_REAL_MEDIA: MediaType = {value: 203};\n static LIVE_STREAM_QUICKTIME: MediaType = {value: 204};\n}\n\nexport class MediaEntryTypes {\n static Vod: MediaEntryType = 'Vod';\n static Live: MediaEntryType = 'Live';\n static Image: MediaEntryType = 'Image';\n static Audio: MediaEntryType = 'Audio';\n static Unknown: MediaEntryType = 'Unknown';\n}\n\nexport class UIConfTypes {\n static PLAYER: UIConfType = 1;\n static CONTRIBUTION_WIZARD: UIConfType = 2;\n static SIMPLE_EDITOR: UIConfType = 3;\n static ADVANCED_EDITOR: UIConfType = 4;\n static PLAYLIST: UIConfType = 5;\n static APP_STUDIO: UIConfType = 6;\n static KRECORD: UIConfType = 7;\n static PLAYER_V3: UIConfType = 8;\n static KMC_ACCOUNT: UIConfType = 9;\n static KMC_ANALYTICS: UIConfType = 10;\n static KMC_CONTENT: UIConfType = 11;\n static KMC_DASHBOARD: UIConfType = 12;\n static KMC_LOGIN: UIConfType = 13;\n static PLAYER_SL: UIConfType = 14;\n static CLIENTSIDE_ENCODER: UIConfType = 15;\n static KMC_GENERAL: UIConfType = 16;\n static KMC_ROLES_AND_PERMISSIONS: UIConfType = 17;\n static CLIPPER: UIConfType = 18;\n static KSR: UIConfType = 19;\n static KUPLOAD: UIConfType = 20;\n static WEBCASTING: UIConfType = 21\n}\n\nexport class UIConfCreationModes {\n static WIZARD: UIConfCreationMode = 2;\n static ADVANCED: UIConfCreationMode = 3\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/enums.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/js-logger/src/logger.js\n// module id = 7\n// module chunks = 0 1","// @flow\nimport MediaSource from './media-source'\n\n/**\n * Container for the media sources aggregated by stream format.\n * @classdesc\n */\nexport default class MediaSources {\n /**\n * Progressive download media sources container.\n * @type {Array}\n * @public\n */\n progressive: Array;\n /**\n * Dash media sources container.\n * @type {Array}\n * @public\n */\n dash: Array;\n /**\n * Hls media sources container.\n * @type {Array}\n * @public\n */\n hls: Array;\n\n /**\n * @constructor\n */\n constructor() {\n this.progressive = [];\n this.dash = [];\n this.hls = [];\n }\n\n /**\n * Maps the source to one of the containers according to his media format.\n * @param {MediaSource} source - The source to add to one of the containers.\n * @param {MediaFormat} mediaFormat - The media format of the source.\n * @returns {void}\n */\n map(source: MediaSource, mediaFormat: ?MediaFormat) {\n if (mediaFormat) {\n switch (mediaFormat.name) {\n case 'mp4':\n this.progressive.push(source);\n break;\n case 'dash':\n this.dash.push(source);\n break;\n case 'hls':\n this.hls.push(source);\n break;\n default:\n break;\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-sources.js","//@flow\nimport KalturaDrmPlaybackPluginData from './kaltura-drm-playback-plugin-data'\n\n/**\n * Ovp BE playback source\n * @classdesc\n */\nexport default class KalturaPlaybackSource {\n /**\n * @member - source format according to delivery profile streamer type (applehttp, mpegdash etc.)\n * @type {string}\n */\n format: string;\n /**\n * @member - delivery profile Id\n * @type {string}\n */\n deliveryProfileId: string;\n /**\n * @member - The source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - comma separated string according to deliveryProfile media protocols ('http,https' etc.)\n * @type {string}\n */\n protocols: string;\n /**\n * @member - comma separated string of flavor ids\n * @type {string}\n */\n flavorIds: string;\n /**\n * @member - drm data object containing relevant license url ,scheme name and certificate\n * @type {Array}\n */\n drm: Array = [];\n\n /**\n * @constructor\n * @param {Object} source The response\n */\n constructor(source: Object) {\n this.format = source.format;\n this.deliveryProfileId = source.deliveryProfileId;\n this.url = source.url;\n this.protocols = source.protocols;\n this.flavorIds = source.flavorIds;\n\n if (source.drm) {\n source.drm.map(drm => this.drm.push(new KalturaDrmPlaybackPluginData(drm)));\n }\n\n\n }\n\n /**\n * Checks if source has DRM data\n * @function hasDrmData\n * @returns {boolean} Is source has DRM\n */\n hasDrmData(): boolean {\n return this.drm && this.drm.length > 0;\n }\n\n /**\n * Checks if source has flavor IDs\n * @function hasFlavorIds\n * @returns {boolean} Is source ha flavor IDs\n */\n hasFlavorIds(): boolean {\n return !!this.flavorIds && this.flavorIds.length > 0;\n }\n\n /**\n * Returns source desired protocol if supported\n * @param {string} protocol - the desired protocol for the source (base play url protocol)\n * @returns {string} - protocol if protocol is in the protocols list - if not empty string returned\n */\n getProtocol(protocol: string): string {\n let returnValue: string = \"\";\n if (this.protocols && this.protocols.length > 0) {\n let protocolsArr: Array = this.protocols.split(\",\");\n protocolsArr.forEach((p) => {\n if (p == protocol) {\n returnValue = p;\n }\n });\n }\n else if (protocol == \"http\") {\n return protocol;\n }\n return returnValue;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-source.js","//@flow\nimport {Status} from '../../enums'\n\n/**\n * Ovp BE FlavorAsset\n * @classdesc\n */\nexport default class KalturaFlavorAsset {\n /**\n * @member - The ID of the Flavor Asset\n * @type {string}\n */\n id: string;\n /**\n * @member -The Flavor Params used to create this Flavor Asset\n * @type {string}\n */\n flavorParamsId: string;\n /**\n * @member -The file extension\n * @type {string}\n */\n fileExt: string;\n /**\n * @member - The overall bitrate (in KBits) of the Flavor Asset\n * @type {string}\n */\n bitrate: number;\n /**\n * @member - The width of the Flavor Asset\n * @type {number}\n */\n width: number;\n /**\n * @member - The height of the Flavor Asset\n * @type {number}\n */\n height: number;\n /**\n * @member - The frame rate (in FPS) of the Flavor Asset\n * @type {number}\n */\n frameRate: number;\n /**\n * @member - True if this Flavor Asset is the original source\n * @type {number}\n */\n isOriginal: boolean;\n /**\n * @member - True if this Flavor Asset is playable in KDP\n * @type {boolean}\n */\n isWeb: boolean;\n /**\n * @member - The container format\n * @type {boolean}\n */\n containerFormat: string;\n /**\n *@member - The video codec\n * @type {boolean}\n */\n videoCodecId: string;\n /**\n * @member - The status of the Flavor Asset\n * @type {string}\n */\n status: Status;\n /**\n * @member - The language of the flavor asset\n * @type {Status}\n */\n language: string;\n /**\n * @member - The label of the flavor asset\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: any) {\n this.id = data.id;\n this.flavorParamsId = data.flavorParamsId;\n this.fileExt = data.fileExt;\n this.bitrate = data.bitrate;\n this.width = data.width;\n this.height = data.height;\n this.id = data.id;\n this.frameRate = data.frameRate;\n this.isOriginal = data.isOriginal;\n this.isWeb = data.isWeb;\n this.containerFormat = data.containerFormat;\n this.videoCodecId = data.videoCodecId;\n this.status = data.status;\n this.language = data.language;\n this.label = data.label;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-flavor-asset.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMetadata from './kaltura-metadata'\n\n/**\n * Ovp BE Metadata list response\n * @classdesc\n */\nexport default class KalturaMetadataListResponse extends ServiceResult {\n totalCount: number;\n /**\n * @member -The mata data array\n * @type {Array}\n */\n metas: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.metas = [];\n responseObj.objects.map(meta => this.metas.push(new KalturaMetadata(meta)));\n }\n\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata-list-response.js","//@flow\nimport {MediaEntryTypes} from '../k-provider/enums'\nimport MediaSources from './media-sources'\n\n/**\n * Media entry\n * @classdesc\n */\nexport default class MediaEntry {\n\n /**\n * @member - entry ID\n * @type {string}\n */\n id: string;\n /**\n * @member - entry sources\n * @type {MediaSources}\n */\n sources: MediaSources;\n /**\n * @member - entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - entry type\n * @type {MediaEntryType}\n */\n type: MediaEntryType;\n /**\n * @member - entry metadata\n * @type {Map}\n */\n metaData: Map;\n\n /**\n * @constructor\n */\n constructor() {\n this.metaData = new Map();\n this.type = MediaEntryTypes.Unknown;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-entry.js","//@flow\nimport Drm from '../entities/drm'\n\n/**\n * Media source\n * @classdesc\n */\nexport default class MediaSource {\n /**\n * @member - media source ID\n * @type {string}\n */\n id: string;\n /**\n * @member - media source URL\n * @type {string}\n */\n url: string;\n /**\n * @member - media source mimetype\n * @type {string}\n */\n mimetype: string;\n /**\n * @member - media source drm data\n * @type {Array}\n */\n drmData: Array;\n /**\n * @member - media source bandwidth\n * @type {number}\n */\n bandwidth: number;\n /**\n * @member - media source width\n * @type {number}\n */\n width: number;\n /**\n * @member - media source height\n * @type {number}\n */\n height: number;\n /**\n * @member - media source label\n * @type {string}\n */\n label: string;\n\n /**\n * @constructor\n */\n constructor() {\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-source.js","//@flow\n\nimport {Scheme} from '../k-provider/enums';\n\n/**\n * Drm data\n * @classdesc\n */\nexport default class Drm {\n\n /**\n * @member - license URL\n * @type {string}\n */\n licenseUrl: string;\n /**\n * @member - drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @constructor\n * @param {string} licenseUrl - the license URL\n * @param {Scheme} scheme - the drm scheme\n */\n constructor(licenseUrl: string, scheme: Scheme) {\n this.licenseUrl = licenseUrl;\n this.scheme = scheme;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/drm.js","//@flow\nimport Logger from '../../util/logger'\nimport ProviderParser from './provider-parser'\nimport DataLoaderManager from './loaders/data-loader-manager'\nimport MediaEntryLoader from './loaders/media-entry-loader'\nimport SessionLoader from './loaders/session-loader'\nimport UiConfigLoader from './loaders/ui-config-loader'\nimport Configuration from './config'\nimport MediaEntry from '../../entities/media-entry'\nimport MediaSources from '../../entities/media-sources'\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\ntype playerConfig = {\n id: string,\n session: Object,\n sources: MediaSources,\n duration: number,\n type: string,\n metadata: Object,\n plugins: Object\n};\n\n/**\n * Ovp provider\n * @classdesc\n */\nexport class OvpProvider {\n /**\n * @member - ks\n * @type {string}\n */\n ks: string;\n /**\n * @member - partner ID\n * @type {number}\n */\n partnerID: number;\n /**\n * @member - is anonymous\n * @type {boolean}\n * @private\n */\n _isAnonymous: boolean;\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n /**\n * @member - Data loader\n * @type {DataLoaderManager}\n * @private\n */\n _dataLoader: DataLoaderManager;\n\n /**\n * @constructor\n * @param {number} partnerID The partner ID\n * @param {string} [ks=\"\"] The provider ks (has empty string as default value)\n * @param {Object} [config] The provider config(optional)\n */\n constructor(partnerID: number, ks: string = \"\", config?: Object) {\n this.partnerID = partnerID;\n this.ks = ks;\n this._isAnonymous = !this.ks;\n Configuration.set(config);\n }\n\n /**\n * Returns player json configuration\n * @function getConfig\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConf ID\n * @returns {Promise} The provider config object as promise\n */\n getConfig(entryId?: string, uiConfId?: number): Promise {\n if (uiConfId != null) {\n this._uiConfId = uiConfId;\n }\n this._dataLoader = new DataLoaderManager(this.partnerID, this.ks);\n return new Promise((resolve, reject) => {\n if (this.validateParams(entryId, uiConfId)) {\n let ks: string = this.ks;\n if (this._isAnonymous) {\n ks = \"{1:result:ks}\";\n this._dataLoader.add(SessionLoader, {partnerId: this.partnerID});\n }\n this._dataLoader.add(MediaEntryLoader, {entryId: entryId, ks: ks});\n this._dataLoader.add(UiConfigLoader, {uiConfId: uiConfId, ks: ks});\n this._dataLoader.fetchData()\n .then(response => {\n resolve(this.parseDataFromResponse(response));\n },\n err => {\n reject(err);\n });\n }\n else {\n reject({success: false, data: \"Missing mandatory parameter\"});\n }\n });\n }\n\n /**\n * Parses BE data to json configuration object\n * @function parseDataFromResponse\n * @param {Map} data The data to parse\n * @returns {Object} The parsed config object\n */\n parseDataFromResponse(data: Map): Object {\n logger.debug(\"Data parsing started\");\n let config: playerConfig = {\n id: \"\",\n session: {\n partnerID: this.partnerID,\n uiConfID: this._uiConfId,\n },\n sources: new MediaSources(),\n duration: 0,\n type: \"Unknown\",\n metadata: {},\n plugins: {}\n };\n if (data != null) {\n if (data.has(SessionLoader.name)) {\n let sessionLoader = data.get(SessionLoader.name);\n if (sessionLoader != null && sessionLoader.response != null) {\n this.ks = sessionLoader.response;\n this._isAnonymous = !this.ks;\n config.session.ks = this.ks;\n }\n }\n if (data.has(UiConfigLoader.name)) {\n let uiConfLoader = data.get(UiConfigLoader.name);\n let pluginsJson: Object = {};\n if (uiConfLoader != null) {\n pluginsJson = uiConfLoader.response;\n }\n config.plugins = pluginsJson;\n }\n if (data.has(MediaEntryLoader.name)) {\n let mediaLoader = data.get(MediaEntryLoader.name);\n if (mediaLoader != null && mediaLoader.response != null) {\n let mediaEntry: MediaEntry = ProviderParser.getMediaEntry(this.ks, this.partnerID, this._uiConfId, mediaLoader.response);\n config.id = mediaEntry.id;\n config.sources = mediaEntry.sources;\n config.duration = mediaEntry.duration;\n config.type = mediaEntry.type;\n config.metadata = mediaEntry.metaData;\n }\n }\n }\n logger.debug(\"Data parsing finished\", config);\n return (config);\n }\n\n /**\n * Parameters validation function\n * @param {string} entryId The entry ID\n * @param {number} uiConfId The uiConfID\n * @returns {boolean} Is valid params\n */\n validateParams(entryId?: string, uiConfId?: number): boolean {\n return !!entryId || !!uiConfId;\n }\n\n}\n\nexport default OvpProvider;\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/ovp-provider.js","//@flow\nimport KalturaPlaybackSource from './response-types/kaltura-playback-source'\nimport KalturaFlavorAsset from './response-types/kaltura-flavor-asset'\nimport KalturaMetadataListResponse from './response-types/kaltura-metadata-list-response'\nimport PlaySourceUrlBuilder from \"./play-source-url-builder\"\nimport XmlParser from '../xml-parser'\nimport {MediaEntryTypes, EntryTypes, MediaTypes} from '../enums'\nimport Logger from '../../util/logger'\nimport Configuration from './config'\nimport {MediaFormats} from '../../entities/media-format'\nimport MediaEntry from '../../entities/media-entry'\nimport Drm from '../../entities/drm'\nimport MediaSource from '../../entities/media-source'\nimport MediaSources from '../../entities/media-sources'\n\nconst config = Configuration.get();\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * @constant\n * @type {Map}\n */\nconst SUPPORTED_FORMATS: Map = new Map([\n [\"mpegdash\", MediaFormats.dash],\n [\"applehttp\", MediaFormats.hls],\n [\"url\", MediaFormats.mp4]\n]);\n\n/**\n * Ovp provider parser\n * @classdesc\n */\nexport default class ProviderParser {\n\n /**\n * Returns parsed media entry by given OVP response objects\n * @function getMediaEntry\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {any} mediaEntryResponse - The media entry response\n * @returns {MediaEntry} - The media entry\n * @static\n * @public\n */\n static getMediaEntry(ks: string, partnerID: number, uiConfId: number, mediaEntryResponse: any): MediaEntry {\n let mediaEntry: MediaEntry = new MediaEntry();\n let entry = mediaEntryResponse.entry;\n let playbackContext = mediaEntryResponse.playBackContextResult;\n let metadataList = mediaEntryResponse.metadataListResult;\n let kalturaSources: Array = playbackContext.sources;\n let sources: MediaSources = ProviderParser._getParsedSources(kalturaSources, ks, partnerID, uiConfId, entry, playbackContext);\n\n mediaEntry.sources = sources;\n\n let metadata: Map = this._parseMetaData(metadataList);\n mediaEntry.metaData = metadata;\n mediaEntry.id = entry.id;\n mediaEntry.duration = entry.duration;\n\n let type: MediaEntryType = MediaEntryTypes.Unknown;\n\n switch (entry.entryType) {\n case MediaTypes.IMAGE.value:\n type = MediaEntryTypes.Image;\n break;\n case MediaTypes.AUDIO.value:\n type = MediaEntryTypes.Audio;\n break;\n default:\n switch (entry.type) {\n case EntryTypes.MEDIA_CLIP.value:\n type = MediaEntryTypes.Vod;\n break;\n case EntryTypes.LIVE_STREAM.value:\n case EntryTypes.LIVE_CHANNEL.value:\n type = MediaEntryTypes.Live;\n break;\n default:\n type = MediaEntryTypes.Unknown;\n }\n }\n mediaEntry.type = type;\n\n return mediaEntry;\n }\n\n /**\n * Returns the parsed sources\n * @function _getParsedSources\n * @param {Array} kalturaSources - The kaltura sources\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {Object} entry - The entry\n * @param {Object} playbackContext - The playback context\n * @return {MediaSources} - A media sources\n * @static\n * @private\n */\n static _getParsedSources(kalturaSources: Array, ks: string, partnerID: number, uiConfId: number, entry: Object, playbackContext: Object): MediaSources {\n let sources: MediaSources = new MediaSources();\n\n let addAdaptiveSource = function(source: KalturaPlaybackSource): void{\n let parsedSource = ProviderParser._parseAdaptiveSource(source, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n sources.map(parsedSource, sourceFormat);\n };\n\n let parseAdaptiveSources = function (): void {\n kalturaSources.filter((source) => !ProviderParser._isProgressiveSource(source)).forEach(addAdaptiveSource);\n };\n\n let parseProgressiveSources = function (): void{\n let progressiveSource = kalturaSources.find(ProviderParser._isProgressiveSource);\n sources.progressive = ProviderParser._parseProgressiveSources(progressiveSource, playbackContext.flavorAssets, ks, partnerID, uiConfId, entry.id);\n };\n\n if (kalturaSources && kalturaSources.length > 0) {\n parseAdaptiveSources();\n parseProgressiveSources();\n }\n\n return sources;\n }\n\n /**\n * Returns a parsed adaptive source\n * @function _parseAdaptiveSource\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {MediaSource} - The parsed adaptive kalturaSource\n * @static\n * @private\n */\n static _parseAdaptiveSource(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): MediaSource {\n let mediaSource: MediaSource = new MediaSource();\n if (kalturaSource) {\n let playUrl: string = \"\";\n let mediaFormat = SUPPORTED_FORMATS.get(kalturaSource.format);\n // in case playbackSource doesn't have flavors we don't need to build the url and we'll use the provided one.\n if (kalturaSource.hasFlavorIds()) {\n let extension: string = \"\";\n if (!mediaFormat) {\n if (flavorAssets && flavorAssets.length > 0) {\n extension = flavorAssets[0].fileExt;\n }\n }\n else {\n extension = mediaFormat.pathExt;\n mediaSource.mimetype = mediaFormat.mimeType;\n }\n\n playUrl = PlaySourceUrlBuilder.build({\n entryId: entryId,\n flavorIds: kalturaSource.flavorIds,\n format: kalturaSource.format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: extension,\n protocol: kalturaSource.getProtocol(this._getBaseProtocol())\n });\n\n }\n else {\n playUrl = kalturaSource.url;\n }\n\n if (playUrl == \"\") {\n logger.error(`failed to create play url from source, discarding source: (${entryId}_${kalturaSource.deliveryProfileId}), ${kalturaSource.format}.`);\n return mediaSource;\n }\n\n mediaSource.url = playUrl;\n mediaSource.id = entryId + \"_\" + kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n if (kalturaSource.hasDrmData()) {\n let drmParams: Array = [];\n kalturaSource.drm.forEach((drm) => {\n drmParams.push(new Drm(drm.licenseURL, drm.scheme));\n });\n mediaSource.drmData = drmParams;\n }\n }\n return mediaSource;\n }\n\n /**\n * Returns parsed progressive sources\n * @function _parseProgressiveSources\n * @param {KalturaPlaybackSource} kalturaSource - A kaltura source\n * @param {Array} flavorAssets - The flavor Assets of the kaltura source\n * @param {string} ks - The ks\n * @param {number} partnerID - The partner ID\n * @param {number} uiConfId - The uiConf ID\n * @param {string} entryId - The entry id\n * @returns {Array} - The parsed progressive kalturaSources\n * @static\n * @private\n */\n static _parseProgressiveSources(kalturaSource: ?KalturaPlaybackSource, flavorAssets: Array, ks: string, partnerID: number, uiConfId: number, entryId: string): Array {\n let sources = [];\n if (kalturaSource) {\n let protocol = kalturaSource.getProtocol(this._getBaseProtocol());\n let format = kalturaSource.format;\n let sourceId = kalturaSource.deliveryProfileId + \",\" + kalturaSource.format;\n flavorAssets.map((flavor) => {\n if (flavor.height && flavor.width) {\n let mediaSource: MediaSource = new MediaSource();\n mediaSource.id = flavor.id + sourceId;\n mediaSource.mimetype = 'video/mp4';\n mediaSource.height = flavor.height;\n mediaSource.width = flavor.width;\n mediaSource.bandwidth = flavor.bitrate * 1024;\n mediaSource.label = flavor.label || flavor.language;\n mediaSource.url = PlaySourceUrlBuilder.build({\n entryId: entryId,\n flavorIds: flavor.id,\n format: format,\n ks: ks,\n partnerId: partnerID,\n uiConfId: uiConfId,\n extension: 'mp4',\n protocol: protocol\n });\n sources.push(mediaSource);\n }\n });\n }\n return sources;\n }\n\n /**\n * @function _isProgressiveSource\n * @param {KalturaPlaybackSource} source - The kaltura source\n * @return {boolean} - Is progressive source\n * @static\n * @private\n */\n static _isProgressiveSource(source: KalturaPlaybackSource): boolean {\n let sourceFormat = SUPPORTED_FORMATS.get(source.format);\n return !!sourceFormat && sourceFormat.name === 'mp4';\n }\n\n /**\n * Ovp metadata parser\n * @function _parseMetaData\n * @param {KalturaMetadataListResponse} metadataList The metadata list\n * @returns {Map} Parsed metadata\n * @static\n * @private\n */\n static _parseMetaData(metadataList: KalturaMetadataListResponse): Map {\n let metadata: Object = {};\n if (metadataList && metadataList.metas && metadataList.metas.length > 0) {\n metadataList.metas.forEach((meta) => {\n let metaXml: Object;\n let domParser: DOMParser = new DOMParser();\n meta.xml = meta.xml.replace(/\\r?\\n|\\r/g, \"\");\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n meta.xml = meta.xml.replace(/>\\s*/g, '>');\n metaXml = domParser.parseFromString(meta.xml, 'text/xml');\n let metasObj: Object = XmlParser.xmlToJson(metaXml);\n let metaKeys = Object.keys(metasObj.metadata);\n metaKeys.forEach((key) => {\n metadata[key] = metasObj.metadata[key][\"#text\"];\n })\n })\n }\n return metadata;\n }\n\n /**\n * Returns the base protocol\n * @function _getBaseProtocol\n * @returns {string} - The base protocol\n * @static\n * @private\n */\n static _getBaseProtocol(): string {\n let splittedUrl: Array = config.baseUrl.split(\"/\");\n let baseProtocol: string;\n if (splittedUrl && splittedUrl.length > 0) {\n baseProtocol = splittedUrl[0].substring(0, splittedUrl[0].length - 1);\n }\n else {\n baseProtocol = \"http\";\n }\n return baseProtocol;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/provider-parser.js","//@flow\nimport {Scheme} from '../../enums'\n\n/**\n * Ovp BE DrmPlaybackPluginData\n * @classdesc\n */\nexport default class KalturaDrmPlaybackPluginData {\n /**\n * @member - The drm scheme\n * @type {Scheme}\n */\n scheme: Scheme;\n\n /**\n * @member - The license URL\n * @type {string}\n */\n licenseURL: string;\n\n /**\n * @constructor\n * @param {Object} drm The json response\n */\n constructor(drm: any) {\n this.scheme = drm.scheme;\n this.licenseURL = drm.licenseURL;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-drm-playback-plugin-data.js","//@flow\n\n/**\n * Ovp BE Metadata\n * @classdesc\n */\nexport default class KalturaMetadata {\n id: number;\n metadataProfileId: number;\n metadataProfileVersion: number;\n metadataObjectType: MetadataObjectType;\n objectId: string;\n version: number;\n created: Date;\n updated: Date;\n status: MetadataStatus;\n /**\n * @member - The Metadata xml - represented as XML string\n * @type {string}\n */\n xml: string;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.id = data.id;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataProfileVersion = data.metadataProfileVersion;\n this.metadataProfileId = data.metadataProfileId;\n this.metadataObjectType = data.metadataObjectType;\n this.objectId = data.objectId;\n this.version = data.version;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.status = data.status;\n this.xml = data.xml;\n\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-metadata.js","//@flow\nimport Configuration from './config'\n\nconst config = Configuration.get();\n\n/**\n * Media source url builder\n * @classdesc\n */\nexport default class PlaySourceUrlBuilder {\n\n /**\n * Returns source url by given url params\n * @function build\n * @param {Object} urlParams The params\n * @returns {string} The URL\n * @static\n */\n static build(urlParams: Object): string {\n let baseUrl: string = config.baseUrl;\n let partnerId: string = urlParams.partnerId;\n let entryId: string = urlParams.entryId;\n let ks: string = urlParams.ks;\n let uiConfId: string = urlParams.uiConfId;\n let format: string = urlParams.format;\n let protocol: string = urlParams.protocol;\n let extension: string = urlParams.extension;\n let flavorIds: string = urlParams.flavorIds;\n\n if (baseUrl == \"\" && partnerId == \"\" && entryId == \"\" && extension == \"\" && format == \"\") {\n return \"\";\n }\n\n let playUrl = baseUrl;\n if (!baseUrl.endsWith(\"/\")) {\n playUrl += \"/\";\n }\n playUrl += \"p/\" + partnerId + \"/sp/\" + partnerId + \"00\" + \"/playManifest/entryId/\" + entryId + \"/protocol/\" + protocol + \"/format/\" + format;\n\n if (flavorIds != \"\") {\n playUrl += \"/flavorIds/\" + flavorIds;\n }\n else if (uiConfId != \"\") {\n playUrl += \"/uiConfId/\" + uiConfId;\n }\n\n if (this.ks != \"\") {\n playUrl += \"/ks/\" + ks;\n }\n\n playUrl += \"/a.\" + extension;\n\n if (uiConfId && flavorIds != \"\") {\n playUrl += \"?uiConfId=.\" + uiConfId;\n }\n\n return playUrl;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/play-source-url-builder.js","//@flow\n\n/**\n * Xml parser\n * @classdesc\n */\nexport default class XmlParser {\n /**\n * Parses xml string to json object\n * @param {string} xml The xml to parse\n * @returns {{}} The parsed xml as Json object\n * @static\n */\n static xmlToJson(xml: Object) {\n let obj = {};\n if (xml.nodeType == 1) {\n if (xml.attributes.length > 0) {\n obj[\"@attributes\"] = {};\n for (let j = 0; j < xml.attributes.length; j++) {\n let attribute = xml.attributes.item(j);\n obj[\"@attributes\"][attribute.nodeName] = attribute.nodeValue;\n }\n }\n }\n else if (xml.nodeType == 3) {\n obj = xml.nodeValue;\n }\n if (xml.hasChildNodes()) {\n for (let i = 0; i < xml.childNodes.length; i++) {\n let item = xml.childNodes.item(i);\n let nodeName = item.nodeName;\n if (typeof (obj[nodeName]) == \"undefined\") {\n obj[nodeName] = this.xmlToJson(item);\n }\n else {\n if (typeof (obj[nodeName].push) == \"undefined\") {\n let old = obj[nodeName];\n obj[nodeName] = [];\n obj[nodeName].push(old);\n }\n obj[nodeName].push(this.xmlToJson(item));\n }\n }\n }\n return obj;\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/xml-parser.js","//@flow\nexport class MediaFormats {\n static dash: MediaFormat = {\n name: 'dash',\n mimeType: \"application/dash+xml\",\n pathExt: \"mpd\"\n };\n\n static hls: MediaFormat = {\n name: 'hls',\n mimeType: \"application/x-mpegURL\",\n pathExt: \"m3u8\"\n };\n\n static wvm: MediaFormat = {\n name: 'wvm',\n mimeType: \"video/wvm\",\n pathExt: \"wvm\"\n };\n\n static mp4: MediaFormat = {\n name: 'mp4',\n mimeType: \"video/mp4\",\n pathExt: \"mp4\"\n };\n\n static mp3: MediaFormat = {\n name: 'mp3',\n mimeType: \"audio/mpeg\",\n pathExt: \"mp3\"\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./entities/media-format.js","//@flow\nimport OvpService from '../services/ovp-service'\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport {MultiRequestResult} from '../../multi-request-builder'\n\n/**\n * Data loaders manager\n * @classdesc\n */\nexport default class DataLoaderManager {\n /**\n * @member - Lodaers response map index\n * @type {Map>}\n * @private\n * @static\n */\n static _loadersResponseMap: Map> = new Map();\n /**\n * @member - Loaders multi request\n * @type {MultiRequestBuilder}\n * @private\n */\n _multiRequest: MultiRequestBuilder;\n /**\n * @member - Loaders multi response\n * @type {MultiRequestResult}\n * @private\n */\n _multiResponse: MultiRequestResult;\n /**\n * @member - Loaders to execute\n * @type {Map}\n * @private\n */\n _loaders: Map = new Map();\n\n /**\n * @constructor\n * @param {string} partnerID Then partner ID\n * @param {string} ks The ks\n */\n constructor(partnerID: number, ks: string = \"\") {\n this._multiRequest = OvpService.getMultirequest(ks, partnerID);\n }\n\n /**\n * Add loader too execution loaders map\n * @function\n * @param {Function} loader Loader to add\n * @param {Object} params Loader params\n * @returns {void}\n */\n add(loader: Function, params: Object): void {\n let execution_loader = new loader(params);\n if (execution_loader.isValid()) {\n this._loaders.set(loader.name, execution_loader);\n //Get the start index from the multiReqeust before adding current execution_loader requests\n let startIndex = this._multiRequest.requests.length;\n //Get the requests\n let requests = execution_loader.requests;\n //Add requests to muktiRequest queue\n requests.forEach((request) => {\n this._multiRequest.add(request);\n });\n //Create range array of current execution_loader requests\n let executionLoaderResponseMap = Array.from(new Array(requests.length), (val, index) => index + startIndex);\n //Add to map\n DataLoaderManager._loadersResponseMap.set(loader.name, executionLoaderResponseMap);\n }\n }\n\n /**\n * Get data from all loaders using multi request\n * @function\n * @returns {Promise} Promise\n */\n fetchData(): Promise {\n return new Promise((resolve, reject) => {\n this._multiRequest.execute()\n .then(response => {\n this._multiResponse = response;\n if (!response.success) {\n reject(response);\n }\n else {\n let preparedData: Object = this.prepareData(response);\n if (preparedData.success) {\n resolve(this._loaders);\n }\n else {\n reject({success: false, data: preparedData.error});\n }\n }\n },\n err => {\n reject(err);\n });\n });\n }\n\n prepareData(response: MultiRequestResult): Object {\n this._loaders.forEach(function (loader, name) {\n let loaderDataIndexes = DataLoaderManager._loadersResponseMap.get(name);\n try {\n if (loaderDataIndexes != null) {\n loader.response = (response.results.slice(loaderDataIndexes[0], loaderDataIndexes[loaderDataIndexes.length - 1] + 1));\n }\n }\n catch (err) {\n return {success: false, error: err};\n }\n });\n return {success: true, data: this._loaders};\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/data-loader-manager.js","//@flow\n\nimport RequestBuilder from '../../request-builder'\nimport BaseEntryService from '../services/base-entry-service'\nimport MetaDataService from '../services/meta-data-service'\nimport Configuration from '../config'\nimport KalturaPlaybackContext from '../response-types/kaltura-playback-context'\nimport KalturaMetadataListResponse from '../response-types/kaltura-metadata-list-response'\nimport KalturaBaseEntryListResponse from '../response-types/kaltura-base-entry-list-response'\n\nconst config = Configuration.get();\n\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class MediaEntryLoader implements ILoader {\n static get name(): string {\n return \"media\";\n }\n\n _entryId: string;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._entryId = params.entryId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n let mediaEntryResponse: KalturaBaseEntryListResponse = new KalturaBaseEntryListResponse(response[0].data);\n this._response.entry = mediaEntryResponse.entries[0];\n this._response.playBackContextResult = new KalturaPlaybackContext(response[1].data);\n this._response.metadataListResult = new KalturaMetadataListResponse(response[2].data);\n }\n\n get response(): any {\n return this._response;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(BaseEntryService.list(config.beUrl, params.ks, params.entryId));\n requests.push(BaseEntryService.getPlaybackContext(config.beUrl, params.ks, params.entryId));\n requests.push(MetaDataService.list(config.beUrl, params.ks, params.entryId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._entryId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/media-entry-loader.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"baseEntry\";\n\n/**\n * Ovp BaseEntry service methods\n * @classdesc\n */\nexport default class BaseEntryService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for baseentry.getPlaybackContext\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static getPlaybackContext(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"getPlaybackContext\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"baseEntry-getPlaybackContext\";\n let contextDataParams = {objectType: \"KalturaContextDataParams\", flavorTags: \"all\"};\n let params = {entryId: entryId, ks: ks, contextDataParams: contextDataParams};\n request.params = params;\n return request;\n }\n\n /**\n * Creates an instance of RequestBuilder for baseentry.list\n * @function list\n * @param {string} baseUrl The base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string): RequestBuilder {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"list\";\n request.params = BaseEntryService.getEntryListReqParams(entryId, ks);\n return request;\n }\n\n /**\n * Gets baseentry.list service params\n * @function getEntryListReqParams\n * @param {string} entryId The entry ID\n * @param {string} ks The ks\n * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object\n * @static\n */\n static getEntryListReqParams(entryId: string, ks: string): any {\n let filterParams = {redirectFromEntryId: entryId};\n let responseProfileParams = {\n fields: \"id,name,dataUrl,duration,msDuration,flavorParamsIds,mediaType,type,tags\",\n type: 1\n };\n return {ks: ks, filter: filterParams, responseProfile: responseProfileParams};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/base-entry-service.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"metadata_metadata\";\n\n/**\n * Ovp metadata_metadata service methods\n * @classdesc\n */\nexport default class MetaDataService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for metadata_metadata.list\n * @function getPlaybackContext\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} entryId The entry ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static list(baseUrl: string, ks: string, entryId: string) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"list\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"metadata_metadata-list\";\n let filter = {objectType: \"KalturaMetadataFilter\", objectIdEqual: entryId, metadataObjectTypeEqual: \"1\"};\n let params = {filter: filter, ks: ks};\n request.params = params;\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/meta-data-service.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaAccessControlMessage from './kaltura-access-control-message'\nimport KalturaPlaybackSource from './kaltura-playback-source'\nimport KalturaRuleAction from './kaltura-rule-action'\nimport KalturaFlavorAsset from './kaltura-flavor-asset'\n\n/**\n * Ovp BE playback context response\n * @classdesc\n */\nexport default class KalturaPlaybackContext extends ServiceResult {\n /**\n * @member - The playback sources\n * @type {Array}\n */\n sources: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n actions: Array = [];\n /**\n * @member - Array of actions as received from the rules that invalidated\n * @type {Array}\n */\n messages: Array = [];\n /**\n * @member - The flavor assets\n * @type {Array}\n */\n flavorAssets: Array = [];\n\n /**\n * @constructor\n * @param {Object} response The response\n */\n constructor(response: Object) {\n super(response);\n if (!this.hasError) {\n\n let messages = response.messages;\n if (messages) {\n messages.map(message => this.messages.push(new KalturaAccessControlMessage(message)));\n }\n\n let actions = response.actions;\n if (actions) {\n actions.map(action => this.actions.push(new KalturaRuleAction(action)));\n }\n\n let sources = response.sources;\n if (sources) {\n sources.map(source => this.sources.push(new KalturaPlaybackSource(source)));\n }\n\n let flavorAssets = response.flavorAssets;\n if (flavorAssets) {\n flavorAssets.map(flavor => this.flavorAssets.push(new KalturaFlavorAsset(flavor)));\n }\n }\n\n }\n}\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-playback-context.js","//@flow\n\n/**\n * Ovp BE access control message\n * @classdesc\n */\nexport default class KalturaAccessControlMessage {\n /**\n * @member - The access control message\n * @type {string}\n */\n message: string;\n /**\n * @member - The access control message code\n * @@type {string}\n */\n code: string;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n this.message = data.message;\n this.code = data.code\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-access-control-message.js","//@flow\n\n/**\n * Ovp BE rule action\n * @classdesc\n */\nexport default class KalturaRuleAction {\n /**\n * @member - The type of the action\n * @type {KalturaRuleActionType}\n */\n type: KalturaRuleActionType;\n\n /**\n * @constructor\n * @param {Object} data The response\n */\n constructor(data: Object) {\n this.type = data.type;\n }\n}\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-rule-action.js","//@flow\nimport ServiceResult from '../../base-service-result'\nimport KalturaMediaEntry from './kaltura-media-entry'\n\n/**\n * Ovp BE BaseEntryList service response\n * @classdesc\n */\nexport default class KalturaBaseEntryListResponse extends ServiceResult {\n /**\n * @member - The total count\n * @type {number}\n */\n totalCount: number;\n /**\n * @member - The entries\n * @type {Array}\n */\n entries: Array;\n\n /**\n * @constructor\n * @param {Object} responseObj The json response\n */\n constructor(responseObj: Object) {\n super(responseObj);\n if (!this.hasError) {\n this.totalCount = responseObj.totalCount;\n if (this.totalCount > 0) {\n this.entries = [];\n responseObj.objects.map(entry => this.entries.push(new KalturaMediaEntry(entry)));\n }\n }\n }\n}\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-base-entry-list-response.js","//@flow\n\n/**\n * Ovp BE MediaEntry\n * @classdesc\n */\nexport default class KalturaMediaEntry {\n /**\n * @member - The entry id\n * @type {string}\n */\n id: string;\n /**\n * @member - Entry name (Min 1 chars)\n * @type {string}\n */\n name: string;\n /**\n * @member - The URL used for playback. This is not the download URL.\n * @type {string}\n */\n dataUrl: string;\n /**\n * @member - Comma separated flavor params ids that exists for this media entry\n * @type {string}\n */\n flavorParamsIds: string;\n /**\n * @member - The entry duration\n * @type {number}\n */\n duration: number;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object\n * @type {EntryType}\n */\n type: EntryType;\n /**\n * @member - The type of the entry, this is auto filled by the derived entry object (Image, Audio etc.)\n * @type {MediaType}\n */\n entryType: MediaType;\n\n /**\n * @constructor\n * @param {Object} entry The json response\n */\n constructor(entry: Object) {\n this.id = entry.id;\n this.name = entry.name;\n this.dataUrl = entry.dataUrl;\n this.type = entry.type;\n this.entryType = entry.mediaType;\n this.flavorParamsIds = entry.flavorParamsIds;\n this.duration = entry.duration;\n }\n}\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-media-entry.js","//@flow\nimport SessionService from '../services/session-service'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n/**\n * Media entry loader\n * @classdesc\n */\nexport default class SessionLoader implements ILoader {\n static get name(): string {\n return \"session\";\n }\n\n /**\n * @member - partner ID\n * @type {number}\n * @private\n */\n _partnerId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._partnerId = params.partnerId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.ks = response[0].data.ks;\n }\n\n get response(): any {\n return this._response.ks;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(SessionService.anonymousSession(config.beUrl, params.partnerId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._partnerId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/session-loader.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"session\";\n\n/**\n * Ovp session service methods\n * @classdesc\n */\nexport default class SessionService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function anonymousSession\n * @param {string} baseUrl The service base URL\n * @param {string} partnerId The partner ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static anonymousSession(baseUrl: string, partnerId: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"startWidgetSession\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"session-startWidget\";\n request.params = {widgetId: \"_\" + partnerId};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/session-service.js","//@flow\nimport UiConfService from '../services/ui-conf-service'\nimport KalturaUiConfResponse from '../response-types/kaltura-ui-conf-response'\nimport Configuration from '../config'\nimport RequestBuilder from '../../request-builder'\n\nconst config = Configuration.get();\n\nexport default class UiConfigLoader implements ILoader {\n static get name(): string {\n return \"uiConf\";\n }\n\n /**\n * @member - uiConf ID\n * @type {number}\n * @private\n */\n _uiConfId: number;\n _requests: Array;\n _response: any = {};\n\n /**\n * @constructor\n * @param {Object} params loader params\n */\n constructor(params: Object) {\n this.requests = this.buildRequests(params);\n this._uiConfId = params.uiConfId;\n }\n\n set requests(requests: Array) {\n this._requests = requests;\n }\n\n get requests(): Array {\n return this._requests;\n }\n\n set response(response: any) {\n this._response.uiConf = new KalturaUiConfResponse(response[0].data);\n }\n\n get response(): any {\n if (this._response != null && this._response.uiConf != null && this._response.uiConf.config != null)\n try {\n return JSON.parse(this._response.uiConf.config).plugins;\n }\n catch (err) {\n return null;\n }\n else\n return null;\n }\n\n /**\n * Builds loader requests\n * @function\n * @param {Object} params Requests parameters\n * @returns {RequestBuilder} The request builder\n * @static\n */\n buildRequests(params: Object): Array {\n let requests: Array = [];\n requests.push(UiConfService.get(config.beUrl, params.ks, params.uiConfId));\n return requests;\n }\n\n /**\n * Loader validation function\n * @function\n * @returns {boolean} Is valid\n */\n isValid(): boolean {\n return !!this._uiConfId;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/loaders/ui-config-loader.js","//@flow\n\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\n\nconst SERVICE_NAME: string = \"uiconf\";\n\n/**\n * Ovp uiconf service methods\n * @classdesc\n */\nexport default class UiConfService extends OvpService {\n /**\n * Creates an instance of RequestBuilder for uiconf.get\n * @function get\n * @param {string} baseUrl The service base URL\n * @param {string} ks The ks\n * @param {string} uiConfID The uiConf ID\n * @returns {RequestBuilder} The request builder\n * @static\n */\n static get(baseUrl: string, ks: string, uiConfID: number) {\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"get\";\n request.method = \"POST\";\n request.baseUrl = baseUrl;\n request.tag = \"uiconf-get\";\n let responseProfileParams = {\n fields: \"config\",\n type: 1\n };\n request.params = {id: uiConfID, responseProfile: responseProfileParams, ks: ks};\n return request;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ui-conf-service.js","//@flow\nimport ServiceResult from '../../base-service-result'\n\n/**\n * Ovp BE Ui config response\n * @classdesc\n */\nexport default class KalturaUiConfResponse extends ServiceResult {\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n name: string;\n /**\n * @member -Name of the uiConf, this is not a primary key\n * @type {string}\n */\n description: string;\n objTypeAsString: string;\n width: number;\n height: number;\n htmlParams: string;\n swfUrl: string;\n confFilePath: string;\n confFile: string;\n confFileFeatures: string;\n name: string;\n /**\n * @member -plugins configuration represented as Json string\n * @type {string}\n */\n config: string;\n confVars: string;\n useCdn: boolean;\n tags: string;\n swfUrlVersion: string;\n created: Date;\n updated: Date;\n html5Url: string;\n version: string;\n partnerTags: string;\n objType: UIConfType;\n creationMode: UIConfCreationMode;\n\n /**\n * @constructor\n * @param {Object} data The json response\n */\n constructor(data: Object) {\n super(data);\n if (!this.hasError) {\n this.name = data.name;\n\n this.description = data.description;\n this.objTypeAsString = data.objTypeAsString;\n this.width = data.width;\n this.height = data.height;\n this.htmlParams = data.htmlParams;\n this.swfUrl = data.swfUrl;\n this.confFilePath = data.confFilePath;\n this.confFile = data.confFile;\n this.confFileFeatures = data.confFileFeatures;\n this.config = data.config;\n this.confVars = data.confVars;\n this.useCdn = data.useCdn;\n this.tags = data.tags;\n this.swfUrlVersion = data.swfUrlVersion;\n this.created = new Date(0);\n this.created.setUTCSeconds(data.createdAt);\n this.updated = new Date(0);\n this.updated.setUTCSeconds(data.updatedAt);\n this.html5Url = data.description;\n this.version = data.description;\n this.partnerTags = data.description;\n this.objType = data.description;\n this.creationMode = data.description;\n }\n }\n}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/response-types/kaltura-ui-conf-response.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/statsService.js b/dist/statsService.js index fcd4b442..030ba4cc 100644 --- a/dist/statsService.js +++ b/dist/statsService.js @@ -70,7 +70,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 38); +/******/ return __webpack_require__(__webpack_require__.s = 37); /******/ }) /************************************************************************/ /******/ ({ @@ -253,7 +253,7 @@ exports.Configuration = Configuration; /***/ }), -/***/ 3: +/***/ 2: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -338,7 +338,77 @@ function ServiceError(code, message) { /***/ }), -/***/ 38: +/***/ 3: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _multiRequestBuilder = __webpack_require__(6); + +var _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder); + +var _config = __webpack_require__(1); + +var _config2 = _interopRequireDefault(_config); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var config = _config2.default.get(); +var SERVICE_NAME = "multirequest"; + +/** + * Base for all ovp services + * @classdesc + */ + +var OvpService = function () { + function OvpService() { + _classCallCheck(this, OvpService); + } + + _createClass(OvpService, null, [{ + key: 'getMultirequest', + + /** + * Gets a new instance of MultiRequestBuilder with ovp params + * @function getMultirequest + * @param {string} ks The ks + * @param {string} partnerId The partner ID + * @returns {MultiRequestBuilder} The multi request builder + * @static + */ + value: function getMultirequest(ks, partnerId) { + var ovpParams = config.serviceParams; + Object.assign(ovpParams, { ks: ks }); + if (partnerId) { + Object.assign(ovpParams, { partnerId: partnerId }); + } + var multiReq = new _multiRequestBuilder2.default(); + multiReq.method = "POST"; + multiReq.service = SERVICE_NAME; + multiReq.baseUrl = config.beUrl; + multiReq.params = ovpParams; + return multiReq; + } + }]); + + return OvpService; +}(); + +exports.default = OvpService; + +/***/ }), + +/***/ 37: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -351,7 +421,7 @@ exports.RequestBuilder = exports.Configuration = exports.StatsService = undefine var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _ovpService = __webpack_require__(4); +var _ovpService = __webpack_require__(3); var _ovpService2 = _interopRequireDefault(_ovpService); @@ -430,76 +500,6 @@ exports.RequestBuilder = _requestBuilder2.default; "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -var _multiRequestBuilder = __webpack_require__(6); - -var _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder); - -var _config = __webpack_require__(1); - -var _config2 = _interopRequireDefault(_config); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var config = _config2.default.get(); -var SERVICE_NAME = "multirequest"; - -/** - * Base for all ovp services - * @classdesc - */ - -var OvpService = function () { - function OvpService() { - _classCallCheck(this, OvpService); - } - - _createClass(OvpService, null, [{ - key: 'getMultirequest', - - /** - * Gets a new instance of MultiRequestBuilder with ovp params - * @function getMultirequest - * @param {string} ks The ks - * @param {string} partnerId The partner ID - * @returns {MultiRequestBuilder} The multi request builder - * @static - */ - value: function getMultirequest(ks, partnerId) { - var ovpParams = config.serviceParams; - Object.assign(ovpParams, { ks: ks }); - if (partnerId) { - Object.assign(ovpParams, { partnerId: partnerId }); - } - var multiReq = new _multiRequestBuilder2.default(); - multiReq.method = "POST"; - multiReq.service = SERVICE_NAME; - multiReq.baseUrl = config.beUrl; - multiReq.params = ovpParams; - return multiReq; - } - }]); - - return OvpService; -}(); - -exports.default = OvpService; - -/***/ }), - -/***/ 5: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - Object.defineProperty(exports, "__esModule", { value: true }); @@ -567,11 +567,11 @@ var _requestBuilder = __webpack_require__(0); var _requestBuilder2 = _interopRequireDefault(_requestBuilder); -var _baseServiceResult = __webpack_require__(3); +var _baseServiceResult = __webpack_require__(2); var _baseServiceResult2 = _interopRequireDefault(_baseServiceResult); -var _logger = __webpack_require__(5); +var _logger = __webpack_require__(4); var _logger2 = _interopRequireDefault(_logger); diff --git a/dist/statsService.js.map b/dist/statsService.js.map index 84c44997..8df18313 100644 --- a/dist/statsService.js.map +++ b/dist/statsService.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/webpack/bootstrap e13f9de90e38187349d1","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./k-provider/ovp/services/stats-service.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/../node_modules/js-logger/src/logger.js"],"names":["RequestBuilder","headers","Map","set","baseUrl","Error","url","service","action","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","value","key","setRequestHeader","send","params","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","Object","assign","ServiceResult","response","hasError","objectType","error","ServiceError","data","SERVICE_NAME","StatsService","ks","event","ovpParams","get","tag","stringify","config","OvpService","partnerId","multiReq","JsLogger","LoggerFactory","options","useDefaults","name","Logger","defaultLevel","DEBUG","LOG_LEVEL","INFO","TIME","WARN","ERROR","OFF","logger","MultiRequestBuilder","requests","push","requestParams","serviceDef","length","err","doHttpRequest","then","MultiRequestResult","errorText","results","success","result","serviceResult"],"mappings":"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;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;;AAEA;AACA,0CAA0C,0BAA0B;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC","file":"statsService.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 38);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap e13f9de90e38187349d1","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\nimport Configuration from '../config'\n\nconst SERVICE_NAME: string = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\nexport default class StatsService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static collect(ks: string, event: Object, baseUrl: ?string): RequestBuilder {\n let ovpParams = Configuration.get();\n let serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks}, event);\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n\nexport {StatsService, Configuration, RequestBuilder};\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/stats-service.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/js-logger/src/logger.js\n// module id = 7\n// module chunks = 0 1"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/webpack/bootstrap c3b3ad0d4c43ceafbb61","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./k-provider/ovp/services/stats-service.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/../node_modules/js-logger/src/logger.js"],"names":["RequestBuilder","headers","Map","set","baseUrl","Error","url","service","action","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","value","key","setRequestHeader","send","params","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","Object","assign","ServiceResult","response","hasError","objectType","error","ServiceError","data","config","get","SERVICE_NAME","OvpService","ks","partnerId","ovpParams","multiReq","StatsService","event","tag","stringify","JsLogger","LoggerFactory","options","useDefaults","name","Logger","defaultLevel","DEBUG","LOG_LEVEL","INFO","TIME","WARN","ERROR","OFF","logger","MultiRequestBuilder","requests","push","requestParams","serviceDef","length","err","doHttpRequest","then","MultiRequestResult","errorText","results","success","result","serviceResult"],"mappings":"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AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;;AAEA;AACA,0CAA0C,0BAA0B;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC","file":"statsService.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 37);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap c3b3ad0d4c43ceafbb61","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\nimport Configuration from '../config'\n\nconst SERVICE_NAME: string = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\nexport default class StatsService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static collect(ks: string, event: Object, baseUrl: ?string): RequestBuilder {\n let ovpParams = Configuration.get();\n let serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks}, event);\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n\nexport {StatsService, Configuration, RequestBuilder};\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/stats-service.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: { [level: string]: Object } = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/js-logger/src/logger.js\n// module id = 7\n// module chunks = 0 1"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/statsService.min.js b/dist/statsService.min.js index f2fca2c2..53bf68df 100644 --- a/dist/statsService.min.js +++ b/dist/statsService.min.js @@ -1,4 +1,4 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PlaykitJsProviders=t():e.PlaykitJsProviders=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=38)}({0:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),this.headers=t,this.headers.set("Content-Type","application/json")}return i(e,[{key:"getUrl",value:function(){if(!this.baseUrl)throw new Error("baseUrl is mandatory for request builder");return this.baseUrl+"/service/"+this.service+(this.action?"/action/"+this.action:"")}},{key:"doHttpRequest",value:function(){var e=this,t=new XMLHttpRequest;return new Promise(function(n,r){t.onreadystatechange=function(){if(4===t.readyState)if(200===t.status){var e=JSON.parse(t.responseText);e&&"object"===(void 0===e?"undefined":o(e))&&e.code&&e.message?r(e):n(e)}else r(t.responseText)},t.open(e.method,e.getUrl()),e.headers.forEach(function(e,n){t.setRequestHeader(n,e)}),t.send(e.params)})}}]),e}();t.default=u},1:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n.")})})}}]),t}(l.default);t.default=y;var b=t.MultiRequestResult=function e(t){var n=this;i(this,e),this.results=[],this.success=!0,t.forEach(function(e){var t=new p.default(e);if(n.results.push(t),t.hasError)return h.error("Service returned an error with error code: "+t.error.code+" and message: "+t.error.message+"."),void(n.success=!1)})}},7:function(e,t,n){var r,o;/*! +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PlaykitJsProviders=t():e.PlaykitJsProviders=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=37)}({0:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),this.headers=t,this.headers.set("Content-Type","application/json")}return i(e,[{key:"getUrl",value:function(){if(!this.baseUrl)throw new Error("baseUrl is mandatory for request builder");return this.baseUrl+"/service/"+this.service+(this.action?"/action/"+this.action:"")}},{key:"doHttpRequest",value:function(){var e=this,t=new XMLHttpRequest;return new Promise(function(n,r){t.onreadystatechange=function(){if(4===t.readyState)if(200===t.status){var e=JSON.parse(t.responseText);e&&"object"===(void 0===e?"undefined":o(e))&&e.code&&e.message?r(e):n(e)}else r(t.responseText)},t.open(e.method,e.getUrl()),e.headers.forEach(function(e,n){t.setRequestHeader(n,e)}),t.send(e.params)})}}]),e}();t.default=u},1:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n.")})})}}]),t}(l.default);t.default=y;var b=t.MultiRequestResult=function e(t){var n=this;i(this,e),this.results=[],this.success=!0,t.forEach(function(e){var t=new p.default(e);if(n.results.push(t),t.hasError)return h.error("Service returned an error with error code: "+t.error.code+" and message: "+t.error.message+"."),void(n.success=!1)})}},7:function(e,t,n){var r,o;/*! * js-logger - http://github.com/jonnyreeves/js-logger * Jonny Reeves, http://jonnyreeves.co.uk/ * js-logger may be freely distributed under the MIT license. diff --git a/dist/statsService.min.js.map b/dist/statsService.min.js.map index 4d2da350..afe2a5fb 100644 --- a/dist/statsService.min.js.map +++ b/dist/statsService.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/statsService.min.js","webpack:///providers/webpack/bootstrap 57f592a94818e7616bb1","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./k-provider/ovp/services/stats-service.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/../node_modules/js-logger/src/logger.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","0","_classCallCheck","instance","Constructor","TypeError","value","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","RequestBuilder","headers","arguments","undefined","Map","set","baseUrl","Error","service","action","_this","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","setRequestHeader","send","params","default","1","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","assign","3","ServiceResult","response","hasError","objectType","error","ServiceError","data","38","_interopRequireDefault","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","StatsService","_ovpService","_ovpService2","_requestBuilder","_requestBuilder2","_config","_config2","_OvpService","getPrototypeOf","apply","ks","event","ovpParams","tag","stringify","4","_multiRequestBuilder","_multiRequestBuilder2","config","OvpService","partnerId","multiReq","5","LOG_LEVEL","_jsLogger","JsLogger","newObj","LoggerFactory","options","useDefaults","Logger","defaultLevel","DEBUG","INFO","TIME","WARN","ERROR","OFF","6","_defineProperty","MultiRequestResult","_baseServiceResult","_baseServiceResult2","_logger","_logger2","logger","MultiRequestBuilder","_RequestBuilder","requests","push","requestParams","serviceDef","_this2","err","doHttpRequest","then","errorText","_this3","results","success","result","serviceResult","7","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","global","VERSION","logHandler","contextualLoggersByNameMap","bind","scope","func","merge","args","defineLogLevel","ContextualLogger","defaultContext","context","setLevel","filterLevel","log","info","newLevel","enabledFor","lvl","debug","invoke","warn","time","label","timeEnd","level","msgArgs","globalLogger","L","setHandler","createDefaultHandler","formatter","messages","unshift","timerStartTimeByLabelMap","invokeConsoleMethod","hdlr","Function","console","Array","slice","timerLabel","Date","getTime"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,UAAAH,GACA,gBAAAC,SACAA,QAAA,mBAAAD,IAEAD,EAAA,mBAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAE,EAAAF,EACAG,GAAA,EACAV,WAUA,OANAK,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,GAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KA4DA,OAhCAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,SAAAd,EAAAe,EAAAC,GACAV,EAAAW,EAAAjB,EAAAe,IACAG,OAAAC,eAAAnB,EAAAe,GACAK,cAAA,EACAC,YAAA,EACAC,IAAAN,KAMAV,EAAAiB,EAAA,SAAAtB,GACA,GAAAe,GAAAf,KAAAuB,WACA,WAA2B,MAAAvB,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAK,GAAAQ,EAAAE,EAAA,IAAAA,GACAA,GAIAV,EAAAW,EAAA,SAAAQ,EAAAC,GAAsD,MAAAR,QAAAS,UAAAC,eAAAjB,KAAAc,EAAAC,IAGtDpB,EAAAuB,EAAA,GAGAvB,IAAAwB,EAAA,MDgBMC,EACA,SAAU9B,EAAQD,EAASM,GAEjC,YAWA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCARhHjB,OAAOC,eAAenB,EAAS,cAC7BoC,OAAO,GAGT,IAAIC,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,QAAUE,IAAQF,OAAOX,UAAY,eAAkBa,IAElQE,EAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIpC,GAAI,EAAGA,EAAIoC,EAAMC,OAAQrC,IAAK,CAAE,GAAIsC,GAAaF,EAAMpC,EAAIsC,GAAW1B,WAAa0B,EAAW1B,aAAc,EAAO0B,EAAW3B,cAAe,EAAU,SAAW2B,KAAYA,EAAWC,UAAW,GAAM9B,OAAOC,eAAeyB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUb,EAAagB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBT,EAAYP,UAAWuB,GAAiBC,GAAaR,EAAiBT,EAAaiB,GAAqBjB,MEnF3gBkB,EF2FA,WEjDnB,QAAAA,KAAsD,GAA1CC,GAA0CC,UAAAR,OAAA,OAAAS,KAAAD,UAAA,GAAAA,UAAA,GAAX,GAAIE,IAAOxB,GAAA5B,KAAAgD,GACpDhD,KAAKiD,QAAUA,EACfjD,KAAKiD,QAAQI,IAAI,eAAgB,oBFmJnC,MA1CAf,GAAaU,IACXH,IAAK,SACLb,MAAO,WElGP,IAAKhC,KAAKsD,QACR,KAAM,IAAIC,OAAM,2CAGlB,OADUvD,MAAKsD,QAAU,YAActD,KAAKwD,SAAWxD,KAAKyD,OAAS,WAAazD,KAAKyD,OAAS,OF8GhGZ,IAAK,gBACLb,MAAO,WEtGqB,GAAA0B,GAAA1D,KACxB2D,EAAU,GAAIC,eAClB,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BJ,EAAQK,mBAAqB,WAC3B,GAA2B,IAAvBL,EAAQM,WACV,GAAuB,MAAnBN,EAAQO,OAAgB,CAC1B,GAAIC,GAAeC,KAAKC,MAAMV,EAAQW,aAClCH,IAAyC,gBAAzB,KAAOA,EAAP,YAAAlC,EAAOkC,KAA8BA,EAAaI,MAAQJ,EAAaK,QACzFT,EAAOI,GAEPL,EAAQK,OAEVJ,GAAOJ,EAAQW,eAIrBX,EAAQc,KAAKf,EAAKgB,OAAQhB,EAAKiB,UAC/BjB,EAAKT,QAAQ2B,QAAQ,SAAC5C,EAAOa,GAC3Bc,EAAQkB,iBAAiBhC,EAAKb,KAEhC2B,EAAQmB,KAAKpB,EAAKqB,cF0Gf/B,IAGTpD,GAAQoF,QElMahC,GFsMfiC,EACA,SAAUpF,EAAQD,EAASM,GAEjC,YASA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhHjB,OAAOC,eAAenB,EAAS,cAC7BoC,OAAO,GAGT,IAAIM,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIpC,GAAI,EAAGA,EAAIoC,EAAMC,OAAQrC,IAAK,CAAE,GAAIsC,GAAaF,EAAMpC,EAAIsC,GAAW1B,WAAa0B,EAAW1B,aAAc,EAAO0B,EAAW3B,cAAe,EAAU,SAAW2B,KAAYA,EAAWC,UAAW,GAAM9B,OAAOC,eAAeyB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUb,EAAagB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBT,EAAYP,UAAWuB,GAAiBC,GAAaR,EAAiBT,EAAaiB,GAAqBjB,MGpN1hBoD,GACJC,MAAO,gCACP7B,QAAS,gCACT8B,eACEC,UAAW,aACXC,WAAY,QACZC,OAAQ,IAISC,EHwND,WAClB,QAASA,KACP5D,EAAgB5B,KAAMwF,GAiBxB,MAdAlD,GAAakD,EAAe,OAC1B3C,IAAK,MACLb,MAAO,SG7NEyD,GACLA,GACF3E,OAAO4E,OAAOR,EAAeO,MHiO/B5C,IAAK,MACLb,MAAO,WG7NP,MAAOkD,OHkOFM,IAGT5F,GAAQoF,QG9OaQ,EH+OrB5F,EGlOQ4F,iBHsOFG,EACA,SAAU9F,EAAQD,EAASM,GAEjC,YAOA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAJhHjB,OAAOC,eAAenB,EAAS,cAC7BoC,OAAO,GAST,IIzQqB4D,GAsBnB,QAAAA,GAAYC,GAAkBjE,EAAA5B,KAAA4F,GAAA5F,KAhB9B8F,UAAoB,EAiBU,wBAAxBD,EAASE,YACX/F,KAAK8F,UAAW,EAChB9F,KAAKgG,MAAQ,GAAIC,GAAaJ,EAAStB,KAAMsB,EAASrB,UAGtDxE,KAAKkG,KAAOL,EJsRlBjG,GAAQoF,QIlTaY,CJoTrB,II/QMK,GAiBJ,QAAAA,GAAY1B,EAAcC,GAAiB5C,EAAA5B,KAAAiG,GACzCjG,KAAKuE,KAAOA,EACZvE,KAAKwE,QAAUA,IJsRb2B,GACA,SAAUtG,EAAQD,EAASM,GAEjC,YAsBA,SAASkG,GAAuBhE,GAAO,MAAOA,IAAOA,EAAIhB,WAAagB,GAAQ4C,QAAS5C,GAEvF,QAASR,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASsE,GAA2BC,EAAM/F,GAAQ,IAAK+F,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOhG,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B+F,EAAP/F,EAElO,QAASiG,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI3E,WAAU,iEAAoE2E,GAAeD,GAASlF,UAAYT,OAAO6F,OAAOD,GAAcA,EAAWnF,WAAac,aAAeL,MAAOyE,EAAUxF,YAAY,EAAO2B,UAAU,EAAM5B,cAAc,KAAe0F,IAAY5F,OAAO8F,eAAiB9F,OAAO8F,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GAzBje5F,OAAOC,eAAenB,EAAS,cAC7BoC,OAAO,IAETpC,EAAQoD,eAAiBpD,EAAQ4F,cAAgB5F,EAAQkH,iBAAe3D,EAExE,IAAIb,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIpC,GAAI,EAAGA,EAAIoC,EAAMC,OAAQrC,IAAK,CAAE,GAAIsC,GAAaF,EAAMpC,EAAIsC,GAAW1B,WAAa0B,EAAW1B,aAAc,EAAO0B,EAAW3B,cAAe,EAAU,SAAW2B,KAAYA,EAAWC,UAAW,GAAM9B,OAAOC,eAAeyB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUb,EAAagB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBT,EAAYP,UAAWuB,GAAiBC,GAAaR,EAAiBT,EAAaiB,GAAqBjB,MK9VhiBiF,EAAA7G,EAAA,GLkWI8G,EAAeZ,EAAuBW,GKjW1CE,EAAA/G,EAAA,GLqWIgH,EAAmBd,EAAuBa,GKpW9CE,EAAAjH,EAAA,GLwWIkH,EAAWhB,EAAuBe,GKjWjBL,ELiXF,SAAUO,GAG3B,QAASP,KAGP,MAFAlF,GAAgB5B,KAAM8G,GAEfT,EAA2BrG,MAAO8G,EAAaD,WAAa/F,OAAOwG,eAAeR,IAAeS,MAAMvH,KAAMkD,YA+BtH,MApCAsD,GAAUM,EAAcO,GAQxB/E,EAAawE,EAAc,OACzBjE,IAAK,UAYLb,MAAO,SK5XMwF,EAAYC,EAAenE,GACxC,GAAIoE,GAAYN,EAAApC,QAAc9D,MAC1BkE,IACJtE,QAAO4E,OAAON,EAAesC,EAAUtC,eAAgBoC,GAAIA,GAAKC,EAChE,IAAI9D,GAAU,GAAAuD,GAAAlC,OAOd,OANArB,GAAQH,QArBiB,QAsBzBG,EAAQF,OAAS,UACjBE,EAAQe,OAAS,OACjBf,EAAQL,QAAUA,GAAWoE,EAAUvC,MACvCxB,EAAQgE,IAAM,gBACdhE,EAAQoB,OAASX,KAAKwD,UAAUxC,GACzBzB,MLgYFmD,GACPE,EAAahC,QAEfpF,GAAQoF,QKzZa8B,EL0ZrBlH,EKhYQkH,eLiYRlH,EKjYsB4F,cLiYE4B,EAASpC,QACjCpF,EKlYqCoD,eLkYZkE,EAAiBlC,SAIpC6C,EACA,SAAUhI,EAAQD,EAASM,GAEjC,YAiBA,SAASkG,GAAuBhE,GAAO,MAAOA,IAAOA,EAAIhB,WAAagB,GAAQ4C,QAAS5C,GAEvF,QAASR,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAhBhHjB,OAAOC,eAAenB,EAAS,cAC7BoC,OAAO,GAGT,IAAIM,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIpC,GAAI,EAAGA,EAAIoC,EAAMC,OAAQrC,IAAK,CAAE,GAAIsC,GAAaF,EAAMpC,EAAIsC,GAAW1B,WAAa0B,EAAW1B,aAAc,EAAO0B,EAAW3B,cAAe,EAAU,SAAW2B,KAAYA,EAAWC,UAAW,GAAM9B,OAAOC,eAAeyB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUb,EAAagB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBT,EAAYP,UAAWuB,GAAiBC,GAAaR,EAAiBT,EAAaiB,GAAqBjB,MMnbhiBgG,EAAA5H,EAAA,GNubI6H,EAAwB3B,EAAuB0B,GMtbnDX,EAAAjH,EAAA,GN0bIkH,EAAWhB,EAAuBe,GMxbhCa,EAASZ,EAAApC,QAAc9D,MAOR+G,EN+bJ,WACf,QAASA,KACPrG,EAAgB5B,KAAMiI,GA6BxB,MA1BA3F,GAAa2F,EAAY,OACvBpF,IAAK,kBAULb,MAAO,SMtccwF,EAAYU,GACjC,GAAIR,GAAYM,EAAO5C,aACvBtE,QAAO4E,OAAOgC,GAAYF,GAAIA,IAC1BU,GACFpH,OAAO4E,OAAOgC,GAAYQ,UAAWA,GAEvC,IAAIC,GAAW,GAAAJ,GAAA/C,OAKf,OAJAmD,GAASzD,OAAS,OAClByD,EAAS3E,QAvBgB,eAwBzB2E,EAAS7E,QAAU0E,EAAO7C,MAC1BgD,EAASpD,OAAS2C,EACXS,MN0cFF,IAGTrI,GAAQoF,QMjeaiD,GNqefG,EACA,SAAUvI,EAAQD,EAASM,GAEjC,YAgBA,SAAS0B,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAbhHjB,OAAOC,eAAenB,EAAS,cAC7BoC,OAAO,IAETpC,EAAQyI,cAAYlF,EAEpB,IAAIb,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIpC,GAAI,EAAGA,EAAIoC,EAAMC,OAAQrC,IAAK,CAAE,GAAIsC,GAAaF,EAAMpC,EAAIsC,GAAW1B,WAAa0B,EAAW1B,aAAc,EAAO0B,EAAW3B,cAAe,EAAU,SAAW2B,KAAYA,EAAWC,UAAW,GAAM9B,OAAOC,eAAeyB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUb,EAAagB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBT,EAAYP,UAAWuB,GAAiBC,GAAaR,EAAiBT,EAAaiB,GAAqBjB,MO1fhiBwG,EAAApI,EAAA,GAAYqI,EPggBZ,SAAiCnG,GAAO,GAAIA,GAAOA,EAAIhB,WAAc,MAAOgB,EAAc,IAAIoG,KAAa,IAAW,MAAPpG,EAAe,IAAK,GAAIS,KAAOT,GAAWtB,OAAOS,UAAUC,eAAejB,KAAK6B,EAAKS,KAAM2F,EAAO3F,GAAOT,EAAIS,GAAgC,OAAtB2F,GAAOxD,QAAU5C,EAAYoG,GAF3NF,GO5fjCG,EPkgBc,WOjgBlB,QAAAA,GAAYC,GAAkB9G,EAAA5B,KAAAyI,GAC5BF,EAASI,YAAYD,OPihBvB,MAVApG,GAAamG,IACX5F,IAAK,MACLb,MAAO,SOtgBLrB,GACF,MAAKA,GAGE4H,EAASrH,IAAIP,GAFX4H,MP4gBJE,KOtgBLG,EAAS,GAAIH,IAAeI,aAAcN,EAASO,QACjDT,GACJS,MAASP,EAASO,MAClBC,KAAQR,EAASQ,KACjBC,KAAQT,EAASS,KACjBC,KAAQV,EAASU,KACjBC,MAASX,EAASW,MAClBC,IAAOZ,EAASY,IP4gBlBvJ,GAAQoF,QOzgBO4D,EP0gBfhJ,EOzgBQyI,aP6gBFe,EACA,SAAUvJ,EAAQD,EAASM,GAEjC,YAsBA,SAASkG,GAAuBhE,GAAO,MAAOA,IAAOA,EAAIhB,WAAagB,GAAQ4C,QAAS5C,GAEvF,QAASiH,GAAgBjH,EAAKS,EAAKb,GAAiK,MAApJa,KAAOT,GAAOtB,OAAOC,eAAeqB,EAAKS,GAAOb,MAAOA,EAAOf,YAAY,EAAMD,cAAc,EAAM4B,UAAU,IAAkBR,EAAIS,GAAOb,EAAgBI,EAE3M,QAASR,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAASsE,GAA2BC,EAAM/F,GAAQ,IAAK+F,EAAQ,KAAM,IAAIC,gBAAe,4DAAgE,QAAOhG,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B+F,EAAP/F,EAElO,QAASiG,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAI3E,WAAU,iEAAoE2E,GAAeD,GAASlF,UAAYT,OAAO6F,OAAOD,GAAcA,EAAWnF,WAAac,aAAeL,MAAOyE,EAAUxF,YAAY,EAAO2B,UAAU,EAAM5B,cAAc,KAAe0F,IAAY5F,OAAO8F,eAAiB9F,OAAO8F,eAAeH,EAAUC,GAAcD,EAASI,UAAYH,GA3Bje5F,OAAOC,eAAenB,EAAS,cAC7BoC,OAAO,IAETpC,EAAQ0J,uBAAqBnG,EAE7B,IAAIb,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIpC,GAAI,EAAGA,EAAIoC,EAAMC,OAAQrC,IAAK,CAAE,GAAIsC,GAAaF,EAAMpC,EAAIsC,GAAW1B,WAAa0B,EAAW1B,aAAc,EAAO0B,EAAW3B,cAAe,EAAU,SAAW2B,KAAYA,EAAWC,UAAW,GAAM9B,OAAOC,eAAeyB,EAAQG,EAAWE,IAAKF,IAAiB,MAAO,UAAUb,EAAagB,EAAYC,GAAiJ,MAA9HD,IAAYP,EAAiBT,EAAYP,UAAWuB,GAAiBC,GAAaR,EAAiBT,EAAaiB,GAAqBjB,MQljBhiBmF,EAAA/G,EAAA,GRsjBIgH,EAAmBd,EAAuBa,GQrjB9CsC,EAAArJ,EAAA,GRyjBIsJ,EAAsBpD,EAAuBmD,GQxjBjDE,EAAAvJ,EAAA,GR4jBIwJ,EAAWtD,EAAuBqD,GQxjBhCE,EAASD,EAAA1E,QAAO9D,IAAI,eAML0I,ERwkBK,SAAUC,GQ7jBlC,QAAAD,KAAchI,EAAA5B,KAAA4J,EAAA,IAAAlG,GAAA2C,EAAArG,MAAA4J,EAAA/C,WAAA/F,OAAAwG,eAAAsC,IAAArJ,KAAAP,MAAA,OAAA0D,GALdoG,YAKcpG,ERioBd,MAnEA8C,GAAUoD,EAAqBC,GA4B/BvH,EAAasH,IACX/G,IAAK,MACLb,MAAO,SQllBL2B,GACF3D,KAAK8J,SAASC,KAAKpG,EACnB,IAAIqG,MACAC,GAAsBzG,QAASG,EAAQH,QAASC,OAAQE,EAAQF,OAIpE,OAHA3C,QAAO4E,OAAOsE,EAAdX,KAA+BrJ,KAAK8J,SAASpH,OAAS5B,OAAO4E,OAAOuE,EAAYtG,EAAQoB,UACxFjE,OAAO4E,OAAOsE,EAAehK,KAAK+E,QAClC/E,KAAK+E,OAASiF,EACPhK,QR4lBP6C,IAAK,UACLb,MAAO,WQrlBkB,GAAAkI,GAAAlK,IACzB,KACEA,KAAK+E,OAASX,KAAKwD,UAAU5H,KAAK+E,QAEpC,MAAOoF,GACLR,EAAO3D,MAAP,GAAgBmE,EAAI3F,SAEtB,MAAO,IAAIX,SAAQ,SAACC,EAASC,GAC3BmG,EAAKE,gBAAgBC,KAAK,SAAAnE,GACtBpC,EAAQ,GAAIwF,GAAmBpD,KAEjC,SAAAiE,GAEEpG,EADIuG,2CAA+DH,EAA/D,cR4lBLP,GACP1C,EAAiBlC,QAQnBpF,GAAQoF,QQrpBa4E,CRupBrB,IQ1lBaN,GRsmBb1J,EQtmBa0J,mBAiBX,QAAAA,GAAYzD,GAAkB,GAAA0E,GAAAvK,IAAA4B,GAAA5B,KAAAsJ,GAAAtJ,KAN9BwK,WAOExK,KAAKyK,SAAU,EACf5E,EAASjB,QAAQ,SAAC8F,GAChB,GAAIC,GAA+B,GAAAnB,GAAAxE,QAAkB0F,EAErD,IADAH,EAAKC,QAAQT,KAAKY,GACdA,EAAc7E,SAGhB,MAFA6D,GAAO3D,MAAP,8CAA2D2E,EAAc3E,MAAMzB,KAA/E,iBAAoGoG,EAAc3E,MAAMxB,QAAxH,UACA+F,EAAKE,SAAU,ORwmBjBG,EACA,SAAU/K,EAAQD,EAASM,GS3sBjC,GAAA2K,GAAAC;;;;;CAKA,SAAAC,GACA,YAGA,IAAAnC,KAGAA,GAAAoC,QAAA,OAGA,IAAAC,GAGAC,KAGAC,EAAA,SAAAC,EAAAC,GACA,kBACA,MAAAA,GAAA9D,MAAA6D,EAAAlI,aAKAoI,EAAA,WACA,GAAAzI,GAAAxC,EAAAkL,EAAArI,UAAAV,EAAA+I,EAAA,EACA,KAAAlL,EAAA,EAAaA,EAAAkL,EAAA7I,OAAiBrC,IAC9B,IAAAwC,IAAA0I,GAAAlL,GACAwC,IAAAL,KAAA+I,EAAAlL,GAAAmB,eAAAqB,KACAL,EAAAK,GAAA0I,EAAAlL,GAAAwC,GAIA,OAAAL,IAIAgJ,EAAA,SAAAxJ,EAAArB,GACA,OAAUqB,QAAArB,QAIViI,GAAAE,MAAA0C,EAAA,WACA5C,EAAAG,KAAAyC,EAAA,UACA5C,EAAAI,KAAAwC,EAAA,UACA5C,EAAAK,KAAAuC,EAAA,UACA5C,EAAAM,MAAAsC,EAAA,WACA5C,EAAAO,IAAAqC,EAAA,SAIA,IAAAC,GAAA,SAAAC,GACA1L,KAAA2L,QAAAD,EACA1L,KAAA4L,SAAAF,EAAAG,aACA7L,KAAA8L,IAAA9L,KAAA+L,KAGAN,GAAAlK,WAEAqK,SAAA,SAAAI,GAEAA,GAAA,SAAAA,KACAhM,KAAA2L,QAAAE,YAAAG,IAKAC,WAAA,SAAAC,GACA,GAAAL,GAAA7L,KAAA2L,QAAAE,WACA,OAAAK,GAAAlK,OAAA6J,EAAA7J,OAGAmK,MAAA,WACAnM,KAAAoM,OAAAxD,EAAAE,MAAA5F,YAGA6I,KAAA,WACA/L,KAAAoM,OAAAxD,EAAAG,KAAA7F,YAGAmJ,KAAA,WACArM,KAAAoM,OAAAxD,EAAAK,KAAA/F,YAGA8C,MAAA,WACAhG,KAAAoM,OAAAxD,EAAAM,MAAAhG,YAGAoJ,KAAA,SAAAC,GACA,gBAAAA,MAAA7J,OAAA,GACA1C,KAAAoM,OAAAxD,EAAAI,MAAAuD,EAAA,WAIAC,QAAA,SAAAD,GACA,gBAAAA,MAAA7J,OAAA,GACA1C,KAAAoM,OAAAxD,EAAAI,MAAAuD,EAAA,SAKAH,OAAA,SAAAK,EAAAC,GACAzB,GAAAjL,KAAAiM,WAAAQ,IACAxB,EAAAyB,EAAApB,GAA+BmB,SAAezM,KAAA2L,WAM9C,IAAAgB,GAAA,GAAAlB,IAA0CI,YAAAjD,EAAAO,OAG1C,WAEA,GAAAyD,GAAAhE,CAEAgE,GAAAX,WAAAd,EAAAwB,IAAAV,YACAW,EAAAT,MAAAhB,EAAAwB,IAAAR,OACAS,EAAAN,KAAAnB,EAAAwB,IAAAL,MACAM,EAAAJ,QAAArB,EAAAwB,IAAAH,SACAI,EAAAb,KAAAZ,EAAAwB,IAAAZ,MACAa,EAAAP,KAAAlB,EAAAwB,IAAAN,MACAO,EAAA5G,MAAAmF,EAAAwB,IAAA3G,OAGA4G,EAAAd,IAAAc,EAAAb,QAMAnD,EAAAiE,WAAA,SAAAxB,GACAJ,EAAAI,GAKAzC,EAAAgD,SAAA,SAAAa,GAEAE,EAAAf,SAAAa,EAGA,QAAA5J,KAAAqI,GACAA,EAAA1J,eAAAqB,IACAqI,EAAArI,GAAA+I,SAAAa,IAOA7D,EAAA1H,IAAA,SAAAP,GAEA,MAAAuK,GAAAvK,KACAuK,EAAAvK,GAAA,GAAA8K,GAAAH,GAAmE3K,QAAagM,EAAAhB,YAMhF/C,EAAAkE,qBAAA,SAAApE,GACAA,QAEAA,EAAAqE,UAAArE,EAAAqE,WAAA,SAAAC,EAAArB,GAEAA,EAAAhL,MACAqM,EAAAC,QAAA,IAAAtB,EAAAhL,KAAA,KAMA,IAAAuM,MAGAC,EAAA,SAAAC,EAAAJ,GACAK,SAAA9L,UAAAgG,MAAAhH,KAAA6M,EAAAE,QAAAN,GAIA,0BAAAM,SACA,aAGA,SAAAN,EAAArB,GAEAqB,EAAAO,MAAAhM,UAAAiM,MAAAjN,KAAAyM,EAEA,IACAS,GADAL,EAAAE,QAAAxB,GAGAH,GAAAc,QAAA7D,EAAAI,MACAyE,GAAA9B,EAAAhL,KAAA,IAAAgL,EAAAhL,KAAA,SAAAqM,EAAA,GAEA,UAAAA,EAAA,GACAM,QAAAhB,KACAgB,QAAAhB,KAAAmB,GAGAP,EAAAO,IAAA,GAAAC,OAAAC,UAIAL,QAAAd,QACAc,QAAAd,QAAAiB,GAGAN,EAAAC,GAAAK,EAAA,OACA,GAAAC,OAAAC,UAAAT,EAAAO,IAAA,SAMA9B,EAAAc,QAAA7D,EAAAK,MAAAqE,QAAAjB,KACAe,EAAAE,QAAAjB,KACKV,EAAAc,QAAA7D,EAAAM,OAAAoE,QAAAtH,MACLoH,EAAAE,QAAAtH,MACK2F,EAAAc,QAAA7D,EAAAG,MAAAuE,QAAAvB,OACLqB,EAAAE,QAAAvB,MAGArD,EAAAqE,UAAAC,EAAArB,GACAwB,EAAAC,EAAAJ,MAOApE,EAAAD,YAAA,SAAAD,GACAE,EAAAgD,SAAAlD,KAAAG,cAAAD,EAAAE,OACAF,EAAAiE,WAAAjE,EAAAkE,qBAAApE,KAKAmC,EAAA,MAAA1H,MAAA2H,EAAA,kBAAAD,KAAAtK,KAAAX,EAAAM,EAAAN,EAAAC,GAAAgL,KAAAhL,EAAAD,QAAAkL","file":"statsService.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 38);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Request builder\n * @classdesc\n */\nvar RequestBuilder = function () {\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n\n /**\n * @member - Service headers\n * @type {Map}\n */\n\n /**\n * @member - Service action\n * @type {string}\n */\n function RequestBuilder() {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n _classCallCheck(this, RequestBuilder);\n\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n\n /**\n * @member - Service tag\n * @type {string}\n */\n\n /**\n * @member - Service base url\n * @type {Map}\n */\n\n /**\n * @member - Service params\n * @type {any}\n */\n\n\n /**\n * @member - Service name\n * @type {string}\n */\n\n\n _createClass(RequestBuilder, [{\n key: \"getUrl\",\n value: function getUrl() {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n var url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n\n }, {\n key: \"doHttpRequest\",\n value: function doHttpRequest() {\n var _this = this;\n\n var request = new XMLHttpRequest();\n return new Promise(function (resolve, reject) {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n var jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && (typeof jsonResponse === \"undefined\" ? \"undefined\" : _typeof(jsonResponse)) === 'object' && jsonResponse.code && jsonResponse.message) reject(jsonResponse);else resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(_this.method, _this.getUrl());\n _this.headers.forEach(function (value, key) {\n request.setRequestHeader(key, value);\n });\n request.send(_this.params);\n });\n }\n }]);\n\n return RequestBuilder;\n}();\n\nexports.default = RequestBuilder;\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nvar Configuration = function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n }\n\n _createClass(Configuration, null, [{\n key: \"set\",\n value: function set(clientConfig) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n return defaultConfig;\n }\n }]);\n\n return Configuration;\n}();\n\nexports.default = Configuration;\nexports.Configuration = Configuration;\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base service result\n * @classdesc\n */\nvar ServiceResult =\n\n/**\n * @constructor\n * @param {Object} response - Service response\n */\n\n/**\n * @member - The service error\n * @type {ServiceError}\n */\n\n/**\n * @member - The service result data\n * @type {Object}\n */\nfunction ServiceResult(response) {\n _classCallCheck(this, ServiceResult);\n\n this.hasError = false;\n\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else {\n this.data = response;\n }\n}\n\n/**\n * @member - Is service returned an error\n * @type {boolean}\n */\n;\n\n/**\n * Service error\n * @classdesc\n */\n\n\nexports.default = ServiceResult;\n\nvar ServiceError =\n\n/**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n\n/**\n * @member - The error code\n * @type {string}\n */\nfunction ServiceError(code, message) {\n _classCallCheck(this, ServiceError);\n\n this.code = code;\n this.message = message;\n}\n/**\n * @member - The error message\n * @type {string}\n */\n;\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RequestBuilder = exports.Configuration = exports.StatsService = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(4);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\n\nvar StatsService = function (_OvpService) {\n _inherits(StatsService, _OvpService);\n\n function StatsService() {\n _classCallCheck(this, StatsService);\n\n return _possibleConstructorReturn(this, (StatsService.__proto__ || Object.getPrototypeOf(StatsService)).apply(this, arguments));\n }\n\n _createClass(StatsService, null, [{\n key: 'collect',\n\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n value: function collect(ks, event, baseUrl) {\n var ovpParams = _config2.default.get();\n var serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, { ks: ks }, event);\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n }]);\n\n return StatsService;\n}(_ovpService2.default);\n\nexports.default = StatsService;\nexports.StatsService = StatsService;\nexports.Configuration = _config2.default;\nexports.RequestBuilder = _requestBuilder2.default;\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\nvar SERVICE_NAME = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\n\nvar OvpService = function () {\n function OvpService() {\n _classCallCheck(this, OvpService);\n }\n\n _createClass(OvpService, null, [{\n key: 'getMultirequest',\n\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n value: function getMultirequest(ks, partnerId) {\n var ovpParams = config.serviceParams;\n Object.assign(ovpParams, { ks: ks });\n if (partnerId) {\n Object.assign(ovpParams, { partnerId: partnerId });\n }\n var multiReq = new _multiRequestBuilder2.default();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n }]);\n\n return OvpService;\n}();\n\nexports.default = OvpService;\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOG_LEVEL = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jsLogger = __webpack_require__(7);\n\nvar JsLogger = _interopRequireWildcard(_jsLogger);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LoggerFactory = function () {\n function LoggerFactory(options) {\n _classCallCheck(this, LoggerFactory);\n\n JsLogger.useDefaults(options || {});\n }\n\n _createClass(LoggerFactory, [{\n key: \"get\",\n value: function get(name) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n }]);\n\n return LoggerFactory;\n}();\n\nvar Logger = new LoggerFactory({ defaultLevel: JsLogger.DEBUG });\nvar LOG_LEVEL = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexports.default = Logger;\nexports.LOG_LEVEL = LOG_LEVEL;\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MultiRequestResult = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseServiceResult = __webpack_require__(3);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _logger = __webpack_require__(5);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\n\nvar MultiRequestBuilder = function (_RequestBuilder) {\n _inherits(MultiRequestBuilder, _RequestBuilder);\n\n /**\n * @constructor\n */\n function MultiRequestBuilder() {\n _classCallCheck(this, MultiRequestBuilder);\n\n var _this = _possibleConstructorReturn(this, (MultiRequestBuilder.__proto__ || Object.getPrototypeOf(MultiRequestBuilder)).call(this));\n\n _this.requests = [];\n return _this;\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n\n\n _createClass(MultiRequestBuilder, [{\n key: 'add',\n value: function add(request) {\n this.requests.push(request);\n var requestParams = {};\n var serviceDef = { service: request.service, action: request.action };\n Object.assign(requestParams, _defineProperty({}, this.requests.length, Object.assign(serviceDef, request.params)));\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n\n }, {\n key: 'execute',\n value: function execute() {\n var _this2 = this;\n\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n logger.error('' + err.message);\n }\n return new Promise(function (resolve, reject) {\n _this2.doHttpRequest().then(function (data) {\n resolve(new MultiRequestResult(data));\n }, function (err) {\n var errorText = 'Error on multiRequest execution, error <' + err + '>.';\n reject(errorText);\n });\n });\n }\n }]);\n\n return MultiRequestBuilder;\n}(_requestBuilder2.default);\n\n/**\n * Multi Request result object\n * @classdesc\n */\n\n\nexports.default = MultiRequestBuilder;\n\nvar MultiRequestResult =\n\n/**\n * @constructor\n * @param {Object} response data\n */\n\n\n/**\n * @member - Is success\n * @type {boolean}\n */\nexports.MultiRequestResult = function MultiRequestResult(response) {\n var _this3 = this;\n\n _classCallCheck(this, MultiRequestResult);\n\n this.results = [];\n\n this.success = true;\n response.forEach(function (result) {\n var serviceResult = new _baseServiceResult2.default(result);\n _this3.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error('Service returned an error with error code: ' + serviceResult.error.code + ' and message: ' + serviceResult.error.message + '.');\n _this3.success = false;\n return;\n }\n });\n}\n/**\n * @member - Multi request response data\n * @type {Object}\n */\n;\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n/***/ })\n\n/******/ });\n});\n\n\n// WEBPACK FOOTER //\n// statsService.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 38);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 57f592a94818e7616bb1","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\nimport Configuration from '../config'\n\nconst SERVICE_NAME: string = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\nexport default class StatsService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static collect(ks: string, event: Object, baseUrl: ?string): RequestBuilder {\n let ovpParams = Configuration.get();\n let serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks}, event);\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n\nexport {StatsService, Configuration, RequestBuilder};\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/stats-service.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: {[level: string]: Object} = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/js-logger/src/logger.js\n// module id = 7\n// module chunks = 0 1"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///providers/webpack/universalModuleDefinition","webpack:///providers/statsService.min.js","webpack:///providers/webpack/bootstrap f637f682938d5ebb67e6","webpack:///providers/./k-provider/request-builder.js","webpack:///providers/./k-provider/ovp/config.js","webpack:///providers/./k-provider/base-service-result.js","webpack:///providers/./k-provider/ovp/services/ovp-service.js","webpack:///providers/./k-provider/ovp/services/stats-service.js","webpack:///providers/./util/logger.js","webpack:///providers/./k-provider/multi-request-builder.js","webpack:///providers/../node_modules/js-logger/src/logger.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","0","_classCallCheck","instance","Constructor","TypeError","value","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","length","descriptor","writable","key","protoProps","staticProps","RequestBuilder","headers","arguments","undefined","Map","set","baseUrl","Error","service","action","_this","request","XMLHttpRequest","Promise","resolve","reject","onreadystatechange","readyState","status","jsonResponse","JSON","parse","responseText","code","message","open","method","getUrl","forEach","setRequestHeader","send","params","default","1","defaultConfig","beUrl","serviceParams","clientTag","apiVersion","format","Configuration","clientConfig","assign","2","ServiceResult","response","hasError","objectType","error","ServiceError","data","3","_interopRequireDefault","_multiRequestBuilder","_multiRequestBuilder2","_config","_config2","config","OvpService","ks","partnerId","ovpParams","multiReq","37","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","StatsService","_ovpService","_ovpService2","_requestBuilder","_requestBuilder2","_OvpService","getPrototypeOf","apply","event","tag","stringify","4","LOG_LEVEL","_jsLogger","JsLogger","newObj","LoggerFactory","options","useDefaults","Logger","defaultLevel","DEBUG","INFO","TIME","WARN","ERROR","OFF","6","_defineProperty","MultiRequestResult","_baseServiceResult","_baseServiceResult2","_logger","_logger2","logger","MultiRequestBuilder","_RequestBuilder","requests","push","requestParams","serviceDef","_this2","err","doHttpRequest","then","errorText","_this3","results","success","result","serviceResult","7","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","global","VERSION","logHandler","contextualLoggersByNameMap","bind","scope","func","merge","args","defineLogLevel","ContextualLogger","defaultContext","context","setLevel","filterLevel","log","info","newLevel","enabledFor","lvl","debug","invoke","warn","time","label","timeEnd","level","msgArgs","globalLogger","L","setHandler","createDefaultHandler","formatter","messages","unshift","timerStartTimeByLabelMap","invokeConsoleMethod","hdlr","Function","console","Array","slice","timerLabel","Date","getTime"],"mappings":"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","file":"statsService.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PlaykitJsProviders\"] = factory();\n\telse\n\t\troot[\"PlaykitJsProviders\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 37);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Request builder\n * @classdesc\n */\nvar RequestBuilder = function () {\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n\n /**\n * @member - Service headers\n * @type {Map}\n */\n\n /**\n * @member - Service action\n * @type {string}\n */\n function RequestBuilder() {\n var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Map();\n\n _classCallCheck(this, RequestBuilder);\n\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n\n /**\n * @member - Service tag\n * @type {string}\n */\n\n /**\n * @member - Service base url\n * @type {Map}\n */\n\n /**\n * @member - Service params\n * @type {any}\n */\n\n\n /**\n * @member - Service name\n * @type {string}\n */\n\n\n _createClass(RequestBuilder, [{\n key: \"getUrl\",\n value: function getUrl() {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n var url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n\n }, {\n key: \"doHttpRequest\",\n value: function doHttpRequest() {\n var _this = this;\n\n var request = new XMLHttpRequest();\n return new Promise(function (resolve, reject) {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n var jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && (typeof jsonResponse === \"undefined\" ? \"undefined\" : _typeof(jsonResponse)) === 'object' && jsonResponse.code && jsonResponse.message) reject(jsonResponse);else resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(_this.method, _this.getUrl());\n _this.headers.forEach(function (value, key) {\n request.setRequestHeader(key, value);\n });\n request.send(_this.params);\n });\n }\n }]);\n\n return RequestBuilder;\n}();\n\nexports.default = RequestBuilder;\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultConfig = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nvar Configuration = function () {\n function Configuration() {\n _classCallCheck(this, Configuration);\n }\n\n _createClass(Configuration, null, [{\n key: \"set\",\n value: function set(clientConfig) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n }, {\n key: \"get\",\n value: function get() {\n return defaultConfig;\n }\n }]);\n\n return Configuration;\n}();\n\nexports.default = Configuration;\nexports.Configuration = Configuration;\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Base service result\n * @classdesc\n */\nvar ServiceResult =\n\n/**\n * @constructor\n * @param {Object} response - Service response\n */\n\n/**\n * @member - The service error\n * @type {ServiceError}\n */\n\n/**\n * @member - The service result data\n * @type {Object}\n */\nfunction ServiceResult(response) {\n _classCallCheck(this, ServiceResult);\n\n this.hasError = false;\n\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else {\n this.data = response;\n }\n}\n\n/**\n * @member - Is service returned an error\n * @type {boolean}\n */\n;\n\n/**\n * Service error\n * @classdesc\n */\n\n\nexports.default = ServiceResult;\n\nvar ServiceError =\n\n/**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n\n/**\n * @member - The error code\n * @type {string}\n */\nfunction ServiceError(code, message) {\n _classCallCheck(this, ServiceError);\n\n this.code = code;\n this.message = message;\n}\n/**\n * @member - The error message\n * @type {string}\n */\n;\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _multiRequestBuilder = __webpack_require__(6);\n\nvar _multiRequestBuilder2 = _interopRequireDefault(_multiRequestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar config = _config2.default.get();\nvar SERVICE_NAME = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\n\nvar OvpService = function () {\n function OvpService() {\n _classCallCheck(this, OvpService);\n }\n\n _createClass(OvpService, null, [{\n key: 'getMultirequest',\n\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n value: function getMultirequest(ks, partnerId) {\n var ovpParams = config.serviceParams;\n Object.assign(ovpParams, { ks: ks });\n if (partnerId) {\n Object.assign(ovpParams, { partnerId: partnerId });\n }\n var multiReq = new _multiRequestBuilder2.default();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n }]);\n\n return OvpService;\n}();\n\nexports.default = OvpService;\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RequestBuilder = exports.Configuration = exports.StatsService = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _ovpService = __webpack_require__(3);\n\nvar _ovpService2 = _interopRequireDefault(_ovpService);\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _config = __webpack_require__(1);\n\nvar _config2 = _interopRequireDefault(_config);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SERVICE_NAME = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\n\nvar StatsService = function (_OvpService) {\n _inherits(StatsService, _OvpService);\n\n function StatsService() {\n _classCallCheck(this, StatsService);\n\n return _possibleConstructorReturn(this, (StatsService.__proto__ || Object.getPrototypeOf(StatsService)).apply(this, arguments));\n }\n\n _createClass(StatsService, null, [{\n key: 'collect',\n\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n value: function collect(ks, event, baseUrl) {\n var ovpParams = _config2.default.get();\n var serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, { ks: ks }, event);\n var request = new _requestBuilder2.default();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n }]);\n\n return StatsService;\n}(_ovpService2.default);\n\nexports.default = StatsService;\nexports.StatsService = StatsService;\nexports.Configuration = _config2.default;\nexports.RequestBuilder = _requestBuilder2.default;\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LOG_LEVEL = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _jsLogger = __webpack_require__(7);\n\nvar JsLogger = _interopRequireWildcard(_jsLogger);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar LoggerFactory = function () {\n function LoggerFactory(options) {\n _classCallCheck(this, LoggerFactory);\n\n JsLogger.useDefaults(options || {});\n }\n\n _createClass(LoggerFactory, [{\n key: \"get\",\n value: function get(name) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n }]);\n\n return LoggerFactory;\n}();\n\nvar Logger = new LoggerFactory({ defaultLevel: JsLogger.DEBUG });\nvar LOG_LEVEL = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexports.default = Logger;\nexports.LOG_LEVEL = LOG_LEVEL;\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MultiRequestResult = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _requestBuilder = __webpack_require__(0);\n\nvar _requestBuilder2 = _interopRequireDefault(_requestBuilder);\n\nvar _baseServiceResult = __webpack_require__(2);\n\nvar _baseServiceResult2 = _interopRequireDefault(_baseServiceResult);\n\nvar _logger = __webpack_require__(4);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @constant\n */\nvar logger = _logger2.default.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\n\nvar MultiRequestBuilder = function (_RequestBuilder) {\n _inherits(MultiRequestBuilder, _RequestBuilder);\n\n /**\n * @constructor\n */\n function MultiRequestBuilder() {\n _classCallCheck(this, MultiRequestBuilder);\n\n var _this = _possibleConstructorReturn(this, (MultiRequestBuilder.__proto__ || Object.getPrototypeOf(MultiRequestBuilder)).call(this));\n\n _this.requests = [];\n return _this;\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n\n\n _createClass(MultiRequestBuilder, [{\n key: 'add',\n value: function add(request) {\n this.requests.push(request);\n var requestParams = {};\n var serviceDef = { service: request.service, action: request.action };\n Object.assign(requestParams, _defineProperty({}, this.requests.length, Object.assign(serviceDef, request.params)));\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n\n }, {\n key: 'execute',\n value: function execute() {\n var _this2 = this;\n\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n logger.error('' + err.message);\n }\n return new Promise(function (resolve, reject) {\n _this2.doHttpRequest().then(function (data) {\n resolve(new MultiRequestResult(data));\n }, function (err) {\n var errorText = 'Error on multiRequest execution, error <' + err + '>.';\n reject(errorText);\n });\n });\n }\n }]);\n\n return MultiRequestBuilder;\n}(_requestBuilder2.default);\n\n/**\n * Multi Request result object\n * @classdesc\n */\n\n\nexports.default = MultiRequestBuilder;\n\nvar MultiRequestResult =\n\n/**\n * @constructor\n * @param {Object} response data\n */\n\n\n/**\n * @member - Is success\n * @type {boolean}\n */\nexports.MultiRequestResult = function MultiRequestResult(response) {\n var _this3 = this;\n\n _classCallCheck(this, MultiRequestResult);\n\n this.results = [];\n\n this.success = true;\n response.forEach(function (result) {\n var serviceResult = new _baseServiceResult2.default(result);\n _this3.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error('Service returned an error with error code: ' + serviceResult.error.code + ' and message: ' + serviceResult.error.message + '.');\n _this3.success = false;\n return;\n }\n });\n}\n/**\n * @member - Multi request response data\n * @type {Object}\n */\n;\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (true) {\r\n\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (Logger),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n/***/ })\n\n/******/ });\n});\n\n\n// WEBPACK FOOTER //\n// statsService.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 37);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f637f682938d5ebb67e6","//@flow\n\n/**\n * Request builder\n * @classdesc\n */\nexport default class RequestBuilder {\n\n /**\n * @member - Service name\n * @type {string}\n */\n service: string;\n /**\n * @member - Service action\n * @type {string}\n */\n action: string;\n /**\n * @member - Service params\n * @type {any}\n */\n params: any;\n /**\n * @member - Service headers\n * @type {Map}\n */\n headers: Map;\n /**\n * @member - Service base url\n * @type {Map}\n */\n baseUrl: string;\n /**\n * @member - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @member - Service tag\n * @type {string}\n */\n tag: string;\n\n /**\n * @constructor\n * @param {Map} headers The request headers\n */\n constructor(headers: Map = new Map()) {\n this.headers = headers;\n this.headers.set(\"Content-Type\", \"application/json\");\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @returns {string} The service URL\n */\n getUrl(): string {\n if (!this.baseUrl) {\n throw new Error(\"baseUrl is mandatory for request builder\");\n }\n let url = this.baseUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n return url;\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.} Service response as promise\n */\n doHttpRequest(): Promise {\n let request = new XMLHttpRequest();\n return new Promise((resolve, reject) => {\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status === 200) {\n let jsonResponse = JSON.parse(request.responseText);\n if (jsonResponse && typeof(jsonResponse) === 'object' && jsonResponse.code && jsonResponse.message)\n reject(jsonResponse);\n else\n resolve(jsonResponse);\n } else {\n reject(request.responseText);\n }\n }\n };\n request.open(this.method, this.getUrl());\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/request-builder.js","//@flow\n\nconst defaultConfig: Object = {\n beUrl: \"http://www.kaltura.com/api_v3\",\n baseUrl: \"https://cdnapisec.kaltura.com\",\n serviceParams: {\n clientTag: \"playkit-js\",\n apiVersion: '3.3.0',\n format: 1\n }\n};\n\nexport default class Configuration {\n\n static set(clientConfig?: Object) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return defaultConfig;\n }\n}\n\nexport {Configuration};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/config.js","//@flow\n\n/**\n * Base service result\n * @classdesc\n */\nexport default class ServiceResult {\n\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n error: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n data: Object;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: Object) {\n if (response.objectType === \"KalturaAPIException\") {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n }\n else {\n this.data = response;\n }\n }\n}\n\n/**\n * Service error\n * @classdesc\n */\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n message: string;\n\n /**\n * @constructor\n * @param {string} code - The result code\n * @param {string} message - The result message\n */\n constructor(code: string, message: string) {\n this.code = code;\n this.message = message;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/base-service-result.js","//@flow\nimport MultiRequestBuilder from '../../multi-request-builder'\nimport Configuration from '../config'\n\nconst config = Configuration.get();\nconst SERVICE_NAME: string = \"multirequest\";\n\n/**\n * Base for all ovp services\n * @classdesc\n */\nexport default class OvpService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultirequest\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n static getMultirequest(ks: string, partnerId?: number): MultiRequestBuilder {\n let ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n let multiReq = new MultiRequestBuilder();\n multiReq.method = \"POST\";\n multiReq.service = SERVICE_NAME;\n multiReq.baseUrl = config.beUrl;\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/ovp-service.js","//@flow\nimport OvpService from './ovp-service'\nimport RequestBuilder from '../../request-builder'\nimport Configuration from '../config'\n\nconst SERVICE_NAME: string = \"stats\";\n/**\n * Ovp stats service methods\n * @classdesc\n */\nexport default class StatsService extends OvpService {\n\n /**\n * Creates an instance of RequestBuilder for stats.collect\n * @function collect\n * @param {string} ks - The ks\n * @param {Object} event - The event data\n * @param {string} [baseUrl=Configuration.beUrl] - The service base URL\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static collect(ks: string, event: Object, baseUrl: ?string): RequestBuilder {\n let ovpParams = Configuration.get();\n let serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks}, event);\n let request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = \"collect\";\n request.method = \"POST\";\n request.baseUrl = baseUrl || ovpParams.beUrl;\n request.tag = \"stats-collect\";\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n\nexport {StatsService, Configuration, RequestBuilder};\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/ovp/services/stats-service.js","//@flow\nimport * as JsLogger from 'js-logger';\n\nclass LoggerFactory {\n constructor(options?: Object) {\n JsLogger.useDefaults(options || {});\n }\n\n get(name?: string) {\n if (!name) {\n return JsLogger;\n }\n return JsLogger.get(name);\n }\n}\n\nlet Logger = new LoggerFactory({defaultLevel: JsLogger.DEBUG});\nconst LOG_LEVEL: { [level: string]: Object } = {\n \"DEBUG\": JsLogger.DEBUG,\n \"INFO\": JsLogger.INFO,\n \"TIME\": JsLogger.TIME,\n \"WARN\": JsLogger.WARN,\n \"ERROR\": JsLogger.ERROR,\n \"OFF\": JsLogger.OFF\n};\n\nexport default Logger;\nexport {LOG_LEVEL};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./util/logger.js","//@flow\nimport RequestBuilder from './request-builder'\nimport ServiceResult from './base-service-result'\nimport Logger from \"../util/logger\";\n/**\n * @constant\n */\nconst logger = Logger.get(\"OvpProvider\");\n\n/**\n * Multi Request builder\n * @classdesc\n */\nexport default class MultiRequestBuilder extends RequestBuilder {\n\n /**\n * @member - Array of requests\n * @type {Array}\n */\n requests: Array = [];\n\n /**\n * @constructor\n */\n constructor() {\n super();\n }\n\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n let requestParams = {};\n let serviceDef: Object = {service: request.service, action: request.action};\n Object.assign(requestParams, {[this.requests.length]: Object.assign(serviceDef, request.params)});\n Object.assign(requestParams, this.params);\n this.params = requestParams;\n return this;\n }\n\n /**\n * Executes a multi request\n * @function execute\n * @returns {Promise} The multirequest execution promisie\n */\n execute(): Promise {\n try {\n this.params = JSON.stringify(this.params);\n }\n catch (err) {\n logger.error(`${err.message}`);\n }\n return new Promise((resolve, reject) => {\n this.doHttpRequest().then(data => {\n resolve(new MultiRequestResult(data));\n },\n err => {\n let errorText: string = `Error on multiRequest execution, error <${err}>.`;\n reject(errorText);\n\n });\n });\n }\n\n}\n\n/**\n * Multi Request result object\n * @classdesc\n */\nexport class MultiRequestResult {\n\n /**\n * @member - Is success\n * @type {boolean}\n */\n success: boolean;\n /**\n * @member - Multi request response data\n * @type {Object}\n */\n results: Array = [];\n\n /**\n * @constructor\n * @param {Object} response data\n */\n constructor(response: Object) {\n this.success = true;\n response.forEach((result) => {\n let serviceResult: ServiceResult = new ServiceResult(result);\n this.results.push(serviceResult);\n if (serviceResult.hasError) {\n logger.error(`Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`);\n this.success = false;\n return;\n }\n });\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./k-provider/multi-request-builder.js","/*!\r\n * js-logger - http://github.com/jonnyreeves/js-logger\r\n * Jonny Reeves, http://jonnyreeves.co.uk/\r\n * js-logger may be freely distributed under the MIT license.\r\n */\r\n(function (global) {\r\n\t\"use strict\";\r\n\r\n\t// Top level module for the global, static logger instance.\r\n\tvar Logger = { };\r\n\r\n\t// For those that are at home that are keeping score.\r\n\tLogger.VERSION = \"1.3.0\";\r\n\r\n\t// Function which handles all incoming log messages.\r\n\tvar logHandler;\r\n\r\n\t// Map of ContextualLogger instances by name; used by Logger.get() to return the same named instance.\r\n\tvar contextualLoggersByNameMap = {};\r\n\r\n\t// Polyfill for ES5's Function.bind.\r\n\tvar bind = function(scope, func) {\r\n\t\treturn function() {\r\n\t\t\treturn func.apply(scope, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// Super exciting object merger-matron 9000 adding another 100 bytes to your download.\r\n\tvar merge = function () {\r\n\t\tvar args = arguments, target = args[0], key, i;\r\n\t\tfor (i = 1; i < args.length; i++) {\r\n\t\t\tfor (key in args[i]) {\r\n\t\t\t\tif (!(key in target) && args[i].hasOwnProperty(key)) {\r\n\t\t\t\t\ttarget[key] = args[i][key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn target;\r\n\t};\r\n\r\n\t// Helper to define a logging level object; helps with optimisation.\r\n\tvar defineLogLevel = function(value, name) {\r\n\t\treturn { value: value, name: name };\r\n\t};\r\n\r\n\t// Predefined logging levels.\r\n\tLogger.DEBUG = defineLogLevel(1, 'DEBUG');\r\n\tLogger.INFO = defineLogLevel(2, 'INFO');\r\n\tLogger.TIME = defineLogLevel(3, 'TIME');\r\n\tLogger.WARN = defineLogLevel(4, 'WARN');\r\n\tLogger.ERROR = defineLogLevel(8, 'ERROR');\r\n\tLogger.OFF = defineLogLevel(99, 'OFF');\r\n\r\n\t// Inner class which performs the bulk of the work; ContextualLogger instances can be configured independently\r\n\t// of each other.\r\n\tvar ContextualLogger = function(defaultContext) {\r\n\t\tthis.context = defaultContext;\r\n\t\tthis.setLevel(defaultContext.filterLevel);\r\n\t\tthis.log = this.info; // Convenience alias.\r\n\t};\r\n\r\n\tContextualLogger.prototype = {\r\n\t\t// Changes the current logging level for the logging instance.\r\n\t\tsetLevel: function (newLevel) {\r\n\t\t\t// Ensure the supplied Level object looks valid.\r\n\t\t\tif (newLevel && \"value\" in newLevel) {\r\n\t\t\t\tthis.context.filterLevel = newLevel;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Is the logger configured to output messages at the supplied level?\r\n\t\tenabledFor: function (lvl) {\r\n\t\t\tvar filterLevel = this.context.filterLevel;\r\n\t\t\treturn lvl.value >= filterLevel.value;\r\n\t\t},\r\n\r\n\t\tdebug: function () {\r\n\t\t\tthis.invoke(Logger.DEBUG, arguments);\r\n\t\t},\r\n\r\n\t\tinfo: function () {\r\n\t\t\tthis.invoke(Logger.INFO, arguments);\r\n\t\t},\r\n\r\n\t\twarn: function () {\r\n\t\t\tthis.invoke(Logger.WARN, arguments);\r\n\t\t},\r\n\r\n\t\terror: function () {\r\n\t\t\tthis.invoke(Logger.ERROR, arguments);\r\n\t\t},\r\n\r\n\t\ttime: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'start' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\ttimeEnd: function (label) {\r\n\t\t\tif (typeof label === 'string' && label.length > 0) {\r\n\t\t\t\tthis.invoke(Logger.TIME, [ label, 'end' ]);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Invokes the logger callback if it's not being filtered.\r\n\t\tinvoke: function (level, msgArgs) {\r\n\t\t\tif (logHandler && this.enabledFor(level)) {\r\n\t\t\t\tlogHandler(msgArgs, merge({ level: level }, this.context));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Protected instance which all calls to the to level `Logger` module will be routed through.\r\n\tvar globalLogger = new ContextualLogger({ filterLevel: Logger.OFF });\r\n\r\n\t// Configure the global Logger instance.\r\n\t(function() {\r\n\t\t// Shortcut for optimisers.\r\n\t\tvar L = Logger;\r\n\r\n\t\tL.enabledFor = bind(globalLogger, globalLogger.enabledFor);\r\n\t\tL.debug = bind(globalLogger, globalLogger.debug);\r\n\t\tL.time = bind(globalLogger, globalLogger.time);\r\n\t\tL.timeEnd = bind(globalLogger, globalLogger.timeEnd);\r\n\t\tL.info = bind(globalLogger, globalLogger.info);\r\n\t\tL.warn = bind(globalLogger, globalLogger.warn);\r\n\t\tL.error = bind(globalLogger, globalLogger.error);\r\n\r\n\t\t// Don't forget the convenience alias!\r\n\t\tL.log = L.info;\r\n\t}());\r\n\r\n\t// Set the global logging handler. The supplied function should expect two arguments, the first being an arguments\r\n\t// object with the supplied log messages and the second being a context object which contains a hash of stateful\r\n\t// parameters which the logging function can consume.\r\n\tLogger.setHandler = function (func) {\r\n\t\tlogHandler = func;\r\n\t};\r\n\r\n\t// Sets the global logging filter level which applies to *all* previously registered, and future Logger instances.\r\n\t// (note that named loggers (retrieved via `Logger.get`) can be configured independently if required).\r\n\tLogger.setLevel = function(level) {\r\n\t\t// Set the globalLogger's level.\r\n\t\tglobalLogger.setLevel(level);\r\n\r\n\t\t// Apply this level to all registered contextual loggers.\r\n\t\tfor (var key in contextualLoggersByNameMap) {\r\n\t\t\tif (contextualLoggersByNameMap.hasOwnProperty(key)) {\r\n\t\t\t\tcontextualLoggersByNameMap[key].setLevel(level);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Retrieve a ContextualLogger instance. Note that named loggers automatically inherit the global logger's level,\r\n\t// default context and log handler.\r\n\tLogger.get = function (name) {\r\n\t\t// All logger instances are cached so they can be configured ahead of use.\r\n\t\treturn contextualLoggersByNameMap[name] ||\r\n\t\t\t(contextualLoggersByNameMap[name] = new ContextualLogger(merge({ name: name }, globalLogger.context)));\r\n\t};\r\n\r\n\t// CreateDefaultHandler returns a handler function which can be passed to `Logger.setHandler()` which will\r\n\t// write to the window's console object (if present); the optional options object can be used to customise the\r\n\t// formatter used to format each log message.\r\n\tLogger.createDefaultHandler = function (options) {\r\n\t\toptions = options || {};\r\n\r\n\t\toptions.formatter = options.formatter || function defaultMessageFormatter(messages, context) {\r\n\t\t\t// Prepend the logger's name to the log message for easy identification.\r\n\t\t\tif (context.name) {\r\n\t\t\t\tmessages.unshift(\"[\" + context.name + \"]\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Map of timestamps by timer labels used to track `#time` and `#timeEnd()` invocations in environments\r\n\t\t// that don't offer a native console method.\r\n\t\tvar timerStartTimeByLabelMap = {};\r\n\r\n\t\t// Support for IE8+ (and other, slightly more sane environments)\r\n\t\tvar invokeConsoleMethod = function (hdlr, messages) {\r\n\t\t\tFunction.prototype.apply.call(hdlr, console, messages);\r\n\t\t};\r\n\r\n\t\t// Check for the presence of a logger.\r\n\t\tif (typeof console === \"undefined\") {\r\n\t\t\treturn function () { /* no console */ };\r\n\t\t}\r\n\r\n\t\treturn function(messages, context) {\r\n\t\t\t// Convert arguments object to Array.\r\n\t\t\tmessages = Array.prototype.slice.call(messages);\r\n\r\n\t\t\tvar hdlr = console.log;\r\n\t\t\tvar timerLabel;\r\n\r\n\t\t\tif (context.level === Logger.TIME) {\r\n\t\t\t\ttimerLabel = (context.name ? '[' + context.name + '] ' : '') + messages[0];\r\n\r\n\t\t\t\tif (messages[1] === 'start') {\r\n\t\t\t\t\tif (console.time) {\r\n\t\t\t\t\t\tconsole.time(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttimerStartTimeByLabelMap[timerLabel] = new Date().getTime();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (console.timeEnd) {\r\n\t\t\t\t\t\tconsole.timeEnd(timerLabel);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tinvokeConsoleMethod(hdlr, [ timerLabel + ': ' +\r\n\t\t\t\t\t\t\t(new Date().getTime() - timerStartTimeByLabelMap[timerLabel]) + 'ms' ]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Delegate through to custom warn/error loggers if present on the console.\r\n\t\t\t\tif (context.level === Logger.WARN && console.warn) {\r\n\t\t\t\t\thdlr = console.warn;\r\n\t\t\t\t} else if (context.level === Logger.ERROR && console.error) {\r\n\t\t\t\t\thdlr = console.error;\r\n\t\t\t\t} else if (context.level === Logger.INFO && console.info) {\r\n\t\t\t\t\thdlr = console.info;\r\n\t\t\t\t}\r\n\r\n\t\t\t\toptions.formatter(messages, context);\r\n\t\t\t\tinvokeConsoleMethod(hdlr, messages);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// Configure and example a Default implementation which writes to the `window.console` (if present). The\r\n\t// `options` hash can be used to configure the default logLevel and provide a custom message formatter.\r\n\tLogger.useDefaults = function(options) {\r\n\t\tLogger.setLevel(options && options.defaultLevel || Logger.DEBUG);\r\n\t\tLogger.setHandler(Logger.createDefaultHandler(options));\r\n\t};\r\n\r\n\t// Export to popular environments boilerplate.\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(Logger);\r\n\t}\r\n\telse if (typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = Logger;\r\n\t}\r\n\telse {\r\n\t\tLogger._prevLogger = global.Logger;\r\n\r\n\t\tLogger.noConflict = function () {\r\n\t\t\tglobal.Logger = Logger._prevLogger;\r\n\t\t\treturn Logger;\r\n\t\t};\r\n\r\n\t\tglobal.Logger = Logger;\r\n\t}\r\n}(this));\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../node_modules/js-logger/src/logger.js\n// module id = 7\n// module chunks = 0 1"],"sourceRoot":""} \ No newline at end of file