@tivio/sdk-react 3.6.3 → 4.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +47 -0
- package/README.md.bak +47 -0
- package/dist/index.d.ts +566 -343
- package/dist/index.js +1 -1
- package/dist/sdk-react.d.ts +608 -346
- package/package.json +2 -2
- package/doc/changelog.md +0 -0
package/dist/sdk-react.d.ts
CHANGED
@@ -37,6 +37,27 @@ export declare interface AdExternal {
|
|
37
37
|
skip: () => void;
|
38
38
|
}
|
39
39
|
|
40
|
+
/**
|
41
|
+
* @public
|
42
|
+
*/
|
43
|
+
export declare type AdMetadata = {
|
44
|
+
type: 'ad';
|
45
|
+
subType: 'inserted' | 'original';
|
46
|
+
secondsToEnd: number;
|
47
|
+
/**
|
48
|
+
* null when ad is not skippable
|
49
|
+
*/
|
50
|
+
secondsToSkippable: number | null;
|
51
|
+
canTriggerSkip: boolean;
|
52
|
+
isSkippable: boolean;
|
53
|
+
order: number | null;
|
54
|
+
totalCount: number | null;
|
55
|
+
skip: () => void;
|
56
|
+
} | null;
|
57
|
+
|
58
|
+
/**
|
59
|
+
* @public
|
60
|
+
*/
|
40
61
|
declare type AdSegment = {
|
41
62
|
id: string;
|
42
63
|
/**
|
@@ -95,6 +116,13 @@ export declare type AdSource = {
|
|
95
116
|
secondsToSkippable: number | null;
|
96
117
|
};
|
97
118
|
|
119
|
+
/**
|
120
|
+
* @public
|
121
|
+
*/
|
122
|
+
declare type AdSource_2 = SourceBase & {
|
123
|
+
type: 'ad';
|
124
|
+
};
|
125
|
+
|
98
126
|
/**
|
99
127
|
* @public
|
100
128
|
*/
|
@@ -106,6 +134,14 @@ export declare enum ALGOLIA_INDEX_NAME {
|
|
106
134
|
USERS = "users"
|
107
135
|
}
|
108
136
|
|
137
|
+
/**
|
138
|
+
* @public
|
139
|
+
*/
|
140
|
+
export declare type ArrisDeviceInfo = {
|
141
|
+
type: 'arris';
|
142
|
+
model?: 'VIP1003' | 'VIP1113' | 'VIP5305';
|
143
|
+
};
|
144
|
+
|
109
145
|
/**
|
110
146
|
* @public
|
111
147
|
*/
|
@@ -185,11 +221,7 @@ export declare type BannerProps = {
|
|
185
221
|
hoverable: boolean;
|
186
222
|
broadcastInfo: string;
|
187
223
|
height: number;
|
188
|
-
coverPadding: CoverPadding;
|
189
224
|
cover: string;
|
190
|
-
fullWidth: boolean;
|
191
|
-
coverContainerPaddingTop: string;
|
192
|
-
width: number;
|
193
225
|
overlay: boolean;
|
194
226
|
price: string;
|
195
227
|
hasRoundCorners: boolean;
|
@@ -202,39 +234,6 @@ export declare type BannerProps = {
|
|
202
234
|
*/
|
203
235
|
export declare type BannerPropsPartial = Partial<BannerProps>;
|
204
236
|
|
205
|
-
/**
|
206
|
-
* @public
|
207
|
-
*/
|
208
|
-
export declare type BasicTivioBundle = {
|
209
|
-
components: TivioComponents;
|
210
|
-
getters: TivioGetters;
|
211
|
-
auth: TivioAuth;
|
212
|
-
hooks: TivioHooks;
|
213
|
-
sources: TivioSources;
|
214
|
-
subscriptions: TivioSubscriptions;
|
215
|
-
purchaseVideoWithQerko: (videoId: string, monetizationId: string, voucher?: {
|
216
|
-
expirationDate: Date;
|
217
|
-
}) => Promise<QerkoPaymentInfo>;
|
218
|
-
purchaseSubscriptionWithQerko: (monetizationId: string, voucher?: {
|
219
|
-
expirationDate: Date;
|
220
|
-
}) => Promise<QerkoPaymentInfo>;
|
221
|
-
cancelSubscriptionWithQerko: (subscriptionId: string) => Promise<QerkoCancellationInfo>;
|
222
|
-
/**
|
223
|
-
* Set tivio language.
|
224
|
-
* @param language
|
225
|
-
*/
|
226
|
-
setLanguage: (language: LangCode) => void;
|
227
|
-
setUser: (userId: string | null, userPayload?: UserPayload) => Promise<void>;
|
228
|
-
showConsentPreferences: () => void;
|
229
|
-
/**
|
230
|
-
* Contains hooks and providers for internal usages.
|
231
|
-
* They used in our apps, e.g. web, or in sdk-react (e.g. some sdk hooks are just wrappers for core-react-dom hooks)
|
232
|
-
* TODO should not be the part of public API
|
233
|
-
*/
|
234
|
-
internal: TivioInternalBundle;
|
235
|
-
destroy: () => Promise<void>;
|
236
|
-
};
|
237
|
-
|
238
237
|
/**
|
239
238
|
* @public
|
240
239
|
*/
|
@@ -268,7 +267,7 @@ export declare type ButtonOptions = {
|
|
268
267
|
/**
|
269
268
|
* @public
|
270
269
|
*/
|
271
|
-
export declare type Callback = () => void;
|
270
|
+
export declare type Callback<T = any> = (arg?: T) => void;
|
272
271
|
|
273
272
|
/**
|
274
273
|
* @public
|
@@ -281,14 +280,6 @@ export declare interface Channel {
|
|
281
280
|
recentVideos: Video[];
|
282
281
|
}
|
283
282
|
|
284
|
-
/**
|
285
|
-
* @public
|
286
|
-
*/
|
287
|
-
export declare const ChannelsContext: React_2.Context<DataState<Channel>>;
|
288
|
-
|
289
|
-
/**
|
290
|
-
* @public
|
291
|
-
*/
|
292
283
|
export declare type ChannelSource = {
|
293
284
|
new (uri: string, originalOptions: Record<string, any>, channelName: string, programName: string, programDescription: string, from: Date, to: Date): ChannelSource;
|
294
285
|
description: string;
|
@@ -323,6 +314,11 @@ export declare interface ChannelSourcePojo {
|
|
323
314
|
*/
|
324
315
|
export declare type Chapter = any;
|
325
316
|
|
317
|
+
/**
|
318
|
+
* @public
|
319
|
+
*/
|
320
|
+
export declare type CmpConfig = 'default' | 'debug' | 'none';
|
321
|
+
|
326
322
|
/**
|
327
323
|
* TODO it's the same as Customizations, not?
|
328
324
|
* @internal
|
@@ -341,16 +337,10 @@ export declare type Components = {
|
|
341
337
|
};
|
342
338
|
|
343
339
|
/**
|
340
|
+
* Just another alias. Reexported for backward compatibility.
|
344
341
|
* @public
|
345
342
|
*/
|
346
|
-
export declare type Config =
|
347
|
-
deviceCapabilities: PlayerCapability[] | 'auto';
|
348
|
-
/**
|
349
|
-
* @private
|
350
|
-
* Run HTML, CSS and JS feature support check
|
351
|
-
*/
|
352
|
-
runFeatureSupportCheck?: boolean;
|
353
|
-
};
|
343
|
+
export declare type Config = SdkReactConfig;
|
354
344
|
|
355
345
|
/**
|
356
346
|
* @public
|
@@ -455,7 +445,7 @@ export declare type Customizations = {
|
|
455
445
|
* @internal
|
456
446
|
*/
|
457
447
|
export declare interface CustomTheme {
|
458
|
-
customizations?: Customizations
|
448
|
+
customizations?: Partial<Customizations>;
|
459
449
|
components: Components;
|
460
450
|
size: (size: number) => number;
|
461
451
|
}
|
@@ -464,18 +454,11 @@ export declare interface CustomTheme {
|
|
464
454
|
* @internal
|
465
455
|
*/
|
466
456
|
export declare interface CustomThemeOptions {
|
467
|
-
customizations?: Customizations
|
457
|
+
customizations?: Partial<Customizations>;
|
468
458
|
components: Components;
|
469
459
|
size: (size: number) => number;
|
470
460
|
}
|
471
461
|
|
472
|
-
declare interface DataState<T> {
|
473
|
-
data: {
|
474
|
-
[key: string]: HookData<T>;
|
475
|
-
};
|
476
|
-
setData: (key: string, data: HookData<T>) => void;
|
477
|
-
}
|
478
|
-
|
479
462
|
/**
|
480
463
|
* @public
|
481
464
|
*/
|
@@ -498,6 +481,11 @@ export declare type DetailedPrice = {
|
|
498
481
|
frequency?: MONETIZATION_FREQUENCY;
|
499
482
|
};
|
500
483
|
|
484
|
+
/**
|
485
|
+
* @public
|
486
|
+
*/
|
487
|
+
export declare type DeviceInfo = ArrisDeviceInfo | ReactNativeDeviceInfo;
|
488
|
+
|
501
489
|
/**
|
502
490
|
* @public
|
503
491
|
*/
|
@@ -529,6 +517,11 @@ export declare type DocumentOptions = Partial<{
|
|
529
517
|
*/
|
530
518
|
export declare type Empty = void | Promise<void> | undefined | Promise<undefined>;
|
531
519
|
|
520
|
+
/**
|
521
|
+
* @public
|
522
|
+
*/
|
523
|
+
declare type Empty_2 = void | Promise<void> | undefined | Promise<undefined>;
|
524
|
+
|
532
525
|
/**
|
533
526
|
* @public
|
534
527
|
*/
|
@@ -571,12 +564,6 @@ export declare interface GenericOnCallError {
|
|
571
564
|
*/
|
572
565
|
export declare const getPubSub: () => PubSub;
|
573
566
|
|
574
|
-
declare interface HookData<T> {
|
575
|
-
data: PaginationData<T> | null;
|
576
|
-
error: Error | null;
|
577
|
-
isLoading: boolean;
|
578
|
-
}
|
579
|
-
|
580
567
|
/**
|
581
568
|
* @public
|
582
569
|
*/
|
@@ -651,46 +638,23 @@ export declare type InputSource = AdSource | ChannelSource | VodTivioSource | Vo
|
|
651
638
|
/**
|
652
639
|
* @public
|
653
640
|
*/
|
654
|
-
export declare type InternalConfig = {
|
655
|
-
/**
|
656
|
-
* @private URL of remote code bundle to be fetched directly (without using resolver)
|
657
|
-
*/
|
658
|
-
bundleUrlOverride?: string;
|
659
|
-
/**
|
660
|
-
* Tells Tivio which technologies/protocols etc. is the device capable to play.
|
661
|
-
* If not provided, Tivio will try to guess it (based on the browser).
|
662
|
-
*/
|
663
|
-
deviceCapabilities: PlayerCapability[];
|
664
|
-
/**
|
665
|
-
* Additional options for deviceCapabilities
|
666
|
-
*/
|
667
|
-
capabilitiesOptions?: {
|
668
|
-
/**
|
669
|
-
* Should the player prefer HTTP sources instead HTTPs if they are available.
|
670
|
-
* This can be used on platforms that support mixed content but do not support
|
671
|
-
* specific HTTPS certificates. (e.g. certificates from Letsencrypt not supported on LG TVs)
|
672
|
-
*/
|
673
|
-
preferHttp?: boolean;
|
674
|
-
};
|
675
|
-
secret: string | null;
|
676
|
-
language?: LangCode;
|
677
|
-
verbose?: boolean;
|
678
|
-
currency: Currency;
|
679
|
-
disableUnmounting?: boolean;
|
680
|
-
enable?: boolean;
|
681
|
-
enableSentry?: boolean;
|
682
|
-
ErrorComponent?: ComponentType<{
|
683
|
-
error: string | null;
|
684
|
-
}>;
|
641
|
+
export declare type InternalConfig = SdkReactConfig & {
|
685
642
|
fetchPackage: FetchPackage;
|
686
|
-
LoaderComponent?: ComponentType;
|
687
|
-
logger?: Logger | null;
|
688
643
|
pubSub: PubSub;
|
689
644
|
/**
|
690
|
-
* @private URL of resolver. Resolver is a script used to fetch
|
645
|
+
* @private URL of resolver. Resolver is a script used to fetch remote code bundle
|
691
646
|
*/
|
692
647
|
resolverUrl: string;
|
693
648
|
sdkVersion: string;
|
649
|
+
/**
|
650
|
+
* @private URL of remote code bundle to be fetched directly (without using resolver)
|
651
|
+
*/
|
652
|
+
bundleUrlOverride?: string;
|
653
|
+
/**
|
654
|
+
* @private
|
655
|
+
* Run HTML, CSS and JS feature support check
|
656
|
+
*/
|
657
|
+
runFeatureSupportCheck?: boolean;
|
694
658
|
/**
|
695
659
|
* @private
|
696
660
|
*/
|
@@ -715,6 +679,24 @@ declare interface IntroMarker {
|
|
715
679
|
*/
|
716
680
|
export declare type ItemsInRow = Tag | Video | TvChannel;
|
717
681
|
|
682
|
+
/**
|
683
|
+
* @public
|
684
|
+
*/
|
685
|
+
export declare interface JojExternals {
|
686
|
+
tvProfiProgramId?: string;
|
687
|
+
tvProfiContentId?: string;
|
688
|
+
tvProfiSerialId?: string;
|
689
|
+
contentId?: string;
|
690
|
+
provysId?: string;
|
691
|
+
tvProfiProvysId?: string;
|
692
|
+
tvProfiHouseId?: string;
|
693
|
+
tvProfiTitleOriginal?: string;
|
694
|
+
tvProfiTitleSk?: string;
|
695
|
+
tvProfiType?: string;
|
696
|
+
tvProfiSeriesName?: string;
|
697
|
+
tvProfiDistributor?: string;
|
698
|
+
}
|
699
|
+
|
718
700
|
/**
|
719
701
|
* Enum of all supported languages codes as in ISO 639-1
|
720
702
|
* @public
|
@@ -749,6 +731,34 @@ export declare type LinkedVideo = {
|
|
749
731
|
type: 'CUT' | 'TRAILER' | 'BONUS' | 'CHILD';
|
750
732
|
};
|
751
733
|
|
734
|
+
/**
|
735
|
+
* @public
|
736
|
+
*/
|
737
|
+
export declare type Listener = ListenerAdMetadata | ListenerMarkers;
|
738
|
+
|
739
|
+
/**
|
740
|
+
* @public
|
741
|
+
*/
|
742
|
+
export declare type ListenerAdMetadata = (metadata: AdMetadata) => void;
|
743
|
+
|
744
|
+
/**
|
745
|
+
* @public
|
746
|
+
*/
|
747
|
+
export declare type ListenerMarkers = (marker: Marker[] | null) => void;
|
748
|
+
|
749
|
+
/**
|
750
|
+
* Not supported yet, now it does pass-through only.
|
751
|
+
*
|
752
|
+
* @public
|
753
|
+
*/
|
754
|
+
export declare type LiveTvChannelSource = SourceBase & {
|
755
|
+
type: 'live_tv_channel';
|
756
|
+
/**
|
757
|
+
* Tivio needs channel name in order to load markers.
|
758
|
+
*/
|
759
|
+
channelName: string;
|
760
|
+
};
|
761
|
+
|
752
762
|
declare interface Logger {
|
753
763
|
/** important messages */
|
754
764
|
warn(...data: LoggerArgs): void;
|
@@ -771,15 +781,24 @@ declare type LoggerArgs = any[];
|
|
771
781
|
/**
|
772
782
|
* @public
|
773
783
|
*/
|
774
|
-
export declare
|
784
|
+
export declare interface MallTvExternals {
|
785
|
+
mallTvEntityId: string;
|
786
|
+
}
|
787
|
+
|
788
|
+
/**
|
789
|
+
* @public
|
790
|
+
*/
|
791
|
+
export declare interface Marker {
|
775
792
|
id: string;
|
776
|
-
type: string;
|
777
793
|
from: Date;
|
778
794
|
to: Date;
|
779
795
|
count?: number;
|
780
796
|
fromMs?: number;
|
781
797
|
toMs?: number;
|
782
|
-
|
798
|
+
relativeFromMs: number;
|
799
|
+
relativeToMs: number;
|
800
|
+
type: 'AD' | 'AD_SEGMENT' | 'START' | 'END' | 'INTRO';
|
801
|
+
}
|
783
802
|
|
784
803
|
/**
|
785
804
|
* @public
|
@@ -835,6 +854,16 @@ export declare type Nullable<T> = {
|
|
835
854
|
*/
|
836
855
|
export declare type ObjectType = Record<string, any>;
|
837
856
|
|
857
|
+
/**
|
858
|
+
* @public
|
859
|
+
*/
|
860
|
+
export declare interface OktagonExternals {
|
861
|
+
/**
|
862
|
+
* DRM content Key ID - shouldn't be more connected with buyDRM or streamOnline? It is not general thing
|
863
|
+
*/
|
864
|
+
keyId?: string;
|
865
|
+
}
|
866
|
+
|
838
867
|
/**
|
839
868
|
* @public
|
840
869
|
*/
|
@@ -851,10 +880,14 @@ declare type OrderByDirection = 'desc' | 'asc';
|
|
851
880
|
export declare interface Organization {
|
852
881
|
}
|
853
882
|
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
883
|
+
/**
|
884
|
+
* If Tivio PlayerWrapper is an interception layer, it should allow the pass-through
|
885
|
+
* of not just Tivio source types but any other source types that the 3rd party app may be using.
|
886
|
+
*
|
887
|
+
* @public
|
888
|
+
*/
|
889
|
+
export declare type OtherSource = SourceBase & StartAndContinuePosition & {
|
890
|
+
type: 'other';
|
858
891
|
};
|
859
892
|
|
860
893
|
/**
|
@@ -884,6 +917,30 @@ export declare enum PLATFORM {
|
|
884
917
|
TV = "TV"
|
885
918
|
}
|
886
919
|
|
920
|
+
/**
|
921
|
+
* @public
|
922
|
+
*/
|
923
|
+
export declare type Player = {
|
924
|
+
ad: any;
|
925
|
+
currentTime: any;
|
926
|
+
adSegment: any;
|
927
|
+
event: any;
|
928
|
+
events: any;
|
929
|
+
source: any;
|
930
|
+
state: any;
|
931
|
+
onPlaybackEnded: any;
|
932
|
+
onSourceChanged: any;
|
933
|
+
onStateChanged: any;
|
934
|
+
onTimeChanged: any;
|
935
|
+
pause: any;
|
936
|
+
play: any;
|
937
|
+
togglePlayPause: any;
|
938
|
+
register: any;
|
939
|
+
seekTo: any;
|
940
|
+
setVolume: any;
|
941
|
+
triggerEvent: any;
|
942
|
+
};
|
943
|
+
|
887
944
|
/**
|
888
945
|
* @public
|
889
946
|
*/
|
@@ -893,6 +950,65 @@ export declare interface PlayerCapability {
|
|
893
950
|
protocol: 'dash' | 'hls' | 'mp4';
|
894
951
|
}
|
895
952
|
|
953
|
+
/**
|
954
|
+
* @public
|
955
|
+
*/
|
956
|
+
export declare type PlayerConfig = {
|
957
|
+
/**
|
958
|
+
* Some devices do not seek exactly
|
959
|
+
*
|
960
|
+
* e.g. on Arris if we request seek to position P, in reality it will seek to P -+5s
|
961
|
+
* e.g. on Arris if we request play from position P, in reality it will play from P -+5s
|
962
|
+
* (on Arris the error margin varies according to video format)
|
963
|
+
*/
|
964
|
+
acceptablePositionAnomalyMs?: number;
|
965
|
+
/**
|
966
|
+
* Stream delay config
|
967
|
+
*
|
968
|
+
* IP TV apps have TV program / TV channel streams delayed relative to the original
|
969
|
+
* video source. Therefore stream markers taken from the original video source
|
970
|
+
* are delayed relative to the TV stream seen by end users of the IP TV app.
|
971
|
+
*
|
972
|
+
* This delay must be corrected.
|
973
|
+
*/
|
974
|
+
streamDelayConfig?: {
|
975
|
+
/**
|
976
|
+
* ID of the delay config
|
977
|
+
*/
|
978
|
+
id: string;
|
979
|
+
};
|
980
|
+
ui?: {
|
981
|
+
/**
|
982
|
+
* ID of a DOM element inside which Tivio should display its player-related UI
|
983
|
+
* such as ad buttons. This DOM element is an anchor point for Tivio UI. Preferably
|
984
|
+
* it should be a <div/> element styled to cover the whole area of the video player
|
985
|
+
* and it should be positioned to be on top the existing player UI (e.g. via z-index).
|
986
|
+
*/
|
987
|
+
domAnchorId: string | null;
|
988
|
+
};
|
989
|
+
protocols?: {
|
990
|
+
mp4?: {
|
991
|
+
/**
|
992
|
+
* Set to false if player does not support MP4 files that require full file download
|
993
|
+
* (i.e. they do not support progressive MP4 download and therefore the whole file
|
994
|
+
* must be downloaded before playback can start)
|
995
|
+
*/
|
996
|
+
fullFileDownloadSupport?: boolean;
|
997
|
+
};
|
998
|
+
};
|
999
|
+
/**
|
1000
|
+
* Ad service settings
|
1001
|
+
*/
|
1002
|
+
adService?: {
|
1003
|
+
/**
|
1004
|
+
* Tivio - can be used in websites and TV apps. Does not support VPAID
|
1005
|
+
* IMA - can be used only in websites. Supports VAST 2, partially VAST 3, VAST 4, SIMID 1.0, OM SDK 1.3,
|
1006
|
+
* VPAID 2 (HTML5) https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/compatibility
|
1007
|
+
*/
|
1008
|
+
name: 'IMA SDK' | 'Tivio';
|
1009
|
+
};
|
1010
|
+
};
|
1011
|
+
|
896
1012
|
/**
|
897
1013
|
* @public
|
898
1014
|
*/
|
@@ -925,6 +1041,18 @@ export declare interface PlayerInterface {
|
|
925
1041
|
unmute?: () => void;
|
926
1042
|
}
|
927
1043
|
|
1044
|
+
/**
|
1045
|
+
* @public
|
1046
|
+
*/
|
1047
|
+
export declare interface PlayerInterfaceForPlayerWrapper {
|
1048
|
+
/**
|
1049
|
+
* @param {number} ms - milliseconds relative to start of video (relative to 0 ms)
|
1050
|
+
* or in case of TV programs relative to start of the program (relative to source.from ms)
|
1051
|
+
*/
|
1052
|
+
seekTo: (ms: number) => void;
|
1053
|
+
setSource: (source: Source | null) => void;
|
1054
|
+
}
|
1055
|
+
|
928
1056
|
/**
|
929
1057
|
* @public
|
930
1058
|
*/
|
@@ -982,8 +1110,8 @@ export declare type PlayerWrapper = {
|
|
982
1110
|
source: InputSource | null;
|
983
1111
|
events: {
|
984
1112
|
isSupported: (even: string) => boolean;
|
985
|
-
addListener: <T = any>(event: string, cb: (value: T) =>
|
986
|
-
removeListener: <T = any>(event: string, cb: (value: T) =>
|
1113
|
+
addListener: <T = any>(event: string, cb: (value: T) => Empty_2) => void;
|
1114
|
+
removeListener: <T = any>(event: string, cb: (value: T) => Empty_2) => void;
|
987
1115
|
removeAllListeners: () => void;
|
988
1116
|
};
|
989
1117
|
/**
|
@@ -1021,6 +1149,19 @@ export declare type PlayerWrapper = {
|
|
1021
1149
|
toggleMuted: () => void;
|
1022
1150
|
};
|
1023
1151
|
|
1152
|
+
/**
|
1153
|
+
* @public
|
1154
|
+
*/
|
1155
|
+
export declare enum PlayerWrapperEventType {
|
1156
|
+
adMetadata = "adMetadata",
|
1157
|
+
markers = "markers"
|
1158
|
+
}
|
1159
|
+
|
1160
|
+
/**
|
1161
|
+
* @public
|
1162
|
+
*/
|
1163
|
+
export declare type PlayerWrapperEventTypeType = `${PlayerWrapperEventType}`;
|
1164
|
+
|
1024
1165
|
/**
|
1025
1166
|
* @public
|
1026
1167
|
*/
|
@@ -1033,18 +1174,30 @@ export declare interface PubSub {
|
|
1033
1174
|
* @public
|
1034
1175
|
*/
|
1035
1176
|
export declare type Purchase = {
|
1177
|
+
/**
|
1178
|
+
* Timestamp of the purchase creation in milliseconds.
|
1179
|
+
*/
|
1180
|
+
created: number | null;
|
1181
|
+
expirationDate: Date | null;
|
1036
1182
|
id: string;
|
1183
|
+
isExpired: boolean;
|
1184
|
+
/**
|
1185
|
+
* @deprecated isPurchased is ambiguous name. Now it means that purchase.status is "PAID".
|
1186
|
+
* So use purchase.status === PurchaseStatus.PAID instead.
|
1187
|
+
*/
|
1037
1188
|
isPurchased: boolean;
|
1038
|
-
monetizationRef: any | null;
|
1039
1189
|
monetization: PurchaseMonetization | null;
|
1040
1190
|
monetizationId: string | null;
|
1041
|
-
|
1042
|
-
videoId: string | null;
|
1191
|
+
monetizationRef: any | null;
|
1043
1192
|
status: PurchaseStatus | null;
|
1193
|
+
type: PurchaseType | null;
|
1194
|
+
/**
|
1195
|
+
* Timestamp of the last purchase status update in milliseconds.
|
1196
|
+
*/
|
1197
|
+
updated: number | null;
|
1044
1198
|
video: Video | null;
|
1199
|
+
videoId: string | null;
|
1045
1200
|
videoRef: any | null;
|
1046
|
-
expirationDate: Date | null;
|
1047
|
-
isExpired: boolean;
|
1048
1201
|
voucherId?: string;
|
1049
1202
|
};
|
1050
1203
|
|
@@ -1055,7 +1208,10 @@ export declare type PurchaseMonetization = {
|
|
1055
1208
|
currency?: Currency;
|
1056
1209
|
period?: number;
|
1057
1210
|
price?: number;
|
1058
|
-
|
1211
|
+
/**
|
1212
|
+
* Here are only transaction and subscription, because purchasing of advertisement monetization doesn't make sense.
|
1213
|
+
*/
|
1214
|
+
type: 'transaction' | 'subscription';
|
1059
1215
|
title?: string;
|
1060
1216
|
frequency?: MONETIZATION_FREQUENCY | null;
|
1061
1217
|
/**
|
@@ -1076,9 +1232,16 @@ export declare enum PurchaseStatus {
|
|
1076
1232
|
/**
|
1077
1233
|
* Used when purchase is terminated due to terms and conditions violation (e.g. restreaming).
|
1078
1234
|
*/
|
1079
|
-
|
1235
|
+
BLOCKED = "BLOCKED"
|
1080
1236
|
}
|
1081
1237
|
|
1238
|
+
/**
|
1239
|
+
* Purchase is a purchase of one video (transaction type), purchase of subscription or voucher.
|
1240
|
+
*
|
1241
|
+
* @public
|
1242
|
+
*/
|
1243
|
+
export declare type PurchaseType = 'transaction' | 'subscription' | 'voucher';
|
1244
|
+
|
1082
1245
|
/**
|
1083
1246
|
* @public
|
1084
1247
|
*/
|
@@ -1092,7 +1255,7 @@ export declare interface QerkoCancellationInfo {
|
|
1092
1255
|
*/
|
1093
1256
|
export declare interface QerkoData {
|
1094
1257
|
monetization: Monetization;
|
1095
|
-
|
1258
|
+
item?: Video | TvChannel;
|
1096
1259
|
onPurchase?: () => void;
|
1097
1260
|
onClose?: () => void;
|
1098
1261
|
}
|
@@ -1148,10 +1311,22 @@ export declare interface QerkoTransaction {
|
|
1148
1311
|
/**
|
1149
1312
|
* @public
|
1150
1313
|
*/
|
1151
|
-
export declare type
|
1314
|
+
export declare type ReactNativeDeviceInfo = {
|
1315
|
+
type: 'react-native';
|
1316
|
+
/**
|
1317
|
+
* Type values defined according to {@link OperatingSystem} from `detect-browser` package for convenience.
|
1318
|
+
*/
|
1319
|
+
os?: 'iOS' | 'Android OS';
|
1320
|
+
osVersion: string;
|
1321
|
+
platform: PLATFORM;
|
1322
|
+
};
|
1323
|
+
|
1324
|
+
/**
|
1325
|
+
* @public
|
1326
|
+
*/
|
1327
|
+
export declare type RemoteBundleState = {
|
1152
1328
|
config: InternalConfig;
|
1153
1329
|
error: string | null;
|
1154
|
-
settings: Settings;
|
1155
1330
|
state: 'loading' | 'error' | 'ready';
|
1156
1331
|
} & Nullable<TivioBundle>;
|
1157
1332
|
|
@@ -1160,7 +1335,7 @@ export declare type RemoteBundleState = {
|
|
1160
1335
|
*/
|
1161
1336
|
export declare type RemoteProviderProps = {
|
1162
1337
|
disableUnmounting?: boolean;
|
1163
|
-
language?:
|
1338
|
+
language?: LangCode;
|
1164
1339
|
children: any;
|
1165
1340
|
};
|
1166
1341
|
|
@@ -1234,6 +1409,7 @@ export declare interface RowItemAssets {
|
|
1234
1409
|
portrait?: string | null;
|
1235
1410
|
circled?: string | null;
|
1236
1411
|
banner?: string | null;
|
1412
|
+
bannerMobile?: string | null;
|
1237
1413
|
}
|
1238
1414
|
|
1239
1415
|
/**
|
@@ -1315,6 +1491,27 @@ export declare type ScreenRowType = 'filter' | 'custom' | 'continueToWatch' | 'f
|
|
1315
1491
|
*/
|
1316
1492
|
export declare type ScreenSubscription = (screenId: string, cb: (error: Error | null, data: Screen_2 | null) => void) => Disposer_2;
|
1317
1493
|
|
1494
|
+
/**
|
1495
|
+
* Config of sdk-react. Contains all properties that can be passed via TivioProvider.
|
1496
|
+
* Consists of TivioConfig's properties + "sdk only" properties, that are used only in sdk, not in bundle.
|
1497
|
+
*
|
1498
|
+
* @public
|
1499
|
+
*/
|
1500
|
+
export declare type SdkReactConfig = Omit<TivioConfig, 'language'> & {
|
1501
|
+
disableUnmounting?: boolean;
|
1502
|
+
enable?: boolean;
|
1503
|
+
enableSentry?: boolean;
|
1504
|
+
ErrorComponent?: ComponentType<{
|
1505
|
+
error: string | null;
|
1506
|
+
}>;
|
1507
|
+
LoaderComponent?: ComponentType;
|
1508
|
+
logger?: Logger | null;
|
1509
|
+
/**
|
1510
|
+
* language is required for bundle init (TivioConfig), but it can be set to default EN on SDK side, so here it's optional.
|
1511
|
+
*/
|
1512
|
+
language?: LangCode;
|
1513
|
+
};
|
1514
|
+
|
1318
1515
|
/**
|
1319
1516
|
* @public
|
1320
1517
|
*/
|
@@ -1325,21 +1522,6 @@ export declare interface Section {
|
|
1325
1522
|
videos: Video[];
|
1326
1523
|
}
|
1327
1524
|
|
1328
|
-
/**
|
1329
|
-
* @public
|
1330
|
-
*/
|
1331
|
-
export declare const SectionsContext: React_2.Context<DataState<Section>>;
|
1332
|
-
|
1333
|
-
/**
|
1334
|
-
* @public
|
1335
|
-
*/
|
1336
|
-
export declare type Settings = {
|
1337
|
-
/**
|
1338
|
-
* @deprecated TIV-994 in favour of setUser from libs/sdk-react/src/services/login.ts
|
1339
|
-
*/
|
1340
|
-
setUser: (userId: string, userPayload: unknown) => Promise<void>;
|
1341
|
-
};
|
1342
|
-
|
1343
1525
|
/**
|
1344
1526
|
* Used for entities, that can be global (e.g. asset presets, tag types).
|
1345
1527
|
* Non-global is stored under organizations (in sub-collection), and shown for organization's users and super-admin.
|
@@ -1365,6 +1547,63 @@ export declare const setUser: (userId: string | null, payload?: UserPayload | un
|
|
1365
1547
|
*/
|
1366
1548
|
export declare const showGdprConsentPreferences: () => Promise<void>;
|
1367
1549
|
|
1550
|
+
/**
|
1551
|
+
* @public
|
1552
|
+
*/
|
1553
|
+
export declare type Source = TvProgramSource | TivioVodSource | AdSource_2 | OtherSource | LiveTvChannelSource;
|
1554
|
+
|
1555
|
+
/**
|
1556
|
+
* @public
|
1557
|
+
*/
|
1558
|
+
export declare type SourceBase = {
|
1559
|
+
/**
|
1560
|
+
* Tivio SDK users may use pretty complicated source objects in their existing code and if Tivio player
|
1561
|
+
* is an interception layer, it should allow them to pass through any type of object.
|
1562
|
+
*/
|
1563
|
+
additionalPayload?: Record<string, any>;
|
1564
|
+
/**
|
1565
|
+
* Source type.
|
1566
|
+
*/
|
1567
|
+
type: 'ad' | 'live_tv_channel' | 'other' | 'tivio_vod' | 'tv_program';
|
1568
|
+
/**
|
1569
|
+
* URI to play.
|
1570
|
+
*/
|
1571
|
+
uri: string;
|
1572
|
+
};
|
1573
|
+
|
1574
|
+
/**
|
1575
|
+
* @public
|
1576
|
+
*/
|
1577
|
+
export declare type StartAndContinuePosition = {
|
1578
|
+
/**
|
1579
|
+
* Relative from stream start, in ms.
|
1580
|
+
*
|
1581
|
+
* On input to Tivio either `startFromPosition` or `continueFromPosition` must always be provided.
|
1582
|
+
*
|
1583
|
+
* On output from Tivio it is always defined. Tivio can change this value.
|
1584
|
+
* (e.g. in order to fix start position of a TV program)
|
1585
|
+
*/
|
1586
|
+
startFromPosition?: number;
|
1587
|
+
/**
|
1588
|
+
* Relative from stream start, in ms.
|
1589
|
+
*
|
1590
|
+
* On input to Tivio either `startFromPosition` or `continueFromPosition` must always be provided.
|
1591
|
+
*
|
1592
|
+
* If provided, tivio will not correct it and will send this value back in startFromPosition.
|
1593
|
+
* If provided, startFromPosition is ignored.
|
1594
|
+
*/
|
1595
|
+
continueFromPosition?: number;
|
1596
|
+
};
|
1597
|
+
|
1598
|
+
/**
|
1599
|
+
* @public
|
1600
|
+
*/
|
1601
|
+
declare interface StorageManager_2 {
|
1602
|
+
getItem(key: string): string | null | Promise<string | null>;
|
1603
|
+
setItem(key: string, value: string): void | Promise<void>;
|
1604
|
+
}
|
1605
|
+
export { StorageManager_2 as StorageManager }
|
1606
|
+
|
1368
1607
|
/**
|
1369
1608
|
* @public
|
1370
1609
|
*/
|
@@ -1476,6 +1715,9 @@ export declare type TileOptions = {
|
|
1476
1715
|
opacity: string | number;
|
1477
1716
|
fontWeight: string;
|
1478
1717
|
};
|
1718
|
+
sizes: {
|
1719
|
+
[variant in TileSizeVariant]: TileSizesMap;
|
1720
|
+
};
|
1479
1721
|
};
|
1480
1722
|
|
1481
1723
|
/**
|
@@ -1483,7 +1725,6 @@ export declare type TileOptions = {
|
|
1483
1725
|
*/
|
1484
1726
|
export declare type TileProps = {
|
1485
1727
|
cover: string;
|
1486
|
-
isLoading: boolean;
|
1487
1728
|
bottomLabel: string;
|
1488
1729
|
bottomLabelAreaHeight: number;
|
1489
1730
|
innerLabel: string;
|
@@ -1492,7 +1733,6 @@ export declare type TileProps = {
|
|
1492
1733
|
focused: boolean;
|
1493
1734
|
onClick?: () => void;
|
1494
1735
|
hoverable: boolean;
|
1495
|
-
overlay: boolean;
|
1496
1736
|
coverPadding: CoverPadding;
|
1497
1737
|
variant: RowItemComponent;
|
1498
1738
|
coverWidth: number;
|
@@ -1512,14 +1752,38 @@ export declare type TileProps = {
|
|
1512
1752
|
*/
|
1513
1753
|
export declare type TilePropsPartial = Partial<TileProps>;
|
1514
1754
|
|
1755
|
+
/**
|
1756
|
+
* @internal
|
1757
|
+
*/
|
1758
|
+
export declare type TileSizes = {
|
1759
|
+
coverPaddingTop: number;
|
1760
|
+
coverPaddingBottom: number;
|
1761
|
+
coverWidth: number;
|
1762
|
+
coverHeight: number;
|
1763
|
+
cellPaddingRight: number;
|
1764
|
+
labelHeight: number;
|
1765
|
+
};
|
1766
|
+
|
1767
|
+
/**
|
1768
|
+
* Tile sizes by Tile variant (row item component)
|
1769
|
+
*
|
1770
|
+
* @internal
|
1771
|
+
*/
|
1772
|
+
export declare type TileSizesMap = {
|
1773
|
+
[item in RowItemComponent]: TileSizes;
|
1774
|
+
};
|
1775
|
+
|
1776
|
+
/**
|
1777
|
+
* Default (desktop) or mobile variants are used for WEB.
|
1778
|
+
*
|
1779
|
+
* @internal
|
1780
|
+
*/
|
1781
|
+
export declare type TileSizeVariant = 'default' | 'mobile';
|
1782
|
+
|
1515
1783
|
/**
|
1516
1784
|
* @public
|
1517
1785
|
*/
|
1518
1786
|
export declare interface TivioAuth {
|
1519
|
-
changePassword: (newPassword: string) => Promise<void>;
|
1520
|
-
changeUserPhoto(file: any): Promise<void>;
|
1521
|
-
removeUserPhoto(): Promise<void>;
|
1522
|
-
getPurchasedVodsWithInitializedVideos: () => Promise<Purchase[]>;
|
1523
1787
|
/**
|
1524
1788
|
* @param email
|
1525
1789
|
* @param password
|
@@ -1531,21 +1795,17 @@ export declare interface TivioAuth {
|
|
1531
1795
|
* @param password
|
1532
1796
|
*/
|
1533
1797
|
signInWithEmailAndPassword: (email: string, password: string) => Promise<string | null>;
|
1534
|
-
initializeUser: () => Promise<void>;
|
1535
1798
|
signOut: () => Promise<void>;
|
1536
1799
|
/**
|
1537
1800
|
* Used for reset forgotten password by user
|
1538
1801
|
*/
|
1539
1802
|
resetPassword: (email: string) => Promise<void>;
|
1540
|
-
createFreePurchase: (monetizationId: string) => Promise<void>;
|
1541
1803
|
}
|
1542
1804
|
|
1543
1805
|
/**
|
1544
1806
|
* @public
|
1545
1807
|
*/
|
1546
|
-
export declare type TivioBundle =
|
1547
|
-
init: (config: Config) => void | Promise<void>;
|
1548
|
-
};
|
1808
|
+
export declare type TivioBundle = TivioReactBundle;
|
1549
1809
|
|
1550
1810
|
/**
|
1551
1811
|
* @public
|
@@ -1561,10 +1821,6 @@ export declare type TivioComponents = {
|
|
1561
1821
|
Markers: React_2.ReactNode;
|
1562
1822
|
PlayerDataContext: React_2.ReactNode;
|
1563
1823
|
Provider: React_2.ComponentType<RemoteProviderProps>;
|
1564
|
-
/**
|
1565
|
-
* @deprecated will be removed in in @tivio/sdk-react@4
|
1566
|
-
*/
|
1567
|
-
VideoAdBanner: React_2.ReactNode;
|
1568
1824
|
WebPlayer: React_2.ComponentType<WebPlayerProps>;
|
1569
1825
|
Widget: React_2.ComponentType<TivioWidgetProps>;
|
1570
1826
|
PlayerDataContextProvider: React_2.ComponentType<{
|
@@ -1593,12 +1849,46 @@ export declare type TivioComponents = {
|
|
1593
1849
|
WebTile: React_2.ComponentType<{
|
1594
1850
|
item?: ItemsInRow;
|
1595
1851
|
} & TilePropsPartial>;
|
1596
|
-
AdIndicationButtonWeb: React_2.ReactNode;
|
1597
|
-
Recommendation: React_2.ReactNode;
|
1598
|
-
SkipButtonWeb: React_2.ReactNode;
|
1599
|
-
TvPlayer: React_2.ComponentType<WebPlayerProps>;
|
1600
1852
|
};
|
1601
1853
|
|
1854
|
+
/**
|
1855
|
+
* @public
|
1856
|
+
*/
|
1857
|
+
export declare interface TivioConfig {
|
1858
|
+
/**
|
1859
|
+
* Tells Tivio which technologies/protocols etc. is the device capable to play.
|
1860
|
+
* If not provided, Tivio will try to guess it (based on the browser).
|
1861
|
+
*/
|
1862
|
+
deviceCapabilities?: PlayerCapability[];
|
1863
|
+
/**
|
1864
|
+
* Additional options for deviceCapabilities
|
1865
|
+
*/
|
1866
|
+
capabilitiesOptions?: {
|
1867
|
+
/**
|
1868
|
+
* Should the player prefer HTTP sources instead HTTPs if they are available.
|
1869
|
+
* This can be used on platforms that support mixed content but do not support
|
1870
|
+
* specific HTTPS certificates. (e.g. certificates from Letsencrypt not supported on LG TVs)
|
1871
|
+
*/
|
1872
|
+
preferHttp?: boolean;
|
1873
|
+
};
|
1874
|
+
secret: string;
|
1875
|
+
language: LangCode;
|
1876
|
+
debug?: boolean;
|
1877
|
+
verbose?: boolean;
|
1878
|
+
firebaseApp?: any;
|
1879
|
+
currency: Currency;
|
1880
|
+
/**
|
1881
|
+
* Configuration for GDPR consent collection (CMP)
|
1882
|
+
*/
|
1883
|
+
cmp?: CmpConfig;
|
1884
|
+
/**
|
1885
|
+
* Device information - model, os, version, etc. This is useful for devices
|
1886
|
+
* where this information cannot be reliably auto-detected.
|
1887
|
+
*/
|
1888
|
+
deviceInfo?: DeviceInfo;
|
1889
|
+
player?: PlayerConfig;
|
1890
|
+
}
|
1891
|
+
|
1602
1892
|
/**
|
1603
1893
|
* @public
|
1604
1894
|
*/
|
@@ -1610,18 +1900,6 @@ export declare const TivioContext: React_2.Context<RemoteBundleState | null>;
|
|
1610
1900
|
export declare type TivioGetters = {
|
1611
1901
|
isTivioLoaded: (cb: (isLoaded: boolean) => void) => void;
|
1612
1902
|
isSignedIn: () => boolean;
|
1613
|
-
/**
|
1614
|
-
* @deprecated is here only for backward compatibility
|
1615
|
-
*/
|
1616
|
-
getExportedConfig: () => Promise<{
|
1617
|
-
showMarkers: true;
|
1618
|
-
}>;
|
1619
|
-
/**
|
1620
|
-
* Get channel by its id.
|
1621
|
-
* @param channelId - channel id
|
1622
|
-
* @returns {Promise<Channel | null>} channel or null if channel does not exists
|
1623
|
-
*/
|
1624
|
-
getChannelById: (channelId: string) => Promise<Channel | null>;
|
1625
1903
|
/**
|
1626
1904
|
* Get (or create) player wrapper instance
|
1627
1905
|
* @param opt - player getter options
|
@@ -1629,26 +1907,14 @@ export declare type TivioGetters = {
|
|
1629
1907
|
*/
|
1630
1908
|
getPlayerWrapper: (opt: {
|
1631
1909
|
playerWrapperId?: string;
|
1632
|
-
}) =>
|
1910
|
+
}) => PlayerWrapper;
|
1633
1911
|
getOrganizationSubscriptions: () => Promise<Monetization[] | undefined>;
|
1634
|
-
/**
|
1635
|
-
* Get section by its id.
|
1636
|
-
* @param sectionId - section id
|
1637
|
-
* @returns {Promise<{section: Section, channel: Channel} | null>} section and channel or null if channel or section does not exists
|
1638
|
-
*/
|
1639
|
-
getSectionById: (sectionId: string) => Promise<Section | null>;
|
1640
1912
|
/**
|
1641
1913
|
* Get video by its id.
|
1642
1914
|
* @param videoId - video id
|
1643
1915
|
* @returns {Promise<Video | null>} video or null if video does not exists
|
1644
1916
|
*/
|
1645
1917
|
getVideoById: (videoId: string) => Promise<Video | null>;
|
1646
|
-
/**
|
1647
|
-
* Get widget by its id.
|
1648
|
-
* @param widgetId - widget id
|
1649
|
-
* @returns {Promise<Widget | null>} widget or null if widget does not exists
|
1650
|
-
*/
|
1651
|
-
getWidgetById: (widgetId: string) => Promise<Widget | null>;
|
1652
1918
|
/**
|
1653
1919
|
* Get player capabilities based on user's browser and OS as resolved by Tivio.
|
1654
1920
|
* @returns PlayerCapability[]
|
@@ -1660,7 +1926,7 @@ export declare type TivioGetters = {
|
|
1660
1926
|
* @public
|
1661
1927
|
*/
|
1662
1928
|
export declare type TivioHooks = {
|
1663
|
-
useAd: () => [(
|
1929
|
+
useAd: () => [(AdExternal | null)];
|
1664
1930
|
useAdSegment: () => AdSegment | null;
|
1665
1931
|
useCancelSubscription: UseCancelSubscription;
|
1666
1932
|
useItemsInRow: (rowId: string, options: PaginationOptions) => {
|
@@ -1689,10 +1955,6 @@ export declare type TivioHooks = {
|
|
1689
1955
|
error: string | null;
|
1690
1956
|
};
|
1691
1957
|
useVoucher: (voucherId: string) => any;
|
1692
|
-
/**
|
1693
|
-
* @deprecated will be removed in version
|
1694
|
-
*/
|
1695
|
-
useLastVideoByWidgetId: (widgetId: string) => Video | null;
|
1696
1958
|
useWatchWithoutAdsOffer: () => {
|
1697
1959
|
canPurchaseWatchWithoutAds: boolean;
|
1698
1960
|
showPurchaseDialog: () => void;
|
@@ -1775,6 +2037,59 @@ export declare type TivioInternalProviders = {
|
|
1775
2037
|
RouterOverridesContextProvider: React_2.ComponentType<RouterOverridesContextState>;
|
1776
2038
|
};
|
1777
2039
|
|
2040
|
+
/**
|
2041
|
+
* @internal
|
2042
|
+
*/
|
2043
|
+
export declare type TivioJsBundle = TivioJsBundleExposedApi & {
|
2044
|
+
init: (config: TivioConfig) => void | Promise<void>;
|
2045
|
+
tivio: any;
|
2046
|
+
};
|
2047
|
+
|
2048
|
+
/**
|
2049
|
+
* @public
|
2050
|
+
*/
|
2051
|
+
export declare type TivioJsBundleExposedApi = {
|
2052
|
+
AdSource: any;
|
2053
|
+
ChannelSource: any;
|
2054
|
+
VodTivioSource: any;
|
2055
|
+
/**
|
2056
|
+
* Get (or create) player wrapper instance
|
2057
|
+
* @param id - player wrapper id
|
2058
|
+
* @returns {Player} player wrapper instance
|
2059
|
+
*/
|
2060
|
+
getPlayer: (id: string) => Player;
|
2061
|
+
/**
|
2062
|
+
* Get tv channel by its id.
|
2063
|
+
* @param tvChannelId - tv channel id
|
2064
|
+
* @returns {Promise<TvChannel | null>} channel or null if tv channel does not exists
|
2065
|
+
*/
|
2066
|
+
getTvChannelById: (tvChannelId: string) => Promise<TvChannel | null>;
|
2067
|
+
/**
|
2068
|
+
* Get tag by its id.
|
2069
|
+
* @param tagId - tag id
|
2070
|
+
* @returns {Promise<Tag | null>} widget or null if tag does not exists
|
2071
|
+
*/
|
2072
|
+
getTagById: (tagId: string) => Promise<Tag | null>;
|
2073
|
+
createPlayerWrapper: (playerImplementation: PlayerInterfaceForPlayerWrapper) => TivioPlayerWrapper;
|
2074
|
+
destroy: () => Promise<void>;
|
2075
|
+
} & Pick<TivioGetters, 'getVideoById'> & Pick<TivioSubscriptions, 'subscribeToVideo' | 'subscribeToItemsInRow'> & Pick<TivioAuth, 'createUserWithEmailAndPassword' | 'signInWithEmailAndPassword'> & Pick<TivioSetters, 'setBundleVersion' | 'setUser' | 'setLanguage' | 'setStorageManager'>;
|
2076
|
+
|
2077
|
+
/**
|
2078
|
+
* @public
|
2079
|
+
*/
|
2080
|
+
export declare interface TivioPlayerWrapper {
|
2081
|
+
addEventListener: (eventType: PlayerWrapperEventTypeType, listener: Listener) => void;
|
2082
|
+
reportError: (error: Error) => void;
|
2083
|
+
reportPlaybackEnded: () => void;
|
2084
|
+
reportTimeProgress: (ms: number) => void;
|
2085
|
+
seekTo: (ms: number) => void;
|
2086
|
+
/**
|
2087
|
+
* @param {Source} source - source to set
|
2088
|
+
* @param {string} calibrationId - id of calibration profile
|
2089
|
+
*/
|
2090
|
+
setSource: (source: Source | null, calibrationId?: string) => void;
|
2091
|
+
}
|
2092
|
+
|
1778
2093
|
/**
|
1779
2094
|
* @public
|
1780
2095
|
*/
|
@@ -1787,10 +2102,52 @@ export declare type TivioProviderProps = {
|
|
1787
2102
|
/**
|
1788
2103
|
* This prop must be set only once and not change value afterwards
|
1789
2104
|
*/
|
1790
|
-
conf:
|
2105
|
+
conf: SdkReactConfig | undefined | null;
|
1791
2106
|
children: React_2.ReactNode;
|
1792
2107
|
};
|
1793
2108
|
|
2109
|
+
/**
|
2110
|
+
* @public
|
2111
|
+
*/
|
2112
|
+
export declare type TivioReactBundle = {
|
2113
|
+
init: (config: TivioConfig) => void | Promise<void>;
|
2114
|
+
components: TivioComponents;
|
2115
|
+
getters: TivioGetters;
|
2116
|
+
auth: TivioAuth;
|
2117
|
+
hooks: TivioHooks;
|
2118
|
+
sources: TivioSources;
|
2119
|
+
subscriptions: TivioSubscriptions;
|
2120
|
+
purchaseVideoWithQerko: (videoId: string, monetizationId: string, voucher?: {
|
2121
|
+
expirationDate: Date;
|
2122
|
+
}) => Promise<QerkoPaymentInfo>;
|
2123
|
+
purchaseSubscriptionWithQerko: (monetizationId: string, voucher?: {
|
2124
|
+
expirationDate: Date;
|
2125
|
+
}) => Promise<QerkoPaymentInfo>;
|
2126
|
+
cancelSubscriptionWithQerko: (subscriptionId: string) => Promise<QerkoCancellationInfo>;
|
2127
|
+
showConsentPreferences: () => void;
|
2128
|
+
/**
|
2129
|
+
* Contains hooks and providers for internal usages.
|
2130
|
+
* They used in our apps, e.g. web, or in sdk-react (e.g. some sdk hooks are just wrappers for core-react-dom hooks)
|
2131
|
+
* TODO should not be the part of public API
|
2132
|
+
*/
|
2133
|
+
internal: TivioInternalBundle;
|
2134
|
+
destroy: () => Promise<void>;
|
2135
|
+
} & Pick<TivioSetters, 'setBundleVersion' | 'setUser' | 'setLanguage' | 'setStorageManager'>;
|
2136
|
+
|
2137
|
+
/**
|
2138
|
+
* @public
|
2139
|
+
*/
|
2140
|
+
export declare type TivioSetters = {
|
2141
|
+
setBundleVersion: (bundleVersion: string | null) => void;
|
2142
|
+
/**
|
2143
|
+
* Set tivio language.
|
2144
|
+
* @param language
|
2145
|
+
*/
|
2146
|
+
setLanguage: (language: LangCode) => void;
|
2147
|
+
setStorageManager: (storageManager: StorageManager_2) => void;
|
2148
|
+
setUser: (userId: string | null, userPayload?: UserPayload) => Promise<void>;
|
2149
|
+
};
|
2150
|
+
|
1794
2151
|
/**
|
1795
2152
|
* @public
|
1796
2153
|
*/
|
@@ -1806,61 +2163,12 @@ export declare type TivioSources = {
|
|
1806
2163
|
*/
|
1807
2164
|
export declare type TivioSubscriptions = {
|
1808
2165
|
subscribeToUser: (cb: (error: string | null, user: User | null) => void) => void;
|
1809
|
-
/**
|
1810
|
-
* Listen to widget changes.
|
1811
|
-
* @param widgetId - widget id
|
1812
|
-
* @param cb - callback on widget updates or on error
|
1813
|
-
*/
|
1814
|
-
subscribeToWidget: (widgetId: string, cb: (error: Error | null, data: Widget | null, disposer?: Disposer_2) => void) => void;
|
1815
|
-
/**
|
1816
|
-
* Listen to channel changes.
|
1817
|
-
* @param channelId - channel id
|
1818
|
-
* @param cb - callback on channel updates or on error
|
1819
|
-
*/
|
1820
|
-
subscribeToChannel: (channelId: string, cb: (error: Error | null, data: Channel | null) => void) => void;
|
1821
|
-
/**
|
1822
|
-
* Listen to section changes.
|
1823
|
-
* @param sectionId - section id
|
1824
|
-
* @param cb - callback on section updates or on error
|
1825
|
-
*/
|
1826
|
-
subscribeToSection: (sectionId: string, cb: (error: Error | null, data: Section | null) => void) => void;
|
1827
2166
|
/**
|
1828
2167
|
* Listen to video changes.
|
1829
2168
|
* @param videoId - video id
|
1830
2169
|
* @param cb - callback on video updates or on error
|
1831
2170
|
*/
|
1832
2171
|
subscribeToVideo: (videoId: string, cb: (error: Error | null, data: Video | null, disposer?: Disposer_2) => void) => void;
|
1833
|
-
/**
|
1834
|
-
* Listen to videos in section changes.
|
1835
|
-
* @param sectionId - section id
|
1836
|
-
* @param cb - callback on videos change or error
|
1837
|
-
* @param limit - videos count
|
1838
|
-
*/
|
1839
|
-
subscribeToVideosInSection: (sectionId: string, cb: (error: null | Error, data: null | {
|
1840
|
-
videos: Video[];
|
1841
|
-
hasNextPage: boolean;
|
1842
|
-
}, fetchMore: null | ((count?: number) => void), isLoading: boolean) => void, limit?: number) => void;
|
1843
|
-
/**
|
1844
|
-
* Listen to section in channel changes
|
1845
|
-
* @param channelId - channel id
|
1846
|
-
* @param cb - callback on sections change or error
|
1847
|
-
* @param limit - sections count
|
1848
|
-
*/
|
1849
|
-
subscribeToSectionsInChannel: (channelId: string, cb: (error: null | Error, data: null | {
|
1850
|
-
sections: Section[];
|
1851
|
-
hasNextPage: boolean;
|
1852
|
-
}, fetchMore: null | ((count?: number) => void), isLoading: boolean) => void, limit?: number) => void;
|
1853
|
-
/**
|
1854
|
-
* Listen to channels in widget changes
|
1855
|
-
* @param widgetId - widget id
|
1856
|
-
* @param cb - callback on channels change or error
|
1857
|
-
* @param limit - channels count
|
1858
|
-
*/
|
1859
|
-
subscribeToChannelsInWidget: (widgetId: string, cb: (error: null | Error, data: null | {
|
1860
|
-
channels: Channel[];
|
1861
|
-
hasNextPage: boolean;
|
1862
|
-
}, fetchMore: null | ((count?: number) => void), isLoading: boolean) => void, limit?: number) => void;
|
1863
|
-
subscribeToScreen: SubscribeToScreen;
|
1864
2172
|
subscribeToItemsInRow: SubscribeToItemsInRow;
|
1865
2173
|
subscribeToRowsInScreen: SubscribeToRowsInScreen;
|
1866
2174
|
subscribeToTaggedVideos: SubscribeToTaggedVideos;
|
@@ -1870,6 +2178,17 @@ export declare type TivioSubscriptions = {
|
|
1870
2178
|
}) => void;
|
1871
2179
|
};
|
1872
2180
|
|
2181
|
+
/**
|
2182
|
+
* @public
|
2183
|
+
*/
|
2184
|
+
export declare type TivioVodSource = SourceBase & StartAndContinuePosition & {
|
2185
|
+
type: 'tivio_vod';
|
2186
|
+
/**
|
2187
|
+
* Allows Tivio to load monetization config an apply ads.
|
2188
|
+
*/
|
2189
|
+
videoPath: string;
|
2190
|
+
};
|
2191
|
+
|
1873
2192
|
/**
|
1874
2193
|
* @public
|
1875
2194
|
*/
|
@@ -1959,6 +2278,35 @@ export declare interface TvChannel extends RowItem {
|
|
1959
2278
|
price: number;
|
1960
2279
|
}
|
1961
2280
|
|
2281
|
+
/**
|
2282
|
+
* @public
|
2283
|
+
*/
|
2284
|
+
export declare type TvProgramSource = SourceBase & StartAndContinuePosition & {
|
2285
|
+
type: 'tv_program';
|
2286
|
+
/**
|
2287
|
+
* If epgTo is wrong, Tivio cannot correctly guess if the video it startover or timeshift . For such cases
|
2288
|
+
* Tivio needs explicit tv mode.
|
2289
|
+
* null if source begins in the future.
|
2290
|
+
*/
|
2291
|
+
tvMode: 'startover' | 'timeshift' | null;
|
2292
|
+
/**
|
2293
|
+
* Tivio needs channel name in order to load markers.
|
2294
|
+
*/
|
2295
|
+
channelName: string;
|
2296
|
+
/**
|
2297
|
+
* Tivio needs EPG from in order to load markers.
|
2298
|
+
*/
|
2299
|
+
epgFrom: Date;
|
2300
|
+
/**
|
2301
|
+
* Tivio needs EPG to in order to load markers.
|
2302
|
+
*/
|
2303
|
+
epgTo: Date;
|
2304
|
+
/**
|
2305
|
+
* When the stream (provided in uri) really starts - typically few minutes before epgFrom.
|
2306
|
+
*/
|
2307
|
+
streamStart: Date;
|
2308
|
+
};
|
2309
|
+
|
1962
2310
|
/**
|
1963
2311
|
* @public
|
1964
2312
|
*/
|
@@ -1967,7 +2315,7 @@ export declare const TvTivioProvider: React_2.FC<TivioProviderProps>;
|
|
1967
2315
|
/**
|
1968
2316
|
* @public
|
1969
2317
|
*/
|
1970
|
-
export declare const useAd: () =>
|
2318
|
+
export declare const useAd: () => AdExternal | null;
|
1971
2319
|
|
1972
2320
|
/**
|
1973
2321
|
* @public
|
@@ -2021,28 +2369,6 @@ export declare type UseCancelSubscription = (subscriptionId: string) => {
|
|
2021
2369
|
*/
|
2022
2370
|
export declare const useCancelSubscription: UseCancelSubscription;
|
2023
2371
|
|
2024
|
-
/**
|
2025
|
-
* Use channel
|
2026
|
-
* @param channelId - channel id
|
2027
|
-
* @public
|
2028
|
-
*/
|
2029
|
-
export declare const useChannel: (channelId: string) => {
|
2030
|
-
error: string | null;
|
2031
|
-
data: Channel | null;
|
2032
|
-
};
|
2033
|
-
|
2034
|
-
/**
|
2035
|
-
* Use channels in widget
|
2036
|
-
* @param widgetId - widget id
|
2037
|
-
* @param [limit] - channels count, defaults to 10
|
2038
|
-
* @public
|
2039
|
-
*/
|
2040
|
-
export declare const useChannelsInWidget: (widgetId: string, limit?: number) => {
|
2041
|
-
error: Error | null;
|
2042
|
-
data: PaginationData<Channel> | null;
|
2043
|
-
isLoading: boolean;
|
2044
|
-
};
|
2045
|
-
|
2046
2372
|
/**
|
2047
2373
|
* @public
|
2048
2374
|
*/
|
@@ -2056,13 +2382,6 @@ export declare type UseChannelSource = (tvChannelId: string) => {
|
|
2056
2382
|
*/
|
2057
2383
|
export declare const useCurrentMarker: () => Marker | null;
|
2058
2384
|
|
2059
|
-
/**
|
2060
|
-
* @public
|
2061
|
-
*/
|
2062
|
-
export declare const useFreePurchase: () => {
|
2063
|
-
purchase: (monetizationId: string) => Promise<void>;
|
2064
|
-
};
|
2065
|
-
|
2066
2385
|
/**
|
2067
2386
|
* @public
|
2068
2387
|
*/
|
@@ -2093,12 +2412,6 @@ export declare const useItemsInRow: (rowId: string, options?: SubscribeToItemsIn
|
|
2093
2412
|
error: Error | null;
|
2094
2413
|
};
|
2095
2414
|
|
2096
|
-
/**
|
2097
|
-
* @deprecated will be removed in v4
|
2098
|
-
* @public
|
2099
|
-
*/
|
2100
|
-
export declare function useLastVideoByWidgetId(widgetId: string): Video | null;
|
2101
|
-
|
2102
2415
|
/**
|
2103
2416
|
* @public
|
2104
2417
|
*/
|
@@ -2154,9 +2467,23 @@ export declare const usePurchasesWithVideos: () => {
|
|
2154
2467
|
* @public
|
2155
2468
|
*/
|
2156
2469
|
export declare type User = {
|
2470
|
+
/**
|
2471
|
+
* Returns "active" (non-expired) purchases, so they give access to some content.
|
2472
|
+
* Does not return voucher purchases, because they give access to videos/subscriptions only for user who activates voucher,
|
2473
|
+
* not for user who purchases it.
|
2474
|
+
*/
|
2157
2475
|
purchases: Purchase[];
|
2476
|
+
/**
|
2477
|
+
* Returns all PAID or CANCELLED user purchases (expired and non-expired)
|
2478
|
+
*/
|
2158
2479
|
allPurchases: Purchase[];
|
2480
|
+
/**
|
2481
|
+
* Returns "active" (not CANCELLED) VoD purchases ("transaction" type)
|
2482
|
+
*/
|
2159
2483
|
purchasedVods: Purchase[];
|
2484
|
+
/**
|
2485
|
+
* Returns "active" (non-expired) subscription purchases
|
2486
|
+
*/
|
2160
2487
|
purchasedSubscriptions: Purchase[];
|
2161
2488
|
isPurchasesInitialized: boolean;
|
2162
2489
|
isSignedIn: boolean;
|
@@ -2190,16 +2517,6 @@ export declare enum UserType {
|
|
2190
2517
|
TIVIO_USER = "TIVIO_USER"
|
2191
2518
|
}
|
2192
2519
|
|
2193
|
-
/**
|
2194
|
-
* @deprecated
|
2195
|
-
*
|
2196
|
-
* Use app screen
|
2197
|
-
* @param screenId - screen ID
|
2198
|
-
* @param options - subscribe to screen options
|
2199
|
-
* @public
|
2200
|
-
*/
|
2201
|
-
export declare const useScreen: (screenId: string, options?: ScreenOptions | undefined) => never;
|
2202
|
-
|
2203
2520
|
/**
|
2204
2521
|
* @public
|
2205
2522
|
*/
|
@@ -2231,28 +2548,6 @@ export declare type UseSearchOptions = PaginationOptions & Partial<{
|
|
2231
2548
|
*/
|
2232
2549
|
export declare type UseSearchResult<T extends ALGOLIA_INDEX_NAME> = T extends ALGOLIA_INDEX_NAME.VIDEOS ? Video : T extends ALGOLIA_INDEX_NAME.TAGS ? Tag : T extends ALGOLIA_INDEX_NAME.TV_CHANNELS ? TvChannel : unknown;
|
2233
2550
|
|
2234
|
-
/**
|
2235
|
-
* Use section
|
2236
|
-
* @param sectionId - section id
|
2237
|
-
* @public
|
2238
|
-
*/
|
2239
|
-
export declare const useSection: (sectionId: string) => {
|
2240
|
-
error: string | null;
|
2241
|
-
data: Section | null;
|
2242
|
-
};
|
2243
|
-
|
2244
|
-
/**
|
2245
|
-
* Use section in channel
|
2246
|
-
* @param channelId - channel id
|
2247
|
-
* @param [limit] - sections count, defaults to 10
|
2248
|
-
* @public
|
2249
|
-
*/
|
2250
|
-
export declare const useSectionsInChannel: (channelId: string, limit?: number) => {
|
2251
|
-
error: Error | null;
|
2252
|
-
data: PaginationData<Section> | null;
|
2253
|
-
isLoading: boolean;
|
2254
|
-
};
|
2255
|
-
|
2256
2551
|
/**
|
2257
2552
|
* @public
|
2258
2553
|
*/
|
@@ -2312,18 +2607,6 @@ export declare const useVideo: (videoId?: string | undefined) => {
|
|
2312
2607
|
error: string | null;
|
2313
2608
|
};
|
2314
2609
|
|
2315
|
-
/**
|
2316
|
-
* Use videos in section
|
2317
|
-
* @param sectionId - section id
|
2318
|
-
* @param [limit] - videos count, defaults to 10
|
2319
|
-
* @public
|
2320
|
-
*/
|
2321
|
-
export declare const useVideosInSection: (sectionId?: string | undefined, limit?: number) => {
|
2322
|
-
error: Error | null;
|
2323
|
-
data: PaginationData<Video> | null;
|
2324
|
-
isLoading: boolean;
|
2325
|
-
};
|
2326
|
-
|
2327
2610
|
/**
|
2328
2611
|
* @public
|
2329
2612
|
*/
|
@@ -2349,16 +2632,6 @@ export declare const useWatchWithoutAdsOffer: () => {
|
|
2349
2632
|
showPurchaseDialog: () => void;
|
2350
2633
|
};
|
2351
2634
|
|
2352
|
-
/**
|
2353
|
-
* Use widget
|
2354
|
-
* @param widgetId - widget id
|
2355
|
-
* @public
|
2356
|
-
*/
|
2357
|
-
export declare const useWidget: (widgetId: string) => {
|
2358
|
-
error: string;
|
2359
|
-
widget: Widget | null;
|
2360
|
-
};
|
2361
|
-
|
2362
2635
|
/**
|
2363
2636
|
* @public
|
2364
2637
|
*/
|
@@ -2387,7 +2660,8 @@ export declare enum VastProvider {
|
|
2387
2660
|
MALL_TV = "malltv",
|
2388
2661
|
MALL_TV_PREBID = "malltv-prebid",
|
2389
2662
|
PRIMA = "prima",
|
2390
|
-
TEST = "test"
|
2663
|
+
TEST = "test",
|
2664
|
+
TEST_VPAID = "test-vpaid"
|
2391
2665
|
}
|
2392
2666
|
|
2393
2667
|
/**
|
@@ -2469,26 +2743,10 @@ export declare enum VideoContentType {
|
|
2469
2743
|
/**
|
2470
2744
|
* @public
|
2471
2745
|
*/
|
2472
|
-
export declare
|
2473
|
-
tvProfiProgramId?: string;
|
2474
|
-
tvProfiContentId?: string;
|
2475
|
-
tvProfiSerialId?: string;
|
2476
|
-
contentId?: string;
|
2477
|
-
provysId?: string;
|
2478
|
-
mallTvEntityId?: string;
|
2479
|
-
/**
|
2480
|
-
* DRM content Key ID - should't be more connected with buyDRM or streamOnline? It is not general thing
|
2481
|
-
*/
|
2482
|
-
keyId?: string;
|
2483
|
-
}
|
2746
|
+
export declare type VideoExternals = JojExternals | MallTvExternals | OktagonExternals;
|
2484
2747
|
|
2485
2748
|
declare type VideoPath = string;
|
2486
2749
|
|
2487
|
-
/**
|
2488
|
-
* @public
|
2489
|
-
*/
|
2490
|
-
export declare const VideosContext: React_2.Context<DataState<Video>>;
|
2491
|
-
|
2492
2750
|
/**
|
2493
2751
|
* Video type.
|
2494
2752
|
* @public
|
@@ -2502,7 +2760,11 @@ export declare enum VideoType {
|
|
2502
2760
|
* Video is a standard single video.
|
2503
2761
|
*/
|
2504
2762
|
VIDEO = "VIDEO",
|
2505
|
-
TV_PROGRAM = "TV_PROGRAM"
|
2763
|
+
TV_PROGRAM = "TV_PROGRAM",
|
2764
|
+
/**
|
2765
|
+
* Video object represents whole series, e.g. tv show.
|
2766
|
+
*/
|
2767
|
+
SERIES = "SERIES"
|
2506
2768
|
}
|
2507
2769
|
|
2508
2770
|
/**
|