@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.
Files changed (135) hide show
  1. package/dist/index.d.ts +1624 -0
  2. package/dist/playkit-analytics-service.js +1 -1
  3. package/dist/playkit-analytics-service.js.map +1 -1
  4. package/dist/playkit-bookmark-service.js +1 -1
  5. package/dist/playkit-bookmark-service.js.map +1 -1
  6. package/dist/playkit-ott-provider.js +1 -1
  7. package/dist/playkit-ott-provider.js.map +1 -1
  8. package/dist/playkit-ovp-provider.js +1 -1
  9. package/dist/playkit-ovp-provider.js.map +1 -1
  10. package/dist/playkit-stats-service.js +1 -1
  11. package/dist/playkit-stats-service.js.map +1 -1
  12. package/dist/tsdoc-metadata.json +11 -0
  13. package/flow-typed/types/media-config-sources.js +1 -1
  14. package/flow-typed/types/media-sources.js +1 -1
  15. package/package.json +48 -45
  16. package/playkit-analytics-service/package.json +5 -0
  17. package/playkit-bookmark-service/package.json +5 -0
  18. package/playkit-ott-provider/package.json +5 -0
  19. package/playkit-ovp-provider/package.json +5 -0
  20. package/playkit-stats-service/package.json +5 -0
  21. package/src/entities/bumper.ts +21 -0
  22. package/src/entities/drm.ts +47 -0
  23. package/src/entities/entry-list.ts +13 -0
  24. package/src/entities/image-source.ts +36 -0
  25. package/src/entities/media-entry.ts +104 -0
  26. package/src/entities/media-format.ts +47 -0
  27. package/src/entities/media-source.ts +70 -0
  28. package/src/entities/media-sources.ts +79 -0
  29. package/src/entities/playlist.ts +41 -0
  30. package/src/k-provider/common/base-provider-parser.ts +0 -0
  31. package/src/k-provider/common/base-provider.ts +112 -0
  32. package/src/k-provider/common/base-service-result.ts +56 -0
  33. package/src/k-provider/common/data-loader-manager.ts +115 -0
  34. package/src/k-provider/common/multi-request-builder.ts +111 -0
  35. package/src/k-provider/common/response-types/kaltura-access-control-message.ts +21 -0
  36. package/src/k-provider/common/response-types/kaltura-drm-playback-plugin-data.ts +38 -0
  37. package/src/k-provider/ott/config.ts +22 -0
  38. package/src/k-provider/ott/index.ts +14 -0
  39. package/src/k-provider/ott/loaders/asset-list-loader.ts +68 -0
  40. package/src/k-provider/ott/loaders/asset-loader.ts +69 -0
  41. package/src/k-provider/ott/loaders/data-loader-manager.ts +15 -0
  42. package/src/k-provider/ott/loaders/session-loader.ts +62 -0
  43. package/src/k-provider/ott/provider-parser.ts +285 -0
  44. package/src/k-provider/ott/provider.ts +252 -0
  45. package/src/k-provider/ott/response-types/kaltura-asset.ts +105 -0
  46. package/src/k-provider/ott/response-types/kaltura-bumper-playback-plugin-data.ts +27 -0
  47. package/src/k-provider/ott/response-types/kaltura-playback-context.ts +73 -0
  48. package/src/k-provider/ott/response-types/kaltura-playback-source.ts +62 -0
  49. package/src/k-provider/ott/response-types/kaltura-rule-action.ts +25 -0
  50. package/src/k-provider/ott/services/asset-service.ts +50 -0
  51. package/src/k-provider/ott/services/bookmark/bookmark-service.ts +48 -0
  52. package/src/k-provider/ott/services/bookmark/index.ts +11 -0
  53. package/src/k-provider/ott/services/ott-service.ts +33 -0
  54. package/src/k-provider/ott/services/user-service.ts +31 -0
  55. package/src/k-provider/ovp/config.ts +28 -0
  56. package/src/k-provider/ovp/external-captions-builder.ts +37 -0
  57. package/src/k-provider/ovp/index.ts +13 -0
  58. package/src/k-provider/ovp/loaders/data-loader-manager.ts +17 -0
  59. package/src/k-provider/ovp/loaders/entry-list-loader.ts +69 -0
  60. package/src/k-provider/ovp/loaders/media-entry-loader.ts +84 -0
  61. package/src/k-provider/ovp/loaders/playlist-loader.ts +69 -0
  62. package/src/k-provider/ovp/loaders/session-loader.ts +62 -0
  63. package/src/k-provider/ovp/loaders/ui-config-loader.ts +71 -0
  64. package/src/k-provider/ovp/play-source-url-builder.ts +59 -0
  65. package/src/k-provider/ovp/provider-parser.ts +461 -0
  66. package/src/k-provider/ovp/provider.ts +358 -0
  67. package/src/k-provider/ovp/regex-action-handler.ts +149 -0
  68. package/src/k-provider/ovp/request-params/base-entry-response-profile.ts +28 -0
  69. package/src/k-provider/ovp/response-types/index.ts +21 -0
  70. package/src/k-provider/ovp/response-types/kaltura-access-control-modify-request-host-regex-action.ts +35 -0
  71. package/src/k-provider/ovp/response-types/kaltura-base-entry-list-response.ts +30 -0
  72. package/src/k-provider/ovp/response-types/kaltura-bumper.ts +25 -0
  73. package/src/k-provider/ovp/response-types/kaltura-flavor-asset.ts +108 -0
  74. package/src/k-provider/ovp/response-types/kaltura-media-entries.ts +28 -0
  75. package/src/k-provider/ovp/response-types/kaltura-media-entry.ts +189 -0
  76. package/src/k-provider/ovp/response-types/kaltura-metadata-list-response.ts +22 -0
  77. package/src/k-provider/ovp/response-types/kaltura-metadata.ts +50 -0
  78. package/src/k-provider/ovp/response-types/kaltura-playback-context.ts +95 -0
  79. package/src/k-provider/ovp/response-types/kaltura-playback-source.ts +89 -0
  80. package/src/k-provider/ovp/response-types/kaltura-playlist.ts +33 -0
  81. package/src/k-provider/ovp/response-types/kaltura-rule-action.ts +27 -0
  82. package/src/k-provider/ovp/response-types/kaltura-ui-conf-response.ts +89 -0
  83. package/src/k-provider/ovp/response-types/kaltura-user-entry-list-response.ts +30 -0
  84. package/src/k-provider/ovp/response-types/kaltura-user-entry.ts +57 -0
  85. package/src/k-provider/ovp/services/analytics/analytics-service.ts +58 -0
  86. package/src/k-provider/ovp/services/analytics/index.ts +11 -0
  87. package/src/k-provider/ovp/services/base-entry-service.ts +75 -0
  88. package/src/k-provider/ovp/services/meta-data-service.ts +29 -0
  89. package/src/k-provider/ovp/services/ovp-service.ts +32 -0
  90. package/src/k-provider/ovp/services/playlist-service.ts +95 -0
  91. package/src/k-provider/ovp/services/session-service.ts +27 -0
  92. package/src/k-provider/ovp/services/stats/index.ts +11 -0
  93. package/src/k-provider/ovp/services/stats/stats-service.ts +32 -0
  94. package/src/k-provider/ovp/services/ui-conf-service.ts +32 -0
  95. package/src/types/adapter-data-config.ts +1 -0
  96. package/src/types/caption-type.ts +1 -0
  97. package/src/types/drm-data.ts +5 -0
  98. package/src/types/entry-list.ts +6 -0
  99. package/src/types/env-config.ts +7 -0
  100. package/src/types/external-caption-object.ts +7 -0
  101. package/src/types/filter-options.ts +3 -0
  102. package/src/types/index.ts +34 -0
  103. package/src/types/loader.ts +7 -0
  104. package/src/types/media-config-metadata.ts +13 -0
  105. package/src/types/media-config-session.ts +6 -0
  106. package/src/types/media-config-sources.ts +20 -0
  107. package/src/types/media-config.ts +8 -0
  108. package/src/types/media-entry.ts +16 -0
  109. package/src/types/media-format.ts +5 -0
  110. package/src/types/media-info.ts +21 -0
  111. package/src/types/media-source.ts +12 -0
  112. package/src/types/media-sources.ts +11 -0
  113. package/src/types/network-retry-parameters.ts +5 -0
  114. package/src/types/playback-context.ts +10 -0
  115. package/src/types/playlist-info.ts +4 -0
  116. package/src/types/playlist-item.ts +5 -0
  117. package/src/types/playlist-metadata.ts +4 -0
  118. package/src/types/playlist.ts +10 -0
  119. package/src/types/poster.ts +5 -0
  120. package/src/types/provider-options.ts +17 -0
  121. package/src/types/request-loader.ts +6 -0
  122. package/src/util/clone.ts +23 -0
  123. package/src/util/error/category.ts +11 -0
  124. package/src/util/error/code.ts +77 -0
  125. package/src/util/error/error.ts +47 -0
  126. package/src/util/error/severity.ts +21 -0
  127. package/src/util/logger.ts +108 -0
  128. package/src/util/param.ts +45 -0
  129. package/src/util/request-builder.ts +187 -0
  130. package/src/util/xml-parser.ts +39 -0
  131. package/CHANGELOG.md +0 -959
  132. package/samples/ott/bookmark.html +0 -23
  133. package/samples/ott/provider.html +0 -28
  134. package/samples/ovp/provider.html +0 -30
  135. package/samples/ovp/stats.html +0 -17
@@ -0,0 +1,89 @@
1
+ import ServiceResult from '../../common/base-service-result';
2
+
3
+ export class KalturaUIConfResponse extends ServiceResult {
4
+ public static Type: {[type: string]: number} = {
5
+ PLAYER: 1,
6
+ CONTRIBUTION_WIZARD: 2,
7
+ SIMPLE_EDITOR: 3,
8
+ ADVANCED_EDITOR: 4,
9
+ PLAYLIST: 5,
10
+ APP_STUDIO: 6,
11
+ KRECORD: 7,
12
+ PLAYER_V3: 8,
13
+ KMC_ACCOUNT: 9,
14
+ KMC_ANALYTICS: 10,
15
+ KMC_CONTENT: 11,
16
+ KMC_DASHBOARD: 12,
17
+ KMC_LOGIN: 13,
18
+ PLAYER_SL: 14,
19
+ CLIENTSIDE_ENCODER: 15,
20
+ KMC_GENERAL: 16,
21
+ KMC_ROLES_AND_PERMISSIONS: 17,
22
+ CLIPPER: 18,
23
+ KSR: 19,
24
+ KUPLOAD: 20,
25
+ WEBCASTING: 21
26
+ };
27
+
28
+ public static CreationMode: {[mode: string]: number} = {
29
+ WIZARD: 2,
30
+ ADVANCED: 3
31
+ };
32
+
33
+ public description!: string;
34
+ public objTypeAsString!: string;
35
+ public width!: number;
36
+ public height!: number;
37
+ public htmlParams!: string;
38
+ public swfUrl!: string;
39
+ public confFilePath!: string;
40
+ public confFile!: string;
41
+ public confFileFeatures!: string;
42
+ public name!: string;
43
+ public config!: string;
44
+ public confVars!: string;
45
+ public useCdn!: boolean;
46
+ public tags!: string;
47
+ public swfUrlVersion!: string;
48
+ public created!: Date;
49
+ public updated!: Date;
50
+ public html5Url!: string;
51
+ public version!: string;
52
+ public partnerTags!: string;
53
+ public objType!: number;
54
+ public creationMode!: number;
55
+
56
+ /**
57
+ * @constructor
58
+ * @param {Object} data The json response
59
+ */
60
+ constructor(data: any) {
61
+ super(data);
62
+ if (!this.hasError) {
63
+ this.name = data.name;
64
+ this.description = data.description;
65
+ this.objTypeAsString = data.objTypeAsString;
66
+ this.width = data.width;
67
+ this.height = data.height;
68
+ this.htmlParams = data.htmlParams;
69
+ this.swfUrl = data.swfUrl;
70
+ this.confFilePath = data.confFilePath;
71
+ this.confFile = data.confFile;
72
+ this.confFileFeatures = data.confFileFeatures;
73
+ this.config = data.config;
74
+ this.confVars = data.confVars;
75
+ this.useCdn = data.useCdn;
76
+ this.tags = data.tags;
77
+ this.swfUrlVersion = data.swfUrlVersion;
78
+ this.created = new Date(0);
79
+ this.created.setUTCSeconds(data.createdAt);
80
+ this.updated = new Date(0);
81
+ this.updated.setUTCSeconds(data.updatedAt);
82
+ this.html5Url = data.description;
83
+ this.version = data.description;
84
+ this.partnerTags = data.description;
85
+ this.objType = data.description;
86
+ this.creationMode = data.description;
87
+ }
88
+ }
89
+ }
@@ -0,0 +1,30 @@
1
+ import ServiceResult from '../../common/base-service-result';
2
+ import {KalturaUserEntry} from './kaltura-user-entry';
3
+
4
+ export class KalturaUserEntryListResponse extends ServiceResult {
5
+ /**
6
+ * @member - The total count
7
+ * @type {number}
8
+ */
9
+ private totalCount!: number;
10
+ /**
11
+ * @member - The entries
12
+ * @type {Array<KalturaUserEntry>}
13
+ */
14
+ private entries!: Array<KalturaUserEntry>;
15
+
16
+ /**
17
+ * @constructor
18
+ * @param {Object} responseObj The json response
19
+ */
20
+ constructor(responseObj: any) {
21
+ super(responseObj);
22
+ if (!this.hasError) {
23
+ this.totalCount = responseObj.totalCount;
24
+ this.entries = [];
25
+ if (this.totalCount > 0) {
26
+ responseObj.objects.map(entry => this.entries.push(new KalturaUserEntry(entry)));
27
+ }
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,57 @@
1
+ export class KalturaUserEntry {
2
+ /**
3
+ * @member - The last played playlist entry
4
+ * @type {string}
5
+ */
6
+ public playlistLastEntryId: string;
7
+ /**
8
+ * @member - The entry referenceId
9
+ * @type {string}
10
+ */
11
+ private entryId: string;
12
+ /**
13
+ * @member - The entry id
14
+ * @type {number}
15
+ */
16
+ private id: number;
17
+ /**
18
+ * @member - username
19
+ * @type {string}
20
+ */
21
+ private userId: string;
22
+ /**
23
+ * @member - partner id
24
+ * @type {number}
25
+ */
26
+ private partnerId: number;
27
+ /**
28
+ * @member - entry status
29
+ * @type {number}
30
+ */
31
+ private status: number;
32
+ /**
33
+ * @member - Entry creation date as Unix timestamp (In seconds)
34
+ * @type {number}
35
+ */
36
+ private createdAt: number;
37
+ /**
38
+ * @member - Entry updation date as Unix timestamp (In seconds)
39
+ * @type {number}
40
+ */
41
+ private updatedAt: number;
42
+
43
+ /**
44
+ * @constructor
45
+ * @param {Object} entry The json response
46
+ */
47
+ constructor(entry: any) {
48
+ this.playlistLastEntryId = entry.playlistLastEntryId;
49
+ this.entryId = entry.entryId;
50
+ this.id = entry.id;
51
+ this.userId = entry.userId;
52
+ this.partnerId = entry.partnerId;
53
+ this.status = entry.status;
54
+ this.createdAt = entry.createdAt;
55
+ this.updatedAt = entry.updatedAt;
56
+ }
57
+ }
@@ -0,0 +1,58 @@
1
+ import OVPService from '../ovp-service';
2
+ import RequestBuilder from '../../../../util/request-builder';
3
+ import OVPConfiguration from '../../config';
4
+ import {param} from '../../../../util/param';
5
+
6
+ const SERVICE_NAME: string = 'analytics';
7
+
8
+ export default class OVPAnalyticsService extends OVPService {
9
+ /**
10
+ * Creates an instance of RequestBuilder for analytics.trackEvent
11
+ * @function trackEvent
12
+ * @param {string} serviceUrl - The service base url
13
+ * @param {Object} params - The event params
14
+ * @param {string} [requestMethod] - The request method GET or POST
15
+ * @returns {RequestBuilder} - The request builder
16
+ * @static
17
+ */
18
+ public static trackEvent(serviceUrl: string, params: any, requestMethod?: string): RequestBuilder {
19
+ return requestMethod === 'POST'
20
+ ? OVPAnalyticsService._trackEventByPOST(serviceUrl, params)
21
+ : OVPAnalyticsService._trackEventByGET(serviceUrl, params);
22
+ }
23
+
24
+ private static _trackEventByGET(serviceUrl: string, params: any): RequestBuilder {
25
+ const ovpParams = OVPConfiguration.get();
26
+ const serviceParams = {};
27
+ Object.assign(serviceParams, ovpParams.serviceParams, params);
28
+ const request = new RequestBuilder();
29
+ request.service = SERVICE_NAME;
30
+ request.action = 'trackEvent';
31
+ request.method = 'GET';
32
+ request.retryConfig.maxAttempts = 1;
33
+ request.tag = 'analytics-trackEvent';
34
+ request.params = serviceParams;
35
+ request.url = serviceUrl + '?service=' + request.service + '&action=' + request.action + '&' + param(request.params);
36
+ return request;
37
+ }
38
+
39
+ private static _trackEventByPOST(serviceUrl: string, params: any): RequestBuilder {
40
+ const ovpParams = OVPConfiguration.get();
41
+ const serviceParams: any = {};
42
+ Object.assign(serviceParams, ovpParams.serviceParams, params);
43
+ const headers: Map<string, string> = new Map();
44
+ headers.set('Content-Type', 'application/json');
45
+ const request = new RequestBuilder(headers);
46
+ const {eventType, partnerId, entryId, sessionId} = serviceParams;
47
+ const urlParams = {eventType, partnerId, entryId, sessionId};
48
+ ['eventType', 'partnerId', 'entryId', 'sessionId'].forEach(key => delete serviceParams[key]);
49
+ request.service = SERVICE_NAME;
50
+ request.action = 'trackEvent';
51
+ request.method = 'POST';
52
+ request.retryConfig.maxAttempts = 1;
53
+ request.tag = 'analytics-trackEvent';
54
+ request.params = JSON.stringify(serviceParams);
55
+ request.url = serviceUrl + '?service=' + request.service + '&action=' + request.action + '&' + param(urlParams);
56
+ return request;
57
+ }
58
+ }
@@ -0,0 +1,11 @@
1
+ import RequestBuilder from '../../../../util/request-builder';
2
+ import OVPConfiguration from '../../config';
3
+ import OVPAnalyticsService from './analytics-service';
4
+
5
+ declare let __VERSION__: string;
6
+ declare let __NAME__: string;
7
+
8
+ const NAME = __NAME__ + '-analytics-service';
9
+ const VERSION = __VERSION__;
10
+
11
+ export {OVPAnalyticsService, OVPConfiguration, RequestBuilder, NAME, VERSION};
@@ -0,0 +1,75 @@
1
+ import OVPService from './ovp-service';
2
+ import RequestBuilder from '../../../util/request-builder';
3
+ import {BaseEntryResponseProfile} from '../request-params/base-entry-response-profile';
4
+
5
+ const SERVICE_NAME: string = 'baseEntry';
6
+
7
+ export default class OVPBaseEntryService extends OVPService {
8
+ /**
9
+ * Creates an instance of RequestBuilder for baseentry.getPlaybackContext
10
+ * @function getPlaybackContext
11
+ * @param {string} serviceUrl The service base URL
12
+ * @param {string} ks The ks
13
+ * @param {serviceEntryId} serviceEntryId The entry id from the request result (to support loading by referenceId)
14
+ * @returns {RequestBuilder} The request builder
15
+ * @static
16
+ */
17
+ public static getPlaybackContext(serviceUrl: string, ks: string, serviceEntryId: string): RequestBuilder {
18
+ const headers: Map<string, string> = new Map();
19
+ headers.set('Content-Type', 'application/json');
20
+ const request = new RequestBuilder(headers);
21
+ request.service = SERVICE_NAME;
22
+ request.action = 'getPlaybackContext';
23
+ request.method = 'POST';
24
+ request.url = request.getUrl(serviceUrl);
25
+ request.tag = 'baseEntry-getPlaybackContext';
26
+ const contextDataParams = {objectType: 'KalturaContextDataParams', flavorTags: 'all'};
27
+ request.params = {entryId: serviceEntryId, ks: ks, contextDataParams: contextDataParams};
28
+ return request;
29
+ }
30
+
31
+ /**
32
+ * Creates an instance of RequestBuilder for baseentry.list
33
+ * @function list
34
+ * @param {string} serviceUrl The base URL
35
+ * @param {string} ks The ks
36
+ * @param {string} entryId The entry ID
37
+ * @param {boolean} redirectFromEntryId whether the live entry should continue and play the VOD one after the live stream ends.
38
+ * @param {string} referenceId a Reference id instead of an entry id
39
+ * @returns {RequestBuilder} The request builder
40
+ * @static
41
+ */
42
+ public static list(serviceUrl: string, ks: string, entryId: string, redirectFromEntryId: boolean, referenceId: string): RequestBuilder {
43
+ const headers: Map<string, string> = new Map();
44
+ headers.set('Content-Type', 'application/json');
45
+ const request = new RequestBuilder(headers);
46
+ request.service = SERVICE_NAME;
47
+ request.action = 'list';
48
+ request.method = 'POST';
49
+ request.url = request.getUrl(serviceUrl);
50
+ request.tag = 'list';
51
+ request.params = OVPBaseEntryService.getEntryListReqParams(entryId, ks, redirectFromEntryId, referenceId);
52
+ return request;
53
+ }
54
+
55
+ /**
56
+ * Gets baseentry.list service params
57
+ * @function getEntryListReqParams
58
+ * @param {string} entryId The entry ID
59
+ * @param {string} ks The ks
60
+ * @param {boolean} redirectFromEntryId whether the live entry should continue and play the VOD one after the live stream ends.
61
+ * @param {string} referenceId a Reference id instead of an entry id
62
+ * @returns {{ks: string, filter: {redirectFromEntryId: string}, responseProfile: {fields: string, type: number}}} The service params object
63
+ * @static
64
+ */
65
+ public static getEntryListReqParams(entryId: string, ks: string, redirectFromEntryId: boolean, referenceId: string): any {
66
+ let filterParams = {};
67
+ if (entryId) {
68
+ filterParams = redirectFromEntryId ? {redirectFromEntryId: entryId} : {idEqual: entryId};
69
+ } else if (referenceId) {
70
+ filterParams = {objectType: 'KalturaBaseEntryFilter', referenceIdEqual: referenceId};
71
+ }
72
+
73
+ return {ks: ks, filter: filterParams, responseProfile: new BaseEntryResponseProfile()};
74
+ }
75
+ }
@@ -0,0 +1,29 @@
1
+ import OVPService from './ovp-service';
2
+ import RequestBuilder from '../../../util/request-builder';
3
+
4
+ const SERVICE_NAME: string = 'metadata_metadata';
5
+
6
+ export default class OVPMetadataService extends OVPService {
7
+ /**
8
+ * Creates an instance of RequestBuilder for metadata_metadata.list
9
+ * @function getPlaybackContext
10
+ * @param {string} serviceUrl The service base URL
11
+ * @param {string} ks The ks
12
+ * @param {string} entryId The entry ID
13
+ * @returns {RequestBuilder} The request builder
14
+ * @static
15
+ */
16
+ public static list(serviceUrl: string, ks: string, entryId: string): RequestBuilder {
17
+ const headers: Map<string, string> = new Map();
18
+ headers.set('Content-Type', 'application/json');
19
+ const request = new RequestBuilder(headers);
20
+ request.service = SERVICE_NAME;
21
+ request.action = 'list';
22
+ request.method = 'POST';
23
+ request.url = request.getUrl(serviceUrl);
24
+ request.tag = 'metadata_metadata-list';
25
+ const filter = {objectType: 'KalturaMetadataFilter', objectIdEqual: entryId, metadataObjectTypeEqual: '1'};
26
+ request.params = {filter: filter, ks: ks};
27
+ return request;
28
+ }
29
+ }
@@ -0,0 +1,32 @@
1
+ import MultiRequestBuilder from '../../common/multi-request-builder';
2
+ import OVPConfiguration from '../config';
3
+
4
+ const SERVICE_NAME: string = 'multirequest';
5
+
6
+ export default class OVPService {
7
+ /**
8
+ * Gets a new instance of MultiRequestBuilder with ovp params
9
+ * @function getMultiRequest
10
+ * @param {string} playerVersion The player version
11
+ * @param {string} ks The ks
12
+ * @param {string} partnerId The partner ID
13
+ * @returns {MultiRequestBuilder} The multi request builder
14
+ * @static
15
+ */
16
+ public static getMultiRequest(playerVersion: string, ks: string, partnerId?: number): MultiRequestBuilder {
17
+ const config = OVPConfiguration.get();
18
+ const ovpParams = config.serviceParams;
19
+ Object.assign(ovpParams, {ks: ks, clientTag: 'html5:v' + playerVersion});
20
+ if (partnerId) {
21
+ Object.assign(ovpParams, {partnerId: partnerId});
22
+ }
23
+ const headers: Map<string, string> = new Map();
24
+ headers.set('Content-Type', 'application/json');
25
+ const multiReq = new MultiRequestBuilder(headers);
26
+ multiReq.method = 'POST';
27
+ multiReq.service = SERVICE_NAME;
28
+ multiReq.url = multiReq.getUrl(config.serviceUrl);
29
+ multiReq.params = ovpParams;
30
+ return multiReq;
31
+ }
32
+ }
@@ -0,0 +1,95 @@
1
+ import OVPService from './ovp-service';
2
+ import RequestBuilder from '../../../util/request-builder';
3
+ import {BaseEntryResponseProfile} from '../request-params/base-entry-response-profile';
4
+
5
+ const SERVICE_NAME: string = 'playlist';
6
+
7
+ export default class OVPPlaylistService extends OVPService {
8
+ /**
9
+ * Creates an instance of RequestBuilder for playlist.getPlaybackContext
10
+ * @function getPlaybackContext
11
+ * @param {string} serviceUrl The service base URL
12
+ * @param {string} ks The ks
13
+ * @param {string} playlistId The playlist ID
14
+ * @returns {RequestBuilder} The request builder
15
+ * @static
16
+ */
17
+ public static execute(serviceUrl: string, ks: string, playlistId: string): RequestBuilder {
18
+ const headers: Map<string, string> = new Map();
19
+ headers.set('Content-Type', 'application/json');
20
+ const request = new RequestBuilder(headers);
21
+ request.service = SERVICE_NAME;
22
+ request.action = 'execute';
23
+ request.method = 'POST';
24
+ request.url = request.getUrl(serviceUrl);
25
+ request.tag = `${SERVICE_NAME}-execute`;
26
+ request.params = {
27
+ ks: ks,
28
+ id: playlistId,
29
+ responseProfile: new BaseEntryResponseProfile()
30
+ };
31
+ return request;
32
+ }
33
+
34
+ /**
35
+ * Creates an instance of RequestBuilder for playlist.list
36
+ * @function list
37
+ * @param {string} serviceUrl The base URL
38
+ * @param {string} ks The ks
39
+ * @param {string} playlistId The playlist ID
40
+ * @returns {RequestBuilder} The request builder
41
+ * @static
42
+ */
43
+ public static get(serviceUrl: string, ks: string, playlistId: string): RequestBuilder {
44
+ const headers: Map<string, string> = new Map();
45
+ headers.set('Content-Type', 'application/json');
46
+ const request = new RequestBuilder(headers);
47
+ request.service = SERVICE_NAME;
48
+ request.action = 'get';
49
+ request.method = 'POST';
50
+ request.url = request.getUrl(serviceUrl);
51
+ request.tag = `${SERVICE_NAME}-get`;
52
+ request.params = {
53
+ ks: ks,
54
+ id: playlistId,
55
+ responseProfile: {
56
+ fields: 'id,name,description,thumbnailUrl',
57
+ type: 1
58
+ }
59
+ };
60
+ return request;
61
+ }
62
+
63
+ /**
64
+ * gets latest played entry ID
65
+ * @function list
66
+ * @param {string} serviceUrl The base URL
67
+ * @param {string} ks The ks
68
+ * @param {string} playlistId The playlist ID
69
+ * @returns {RequestBuilder} The request builder
70
+ * @static
71
+ */
72
+ public static getLastEntryId(serviceUrl: string, ks: string, playlistId: string): RequestBuilder {
73
+ const headers: Map<string, string> = new Map();
74
+ headers.set('Content-Type', 'application/json');
75
+ const request = new RequestBuilder(headers);
76
+ request.service = 'userEntry';
77
+ request.action = 'list';
78
+ request.method = 'POST';
79
+ request.url = request.getUrl(serviceUrl);
80
+ request.tag = 'userEntry-list';
81
+ request.params = {
82
+ ks: ks,
83
+ filter: {
84
+ objectType: 'KalturaViewHistoryUserEntry',
85
+ entryIdEqual: playlistId,
86
+ userIdEqualCurrent: 1
87
+ },
88
+ responseProfile: {
89
+ fields: 'playlistLastEntryId',
90
+ type: 1
91
+ }
92
+ };
93
+ return request;
94
+ }
95
+ }
@@ -0,0 +1,27 @@
1
+ import OVPService from './ovp-service';
2
+ import RequestBuilder from '../../../util/request-builder';
3
+
4
+ const SERVICE_NAME: string = 'session';
5
+
6
+ export default class OVPSessionService extends OVPService {
7
+ /**
8
+ * Creates an instance of RequestBuilder for session.startWidgetSession
9
+ * @function anonymousSession
10
+ * @param {string} serviceUrl The service base URL
11
+ * @param {string} widgetId The widget ID
12
+ * @returns {RequestBuilder} The request builder
13
+ * @static
14
+ */
15
+ public static anonymousSession(serviceUrl: string, widgetId: string): RequestBuilder {
16
+ const headers: Map<string, string> = new Map();
17
+ headers.set('Content-Type', 'application/json');
18
+ const request = new RequestBuilder(headers);
19
+ request.service = SERVICE_NAME;
20
+ request.action = 'startWidgetSession';
21
+ request.method = 'POST';
22
+ request.url = request.getUrl(serviceUrl);
23
+ request.tag = 'session-startWidget';
24
+ request.params = {widgetId};
25
+ return request;
26
+ }
27
+ }
@@ -0,0 +1,11 @@
1
+ import RequestBuilder from '../../../../util/request-builder';
2
+ import OVPConfiguration from '../../config';
3
+ import OVPStatsService from './stats-service';
4
+
5
+ declare let __VERSION__: string;
6
+ declare let __NAME__: string;
7
+
8
+ const NAME = __NAME__ + '-stats-service';
9
+ const VERSION = __VERSION__;
10
+
11
+ export {OVPStatsService, OVPConfiguration, RequestBuilder, NAME, VERSION};
@@ -0,0 +1,32 @@
1
+ import OVPService from '../ovp-service';
2
+ import RequestBuilder from '../../../../util/request-builder';
3
+ import OVPConfiguration from '../../config';
4
+ import {param} from '../../../../util/param';
5
+
6
+ const SERVICE_NAME: string = 'stats';
7
+
8
+ export default class OVPStatsService extends OVPService {
9
+ /**
10
+ * Creates an instance of RequestBuilder for stats.collect
11
+ * @function collect
12
+ * @param {string} serviceUrl - The service base url
13
+ * @param {string} ks - The ks
14
+ * @param {string} playerVersion - The player version
15
+ * @param {Object} event - The event data
16
+ * @returns {RequestBuilder} - The request builder
17
+ * @static
18
+ */
19
+ public static collect(serviceUrl: string, ks: string, playerVersion: string, event: any): RequestBuilder {
20
+ const ovpParams = OVPConfiguration.get();
21
+ const serviceParams = {};
22
+ Object.assign(serviceParams, ovpParams.serviceParams, {ks: ks, clientTag: 'html5:v' + playerVersion}, event);
23
+ const request = new RequestBuilder();
24
+ request.service = SERVICE_NAME;
25
+ request.action = 'collect';
26
+ request.method = 'GET';
27
+ request.tag = 'stats-collect';
28
+ request.params = serviceParams;
29
+ request.url = serviceUrl + '?service=' + request.service + '&action=' + request.action + '&' + param(request.params);
30
+ return request;
31
+ }
32
+ }
@@ -0,0 +1,32 @@
1
+ import OVPService from './ovp-service';
2
+ import RequestBuilder from '../../../util/request-builder';
3
+
4
+ const SERVICE_NAME: string = 'uiconf';
5
+
6
+ export default class OVPUIConfService extends OVPService {
7
+ /**
8
+ * Creates an instance of RequestBuilder for uiconf.get
9
+ * @function get
10
+ * @param {string} serviceUrl The service base URL
11
+ * @param {string} ks The ks
12
+ * @param {string} uiConfId The uiConf ID
13
+ * @returns {RequestBuilder} The request builder
14
+ * @static
15
+ */
16
+ public static get(serviceUrl: string, ks: string, uiConfId: number): RequestBuilder {
17
+ const headers: Map<string, string> = new Map();
18
+ headers.set('Content-Type', 'application/json');
19
+ const request = new RequestBuilder(headers);
20
+ request.service = SERVICE_NAME;
21
+ request.action = 'get';
22
+ request.method = 'POST';
23
+ request.url = request.getUrl(serviceUrl);
24
+ request.tag = 'uiconf-get';
25
+ const responseProfileParams = {
26
+ fields: 'config',
27
+ type: 1
28
+ };
29
+ request.params = {id: uiConfId, responseProfile: responseProfileParams, ks: ks};
30
+ return request;
31
+ }
32
+ }
@@ -0,0 +1 @@
1
+ export type AdapterDataConfig = {[key: string]: {value: string; objectType?: string}};
@@ -0,0 +1 @@
1
+ export type CaptionType = {[type: string]: string};
@@ -0,0 +1,5 @@
1
+ export type ProviderDrmDataObject = {
2
+ licenseUrl: string;
3
+ scheme: string;
4
+ certificate?: string;
5
+ };
@@ -0,0 +1,6 @@
1
+ import {ProviderMediaInfoObject} from './media-info';
2
+
3
+ export type ProviderEntryListObject = {
4
+ entries: Array<ProviderMediaInfoObject>;
5
+ ks?: string;
6
+ };
@@ -0,0 +1,7 @@
1
+ export type ProviderEnvConfigObject = {
2
+ serviceUrl: string;
3
+ cdnUrl?: string;
4
+ analyticsServiceUrl?: string;
5
+ useApiCaptions?: boolean;
6
+ replaceHostOnlyManifestUrls?: boolean;
7
+ };
@@ -0,0 +1,7 @@
1
+ export type PKExternalCaptionObject = {
2
+ url: string;
3
+ label: string;
4
+ language: string;
5
+ default?: boolean;
6
+ type?: string;
7
+ };
@@ -0,0 +1,3 @@
1
+ export type ProviderFilterOptionsObject = {
2
+ redirectFromEntryId?: boolean;
3
+ };
@@ -0,0 +1,34 @@
1
+
2
+ export * from './adapter-data-config'
3
+ export * from './caption-type'
4
+ export * from './drm-data'
5
+ export * from './entry-list'
6
+ export * from './env-config'
7
+ export * from './external-caption-object'
8
+ export * from './filter-options'
9
+ export * from './loader'
10
+ export * from './media-config'
11
+ export * from './media-config-metadata'
12
+ export * from './media-config-session'
13
+ export * from './media-config-sources'
14
+ export * from './media-entry'
15
+ export * from './media-format'
16
+ export * from './media-info'
17
+ export * from './media-source'
18
+ export * from './media-sources'
19
+ export * from './network-retry-parameters'
20
+ export * from './playback-context'
21
+ export * from './playlist'
22
+ export * from './playlist-metadata'
23
+ export * from './playlist-info'
24
+ export * from './provider-options'
25
+ export * from './request-loader'
26
+ export * from './poster'
27
+
28
+ export { ProviderParser, RequestBuilder, ResponseTypes} from '../k-provider/ovp'
29
+ export { ContextType, MediaType} from '../k-provider/ott'
30
+ import {BaseProvider} from '../k-provider/common/base-provider'
31
+ import OTTProvider from '../k-provider/ott/provider'
32
+ import OVPProvider from '../k-provider/ovp/provider'
33
+ export {OTTProvider, OVPProvider, OTTProvider as Provider, BaseProvider}
34
+ export type IProvider = OTTProvider | OVPProvider;
@@ -0,0 +1,7 @@
1
+ import RequestBuilder from '../util/request-builder';
2
+
3
+ export interface ILoader {
4
+ requests: Array<RequestBuilder>;
5
+ response: any;
6
+ isValid(): boolean;
7
+ }