@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
@@ -0,0 +1,391 @@
1
+ export declare type AdapterDataConfig = {
2
+ [key: string]: {
3
+ value: string;
4
+ objectType?: string;
5
+ };
6
+ };
7
+
8
+ export declare type CaptionType = {
9
+ [type: string]: string;
10
+ };
11
+
12
+ declare class DocumentSource {
13
+ /**
14
+ * @member - media source id
15
+ * @type {string}
16
+ */
17
+ id: string;
18
+ /**
19
+ * @member - media source url
20
+ * @type {string}
21
+ */
22
+ url: string;
23
+ /**
24
+ * @member - thumbnail url
25
+ * @type {string}
26
+ */
27
+ thumbnailUrl: string;
28
+ /**
29
+ * @member - media source mimetype
30
+ * @type {string}
31
+ */
32
+ mimetype: string;
33
+ constructor(entry: any);
34
+ }
35
+
36
+ export declare interface ILoader {
37
+ requests: Array<RequestBuilder>;
38
+ response: any;
39
+ isValid(): boolean;
40
+ }
41
+
42
+ declare class ImageSource {
43
+ /**
44
+ * @member - media source id
45
+ * @type {string}
46
+ */
47
+ id: string;
48
+ /**
49
+ * @member - media source url
50
+ * @type {string}
51
+ */
52
+ url: string;
53
+ /**
54
+ * @member - media source mimetype
55
+ * @type {string}
56
+ */
57
+ mimetype: string;
58
+ constructor(entry: any);
59
+ /**
60
+ * Extract the base thumbnail url.
61
+ * @param {string} url - dataUrl.
62
+ * @returns {string} - The base thumbnail url.
63
+ */
64
+ static extractBaseThumbnailUrl(url: string): string;
65
+ }
66
+
67
+ declare type loggerFunctionType = {
68
+ VERSION: string;
69
+ DEBUG: LogLevelObject;
70
+ ERROR: LogLevelObject;
71
+ INFO: LogLevelObject;
72
+ OFF: LogLevelObject;
73
+ TIME: LogLevelObject;
74
+ TRACE: LogLevelObject;
75
+ WARN: LogLevelObject;
76
+ createDefaultHandler: () => any;
77
+ debug: () => any;
78
+ enabledFor: () => any;
79
+ error: () => any;
80
+ get: () => any;
81
+ getLevel: () => any;
82
+ info: () => any;
83
+ log: () => any;
84
+ setHandler: () => any;
85
+ setLevel: () => any;
86
+ time: () => any;
87
+ timeEnd: () => any;
88
+ trace: () => any;
89
+ useDefaults: () => any;
90
+ warn: () => any;
91
+ };
92
+
93
+ declare type LoggerType = {
94
+ getLogger: loggerFunctionType;
95
+ LogLevel: LogLevelType;
96
+ };
97
+
98
+ declare type LogLevelObject = {
99
+ value: number;
100
+ name: string;
101
+ };
102
+
103
+ declare type LogLevelType = {
104
+ [level: string]: LogLevelObject;
105
+ };
106
+
107
+ export declare type OTTProviderMediaInfoObject = OVPProviderMediaInfoObject & {
108
+ mediaType: string;
109
+ contextType: string;
110
+ protocol?: string;
111
+ fileIds?: string;
112
+ streamerType?: string;
113
+ urlType?: string;
114
+ adapterData?: AdapterDataConfig;
115
+ assetReferenceType?: string;
116
+ formats?: Array<string>;
117
+ };
118
+
119
+ export declare type OVPProviderMediaInfoObject = {
120
+ entryId?: string;
121
+ referenceId?: string;
122
+ ks?: string;
123
+ };
124
+
125
+ export declare type PKExternalCaptionObject = {
126
+ url: string;
127
+ label: string;
128
+ language: string;
129
+ default?: boolean;
130
+ type?: string;
131
+ };
132
+
133
+ export declare interface Poster {
134
+ width: number;
135
+ height: number;
136
+ url: string;
137
+ }
138
+
139
+ export declare type ProviderDrmDataObject = {
140
+ licenseUrl: string;
141
+ scheme: string;
142
+ certificate?: string;
143
+ };
144
+
145
+ export declare type ProviderEntryListObject = {
146
+ entries: Array<ProviderMediaInfoObject>;
147
+ ks?: string;
148
+ };
149
+
150
+ export declare type ProviderEnvConfigObject = {
151
+ serviceUrl: string;
152
+ cdnUrl?: string;
153
+ analyticsServiceUrl?: string;
154
+ useApiCaptions?: boolean;
155
+ replaceHostOnlyManifestUrls?: boolean;
156
+ };
157
+
158
+ export declare type ProviderFilterOptionsObject = {
159
+ redirectFromEntryId?: boolean;
160
+ };
161
+
162
+ export declare type ProviderMediaConfigMetadataObject = {
163
+ name: string;
164
+ description?: string;
165
+ mediaType?: string;
166
+ contextType?: string;
167
+ metas?: any;
168
+ tags?: any;
169
+ epgId?: string;
170
+ recordingId?: string;
171
+ updatedAt?: number;
172
+ creatorId?: string;
173
+ views?: number;
174
+ };
175
+
176
+ export declare type ProviderMediaConfigObject = {
177
+ session: ProviderMediaConfigSessionObject;
178
+ sources: ProviderMediaConfigSourcesObject;
179
+ plugins: {
180
+ [plugin: string]: any;
181
+ };
182
+ };
183
+
184
+ export declare type ProviderMediaConfigSessionObject = {
185
+ partnerId: number;
186
+ uiConfId?: number;
187
+ ks?: string;
188
+ isAnonymous?: boolean;
189
+ };
190
+
191
+ export declare type ProviderMediaConfigSourcesObject = {
192
+ dash: Array<ProviderMediaSourceObject>;
193
+ hls: Array<ProviderMediaSourceObject>;
194
+ progressive: Array<ProviderMediaSourceObject>;
195
+ image: Array<ImageSource>;
196
+ document: Array<DocumentSource>;
197
+ duration?: number;
198
+ type: string;
199
+ id?: string;
200
+ poster?: string | Array<any>;
201
+ dvr: boolean;
202
+ vr?: any;
203
+ metadata: ProviderMediaConfigMetadataObject;
204
+ captions?: Array<PKExternalCaptionObject>;
205
+ downloadUrl?: string;
206
+ };
207
+
208
+ export declare type ProviderMediaEntryObject = {
209
+ id?: string;
210
+ name?: string;
211
+ sources: ProviderMediaSourcesObject;
212
+ duration?: number;
213
+ dvrStatus?: number;
214
+ status?: number;
215
+ metadata: any;
216
+ type: string;
217
+ poster?: string | Poster[];
218
+ downloadUrl?: string;
219
+ assetReferenceType?: string;
220
+ };
221
+
222
+ export declare type ProviderMediaFormatType = {
223
+ name: string;
224
+ mimeType: string;
225
+ pathExt: string;
226
+ };
227
+
228
+ export declare type ProviderMediaInfoObject = OVPProviderMediaInfoObject | OTTProviderMediaInfoObject;
229
+
230
+ export declare type ProviderMediaSourceObject = {
231
+ id: string;
232
+ url: string;
233
+ mimetype: string;
234
+ bandwidth?: number;
235
+ width?: number;
236
+ height?: number;
237
+ label?: string;
238
+ drmData?: Array<ProviderDrmDataObject>;
239
+ };
240
+
241
+ export declare type ProviderMediaSourcesObject = {
242
+ progressive: Array<ProviderMediaSourceObject>;
243
+ dash: Array<ProviderMediaSourceObject>;
244
+ hls: Array<ProviderMediaSourceObject>;
245
+ image: Array<ImageSource>;
246
+ document: Array<DocumentSource>;
247
+ captions?: Array<PKExternalCaptionObject>;
248
+ };
249
+
250
+ export declare type ProviderNetworkRetryParameters = {
251
+ async: boolean;
252
+ timeout?: number;
253
+ maxAttempts?: number;
254
+ };
255
+
256
+ export declare type ProviderOptionsObject = {
257
+ partnerId: number;
258
+ widgetId?: string;
259
+ logger?: LoggerType;
260
+ ks?: string;
261
+ uiConfId?: number;
262
+ env?: ProviderEnvConfigObject;
263
+ networkRetryParameters?: ProviderNetworkRetryParameters;
264
+ filterOptions?: ProviderFilterOptionsObject;
265
+ ignoreServerConfig?: boolean;
266
+ loadThumbnailWithKs?: boolean;
267
+ referrer?: string;
268
+ };
269
+
270
+ export declare type ProviderPlaybackContextOptions = {
271
+ mediaProtocol?: string;
272
+ assetFileIds?: string;
273
+ context?: string;
274
+ streamerType?: string;
275
+ urlType?: string;
276
+ adapterData?: AdapterDataConfig;
277
+ };
278
+
279
+ export declare type ProviderPlaylistInfoObject = {
280
+ playlistId: string;
281
+ ks?: string;
282
+ };
283
+
284
+ declare type ProviderPlaylistItemObject = {
285
+ sources: ProviderMediaConfigSourcesObject;
286
+ };
287
+
288
+ export declare type ProviderPlaylistMetadataObject = {
289
+ name: string;
290
+ description: string;
291
+ };
292
+
293
+ export declare type ProviderPlaylistObject = {
294
+ id: string;
295
+ metadata: ProviderPlaylistMetadataObject;
296
+ poster: string;
297
+ items: Array<ProviderPlaylistItemObject>;
298
+ playlistLastEntryId?: string;
299
+ };
300
+
301
+ declare class RequestBuilder {
302
+ /**
303
+ * @member - Service name
304
+ * @type {string}
305
+ */
306
+ service: string;
307
+ /**
308
+ * @member - Service action
309
+ * @type {string}
310
+ */
311
+ action: string;
312
+ /**
313
+ * @member - Service params
314
+ * @type {any}
315
+ */
316
+ params: any;
317
+ /**
318
+ * @memberof - Service headers
319
+ * @type {Map<string, string>}
320
+ */
321
+ headers: Map<string, string>;
322
+ /**
323
+ * @memberof - Service URL
324
+ * @type {string}
325
+ */
326
+ url: string;
327
+ /**
328
+ * @memberof - Service method (POST,GET,DELETE etc..)
329
+ * @type {string}
330
+ */
331
+ method: string;
332
+ /**
333
+ * @memberof - Service tag
334
+ * @type {string}
335
+ */
336
+ tag: string;
337
+ /**
338
+ * @memberof - the response headers of the arra
339
+ * @type {Array<string>}
340
+ */
341
+ responseHeaders: Array<string>;
342
+ /**
343
+ * @description network retry configuration
344
+ * @memberof RequestBuilder
345
+ * @type {ProviderNetworkRetryParameters}
346
+ */
347
+ retryConfig: ProviderNetworkRetryParameters;
348
+ /**
349
+ * @description number of xhr attempts for the same multi - request.
350
+ * @memberof RequestBuilder
351
+ * @type {number}
352
+ * @private
353
+ */
354
+ private _attemptCounter;
355
+ /**
356
+ * @description hold the promise result of the XHR request(s) - if all tries fails, it rejects with the error.
357
+ * @memberof RequestBuilder
358
+ * @type {Object}
359
+ * @private
360
+ */
361
+ private _requestPromise;
362
+ /**
363
+ * @constructor
364
+ * @param {Map<string, string>} headers The request headers
365
+ */
366
+ constructor(headers?: Map<string, string>);
367
+ /**
368
+ * Builds restful service URL
369
+ * @function getUrl
370
+ * @param {string} serviceUrl - The service base URL
371
+ * @returns {string} The service URL
372
+ */
373
+ getUrl(serviceUrl: string): string;
374
+ /**
375
+ * Executes service
376
+ * @function doHttpRequest
377
+ * @returns {Promise.<any>} Service response as promise
378
+ */
379
+ doHttpRequest(): Promise<any>;
380
+ private _createXHR;
381
+ private _getResponseHeaders;
382
+ private _handleError;
383
+ private _createError;
384
+ }
385
+
386
+ export declare type RequestLoader = {
387
+ loader: ILoader;
388
+ params: any;
389
+ };
390
+
391
+ export { }
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "@playkit-js/playkit-js-providers/ott-provider",
3
+ "main": "../dist/playkit-ott-provider.js",
4
+ "types": "../dist/ott-provider.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "@playkit-js/playkit-js-providers/ovp-provider",
3
+ "main": "../dist/playkit-ovp-provider.js",
4
+ "types": "../dist/ovp-provider.d.ts",
5
+ "sideEffects": false
6
+ }
package/package.json CHANGED
@@ -1,36 +1,44 @@
1
1
  {
2
2
  "name": "@playkit-js/playkit-js-providers",
3
- "version": "2.41.0-canary.0-2452bbc",
3
+ "version": "2.41.0-canary.0-3d6d02a",
4
4
  "description": "",
5
- "types": "./dist/index.d.ts",
6
5
  "files": [
7
6
  "dist/**/*",
8
7
  "src/**/*",
9
8
  "flow-typed/**/*",
10
- "playkit-analytics-service/*",
11
- "playkit-bookmark-service/*",
12
- "playkit-ott-provider/*",
13
- "playkit-ovp-provider/*",
14
- "playkit-stats-service/*"
9
+ "analytics-service/*",
10
+ "bookmark-service/*",
11
+ "ott-provider/*",
12
+ "ovp-provider/*",
13
+ "stats-service/*",
14
+ "types/*"
15
15
  ],
16
16
  "exports": {
17
- "./playkit-ovp-provider": "./dist/playkit-ovp-provider.js",
18
- "./playkit-ott-provider": "./dist/playkit-ott-provider.js",
19
- "./playkit-analytics-service": "./dist/playkit-analytics-service.js",
20
- "./playkit-stats-service": "./dist/playkit-stats-service.js",
21
- "./playkit-bookmark-service": "./dist/playkit-bookmark-service.js"
17
+ "./ovp-provider": "./dist/playkit-ovp-provider.js",
18
+ "./ott-provider": "./dist/playkit-ott-provider.js",
19
+ "./analytics-service": "./dist/playkit-analytics-service.js",
20
+ "./stats-service": "./dist/playkit-stats-service.js",
21
+ "./bookmark-service": "./dist/playkit-bookmark-service.js",
22
+ "./types": "./dist/types.d.ts"
22
23
  },
23
24
  "scripts": {
24
25
  "serve": "webpack serve --open --mode=development",
25
26
  "build:dev": "webpack --mode=development",
26
27
  "build:prod": "webpack --mode=production --node-env=production",
27
28
  "build": "yarn run build:prod && yarn run build:types",
28
- "build:types": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --local",
29
+ "build:types": "yarn run build:types:ovp && yarn run build:types:ott && yarn run build:types:analytics && yarn run build:types:bookmark && yarn run build:types:stats && yarn run build:types:types",
30
+ "build:types:ovp": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --config api-extracor-config/api-extractor-ovp-provider.json --local",
31
+ "build:types:ott": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --config api-extracor-config/api-extractor-ott-provider.json --local",
32
+ "build:types:analytics": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --config api-extracor-config/api-extractor-analytics-service.json --local",
33
+ "build:types:bookmark": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --config api-extracor-config/api-extractor-bookmark-service.json --local",
34
+ "build:types:stats": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --config api-extracor-config/api-extractor-stats-service.json --local",
35
+ "build:types:types": "tsc --build tsconfig-lib.json && mkdir -p lib && api-extractor run --config api-extracor-config/api-extractor-types.json --local",
29
36
  "type-check": "tsc --noEmit",
30
37
  "type-check:watch": "npm run type-check -- --watch",
31
38
  "watch": "webpack --mode=development --watch",
32
39
  "test": "NODE_ENV=test karma start --color --mode development",
33
40
  "test:watch": "NODE_ENV=test karma start --browsers=Chrome --single-run=false --auto-watch",
41
+ "test:debug": "NODE_ENV=test karma start --browsers=Chrome --single-run=false --auto-watch --debug",
34
42
  "release": "standard-version",
35
43
  "pushTaggedRelease": "git push --follow-tags --no-verify origin master",
36
44
  "lint": "eslint src/ --ext .js --ext .ts",
@@ -38,19 +46,19 @@
38
46
  "prettier:fix": "prettier --write ."
39
47
  },
40
48
  "devDependencies": {
41
- "@microsoft/api-extractor": "^7.38.0",
42
49
  "@babel/cli": "^7.10.1",
43
50
  "@babel/core": "^7.21.8",
44
- "@babel/preset-typescript": "^7.22.15",
45
- "typescript": "^5.2.2",
46
51
  "@babel/plugin-transform-runtime": "^7.22.15",
47
52
  "@babel/preset-env": "^7.21.5",
53
+ "@babel/preset-typescript": "^7.22.15",
54
+ "@microsoft/api-extractor": "^7.39.4",
55
+ "@playkit-js/browserslist-config": "1.0.8",
56
+ "@typescript-eslint/eslint-plugin": "^6.7.2",
57
+ "@typescript-eslint/parser": "^6.7.2",
48
58
  "babel-eslint": "^10.1.0",
49
59
  "babel-loader": "^9.1.2",
50
60
  "chai": "^4.2.0",
51
61
  "eslint": "8.22.0",
52
- "@typescript-eslint/eslint-plugin": "^6.7.2",
53
- "@typescript-eslint/parser": "^6.7.2",
54
62
  "eslint-config-prettier": "^6.11.0",
55
63
  "eslint-plugin-import": "^2.22.0",
56
64
  "eslint-plugin-mocha-no-only": "^1.1.0",
@@ -60,7 +68,7 @@
60
68
  "karma-chrome-launcher": "^3.1.0",
61
69
  "karma-cli": "^2.0.0",
62
70
  "karma-coverage": "^2.0.2",
63
- "karma-firefox-launcher": "^1.3.0",
71
+ "karma-firefox-launcher": "^2.1.2",
64
72
  "karma-ie-launcher": "^1.0.0",
65
73
  "karma-mocha": "^2.0.1",
66
74
  "karma-mocha-reporter": "^2.2.5",
@@ -74,10 +82,10 @@
74
82
  "sinon": "^9.0.2",
75
83
  "sinon-chai": "^3.5.0",
76
84
  "standard-version": "^6.0.1",
85
+ "typescript": "^5.2.2",
77
86
  "webpack": "^5.83.1",
78
87
  "webpack-cli": "^5.1.1",
79
- "webpack-dev-server": "^4.15.0",
80
- "@playkit-js/browserslist-config": "^1.0.5"
88
+ "webpack-dev-server": "^4.15.0"
81
89
  },
82
90
  "browserslist": [
83
91
  "extends @playkit-js/browserslist-config"
@@ -0,0 +1,31 @@
1
+ export default class DocumentSource {
2
+ /**
3
+ * @member - media source id
4
+ * @type {string}
5
+ */
6
+ public id: string;
7
+ /**
8
+ * @member - media source url
9
+ * @type {string}
10
+ */
11
+ public url: string;
12
+ /**
13
+ * @member - thumbnail url
14
+ * @type {string}
15
+ */
16
+ public thumbnailUrl: string;
17
+ /**
18
+ * @member - media source mimetype
19
+ * @type {string}
20
+ */
21
+ public mimetype: string;
22
+
23
+ constructor(entry: any) {
24
+ this.id = entry.id;
25
+ this.url = entry.downloadUrl;
26
+ this.thumbnailUrl = entry.poster;
27
+ this.mimetype = '';
28
+ }
29
+ }
30
+
31
+ export {DocumentSource}
@@ -8,7 +8,8 @@ export default class MediaEntry {
8
8
  LIVE: 'Live',
9
9
  IMAGE: 'Image',
10
10
  AUDIO: 'Audio',
11
- UNKNOWN: 'Unknown'
11
+ UNKNOWN: 'Unknown',
12
+ DOCUMENT: 'Document'
12
13
  };
13
14
  public static DvrStatus: {[type: string]: number} = {
14
15
  ON: 1,
@@ -1,6 +1,7 @@
1
1
  import MediaSource from './media-source';
2
2
  import {MediaFormat} from './media-format';
3
3
  import {ImageSource} from './image-source';
4
+ import {DocumentSource} from './document-source';
4
5
  import {PKExternalCaptionObject, ProviderMediaFormatType, ProviderMediaSourcesObject} from '../types';
5
6
 
6
7
  export default class MediaSources {
@@ -23,6 +24,7 @@ export default class MediaSources {
23
24
  */
24
25
  public hls: Array<MediaSource>;
25
26
  public image: Array<ImageSource>;
27
+ public document: Array<DocumentSource>;
26
28
  public captions?: Array<PKExternalCaptionObject>;
27
29
 
28
30
  /**
@@ -33,6 +35,7 @@ export default class MediaSources {
33
35
  this.dash = [];
34
36
  this.hls = [];
35
37
  this.image = [];
38
+ this.document = [];
36
39
  }
37
40
 
38
41
  /**
@@ -68,12 +71,14 @@ export default class MediaSources {
68
71
  progressive: [],
69
72
  dash: [],
70
73
  hls: [],
71
- image: []
74
+ image: [],
75
+ document: []
72
76
  };
73
77
  this.progressive.forEach(p => response.progressive.push(p.toJSON()));
74
78
  this.hls.forEach(h => response.hls.push(h.toJSON()));
75
79
  this.dash.forEach(d => response.dash.push(d.toJSON()));
76
80
  response.image = this.image;
81
+ response.document = this.document;
77
82
  return response;
78
83
  }
79
84
  }
@@ -1,7 +1,15 @@
1
1
  import {getLogLevel, setLogLevel, setLogger, LogLevelType, LogLevel} from '../../util/logger';
2
2
  import DataLoaderManager from './data-loader-manager';
3
3
  import Error from '../../util/error/error';
4
- import {ProviderEntryListObject, ProviderMediaConfigObject, ProviderPlaylistInfoObject, ProviderMediaConfigSourcesObject, ProviderNetworkRetryParameters, ProviderOptionsObject, ProviderPlaylistObject} from '../../types';
4
+ import {
5
+ ProviderEntryListObject,
6
+ ProviderMediaConfigObject,
7
+ ProviderPlaylistInfoObject,
8
+ ProviderMediaConfigSourcesObject,
9
+ ProviderNetworkRetryParameters,
10
+ ProviderOptionsObject,
11
+ ProviderPlaylistObject
12
+ } from '../../types';
5
13
 
6
14
  export default class BaseProvider<MI> {
7
15
  private _partnerId: number;
@@ -11,7 +19,9 @@ export default class BaseProvider<MI> {
11
19
  public _dataLoader!: DataLoaderManager;
12
20
  private _playerVersion: string;
13
21
  public _logger: any;
22
+ public _referrer?: string;
14
23
  protected _isAnonymous: boolean;
24
+
15
25
  public _networkRetryConfig: ProviderNetworkRetryParameters = {
16
26
  async: true,
17
27
  timeout: 0,
@@ -58,6 +68,7 @@ export default class BaseProvider<MI> {
58
68
  this._isAnonymous = !options.ks;
59
69
  this._ks = options.ks || '';
60
70
  this._playerVersion = playerVersion;
71
+ this._referrer = options.referrer;
61
72
  }
62
73
 
63
74
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -88,7 +99,7 @@ export default class BaseProvider<MI> {
88
99
  }
89
100
 
90
101
  protected _verifyHasSources(sources: ProviderMediaConfigSourcesObject): void {
91
- if (sources.hls.concat(sources.dash, sources.progressive, sources.image).length === 0) {
102
+ if (sources.hls.concat(sources.dash, sources.progressive, sources.image, sources.document).length === 0) {
92
103
  throw new Error(Error.Severity.CRITICAL, Error.Category.SERVICE, Error.Code.MISSING_PLAY_SOURCE, {
93
104
  action: '',
94
105
  messages: `No play source for entry id: ${sources.id}`
@@ -109,4 +120,4 @@ export default class BaseProvider<MI> {
109
120
  }
110
121
  }
111
122
 
112
- export {BaseProvider}
123
+ export {BaseProvider};
@@ -213,6 +213,7 @@ export default class OTTProvider extends BaseProvider<OTTProviderMediaInfoObject
213
213
  dash: [],
214
214
  progressive: [],
215
215
  image: [],
216
+ document: [],
216
217
  id: '',
217
218
  duration: 0,
218
219
  type: MediaEntry.Type.UNKNOWN,
@@ -9,9 +9,9 @@ import {KalturaMediaEntry} from '../response-types';
9
9
  import {ILoader} from '../../../types';
10
10
 
11
11
  type OVPMediaEntryLoaderResponse = {
12
- entry: KalturaMediaEntry,
13
- playBackContextResult: KalturaPlaybackContext,
14
- metadataListResult: KalturaMetadataListResponse
12
+ entry: KalturaMediaEntry;
13
+ playBackContextResult: KalturaPlaybackContext;
14
+ metadataListResult: KalturaMetadataListResponse;
15
15
  };
16
16
  export type {OVPMediaEntryLoaderResponse};
17
17
 
@@ -68,7 +68,7 @@ export default class OVPMediaEntryLoader implements ILoader {
68
68
  requests.push(OVPBaseEntryService.list(config.serviceUrl, params.ks, params.entryId, params.redirectFromEntryId, params.referenceId));
69
69
  // Use the entry id from the request result to support loading by referenceId
70
70
  const serviceEntryId = params.ks === '{1:result:ks}' ? '{2:result:objects:0:id}' : '{1:result:objects:0:id}';
71
- requests.push(OVPBaseEntryService.getPlaybackContext(config.serviceUrl, params.ks, serviceEntryId));
71
+ requests.push(OVPBaseEntryService.getPlaybackContext(config.serviceUrl, params.ks, serviceEntryId, params.referrer));
72
72
  requests.push(OVPMetadataService.list(config.serviceUrl, params.ks, serviceEntryId));
73
73
  return requests;
74
74
  }