@playkit-js/playkit-js-providers 2.40.1 → 2.41.0-canary.0-2452bbc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1624 -0
- package/dist/playkit-analytics-service.js +1 -1
- package/dist/playkit-analytics-service.js.map +1 -1
- package/dist/playkit-bookmark-service.js +1 -1
- package/dist/playkit-bookmark-service.js.map +1 -1
- package/dist/playkit-ott-provider.js +1 -1
- package/dist/playkit-ott-provider.js.map +1 -1
- package/dist/playkit-ovp-provider.js +1 -1
- package/dist/playkit-ovp-provider.js.map +1 -1
- package/dist/playkit-stats-service.js +1 -1
- package/dist/playkit-stats-service.js.map +1 -1
- package/dist/tsdoc-metadata.json +11 -0
- package/flow-typed/types/media-config-sources.js +1 -1
- package/flow-typed/types/media-sources.js +1 -1
- package/package.json +48 -45
- package/playkit-analytics-service/package.json +5 -0
- package/playkit-bookmark-service/package.json +5 -0
- package/playkit-ott-provider/package.json +5 -0
- package/playkit-ovp-provider/package.json +5 -0
- package/playkit-stats-service/package.json +5 -0
- package/src/entities/bumper.ts +21 -0
- package/src/entities/drm.ts +47 -0
- package/src/entities/entry-list.ts +13 -0
- package/src/entities/image-source.ts +36 -0
- package/src/entities/media-entry.ts +104 -0
- package/src/entities/media-format.ts +47 -0
- package/src/entities/media-source.ts +70 -0
- package/src/entities/media-sources.ts +79 -0
- package/src/entities/playlist.ts +41 -0
- package/src/k-provider/common/base-provider-parser.ts +0 -0
- package/src/k-provider/common/base-provider.ts +112 -0
- package/src/k-provider/common/base-service-result.ts +56 -0
- package/src/k-provider/common/data-loader-manager.ts +115 -0
- package/src/k-provider/common/multi-request-builder.ts +111 -0
- package/src/k-provider/common/response-types/kaltura-access-control-message.ts +21 -0
- package/src/k-provider/common/response-types/kaltura-drm-playback-plugin-data.ts +38 -0
- package/src/k-provider/ott/config.ts +22 -0
- package/src/k-provider/ott/index.ts +14 -0
- package/src/k-provider/ott/loaders/asset-list-loader.ts +68 -0
- package/src/k-provider/ott/loaders/asset-loader.ts +69 -0
- package/src/k-provider/ott/loaders/data-loader-manager.ts +15 -0
- package/src/k-provider/ott/loaders/session-loader.ts +62 -0
- package/src/k-provider/ott/provider-parser.ts +285 -0
- package/src/k-provider/ott/provider.ts +252 -0
- package/src/k-provider/ott/response-types/kaltura-asset.ts +105 -0
- package/src/k-provider/ott/response-types/kaltura-bumper-playback-plugin-data.ts +27 -0
- package/src/k-provider/ott/response-types/kaltura-playback-context.ts +73 -0
- package/src/k-provider/ott/response-types/kaltura-playback-source.ts +62 -0
- package/src/k-provider/ott/response-types/kaltura-rule-action.ts +25 -0
- package/src/k-provider/ott/services/asset-service.ts +50 -0
- package/src/k-provider/ott/services/bookmark/bookmark-service.ts +48 -0
- package/src/k-provider/ott/services/bookmark/index.ts +11 -0
- package/src/k-provider/ott/services/ott-service.ts +33 -0
- package/src/k-provider/ott/services/user-service.ts +31 -0
- package/src/k-provider/ovp/config.ts +28 -0
- package/src/k-provider/ovp/external-captions-builder.ts +37 -0
- package/src/k-provider/ovp/index.ts +13 -0
- package/src/k-provider/ovp/loaders/data-loader-manager.ts +17 -0
- package/src/k-provider/ovp/loaders/entry-list-loader.ts +69 -0
- package/src/k-provider/ovp/loaders/media-entry-loader.ts +84 -0
- package/src/k-provider/ovp/loaders/playlist-loader.ts +69 -0
- package/src/k-provider/ovp/loaders/session-loader.ts +62 -0
- package/src/k-provider/ovp/loaders/ui-config-loader.ts +71 -0
- package/src/k-provider/ovp/play-source-url-builder.ts +59 -0
- package/src/k-provider/ovp/provider-parser.ts +461 -0
- package/src/k-provider/ovp/provider.ts +358 -0
- package/src/k-provider/ovp/regex-action-handler.ts +149 -0
- package/src/k-provider/ovp/request-params/base-entry-response-profile.ts +28 -0
- package/src/k-provider/ovp/response-types/index.ts +21 -0
- package/src/k-provider/ovp/response-types/kaltura-access-control-modify-request-host-regex-action.ts +35 -0
- package/src/k-provider/ovp/response-types/kaltura-base-entry-list-response.ts +30 -0
- package/src/k-provider/ovp/response-types/kaltura-bumper.ts +25 -0
- package/src/k-provider/ovp/response-types/kaltura-flavor-asset.ts +108 -0
- package/src/k-provider/ovp/response-types/kaltura-media-entries.ts +28 -0
- package/src/k-provider/ovp/response-types/kaltura-media-entry.ts +189 -0
- package/src/k-provider/ovp/response-types/kaltura-metadata-list-response.ts +22 -0
- package/src/k-provider/ovp/response-types/kaltura-metadata.ts +50 -0
- package/src/k-provider/ovp/response-types/kaltura-playback-context.ts +95 -0
- package/src/k-provider/ovp/response-types/kaltura-playback-source.ts +89 -0
- package/src/k-provider/ovp/response-types/kaltura-playlist.ts +33 -0
- package/src/k-provider/ovp/response-types/kaltura-rule-action.ts +27 -0
- package/src/k-provider/ovp/response-types/kaltura-ui-conf-response.ts +89 -0
- package/src/k-provider/ovp/response-types/kaltura-user-entry-list-response.ts +30 -0
- package/src/k-provider/ovp/response-types/kaltura-user-entry.ts +57 -0
- package/src/k-provider/ovp/services/analytics/analytics-service.ts +58 -0
- package/src/k-provider/ovp/services/analytics/index.ts +11 -0
- package/src/k-provider/ovp/services/base-entry-service.ts +75 -0
- package/src/k-provider/ovp/services/meta-data-service.ts +29 -0
- package/src/k-provider/ovp/services/ovp-service.ts +32 -0
- package/src/k-provider/ovp/services/playlist-service.ts +95 -0
- package/src/k-provider/ovp/services/session-service.ts +27 -0
- package/src/k-provider/ovp/services/stats/index.ts +11 -0
- package/src/k-provider/ovp/services/stats/stats-service.ts +32 -0
- package/src/k-provider/ovp/services/ui-conf-service.ts +32 -0
- package/src/types/adapter-data-config.ts +1 -0
- package/src/types/caption-type.ts +1 -0
- package/src/types/drm-data.ts +5 -0
- package/src/types/entry-list.ts +6 -0
- package/src/types/env-config.ts +7 -0
- package/src/types/external-caption-object.ts +7 -0
- package/src/types/filter-options.ts +3 -0
- package/src/types/index.ts +34 -0
- package/src/types/loader.ts +7 -0
- package/src/types/media-config-metadata.ts +13 -0
- package/src/types/media-config-session.ts +6 -0
- package/src/types/media-config-sources.ts +20 -0
- package/src/types/media-config.ts +8 -0
- package/src/types/media-entry.ts +16 -0
- package/src/types/media-format.ts +5 -0
- package/src/types/media-info.ts +21 -0
- package/src/types/media-source.ts +12 -0
- package/src/types/media-sources.ts +11 -0
- package/src/types/network-retry-parameters.ts +5 -0
- package/src/types/playback-context.ts +10 -0
- package/src/types/playlist-info.ts +4 -0
- package/src/types/playlist-item.ts +5 -0
- package/src/types/playlist-metadata.ts +4 -0
- package/src/types/playlist.ts +10 -0
- package/src/types/poster.ts +5 -0
- package/src/types/provider-options.ts +17 -0
- package/src/types/request-loader.ts +6 -0
- package/src/util/clone.ts +23 -0
- package/src/util/error/category.ts +11 -0
- package/src/util/error/code.ts +77 -0
- package/src/util/error/error.ts +47 -0
- package/src/util/error/severity.ts +21 -0
- package/src/util/logger.ts +108 -0
- package/src/util/param.ts +45 -0
- package/src/util/request-builder.ts +187 -0
- package/src/util/xml-parser.ts +39 -0
- package/CHANGELOG.md +0 -959
- package/samples/ott/bookmark.html +0 -23
- package/samples/ott/provider.html +0 -28
- package/samples/ovp/provider.html +0 -30
- package/samples/ovp/stats.html +0 -17
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.analytics=t():(e.playkit=e.playkit||{},e.playkit.services=e.playkit.services||{},e.playkit.services.analytics=t())}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=9)}([function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(2);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var a=function e(t,r,n,o){void 0===o&&(o={}),this.severity=t,this.category=r,this.code=n,this.data=o,e._logger.error("Category:"+r+" | Code:"+n+" |",o)};o(a,"Severity",{RECOVERABLE:1,CRITICAL:2}),o(a,"Category",{NETWORK:1,SERVICE:2,PROVIDER:3}),o(a,"Code",{UNSUPPORTED_SCHEME:1e3,BAD_HTTP_STATUS:1001,HTTP_ERROR:1002,TIMEOUT:1003,MALFORMED_DATA_URI:1004,BAD_SERVER_RESPONSE:1005,MULTIREQUEST_API_ERROR:1006,API_RESPONSE_MISMATCH:1007,ERROR:2e3,BLOCK_ACTION:2001,MEDIA_STATUS_NOT_READY:2002,MISSING_MANDATORY_PARAMS:3e3,MISSING_PLAY_SOURCE:3001,METHOD_NOT_IMPLEMENTED:3002}),o(a,"_logger",Object(n.a)("Error"))},function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(0);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var a=function(){function e(e){void 0===e&&(e=new Map),o(this,"retryConfig",{async:!0,timeout:0,maxAttempts:4}),o(this,"_attemptCounter",1),this.headers=e}var t=e.prototype;return t.getUrl=function(e){return e+"/service/"+this.service+(this.action?"/action/"+this.action:"")},t.doHttpRequest=function(){var e=this,t=new Promise((function(t,r){e._requestPromise={resolve:t,reject:r}}));return this.url||this._requestPromise.reject(new n.a(n.a.Severity.CRITICAL,n.a.Category.NETWORK,n.a.Code.MALFORMED_DATA_URI,{url:this.url})),this._createXHR(),t},t._createXHR=function(){var e=this,t=new XMLHttpRequest;t.onreadystatechange=function(){if(4===t.readyState&&200===t.status)try{var r=JSON.parse(t.responseText);return e.responseHeaders=e._getResponseHeaders(t),e._requestPromise.resolve(r)}catch(r){e._requestPromise.reject(e._createError(t,n.a.Code.BAD_SERVER_RESPONSE,{text:t.responseText}))}},t.open(this.method,this.url,this.retryConfig.async),this.retryConfig.async&&this.retryConfig.timeout&&(t.timeout=this.retryConfig.timeout);var r=performance.now();t.ontimeout=function(){e._handleError(t,n.a.Code.TIMEOUT,{timeout:(performance.now()-r)/1e3,statusText:t.statusText})},t.onerror=t.onabort=function(){e._handleError(t,n.a.Code.HTTP_ERROR,{text:t.responseText,statusText:t.statusText})},this.headers.forEach((function(e,r){t.setRequestHeader(r,e)})),t.send(this.params)},t._getResponseHeaders=function(e){return e.getAllResponseHeaders().split("\n").filter((function(e){return 0===e.toLowerCase().indexOf("x-")}))},t._handleError=function(e,t,r){var n=this._createError(e,t,r);if(e.onreadystatechange=function(){},e.onerror=function(){},e.ontimeout=function(){},e.onabort=function(){},!(this.retryConfig.maxAttempts&&this._attemptCounter<this.retryConfig.maxAttempts))return this._requestPromise.reject(n);this._attemptCounter++,this._createXHR()},t._createError=function(e,t,r){return Object.assign(r,{url:this.url,headers:this._getResponseHeaders(e),attempt:this._attemptCounter}),new n.a(n.a.Severity.CRITICAL,n.a.Category.NETWORK,t,r)},e}()},function(e,t,r){"use strict";var n={get:function(){return{VERSION:"",DEBUG:{value:"",name:""},ERROR:{value:"",name:""},INFO:{value:"",name:""},OFF:{value:"",name:""},TIME:{value:"",name:""},TRACE:{value:"",name:""},WARN:{value:"",name:""},createDefaultHandler:function(){},debug:function(){},enabledFor:function(){},error:function(){},get:function(){},getLevel:function(){},info:function(){},log:function(){},setHandler:function(){},setLevel:function(){},time:function(){},timeEnd:function(){},trace:function(){},useDefaults:function(){},warn:function(){}}}};function o(e){return n.get(e)}t.a=o},function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(4),o={serviceUrl:"https://cdnapisec.kaltura.com/api_v3",cdnUrl:"https://cdnapisec.kaltura.com",serviceParams:{apiVersion:"3.3.0",format:1},useApiCaptions:!0,loadThumbnailWithKs:!1,replaceHostOnlyManifestUrls:!1},a=function(){function e(){}return e.set=function(e){e&&Object.assign(o,e)},e.get=function(){return Object(n.a)(o)},e}()},function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var n=function e(t){var r;return Array.isArray(t)?(r=t.length>0?t.slice(0):[]).forEach((function(t,n){("object"==typeof t&&t!=={}||Array.isArray(t)&&t.length>0)&&(r[n]=e(t))})):"object"==typeof t?(r=Object.assign({},t),Object.keys(r).forEach((function(t){("object"==typeof r[t]&&r[t]!=={}||Array.isArray(r[t])&&r[t].length>0)&&(r[t]=e(r[t]))}))):r=t,r}},function(e,t,r){"use strict";r.d(t,"a",(function(){return f}));var n=r(1),o=r(2);var a=function(e){var t,r,n;n=!1,(r="hasError")in(t=this)?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,"KalturaAPIException"===e.objectType?(this.hasError=!0,this.error=new i(e.code,e.message)):e.error&&"KalturaAPIException"===e.error.objectType?(this.hasError=!0,this.error=new i(e.error.code,e.error.message)):this.data=e},i=function(e,t){this.code=e,this.message=t},s=r(0);function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var f=function(e){var t,r;function n(){for(var t,r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return c(u(t=e.call.apply(e,[this].concat(n))||this),"requests",[]),t}r=e,(t=n).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r;var o=n.prototype;return o.add=function(e){var t;this.requests.push(e);var r={},n={service:e.service,action:e.action};return Object.assign(r,((t={})[this.requests.length]=Object.assign(n,e.params),t)),Object.assign(r,this.params),this.params=r,this},o.execute=function(e){var t=this;return new Promise((function(r,o){try{t.params=JSON.stringify(t.params)}catch(e){n._logger.error(""+e.message),o(new s.a(s.a.Severity.CRITICAL,s.a.Category.PROVIDER,s.a.Code.FAILED_PARSING_REQUEST,{error:e,params:t.params}))}t.doHttpRequest().then((function(n){var a=new l(n,e);a.success?r({headers:t.responseHeaders,response:a}):o(new s.a(s.a.Severity.CRITICAL,s.a.Category.NETWORK,s.a.Code.MULTIREQUEST_API_ERROR,{url:t.url,headers:t.responseHeaders,results:a.results}))}),(function(e){o(e)}))}))},n}(n.a);c(f,"_logger",Object(o.a)("MultiRequestBuilder"));var l=function e(t,r){void 0===r&&(r=!0),c(this,"results",[]);var n=t.result?t.result:t,o=(Array.isArray(n)?n:[n]).map((function(e){return new a(e)})),i=o.filter((function(e){return e.hasError}));i.forEach((function(t){e._logger.error("Service returned an error with error code: "+t.error.code+" and message: "+t.error.message+".")})),this.results=o,r&&i.length||i.length===this.results.length?this.success=!1:(this.results=this.results.filter((function(e){return!e.hasError})),this.success=!0)};c(l,"_logger",Object(o.a)("MultiRequestResult"))},function(e,t,r){"use strict";r.d(t,"a",(function(){return n}));var n=function(e){var t=[],r=/\[\]$/,n=function(e){return"[object Array]"===Object.prototype.toString.call(e)},o=function(e,r){r="function"==typeof r?r():null==r?"":r,t[t.length]=encodeURIComponent(e)+"="+encodeURIComponent(r)};return function e(a,i){var s,u,c;if(a)if(n(i))for(s=0,u=i.length;s<u;s++)r.test(a)?o(a,i[s]):e(a+":"+("object"==typeof i[s]?s:""),i[s]);else if(i&&"[object Object]"===String(i))for(c in i)e(a+":"+c,i[c]);else o(a,i);else if(n(i))for(s=0,u=i.length;s<u;s++)o(i[s].name,i[s].value);else for(c in i)e(c,i[c]);return t}("",e).join("&").replace(/%20/g,"+")}},function(e,t,r){"use strict";r.d(t,"a",(function(){return a}));var n=r(5),o=r(3),a=function(){function e(){}return e.getMultiRequest=function(e,t,r){var a=o.a.get(),i=a.serviceParams;Object.assign(i,{ks:t,clientTag:"html5:v"+e}),r&&Object.assign(i,{partnerId:r});var s=new Map;s.set("Content-Type","application/json");var u=new n.a(s);return u.method="POST",u.service="multirequest",u.url=u.getUrl(a.serviceUrl),u.params=i,u},e}()},,function(e,t,r){"use strict";r.r(t),r.d(t,"OVPAnalyticsService",(function(){return s})),r.d(t,"OVPConfiguration",(function(){return o.a})),r.d(t,"RequestBuilder",(function(){return n.a})),r.d(t,"NAME",(function(){return u})),r.d(t,"VERSION",(function(){return c}));var n=r(1),o=r(3),a=r(7),i=r(6);var s=function(e){var t,r;function a(){return e.apply(this,arguments)||this}return r=e,(t=a).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,a.trackEvent=function(e,t,r){return"POST"===r?a._trackEventByPOST(e,t):a._trackEventByGET(e,t)},a._trackEventByGET=function(e,t){var r=o.a.get(),a={};Object.assign(a,r.serviceParams,t);var s=new n.a;return s.service="analytics",s.action="trackEvent",s.method="GET",s.retryConfig.maxAttempts=1,s.tag="analytics-trackEvent",s.params=a,s.url=e+"?service="+s.service+"&action="+s.action+"&"+Object(i.a)(s.params),s},a._trackEventByPOST=function(e,t){var r=o.a.get(),a={};Object.assign(a,r.serviceParams,t);var s=new Map;s.set("Content-Type","application/json");var u=new n.a(s),c={eventType:a.eventType,partnerId:a.partnerId,entryId:a.entryId,sessionId:a.sessionId};return["eventType","partnerId","entryId","sessionId"].forEach((function(e){return delete a[e]})),u.service="analytics",u.action="trackEvent",u.method="POST",u.retryConfig.maxAttempts=1,u.tag="analytics-trackEvent",u.params=JSON.stringify(a),u.url=e+"?service="+u.service+"&action="+u.action+"&"+Object(i.a)(c),u},a}(a.a),u="@playkit-js/playkit-js-providers-analytics-service",c="2.40.1"}])}));
|
|
1
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var s in r)("object"==typeof exports?exports:e)[s]=r[s]}}(globalThis,(()=>(()=>{"use strict";var e={d:(t,r)=>{for(var s in r)e.o(r,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:r[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{NAME:()=>T,OVPAnalyticsService:()=>f,OVPConfiguration:()=>h,RequestBuilder:()=>c,VERSION:()=>_});const r=()=>({VERSION:"",DEBUG:{value:"",name:""},ERROR:{value:"",name:""},INFO:{value:"",name:""},OFF:{value:"",name:""},TIME:{value:"",name:""},TRACE:{value:"",name:""},WARN:{value:"",name:""},createDefaultHandler:()=>{},debug:()=>{},enabledFor:()=>{},error:()=>{},get:()=>{},getLevel:()=>{},info:()=>{},log:()=>{},setHandler:()=>{},setLevel:()=>{},time:()=>{},timeEnd:()=>{},trace:()=>{},useDefaults:()=>{},warn:()=>{}});const s=function(e){return r(e)},a={RECOVERABLE:1,CRITICAL:2},o={UNSUPPORTED_SCHEME:1e3,BAD_HTTP_STATUS:1001,HTTP_ERROR:1002,TIMEOUT:1003,MALFORMED_DATA_URI:1004,BAD_SERVER_RESPONSE:1005,MULTIREQUEST_API_ERROR:1006,API_RESPONSE_MISMATCH:1007,ERROR:2e3,BLOCK_ACTION:2001,MEDIA_STATUS_NOT_READY:2002,MISSING_MANDATORY_PARAMS:3e3,MISSING_PLAY_SOURCE:3001,METHOD_NOT_IMPLEMENTED:3002},n={NETWORK:1,SERVICE:2,PROVIDER:3};class i{static Severity=a;static Category=n;static Code=o;static _logger=s("Error");constructor(e,t,r,s={}){this.severity=e,this.category=t,this.code=r,this.data=s,i._logger.error(`Category:${t} | Code:${r} |`,s)}}class c{retryConfig={async:!0,timeout:0,maxAttempts:4};_attemptCounter=1;constructor(e=new Map){this.headers=e}getUrl(e){return e+"/service/"+this.service+(this.action?"/action/"+this.action:"")}doHttpRequest(){const e=new Promise(((e,t)=>{this._requestPromise={resolve:e,reject:t}}));return this.url||this._requestPromise.reject(new i(i.Severity.CRITICAL,i.Category.NETWORK,i.Code.MALFORMED_DATA_URI,{url:this.url})),this._createXHR(),e}_createXHR(){const e=new XMLHttpRequest;e.onreadystatechange=()=>{if(4===e.readyState&&200===e.status)try{const t=JSON.parse(e.responseText);return this.responseHeaders=this._getResponseHeaders(e),this._requestPromise.resolve(t)}catch(t){this._requestPromise.reject(this._createError(e,i.Code.BAD_SERVER_RESPONSE,{text:e.responseText}))}},e.open(this.method,this.url,this.retryConfig.async),this.retryConfig.async&&this.retryConfig.timeout&&(e.timeout=this.retryConfig.timeout);const t=performance.now();e.ontimeout=()=>{this._handleError(e,i.Code.TIMEOUT,{timeout:(performance.now()-t)/1e3,statusText:e.statusText})},e.onerror=e.onabort=()=>{this._handleError(e,i.Code.HTTP_ERROR,{text:e.responseText,statusText:e.statusText})},this.headers.forEach(((t,r)=>{e.setRequestHeader(r,t)})),e.send(this.params)}_getResponseHeaders(e){return e.getAllResponseHeaders().split("\n").filter((e=>0===e.toLowerCase().indexOf("x-")))}_handleError(e,t,r){const s=this._createError(e,t,r);if(e.onreadystatechange=function(){},e.onerror=function(){},e.ontimeout=function(){},e.onabort=function(){},!(this.retryConfig.maxAttempts&&this._attemptCounter<this.retryConfig.maxAttempts))return this._requestPromise.reject(s);this._attemptCounter++,this._createXHR()}_createError(e,t,r){return Object.assign(r,{url:this.url,headers:this._getResponseHeaders(e),attempt:this._attemptCounter}),new i(i.Severity.CRITICAL,i.Category.NETWORK,t,r)}}const l=e=>{let t;return Array.isArray(e)?(t=e.length>0?e.slice(0):[],t.forEach(((e,r)=>{("object"==typeof e||Array.isArray(e)&&e.length>0)&&(t[r]=l(e))}))):"object"==typeof e?(t=Object.assign({},e),Object.keys(t).forEach((e=>{("object"==typeof t[e]||Array.isArray(t[e])&&t[e].length>0)&&(t[e]=l(t[e]))}))):t=e,t},u={serviceUrl:"https://cdnapisec.kaltura.com/api_v3",cdnUrl:"https://cdnapisec.kaltura.com",serviceParams:{apiVersion:"3.3.0",format:1},useApiCaptions:!0,loadThumbnailWithKs:!1,replaceHostOnlyManifestUrls:!1};class h{static set(e){e&&Object.assign(u,e)}static get(){return l(u)}}class p{hasError=!1;constructor(e){"KalturaAPIException"===e.objectType?(this.hasError=!0,this.error=new d(e.code,e.message)):e.error&&"KalturaAPIException"===e.error.objectType?(this.hasError=!0,this.error=new d(e.error.code,e.error.message)):this.data=e}}class d{constructor(e,t){this.code=e,this.message=t}}class g extends c{static _logger=s("MultiRequestBuilder");requests=[];add(e){this.requests.push(e);const t={},r={service:e.service,action:e.action};return Object.assign(t,{[this.requests.length]:Object.assign(r,e.params)}),Object.assign(t,this.params),this.params=t,this}execute(e){return new Promise(((t,r)=>{try{this.params=JSON.stringify(this.params)}catch(e){g._logger.error(`${e.message}`),r(new i(i.Severity.CRITICAL,i.Category.PROVIDER,i.Code.FAILED_PARSING_REQUEST,{error:e,params:this.params}))}this.doHttpRequest().then((s=>{const a=new E(s,e);a.success?t({headers:this.responseHeaders,response:a}):r(new i(i.Severity.CRITICAL,i.Category.NETWORK,i.Code.MULTIREQUEST_API_ERROR,{url:this.url,headers:this.responseHeaders,results:a.results}))}),(e=>{r(e)}))}))}}class E{static _logger=s("MultiRequestResult");results=[];constructor(e,t=!0){const r=e.result?e.result:e,s=(Array.isArray(r)?r:[r]).map((e=>new p(e))),a=s.filter((e=>e.hasError));a.forEach((e=>{E._logger.error(`Service returned an error with error code: ${e.error.code} and message: ${e.error.message}.`)})),this.results=s,t&&a.length||a.length===this.results.length?this.success=!1:(this.results=this.results.filter((e=>!e.hasError)),this.success=!0)}}class y{static getMultiRequest(e,t,r){const s=h.get(),a=s.serviceParams;Object.assign(a,{ks:t,clientTag:"html5:v"+e}),r&&Object.assign(a,{partnerId:r});const o=new Map;o.set("Content-Type","application/json");const n=new g(o);return n.method="POST",n.service="multirequest",n.url=n.getUrl(s.serviceUrl),n.params=a,n}}const m=e=>{const t=[],r=/\[\]$/,s=function(e){return"[object Array]"===Object.prototype.toString.call(e)},a=function(e,r){r="function"==typeof r?r():null==r?"":r,t[t.length]=encodeURIComponent(e)+"="+encodeURIComponent(r)},o=function(e,n){let i,c,l;if(e)if(s(n))for(i=0,c=n.length;i<c;i++)r.test(e)?a(e,n[i]):o(e+":"+("object"==typeof n[i]?i:""),n[i]);else if(n&&"[object Object]"===String(n))for(l in n)o(e+":"+l,n[l]);else a(e,n);else if(s(n))for(i=0,c=n.length;i<c;i++)a(n[i].name,n[i].value);else for(l in n)o(l,n[l]);return t};return o("",e).join("&").replace(/%20/g,"+")},R="analytics";class f extends y{static trackEvent(e,t,r){return"POST"===r?f._trackEventByPOST(e,t):f._trackEventByGET(e,t)}static _trackEventByGET(e,t){const r=h.get(),s={};Object.assign(s,r.serviceParams,t);const a=new c;return a.service=R,a.action="trackEvent",a.method="GET",a.retryConfig.maxAttempts=1,a.tag="analytics-trackEvent",a.params=s,a.url=e+"?service="+a.service+"&action="+a.action+"&"+m(a.params),a}static _trackEventByPOST(e,t){const r=h.get(),s={};Object.assign(s,r.serviceParams,t);const a=new Map;a.set("Content-Type","application/json");const o=new c(a),{eventType:n,partnerId:i,entryId:l,sessionId:u}=s,p={eventType:n,partnerId:i,entryId:l,sessionId:u};return["eventType","partnerId","entryId","sessionId"].forEach((e=>delete s[e])),o.service=R,o.action="trackEvent",o.method="POST",o.retryConfig.maxAttempts=1,o.tag="analytics-trackEvent",o.params=JSON.stringify(s),o.url=e+"?service="+o.service+"&action="+o.action+"&"+m(p),o}}const T="@playkit-js/playkit-js-providers-analytics-service",_="2.41.0-canary.0-2452bbc";return t})()));
|
|
2
2
|
//# sourceMappingURL=playkit-analytics-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["./providers/webpack/universalModuleDefinition","./providers/webpack/bootstrap","./providers/./util/error/error.js","./providers/./util/error/severity.js","./providers/./util/error/category.js","./providers/./util/error/code.js","./providers/./util/request-builder.js","./providers/./util/logger.js","./providers/./k-provider/ovp/config.js","./providers/./util/clone.js","./providers/./k-provider/common/base-service-result.js","./providers/./k-provider/common/multi-request-builder.js","./providers/./util/param.js","./providers/./k-provider/ovp/services/ovp-service.js","./providers/./k-provider/ovp/services/analytics/analytics-service.js","./providers/./k-provider/ovp/services/analytics/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","Error","severity","category","code","data","this","_logger","error","RECOVERABLE","CRITICAL","NETWORK","SERVICE","PROVIDER","UNSUPPORTED_SCHEME","BAD_HTTP_STATUS","HTTP_ERROR","TIMEOUT","MALFORMED_DATA_URI","BAD_SERVER_RESPONSE","MULTIREQUEST_API_ERROR","API_RESPONSE_MISMATCH","ERROR","BLOCK_ACTION","MEDIA_STATUS_NOT_READY","MISSING_MANDATORY_PARAMS","MISSING_PLAY_SOURCE","METHOD_NOT_IMPLEMENTED","getLogger","RequestBuilder","headers","Map","async","timeout","maxAttempts","getUrl","serviceUrl","service","action","doHttpRequest","promise","Promise","resolve","reject","_requestPromise","url","Severity","Category","Code","_createXHR","request","XMLHttpRequest","onreadystatechange","readyState","status","response","JSON","parse","responseText","responseHeaders","_getResponseHeaders","_createError","text","open","method","retryConfig","requestTime","performance","now","ontimeout","_handleError","statusText","onerror","onabort","forEach","setRequestHeader","send","params","getAllResponseHeaders","split","filter","header","toLowerCase","indexOf","_attemptCounter","assign","attempt","JsLogger","VERSION","DEBUG","INFO","OFF","TIME","TRACE","WARN","createDefaultHandler","debug","enabledFor","getLevel","info","log","setHandler","setLevel","time","timeEnd","trace","useDefaults","warn","defaultConfig","cdnUrl","serviceParams","apiVersion","format","useApiCaptions","loadThumbnailWithKs","replaceHostOnlyManifestUrls","OVPConfiguration","set","clientConfig","clone","node","Array","isArray","length","slice","e","keys","ServiceResult","objectType","hasError","ServiceError","message","MultiRequestBuilder","add","requests","push","requestParams","serviceDef","execute","requestsMustSucceed","stringify","err","FAILED_PARSING_REQUEST","then","multiRequestResult","MultiRequestResult","success","results","result","map","errorResults","serviceResult","param","a","rbracket","obj","toString","k","v","encodeURIComponent","buildParams","prefix","len","test","String","join","replace","OVPService","getMultiRequest","playerVersion","ks","partnerId","config","ovpParams","clientTag","multiReq","OVPAnalyticsService","trackEvent","requestMethod","_trackEventByPOST","_trackEventByGET","tag","urlParams","eventType","entryId","sessionId","NAME","__NAME__","__VERSION__"],"mappings":"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","file":"playkit-analytics-service.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[\"analytics\"] = factory();\n\telse\n\t\troot[\"playkit\"] = root[\"playkit\"] || {}, root[\"playkit\"][\"services\"] = root[\"playkit\"][\"services\"] || {}, root[\"playkit\"][\"services\"][\"analytics\"] = factory();\n})(window, function() {\nreturn "," \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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 9);\n","//@flow\nimport getLogger from '../logger';\nimport {Severity} from './severity';\nimport type {SeverityType} from './severity';\nimport {Code} from './code';\nimport type {CodeType} from './code';\nimport {Category} from './category';\nimport type {CategoryType} from './category';\n\nconst CLASS_NAME: string = 'Error';\n\n/**\n * @classdesc This is a description of the error class.\n */\nexport default class Error {\n severity: number;\n category: number;\n code: number;\n data: any;\n /**\n * @enum {number}\n */\n static Severity: SeverityType = Severity;\n /**\n * @enum {number}\n */\n static Category: CategoryType = Category;\n /**\n * @enum {number}\n */\n static Code: CodeType = Code;\n static _logger: any = getLogger(CLASS_NAME);\n\n /**\n * @constructor\n * @param {number} severity - error's severity\n * @param {number} category - error's category.\n * @param {number} code - error's code.\n * @param {any} data - additional data for the error.\n */\n constructor(severity: number, category: number, code: number, data: any = {}) {\n this.severity = severity;\n this.category = category;\n this.code = code;\n this.data = data;\n Error._logger.error(`Category:${category} | Code:${code} |`, data);\n }\n}\n","//@flow\n\ntype SeverityType = {[severity: string]: number};\n\nconst Severity: SeverityType = {\n /**\n * An error occurred, but the Player is attempting to recover from the error.\n *\n * If the Player cannot ultimately recover, it still may not throw a CRITICAL\n * error. For example, retrying for a media segment will never result in\n * a CRITICAL error (the Player will just retry forever).\n */\n RECOVERABLE: 1,\n /**\n * A critical error that the library cannot recover from. These usually cause\n * the Player to stop loading or updating. A new manifest must be loaded\n * to reset the library.\n */\n CRITICAL: 2\n};\n\nexport {Severity};\nexport type {SeverityType};\n","//@flow\ntype CategoryType = {[category: string]: number};\n\nconst Category: CategoryType = {\n /** Errors from the network stack. */\n NETWORK: 1,\n SERVICE: 2,\n PROVIDER: 3\n};\n\nexport {Category};\nexport type {CategoryType};\n","//@flow\n\ntype CodeType = {[code: string]: number};\n\nconst Code: CodeType = {\n /**\n * A network request was made using an unsupported URI scheme.\n */\n UNSUPPORTED_SCHEME: 1000,\n\n /**\n * An HTTP network request returned an HTTP status that indicated a failure.\n */\n BAD_HTTP_STATUS: 1001,\n\n /**\n * An HTTP network request failed with an error, but not from the server.\n */\n HTTP_ERROR: 1002,\n\n /**\n * A network request timed out.\n */\n TIMEOUT: 1003,\n\n /**\n * A network request was made with a malformed data URI.\n */\n MALFORMED_DATA_URI: 1004,\n\n /**\n * The server responsded with 2xx response, but it couldn't be parsed\n */\n BAD_SERVER_RESPONSE: 1005,\n\n /**\n * The server response had a valid structure but contained an error from the API\n */\n MULTIREQUEST_API_ERROR: 1006,\n\n /**\n * The server response had a valid structure and valid API result, but it did not match the request\n */\n API_RESPONSE_MISMATCH: 1007,\n\n /**\n * The server responded with an error\n */\n ERROR: 2000,\n\n /**\n * The server responded with a block action\n */\n BLOCK_ACTION: 2001,\n\n /**\n * The server responded with status import or pre convert\n */\n MEDIA_STATUS_NOT_READY: 2002,\n\n /**\n * The provider is missing mandatory parameter/s\n */\n\n MISSING_MANDATORY_PARAMS: 3000,\n\n /**\n * The server responded with empty sources objects (for HLS, Dash and progressive)\n */\n MISSING_PLAY_SOURCE: 3001,\n\n /**\n * The provider doesn't implement the called api\n */\n METHOD_NOT_IMPLEMENTED: 3002\n};\n\nexport {Code};\nexport type {CodeType};\n","//@flow\nimport Error from './error/error';\n\nconst KALTURA_HEADER_PREFIX: string = 'x-';\n\nexport default class RequestBuilder {\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 * @memberof - Service headers\n * @type {Map<string, string>}\n */\n headers: Map<string, string>;\n /**\n * @memberof - Service URL\n * @type {string}\n */\n url: string;\n /**\n * @memberof - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @memberof - Service tag\n * @type {string}\n */\n tag: string;\n /**\n * @memberof - the response headers of the arra\n * @type {Array<string>}\n */\n responseHeaders: Array<string>;\n /**\n * @description network retry configuration\n * @memberof RequestBuilder\n * @type {ProviderNetworkRetryParameters}\n */\n retryConfig: ProviderNetworkRetryParameters = {\n async: true,\n timeout: 0,\n maxAttempts: 4\n };\n\n /**\n * @description number of xhr attempts for the same multi - request.\n * @memberof RequestBuilder\n * @type {number}\n * @private\n */\n _attemptCounter: number = 1;\n\n /**\n * @description hold the promise result of the XHR request(s) - if all tries fails, it rejects with the error.\n * @memberof RequestBuilder\n * @type {Object}\n * @private\n */\n _requestPromise: Object;\n\n /**\n * @constructor\n * @param {Map<string, string>} headers The request headers\n */\n constructor(headers: Map<string, string> = new Map()) {\n this.headers = headers;\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @param {string} serviceUrl - The service base URL\n * @returns {string} The service URL\n */\n getUrl(serviceUrl: string): string {\n return serviceUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.<any>} Service response as promise\n */\n doHttpRequest(): Promise<any> {\n const promise = new Promise((resolve, reject) => {\n this._requestPromise = {\n resolve,\n reject\n };\n });\n if (!this.url) {\n this._requestPromise.reject(\n new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, Error.Code.MALFORMED_DATA_URI, {\n url: this.url\n })\n );\n }\n this._createXHR();\n return promise;\n }\n\n _createXHR(): void {\n let request = new XMLHttpRequest();\n request.onreadystatechange = () => {\n if (request.readyState === 4) {\n if (request.status === 200) {\n try {\n const response = JSON.parse(request.responseText);\n this.responseHeaders = this._getResponseHeaders(request);\n // the promise returns the response for backwards compatibility\n return this._requestPromise.resolve(response);\n } catch (error) {\n this._requestPromise.reject(\n this._createError(request, Error.Code.BAD_SERVER_RESPONSE, {\n text: request.responseText\n })\n );\n }\n }\n }\n };\n request.open(this.method, this.url, this.retryConfig.async);\n if (this.retryConfig.async && this.retryConfig.timeout) {\n request.timeout = this.retryConfig.timeout;\n }\n const requestTime = performance.now();\n request.ontimeout = () => {\n this._handleError(request, Error.Code.TIMEOUT, {\n timeout: (performance.now() - requestTime) / 1000,\n statusText: request.statusText\n });\n };\n request.onerror = request.onabort = () => {\n this._handleError(request, Error.Code.HTTP_ERROR, {\n text: request.responseText,\n statusText: request.statusText\n });\n };\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n }\n\n _getResponseHeaders(request: XMLHttpRequest): Array<string> {\n return request\n .getAllResponseHeaders()\n .split('\\n')\n .filter(header => header.toLowerCase().indexOf(KALTURA_HEADER_PREFIX) === 0);\n }\n\n _handleError(request: XMLHttpRequest, code: number, data: Object): Promise<*> | void {\n const error = this._createError(request, code, data);\n request.onreadystatechange = function () {};\n request.onerror = function () {};\n request.ontimeout = function () {};\n request.onabort = function () {};\n if (this.retryConfig.maxAttempts && this._attemptCounter < this.retryConfig.maxAttempts) {\n this._attemptCounter++;\n this._createXHR();\n } else {\n return this._requestPromise.reject(error);\n }\n }\n\n _createError(request: XMLHttpRequest, code: number, data: Object): Error {\n Object.assign(data, {\n url: this.url,\n headers: this._getResponseHeaders(request),\n attempt: this._attemptCounter\n });\n return new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, code, data);\n }\n}\n","//@flow\nexport type LogLevelObject = {value: number, name: string};\nexport type LogLevelType = {[level: string]: LogLevelObject};\nexport type loggerFunctionType = {\n VERSION: String,\n DEBUG: LogLevelObject,\n ERROR: LogLevelObject,\n INFO: LogLevelObject,\n OFF: LogLevelObject,\n TIME: LogLevelObject,\n TRACE: LogLevelObject,\n WARN: LogLevelObject,\n createDefaultHandler: Function,\n debug: Function,\n enabledFor: Function,\n error: Function,\n get: Function,\n getLevel: Function,\n info: Function,\n log: Function,\n setHandler: Function,\n setLevel: Function,\n time: Function,\n timeEnd: Function,\n trace: Function,\n useDefaults: Function,\n warn: Function\n};\n\nexport type LoggerType = {\n getLogger: loggerFunctionType,\n LogLevel: LogLevelType\n};\n\nlet JsLogger = {\n get: () => ({\n VERSION: '',\n DEBUG: {value: '', name: ''},\n ERROR: {value: '', name: ''},\n INFO: {value: '', name: ''},\n OFF: {value: '', name: ''},\n TIME: {value: '', name: ''},\n TRACE: {value: '', name: ''},\n WARN: {value: '', name: ''},\n createDefaultHandler: () => {},\n debug: () => {},\n enabledFor: () => {},\n error: () => {},\n get: () => {},\n getLevel: () => {},\n info: () => {},\n log: () => {},\n setHandler: () => {},\n setLevel: () => {},\n time: () => {},\n timeEnd: () => {},\n trace: () => {},\n useDefaults: () => {},\n warn: () => {}\n })\n};\n\nlet LogLevel: LogLevelType = {};\n/**\n * set logger\n * @param {LoggerType} logger - the logger\n * @returns {void}\n */\nfunction setLogger(logger: ?LoggerType): void {\n if (logger && typeof logger.getLogger === 'function') {\n JsLogger.get = logger.getLogger;\n }\n if (logger && logger.LogLevel) {\n LogLevel = logger.LogLevel;\n }\n}\n\n/**\n * get a logger\n * @param {?string} name - the logger name\n * @returns {Object} - the logger class\n */\nfunction getLogger(name?: string): Object {\n //$FlowFixMe\n return JsLogger.get(name);\n}\n\n/**\n * get the log level\n * @param {?string} name - the logger name\n * @returns {LogLevelObject} - the log level\n */\nfunction getLogLevel(name?: string): LogLevelObject {\n return getLogger(name).getLevel();\n}\n\n/**\n * sets the logger level\n * @param {LogLevelObject} level - the log level\n * @param {?string} name - the logger name\n * @returns {void}\n */\nfunction setLogLevel(level: LogLevelObject, name?: string): void {\n getLogger(name).setLevel(level);\n}\n\nexport default getLogger;\nexport {getLogLevel, setLogLevel, setLogger, LogLevel};\n","//@flow\nimport {clone} from '../../util/clone';\n\nconst defaultConfig: Object = {\n serviceUrl: 'https://cdnapisec.kaltura.com/api_v3',\n cdnUrl: 'https://cdnapisec.kaltura.com',\n serviceParams: {\n apiVersion: '3.3.0',\n format: 1\n },\n useApiCaptions: true,\n loadThumbnailWithKs: false,\n replaceHostOnlyManifestUrls: false\n};\n\nexport default class OVPConfiguration {\n static set(clientConfig?: ProviderEnvConfigObject) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return clone(defaultConfig);\n }\n}\n\nexport {OVPConfiguration};\n","const clone = data => {\n let node;\n if (Array.isArray(data)) {\n node = data.length > 0 ? data.slice(0) : [];\n node.forEach((e, i) => {\n if ((typeof e === 'object' && e !== {}) || (Array.isArray(e) && e.length > 0)) {\n node[i] = clone(e);\n }\n });\n } else if (typeof data === 'object') {\n node = Object.assign({}, data);\n Object.keys(node).forEach(key => {\n if ((typeof node[key] === 'object' && node[key] !== {}) || (Array.isArray(node[key]) && node[key].length > 0)) {\n node[key] = clone(node[key]);\n }\n });\n } else {\n node = data;\n }\n return node;\n};\n\nexport {clone};\n","//@flow\nexport default class ServiceResult {\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 } else if (response.error && response.error.objectType === 'KalturaAPIException') {\n this.hasError = true;\n this.error = new ServiceError(response.error.code, response.error.message);\n } else {\n this.data = response;\n }\n }\n}\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","//@flow\nimport RequestBuilder from '../../util/request-builder';\nimport getLogger from '../../util/logger';\nimport ServiceResult from './base-service-result';\nimport Error from '../../util/error/error';\n\nexport default class MultiRequestBuilder extends RequestBuilder {\n static _logger = getLogger('MultiRequestBuilder');\n /**\n * @memberof - MultiRequestBuilder\n * @type {Array<RequestBuilder>}\n */\n requests: Array<RequestBuilder> = [];\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 const requestParams = {};\n const 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 * @param {boolean} requestsMustSucceed whether all of the requests must succeed or not\n * @returns {Promise} The multirequest execution promise\n */\n execute(requestsMustSucceed?: boolean): Promise<Object> {\n return new Promise((resolve, reject) => {\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n MultiRequestBuilder._logger.error(`${err.message}`);\n reject(\n new Error(Error.Severity.CRITICAL, Error.Category.PROVIDER, Error.Code.FAILED_PARSING_REQUEST, {\n error: err,\n params: this.params\n })\n );\n }\n this.doHttpRequest().then(\n data => {\n const multiRequestResult = new MultiRequestResult(data, requestsMustSucceed);\n if (multiRequestResult.success) {\n resolve({\n headers: this.responseHeaders,\n response: multiRequestResult\n });\n } else {\n reject(\n new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, Error.Code.MULTIREQUEST_API_ERROR, {\n url: this.url,\n headers: this.responseHeaders,\n results: multiRequestResult.results\n })\n );\n }\n },\n err => {\n reject(err);\n }\n );\n });\n }\n}\n\nexport class MultiRequestResult {\n static _logger = getLogger('MultiRequestResult');\n /**\n * @memberof MultiRequestResult\n * @type {boolean}\n */\n success: boolean;\n /**\n * @memberof MultiRequestResult\n * @type {Object}\n */\n results: Array<ServiceResult> = [];\n /**\n * @constructor\n * @param {Object} response data\n * @param {boolean} requestsMustSucceed whether all of the requests must succeed\n */\n constructor(response: Object, requestsMustSucceed?: boolean = true) {\n const result = response.result ? response.result : response;\n const responseArr = Array.isArray(result) ? result : [result];\n const results = responseArr.map(result => new ServiceResult(result));\n const errorResults = results.filter(serviceResult => serviceResult.hasError);\n\n errorResults.forEach(serviceResult => {\n MultiRequestResult._logger.error(\n `Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`\n );\n });\n\n this.results = results;\n if ((requestsMustSucceed && errorResults.length) || errorResults.length === this.results.length) {\n this.success = false;\n } else {\n this.results = this.results.filter(serviceResult => !serviceResult.hasError);\n this.success = true;\n }\n }\n}\n","const param = a => {\n let s = [],\n rbracket = /\\[\\]$/,\n isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n },\n add = function (k, v) {\n v = typeof v === 'function' ? v() : v === null ? '' : v === undefined ? '' : v;\n s[s.length] = encodeURIComponent(k) + '=' + encodeURIComponent(v);\n },\n buildParams = function (prefix, obj) {\n let i, len, key;\n\n if (prefix) {\n if (isArray(obj)) {\n for (i = 0, len = obj.length; i < len; i++) {\n if (rbracket.test(prefix)) {\n add(prefix, obj[i]);\n } else {\n buildParams(prefix + ':' + (typeof obj[i] === 'object' ? i : ''), obj[i]);\n }\n }\n } else if (obj && String(obj) === '[object Object]') {\n for (key in obj) {\n buildParams(prefix + ':' + key, obj[key]);\n }\n } else {\n add(prefix, obj);\n }\n } else if (isArray(obj)) {\n for (i = 0, len = obj.length; i < len; i++) {\n add(obj[i].name, obj[i].value);\n }\n } else {\n for (key in obj) {\n buildParams(key, obj[key]);\n }\n }\n return s;\n };\n\n return buildParams('', a).join('&').replace(/%20/g, '+');\n};\n\nexport {param};\n","//@flow\nimport MultiRequestBuilder from '../../common/multi-request-builder';\nimport OVPConfiguration from '../config';\n\nconst SERVICE_NAME: string = 'multirequest';\n\nexport default class OVPService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultiRequest\n * @param {string} playerVersion The player version\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(playerVersion: string, ks: string, partnerId?: number): MultiRequestBuilder {\n const config = OVPConfiguration.get();\n const ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks, clientTag: 'html5:v' + playerVersion});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n const headers: Map<string, string> = new Map();\n headers.set('Content-Type', 'application/json');\n const multiReq = new MultiRequestBuilder(headers);\n multiReq.method = 'POST';\n multiReq.service = SERVICE_NAME;\n multiReq.url = multiReq.getUrl(config.serviceUrl);\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n","//@flow\nimport OVPService from '../ovp-service';\nimport RequestBuilder from '../../../../util/request-builder';\nimport OVPConfiguration from '../../config';\nimport {param} from '../../../../util/param';\n\nconst SERVICE_NAME: string = 'analytics';\n\nexport default class OVPAnalyticsService extends OVPService {\n /**\n * Creates an instance of RequestBuilder for analytics.trackEvent\n * @function trackEvent\n * @param {string} serviceUrl - The service base url\n * @param {Object} params - The event params\n * @param {string} [requestMethod] - The request method GET or POST\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static trackEvent(serviceUrl: string, params: Object, requestMethod: ?string): RequestBuilder {\n return requestMethod === 'POST'\n ? OVPAnalyticsService._trackEventByPOST(serviceUrl, params)\n : OVPAnalyticsService._trackEventByGET(serviceUrl, params);\n }\n\n static _trackEventByGET(serviceUrl: string, params: Object): RequestBuilder {\n const ovpParams = OVPConfiguration.get();\n const serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, params);\n const request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = 'trackEvent';\n request.method = 'GET';\n request.retryConfig.maxAttempts = 1;\n request.tag = 'analytics-trackEvent';\n request.params = serviceParams;\n request.url = serviceUrl + '?service=' + request.service + '&action=' + request.action + '&' + param(request.params);\n return request;\n }\n\n static _trackEventByPOST(serviceUrl: string, params: Object): RequestBuilder {\n const ovpParams = OVPConfiguration.get();\n const serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, params);\n const headers: Map<string, string> = new Map();\n headers.set('Content-Type', 'application/json');\n const request = new RequestBuilder(headers);\n const {eventType, partnerId, entryId, sessionId} = serviceParams;\n const urlParams = {eventType, partnerId, entryId, sessionId};\n ['eventType', 'partnerId', 'entryId', 'sessionId'].forEach(key => delete serviceParams[key]);\n request.service = SERVICE_NAME;\n request.action = 'trackEvent';\n request.method = 'POST';\n request.retryConfig.maxAttempts = 1;\n request.tag = 'analytics-trackEvent';\n request.params = JSON.stringify(serviceParams);\n request.url = serviceUrl + '?service=' + request.service + '&action=' + request.action + '&' + param(urlParams);\n return request;\n }\n}\n","// @flow\nimport RequestBuilder from '../../../../util/request-builder';\nimport OVPConfiguration from '../../config';\nimport OVPAnalyticsService from './analytics-service';\n\ndeclare var __VERSION__: string;\ndeclare var __NAME__: string;\n\nconst NAME = __NAME__ + '-analytics-service';\nconst VERSION = __VERSION__;\n\nexport {OVPAnalyticsService, OVPConfiguration, RequestBuilder, NAME, VERSION};\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"playkit-analytics-service.js","mappings":"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","sources":["webpack://@playkit-js/playkit-js-providers/webpack/universalModuleDefinition","webpack://@playkit-js/playkit-js-providers/webpack/bootstrap","webpack://@playkit-js/playkit-js-providers/webpack/runtime/define property getters","webpack://@playkit-js/playkit-js-providers/webpack/runtime/hasOwnProperty shorthand","webpack://@playkit-js/playkit-js-providers/webpack/runtime/make namespace object","webpack://@playkit-js/playkit-js-providers/./src/util/logger.ts","webpack://@playkit-js/playkit-js-providers/./src/util/error/severity.ts","webpack://@playkit-js/playkit-js-providers/./src/util/error/code.ts","webpack://@playkit-js/playkit-js-providers/./src/util/error/category.ts","webpack://@playkit-js/playkit-js-providers/./src/util/error/error.ts","webpack://@playkit-js/playkit-js-providers/./src/util/request-builder.ts","webpack://@playkit-js/playkit-js-providers/./src/util/clone.ts","webpack://@playkit-js/playkit-js-providers/./src/k-provider/ovp/config.ts","webpack://@playkit-js/playkit-js-providers/./src/k-provider/common/base-service-result.ts","webpack://@playkit-js/playkit-js-providers/./src/k-provider/common/multi-request-builder.ts","webpack://@playkit-js/playkit-js-providers/./src/k-provider/ovp/services/ovp-service.ts","webpack://@playkit-js/playkit-js-providers/./src/util/param.ts","webpack://@playkit-js/playkit-js-providers/./src/k-provider/ovp/services/analytics/analytics-service.ts","webpack://@playkit-js/playkit-js-providers/./src/k-provider/ovp/services/analytics/index.ts"],"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 {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(globalThis, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export type LogLevelObject = {value: number, name: string};\nexport type LogLevelType = {[level: string]: LogLevelObject};\nexport type loggerFunctionType = {\n VERSION: string,\n DEBUG: LogLevelObject,\n ERROR: LogLevelObject,\n INFO: LogLevelObject,\n OFF: LogLevelObject,\n TIME: LogLevelObject,\n TRACE: LogLevelObject,\n WARN: LogLevelObject,\n createDefaultHandler: () => any\n debug: () => any\n enabledFor: () => any\n error: () => any\n get: () => any\n getLevel: () => any\n info: () => any\n log: () => any\n setHandler: () => any\n setLevel: () => any\n time: () => any\n timeEnd: () => any\n trace: () => any\n useDefaults: () => any\n warn: () => any\n};\n\ntype LoggerType = {\n getLogger: loggerFunctionType,\n LogLevel: LogLevelType\n};\n\nconst JsLogger = {\n get: (): any => ({\n VERSION: '',\n DEBUG: {value: '', name: ''},\n ERROR: {value: '', name: ''},\n INFO: {value: '', name: ''},\n OFF: {value: '', name: ''},\n TIME: {value: '', name: ''},\n TRACE: {value: '', name: ''},\n WARN: {value: '', name: ''},\n createDefaultHandler: (): any => {},\n debug: (): any => {},\n enabledFor: (): any => {},\n error: (): any => {},\n get: (): any => {},\n getLevel: (): any => {},\n info: (): any => {},\n log: (): any => {},\n setHandler: (): any => {},\n setLevel: (): any => {},\n time: (): any => {},\n timeEnd: (): any => {},\n trace: (): any => {},\n useDefaults: (): any => {},\n warn: (): any => {}\n })\n};\n\nlet LogLevel: LogLevelType = {};\n/**\n * set logger\n * @param {LoggerType} logger - the logger\n * @returns {void}\n */\nfunction setLogger(logger?: LoggerType): void {\n if (logger && typeof logger.getLogger === 'function') {\n JsLogger.get = logger.getLogger;\n }\n if (logger && logger.LogLevel) {\n LogLevel = logger.LogLevel;\n }\n}\n\n/**\n * get a logger\n * @param {?string} name - the logger name\n * @returns {Object} - the logger class\n */\nfunction getLogger(name?: string): any {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n return JsLogger.get(name);\n}\n\n/**\n * get the log level\n * @param {?string} name - the logger name\n * @returns {LogLevelObject} - the log level\n */\nfunction getLogLevel(name?: string): LogLevelObject {\n return getLogger(name).getLevel();\n}\n\n/**\n * sets the logger level\n * @param {LogLevelObject} level - the log level\n * @param {?string} name - the logger name\n * @returns {void}\n */\nfunction setLogLevel(level: LogLevelObject, name?: string): void {\n getLogger(name).setLevel(level);\n}\n\nexport default getLogger;\nexport {getLogLevel, setLogLevel, setLogger, LogLevel, LoggerType};\n","type SeverityType = {[severity: string]: number};\n\nconst Severity: SeverityType = {\n /**\n * An error occurred, but the Player is attempting to recover from the error.\n *\n * If the Player cannot ultimately recover, it still may not throw a CRITICAL\n * error. For example, retrying for a media segment will never result in\n * a CRITICAL error (the Player will just retry forever).\n */\n RECOVERABLE: 1,\n /**\n * A critical error that the library cannot recover from. These usually cause\n * the Player to stop loading or updating. A new manifest must be loaded\n * to reset the library.\n */\n CRITICAL: 2\n};\n\nexport {Severity};\nexport type {SeverityType};\n","type CodeType = {[code: string]: number};\n\nconst Code: CodeType = {\n /**\n * A network request was made using an unsupported URI scheme.\n */\n UNSUPPORTED_SCHEME: 1000,\n\n /**\n * An HTTP network request returned an HTTP status that indicated a failure.\n */\n BAD_HTTP_STATUS: 1001,\n\n /**\n * An HTTP network request failed with an error, but not from the server.\n */\n HTTP_ERROR: 1002,\n\n /**\n * A network request timed out.\n */\n TIMEOUT: 1003,\n\n /**\n * A network request was made with a malformed data URI.\n */\n MALFORMED_DATA_URI: 1004,\n\n /**\n * The server responsded with 2xx response, but it couldn't be parsed\n */\n BAD_SERVER_RESPONSE: 1005,\n\n /**\n * The server response had a valid structure but contained an error from the API\n */\n MULTIREQUEST_API_ERROR: 1006,\n\n /**\n * The server response had a valid structure and valid API result, but it did not match the request\n */\n API_RESPONSE_MISMATCH: 1007,\n\n /**\n * The server responded with an error\n */\n ERROR: 2000,\n\n /**\n * The server responded with a block action\n */\n BLOCK_ACTION: 2001,\n\n /**\n * The server responded with status import or pre convert\n */\n MEDIA_STATUS_NOT_READY: 2002,\n\n /**\n * The provider is missing mandatory parameter/s\n */\n\n MISSING_MANDATORY_PARAMS: 3000,\n\n /**\n * The server responded with empty sources objects (for HLS, Dash and progressive)\n */\n MISSING_PLAY_SOURCE: 3001,\n\n /**\n * The provider doesn't implement the called api\n */\n METHOD_NOT_IMPLEMENTED: 3002\n};\n\nexport {Code};\nexport type {CodeType};\n","type CategoryType = {[category: string]: number};\n\nconst Category: CategoryType = {\n /** Errors from the network stack. */\n NETWORK: 1,\n SERVICE: 2,\n PROVIDER: 3\n};\n\nexport {Category};\nexport type {CategoryType};\n","import getLogger from '../logger';\nimport {Severity} from './severity';\nimport type {SeverityType} from './severity';\nimport {Code} from './code';\nimport type {CodeType} from './code';\nimport {Category} from './category';\nimport type {CategoryType} from './category';\n\nconst CLASS_NAME: string = 'Error';\n\n/**\n * @classdesc This is a description of the error class.\n */\nexport default class Error {\n public severity: number;\n public category: number;\n public code: number;\n public data: any;\n /**\n * @enum {number}\n */\n public static Severity: SeverityType = Severity;\n /**\n * @enum {number}\n */\n public static Category: CategoryType = Category;\n /**\n * @enum {number}\n */\n public static Code: CodeType = Code;\n private static _logger: any = getLogger(CLASS_NAME);\n\n /**\n * @constructor\n * @param {number} severity - error's severity\n * @param {number} category - error's category.\n * @param {number} code - error's code.\n * @param {any} data - additional data for the error.\n */\n constructor(severity: number, category: number, code: number, data: any = {}) {\n this.severity = severity;\n this.category = category;\n this.code = code;\n this.data = data;\n Error._logger.error(`Category:${category} | Code:${code} |`, data);\n }\n}\n","import Error from './error/error';\nimport {ProviderNetworkRetryParameters} from '../types';\n\nconst KALTURA_HEADER_PREFIX: string = 'x-';\n\nexport default class RequestBuilder {\n /**\n * @member - Service name\n * @type {string}\n */\n public service!: string;\n /**\n * @member - Service action\n * @type {string}\n */\n public action!: string;\n /**\n * @member - Service params\n * @type {any}\n */\n public params: any;\n /**\n * @memberof - Service headers\n * @type {Map<string, string>}\n */\n public headers: Map<string, string>;\n /**\n * @memberof - Service URL\n * @type {string}\n */\n public url!: string;\n /**\n * @memberof - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n public method!: string;\n /**\n * @memberof - Service tag\n * @type {string}\n */\n public tag!: string;\n /**\n * @memberof - the response headers of the arra\n * @type {Array<string>}\n */\n public responseHeaders!: Array<string>;\n /**\n * @description network retry configuration\n * @memberof RequestBuilder\n * @type {ProviderNetworkRetryParameters}\n */\n public retryConfig: ProviderNetworkRetryParameters = {\n async: true,\n timeout: 0,\n maxAttempts: 4\n };\n\n /**\n * @description number of xhr attempts for the same multi - request.\n * @memberof RequestBuilder\n * @type {number}\n * @private\n */\n private _attemptCounter: number = 1;\n\n /**\n * @description hold the promise result of the XHR request(s) - if all tries fails, it rejects with the error.\n * @memberof RequestBuilder\n * @type {Object}\n * @private\n */\n private _requestPromise: any;\n\n /**\n * @constructor\n * @param {Map<string, string>} headers The request headers\n */\n constructor(headers: Map<string, string> = new Map()) {\n this.headers = headers;\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @param {string} serviceUrl - The service base URL\n * @returns {string} The service URL\n */\n public getUrl(serviceUrl: string): string {\n return serviceUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.<any>} Service response as promise\n */\n public doHttpRequest(): Promise<any> {\n const promise = new Promise((resolve, reject) => {\n this._requestPromise = {\n resolve,\n reject\n };\n });\n if (!this.url) {\n this._requestPromise.reject(\n new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, Error.Code.MALFORMED_DATA_URI, {\n url: this.url\n })\n );\n }\n this._createXHR();\n return promise;\n }\n\n private _createXHR(): void {\n const request = new XMLHttpRequest();\n request.onreadystatechange = (): void => {\n if (request.readyState === 4) {\n if (request.status === 200) {\n try {\n const response = JSON.parse(request.responseText);\n this.responseHeaders = this._getResponseHeaders(request);\n // the promise returns the response for backwards compatibility\n return this._requestPromise.resolve(response);\n } catch (error) {\n this._requestPromise.reject(\n this._createError(request, Error.Code.BAD_SERVER_RESPONSE, {\n text: request.responseText\n })\n );\n }\n }\n }\n };\n request.open(this.method, this.url, this.retryConfig.async);\n if (this.retryConfig.async && this.retryConfig.timeout) {\n request.timeout = this.retryConfig.timeout;\n }\n const requestTime = performance.now();\n request.ontimeout = (): void => {\n this._handleError(request, Error.Code.TIMEOUT, {\n timeout: (performance.now() - requestTime) / 1000,\n statusText: request.statusText\n });\n };\n request.onerror = request.onabort = (): void => {\n this._handleError(request, Error.Code.HTTP_ERROR, {\n text: request.responseText,\n statusText: request.statusText\n });\n };\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n }\n\n private _getResponseHeaders(request: XMLHttpRequest): Array<string> {\n return request\n .getAllResponseHeaders()\n .split('\\n')\n .filter(header => header.toLowerCase().indexOf(KALTURA_HEADER_PREFIX) === 0);\n }\n\n private _handleError(request: XMLHttpRequest, code: number, data: any): Promise<void> | void {\n const error = this._createError(request, code, data);\n request.onreadystatechange = function (): void {};\n request.onerror = function (): void {};\n request.ontimeout = function (): void {};\n request.onabort = function (): void {};\n if (this.retryConfig.maxAttempts && this._attemptCounter < this.retryConfig.maxAttempts) {\n this._attemptCounter++;\n this._createXHR();\n } else {\n return this._requestPromise.reject(error);\n }\n }\n\n private _createError(request: XMLHttpRequest, code: number, data: any): Error {\n Object.assign(data, {\n url: this.url,\n headers: this._getResponseHeaders(request),\n attempt: this._attemptCounter\n });\n return new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, code, data);\n }\n}\n","const clone = (data): any => {\n let node;\n if (Array.isArray(data)) {\n node = data.length > 0 ? data.slice(0) : [];\n node.forEach((e, i) => {\n if ((typeof e === 'object') || (Array.isArray(e) && e.length > 0)) {\n node[i] = clone(e);\n }\n });\n } else if (typeof data === 'object') {\n node = Object.assign({}, data);\n Object.keys(node).forEach(key => {\n if ((typeof node[key] === 'object') || (Array.isArray(node[key]) && node[key].length > 0)) {\n node[key] = clone(node[key]);\n }\n });\n } else {\n node = data;\n }\n return node;\n};\n\nexport {clone};\n","import {clone} from '../../util/clone';\nimport {ProviderEnvConfigObject} from '../../types';\n\nconst defaultConfig: any = {\n serviceUrl: 'https://cdnapisec.kaltura.com/api_v3',\n cdnUrl: 'https://cdnapisec.kaltura.com',\n serviceParams: {\n apiVersion: '3.3.0',\n format: 1\n },\n useApiCaptions: true,\n loadThumbnailWithKs: false,\n replaceHostOnlyManifestUrls: false\n};\n\nexport default class OVPConfiguration {\n public static set(clientConfig?: ProviderEnvConfigObject): void {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n public static get(): any {\n return clone(defaultConfig);\n }\n}\n\nexport {OVPConfiguration};\n","export default class ServiceResult {\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n public hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n public error!: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n public data: any;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: any) {\n if (response.objectType === 'KalturaAPIException') {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else if (response.error && response.error.objectType === 'KalturaAPIException') {\n this.hasError = true;\n this.error = new ServiceError(response.error.code, response.error.message);\n } else {\n this.data = response;\n }\n }\n}\n\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n public code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n public 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","import RequestBuilder from '../../util/request-builder';\nimport getLogger from '../../util/logger';\nimport ServiceResult from './base-service-result';\nimport Error from '../../util/error/error';\n\nexport default class MultiRequestBuilder extends RequestBuilder {\n private static _logger = getLogger('MultiRequestBuilder');\n /**\n * @memberof - MultiRequestBuilder\n * @type {Array<RequestBuilder>}\n */\n public requests: Array<RequestBuilder> = [];\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n public add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n const requestParams = {};\n const serviceDef: any = {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 * @param {boolean} requestsMustSucceed whether all of the requests must succeed or not\n * @returns {Promise} The multirequest execution promise\n */\n public execute(requestsMustSucceed?: boolean): Promise<any> {\n return new Promise((resolve, reject) => {\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n MultiRequestBuilder._logger.error(`${err.message}`);\n reject(\n new Error(Error.Severity.CRITICAL, Error.Category.PROVIDER, Error.Code.FAILED_PARSING_REQUEST, {\n error: err,\n params: this.params\n })\n );\n }\n this.doHttpRequest().then(\n data => {\n const multiRequestResult = new MultiRequestResult(data, requestsMustSucceed);\n if (multiRequestResult.success) {\n resolve({\n headers: this.responseHeaders,\n response: multiRequestResult\n });\n } else {\n reject(\n new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, Error.Code.MULTIREQUEST_API_ERROR, {\n url: this.url,\n headers: this.responseHeaders,\n results: multiRequestResult.results\n })\n );\n }\n },\n err => {\n reject(err);\n }\n );\n });\n }\n}\n\nexport class MultiRequestResult {\n private static _logger = getLogger('MultiRequestResult');\n /**\n * @memberof MultiRequestResult\n * @type {boolean}\n */\n public success: boolean;\n /**\n * @memberof MultiRequestResult\n * @type {Object}\n */\n public results: Array<ServiceResult> = [];\n /**\n * @constructor\n * @param {Object} response data\n * @param {boolean} requestsMustSucceed whether all of the requests must succeed\n */\n constructor(response: any, requestsMustSucceed: boolean = true) {\n const result = response.result ? response.result : response;\n const responseArr = Array.isArray(result) ? result : [result];\n const results = responseArr.map(result => new ServiceResult(result));\n const errorResults = results.filter(serviceResult => serviceResult.hasError);\n\n errorResults.forEach(serviceResult => {\n MultiRequestResult._logger.error(\n `Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`\n );\n });\n\n this.results = results;\n if ((requestsMustSucceed && errorResults.length) || errorResults.length === this.results.length) {\n this.success = false;\n } else {\n this.results = this.results.filter(serviceResult => !serviceResult.hasError);\n this.success = true;\n }\n }\n}\n","import MultiRequestBuilder from '../../common/multi-request-builder';\nimport OVPConfiguration from '../config';\n\nconst SERVICE_NAME: string = 'multirequest';\n\nexport default class OVPService {\n /**\n * Gets a new instance of MultiRequestBuilder with ovp params\n * @function getMultiRequest\n * @param {string} playerVersion The player version\n * @param {string} ks The ks\n * @param {string} partnerId The partner ID\n * @returns {MultiRequestBuilder} The multi request builder\n * @static\n */\n public static getMultiRequest(playerVersion: string, ks: string, partnerId?: number): MultiRequestBuilder {\n const config = OVPConfiguration.get();\n const ovpParams = config.serviceParams;\n Object.assign(ovpParams, {ks: ks, clientTag: 'html5:v' + playerVersion});\n if (partnerId) {\n Object.assign(ovpParams, {partnerId: partnerId});\n }\n const headers: Map<string, string> = new Map();\n headers.set('Content-Type', 'application/json');\n const multiReq = new MultiRequestBuilder(headers);\n multiReq.method = 'POST';\n multiReq.service = SERVICE_NAME;\n multiReq.url = multiReq.getUrl(config.serviceUrl);\n multiReq.params = ovpParams;\n return multiReq;\n }\n}\n","const param = (a): any => {\n const s: string[] = [],\n rbracket = /\\[\\]$/,\n isArray = function (obj): boolean {\n return Object.prototype.toString.call(obj) === '[object Array]';\n },\n add = function (k, v): any {\n v = typeof v === 'function' ? v() : v === null ? '' : v === undefined ? '' : v;\n s[s.length] = encodeURIComponent(k) + '=' + encodeURIComponent(v);\n },\n buildParams = function (prefix, obj): any {\n let i, len, key;\n\n if (prefix) {\n if (isArray(obj)) {\n for (i = 0, len = obj.length; i < len; i++) {\n if (rbracket.test(prefix)) {\n add(prefix, obj[i]);\n } else {\n buildParams(prefix + ':' + (typeof obj[i] === 'object' ? i : ''), obj[i]);\n }\n }\n } else if (obj && String(obj) === '[object Object]') {\n for (key in obj) {\n buildParams(prefix + ':' + key, obj[key]);\n }\n } else {\n add(prefix, obj);\n }\n } else if (isArray(obj)) {\n for (i = 0, len = obj.length; i < len; i++) {\n add(obj[i].name, obj[i].value);\n }\n } else {\n for (key in obj) {\n buildParams(key, obj[key]);\n }\n }\n return s;\n };\n\n return buildParams('', a).join('&').replace(/%20/g, '+');\n};\n\nexport {param};\n","import OVPService from '../ovp-service';\nimport RequestBuilder from '../../../../util/request-builder';\nimport OVPConfiguration from '../../config';\nimport {param} from '../../../../util/param';\n\nconst SERVICE_NAME: string = 'analytics';\n\nexport default class OVPAnalyticsService extends OVPService {\n /**\n * Creates an instance of RequestBuilder for analytics.trackEvent\n * @function trackEvent\n * @param {string} serviceUrl - The service base url\n * @param {Object} params - The event params\n * @param {string} [requestMethod] - The request method GET or POST\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n public static trackEvent(serviceUrl: string, params: any, requestMethod?: string): RequestBuilder {\n return requestMethod === 'POST'\n ? OVPAnalyticsService._trackEventByPOST(serviceUrl, params)\n : OVPAnalyticsService._trackEventByGET(serviceUrl, params);\n }\n\n private static _trackEventByGET(serviceUrl: string, params: any): RequestBuilder {\n const ovpParams = OVPConfiguration.get();\n const serviceParams = {};\n Object.assign(serviceParams, ovpParams.serviceParams, params);\n const request = new RequestBuilder();\n request.service = SERVICE_NAME;\n request.action = 'trackEvent';\n request.method = 'GET';\n request.retryConfig.maxAttempts = 1;\n request.tag = 'analytics-trackEvent';\n request.params = serviceParams;\n request.url = serviceUrl + '?service=' + request.service + '&action=' + request.action + '&' + param(request.params);\n return request;\n }\n\n private static _trackEventByPOST(serviceUrl: string, params: any): RequestBuilder {\n const ovpParams = OVPConfiguration.get();\n const serviceParams: any = {};\n Object.assign(serviceParams, ovpParams.serviceParams, params);\n const headers: Map<string, string> = new Map();\n headers.set('Content-Type', 'application/json');\n const request = new RequestBuilder(headers);\n const {eventType, partnerId, entryId, sessionId} = serviceParams;\n const urlParams = {eventType, partnerId, entryId, sessionId};\n ['eventType', 'partnerId', 'entryId', 'sessionId'].forEach(key => delete serviceParams[key]);\n request.service = SERVICE_NAME;\n request.action = 'trackEvent';\n request.method = 'POST';\n request.retryConfig.maxAttempts = 1;\n request.tag = 'analytics-trackEvent';\n request.params = JSON.stringify(serviceParams);\n request.url = serviceUrl + '?service=' + request.service + '&action=' + request.action + '&' + param(urlParams);\n return request;\n }\n}\n","import RequestBuilder from '../../../../util/request-builder';\nimport OVPConfiguration from '../../config';\nimport OVPAnalyticsService from './analytics-service';\n\ndeclare let __VERSION__: string;\ndeclare let __NAME__: string;\n\nconst NAME = __NAME__ + '-analytics-service';\nconst VERSION = __VERSION__;\n\nexport {OVPAnalyticsService, OVPConfiguration, RequestBuilder, NAME, VERSION};\n"],"names":["root","factory","exports","module","define","amd","a","i","globalThis","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","JsLogger","VERSION","DEBUG","name","ERROR","INFO","OFF","TIME","TRACE","WARN","createDefaultHandler","debug","enabledFor","error","getLevel","info","log","setHandler","setLevel","time","timeEnd","trace","useDefaults","warn","Severity","RECOVERABLE","CRITICAL","Code","UNSUPPORTED_SCHEME","BAD_HTTP_STATUS","HTTP_ERROR","TIMEOUT","MALFORMED_DATA_URI","BAD_SERVER_RESPONSE","MULTIREQUEST_API_ERROR","API_RESPONSE_MISMATCH","BLOCK_ACTION","MEDIA_STATUS_NOT_READY","MISSING_MANDATORY_PARAMS","MISSING_PLAY_SOURCE","METHOD_NOT_IMPLEMENTED","Category","NETWORK","SERVICE","PROVIDER","Error","getLogger","constructor","severity","category","code","data","this","_logger","RequestBuilder","retryConfig","async","timeout","maxAttempts","_attemptCounter","headers","Map","getUrl","serviceUrl","service","action","doHttpRequest","promise","Promise","resolve","reject","_requestPromise","url","_createXHR","request","XMLHttpRequest","onreadystatechange","readyState","status","response","JSON","parse","responseText","responseHeaders","_getResponseHeaders","_createError","text","open","method","requestTime","performance","now","ontimeout","_handleError","statusText","onerror","onabort","forEach","setRequestHeader","send","params","getAllResponseHeaders","split","filter","header","toLowerCase","indexOf","assign","attempt","clone","node","Array","isArray","length","slice","e","keys","defaultConfig","cdnUrl","serviceParams","apiVersion","format","useApiCaptions","loadThumbnailWithKs","replaceHostOnlyManifestUrls","OVPConfiguration","set","clientConfig","ServiceResult","hasError","objectType","ServiceError","message","MultiRequestBuilder","requests","add","push","requestParams","serviceDef","execute","requestsMustSucceed","stringify","err","FAILED_PARSING_REQUEST","then","multiRequestResult","MultiRequestResult","success","results","result","map","errorResults","serviceResult","OVPService","getMultiRequest","playerVersion","ks","partnerId","config","ovpParams","clientTag","multiReq","param","s","rbracket","toString","k","v","encodeURIComponent","buildParams","prefix","len","test","String","join","replace","SERVICE_NAME","OVPAnalyticsService","trackEvent","requestMethod","_trackEventByPOST","_trackEventByGET","tag","eventType","entryId","sessionId","urlParams","NAME","__NAME__","__VERSION__"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module
|
|
1
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var s in r)("object"==typeof exports?exports:e)[s]=r[s]}}(globalThis,(()=>(()=>{"use strict";var e={d:(t,r)=>{for(var s in r)e.o(r,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:r[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{NAME:()=>E,OTTBookmarkService:()=>y,OTTConfiguration:()=>h,RequestBuilder:()=>c,VERSION:()=>T});const r=()=>({VERSION:"",DEBUG:{value:"",name:""},ERROR:{value:"",name:""},INFO:{value:"",name:""},OFF:{value:"",name:""},TIME:{value:"",name:""},TRACE:{value:"",name:""},WARN:{value:"",name:""},createDefaultHandler:()=>{},debug:()=>{},enabledFor:()=>{},error:()=>{},get:()=>{},getLevel:()=>{},info:()=>{},log:()=>{},setHandler:()=>{},setLevel:()=>{},time:()=>{},timeEnd:()=>{},trace:()=>{},useDefaults:()=>{},warn:()=>{}});const s=function(e){return r(e)},a={RECOVERABLE:1,CRITICAL:2},o={UNSUPPORTED_SCHEME:1e3,BAD_HTTP_STATUS:1001,HTTP_ERROR:1002,TIMEOUT:1003,MALFORMED_DATA_URI:1004,BAD_SERVER_RESPONSE:1005,MULTIREQUEST_API_ERROR:1006,API_RESPONSE_MISMATCH:1007,ERROR:2e3,BLOCK_ACTION:2001,MEDIA_STATUS_NOT_READY:2002,MISSING_MANDATORY_PARAMS:3e3,MISSING_PLAY_SOURCE:3001,METHOD_NOT_IMPLEMENTED:3002},i={NETWORK:1,SERVICE:2,PROVIDER:3};class n{static Severity=a;static Category=i;static Code=o;static _logger=s("Error");constructor(e,t,r,s={}){this.severity=e,this.category=t,this.code=r,this.data=s,n._logger.error(`Category:${t} | Code:${r} |`,s)}}class c{retryConfig={async:!0,timeout:0,maxAttempts:4};_attemptCounter=1;constructor(e=new Map){this.headers=e}getUrl(e){return e+"/service/"+this.service+(this.action?"/action/"+this.action:"")}doHttpRequest(){const e=new Promise(((e,t)=>{this._requestPromise={resolve:e,reject:t}}));return this.url||this._requestPromise.reject(new n(n.Severity.CRITICAL,n.Category.NETWORK,n.Code.MALFORMED_DATA_URI,{url:this.url})),this._createXHR(),e}_createXHR(){const e=new XMLHttpRequest;e.onreadystatechange=()=>{if(4===e.readyState&&200===e.status)try{const t=JSON.parse(e.responseText);return this.responseHeaders=this._getResponseHeaders(e),this._requestPromise.resolve(t)}catch(t){this._requestPromise.reject(this._createError(e,n.Code.BAD_SERVER_RESPONSE,{text:e.responseText}))}},e.open(this.method,this.url,this.retryConfig.async),this.retryConfig.async&&this.retryConfig.timeout&&(e.timeout=this.retryConfig.timeout);const t=performance.now();e.ontimeout=()=>{this._handleError(e,n.Code.TIMEOUT,{timeout:(performance.now()-t)/1e3,statusText:e.statusText})},e.onerror=e.onabort=()=>{this._handleError(e,n.Code.HTTP_ERROR,{text:e.responseText,statusText:e.statusText})},this.headers.forEach(((t,r)=>{e.setRequestHeader(r,t)})),e.send(this.params)}_getResponseHeaders(e){return e.getAllResponseHeaders().split("\n").filter((e=>0===e.toLowerCase().indexOf("x-")))}_handleError(e,t,r){const s=this._createError(e,t,r);if(e.onreadystatechange=function(){},e.onerror=function(){},e.ontimeout=function(){},e.onabort=function(){},!(this.retryConfig.maxAttempts&&this._attemptCounter<this.retryConfig.maxAttempts))return this._requestPromise.reject(s);this._attemptCounter++,this._createXHR()}_createError(e,t,r){return Object.assign(r,{url:this.url,headers:this._getResponseHeaders(e),attempt:this._attemptCounter}),new n(n.Severity.CRITICAL,n.Category.NETWORK,t,r)}}const u=e=>{let t;return Array.isArray(e)?(t=e.length>0?e.slice(0):[],t.forEach(((e,r)=>{("object"==typeof e||Array.isArray(e)&&e.length>0)&&(t[r]=u(e))}))):"object"==typeof e?(t=Object.assign({},e),Object.keys(t).forEach((e=>{("object"==typeof t[e]||Array.isArray(t[e])&&t[e].length>0)&&(t[e]=u(t[e]))}))):t=e,t},l={serviceParams:{apiVersion:"7.8.1"}};class h{static set(e){e&&Object.assign(l,e)}static get(){return u(l)}}class p{hasError=!1;constructor(e){"KalturaAPIException"===e.objectType?(this.hasError=!0,this.error=new d(e.code,e.message)):e.error&&"KalturaAPIException"===e.error.objectType?(this.hasError=!0,this.error=new d(e.error.code,e.error.message)):this.data=e}}class d{constructor(e,t){this.code=e,this.message=t}}class g extends c{static _logger=s("MultiRequestBuilder");requests=[];add(e){this.requests.push(e);const t={},r={service:e.service,action:e.action};return Object.assign(t,{[this.requests.length]:Object.assign(r,e.params)}),Object.assign(t,this.params),this.params=t,this}execute(e){return new Promise(((t,r)=>{try{this.params=JSON.stringify(this.params)}catch(e){g._logger.error(`${e.message}`),r(new n(n.Severity.CRITICAL,n.Category.PROVIDER,n.Code.FAILED_PARSING_REQUEST,{error:e,params:this.params}))}this.doHttpRequest().then((s=>{const a=new m(s,e);a.success?t({headers:this.responseHeaders,response:a}):r(new n(n.Severity.CRITICAL,n.Category.NETWORK,n.Code.MULTIREQUEST_API_ERROR,{url:this.url,headers:this.responseHeaders,results:a.results}))}),(e=>{r(e)}))}))}}class m{static _logger=s("MultiRequestResult");results=[];constructor(e,t=!0){const r=e.result?e.result:e,s=(Array.isArray(r)?r:[r]).map((e=>new p(e))),a=s.filter((e=>e.hasError));a.forEach((e=>{m._logger.error(`Service returned an error with error code: ${e.error.code} and message: ${e.error.message}.`)})),this.results=s,t&&a.length||a.length===this.results.length?this.success=!1:(this.results=this.results.filter((e=>!e.hasError)),this.success=!0)}}class R{static getMultiRequest(e,t){const r=h.get(),s=r.serviceParams;e&&Object.assign(s,{ks:e}),t&&Object.assign(s,{partnerId:t});const a=new Map;a.set("Content-Type","application/json");const o=new g(a);return o.method="POST",o.service="multirequest",o.url=o.getUrl(r.serviceUrl),o.params=s,o}}class y extends R{static add(e,t,r){const s=new Map;s.set("Content-Type","application/json");const a=new c(s);a.service="bookmark",a.action="add",a.method="POST",a.url=a.getUrl(e);const o={objectType:"KalturaBookmarkPlayerData",action:r.playerData.action,averageBitrate:r.playerData.averageBitrate,totalBitrate:r.playerData.totalBitrate,currentBitrate:r.playerData.currentBitrate,fileId:r.playerData.fileId},i={objectType:"KalturaBookmark",type:r.type,context:r.context,id:r.id,position:r.position,playerData:o};r.programId&&(i.programId=r.programId);const n=h.get().serviceParams;return Object.assign(n,{bookmark:i,ks:t}),a.params=JSON.stringify(n),a}}const E="@playkit-js/playkit-js-providers-bookmark-service",T="2.41.0-canary.0-2452bbc";return t})()));
|
|
2
2
|
//# sourceMappingURL=playkit-bookmark-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["./providers/webpack/universalModuleDefinition","./providers/webpack/bootstrap","./providers/./util/error/error.js","./providers/./util/error/severity.js","./providers/./util/error/category.js","./providers/./util/error/code.js","./providers/./util/request-builder.js","./providers/./util/logger.js","./providers/./util/clone.js","./providers/./k-provider/common/base-service-result.js","./providers/./k-provider/common/multi-request-builder.js","./providers/./k-provider/ott/config.js","./providers/./k-provider/ott/services/bookmark/bookmark-service.js","./providers/./k-provider/ott/services/ott-service.js","./providers/./k-provider/ott/services/bookmark/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","Error","severity","category","code","data","this","_logger","error","RECOVERABLE","CRITICAL","NETWORK","SERVICE","PROVIDER","UNSUPPORTED_SCHEME","BAD_HTTP_STATUS","HTTP_ERROR","TIMEOUT","MALFORMED_DATA_URI","BAD_SERVER_RESPONSE","MULTIREQUEST_API_ERROR","API_RESPONSE_MISMATCH","ERROR","BLOCK_ACTION","MEDIA_STATUS_NOT_READY","MISSING_MANDATORY_PARAMS","MISSING_PLAY_SOURCE","METHOD_NOT_IMPLEMENTED","getLogger","RequestBuilder","headers","Map","async","timeout","maxAttempts","getUrl","serviceUrl","service","action","doHttpRequest","promise","Promise","resolve","reject","_requestPromise","url","Severity","Category","Code","_createXHR","request","XMLHttpRequest","onreadystatechange","readyState","status","response","JSON","parse","responseText","responseHeaders","_getResponseHeaders","_createError","text","open","method","retryConfig","requestTime","performance","now","ontimeout","_handleError","statusText","onerror","onabort","forEach","setRequestHeader","send","params","getAllResponseHeaders","split","filter","header","toLowerCase","indexOf","_attemptCounter","assign","attempt","JsLogger","VERSION","DEBUG","INFO","OFF","TIME","TRACE","WARN","createDefaultHandler","debug","enabledFor","getLevel","info","log","setHandler","setLevel","time","timeEnd","trace","useDefaults","warn","clone","node","Array","isArray","length","slice","e","keys","ServiceResult","objectType","hasError","ServiceError","message","MultiRequestBuilder","add","requests","push","requestParams","serviceDef","execute","requestsMustSucceed","stringify","err","FAILED_PARSING_REQUEST","then","multiRequestResult","MultiRequestResult","success","results","result","map","errorResults","serviceResult","defaultConfig","serviceParams","apiVersion","OTTConfiguration","set","clientConfig","OTTBookmarkService","ks","bookmark","playerData","averageBitrate","totalBitrate","currentBitrate","fileId","bookmarkServiceParams","type","context","id","position","programId","getMultiRequest","partnerId","config","ottParams","multiReq","NAME","__NAME__","__VERSION__"],"mappings":"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","file":"playkit-bookmark-service.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[\"bookmark\"] = factory();\n\telse\n\t\troot[\"playkit\"] = root[\"playkit\"] || {}, root[\"playkit\"][\"services\"] = root[\"playkit\"][\"services\"] || {}, root[\"playkit\"][\"services\"][\"bookmark\"] = factory();\n})(window, function() {\nreturn "," \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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n","//@flow\nimport getLogger from '../logger';\nimport {Severity} from './severity';\nimport type {SeverityType} from './severity';\nimport {Code} from './code';\nimport type {CodeType} from './code';\nimport {Category} from './category';\nimport type {CategoryType} from './category';\n\nconst CLASS_NAME: string = 'Error';\n\n/**\n * @classdesc This is a description of the error class.\n */\nexport default class Error {\n severity: number;\n category: number;\n code: number;\n data: any;\n /**\n * @enum {number}\n */\n static Severity: SeverityType = Severity;\n /**\n * @enum {number}\n */\n static Category: CategoryType = Category;\n /**\n * @enum {number}\n */\n static Code: CodeType = Code;\n static _logger: any = getLogger(CLASS_NAME);\n\n /**\n * @constructor\n * @param {number} severity - error's severity\n * @param {number} category - error's category.\n * @param {number} code - error's code.\n * @param {any} data - additional data for the error.\n */\n constructor(severity: number, category: number, code: number, data: any = {}) {\n this.severity = severity;\n this.category = category;\n this.code = code;\n this.data = data;\n Error._logger.error(`Category:${category} | Code:${code} |`, data);\n }\n}\n","//@flow\n\ntype SeverityType = {[severity: string]: number};\n\nconst Severity: SeverityType = {\n /**\n * An error occurred, but the Player is attempting to recover from the error.\n *\n * If the Player cannot ultimately recover, it still may not throw a CRITICAL\n * error. For example, retrying for a media segment will never result in\n * a CRITICAL error (the Player will just retry forever).\n */\n RECOVERABLE: 1,\n /**\n * A critical error that the library cannot recover from. These usually cause\n * the Player to stop loading or updating. A new manifest must be loaded\n * to reset the library.\n */\n CRITICAL: 2\n};\n\nexport {Severity};\nexport type {SeverityType};\n","//@flow\ntype CategoryType = {[category: string]: number};\n\nconst Category: CategoryType = {\n /** Errors from the network stack. */\n NETWORK: 1,\n SERVICE: 2,\n PROVIDER: 3\n};\n\nexport {Category};\nexport type {CategoryType};\n","//@flow\n\ntype CodeType = {[code: string]: number};\n\nconst Code: CodeType = {\n /**\n * A network request was made using an unsupported URI scheme.\n */\n UNSUPPORTED_SCHEME: 1000,\n\n /**\n * An HTTP network request returned an HTTP status that indicated a failure.\n */\n BAD_HTTP_STATUS: 1001,\n\n /**\n * An HTTP network request failed with an error, but not from the server.\n */\n HTTP_ERROR: 1002,\n\n /**\n * A network request timed out.\n */\n TIMEOUT: 1003,\n\n /**\n * A network request was made with a malformed data URI.\n */\n MALFORMED_DATA_URI: 1004,\n\n /**\n * The server responsded with 2xx response, but it couldn't be parsed\n */\n BAD_SERVER_RESPONSE: 1005,\n\n /**\n * The server response had a valid structure but contained an error from the API\n */\n MULTIREQUEST_API_ERROR: 1006,\n\n /**\n * The server response had a valid structure and valid API result, but it did not match the request\n */\n API_RESPONSE_MISMATCH: 1007,\n\n /**\n * The server responded with an error\n */\n ERROR: 2000,\n\n /**\n * The server responded with a block action\n */\n BLOCK_ACTION: 2001,\n\n /**\n * The server responded with status import or pre convert\n */\n MEDIA_STATUS_NOT_READY: 2002,\n\n /**\n * The provider is missing mandatory parameter/s\n */\n\n MISSING_MANDATORY_PARAMS: 3000,\n\n /**\n * The server responded with empty sources objects (for HLS, Dash and progressive)\n */\n MISSING_PLAY_SOURCE: 3001,\n\n /**\n * The provider doesn't implement the called api\n */\n METHOD_NOT_IMPLEMENTED: 3002\n};\n\nexport {Code};\nexport type {CodeType};\n","//@flow\nimport Error from './error/error';\n\nconst KALTURA_HEADER_PREFIX: string = 'x-';\n\nexport default class RequestBuilder {\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 * @memberof - Service headers\n * @type {Map<string, string>}\n */\n headers: Map<string, string>;\n /**\n * @memberof - Service URL\n * @type {string}\n */\n url: string;\n /**\n * @memberof - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n method: string;\n /**\n * @memberof - Service tag\n * @type {string}\n */\n tag: string;\n /**\n * @memberof - the response headers of the arra\n * @type {Array<string>}\n */\n responseHeaders: Array<string>;\n /**\n * @description network retry configuration\n * @memberof RequestBuilder\n * @type {ProviderNetworkRetryParameters}\n */\n retryConfig: ProviderNetworkRetryParameters = {\n async: true,\n timeout: 0,\n maxAttempts: 4\n };\n\n /**\n * @description number of xhr attempts for the same multi - request.\n * @memberof RequestBuilder\n * @type {number}\n * @private\n */\n _attemptCounter: number = 1;\n\n /**\n * @description hold the promise result of the XHR request(s) - if all tries fails, it rejects with the error.\n * @memberof RequestBuilder\n * @type {Object}\n * @private\n */\n _requestPromise: Object;\n\n /**\n * @constructor\n * @param {Map<string, string>} headers The request headers\n */\n constructor(headers: Map<string, string> = new Map()) {\n this.headers = headers;\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @param {string} serviceUrl - The service base URL\n * @returns {string} The service URL\n */\n getUrl(serviceUrl: string): string {\n return serviceUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.<any>} Service response as promise\n */\n doHttpRequest(): Promise<any> {\n const promise = new Promise((resolve, reject) => {\n this._requestPromise = {\n resolve,\n reject\n };\n });\n if (!this.url) {\n this._requestPromise.reject(\n new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, Error.Code.MALFORMED_DATA_URI, {\n url: this.url\n })\n );\n }\n this._createXHR();\n return promise;\n }\n\n _createXHR(): void {\n let request = new XMLHttpRequest();\n request.onreadystatechange = () => {\n if (request.readyState === 4) {\n if (request.status === 200) {\n try {\n const response = JSON.parse(request.responseText);\n this.responseHeaders = this._getResponseHeaders(request);\n // the promise returns the response for backwards compatibility\n return this._requestPromise.resolve(response);\n } catch (error) {\n this._requestPromise.reject(\n this._createError(request, Error.Code.BAD_SERVER_RESPONSE, {\n text: request.responseText\n })\n );\n }\n }\n }\n };\n request.open(this.method, this.url, this.retryConfig.async);\n if (this.retryConfig.async && this.retryConfig.timeout) {\n request.timeout = this.retryConfig.timeout;\n }\n const requestTime = performance.now();\n request.ontimeout = () => {\n this._handleError(request, Error.Code.TIMEOUT, {\n timeout: (performance.now() - requestTime) / 1000,\n statusText: request.statusText\n });\n };\n request.onerror = request.onabort = () => {\n this._handleError(request, Error.Code.HTTP_ERROR, {\n text: request.responseText,\n statusText: request.statusText\n });\n };\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n }\n\n _getResponseHeaders(request: XMLHttpRequest): Array<string> {\n return request\n .getAllResponseHeaders()\n .split('\\n')\n .filter(header => header.toLowerCase().indexOf(KALTURA_HEADER_PREFIX) === 0);\n }\n\n _handleError(request: XMLHttpRequest, code: number, data: Object): Promise<*> | void {\n const error = this._createError(request, code, data);\n request.onreadystatechange = function () {};\n request.onerror = function () {};\n request.ontimeout = function () {};\n request.onabort = function () {};\n if (this.retryConfig.maxAttempts && this._attemptCounter < this.retryConfig.maxAttempts) {\n this._attemptCounter++;\n this._createXHR();\n } else {\n return this._requestPromise.reject(error);\n }\n }\n\n _createError(request: XMLHttpRequest, code: number, data: Object): Error {\n Object.assign(data, {\n url: this.url,\n headers: this._getResponseHeaders(request),\n attempt: this._attemptCounter\n });\n return new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, code, data);\n }\n}\n","//@flow\nexport type LogLevelObject = {value: number, name: string};\nexport type LogLevelType = {[level: string]: LogLevelObject};\nexport type loggerFunctionType = {\n VERSION: String,\n DEBUG: LogLevelObject,\n ERROR: LogLevelObject,\n INFO: LogLevelObject,\n OFF: LogLevelObject,\n TIME: LogLevelObject,\n TRACE: LogLevelObject,\n WARN: LogLevelObject,\n createDefaultHandler: Function,\n debug: Function,\n enabledFor: Function,\n error: Function,\n get: Function,\n getLevel: Function,\n info: Function,\n log: Function,\n setHandler: Function,\n setLevel: Function,\n time: Function,\n timeEnd: Function,\n trace: Function,\n useDefaults: Function,\n warn: Function\n};\n\nexport type LoggerType = {\n getLogger: loggerFunctionType,\n LogLevel: LogLevelType\n};\n\nlet JsLogger = {\n get: () => ({\n VERSION: '',\n DEBUG: {value: '', name: ''},\n ERROR: {value: '', name: ''},\n INFO: {value: '', name: ''},\n OFF: {value: '', name: ''},\n TIME: {value: '', name: ''},\n TRACE: {value: '', name: ''},\n WARN: {value: '', name: ''},\n createDefaultHandler: () => {},\n debug: () => {},\n enabledFor: () => {},\n error: () => {},\n get: () => {},\n getLevel: () => {},\n info: () => {},\n log: () => {},\n setHandler: () => {},\n setLevel: () => {},\n time: () => {},\n timeEnd: () => {},\n trace: () => {},\n useDefaults: () => {},\n warn: () => {}\n })\n};\n\nlet LogLevel: LogLevelType = {};\n/**\n * set logger\n * @param {LoggerType} logger - the logger\n * @returns {void}\n */\nfunction setLogger(logger: ?LoggerType): void {\n if (logger && typeof logger.getLogger === 'function') {\n JsLogger.get = logger.getLogger;\n }\n if (logger && logger.LogLevel) {\n LogLevel = logger.LogLevel;\n }\n}\n\n/**\n * get a logger\n * @param {?string} name - the logger name\n * @returns {Object} - the logger class\n */\nfunction getLogger(name?: string): Object {\n //$FlowFixMe\n return JsLogger.get(name);\n}\n\n/**\n * get the log level\n * @param {?string} name - the logger name\n * @returns {LogLevelObject} - the log level\n */\nfunction getLogLevel(name?: string): LogLevelObject {\n return getLogger(name).getLevel();\n}\n\n/**\n * sets the logger level\n * @param {LogLevelObject} level - the log level\n * @param {?string} name - the logger name\n * @returns {void}\n */\nfunction setLogLevel(level: LogLevelObject, name?: string): void {\n getLogger(name).setLevel(level);\n}\n\nexport default getLogger;\nexport {getLogLevel, setLogLevel, setLogger, LogLevel};\n","const clone = data => {\n let node;\n if (Array.isArray(data)) {\n node = data.length > 0 ? data.slice(0) : [];\n node.forEach((e, i) => {\n if ((typeof e === 'object' && e !== {}) || (Array.isArray(e) && e.length > 0)) {\n node[i] = clone(e);\n }\n });\n } else if (typeof data === 'object') {\n node = Object.assign({}, data);\n Object.keys(node).forEach(key => {\n if ((typeof node[key] === 'object' && node[key] !== {}) || (Array.isArray(node[key]) && node[key].length > 0)) {\n node[key] = clone(node[key]);\n }\n });\n } else {\n node = data;\n }\n return node;\n};\n\nexport {clone};\n","//@flow\nexport default class ServiceResult {\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 } else if (response.error && response.error.objectType === 'KalturaAPIException') {\n this.hasError = true;\n this.error = new ServiceError(response.error.code, response.error.message);\n } else {\n this.data = response;\n }\n }\n}\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","//@flow\nimport RequestBuilder from '../../util/request-builder';\nimport getLogger from '../../util/logger';\nimport ServiceResult from './base-service-result';\nimport Error from '../../util/error/error';\n\nexport default class MultiRequestBuilder extends RequestBuilder {\n static _logger = getLogger('MultiRequestBuilder');\n /**\n * @memberof - MultiRequestBuilder\n * @type {Array<RequestBuilder>}\n */\n requests: Array<RequestBuilder> = [];\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 const requestParams = {};\n const 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 * @param {boolean} requestsMustSucceed whether all of the requests must succeed or not\n * @returns {Promise} The multirequest execution promise\n */\n execute(requestsMustSucceed?: boolean): Promise<Object> {\n return new Promise((resolve, reject) => {\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n MultiRequestBuilder._logger.error(`${err.message}`);\n reject(\n new Error(Error.Severity.CRITICAL, Error.Category.PROVIDER, Error.Code.FAILED_PARSING_REQUEST, {\n error: err,\n params: this.params\n })\n );\n }\n this.doHttpRequest().then(\n data => {\n const multiRequestResult = new MultiRequestResult(data, requestsMustSucceed);\n if (multiRequestResult.success) {\n resolve({\n headers: this.responseHeaders,\n response: multiRequestResult\n });\n } else {\n reject(\n new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, Error.Code.MULTIREQUEST_API_ERROR, {\n url: this.url,\n headers: this.responseHeaders,\n results: multiRequestResult.results\n })\n );\n }\n },\n err => {\n reject(err);\n }\n );\n });\n }\n}\n\nexport class MultiRequestResult {\n static _logger = getLogger('MultiRequestResult');\n /**\n * @memberof MultiRequestResult\n * @type {boolean}\n */\n success: boolean;\n /**\n * @memberof MultiRequestResult\n * @type {Object}\n */\n results: Array<ServiceResult> = [];\n /**\n * @constructor\n * @param {Object} response data\n * @param {boolean} requestsMustSucceed whether all of the requests must succeed\n */\n constructor(response: Object, requestsMustSucceed?: boolean = true) {\n const result = response.result ? response.result : response;\n const responseArr = Array.isArray(result) ? result : [result];\n const results = responseArr.map(result => new ServiceResult(result));\n const errorResults = results.filter(serviceResult => serviceResult.hasError);\n\n errorResults.forEach(serviceResult => {\n MultiRequestResult._logger.error(\n `Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`\n );\n });\n\n this.results = results;\n if ((requestsMustSucceed && errorResults.length) || errorResults.length === this.results.length) {\n this.success = false;\n } else {\n this.results = this.results.filter(serviceResult => !serviceResult.hasError);\n this.success = true;\n }\n }\n}\n","//@flow\nimport {clone} from '../../util/clone';\n\nconst defaultConfig: Object = {\n serviceParams: {\n apiVersion: '7.8.1'\n }\n};\n\nexport default class OTTConfiguration {\n static set(clientConfig?: ProviderEnvConfigObject) {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n static get(): Object {\n return clone(defaultConfig);\n }\n}\n\nexport {OTTConfiguration};\n","//@flow\nimport OTTService from '../ott-service';\nimport RequestBuilder from '../../../../util/request-builder';\nimport OTTConfiguration from '../../config';\n\nconst SERVICE_NAME: string = 'bookmark';\n\nexport default class OTTBookmarkService extends OTTService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function add\n * @param {string} serviceUrl - The service url\n * @param {string} ks - The ks\n * @param {Object} bookmark - The udid\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n static add(serviceUrl: string, ks: string, bookmark: Object): RequestBuilder {\n const headers: Map<string, string> = new Map();\n headers.set('Content-Type', 'application/json');\n const request = new RequestBuilder(headers);\n request.service = SERVICE_NAME;\n request.action = 'add';\n request.method = 'POST';\n request.url = request.getUrl(serviceUrl);\n const playerData: Object = {\n objectType: 'KalturaBookmarkPlayerData',\n action: bookmark.playerData.action,\n averageBitrate: bookmark.playerData.averageBitrate,\n totalBitrate: bookmark.playerData.totalBitrate,\n currentBitrate: bookmark.playerData.currentBitrate,\n fileId: bookmark.playerData.fileId\n };\n const bookmarkServiceParams: Object = {\n objectType: 'KalturaBookmark',\n type: bookmark.type,\n context: bookmark.context,\n id: bookmark.id,\n position: bookmark.position,\n playerData: playerData\n };\n if (bookmark.programId) bookmarkServiceParams.programId = bookmark.programId;\n const config = OTTConfiguration.get();\n const serviceParams = config.serviceParams;\n Object.assign(serviceParams, {bookmark: bookmarkServiceParams, ks: ks});\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n","//@flow\nimport MultiRequestBuilder from '../../common/multi-request-builder';\nimport OTTConfiguration from '../config';\n\nconst SERVICE_NAME: string = 'multirequest';\n\nexport default class OTTService {\n /**\n * Gets a new instance of MultiRequestBuilder with ott 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 const config = OTTConfiguration.get();\n const ottParams = config.serviceParams;\n if (ks) {\n Object.assign(ottParams, {ks: ks});\n }\n if (partnerId) {\n Object.assign(ottParams, {partnerId: partnerId});\n }\n const headers: Map<string, string> = new Map();\n headers.set('Content-Type', 'application/json');\n const multiReq = new MultiRequestBuilder(headers);\n multiReq.method = 'POST';\n multiReq.service = SERVICE_NAME;\n multiReq.url = multiReq.getUrl(config.serviceUrl);\n multiReq.params = ottParams;\n return multiReq;\n }\n}\n","// @flow\nimport RequestBuilder from '../../../../util/request-builder';\nimport OTTConfiguration from '../../config';\nimport OTTBookmarkService from './bookmark-service';\n\ndeclare var __VERSION__: string;\ndeclare var __NAME__: string;\n\nconst NAME = __NAME__ + '-bookmark-service';\nconst VERSION = __VERSION__;\n\nexport {OTTBookmarkService, OTTConfiguration, RequestBuilder, NAME, VERSION};\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"playkit-bookmark-service.js","mappings":"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","sources":["webpack://@playkit-js/playkit-js-providers/webpack/universalModuleDefinition","webpack://@playkit-js/playkit-js-providers/webpack/bootstrap","webpack://@playkit-js/playkit-js-providers/webpack/runtime/define property getters","webpack://@playkit-js/playkit-js-providers/webpack/runtime/hasOwnProperty shorthand","webpack://@playkit-js/playkit-js-providers/webpack/runtime/make namespace object","webpack://@playkit-js/playkit-js-providers/./src/util/logger.ts","webpack://@playkit-js/playkit-js-providers/./src/util/error/severity.ts","webpack://@playkit-js/playkit-js-providers/./src/util/error/code.ts","webpack://@playkit-js/playkit-js-providers/./src/util/error/category.ts","webpack://@playkit-js/playkit-js-providers/./src/util/error/error.ts","webpack://@playkit-js/playkit-js-providers/./src/util/request-builder.ts","webpack://@playkit-js/playkit-js-providers/./src/util/clone.ts","webpack://@playkit-js/playkit-js-providers/./src/k-provider/ott/config.ts","webpack://@playkit-js/playkit-js-providers/./src/k-provider/common/base-service-result.ts","webpack://@playkit-js/playkit-js-providers/./src/k-provider/common/multi-request-builder.ts","webpack://@playkit-js/playkit-js-providers/./src/k-provider/ott/services/ott-service.ts","webpack://@playkit-js/playkit-js-providers/./src/k-provider/ott/services/bookmark/bookmark-service.ts","webpack://@playkit-js/playkit-js-providers/./src/k-provider/ott/services/bookmark/index.ts"],"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 {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(globalThis, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export type LogLevelObject = {value: number, name: string};\nexport type LogLevelType = {[level: string]: LogLevelObject};\nexport type loggerFunctionType = {\n VERSION: string,\n DEBUG: LogLevelObject,\n ERROR: LogLevelObject,\n INFO: LogLevelObject,\n OFF: LogLevelObject,\n TIME: LogLevelObject,\n TRACE: LogLevelObject,\n WARN: LogLevelObject,\n createDefaultHandler: () => any\n debug: () => any\n enabledFor: () => any\n error: () => any\n get: () => any\n getLevel: () => any\n info: () => any\n log: () => any\n setHandler: () => any\n setLevel: () => any\n time: () => any\n timeEnd: () => any\n trace: () => any\n useDefaults: () => any\n warn: () => any\n};\n\ntype LoggerType = {\n getLogger: loggerFunctionType,\n LogLevel: LogLevelType\n};\n\nconst JsLogger = {\n get: (): any => ({\n VERSION: '',\n DEBUG: {value: '', name: ''},\n ERROR: {value: '', name: ''},\n INFO: {value: '', name: ''},\n OFF: {value: '', name: ''},\n TIME: {value: '', name: ''},\n TRACE: {value: '', name: ''},\n WARN: {value: '', name: ''},\n createDefaultHandler: (): any => {},\n debug: (): any => {},\n enabledFor: (): any => {},\n error: (): any => {},\n get: (): any => {},\n getLevel: (): any => {},\n info: (): any => {},\n log: (): any => {},\n setHandler: (): any => {},\n setLevel: (): any => {},\n time: (): any => {},\n timeEnd: (): any => {},\n trace: (): any => {},\n useDefaults: (): any => {},\n warn: (): any => {}\n })\n};\n\nlet LogLevel: LogLevelType = {};\n/**\n * set logger\n * @param {LoggerType} logger - the logger\n * @returns {void}\n */\nfunction setLogger(logger?: LoggerType): void {\n if (logger && typeof logger.getLogger === 'function') {\n JsLogger.get = logger.getLogger;\n }\n if (logger && logger.LogLevel) {\n LogLevel = logger.LogLevel;\n }\n}\n\n/**\n * get a logger\n * @param {?string} name - the logger name\n * @returns {Object} - the logger class\n */\nfunction getLogger(name?: string): any {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n return JsLogger.get(name);\n}\n\n/**\n * get the log level\n * @param {?string} name - the logger name\n * @returns {LogLevelObject} - the log level\n */\nfunction getLogLevel(name?: string): LogLevelObject {\n return getLogger(name).getLevel();\n}\n\n/**\n * sets the logger level\n * @param {LogLevelObject} level - the log level\n * @param {?string} name - the logger name\n * @returns {void}\n */\nfunction setLogLevel(level: LogLevelObject, name?: string): void {\n getLogger(name).setLevel(level);\n}\n\nexport default getLogger;\nexport {getLogLevel, setLogLevel, setLogger, LogLevel, LoggerType};\n","type SeverityType = {[severity: string]: number};\n\nconst Severity: SeverityType = {\n /**\n * An error occurred, but the Player is attempting to recover from the error.\n *\n * If the Player cannot ultimately recover, it still may not throw a CRITICAL\n * error. For example, retrying for a media segment will never result in\n * a CRITICAL error (the Player will just retry forever).\n */\n RECOVERABLE: 1,\n /**\n * A critical error that the library cannot recover from. These usually cause\n * the Player to stop loading or updating. A new manifest must be loaded\n * to reset the library.\n */\n CRITICAL: 2\n};\n\nexport {Severity};\nexport type {SeverityType};\n","type CodeType = {[code: string]: number};\n\nconst Code: CodeType = {\n /**\n * A network request was made using an unsupported URI scheme.\n */\n UNSUPPORTED_SCHEME: 1000,\n\n /**\n * An HTTP network request returned an HTTP status that indicated a failure.\n */\n BAD_HTTP_STATUS: 1001,\n\n /**\n * An HTTP network request failed with an error, but not from the server.\n */\n HTTP_ERROR: 1002,\n\n /**\n * A network request timed out.\n */\n TIMEOUT: 1003,\n\n /**\n * A network request was made with a malformed data URI.\n */\n MALFORMED_DATA_URI: 1004,\n\n /**\n * The server responsded with 2xx response, but it couldn't be parsed\n */\n BAD_SERVER_RESPONSE: 1005,\n\n /**\n * The server response had a valid structure but contained an error from the API\n */\n MULTIREQUEST_API_ERROR: 1006,\n\n /**\n * The server response had a valid structure and valid API result, but it did not match the request\n */\n API_RESPONSE_MISMATCH: 1007,\n\n /**\n * The server responded with an error\n */\n ERROR: 2000,\n\n /**\n * The server responded with a block action\n */\n BLOCK_ACTION: 2001,\n\n /**\n * The server responded with status import or pre convert\n */\n MEDIA_STATUS_NOT_READY: 2002,\n\n /**\n * The provider is missing mandatory parameter/s\n */\n\n MISSING_MANDATORY_PARAMS: 3000,\n\n /**\n * The server responded with empty sources objects (for HLS, Dash and progressive)\n */\n MISSING_PLAY_SOURCE: 3001,\n\n /**\n * The provider doesn't implement the called api\n */\n METHOD_NOT_IMPLEMENTED: 3002\n};\n\nexport {Code};\nexport type {CodeType};\n","type CategoryType = {[category: string]: number};\n\nconst Category: CategoryType = {\n /** Errors from the network stack. */\n NETWORK: 1,\n SERVICE: 2,\n PROVIDER: 3\n};\n\nexport {Category};\nexport type {CategoryType};\n","import getLogger from '../logger';\nimport {Severity} from './severity';\nimport type {SeverityType} from './severity';\nimport {Code} from './code';\nimport type {CodeType} from './code';\nimport {Category} from './category';\nimport type {CategoryType} from './category';\n\nconst CLASS_NAME: string = 'Error';\n\n/**\n * @classdesc This is a description of the error class.\n */\nexport default class Error {\n public severity: number;\n public category: number;\n public code: number;\n public data: any;\n /**\n * @enum {number}\n */\n public static Severity: SeverityType = Severity;\n /**\n * @enum {number}\n */\n public static Category: CategoryType = Category;\n /**\n * @enum {number}\n */\n public static Code: CodeType = Code;\n private static _logger: any = getLogger(CLASS_NAME);\n\n /**\n * @constructor\n * @param {number} severity - error's severity\n * @param {number} category - error's category.\n * @param {number} code - error's code.\n * @param {any} data - additional data for the error.\n */\n constructor(severity: number, category: number, code: number, data: any = {}) {\n this.severity = severity;\n this.category = category;\n this.code = code;\n this.data = data;\n Error._logger.error(`Category:${category} | Code:${code} |`, data);\n }\n}\n","import Error from './error/error';\nimport {ProviderNetworkRetryParameters} from '../types';\n\nconst KALTURA_HEADER_PREFIX: string = 'x-';\n\nexport default class RequestBuilder {\n /**\n * @member - Service name\n * @type {string}\n */\n public service!: string;\n /**\n * @member - Service action\n * @type {string}\n */\n public action!: string;\n /**\n * @member - Service params\n * @type {any}\n */\n public params: any;\n /**\n * @memberof - Service headers\n * @type {Map<string, string>}\n */\n public headers: Map<string, string>;\n /**\n * @memberof - Service URL\n * @type {string}\n */\n public url!: string;\n /**\n * @memberof - Service method (POST,GET,DELETE etc..)\n * @type {string}\n */\n public method!: string;\n /**\n * @memberof - Service tag\n * @type {string}\n */\n public tag!: string;\n /**\n * @memberof - the response headers of the arra\n * @type {Array<string>}\n */\n public responseHeaders!: Array<string>;\n /**\n * @description network retry configuration\n * @memberof RequestBuilder\n * @type {ProviderNetworkRetryParameters}\n */\n public retryConfig: ProviderNetworkRetryParameters = {\n async: true,\n timeout: 0,\n maxAttempts: 4\n };\n\n /**\n * @description number of xhr attempts for the same multi - request.\n * @memberof RequestBuilder\n * @type {number}\n * @private\n */\n private _attemptCounter: number = 1;\n\n /**\n * @description hold the promise result of the XHR request(s) - if all tries fails, it rejects with the error.\n * @memberof RequestBuilder\n * @type {Object}\n * @private\n */\n private _requestPromise: any;\n\n /**\n * @constructor\n * @param {Map<string, string>} headers The request headers\n */\n constructor(headers: Map<string, string> = new Map()) {\n this.headers = headers;\n }\n\n /**\n * Builds restful service URL\n * @function getUrl\n * @param {string} serviceUrl - The service base URL\n * @returns {string} The service URL\n */\n public getUrl(serviceUrl: string): string {\n return serviceUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');\n }\n\n /**\n * Executes service\n * @function doHttpRequest\n * @returns {Promise.<any>} Service response as promise\n */\n public doHttpRequest(): Promise<any> {\n const promise = new Promise((resolve, reject) => {\n this._requestPromise = {\n resolve,\n reject\n };\n });\n if (!this.url) {\n this._requestPromise.reject(\n new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, Error.Code.MALFORMED_DATA_URI, {\n url: this.url\n })\n );\n }\n this._createXHR();\n return promise;\n }\n\n private _createXHR(): void {\n const request = new XMLHttpRequest();\n request.onreadystatechange = (): void => {\n if (request.readyState === 4) {\n if (request.status === 200) {\n try {\n const response = JSON.parse(request.responseText);\n this.responseHeaders = this._getResponseHeaders(request);\n // the promise returns the response for backwards compatibility\n return this._requestPromise.resolve(response);\n } catch (error) {\n this._requestPromise.reject(\n this._createError(request, Error.Code.BAD_SERVER_RESPONSE, {\n text: request.responseText\n })\n );\n }\n }\n }\n };\n request.open(this.method, this.url, this.retryConfig.async);\n if (this.retryConfig.async && this.retryConfig.timeout) {\n request.timeout = this.retryConfig.timeout;\n }\n const requestTime = performance.now();\n request.ontimeout = (): void => {\n this._handleError(request, Error.Code.TIMEOUT, {\n timeout: (performance.now() - requestTime) / 1000,\n statusText: request.statusText\n });\n };\n request.onerror = request.onabort = (): void => {\n this._handleError(request, Error.Code.HTTP_ERROR, {\n text: request.responseText,\n statusText: request.statusText\n });\n };\n this.headers.forEach((value, key) => {\n request.setRequestHeader(key, value);\n });\n request.send(this.params);\n }\n\n private _getResponseHeaders(request: XMLHttpRequest): Array<string> {\n return request\n .getAllResponseHeaders()\n .split('\\n')\n .filter(header => header.toLowerCase().indexOf(KALTURA_HEADER_PREFIX) === 0);\n }\n\n private _handleError(request: XMLHttpRequest, code: number, data: any): Promise<void> | void {\n const error = this._createError(request, code, data);\n request.onreadystatechange = function (): void {};\n request.onerror = function (): void {};\n request.ontimeout = function (): void {};\n request.onabort = function (): void {};\n if (this.retryConfig.maxAttempts && this._attemptCounter < this.retryConfig.maxAttempts) {\n this._attemptCounter++;\n this._createXHR();\n } else {\n return this._requestPromise.reject(error);\n }\n }\n\n private _createError(request: XMLHttpRequest, code: number, data: any): Error {\n Object.assign(data, {\n url: this.url,\n headers: this._getResponseHeaders(request),\n attempt: this._attemptCounter\n });\n return new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, code, data);\n }\n}\n","const clone = (data): any => {\n let node;\n if (Array.isArray(data)) {\n node = data.length > 0 ? data.slice(0) : [];\n node.forEach((e, i) => {\n if ((typeof e === 'object') || (Array.isArray(e) && e.length > 0)) {\n node[i] = clone(e);\n }\n });\n } else if (typeof data === 'object') {\n node = Object.assign({}, data);\n Object.keys(node).forEach(key => {\n if ((typeof node[key] === 'object') || (Array.isArray(node[key]) && node[key].length > 0)) {\n node[key] = clone(node[key]);\n }\n });\n } else {\n node = data;\n }\n return node;\n};\n\nexport {clone};\n","import {clone} from '../../util/clone';\nimport {ProviderEnvConfigObject} from '../../types';\n\nconst defaultConfig: any = {\n serviceParams: {\n apiVersion: '7.8.1'\n }\n};\n\nexport default class OTTConfiguration {\n public static set(clientConfig?: ProviderEnvConfigObject): void {\n if (clientConfig) {\n Object.assign(defaultConfig, clientConfig);\n }\n }\n\n public static get(): any {\n return clone(defaultConfig);\n }\n}\n\nexport {OTTConfiguration};\n","export default class ServiceResult {\n /**\n * @member - Is service returned an error\n * @type {boolean}\n */\n public hasError: boolean = false;\n /**\n * @member - The service error\n * @type {ServiceError}\n */\n public error!: ServiceError;\n /**\n * @member - The service result data\n * @type {Object}\n */\n public data: any;\n\n /**\n * @constructor\n * @param {Object} response - Service response\n */\n constructor(response: any) {\n if (response.objectType === 'KalturaAPIException') {\n this.hasError = true;\n this.error = new ServiceError(response.code, response.message);\n } else if (response.error && response.error.objectType === 'KalturaAPIException') {\n this.hasError = true;\n this.error = new ServiceError(response.error.code, response.error.message);\n } else {\n this.data = response;\n }\n }\n}\n\nclass ServiceError {\n /**\n * @member - The error code\n * @type {string}\n */\n public code: string;\n /**\n * @member - The error message\n * @type {string}\n */\n public 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","import RequestBuilder from '../../util/request-builder';\nimport getLogger from '../../util/logger';\nimport ServiceResult from './base-service-result';\nimport Error from '../../util/error/error';\n\nexport default class MultiRequestBuilder extends RequestBuilder {\n private static _logger = getLogger('MultiRequestBuilder');\n /**\n * @memberof - MultiRequestBuilder\n * @type {Array<RequestBuilder>}\n */\n public requests: Array<RequestBuilder> = [];\n /**\n * Adds request to requests array\n * @function add\n * @param {RequestBuilder} request The request\n * @returns {MultiRequestBuilder} The multiRequest\n */\n public add(request: RequestBuilder): MultiRequestBuilder {\n this.requests.push(request);\n const requestParams = {};\n const serviceDef: any = {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 * @param {boolean} requestsMustSucceed whether all of the requests must succeed or not\n * @returns {Promise} The multirequest execution promise\n */\n public execute(requestsMustSucceed?: boolean): Promise<any> {\n return new Promise((resolve, reject) => {\n try {\n this.params = JSON.stringify(this.params);\n } catch (err) {\n MultiRequestBuilder._logger.error(`${err.message}`);\n reject(\n new Error(Error.Severity.CRITICAL, Error.Category.PROVIDER, Error.Code.FAILED_PARSING_REQUEST, {\n error: err,\n params: this.params\n })\n );\n }\n this.doHttpRequest().then(\n data => {\n const multiRequestResult = new MultiRequestResult(data, requestsMustSucceed);\n if (multiRequestResult.success) {\n resolve({\n headers: this.responseHeaders,\n response: multiRequestResult\n });\n } else {\n reject(\n new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, Error.Code.MULTIREQUEST_API_ERROR, {\n url: this.url,\n headers: this.responseHeaders,\n results: multiRequestResult.results\n })\n );\n }\n },\n err => {\n reject(err);\n }\n );\n });\n }\n}\n\nexport class MultiRequestResult {\n private static _logger = getLogger('MultiRequestResult');\n /**\n * @memberof MultiRequestResult\n * @type {boolean}\n */\n public success: boolean;\n /**\n * @memberof MultiRequestResult\n * @type {Object}\n */\n public results: Array<ServiceResult> = [];\n /**\n * @constructor\n * @param {Object} response data\n * @param {boolean} requestsMustSucceed whether all of the requests must succeed\n */\n constructor(response: any, requestsMustSucceed: boolean = true) {\n const result = response.result ? response.result : response;\n const responseArr = Array.isArray(result) ? result : [result];\n const results = responseArr.map(result => new ServiceResult(result));\n const errorResults = results.filter(serviceResult => serviceResult.hasError);\n\n errorResults.forEach(serviceResult => {\n MultiRequestResult._logger.error(\n `Service returned an error with error code: ${serviceResult.error.code} and message: ${serviceResult.error.message}.`\n );\n });\n\n this.results = results;\n if ((requestsMustSucceed && errorResults.length) || errorResults.length === this.results.length) {\n this.success = false;\n } else {\n this.results = this.results.filter(serviceResult => !serviceResult.hasError);\n this.success = true;\n }\n }\n}\n","import MultiRequestBuilder from '../../common/multi-request-builder';\nimport OTTConfiguration from '../config';\n\nconst SERVICE_NAME: string = 'multirequest';\n\nexport default class OTTService {\n /**\n * Gets a new instance of MultiRequestBuilder with ott 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 public static getMultiRequest(ks: string, partnerId?: number): MultiRequestBuilder {\n const config = OTTConfiguration.get();\n const ottParams = config.serviceParams;\n if (ks) {\n Object.assign(ottParams, {ks: ks});\n }\n if (partnerId) {\n Object.assign(ottParams, {partnerId: partnerId});\n }\n const headers: Map<string, string> = new Map();\n headers.set('Content-Type', 'application/json');\n const multiReq = new MultiRequestBuilder(headers);\n multiReq.method = 'POST';\n multiReq.service = SERVICE_NAME;\n multiReq.url = multiReq.getUrl(config.serviceUrl);\n multiReq.params = ottParams;\n return multiReq;\n }\n}\n","import OTTService from '../ott-service';\nimport RequestBuilder from '../../../../util/request-builder';\nimport OTTConfiguration from '../../config';\n\nconst SERVICE_NAME: string = 'bookmark';\n\nexport default class OTTBookmarkService extends OTTService {\n /**\n * Creates an instance of RequestBuilder for session.startWidgetSession\n * @function add\n * @param {string} serviceUrl - The service url\n * @param {string} ks - The ks\n * @param {Object} bookmark - The udid\n * @returns {RequestBuilder} - The request builder\n * @static\n */\n public static add(serviceUrl: string, ks: string, bookmark: any): RequestBuilder {\n const headers: Map<string, string> = new Map();\n headers.set('Content-Type', 'application/json');\n const request = new RequestBuilder(headers);\n request.service = SERVICE_NAME;\n request.action = 'add';\n request.method = 'POST';\n request.url = request.getUrl(serviceUrl);\n const playerData: any = {\n objectType: 'KalturaBookmarkPlayerData',\n action: bookmark.playerData.action,\n averageBitrate: bookmark.playerData.averageBitrate,\n totalBitrate: bookmark.playerData.totalBitrate,\n currentBitrate: bookmark.playerData.currentBitrate,\n fileId: bookmark.playerData.fileId\n };\n const bookmarkServiceParams: any = {\n objectType: 'KalturaBookmark',\n type: bookmark.type,\n context: bookmark.context,\n id: bookmark.id,\n position: bookmark.position,\n playerData: playerData\n };\n if (bookmark.programId) bookmarkServiceParams.programId = bookmark.programId;\n const config = OTTConfiguration.get();\n const serviceParams = config.serviceParams;\n Object.assign(serviceParams, {bookmark: bookmarkServiceParams, ks: ks});\n request.params = JSON.stringify(serviceParams);\n return request;\n }\n}\n","import RequestBuilder from '../../../../util/request-builder';\nimport OTTConfiguration from '../../config';\nimport OTTBookmarkService from './bookmark-service';\n\ndeclare let __VERSION__: string;\ndeclare let __NAME__: string;\n\nconst NAME = __NAME__ + '-bookmark-service';\nconst VERSION = __VERSION__;\n\nexport {OTTBookmarkService, OTTConfiguration, RequestBuilder, NAME, VERSION};\n"],"names":["root","factory","exports","module","define","amd","a","i","globalThis","__webpack_require__","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","JsLogger","VERSION","DEBUG","name","ERROR","INFO","OFF","TIME","TRACE","WARN","createDefaultHandler","debug","enabledFor","error","getLevel","info","log","setHandler","setLevel","time","timeEnd","trace","useDefaults","warn","Severity","RECOVERABLE","CRITICAL","Code","UNSUPPORTED_SCHEME","BAD_HTTP_STATUS","HTTP_ERROR","TIMEOUT","MALFORMED_DATA_URI","BAD_SERVER_RESPONSE","MULTIREQUEST_API_ERROR","API_RESPONSE_MISMATCH","BLOCK_ACTION","MEDIA_STATUS_NOT_READY","MISSING_MANDATORY_PARAMS","MISSING_PLAY_SOURCE","METHOD_NOT_IMPLEMENTED","Category","NETWORK","SERVICE","PROVIDER","Error","getLogger","constructor","severity","category","code","data","this","_logger","RequestBuilder","retryConfig","async","timeout","maxAttempts","_attemptCounter","headers","Map","getUrl","serviceUrl","service","action","doHttpRequest","promise","Promise","resolve","reject","_requestPromise","url","_createXHR","request","XMLHttpRequest","onreadystatechange","readyState","status","response","JSON","parse","responseText","responseHeaders","_getResponseHeaders","_createError","text","open","method","requestTime","performance","now","ontimeout","_handleError","statusText","onerror","onabort","forEach","setRequestHeader","send","params","getAllResponseHeaders","split","filter","header","toLowerCase","indexOf","assign","attempt","clone","node","Array","isArray","length","slice","e","keys","defaultConfig","serviceParams","apiVersion","OTTConfiguration","set","clientConfig","ServiceResult","hasError","objectType","ServiceError","message","MultiRequestBuilder","requests","add","push","requestParams","serviceDef","execute","requestsMustSucceed","stringify","err","FAILED_PARSING_REQUEST","then","multiRequestResult","MultiRequestResult","success","results","result","map","errorResults","serviceResult","OTTService","getMultiRequest","ks","partnerId","config","ottParams","multiReq","OTTBookmarkService","bookmark","playerData","averageBitrate","totalBitrate","currentBitrate","fileId","bookmarkServiceParams","type","context","id","position","programId","NAME","__NAME__","__VERSION__"],"sourceRoot":""}
|