@playkit-js/playkit-js-providers 2.39.1 → 2.39.2

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 (130) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/playkit-analytics-service.js +2 -0
  3. package/dist/playkit-analytics-service.js.map +1 -0
  4. package/dist/playkit-bookmark-service.js +2 -0
  5. package/dist/playkit-bookmark-service.js.map +1 -0
  6. package/dist/playkit-ott-provider.js +2 -0
  7. package/dist/playkit-ott-provider.js.map +1 -0
  8. package/dist/playkit-ovp-provider.js +2 -0
  9. package/dist/playkit-ovp-provider.js.map +1 -0
  10. package/dist/playkit-stats-service.js +2 -0
  11. package/dist/playkit-stats-service.js.map +1 -0
  12. package/package.json +1 -1
  13. package/.babelrc +0 -22
  14. package/.editorconfig +0 -10
  15. package/.eslintignore +0 -3
  16. package/.eslintrc.json +0 -26
  17. package/.flowconfig +0 -5
  18. package/.github/ISSUE_TEMPLATE.md +0 -28
  19. package/.github/PULL_REQUEST_TEMPLATE.md +0 -12
  20. package/.github/workflows/run_canary_full_flow.yaml +0 -28
  21. package/.github/workflows/run_prod.yaml +0 -24
  22. package/.github/workflows/run_tests.yaml +0 -24
  23. package/.prettierignore +0 -7
  24. package/.prettierrc +0 -12
  25. package/docs/configuration.md +0 -225
  26. package/karma.conf.js +0 -42
  27. package/src/entities/bumper.js +0 -23
  28. package/src/entities/drm.js +0 -46
  29. package/src/entities/entry-list.js +0 -15
  30. package/src/entities/image-source.js +0 -37
  31. package/src/entities/media-entry.js +0 -96
  32. package/src/entities/media-format.js +0 -46
  33. package/src/entities/media-source.js +0 -70
  34. package/src/entities/media-sources.js +0 -79
  35. package/src/entities/playlist.js +0 -37
  36. package/src/index.html +0 -11
  37. package/src/k-provider/common/base-provider-parser.js +0 -0
  38. package/src/k-provider/common/base-provider.js +0 -110
  39. package/src/k-provider/common/base-service-result.js +0 -57
  40. package/src/k-provider/common/data-loader-manager.js +0 -115
  41. package/src/k-provider/common/multi-request-builder.js +0 -112
  42. package/src/k-provider/common/response-types/kaltura-access-control-message.js +0 -22
  43. package/src/k-provider/common/response-types/kaltura-drm-playback-plugin-data.js +0 -39
  44. package/src/k-provider/ott/config.js +0 -22
  45. package/src/k-provider/ott/index.js +0 -15
  46. package/src/k-provider/ott/loaders/asset-list-loader.js +0 -68
  47. package/src/k-provider/ott/loaders/asset-loader.js +0 -69
  48. package/src/k-provider/ott/loaders/data-loader-manager.js +0 -15
  49. package/src/k-provider/ott/loaders/session-loader.js +0 -62
  50. package/src/k-provider/ott/provider-parser.js +0 -282
  51. package/src/k-provider/ott/provider.js +0 -242
  52. package/src/k-provider/ott/response-types/kaltura-asset.js +0 -79
  53. package/src/k-provider/ott/response-types/kaltura-bumper-playback-plugin-data.js +0 -28
  54. package/src/k-provider/ott/response-types/kaltura-playback-context.js +0 -74
  55. package/src/k-provider/ott/response-types/kaltura-playback-source.js +0 -63
  56. package/src/k-provider/ott/response-types/kaltura-rule-action.js +0 -26
  57. package/src/k-provider/ott/services/asset-service.js +0 -50
  58. package/src/k-provider/ott/services/bookmark/bookmark-service.js +0 -49
  59. package/src/k-provider/ott/services/bookmark/index.js +0 -12
  60. package/src/k-provider/ott/services/ott-service.js +0 -34
  61. package/src/k-provider/ott/services/user-service.js +0 -32
  62. package/src/k-provider/ovp/config.js +0 -28
  63. package/src/k-provider/ovp/external-captions-builder.js +0 -38
  64. package/src/k-provider/ovp/index.js +0 -13
  65. package/src/k-provider/ovp/loaders/data-loader-manager.js +0 -17
  66. package/src/k-provider/ovp/loaders/entry-list-loader.js +0 -69
  67. package/src/k-provider/ovp/loaders/media-entry-loader.js +0 -84
  68. package/src/k-provider/ovp/loaders/playlist-loader.js +0 -66
  69. package/src/k-provider/ovp/loaders/session-loader.js +0 -62
  70. package/src/k-provider/ovp/loaders/ui-config-loader.js +0 -71
  71. package/src/k-provider/ovp/play-source-url-builder.js +0 -60
  72. package/src/k-provider/ovp/provider-parser.js +0 -451
  73. package/src/k-provider/ovp/provider.js +0 -344
  74. package/src/k-provider/ovp/regex-action-handler.js +0 -147
  75. package/src/k-provider/ovp/request-params/base-entry-response-profile.js +0 -29
  76. package/src/k-provider/ovp/response-types/index.js +0 -18
  77. package/src/k-provider/ovp/response-types/kaltura-access-control-modify-request-host-regex-action.js +0 -36
  78. package/src/k-provider/ovp/response-types/kaltura-base-entry-list-response.js +0 -31
  79. package/src/k-provider/ovp/response-types/kaltura-bumper.js +0 -26
  80. package/src/k-provider/ovp/response-types/kaltura-flavor-asset.js +0 -109
  81. package/src/k-provider/ovp/response-types/kaltura-media-entries.js +0 -23
  82. package/src/k-provider/ovp/response-types/kaltura-media-entry.js +0 -141
  83. package/src/k-provider/ovp/response-types/kaltura-metadata-list-response.js +0 -23
  84. package/src/k-provider/ovp/response-types/kaltura-metadata.js +0 -51
  85. package/src/k-provider/ovp/response-types/kaltura-playback-context.js +0 -96
  86. package/src/k-provider/ovp/response-types/kaltura-playback-source.js +0 -90
  87. package/src/k-provider/ovp/response-types/kaltura-playlist.js +0 -35
  88. package/src/k-provider/ovp/response-types/kaltura-rule-action.js +0 -28
  89. package/src/k-provider/ovp/response-types/kaltura-ui-conf-response.js +0 -90
  90. package/src/k-provider/ovp/services/analytics/analytics-service.js +0 -57
  91. package/src/k-provider/ovp/services/analytics/index.js +0 -12
  92. package/src/k-provider/ovp/services/base-entry-service.js +0 -76
  93. package/src/k-provider/ovp/services/meta-data-service.js +0 -30
  94. package/src/k-provider/ovp/services/ovp-service.js +0 -33
  95. package/src/k-provider/ovp/services/playlist-service.js +0 -63
  96. package/src/k-provider/ovp/services/session-service.js +0 -28
  97. package/src/k-provider/ovp/services/stats/index.js +0 -12
  98. package/src/k-provider/ovp/services/stats/stats-service.js +0 -33
  99. package/src/k-provider/ovp/services/ui-conf-service.js +0 -33
  100. package/src/util/clone.js +0 -23
  101. package/src/util/error/category.js +0 -12
  102. package/src/util/error/code.js +0 -79
  103. package/src/util/error/error.js +0 -48
  104. package/src/util/error/severity.js +0 -23
  105. package/src/util/logger.js +0 -108
  106. package/src/util/param.js +0 -45
  107. package/src/util/request-builder.js +0 -187
  108. package/src/util/xml-parser.js +0 -40
  109. package/test/.eslintrc.json +0 -9
  110. package/test/setup/karma.js +0 -5
  111. package/test/setup/load-specs.js +0 -13
  112. package/test/setup/prepare-test-environment.js +0 -17
  113. package/test/src/k-provider/ott/be-data.js +0 -3306
  114. package/test/src/k-provider/ott/media-config-data.js +0 -793
  115. package/test/src/k-provider/ott/provider-parser.spec.js +0 -30
  116. package/test/src/k-provider/ott/provider.spec.js +0 -384
  117. package/test/src/k-provider/ott/services/bookmark-service.spec.js +0 -38
  118. package/test/src/k-provider/ovp/be-data.js +0 -3932
  119. package/test/src/k-provider/ovp/external-captions-builder.spec.js +0 -59
  120. package/test/src/k-provider/ovp/media-config-data.js +0 -1509
  121. package/test/src/k-provider/ovp/playback-sources-data.js +0 -229
  122. package/test/src/k-provider/ovp/provider-parser-data.js +0 -142
  123. package/test/src/k-provider/ovp/provider-parser.spec.js +0 -96
  124. package/test/src/k-provider/ovp/provider.spec.js +0 -1075
  125. package/test/src/k-provider/ovp/regex-action-handler-data.js +0 -794
  126. package/test/src/k-provider/ovp/regex-action-handler.spec.js +0 -93
  127. package/test/src/k-provider/ovp/services/analytics-service.spec.js +0 -62
  128. package/test/src/k-provider/ovp/services/stats-service.spec.js +0 -37
  129. package/test/src/util/param.spec.js +0 -23
  130. package/webpack.config.js +0 -85
package/src/util/param.js DELETED
@@ -1,45 +0,0 @@
1
- const param = a => {
2
- let s = [],
3
- rbracket = /\[\]$/,
4
- isArray = function (obj) {
5
- return Object.prototype.toString.call(obj) === '[object Array]';
6
- },
7
- add = function (k, v) {
8
- v = typeof v === 'function' ? v() : v === null ? '' : v === undefined ? '' : v;
9
- s[s.length] = encodeURIComponent(k) + '=' + encodeURIComponent(v);
10
- },
11
- buildParams = function (prefix, obj) {
12
- let i, len, key;
13
-
14
- if (prefix) {
15
- if (isArray(obj)) {
16
- for (i = 0, len = obj.length; i < len; i++) {
17
- if (rbracket.test(prefix)) {
18
- add(prefix, obj[i]);
19
- } else {
20
- buildParams(prefix + ':' + (typeof obj[i] === 'object' ? i : ''), obj[i]);
21
- }
22
- }
23
- } else if (obj && String(obj) === '[object Object]') {
24
- for (key in obj) {
25
- buildParams(prefix + ':' + key, obj[key]);
26
- }
27
- } else {
28
- add(prefix, obj);
29
- }
30
- } else if (isArray(obj)) {
31
- for (i = 0, len = obj.length; i < len; i++) {
32
- add(obj[i].name, obj[i].value);
33
- }
34
- } else {
35
- for (key in obj) {
36
- buildParams(key, obj[key]);
37
- }
38
- }
39
- return s;
40
- };
41
-
42
- return buildParams('', a).join('&').replace(/%20/g, '+');
43
- };
44
-
45
- export {param};
@@ -1,187 +0,0 @@
1
- //@flow
2
- import Error from './error/error';
3
-
4
- const KALTURA_HEADER_PREFIX: string = 'x-';
5
-
6
- export default class RequestBuilder {
7
- /**
8
- * @member - Service name
9
- * @type {string}
10
- */
11
- service: string;
12
- /**
13
- * @member - Service action
14
- * @type {string}
15
- */
16
- action: string;
17
- /**
18
- * @member - Service params
19
- * @type {any}
20
- */
21
- params: any;
22
- /**
23
- * @memberof - Service headers
24
- * @type {Map<string, string>}
25
- */
26
- headers: Map<string, string>;
27
- /**
28
- * @memberof - Service URL
29
- * @type {string}
30
- */
31
- url: string;
32
- /**
33
- * @memberof - Service method (POST,GET,DELETE etc..)
34
- * @type {string}
35
- */
36
- method: string;
37
- /**
38
- * @memberof - Service tag
39
- * @type {string}
40
- */
41
- tag: string;
42
- /**
43
- * @memberof - the response headers of the arra
44
- * @type {Array<string>}
45
- */
46
- responseHeaders: Array<string>;
47
- /**
48
- * @description network retry configuration
49
- * @memberof RequestBuilder
50
- * @type {ProviderNetworkRetryParameters}
51
- */
52
- retryConfig: ProviderNetworkRetryParameters = {
53
- async: true,
54
- timeout: 0,
55
- maxAttempts: 4
56
- };
57
-
58
- /**
59
- * @description number of xhr attempts for the same multi - request.
60
- * @memberof RequestBuilder
61
- * @type {number}
62
- * @private
63
- */
64
- _attemptCounter: number = 1;
65
-
66
- /**
67
- * @description hold the promise result of the XHR request(s) - if all tries fails, it rejects with the error.
68
- * @memberof RequestBuilder
69
- * @type {Object}
70
- * @private
71
- */
72
- _requestPromise: Object;
73
-
74
- /**
75
- * @constructor
76
- * @param {Map<string, string>} headers The request headers
77
- */
78
- constructor(headers: Map<string, string> = new Map()) {
79
- this.headers = headers;
80
- }
81
-
82
- /**
83
- * Builds restful service URL
84
- * @function getUrl
85
- * @param {string} serviceUrl - The service base URL
86
- * @returns {string} The service URL
87
- */
88
- getUrl(serviceUrl: string): string {
89
- return serviceUrl + '/service/' + this.service + (this.action ? '/action/' + this.action : '');
90
- }
91
-
92
- /**
93
- * Executes service
94
- * @function doHttpRequest
95
- * @returns {Promise.<any>} Service response as promise
96
- */
97
- doHttpRequest(): Promise<any> {
98
- const promise = new Promise((resolve, reject) => {
99
- this._requestPromise = {
100
- resolve,
101
- reject
102
- };
103
- });
104
- if (!this.url) {
105
- this._requestPromise.reject(
106
- new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, Error.Code.MALFORMED_DATA_URI, {
107
- url: this.url
108
- })
109
- );
110
- }
111
- this._createXHR();
112
- return promise;
113
- }
114
-
115
- _createXHR(): void {
116
- let request = new XMLHttpRequest();
117
- request.onreadystatechange = () => {
118
- if (request.readyState === 4) {
119
- if (request.status === 200) {
120
- try {
121
- const response = JSON.parse(request.responseText);
122
- this.responseHeaders = this._getResponseHeaders(request);
123
- // the promise returns the response for backwards compatibility
124
- return this._requestPromise.resolve(response);
125
- } catch (error) {
126
- this._requestPromise.reject(
127
- this._createError(request, Error.Code.BAD_SERVER_RESPONSE, {
128
- text: request.responseText
129
- })
130
- );
131
- }
132
- }
133
- }
134
- };
135
- request.open(this.method, this.url, this.retryConfig.async);
136
- if (this.retryConfig.async && this.retryConfig.timeout) {
137
- request.timeout = this.retryConfig.timeout;
138
- }
139
- const requestTime = performance.now();
140
- request.ontimeout = () => {
141
- this._handleError(request, Error.Code.TIMEOUT, {
142
- timeout: (performance.now() - requestTime) / 1000,
143
- statusText: request.statusText
144
- });
145
- };
146
- request.onerror = request.onabort = () => {
147
- this._handleError(request, Error.Code.HTTP_ERROR, {
148
- text: request.responseText,
149
- statusText: request.statusText
150
- });
151
- };
152
- this.headers.forEach((value, key) => {
153
- request.setRequestHeader(key, value);
154
- });
155
- request.send(this.params);
156
- }
157
-
158
- _getResponseHeaders(request: XMLHttpRequest): Array<string> {
159
- return request
160
- .getAllResponseHeaders()
161
- .split('\n')
162
- .filter(header => header.toLowerCase().indexOf(KALTURA_HEADER_PREFIX) === 0);
163
- }
164
-
165
- _handleError(request: XMLHttpRequest, code: number, data: Object): Promise<*> | void {
166
- const error = this._createError(request, code, data);
167
- request.onreadystatechange = function () {};
168
- request.onerror = function () {};
169
- request.ontimeout = function () {};
170
- request.onabort = function () {};
171
- if (this.retryConfig.maxAttempts && this._attemptCounter < this.retryConfig.maxAttempts) {
172
- this._attemptCounter++;
173
- this._createXHR();
174
- } else {
175
- return this._requestPromise.reject(error);
176
- }
177
- }
178
-
179
- _createError(request: XMLHttpRequest, code: number, data: Object): Error {
180
- Object.assign(data, {
181
- url: this.url,
182
- headers: this._getResponseHeaders(request),
183
- attempt: this._attemptCounter
184
- });
185
- return new Error(Error.Severity.CRITICAL, Error.Category.NETWORK, code, data);
186
- }
187
- }
@@ -1,40 +0,0 @@
1
- //@flow
2
- export default class XmlParser {
3
- /**
4
- * Parses xml string to json object
5
- * @param {string} xml The xml to parse
6
- * @returns {{}} The parsed xml as Json object
7
- * @static
8
- */
9
- static xmlToJson(xml: Object) {
10
- let obj = {};
11
- if (xml.nodeType === 1) {
12
- if (xml.attributes.length > 0) {
13
- obj['@attributes'] = {};
14
- for (let j = 0; j < xml.attributes.length; j++) {
15
- let attribute = xml.attributes.item(j);
16
- obj['@attributes'][attribute.nodeName] = attribute.nodeValue;
17
- }
18
- }
19
- } else if (xml.nodeType === 3) {
20
- obj = xml.nodeValue;
21
- }
22
- if (xml.hasChildNodes()) {
23
- for (let i = 0; i < xml.childNodes.length; i++) {
24
- let item = xml.childNodes.item(i);
25
- let nodeName = item.nodeName;
26
- if (typeof obj[nodeName] === 'undefined') {
27
- obj[nodeName] = this.xmlToJson(item);
28
- } else {
29
- if (typeof obj[nodeName].push === 'undefined') {
30
- let old = obj[nodeName];
31
- obj[nodeName] = [];
32
- obj[nodeName].push(old);
33
- }
34
- obj[nodeName].push(this.xmlToJson(item));
35
- }
36
- }
37
- }
38
- return obj;
39
- }
40
- }
@@ -1,9 +0,0 @@
1
- {
2
- "rules": {
3
- "flowtype/no-types-missing-file-annotation": "off",
4
- "require-jsdoc": "off",
5
- "valid-jsdoc": "off",
6
- "prettier/prettier": "error",
7
- "mocha-no-only/mocha-no-only": ["error"]
8
- }
9
- }
@@ -1,5 +0,0 @@
1
- import prepareTestEnvironment from './prepare-test-environment';
2
- import loadSpecs from './load-specs';
3
-
4
- prepareTestEnvironment();
5
- loadSpecs();
@@ -1,13 +0,0 @@
1
- /**
2
- * @returns {void}
3
- */
4
- export function loadSpecs() {
5
- const context = require.context('../src/', true, /\.spec\.js$/);
6
- for (const key of context.keys()) {
7
- describe(key, () => {
8
- context(key);
9
- });
10
- }
11
- }
12
-
13
- export default loadSpecs;
@@ -1,17 +0,0 @@
1
- import chai from 'chai';
2
- import sinonChai from 'sinon-chai';
3
- import sinon from 'sinon/pkg/sinon';
4
-
5
- /**
6
- * @returns {void}
7
- */
8
- export function prepareTestEnvironment() {
9
- chai.should();
10
- chai.use(sinonChai);
11
- global.chai = chai;
12
- global.expect = chai.expect;
13
- global.should = chai.should;
14
- global.sinon = sinon;
15
- }
16
-
17
- export default prepareTestEnvironment;