@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.
- package/CHANGELOG.md +4 -0
- package/dist/playkit-analytics-service.js +2 -0
- package/dist/playkit-analytics-service.js.map +1 -0
- package/dist/playkit-bookmark-service.js +2 -0
- package/dist/playkit-bookmark-service.js.map +1 -0
- package/dist/playkit-ott-provider.js +2 -0
- package/dist/playkit-ott-provider.js.map +1 -0
- package/dist/playkit-ovp-provider.js +2 -0
- package/dist/playkit-ovp-provider.js.map +1 -0
- package/dist/playkit-stats-service.js +2 -0
- package/dist/playkit-stats-service.js.map +1 -0
- package/package.json +1 -1
- package/.babelrc +0 -22
- package/.editorconfig +0 -10
- package/.eslintignore +0 -3
- package/.eslintrc.json +0 -26
- package/.flowconfig +0 -5
- package/.github/ISSUE_TEMPLATE.md +0 -28
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -12
- package/.github/workflows/run_canary_full_flow.yaml +0 -28
- package/.github/workflows/run_prod.yaml +0 -24
- package/.github/workflows/run_tests.yaml +0 -24
- package/.prettierignore +0 -7
- package/.prettierrc +0 -12
- package/docs/configuration.md +0 -225
- package/karma.conf.js +0 -42
- package/src/entities/bumper.js +0 -23
- package/src/entities/drm.js +0 -46
- package/src/entities/entry-list.js +0 -15
- package/src/entities/image-source.js +0 -37
- package/src/entities/media-entry.js +0 -96
- package/src/entities/media-format.js +0 -46
- package/src/entities/media-source.js +0 -70
- package/src/entities/media-sources.js +0 -79
- package/src/entities/playlist.js +0 -37
- package/src/index.html +0 -11
- package/src/k-provider/common/base-provider-parser.js +0 -0
- package/src/k-provider/common/base-provider.js +0 -110
- package/src/k-provider/common/base-service-result.js +0 -57
- package/src/k-provider/common/data-loader-manager.js +0 -115
- package/src/k-provider/common/multi-request-builder.js +0 -112
- package/src/k-provider/common/response-types/kaltura-access-control-message.js +0 -22
- package/src/k-provider/common/response-types/kaltura-drm-playback-plugin-data.js +0 -39
- package/src/k-provider/ott/config.js +0 -22
- package/src/k-provider/ott/index.js +0 -15
- package/src/k-provider/ott/loaders/asset-list-loader.js +0 -68
- package/src/k-provider/ott/loaders/asset-loader.js +0 -69
- package/src/k-provider/ott/loaders/data-loader-manager.js +0 -15
- package/src/k-provider/ott/loaders/session-loader.js +0 -62
- package/src/k-provider/ott/provider-parser.js +0 -282
- package/src/k-provider/ott/provider.js +0 -242
- package/src/k-provider/ott/response-types/kaltura-asset.js +0 -79
- package/src/k-provider/ott/response-types/kaltura-bumper-playback-plugin-data.js +0 -28
- package/src/k-provider/ott/response-types/kaltura-playback-context.js +0 -74
- package/src/k-provider/ott/response-types/kaltura-playback-source.js +0 -63
- package/src/k-provider/ott/response-types/kaltura-rule-action.js +0 -26
- package/src/k-provider/ott/services/asset-service.js +0 -50
- package/src/k-provider/ott/services/bookmark/bookmark-service.js +0 -49
- package/src/k-provider/ott/services/bookmark/index.js +0 -12
- package/src/k-provider/ott/services/ott-service.js +0 -34
- package/src/k-provider/ott/services/user-service.js +0 -32
- package/src/k-provider/ovp/config.js +0 -28
- package/src/k-provider/ovp/external-captions-builder.js +0 -38
- package/src/k-provider/ovp/index.js +0 -13
- package/src/k-provider/ovp/loaders/data-loader-manager.js +0 -17
- package/src/k-provider/ovp/loaders/entry-list-loader.js +0 -69
- package/src/k-provider/ovp/loaders/media-entry-loader.js +0 -84
- package/src/k-provider/ovp/loaders/playlist-loader.js +0 -66
- package/src/k-provider/ovp/loaders/session-loader.js +0 -62
- package/src/k-provider/ovp/loaders/ui-config-loader.js +0 -71
- package/src/k-provider/ovp/play-source-url-builder.js +0 -60
- package/src/k-provider/ovp/provider-parser.js +0 -451
- package/src/k-provider/ovp/provider.js +0 -344
- package/src/k-provider/ovp/regex-action-handler.js +0 -147
- package/src/k-provider/ovp/request-params/base-entry-response-profile.js +0 -29
- package/src/k-provider/ovp/response-types/index.js +0 -18
- package/src/k-provider/ovp/response-types/kaltura-access-control-modify-request-host-regex-action.js +0 -36
- package/src/k-provider/ovp/response-types/kaltura-base-entry-list-response.js +0 -31
- package/src/k-provider/ovp/response-types/kaltura-bumper.js +0 -26
- package/src/k-provider/ovp/response-types/kaltura-flavor-asset.js +0 -109
- package/src/k-provider/ovp/response-types/kaltura-media-entries.js +0 -23
- package/src/k-provider/ovp/response-types/kaltura-media-entry.js +0 -141
- package/src/k-provider/ovp/response-types/kaltura-metadata-list-response.js +0 -23
- package/src/k-provider/ovp/response-types/kaltura-metadata.js +0 -51
- package/src/k-provider/ovp/response-types/kaltura-playback-context.js +0 -96
- package/src/k-provider/ovp/response-types/kaltura-playback-source.js +0 -90
- package/src/k-provider/ovp/response-types/kaltura-playlist.js +0 -35
- package/src/k-provider/ovp/response-types/kaltura-rule-action.js +0 -28
- package/src/k-provider/ovp/response-types/kaltura-ui-conf-response.js +0 -90
- package/src/k-provider/ovp/services/analytics/analytics-service.js +0 -57
- package/src/k-provider/ovp/services/analytics/index.js +0 -12
- package/src/k-provider/ovp/services/base-entry-service.js +0 -76
- package/src/k-provider/ovp/services/meta-data-service.js +0 -30
- package/src/k-provider/ovp/services/ovp-service.js +0 -33
- package/src/k-provider/ovp/services/playlist-service.js +0 -63
- package/src/k-provider/ovp/services/session-service.js +0 -28
- package/src/k-provider/ovp/services/stats/index.js +0 -12
- package/src/k-provider/ovp/services/stats/stats-service.js +0 -33
- package/src/k-provider/ovp/services/ui-conf-service.js +0 -33
- package/src/util/clone.js +0 -23
- package/src/util/error/category.js +0 -12
- package/src/util/error/code.js +0 -79
- package/src/util/error/error.js +0 -48
- package/src/util/error/severity.js +0 -23
- package/src/util/logger.js +0 -108
- package/src/util/param.js +0 -45
- package/src/util/request-builder.js +0 -187
- package/src/util/xml-parser.js +0 -40
- package/test/.eslintrc.json +0 -9
- package/test/setup/karma.js +0 -5
- package/test/setup/load-specs.js +0 -13
- package/test/setup/prepare-test-environment.js +0 -17
- package/test/src/k-provider/ott/be-data.js +0 -3306
- package/test/src/k-provider/ott/media-config-data.js +0 -793
- package/test/src/k-provider/ott/provider-parser.spec.js +0 -30
- package/test/src/k-provider/ott/provider.spec.js +0 -384
- package/test/src/k-provider/ott/services/bookmark-service.spec.js +0 -38
- package/test/src/k-provider/ovp/be-data.js +0 -3932
- package/test/src/k-provider/ovp/external-captions-builder.spec.js +0 -59
- package/test/src/k-provider/ovp/media-config-data.js +0 -1509
- package/test/src/k-provider/ovp/playback-sources-data.js +0 -229
- package/test/src/k-provider/ovp/provider-parser-data.js +0 -142
- package/test/src/k-provider/ovp/provider-parser.spec.js +0 -96
- package/test/src/k-provider/ovp/provider.spec.js +0 -1075
- package/test/src/k-provider/ovp/regex-action-handler-data.js +0 -794
- package/test/src/k-provider/ovp/regex-action-handler.spec.js +0 -93
- package/test/src/k-provider/ovp/services/analytics-service.spec.js +0 -62
- package/test/src/k-provider/ovp/services/stats-service.spec.js +0 -37
- package/test/src/util/param.spec.js +0 -23
- package/webpack.config.js +0 -85
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
finalMediaConfigAllSourcesModified,
|
|
3
|
-
finalMediaConfigPlayManifestSourcesModified,
|
|
4
|
-
mediaConfig,
|
|
5
|
-
responseDataFromBE
|
|
6
|
-
} from './regex-action-handler-data';
|
|
7
|
-
import RegexActionHandler from '../../../../src/k-provider/ovp/regex-action-handler';
|
|
8
|
-
import OVPMediaEntryLoader from '../../../../src/k-provider/ovp/loaders/media-entry-loader';
|
|
9
|
-
import OVPConfiguration from '../../../../src/k-provider/ovp/config';
|
|
10
|
-
|
|
11
|
-
describe('handleRegexAction', function () {
|
|
12
|
-
let data = new Map();
|
|
13
|
-
let mediaEntryLoader;
|
|
14
|
-
let mediaConfigForTest = {...mediaConfig};
|
|
15
|
-
|
|
16
|
-
before(() => {
|
|
17
|
-
mediaEntryLoader = new OVPMediaEntryLoader({entryId: 'a', ks: 'a', redirectFromEntryId: true});
|
|
18
|
-
mediaEntryLoader.response = responseDataFromBE;
|
|
19
|
-
data.set('media', mediaEntryLoader);
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
afterEach(() => {
|
|
23
|
-
RegexActionHandler._isECDNUrlAlive.restore();
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it('should modify all URLs', done => {
|
|
27
|
-
sinon.stub(RegexActionHandler, '_isECDNUrlAlive').callsFake(function () {
|
|
28
|
-
return new Promise(resolve => {
|
|
29
|
-
resolve(true);
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
OVPConfiguration.set({replaceHostOnlyManifestUrls: false});
|
|
33
|
-
mediaConfigForTest = JSON.parse(JSON.stringify({...mediaConfig}));
|
|
34
|
-
RegexActionHandler.handleRegexAction(mediaConfigForTest, data).then(
|
|
35
|
-
mediaConfigRes => {
|
|
36
|
-
try {
|
|
37
|
-
mediaConfigRes.should.deep.eq(finalMediaConfigAllSourcesModified);
|
|
38
|
-
done();
|
|
39
|
-
} catch (err) {
|
|
40
|
-
done(err);
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
err => {
|
|
44
|
-
done(err);
|
|
45
|
-
}
|
|
46
|
-
);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('should modify only the manifest URLs', done => {
|
|
50
|
-
sinon.stub(RegexActionHandler, '_isECDNUrlAlive').callsFake(function () {
|
|
51
|
-
return new Promise(resolve => {
|
|
52
|
-
resolve(true);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
OVPConfiguration.set({replaceHostOnlyManifestUrls: true});
|
|
56
|
-
mediaConfigForTest = JSON.parse(JSON.stringify({...mediaConfig}));
|
|
57
|
-
RegexActionHandler.handleRegexAction(mediaConfigForTest, data).then(
|
|
58
|
-
mediaConfigRes => {
|
|
59
|
-
try {
|
|
60
|
-
mediaConfigRes.should.deep.eq(finalMediaConfigPlayManifestSourcesModified);
|
|
61
|
-
done();
|
|
62
|
-
} catch (err) {
|
|
63
|
-
done(err);
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
err => {
|
|
67
|
-
done(err);
|
|
68
|
-
}
|
|
69
|
-
);
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
it('should not modify the sources URLs', done => {
|
|
73
|
-
sinon.stub(RegexActionHandler, '_isECDNUrlAlive').callsFake(function () {
|
|
74
|
-
return new Promise(resolve => {
|
|
75
|
-
resolve(false);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
mediaConfigForTest = JSON.parse(JSON.stringify({...mediaConfig}));
|
|
79
|
-
RegexActionHandler.handleRegexAction(mediaConfigForTest, data).then(
|
|
80
|
-
mediaConfigRes => {
|
|
81
|
-
try {
|
|
82
|
-
mediaConfigRes.should.deep.eq(mediaConfig);
|
|
83
|
-
done();
|
|
84
|
-
} catch (err) {
|
|
85
|
-
done(err);
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
err => {
|
|
89
|
-
done(err);
|
|
90
|
-
}
|
|
91
|
-
);
|
|
92
|
-
});
|
|
93
|
-
});
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import OVPAnalyticsService from '../../../../../src/k-provider/ovp/services/analytics/analytics-service';
|
|
2
|
-
import RequestBuilder from '../../../../../src/util/request-builder';
|
|
3
|
-
import OVPConfiguration from '../../../../../src/k-provider/ovp/config';
|
|
4
|
-
import {param} from '../../../../../src/util/param';
|
|
5
|
-
|
|
6
|
-
describe('analytics service - trackEvent', function () {
|
|
7
|
-
const ovpParams = OVPConfiguration.get();
|
|
8
|
-
const eventParams = {
|
|
9
|
-
param1: 'param1',
|
|
10
|
-
param2: 'param2',
|
|
11
|
-
param3: 'param3',
|
|
12
|
-
eventType: 1,
|
|
13
|
-
partnerId: 'partnerId',
|
|
14
|
-
entryId: 'entryId',
|
|
15
|
-
sessionId: 'sessionId'
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
it('should be proper values', function () {
|
|
19
|
-
const serviceUrl = 'http://my/url';
|
|
20
|
-
const request = OVPAnalyticsService.trackEvent(serviceUrl, eventParams);
|
|
21
|
-
(request instanceof RequestBuilder).should.be.true;
|
|
22
|
-
request.service.should.be.equal('analytics');
|
|
23
|
-
request.action.should.be.equal('trackEvent');
|
|
24
|
-
request.method.should.be.equal('GET');
|
|
25
|
-
request.url.should.be.equal(serviceUrl + '?service=' + request.service + '&action=' + request.action + '&' + param(request.params));
|
|
26
|
-
request.tag.should.be.equal('analytics-trackEvent');
|
|
27
|
-
request.params.should.deep.equal(Object.assign({}, ovpParams.serviceParams, eventParams));
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
it('should be POST request', function () {
|
|
31
|
-
const serviceUrl = 'http://my/url';
|
|
32
|
-
const request = OVPAnalyticsService.trackEvent(serviceUrl, eventParams, 'POST');
|
|
33
|
-
const {param1, param2, param3} = eventParams;
|
|
34
|
-
const {eventType, partnerId, entryId, sessionId} = eventParams;
|
|
35
|
-
(request instanceof RequestBuilder).should.be.true;
|
|
36
|
-
request.service.should.be.equal('analytics');
|
|
37
|
-
request.action.should.be.equal('trackEvent');
|
|
38
|
-
request.method.should.be.equal('POST');
|
|
39
|
-
request.url.should.be.equal(
|
|
40
|
-
serviceUrl +
|
|
41
|
-
'?service=' +
|
|
42
|
-
request.service +
|
|
43
|
-
'&action=' +
|
|
44
|
-
request.action +
|
|
45
|
-
'&' +
|
|
46
|
-
param({
|
|
47
|
-
eventType,
|
|
48
|
-
partnerId,
|
|
49
|
-
entryId,
|
|
50
|
-
sessionId
|
|
51
|
-
})
|
|
52
|
-
);
|
|
53
|
-
request.tag.should.be.equal('analytics-trackEvent');
|
|
54
|
-
request.params.should.deep.equal(JSON.stringify(Object.assign({}, ovpParams.serviceParams, {param1, param2, param3})));
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
it('should be GET request for non POST method', function () {
|
|
58
|
-
const serviceUrl = 'http://my/url';
|
|
59
|
-
const request = OVPAnalyticsService.trackEvent(serviceUrl, eventParams, 'BLA');
|
|
60
|
-
request.method.should.be.equal('GET');
|
|
61
|
-
});
|
|
62
|
-
});
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import OVPStatsService from '../../../../../src/k-provider/ovp/services/stats/stats-service';
|
|
2
|
-
import RequestBuilder from '../../../../../src/util/request-builder';
|
|
3
|
-
import OVPConfiguration from '../../../../../src/k-provider/ovp/config';
|
|
4
|
-
import {param} from '../../../../../src/util/param';
|
|
5
|
-
|
|
6
|
-
describe('stats service - collect', function () {
|
|
7
|
-
let ovpParams, ks, event;
|
|
8
|
-
const playerVersion = '1.2.3';
|
|
9
|
-
|
|
10
|
-
beforeEach(function () {
|
|
11
|
-
ovpParams = OVPConfiguration.get();
|
|
12
|
-
ks = '1234';
|
|
13
|
-
event = {a: 1};
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
it('should be proper values', function () {
|
|
17
|
-
const serviceUrl = 'http://my/url';
|
|
18
|
-
const request = OVPStatsService.collect(serviceUrl, ks, playerVersion, event);
|
|
19
|
-
(request instanceof RequestBuilder).should.be.true;
|
|
20
|
-
request.service.should.be.equal('stats');
|
|
21
|
-
request.action.should.be.equal('collect');
|
|
22
|
-
request.method.should.be.equal('GET');
|
|
23
|
-
request.url.should.be.equal(serviceUrl + '?service=' + request.service + '&action=' + request.action + '&' + param(request.params));
|
|
24
|
-
request.tag.should.be.equal('stats-collect');
|
|
25
|
-
request.params.should.deep.equal(
|
|
26
|
-
Object.assign(
|
|
27
|
-
{},
|
|
28
|
-
ovpParams.serviceParams,
|
|
29
|
-
{
|
|
30
|
-
ks: ks,
|
|
31
|
-
clientTag: 'html5:v' + playerVersion
|
|
32
|
-
},
|
|
33
|
-
event
|
|
34
|
-
)
|
|
35
|
-
);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import {param} from '../../../src/util/param';
|
|
2
|
-
|
|
3
|
-
describe('param', function () {
|
|
4
|
-
it('should parse object to query params', function () {
|
|
5
|
-
let obj = {
|
|
6
|
-
a: 'literal',
|
|
7
|
-
obj: {
|
|
8
|
-
b: 'canon-literal',
|
|
9
|
-
canon_array: [1, 2]
|
|
10
|
-
},
|
|
11
|
-
array: ['c', 3, {d: 4}]
|
|
12
|
-
};
|
|
13
|
-
let query_params_str = param(obj);
|
|
14
|
-
let query_params_arr = decodeURIComponent(query_params_str).split('&');
|
|
15
|
-
query_params_arr[0].should.equal('a=literal');
|
|
16
|
-
query_params_arr[1].should.equal('obj:b=canon-literal');
|
|
17
|
-
query_params_arr[2].should.equal('obj:canon_array:=1');
|
|
18
|
-
query_params_arr[3].should.equal('obj:canon_array:=2');
|
|
19
|
-
query_params_arr[4].should.equal('array:=c');
|
|
20
|
-
query_params_arr[5].should.equal('array:=3');
|
|
21
|
-
query_params_arr[6].should.equal('array:2:d=4');
|
|
22
|
-
});
|
|
23
|
-
});
|
package/webpack.config.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const clone = require('clone');
|
|
4
|
-
const webpack = require('webpack');
|
|
5
|
-
const path = require('path');
|
|
6
|
-
const packageData = require('./package.json');
|
|
7
|
-
|
|
8
|
-
let plugins = [
|
|
9
|
-
new webpack.DefinePlugin({
|
|
10
|
-
__VERSION__: JSON.stringify(packageData.version),
|
|
11
|
-
__NAME__: JSON.stringify(packageData.name)
|
|
12
|
-
})
|
|
13
|
-
];
|
|
14
|
-
|
|
15
|
-
const baseConfig = {
|
|
16
|
-
context: __dirname + '/src',
|
|
17
|
-
entry: {},
|
|
18
|
-
output: {
|
|
19
|
-
path: path.join(__dirname, 'dist'),
|
|
20
|
-
libraryTarget: 'umd',
|
|
21
|
-
devtoolModuleFilenameTemplate: './providers/[resource-path]'
|
|
22
|
-
},
|
|
23
|
-
devtool: 'source-map',
|
|
24
|
-
plugins: plugins,
|
|
25
|
-
module: {
|
|
26
|
-
rules: [
|
|
27
|
-
{
|
|
28
|
-
test: /\.js$/,
|
|
29
|
-
use: [
|
|
30
|
-
{
|
|
31
|
-
loader: 'babel-loader'
|
|
32
|
-
}
|
|
33
|
-
],
|
|
34
|
-
exclude: [/node_modules/]
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
test: /\.js$/,
|
|
38
|
-
exclude: [/node_modules/],
|
|
39
|
-
enforce: 'pre',
|
|
40
|
-
use: [
|
|
41
|
-
{
|
|
42
|
-
loader: 'eslint-loader',
|
|
43
|
-
options: {
|
|
44
|
-
rules: {
|
|
45
|
-
semi: 0
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
}
|
|
51
|
-
]
|
|
52
|
-
},
|
|
53
|
-
devServer: {
|
|
54
|
-
contentBase: __dirname + '/src'
|
|
55
|
-
},
|
|
56
|
-
resolve: {
|
|
57
|
-
modules: [path.resolve(__dirname, 'src'), 'node_modules']
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
const providersConfig = clone(baseConfig);
|
|
62
|
-
const servicesConfig = clone(baseConfig);
|
|
63
|
-
|
|
64
|
-
Object.assign(providersConfig.entry, {
|
|
65
|
-
ott: 'k-provider/ott/index.js',
|
|
66
|
-
ovp: 'k-provider/ovp/index.js'
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
Object.assign(providersConfig.output, {
|
|
70
|
-
filename: 'playkit-[name]-provider.js',
|
|
71
|
-
library: ['playkit', 'providers', '[name]']
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
Object.assign(servicesConfig.entry, {
|
|
75
|
-
analytics: 'k-provider/ovp/services/analytics/index.js',
|
|
76
|
-
stats: 'k-provider/ovp/services/stats/index.js',
|
|
77
|
-
bookmark: 'k-provider/ott/services/bookmark/index.js'
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
Object.assign(servicesConfig.output, {
|
|
81
|
-
filename: 'playkit-[name]-service.js',
|
|
82
|
-
library: ['playkit', 'services', '[name]']
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
module.exports = [providersConfig, servicesConfig];
|