@tivio/sdk-js 2.3.1 → 2.3.3-beta.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +17 -1
- package/dist/index.d.ts +2359 -7
- package/dist/index.js +1 -1
- package/dist/index.js.LICENSE.txt +1457 -6
- package/dist/sdk-js.d.ts +2367 -0
- package/package.json +18 -22
- package/scripts/typesRollup.ts +28 -0
- package/dist/api.types.d.ts +0 -303
- package/dist/conf.d.ts +0 -59
- package/dist/conf.test.d.ts +0 -1
- package/dist/customPlayer.types.d.ts +0 -36
- package/dist/services/bundleLoader.d.ts +0 -29
- package/dist/services/bundleLoader.test.d.ts +0 -1
- package/dist/services/dependencyResolver.d.ts +0 -12
- package/dist/services/dependencyResolver.test.d.ts +0 -1
- package/dist/services/getProgramTimestamps.d.ts +0 -6
- package/dist/services/logger.d.ts +0 -28
- package/dist/services/logger.test.d.ts +0 -1
- package/dist/services/packageLoader.d.ts +0 -6
- package/dist/services/packageLoader.test.d.ts +0 -1
- package/dist/services/playerWrapper.d.ts +0 -28
- package/dist/services/playerWrapperInternal.d.ts +0 -28
- package/dist/services/settings.d.ts +0 -17
- package/dist/services/settings.test.d.ts +0 -1
- package/dist/setupTests.d.ts +0 -20
- package/dist/types.d.ts +0 -12
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@tivio/sdk-js",
|
3
|
-
"version": "2.3.
|
3
|
+
"version": "2.3.3-beta.0",
|
4
4
|
"main": "dist/index.js",
|
5
5
|
"typings": "dist/index.d.ts",
|
6
6
|
"source": "src/index.ts",
|
@@ -9,42 +9,38 @@
|
|
9
9
|
"access": "public"
|
10
10
|
},
|
11
11
|
"scripts": {
|
12
|
-
"build": "
|
13
|
-
"
|
14
|
-
"
|
12
|
+
"build": "yarn clean && webpack",
|
13
|
+
"build:prod": "cat ./.env.prod > ./.env && yarn build --config=webpack.config.prod.js && yarn typesRollup",
|
14
|
+
"build:dev": "cat ./.env.dev > ./.env && yarn build --config=webpack.config.dev.js && yarn typesRollup",
|
15
|
+
"test": "yarn jest --config=./jest.config.js",
|
15
16
|
"start": "webpack -w",
|
16
17
|
"clean": "rm -rf dist",
|
17
|
-
"prepublishOnly": "yarn && rm -rf ./dist && yarn
|
18
|
+
"prepublishOnly": "yarn && rm -rf ./dist && yarn build:prod",
|
19
|
+
"typesRollup": "yarn ts-node ./scripts/typesRollup.ts"
|
18
20
|
},
|
19
21
|
"dependencies": {
|
20
22
|
"@sentry/browser": "^6.1.0",
|
23
|
+
"@tivio/common": "*",
|
21
24
|
"core-js": "^3.21.0",
|
22
|
-
"firebase": "^8.2.3",
|
23
25
|
"mobx": "^6.0.4",
|
24
26
|
"whatwg-fetch": "^3.6.2"
|
25
27
|
},
|
26
28
|
"devDependencies": {
|
27
|
-
"@
|
28
|
-
"@types
|
29
|
+
"@microsoft/api-extractor": "^7.39.1",
|
30
|
+
"@tivio/types": "*",
|
31
|
+
"@types/jest": "^27.5.2",
|
29
32
|
"@types/node": "^14.14.21",
|
30
33
|
"@types/node-fetch": "^2.5.8",
|
31
|
-
"@typescript-eslint/eslint-plugin": "^
|
32
|
-
"@typescript-eslint/parser": "^
|
34
|
+
"@typescript-eslint/eslint-plugin": "^5.30.5",
|
35
|
+
"@typescript-eslint/parser": "^5.30.5",
|
33
36
|
"check-es5-webpack-plugin": "^1.0.13",
|
34
|
-
"dotenv": "^
|
37
|
+
"dotenv": "^9.0.0",
|
35
38
|
"dotenv-webpack": "^7.0.3",
|
36
|
-
"eslint": "^7.19.0",
|
37
39
|
"fork-ts-checker-webpack-plugin": "^7.0.0",
|
38
|
-
"jest": "^
|
39
|
-
"jest-cli": "^
|
40
|
+
"jest": "^27.5.1",
|
41
|
+
"jest-cli": "^27.5.1",
|
40
42
|
"jest-fetch-mock": "^3.0.3",
|
41
|
-
"
|
42
|
-
"
|
43
|
-
"timers-browserify": "^2.0.12",
|
44
|
-
"ts-jest": "^26.4.4",
|
45
|
-
"typescript": "^4.0.2",
|
46
|
-
"webpack": "^5.15.0",
|
47
|
-
"webpack-cli": "^4.4.0",
|
48
|
-
"webpack-merge": "^5.7.3"
|
43
|
+
"ts-jest": "^27.1.5",
|
44
|
+
"typescript": "^5"
|
49
45
|
}
|
50
46
|
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
/**
|
2
|
+
* Script for rollup all types into one file.
|
3
|
+
*/
|
4
|
+
import path from 'path'
|
5
|
+
|
6
|
+
import { Extractor, ExtractorConfig } from '@microsoft/api-extractor'
|
7
|
+
import { execCommand } from '@tivio/build-utils'
|
8
|
+
|
9
|
+
|
10
|
+
const apiExtractorJsonPath: string = path.join(__dirname, '../api-extractor.json')
|
11
|
+
const extractorConfig = ExtractorConfig.loadFileAndPrepare(apiExtractorJsonPath)
|
12
|
+
|
13
|
+
// Invoke API Extractor
|
14
|
+
const extractorResult = Extractor.invoke(extractorConfig, {
|
15
|
+
localBuild: true,
|
16
|
+
showVerboseMessages: false,
|
17
|
+
})
|
18
|
+
|
19
|
+
if (extractorResult.succeeded) {
|
20
|
+
// Delete original .d.ts files after successful rollup
|
21
|
+
execCommand('rm -rf ./dist/distTypes')
|
22
|
+
console.log('API Extractor completed successfully')
|
23
|
+
process.exitCode = 0
|
24
|
+
} else {
|
25
|
+
console.error(`API Extractor completed with ${extractorResult.errorCount} errors`
|
26
|
+
+ ` and ${extractorResult.warningCount} warnings`)
|
27
|
+
process.exitCode = 1
|
28
|
+
}
|
package/dist/api.types.d.ts
DELETED
@@ -1,303 +0,0 @@
|
|
1
|
-
import type { Video, SubscribeToScreen, SubscribeToItemsInRow } from '@tivio/common';
|
2
|
-
declare type Language = 'cs' | 'en' | 'sk' | 'de' | 'pl';
|
3
|
-
declare type Widget = {
|
4
|
-
channels: Channel[];
|
5
|
-
isEnabled: boolean | null;
|
6
|
-
name: string | null;
|
7
|
-
recentVideos: Video[] | null;
|
8
|
-
widgetId: string | null;
|
9
|
-
};
|
10
|
-
declare type Channel = {
|
11
|
-
name: string;
|
12
|
-
header: string;
|
13
|
-
headerLogo: string;
|
14
|
-
recentVideos: Video[];
|
15
|
-
};
|
16
|
-
declare type Section = {
|
17
|
-
name: string;
|
18
|
-
channel: Channel;
|
19
|
-
videos: Video[];
|
20
|
-
};
|
21
|
-
declare type Player = {
|
22
|
-
ad: any;
|
23
|
-
currentTime: any;
|
24
|
-
adSegment: any;
|
25
|
-
event: any;
|
26
|
-
events: any;
|
27
|
-
source: any;
|
28
|
-
state: any;
|
29
|
-
onPlaybackEnded: any;
|
30
|
-
onSourceChanged: any;
|
31
|
-
onStateChanged: any;
|
32
|
-
onTimeChanged: any;
|
33
|
-
pause: any;
|
34
|
-
play: any;
|
35
|
-
togglePlayPause: any;
|
36
|
-
register: any;
|
37
|
-
seekTo: any;
|
38
|
-
setVolume: any;
|
39
|
-
triggerEvent: any;
|
40
|
-
};
|
41
|
-
declare type SourceBase = {
|
42
|
-
/**
|
43
|
-
* Tivio SDK users may use pretty complicated source objects in their existing code and if Tivio player
|
44
|
-
* is an interception layer, it should allow them to pass through any type of object.
|
45
|
-
*/
|
46
|
-
additionalPayload?: Record<string, any>;
|
47
|
-
/**
|
48
|
-
* Source type.
|
49
|
-
*/
|
50
|
-
type: 'ad' | 'live_tv_channel' | 'other' | 'tivio_vod' | 'tv_program';
|
51
|
-
/**
|
52
|
-
* URI to play.
|
53
|
-
*/
|
54
|
-
uri: string;
|
55
|
-
};
|
56
|
-
declare type StartAndContinuePosition = {
|
57
|
-
/**
|
58
|
-
* Relative from stream start, in ms.
|
59
|
-
* Should be always provided except continueFromPosition is present.
|
60
|
-
* Tivio can correct this value to the real program start position.
|
61
|
-
*/
|
62
|
-
startFromPosition?: number;
|
63
|
-
/**
|
64
|
-
* Relative from stream start, in ms.
|
65
|
-
* If provided, tivio will not correct it and will send this value back in startFromPosition.
|
66
|
-
* If provided, startFromPosition is ignored.
|
67
|
-
*/
|
68
|
-
continueFromPosition?: number;
|
69
|
-
};
|
70
|
-
declare type TvProgramSource = SourceBase & StartAndContinuePosition & {
|
71
|
-
type: 'tv_program';
|
72
|
-
/**
|
73
|
-
* If epgTo is wrong, Tivio cannot correctly guess if the video it startover or timeshift . For such cases
|
74
|
-
* Tivio needs explicit tv mode.
|
75
|
-
* null if source begins in the future.
|
76
|
-
*/
|
77
|
-
tvMode: 'startover' | 'timeshift' | null;
|
78
|
-
/**
|
79
|
-
* Tivio needs channel name in order to load markers.
|
80
|
-
*/
|
81
|
-
channelName: string;
|
82
|
-
/**
|
83
|
-
* Tivio needs EPG from in order to load markers.
|
84
|
-
*/
|
85
|
-
epgFrom: Date;
|
86
|
-
/**
|
87
|
-
* Tivio needs EPG to in order to load markers.
|
88
|
-
*/
|
89
|
-
epgTo: Date;
|
90
|
-
/**
|
91
|
-
* When the stream (provided in uri) really starts - typically few minutes before epgFrom.
|
92
|
-
*/
|
93
|
-
streamStart: Date;
|
94
|
-
};
|
95
|
-
declare type TivioVodSource = SourceBase & StartAndContinuePosition & {
|
96
|
-
type: 'tivio_vod';
|
97
|
-
/**
|
98
|
-
* Allows Tivio to load monetization config an apply ads.
|
99
|
-
*/
|
100
|
-
videoPath: string;
|
101
|
-
};
|
102
|
-
declare type AdSource = SourceBase & {
|
103
|
-
type: 'ad';
|
104
|
-
};
|
105
|
-
/**
|
106
|
-
* If Tivio PlayerWrapper is an interception layer, it should allow the pass-through
|
107
|
-
* of not just Tivio source types but any other source types that the 3rd party app may be using.
|
108
|
-
*/
|
109
|
-
declare type OtherSource = SourceBase & StartAndContinuePosition & {
|
110
|
-
type: 'other';
|
111
|
-
};
|
112
|
-
/**
|
113
|
-
* Not supported yet, now it does pass-through only.
|
114
|
-
*/
|
115
|
-
declare type LiveTvChannelSource = SourceBase & StartAndContinuePosition & {
|
116
|
-
type: 'live_tv_channel';
|
117
|
-
/**
|
118
|
-
* Tivio needs channel name in order to load markers.
|
119
|
-
*/
|
120
|
-
channelName: string;
|
121
|
-
};
|
122
|
-
declare type Source = TvProgramSource | TivioVodSource | AdSource | OtherSource | LiveTvChannelSource;
|
123
|
-
declare type AdMetadata = {
|
124
|
-
type: 'ad';
|
125
|
-
subType: 'inserted' | 'original';
|
126
|
-
secondsToEnd: number;
|
127
|
-
/**
|
128
|
-
* null when ad is not skippable
|
129
|
-
*/
|
130
|
-
secondsToSkippable: number | null;
|
131
|
-
canTriggerSkip: boolean;
|
132
|
-
isSkippable: boolean;
|
133
|
-
order: number | null;
|
134
|
-
totalCount: number | null;
|
135
|
-
skip: () => void;
|
136
|
-
} | null;
|
137
|
-
interface Marker {
|
138
|
-
id: string;
|
139
|
-
from: Date;
|
140
|
-
to: Date;
|
141
|
-
relativeFromMs: number;
|
142
|
-
relativeToMs: number;
|
143
|
-
type: 'AD' | 'AD_SEGMENT' | 'START' | 'END' | 'INTRO';
|
144
|
-
}
|
145
|
-
declare enum PlayerWrapperEventType {
|
146
|
-
adMetadata = "adMetadata",
|
147
|
-
markers = "markers"
|
148
|
-
}
|
149
|
-
declare type PlayerWrapperEventTypeType = `${PlayerWrapperEventType}`;
|
150
|
-
declare type ListenerAdMetadata = (metadata: AdMetadata) => void;
|
151
|
-
declare type ListenerMarkers = (marker: Marker[] | null) => void;
|
152
|
-
declare type Listener = ListenerAdMetadata | ListenerMarkers;
|
153
|
-
interface TivioPlayerWrapper {
|
154
|
-
addEventListener: (eventType: PlayerWrapperEventTypeType, listener: Listener) => void;
|
155
|
-
reportError: (error: Error) => void;
|
156
|
-
reportPlaybackEnded: () => void;
|
157
|
-
reportTimeProgress: (ms: number) => void;
|
158
|
-
seekTo: (ms: number) => void;
|
159
|
-
/**
|
160
|
-
* @param {Source} source - source to set
|
161
|
-
* @param {string} calibrationId - id of calibration profile
|
162
|
-
*/
|
163
|
-
setSource: (source: Source | null, calibrationId?: string) => void;
|
164
|
-
}
|
165
|
-
interface PlayerInterfaceForPlayerWrapper {
|
166
|
-
/**
|
167
|
-
* @param {number} ms - milliseconds relative to start of video (relative to 0 ms)
|
168
|
-
* or in case of TV programs relative to start of the program (relative to source.from ms)
|
169
|
-
*/
|
170
|
-
seekTo: (ms: number) => void;
|
171
|
-
setSource: (source: Source | null) => void;
|
172
|
-
}
|
173
|
-
declare type ExposedApi = {
|
174
|
-
AdSource: any;
|
175
|
-
ChannelSource: any;
|
176
|
-
VodTivioSource: any;
|
177
|
-
/**
|
178
|
-
* Get channel by its id.
|
179
|
-
* @param channelId - channel id
|
180
|
-
* @returns {Promise<Channel | null>} channel or null if channel does not exists
|
181
|
-
*/
|
182
|
-
getChannelById: (channelId: string) => Promise<Channel | null>;
|
183
|
-
/**
|
184
|
-
* Get (or create) player wrapper instance
|
185
|
-
* @param id - player wrapper id
|
186
|
-
* @returns {Player} player wrapper instance
|
187
|
-
*/
|
188
|
-
getPlayer: (id: string) => Player;
|
189
|
-
/**
|
190
|
-
* Get section by its id.
|
191
|
-
* @param sectionId - section id
|
192
|
-
* @returns {Promise<{section: Section, channel: Channel} | null>} section and channel or null if channel or section does not exists
|
193
|
-
*/
|
194
|
-
getSectionById: (sectionId: string) => Promise<Section | null>;
|
195
|
-
/**
|
196
|
-
* Get video by its id.
|
197
|
-
* @param videoId - video id
|
198
|
-
* @returns {Promise<Video | null>} video or null if video does not exists
|
199
|
-
*/
|
200
|
-
getVideoById: (videoId: string) => Promise<Video | null>;
|
201
|
-
/**
|
202
|
-
* Get widget by its id.
|
203
|
-
* @param widgetId - widget id
|
204
|
-
* @returns {Promise<Widget | null>} widget or null if widget does not exists
|
205
|
-
*/
|
206
|
-
getWidgetById: (widgetId: string) => Promise<Widget | null>;
|
207
|
-
/**
|
208
|
-
* Set tivio language.
|
209
|
-
* @param language
|
210
|
-
*/
|
211
|
-
setLanguage: (language: Language) => void;
|
212
|
-
/**
|
213
|
-
* Set user.
|
214
|
-
* @param userId
|
215
|
-
* @param payload
|
216
|
-
* @param additionalUserData
|
217
|
-
*/
|
218
|
-
setUser: (userId: string, payload: unknown, additionalUserData?: unknown) => Promise<void>;
|
219
|
-
/**
|
220
|
-
* Listen to widget changes.
|
221
|
-
* @param widgetId - widget id
|
222
|
-
* @param cb - callback on widget updates or on error
|
223
|
-
*/
|
224
|
-
subscribeToWidget: (widgetId: string, cb: (error: Error | null, data: Widget | null) => void) => void;
|
225
|
-
/**
|
226
|
-
* Listen to channel changes.
|
227
|
-
* @param channelId - channel id
|
228
|
-
* @param cb - callback on channel updates or on error
|
229
|
-
*/
|
230
|
-
subscribeToChannel: (channelId: string, cb: (error: Error | null, data: Channel | null) => void) => void;
|
231
|
-
/**
|
232
|
-
* Listen to section changes.
|
233
|
-
* @param sectionId - section id
|
234
|
-
* @param cb - callback on section updates or on error
|
235
|
-
*/
|
236
|
-
subscribeToSection: (sectionId: string, cb: (error: Error | null, data: Section | null) => void) => void;
|
237
|
-
/**
|
238
|
-
* Listen to video changes.
|
239
|
-
* @param videoId - video id
|
240
|
-
* @param cb - callback on video updates or on error
|
241
|
-
*/
|
242
|
-
subscribeToVideo: (videoId: string, cb: (error: Error | null, data: Video | null) => void) => void;
|
243
|
-
/**
|
244
|
-
* Listen to videos in section changes.
|
245
|
-
* @param channelId - channel id
|
246
|
-
* @param sectionId - section id
|
247
|
-
* @param cb - callback on videos change or error
|
248
|
-
* @param limit - videos count
|
249
|
-
*/
|
250
|
-
subscribeToVideosInSection: (sectionId: string, cb: (error: null | Error, data: null | {
|
251
|
-
videos: Video[];
|
252
|
-
hasNextPage: boolean;
|
253
|
-
}, fetchMore: null | ((count?: number) => void)) => void, limit?: number) => void;
|
254
|
-
/**
|
255
|
-
* Listen to section in channel changes
|
256
|
-
* @param channelId - channel id
|
257
|
-
* @param cb - callback on sections change or error
|
258
|
-
* @param limit - sections count
|
259
|
-
*/
|
260
|
-
subscribeToSectionsInChannel: (channelId: string, cb: (error: null | Error, data: null | {
|
261
|
-
sections: Section[];
|
262
|
-
hasNextPage: boolean;
|
263
|
-
}, fetchMore: null | ((count?: number) => void)) => void, limit?: number) => void;
|
264
|
-
/**
|
265
|
-
* Listen to channels in widget changes
|
266
|
-
* @param widgetId - widget id
|
267
|
-
* @param cb - callback on channels change or error
|
268
|
-
* @param limit - channels count
|
269
|
-
*/
|
270
|
-
subscribeToChannelsInWidget: (widgetId: string, cb: (error: null | Error, data: null | {
|
271
|
-
channels: Channel[];
|
272
|
-
hasNextPage: boolean;
|
273
|
-
}, fetchMore: null | ((count?: number) => void)) => void, limit?: number) => void;
|
274
|
-
/**
|
275
|
-
* @param screenId - screen id
|
276
|
-
* @param cb - callback on screen or error
|
277
|
-
* @param options - additional options
|
278
|
-
*/
|
279
|
-
subscribeToScreen: SubscribeToScreen;
|
280
|
-
/**
|
281
|
-
* @param rowId - screen id
|
282
|
-
* @param cb - callback on items or error
|
283
|
-
* @param options - additional options
|
284
|
-
*/
|
285
|
-
subscribeToItemsInRow: SubscribeToItemsInRow;
|
286
|
-
/**
|
287
|
-
* @param email
|
288
|
-
* @param password
|
289
|
-
*/
|
290
|
-
createUserWithEmailAndPassword: (email: string, password: string) => Promise<void>;
|
291
|
-
/**
|
292
|
-
* Sign in the user and starts listening on his purchases
|
293
|
-
* @param email
|
294
|
-
* @param password
|
295
|
-
*/
|
296
|
-
signInWithEmailAndPassword: (email: string, password: string) => Promise<void>;
|
297
|
-
createPlayerWrapper: (playerImplementation: PlayerInterfaceForPlayerWrapper) => TivioPlayerWrapper;
|
298
|
-
getProgramTimestamps: (channelName: string, epgFrom: Date, epgTo: Date) => Promise<{
|
299
|
-
startTimestamp?: number;
|
300
|
-
endTimestamp?: number;
|
301
|
-
} | null>;
|
302
|
-
};
|
303
|
-
export { AdMetadata, AdSource, ExposedApi, LiveTvChannelSource, OtherSource, PlayerInterfaceForPlayerWrapper, PlayerWrapperEventType, PlayerWrapperEventTypeType, Source, TivioPlayerWrapper, TivioVodSource, TvProgramSource, Marker, ListenerAdMetadata, ListenerMarkers, Listener, };
|
package/dist/conf.d.ts
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright (c) 2021, nangu.TV, a.s. All rights reserved.
|
3
|
-
* nangu.TV, a.s PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
4
|
-
*/
|
5
|
-
import { Logger } from './services/logger';
|
6
|
-
import { FetchPackage } from './services/packageLoader';
|
7
|
-
import { Conf as ExternalConf } from './types';
|
8
|
-
export interface PlayerCapability {
|
9
|
-
codec: 'h264' | 'h265';
|
10
|
-
encryption: 'fairplay' | 'none' | 'playready' | 'widevine';
|
11
|
-
protocol: 'dash' | 'hls';
|
12
|
-
}
|
13
|
-
export declare type InternalConf = {
|
14
|
-
/**
|
15
|
-
* @private URL of remote code bundle to be fetched directly (without using resolver)
|
16
|
-
*/
|
17
|
-
bundleUrlOverride?: string;
|
18
|
-
/**
|
19
|
-
* Tells Tivio which technologies/protocols etc. is the device capable to play.
|
20
|
-
* If not provided, Tivio will try to guess it (based on the browser).
|
21
|
-
*/
|
22
|
-
deviceCapabilities?: PlayerCapability[];
|
23
|
-
/**
|
24
|
-
* Additional options for deviceCapabilities
|
25
|
-
*/
|
26
|
-
capabilitiesOptions?: {
|
27
|
-
/**
|
28
|
-
* Should the player prefer HTTP sources instead HTTPs if they are available.
|
29
|
-
* This can be used on platforms that support mixed content but do not support
|
30
|
-
* specific HTTPS certificates. (e.g. certificates from Letsencrypt not supported on LG TVs)
|
31
|
-
*/
|
32
|
-
preferHttp?: boolean;
|
33
|
-
};
|
34
|
-
secret: string;
|
35
|
-
resolverUrl: string;
|
36
|
-
logger?: Logger | null;
|
37
|
-
fetchPackage: FetchPackage;
|
38
|
-
language?: string;
|
39
|
-
sdkVersion: string;
|
40
|
-
/**
|
41
|
-
* Can force using bundle resolver method which doesn't depend on indexedDB (useful when some polyfill
|
42
|
-
* for indexedDB is used but indexedDB is not fully supported - it leads to situation where check for indexedDB
|
43
|
-
* presence passes but resolver fails anyway).
|
44
|
-
*/
|
45
|
-
forceCloudFnResolver?: boolean;
|
46
|
-
/**
|
47
|
-
* Can turn off Tivio's Sentry logging, defaults to true.
|
48
|
-
*/
|
49
|
-
enableSentry?: boolean;
|
50
|
-
/**
|
51
|
-
* Can turn on Tivio's console logging, defaults to false.
|
52
|
-
*/
|
53
|
-
verbose?: boolean;
|
54
|
-
};
|
55
|
-
export declare const defaultConf: {
|
56
|
-
resolverUrl: string;
|
57
|
-
fetchPackage: FetchPackage;
|
58
|
-
};
|
59
|
-
export declare const createInternalConf: (conf: ExternalConf) => InternalConf;
|
package/dist/conf.test.d.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
import './setupTests';
|
@@ -1,36 +0,0 @@
|
|
1
|
-
import type { Empty } from './types';
|
2
|
-
interface BasicSource {
|
3
|
-
description: string;
|
4
|
-
name: string;
|
5
|
-
uri: string;
|
6
|
-
type: 'AD' | 'VOD' | 'CHANNEL';
|
7
|
-
}
|
8
|
-
interface ChannelSource extends BasicSource {
|
9
|
-
from: Date;
|
10
|
-
channelName: string;
|
11
|
-
to: Date;
|
12
|
-
type: 'CHANNEL';
|
13
|
-
}
|
14
|
-
interface AdSource extends BasicSource {
|
15
|
-
durationMs: number;
|
16
|
-
skipDelayMs: number | null;
|
17
|
-
type: 'AD';
|
18
|
-
}
|
19
|
-
interface VodSource extends BasicSource {
|
20
|
-
type: 'VOD';
|
21
|
-
}
|
22
|
-
export declare type InputSource = AdSource | ChannelSource | VodSource;
|
23
|
-
export declare type PlayerInterface = {
|
24
|
-
play: () => Empty;
|
25
|
-
pause: () => Empty;
|
26
|
-
seekTo: (positionMs: number) => Empty;
|
27
|
-
setSource: (source: InputSource | null) => Empty;
|
28
|
-
setVolume: (volume: number) => Empty;
|
29
|
-
};
|
30
|
-
export declare type PlayerWrapper = {
|
31
|
-
events: {
|
32
|
-
addListener: <T = any>(event: string, cb: (value: T) => Empty) => Empty;
|
33
|
-
removeAllListeners: () => Empty;
|
34
|
-
};
|
35
|
-
};
|
36
|
-
export {};
|
@@ -1,29 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright (c) 2021, nangu.TV, a.s. All rights reserved.
|
3
|
-
* nangu.TV, a.s PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
4
|
-
*/
|
5
|
-
import { InternalConf } from '../conf';
|
6
|
-
import { Conf } from '../types';
|
7
|
-
import { Settings } from './settings';
|
8
|
-
import type { ExposedApi } from '../api.types';
|
9
|
-
export declare type RemoteProviderProps = {
|
10
|
-
language?: string;
|
11
|
-
};
|
12
|
-
export declare type TivioBundle = {
|
13
|
-
init: (config: Conf) => void | Promise<void>;
|
14
|
-
setUser: (userId: string, payload: unknown, additionalUserData?: unknown) => void;
|
15
|
-
} & ExposedApi;
|
16
|
-
export declare type RemoteBundleState = {
|
17
|
-
state: 'loading' | 'error' | 'ready';
|
18
|
-
error: string | null;
|
19
|
-
conf: InternalConf;
|
20
|
-
settings: Settings;
|
21
|
-
} & Omit<Partial<ExposedApi>, 'createPlayerWrapper'>;
|
22
|
-
export declare type Api = RemoteBundleState;
|
23
|
-
export declare const fetchBundleViaResolver: (conf: InternalConf) => Promise<string>;
|
24
|
-
/**
|
25
|
-
* Fetch & load CommonJS remote module.
|
26
|
-
*/
|
27
|
-
export declare const createRemotePackageLoader: () => (conf: InternalConf) => Promise<TivioBundle>;
|
28
|
-
export declare let tivioBundle: RemoteBundleState | null;
|
29
|
-
export declare const createTivio: () => (conf: Conf) => Promise<RemoteBundleState>;
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,12 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright (c) 2021, nangu.TV, a.s. All rights reserved.
|
3
|
-
* nangu.TV, a.s PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
4
|
-
*/
|
5
|
-
/// <reference types="node" />
|
6
|
-
import firebase from 'firebase/app';
|
7
|
-
import 'firebase/auth';
|
8
|
-
import 'firebase/firestore';
|
9
|
-
import * as mobx from 'mobx';
|
10
|
-
import * as timers from 'timers';
|
11
|
-
export declare type SharedDependency = typeof mobx | typeof firebase | typeof timers | null;
|
12
|
-
export declare const resolveShared: (name: string) => SharedDependency;
|
@@ -1 +0,0 @@
|
|
1
|
-
import '../setupTests';
|
@@ -1,28 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright (c) 2021, nangu.TV, a.s. All rights reserved.
|
3
|
-
* nangu.TV, a.s PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
4
|
-
*/
|
5
|
-
export declare type LoggerArgs = any[];
|
6
|
-
export interface Logger {
|
7
|
-
/** important messages */
|
8
|
-
warn(...data: LoggerArgs): void;
|
9
|
-
/** errors */
|
10
|
-
error(...data: LoggerArgs): void;
|
11
|
-
/** critical errors */
|
12
|
-
exception(...data: LoggerArgs): void;
|
13
|
-
/** metrics */
|
14
|
-
info(...data: LoggerArgs): void;
|
15
|
-
/** non-production messages */
|
16
|
-
debug(...data: LoggerArgs): void;
|
17
|
-
}
|
18
|
-
export declare type LoggerConf = {
|
19
|
-
isConsoleEnabled: boolean;
|
20
|
-
isSentryEnabled?: boolean;
|
21
|
-
};
|
22
|
-
declare type LogLevel = 'warn' | 'error' | 'info' | 'debug';
|
23
|
-
export declare type Severity = LogLevel | 'exception';
|
24
|
-
/**
|
25
|
-
* Factory
|
26
|
-
**/
|
27
|
-
export declare const createLogger: (conf: LoggerConf) => Logger;
|
28
|
-
export {};
|
@@ -1 +0,0 @@
|
|
1
|
-
import '../setupTests';
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,28 +0,0 @@
|
|
1
|
-
import { InternalPlayerWrapper } from './playerWrapperInternal';
|
2
|
-
import type { ListenerAdMetadata, ListenerMarkers, PlayerInterfaceForPlayerWrapper, Source, TivioPlayerWrapper } from '../api.types';
|
3
|
-
import type { CreatePlayerWrapperType } from './playerWrapperInternal';
|
4
|
-
/**
|
5
|
-
* Player wrapper which instances are exposed to SDK user.
|
6
|
-
*/
|
7
|
-
export declare class PlayerWrapper implements TivioPlayerWrapper {
|
8
|
-
private internalPlayerWrapper;
|
9
|
-
constructor(internalPlayerWrapper: InternalPlayerWrapper);
|
10
|
-
addEventListener(eventType: 'adMetadata', listener: ListenerAdMetadata): void;
|
11
|
-
addEventListener(eventType: 'markers', listener: ListenerMarkers): void;
|
12
|
-
reportError(error: Error): void;
|
13
|
-
reportPlaybackEnded(): void;
|
14
|
-
reportTimeProgress(ms: number): void;
|
15
|
-
seekTo(ms: number): void;
|
16
|
-
setSource(source: Source | null, calibrationId?: string): void;
|
17
|
-
}
|
18
|
-
/**
|
19
|
-
* Called when tivio is initialized (remote bundle is ready).
|
20
|
-
*
|
21
|
-
* @param {CreatePlayerWrapperType} createPlayerWrapperFromCoreJs - functions which creates player wrapper in core-js
|
22
|
-
*/
|
23
|
-
export declare const onCreatePlayerWrapperReady: (createPlayerWrapperFromCoreJs: CreatePlayerWrapperType) => void;
|
24
|
-
/**
|
25
|
-
* @param {PlayerInterfaceForPlayerWrapper} playerImplementation - player implementation
|
26
|
-
* @returns player wrapper instance
|
27
|
-
*/
|
28
|
-
export declare const createPlayerWrapper: (playerImplementation: PlayerInterfaceForPlayerWrapper) => PlayerWrapper;
|
@@ -1,28 +0,0 @@
|
|
1
|
-
import type { Listener, PlayerInterfaceForPlayerWrapper, PlayerWrapperEventTypeType, Source, TivioPlayerWrapper } from '../api.types';
|
2
|
-
export declare type CreatePlayerWrapperType = (playerImplementation: PlayerInterfaceForPlayerWrapper) => TivioPlayerWrapper;
|
3
|
-
/**
|
4
|
-
* Responsible for handling of all player wrapper methods (it's called through PlayerWrapper).
|
5
|
-
* Also handles state when player wrapper from core-js is not ready yet and situation when it becomes ready.
|
6
|
-
*/
|
7
|
-
export declare class InternalPlayerWrapper implements TivioPlayerWrapper {
|
8
|
-
private playerImplementation;
|
9
|
-
private id;
|
10
|
-
corePlayerWrapperInstance: TivioPlayerWrapper | null;
|
11
|
-
listenersWaitingToRegister: {
|
12
|
-
eventType: PlayerWrapperEventTypeType;
|
13
|
-
listener: Listener;
|
14
|
-
}[];
|
15
|
-
constructor(playerImplementation: PlayerInterfaceForPlayerWrapper, id: string);
|
16
|
-
addEventListener(eventType: PlayerWrapperEventTypeType, listener: Listener): void;
|
17
|
-
reportError(error: Error): void;
|
18
|
-
reportPlaybackEnded(): void;
|
19
|
-
reportTimeProgress(ms: number): void;
|
20
|
-
seekTo(ms: number): void;
|
21
|
-
setSource(source: Source | null, calibrationId?: string): void;
|
22
|
-
/**
|
23
|
-
* Set instance of the real player wrapper (from core-js).
|
24
|
-
*
|
25
|
-
* @param createPlayerWrapper - create player wrapper method from core-js
|
26
|
-
*/
|
27
|
-
onPlayerWrapperReady(createPlayerWrapper: CreatePlayerWrapperType): void;
|
28
|
-
}
|