@playkit-js/playkit-js-providers 2.41.0-canary.0-2452bbc → 2.41.0-canary.0-3d6d02a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/analytics-service/package.json +6 -0
  2. package/bookmark-service/package.json +6 -0
  3. package/dist/analytics-service.d.ts +160 -0
  4. package/dist/bookmark-service.d.ts +157 -0
  5. package/dist/ott-provider.d.ts +545 -0
  6. package/dist/{index.d.ts → ovp-provider.d.ts} +102 -120
  7. package/dist/playkit-analytics-service.js +1 -1
  8. package/dist/playkit-analytics-service.js.map +1 -1
  9. package/dist/playkit-bookmark-service.js +1 -1
  10. package/dist/playkit-bookmark-service.js.map +1 -1
  11. package/dist/playkit-ott-provider.js +1 -1
  12. package/dist/playkit-ott-provider.js.map +1 -1
  13. package/dist/playkit-ovp-provider.js +1 -1
  14. package/dist/playkit-ovp-provider.js.map +1 -1
  15. package/dist/playkit-stats-service.js +1 -1
  16. package/dist/playkit-stats-service.js.map +1 -1
  17. package/dist/stats-service.d.ts +159 -0
  18. package/dist/tsdoc-metadata.json +1 -1
  19. package/dist/types.d.ts +391 -0
  20. package/ott-provider/package.json +6 -0
  21. package/ovp-provider/package.json +6 -0
  22. package/package.json +29 -21
  23. package/src/entities/document-source.ts +31 -0
  24. package/src/entities/media-entry.ts +2 -1
  25. package/src/entities/media-sources.ts +6 -1
  26. package/src/k-provider/common/base-provider.ts +14 -3
  27. package/src/k-provider/ott/provider.ts +1 -0
  28. package/src/k-provider/ovp/loaders/media-entry-loader.ts +4 -4
  29. package/src/k-provider/ovp/provider-parser.ts +22 -2
  30. package/src/k-provider/ovp/provider.ts +9 -5
  31. package/src/k-provider/ovp/regex-action-handler.ts +51 -44
  32. package/src/k-provider/ovp/response-types/kaltura-media-entries.ts +1 -7
  33. package/src/k-provider/ovp/services/base-entry-service.ts +2 -2
  34. package/src/types/index.ts +0 -8
  35. package/src/types/media-config-sources.ts +2 -0
  36. package/src/types/media-sources.ts +2 -0
  37. package/src/types/provider-options.ts +1 -0
  38. package/stats-service/package.json +6 -0
  39. package/types/package.json +5 -0
  40. package/playkit-analytics-service/package.json +0 -5
  41. package/playkit-bookmark-service/package.json +0 -5
  42. package/playkit-ott-provider/package.json +0 -5
  43. package/playkit-ovp-provider/package.json +0 -5
  44. package/playkit-stats-service/package.json +0 -5
@@ -1,11 +1,11 @@
1
- export declare type AdapterDataConfig = {
1
+ declare type AdapterDataConfig = {
2
2
  [key: string]: {
3
3
  value: string;
4
4
  objectType?: string;
5
5
  };
6
6
  };
7
7
 
8
- export declare class BaseProvider<MI> {
8
+ declare class BaseProvider<MI> {
9
9
  private _partnerId;
10
10
  private _widgetId?;
11
11
  private _ks;
@@ -13,6 +13,7 @@ export declare class BaseProvider<MI> {
13
13
  _dataLoader: DataLoaderManager;
14
14
  private _playerVersion;
15
15
  _logger: any;
16
+ _referrer?: string;
16
17
  protected _isAnonymous: boolean;
17
18
  _networkRetryConfig: ProviderNetworkRetryParameters;
18
19
  get partnerId(): number;
@@ -51,14 +52,6 @@ declare class Bumper {
51
52
  constructor(data: any);
52
53
  }
53
54
 
54
- export declare type CaptionType = {
55
- [type: string]: string;
56
- };
57
-
58
- export declare const ContextType: {
59
- [type: string]: string;
60
- };
61
-
62
55
  declare class DataLoaderManager {
63
56
  /**
64
57
  * @member - Loaders response map index
@@ -114,6 +107,30 @@ declare class DataLoaderManager {
114
107
  prepareData(response: MultiRequestResult): any;
115
108
  }
116
109
 
110
+ declare class DocumentSource {
111
+ /**
112
+ * @member - media source id
113
+ * @type {string}
114
+ */
115
+ id: string;
116
+ /**
117
+ * @member - media source url
118
+ * @type {string}
119
+ */
120
+ url: string;
121
+ /**
122
+ * @member - thumbnail url
123
+ * @type {string}
124
+ */
125
+ thumbnailUrl: string;
126
+ /**
127
+ * @member - media source mimetype
128
+ * @type {string}
129
+ */
130
+ mimetype: string;
131
+ constructor(entry: any);
132
+ }
133
+
117
134
  declare class Drm {
118
135
  /**
119
136
  * @member - license url
@@ -153,7 +170,7 @@ declare class EntryList {
153
170
  constructor();
154
171
  }
155
172
 
156
- export declare interface ILoader {
173
+ declare interface ILoader {
157
174
  requests: Array<RequestBuilder>;
158
175
  response: any;
159
176
  isValid(): boolean;
@@ -184,8 +201,6 @@ declare class ImageSource {
184
201
  static extractBaseThumbnailUrl(url: string): string;
185
202
  }
186
203
 
187
- export declare type IProvider = OTTProvider | OVPProvider;
188
-
189
204
  declare class KalturaAccessControlMessage {
190
205
  /**
191
206
  * @member - The access control message
@@ -977,6 +992,7 @@ declare class MediaSources {
977
992
  */
978
993
  hls: Array<MediaSource_2>;
979
994
  image: Array<ImageSource>;
995
+ document: Array<DocumentSource>;
980
996
  captions?: Array<PKExternalCaptionObject>;
981
997
  /**
982
998
  * @constructor
@@ -996,10 +1012,6 @@ declare class MediaSources {
996
1012
  toJSON(): ProviderMediaSourcesObject;
997
1013
  }
998
1014
 
999
- export declare const MediaType: {
1000
- [type: string]: string;
1001
- };
1002
-
1003
1015
  declare class MultiRequestBuilder extends RequestBuilder {
1004
1016
  private static _logger;
1005
1017
  /**
@@ -1043,35 +1055,9 @@ declare class MultiRequestResult {
1043
1055
  constructor(response: any, requestsMustSucceed?: boolean);
1044
1056
  }
1045
1057
 
1046
- declare class OTTProvider extends BaseProvider<OTTProviderMediaInfoObject> {
1047
- /**
1048
- * @constructor
1049
- * @param {ProviderOptionsObject} options - provider options
1050
- * @param {string} playerVersion - player version
1051
- */
1052
- constructor(options: ProviderOptionsObject, playerVersion: string);
1053
- get env(): any;
1054
- /**
1055
- * Gets the backend media config.
1056
- * @param {OTTProviderMediaInfoObject} mediaInfo - ott media info
1057
- * @returns {Promise<ProviderMediaConfigObject>} - The provider media config
1058
- */
1059
- getMediaConfig(mediaInfo: OTTProviderMediaInfoObject): Promise<ProviderMediaConfigObject>;
1060
- private _parseDataFromResponse;
1061
- /**
1062
- * Gets the playlist config from entry list.
1063
- * @param {ProviderEntryListObject} entryListInfo - ott entry list info
1064
- * @returns {Promise<ProviderPlaylistObject>} - The provider playlist config
1065
- */
1066
- getEntryListConfig(entryListInfo: ProviderEntryListObject): Promise<ProviderPlaylistObject>;
1067
- private _parseEntryListDataFromResponse;
1068
- private _getDefaultSourcesObject;
1069
- private _getSourcesObject;
1070
- }
1071
- export { OTTProvider }
1072
- export { OTTProvider as Provider }
1058
+ export declare const NAME: string;
1073
1059
 
1074
- export declare type OTTProviderMediaInfoObject = OVPProviderMediaInfoObject & {
1060
+ declare type OTTProviderMediaInfoObject = OVPProviderMediaInfoObject & {
1075
1061
  mediaType: string;
1076
1062
  contextType: string;
1077
1063
  protocol?: string;
@@ -1089,57 +1075,13 @@ declare type OVPMediaEntryLoaderResponse = {
1089
1075
  metadataListResult: KalturaMetadataListResponse;
1090
1076
  };
1091
1077
 
1092
- export declare class OVPProvider extends BaseProvider<OVPProviderMediaInfoObject> {
1093
- private _filterOptionsConfig;
1094
- /**
1095
- * @constructor
1096
- * @param {ProviderOptionsObject} options - provider options
1097
- * @param {string} playerVersion - player version
1098
- */
1099
- constructor(options: ProviderOptionsObject, playerVersion: string);
1100
- get env(): any;
1101
- /**
1102
- * Gets the backend media config object.
1103
- * @param {OVPProviderMediaInfoObject} mediaInfo - ovp media info
1104
- * @returns {Promise<ProviderMediaConfigObject>} - The provider media config
1105
- */
1106
- getMediaConfig(mediaInfo: OVPProviderMediaInfoObject): Promise<ProviderMediaConfigObject>;
1107
- doRequest(loaders: Array<RequestLoader>, ks?: string): Promise<any>;
1108
- private _getEntryRedirectFilter;
1109
- private _setFilterOptionsConfig;
1110
- private _parseDataFromResponse;
1111
- /**
1112
- * Checks if media is ready for playback (not being imported or converted)
1113
- * @param {MediaEntry} mediaEntry - the media entry info
1114
- * @returns {void}
1115
- */
1116
- private _verifyMediaStatus;
1117
- /**
1118
- * Gets the backend playlist config.
1119
- * @param {ProviderPlaylistInfoObject} playlistInfo - ovp playlist info
1120
- * @returns {Promise<ProviderPlaylistObject>} - The provider playlist config
1121
- */
1122
- getPlaylistConfig(playlistInfo: ProviderPlaylistInfoObject): Promise<ProviderPlaylistObject>;
1123
- private _parsePlaylistDataFromResponse;
1124
- /**
1125
- * Gets playlist config from entry list.
1126
- * @param {ProviderEntryListObject} entryListInfo - ovp entry list info
1127
- * @returns {Promise<ProviderPlaylistObject>} - The provider playlist config
1128
- */
1129
- getEntryListConfig(entryListInfo: ProviderEntryListObject): Promise<ProviderPlaylistObject>;
1130
- private _parseEntryListDataFromResponse;
1131
- private _getPlaylistObject;
1132
- private _getDefaultSourcesObject;
1133
- private _getSourcesObject;
1134
- }
1135
-
1136
- export declare type OVPProviderMediaInfoObject = {
1078
+ declare type OVPProviderMediaInfoObject = {
1137
1079
  entryId?: string;
1138
1080
  referenceId?: string;
1139
1081
  ks?: string;
1140
1082
  };
1141
1083
 
1142
- export declare type PKExternalCaptionObject = {
1084
+ declare type PKExternalCaptionObject = {
1143
1085
  url: string;
1144
1086
  label: string;
1145
1087
  language: string;
@@ -1181,24 +1123,68 @@ declare class Playlist {
1181
1123
  constructor();
1182
1124
  }
1183
1125
 
1184
- export declare interface Poster {
1126
+ declare interface Poster {
1185
1127
  width: number;
1186
1128
  height: number;
1187
1129
  url: string;
1188
1130
  }
1189
1131
 
1190
- export declare type ProviderDrmDataObject = {
1132
+ export declare class Provider extends BaseProvider<OVPProviderMediaInfoObject> {
1133
+ private _filterOptionsConfig;
1134
+ /**
1135
+ * @constructor
1136
+ * @param {ProviderOptionsObject} options - provider options
1137
+ * @param {string} playerVersion - player version
1138
+ */
1139
+ constructor(options: ProviderOptionsObject, playerVersion: string);
1140
+ get env(): any;
1141
+ /**
1142
+ * Gets the backend media config object.
1143
+ * @param {OVPProviderMediaInfoObject} mediaInfo - ovp media info
1144
+ * @returns {Promise<ProviderMediaConfigObject>} - The provider media config
1145
+ */
1146
+ getMediaConfig(mediaInfo: OVPProviderMediaInfoObject): Promise<ProviderMediaConfigObject>;
1147
+ doRequest(loaders: Array<RequestLoader>, ks?: string, requestsMustSucceed?: boolean): Promise<any>;
1148
+ private _getEntryRedirectFilter;
1149
+ private _setFilterOptionsConfig;
1150
+ private _parseDataFromResponse;
1151
+ /**
1152
+ * Checks if media is ready for playback (not being imported or converted)
1153
+ * @param {MediaEntry} mediaEntry - the media entry info
1154
+ * @returns {void}
1155
+ */
1156
+ private _verifyMediaStatus;
1157
+ /**
1158
+ * Gets the backend playlist config.
1159
+ * @param {ProviderPlaylistInfoObject} playlistInfo - ovp playlist info
1160
+ * @returns {Promise<ProviderPlaylistObject>} - The provider playlist config
1161
+ */
1162
+ getPlaylistConfig(playlistInfo: ProviderPlaylistInfoObject): Promise<ProviderPlaylistObject>;
1163
+ private _parsePlaylistDataFromResponse;
1164
+ /**
1165
+ * Gets playlist config from entry list.
1166
+ * @param {ProviderEntryListObject} entryListInfo - ovp entry list info
1167
+ * @returns {Promise<ProviderPlaylistObject>} - The provider playlist config
1168
+ */
1169
+ getEntryListConfig(entryListInfo: ProviderEntryListObject): Promise<ProviderPlaylistObject>;
1170
+ private _parseEntryListDataFromResponse;
1171
+ private _getPlaylistObject;
1172
+ private _getDefaultSourcesObject;
1173
+ private _getSourcesObject;
1174
+ }
1175
+
1176
+ declare type ProviderDrmDataObject = {
1191
1177
  licenseUrl: string;
1192
1178
  scheme: string;
1193
1179
  certificate?: string;
1194
1180
  };
1195
1181
 
1196
- export declare type ProviderEntryListObject = {
1182
+ declare type ProviderEntryListObject = {
1197
1183
  entries: Array<ProviderMediaInfoObject>;
1198
1184
  ks?: string;
1199
1185
  };
1200
1186
 
1201
- export declare type ProviderEnvConfigObject = {
1187
+ declare type ProviderEnvConfigObject = {
1202
1188
  serviceUrl: string;
1203
1189
  cdnUrl?: string;
1204
1190
  analyticsServiceUrl?: string;
@@ -1206,11 +1192,11 @@ export declare type ProviderEnvConfigObject = {
1206
1192
  replaceHostOnlyManifestUrls?: boolean;
1207
1193
  };
1208
1194
 
1209
- export declare type ProviderFilterOptionsObject = {
1195
+ declare type ProviderFilterOptionsObject = {
1210
1196
  redirectFromEntryId?: boolean;
1211
1197
  };
1212
1198
 
1213
- export declare type ProviderMediaConfigMetadataObject = {
1199
+ declare type ProviderMediaConfigMetadataObject = {
1214
1200
  name: string;
1215
1201
  description?: string;
1216
1202
  mediaType?: string;
@@ -1224,7 +1210,7 @@ export declare type ProviderMediaConfigMetadataObject = {
1224
1210
  views?: number;
1225
1211
  };
1226
1212
 
1227
- export declare type ProviderMediaConfigObject = {
1213
+ declare type ProviderMediaConfigObject = {
1228
1214
  session: ProviderMediaConfigSessionObject;
1229
1215
  sources: ProviderMediaConfigSourcesObject;
1230
1216
  plugins: {
@@ -1232,18 +1218,19 @@ export declare type ProviderMediaConfigObject = {
1232
1218
  };
1233
1219
  };
1234
1220
 
1235
- export declare type ProviderMediaConfigSessionObject = {
1221
+ declare type ProviderMediaConfigSessionObject = {
1236
1222
  partnerId: number;
1237
1223
  uiConfId?: number;
1238
1224
  ks?: string;
1239
1225
  isAnonymous?: boolean;
1240
1226
  };
1241
1227
 
1242
- export declare type ProviderMediaConfigSourcesObject = {
1228
+ declare type ProviderMediaConfigSourcesObject = {
1243
1229
  dash: Array<ProviderMediaSourceObject>;
1244
1230
  hls: Array<ProviderMediaSourceObject>;
1245
1231
  progressive: Array<ProviderMediaSourceObject>;
1246
1232
  image: Array<ImageSource>;
1233
+ document: Array<DocumentSource>;
1247
1234
  duration?: number;
1248
1235
  type: string;
1249
1236
  id?: string;
@@ -1255,7 +1242,7 @@ export declare type ProviderMediaConfigSourcesObject = {
1255
1242
  downloadUrl?: string;
1256
1243
  };
1257
1244
 
1258
- export declare type ProviderMediaEntryObject = {
1245
+ declare type ProviderMediaEntryObject = {
1259
1246
  id?: string;
1260
1247
  name?: string;
1261
1248
  sources: ProviderMediaSourcesObject;
@@ -1269,15 +1256,15 @@ export declare type ProviderMediaEntryObject = {
1269
1256
  assetReferenceType?: string;
1270
1257
  };
1271
1258
 
1272
- export declare type ProviderMediaFormatType = {
1259
+ declare type ProviderMediaFormatType = {
1273
1260
  name: string;
1274
1261
  mimeType: string;
1275
1262
  pathExt: string;
1276
1263
  };
1277
1264
 
1278
- export declare type ProviderMediaInfoObject = OVPProviderMediaInfoObject | OTTProviderMediaInfoObject;
1265
+ declare type ProviderMediaInfoObject = OVPProviderMediaInfoObject | OTTProviderMediaInfoObject;
1279
1266
 
1280
- export declare type ProviderMediaSourceObject = {
1267
+ declare type ProviderMediaSourceObject = {
1281
1268
  id: string;
1282
1269
  url: string;
1283
1270
  mimetype: string;
@@ -1288,21 +1275,22 @@ export declare type ProviderMediaSourceObject = {
1288
1275
  drmData?: Array<ProviderDrmDataObject>;
1289
1276
  };
1290
1277
 
1291
- export declare type ProviderMediaSourcesObject = {
1278
+ declare type ProviderMediaSourcesObject = {
1292
1279
  progressive: Array<ProviderMediaSourceObject>;
1293
1280
  dash: Array<ProviderMediaSourceObject>;
1294
1281
  hls: Array<ProviderMediaSourceObject>;
1295
1282
  image: Array<ImageSource>;
1283
+ document: Array<DocumentSource>;
1296
1284
  captions?: Array<PKExternalCaptionObject>;
1297
1285
  };
1298
1286
 
1299
- export declare type ProviderNetworkRetryParameters = {
1287
+ declare type ProviderNetworkRetryParameters = {
1300
1288
  async: boolean;
1301
1289
  timeout?: number;
1302
1290
  maxAttempts?: number;
1303
1291
  };
1304
1292
 
1305
- export declare type ProviderOptionsObject = {
1293
+ declare type ProviderOptionsObject = {
1306
1294
  partnerId: number;
1307
1295
  widgetId?: string;
1308
1296
  logger?: LoggerType;
@@ -1313,6 +1301,7 @@ export declare type ProviderOptionsObject = {
1313
1301
  filterOptions?: ProviderFilterOptionsObject;
1314
1302
  ignoreServerConfig?: boolean;
1315
1303
  loadThumbnailWithKs?: boolean;
1304
+ referrer?: string;
1316
1305
  };
1317
1306
 
1318
1307
  export declare class ProviderParser {
@@ -1434,16 +1423,7 @@ export declare class ProviderParser {
1434
1423
  static getErrorMessages(response: OVPMediaEntryLoaderResponse): Array<KalturaAccessControlMessage>;
1435
1424
  }
1436
1425
 
1437
- export declare type ProviderPlaybackContextOptions = {
1438
- mediaProtocol?: string;
1439
- assetFileIds?: string;
1440
- context?: string;
1441
- streamerType?: string;
1442
- urlType?: string;
1443
- adapterData?: AdapterDataConfig;
1444
- };
1445
-
1446
- export declare type ProviderPlaylistInfoObject = {
1426
+ declare type ProviderPlaylistInfoObject = {
1447
1427
  playlistId: string;
1448
1428
  ks?: string;
1449
1429
  };
@@ -1452,12 +1432,12 @@ declare type ProviderPlaylistItemObject = {
1452
1432
  sources: ProviderMediaConfigSourcesObject;
1453
1433
  };
1454
1434
 
1455
- export declare type ProviderPlaylistMetadataObject = {
1435
+ declare type ProviderPlaylistMetadataObject = {
1456
1436
  name: string;
1457
1437
  description: string;
1458
1438
  };
1459
1439
 
1460
- export declare type ProviderPlaylistObject = {
1440
+ declare type ProviderPlaylistObject = {
1461
1441
  id: string;
1462
1442
  metadata: ProviderPlaylistMetadataObject;
1463
1443
  poster: string;
@@ -1550,7 +1530,7 @@ export declare class RequestBuilder {
1550
1530
  private _createError;
1551
1531
  }
1552
1532
 
1553
- export declare type RequestLoader = {
1533
+ declare type RequestLoader = {
1554
1534
  loader: ILoader;
1555
1535
  params: any;
1556
1536
  };
@@ -1621,4 +1601,6 @@ declare class ServiceResult {
1621
1601
  constructor(response: any);
1622
1602
  }
1623
1603
 
1604
+ export declare const VERSION: string;
1605
+
1624
1606
  export { }
@@ -1,2 +1,2 @@
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})()));
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 n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(self,(function(){return function(){"use strict";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e){var t=function(e,t){if("object"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,"string");if("object"!==n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"===n(t)?t:String(t)}function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,o(n.key),n)}}function s(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e,t,r){return(t=o(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}e.r(t),e.d(t,{NAME:function(){return P},OVPAnalyticsService:function(){return A},OVPConfiguration:function(){return h},RequestBuilder:function(){return l},VERSION:function(){return C}});var u=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(){}}};var c=function(e){return u(e)},f=s((function e(t,n,o){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};r(this,e),this.severity=t,this.category=n,this.code=o,this.data=i,e._logger.error("Category:".concat(n," | Code:").concat(o," |"),i)}));a(f,"Severity",{RECOVERABLE:1,CRITICAL:2}),a(f,"Category",{NETWORK:1,SERVICE:2,PROVIDER:3}),a(f,"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}),a(f,"_logger",c("Error"));var l=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),a(this,"retryConfig",{async:!0,timeout:0,maxAttempts:4}),a(this,"_attemptCounter",1),this.headers=t}return s(e,[{key:"getUrl",value:function(e){return e+"/service/"+this.service+(this.action?"/action/"+this.action:"")}},{key:"doHttpRequest",value:function(){var e=this,t=new Promise((function(t,r){e._requestPromise={resolve:t,reject:r}}));return this.url||this._requestPromise.reject(new f(f.Severity.CRITICAL,f.Category.NETWORK,f.Code.MALFORMED_DATA_URI,{url:this.url})),this._createXHR(),t}},{key:"_createXHR",value: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,f.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,f.Code.TIMEOUT,{timeout:(performance.now()-r)/1e3,statusText:t.statusText})},t.onerror=t.onabort=function(){e._handleError(t,f.Code.HTTP_ERROR,{text:t.responseText,statusText:t.statusText})},this.headers.forEach((function(e,r){t.setRequestHeader(r,e)})),t.send(this.params)}},{key:"_getResponseHeaders",value:function(e){return e.getAllResponseHeaders().split("\n").filter((function(e){return 0===e.toLowerCase().indexOf("x-")}))}},{key:"_handleError",value: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()}},{key:"_createError",value:function(e,t,r){return Object.assign(r,{url:this.url,headers:this._getResponseHeaders(e),attempt:this._attemptCounter}),new f(f.Severity.CRITICAL,f.Category.NETWORK,t,r)}}]),e}(),p=function e(t){var r;return Array.isArray(t)?(r=t.length>0?t.slice(0):[]).forEach((function(t,o){("object"===n(t)||Array.isArray(t)&&t.length>0)&&(r[o]=e(t))})):"object"===n(t)?(r=Object.assign({},t),Object.keys(r).forEach((function(t){("object"===n(r[t])||Array.isArray(r[t])&&r[t].length>0)&&(r[t]=e(r[t]))}))):r=t,r},y={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},h=function(){function e(){r(this,e)}return s(e,null,[{key:"set",value:function(e){e&&Object.assign(y,e)}},{key:"get",value:function(){return p(y)}}]),e}();function v(e,t){return v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},v(e,t)}function d(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&v(e,t)}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g(e,t){if(t&&("object"===n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return m(e)}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}var R=s((function e(t){r(this,e),a(this,"hasError",!1),"KalturaAPIException"===t.objectType?(this.hasError=!0,this.error=new O(t.code,t.message)):t.error&&"KalturaAPIException"===t.error.objectType?(this.hasError=!0,this.error=new O(t.error.code,t.error.message)):this.data=t})),O=s((function e(t,n){r(this,e),this.code=t,this.message=n}));var b=function(e){d(i,e);var t,n,o=(t=i,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=E(t);if(n){var o=E(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return g(this,e)});function i(){var e;r(this,i);for(var t=arguments.length,n=new Array(t),s=0;s<t;s++)n[s]=arguments[s];return a(m(e=o.call.apply(o,[this].concat(n))),"requests",[]),e}return s(i,[{key:"add",value:function(e){this.requests.push(e);var t={},r={service:e.service,action:e.action};return Object.assign(t,a({},this.requests.length,Object.assign(r,e.params))),Object.assign(t,this.params),this.params=t,this}},{key:"execute",value:function(e){var t=this;return new Promise((function(r,n){try{t.params=JSON.stringify(t.params)}catch(e){i._logger.error("".concat(e.message)),n(new f(f.Severity.CRITICAL,f.Category.PROVIDER,f.Code.FAILED_PARSING_REQUEST,{error:e,params:t.params}))}t.doHttpRequest().then((function(o){var i=new _(o,e);i.success?r({headers:t.responseHeaders,response:i}):n(new f(f.Severity.CRITICAL,f.Category.NETWORK,f.Code.MULTIREQUEST_API_ERROR,{url:t.url,headers:t.responseHeaders,results:i.results}))}),(function(e){n(e)}))}))}}]),i}(l);a(b,"_logger",c("MultiRequestBuilder"));var _=s((function e(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];r(this,e),a(this,"results",[]);var o=t.result?t.result:t,i=(Array.isArray(o)?o:[o]).map((function(e){return new R(e)})),s=i.filter((function(e){return e.hasError}));s.forEach((function(t){e._logger.error("Service returned an error with error code: ".concat(t.error.code," and message: ").concat(t.error.message,"."))})),this.results=i,n&&s.length||s.length===this.results.length?this.success=!1:(this.results=this.results.filter((function(e){return!e.hasError})),this.success=!0)}));a(_,"_logger",c("MultiRequestResult"));var T=function(e){var t=[],r=/\[\]$/,o=function(e){return"[object Array]"===Object.prototype.toString.call(e)},i=function(e,r){r="function"==typeof r?r():null==r?"":r,t[t.length]=encodeURIComponent(e)+"="+encodeURIComponent(r)};return function e(s,a){var u,c,f;if(s)if(o(a))for(u=0,c=a.length;u<c;u++)r.test(s)?i(s,a[u]):e(s+":"+("object"===n(a[u])?u:""),a[u]);else if(a&&"[object Object]"===String(a))for(f in a)e(s+":"+f,a[f]);else i(s,a);else if(o(a))for(u=0,c=a.length;u<c;u++)i(a[u].name,a[u].value);else for(f in a)e(f,a[f]);return t}("",e).join("&").replace(/%20/g,"+")};var S="analytics",A=function(e){d(i,e);var t,n,o=(t=i,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=E(t);if(n){var o=E(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return g(this,e)});function i(){return r(this,i),o.apply(this,arguments)}return s(i,null,[{key:"trackEvent",value:function(e,t,r){return"POST"===r?i._trackEventByPOST(e,t):i._trackEventByGET(e,t)}},{key:"_trackEventByGET",value:function(e,t){var r=h.get(),n={};Object.assign(n,r.serviceParams,t);var o=new l;return o.service=S,o.action="trackEvent",o.method="GET",o.retryConfig.maxAttempts=1,o.tag="analytics-trackEvent",o.params=n,o.url=e+"?service="+o.service+"&action="+o.action+"&"+T(o.params),o}},{key:"_trackEventByPOST",value:function(e,t){var r=h.get(),n={};Object.assign(n,r.serviceParams,t);var o=new Map;o.set("Content-Type","application/json");var i=new l(o),s={eventType:n.eventType,partnerId:n.partnerId,entryId:n.entryId,sessionId:n.sessionId};return["eventType","partnerId","entryId","sessionId"].forEach((function(e){return delete n[e]})),i.service=S,i.action="trackEvent",i.method="POST",i.retryConfig.maxAttempts=1,i.tag="analytics-trackEvent",i.params=JSON.stringify(n),i.url=e+"?service="+i.service+"&action="+i.action+"&"+T(s),i}}]),i}(function(){function e(){r(this,e)}return s(e,null,[{key:"getMultiRequest",value:function(e,t,r){var n=h.get(),o=n.serviceParams;Object.assign(o,{ks:t,clientTag:"html5:v"+e}),r&&Object.assign(o,{partnerId:r});var i=new Map;i.set("Content-Type","application/json");var s=new b(i);return s.method="POST",s.service="multirequest",s.url=s.getUrl(n.serviceUrl),s.params=o,s}}]),e}()),P="@playkit-js/playkit-js-providers-analytics-service",C="2.41.0-canary.0-3d6d02a";return t}()}));
2
2
  //# sourceMappingURL=playkit-analytics-service.js.map