@tivio/sdk-react 2.4.1 → 2.4.2-alpha

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,39 +1,46 @@
1
- import { SubscribeToTaggedVideos, UseCancelSubscription } from '@tivio/common';
1
+ import { Currency, SubscribeToTaggedVideos, UseCancelSubscription } from '@tivio/common';
2
2
  import { ComponentType } from 'react';
3
3
  import { Logger } from '../services/logger';
4
4
  import { FetchPackage } from '../services/packageLoader';
5
5
  import { Disposer, Empty, Nullable } from './common';
6
6
  import { Channel, Language, RemoteProviderProps, Section, TivioSources, TivioWidgetProps, UserData, WebPlayerProps, Widget } from './types';
7
7
  import type { AdSource, PlayerWrapper } from './customPlayer.types';
8
- import type { Monetization, QerkoPaymentInfo, Screen, SubscribeToItemsInRow, SubscribeToRowsInScreen, SubscribeToScreen, TvAppProps, Video, User, Purchase, UseSearch } from '@tivio/common';
8
+ import type { Monetization, Purchase, QerkoPaymentInfo, Screen, SubscribeToItemsInRow, SubscribeToRowsInScreen, SubscribeToScreen, TvAppProps, User, UseSearch, Video } from '@tivio/common';
9
9
  import type React from 'react';
10
10
  declare type Settings = {
11
11
  onSetUser: (handler: (userId: string, userPayload: unknown) => void) => void;
12
12
  setUser: (userId: string, userPayload: unknown) => void;
13
13
  };
14
+ interface PlayerCapability {
15
+ codec: 'h264' | 'h265';
16
+ encryption: 'fairplay' | 'none' | 'playready' | 'widevine';
17
+ protocol: 'dash' | 'hls';
18
+ }
14
19
  declare type InternalConfig = {
15
- enable?: boolean;
16
- secret: string | null;
17
- verbose?: boolean;
18
- /**
19
- * @private URL of resolver. Resolver is a script used to fetch remove code bundle
20
- */
21
- resolverUrl: string;
22
20
  /**
23
21
  * @private URL of remote code bundle to be fetched directly (without using resolver)
24
22
  */
25
23
  bundleUrlOverride?: string;
24
+ currency: Currency;
25
+ deviceCapabilities: PlayerCapability[];
26
26
  disableUnmounting?: boolean;
27
- logger?: Logger | null;
28
- fetchPackage: FetchPackage;
29
- pubSub: PubSub;
30
- LoaderComponent?: ComponentType;
27
+ enable?: boolean;
28
+ enableSentry?: boolean;
31
29
  ErrorComponent?: ComponentType<{
32
30
  error: string | null;
33
31
  }>;
32
+ fetchPackage: FetchPackage;
34
33
  language?: string;
34
+ LoaderComponent?: ComponentType;
35
+ logger?: Logger | null;
36
+ pubSub: PubSub;
37
+ /**
38
+ * @private URL of resolver. Resolver is a script used to fetch remove code bundle
39
+ */
40
+ resolverUrl: string;
35
41
  sdkVersion: string;
36
- enableSentry?: boolean;
42
+ secret: string | null;
43
+ verbose?: boolean;
37
44
  };
38
45
  declare type Events = {
39
46
  'on-ready': RemoteBundleState;
@@ -43,7 +50,9 @@ interface PubSub {
43
50
  publish: <K extends keyof Events>(triggerName: K, payload: Events[K]) => Empty;
44
51
  subscribe: <K extends keyof Events>(triggerName: K, onMessage: (data: Events[K]) => Empty) => Disposer;
45
52
  }
46
- declare type Config = Pick<InternalConfig, 'enable' | 'secret' | 'verbose' | 'logger' | 'disableUnmounting' | 'bundleUrlOverride' | 'LoaderComponent' | 'ErrorComponent' | 'language' | 'enableSentry'>;
53
+ declare type Config = Pick<InternalConfig, 'bundleUrlOverride' | 'currency' | 'disableUnmounting' | 'enable' | 'enableSentry' | 'ErrorComponent' | 'language' | 'LoaderComponent' | 'logger' | 'secret' | 'verbose'> & {
54
+ deviceCapabilities: PlayerCapability[] | 'auto';
55
+ };
47
56
  declare type TivioSubscriptions = {
48
57
  subscribeToUser: (cb: (error: string | null, user: User | null) => void) => void;
49
58
  /**
@@ -194,6 +203,8 @@ declare type TivioHooks = {
194
203
  useAd: () => [(AdSource | null)];
195
204
  useCancelSubscription: UseCancelSubscription;
196
205
  useSearch: UseSearch;
206
+ useVoucher: (voucherId: string) => any;
207
+ useLastVideoByWidgetId: (widgetId: string) => Video | null;
197
208
  };
198
209
  declare type TivioBundle = {
199
210
  components: TivioComponents;
@@ -201,8 +212,12 @@ declare type TivioBundle = {
201
212
  auth: TivioAuth;
202
213
  hooks: TivioHooks;
203
214
  init: (config: Config) => void | Promise<void>;
204
- purchaseVideoWithQerko: (videoId: string, monetizationId: string) => Promise<QerkoPaymentInfo>;
205
- purchaseSubscriptionWithQerko: (monetizationId: string) => Promise<QerkoPaymentInfo>;
215
+ purchaseVideoWithQerko: (videoId: string, monetizationId: string, voucher?: {
216
+ expirationDate: Date;
217
+ }) => Promise<QerkoPaymentInfo>;
218
+ purchaseSubscriptionWithQerko: (monetizationId: string, voucher?: {
219
+ expirationDate: Date;
220
+ }) => Promise<QerkoPaymentInfo>;
206
221
  setLanguage: (language: Language) => void;
207
222
  setUser: (userId: string, userPayload?: unknown) => void;
208
223
  sources: TivioSources;
@@ -217,4 +232,4 @@ declare type RemoteBundleState = {
217
232
  settings: Settings;
218
233
  state: 'loading' | 'error' | 'ready';
219
234
  } & Nullable<TivioBundle>;
220
- export type { RemoteBundleState, Config, Settings, InternalConfig, TivioBundle, TivioBundleFile, TivioHooks, TivioComponents, TivioAuth, TivioGetters, TivioSubscriptions, Events, PubSub, };
235
+ export type { RemoteBundleState, Config, Settings, InternalConfig, TivioBundle, TivioBundleFile, TivioHooks, TivioComponents, TivioAuth, TivioGetters, TivioSubscriptions, Events, PubSub, PlayerCapability, Currency, };
package/doc/changelog.md CHANGED
@@ -1,59 +0,0 @@
1
- ## Changelog
2
- * Unreleased
3
- * v2.4.1
4
- * patch: improved doc about player wrapper
5
- * v2.4.0
6
- * patch: improved Player wrapper types
7
- * minor: added Tivio DOM events `tivio_key_input_handling_change`, `tivio_context_switch` and `tivio_request_goto`
8
- * patch: added support for remote code on browsers that do not implement [indexedDB API](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)
9
- * patch: added support for browsers that do not implement [indexedDB API](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)
10
- * v2.3.4
11
- * patch: fix of usePurchaseSubscription not reactive
12
- * v2.3.3
13
- * patch: fix of useUser not updating
14
- * v2.3.2
15
- * patch: next app doesn't fail anymore due to "self is not defined"
16
- * v2.3.1
17
- * patch: fix of @tivio/common dependency
18
- * v2.3.0
19
- * minor: add useTaggedVideos that allows to fetch videos with given tags
20
- * minor: add option to fetch tags (on hook useItemsInRow), useVideo always fetching videos tags
21
- * v2.2.1
22
- * patch: disable Sentry when no config is supplied to `TivioProvider`
23
- * v2.2.0
24
- * patch: reduced bundle size
25
- * minor: disable Sentry when no config is supplied to `TivioProvider` or when Tivio is disabled `{ enable: false }`, or when Sentry is disabled via config `{ enableSentry: false }`
26
- * v2.1.5
27
- * patch fix of `useVideosInSection` hook (fetching video's monetizations)
28
- * v2.1.4
29
- * patch: fix re-rendering of `useAd` during non-skippable ads (requires core-react-dom@2.1.9)
30
- * v2.1.3
31
- * patch: fix changelog
32
- * v2.1.2
33
- * patch: Fixed exported types
34
- * v2.1.1
35
- * patch: TivioWidget now correctly reports `false` via `onEnabled` callback when in invalid internal state
36
- * v2.1.0
37
- * patch: fix of useItemsInRow hook
38
- * patch: fix of useScreen hook
39
- * add: useRowsInScreen hook
40
- * v2.0.3
41
- * patch: fix of useItemsInRow hook
42
- * v2.0.2
43
- * patch: screen and row IDs fixed
44
- * `TivioBundle.subscriptions.subscribeToItemsInRow` now accepts user-defined ID via studio.tiv.io
45
- * `TivioBundle.subscriptions.subscribeToScreen` now accepts user-defined ID via studio.tiv.io
46
- * `Screen` and `Row` types returned by `useScreen()` return their user-defined IDs (`.id`) correctly
47
- * v2.0.1
48
- * no changes
49
- * v2.0.0
50
- * major: video.channelId can now be `string | null` used to be `string`
51
- * minor: added data API and hooks for screens (screens, rows of screen and row items)
52
- * hooks: `useScreen()`, `useItemsInRow()`
53
- * api: `TivioBundle.subscriptions.subscribeToScreen`, `TivioBundle.subscriptions.subscribeToItemsInRow`
54
- * v1.3.6
55
- * ?
56
- * v1.3.5
57
- * minor: added WebPlayer props (canReplay, showMarkers, customShortcuts, enableKeyboardShortcuts, source.poster)
58
- * v1.3.4
59
- * ...
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tivio/sdk-react",
3
- "version": "2.4.1",
3
+ "version": "2.4.2-alpha",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
6
6
  "source": "src/index.ts",
@@ -14,7 +14,7 @@
14
14
  "start": "yarn ts-node ./scripts/start.ts",
15
15
  "test": "jest --config=./jest.config.js --coverage",
16
16
  "clean": "rm -rf dist",
17
- "prepublishOnly": "yarn && yarn ts-node ./scripts/prepublish.ts && yarn run build",
17
+ "prepublishOnly": "yarn && yarn run build && yarn ts-node ./scripts/prepublish.ts",
18
18
  "postpublish": "yarn ts-node ./scripts/postpublish.ts",
19
19
  "publish:alpha": "npm publish --tag alpha",
20
20
  "check:cycles ": "npx madge --circular src/**/*"
@@ -27,18 +27,16 @@
27
27
  "@material-ui/core": "^4.11.2",
28
28
  "@material-ui/icons": "^4.11.2",
29
29
  "@sentry/browser": "^6.1.0",
30
- "@tivio/common": "1.1.62",
30
+ "@tivio/common": "1.1.68",
31
31
  "firebase": "^8.2.3",
32
32
  "formik": "^2.2.7",
33
33
  "i18next": "^19.8.4",
34
34
  "mobx-react": "^7.1.0",
35
35
  "mobx": "^6.0.4",
36
- "react-dom": "^17.0.2",
37
36
  "react-i18next": "^9.0.10",
38
37
  "react-router-dom": "^5.2.0",
39
38
  "react-spring": "^9.2.4",
40
39
  "react-virtualized": "^9.22.3",
41
- "react": "^17.0.2",
42
40
  "styled-components": "^5.2.1",
43
41
  "yup": "^0.32.9"
44
42
  },
@@ -64,6 +62,8 @@
64
62
  "jest-fetch-mock": "^3.0.3",
65
63
  "madge": "^5.0.1",
66
64
  "node-fetch": "^2.6.1",
65
+ "react": "^17.0.2",
66
+ "react-dom": "^17.0.2",
67
67
  "stream-browserify": "^3.0.0",
68
68
  "timers-browserify": "^2.0.12",
69
69
  "ts-jest": "^26.4.4",