@vkontakte/videoplayer 1.1.96 → 1.1.97-dev.02230ed18.0
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/es2015.cjs +11 -11
- package/es2015.esm.js +10 -10
- package/esnext.cjs +12 -12
- package/esnext.esm.js +10 -10
- package/evergreen.esm.js +10 -10
- package/package.json +5 -5
- package/types/VKVideoPlayer/index.svelte.d.ts +1 -0
- package/types/store/composition.d.ts +2 -1
- package/types/store/index.d.ts +1 -1
- package/types/store/modules/playbackRateStore/index.d.ts +1 -1
- package/types/store/modules/playbackRateStore/playbackRateStore.store.d.ts +4 -0
- package/types/store/modules/subtitlesStore/subtitlesStore.store.d.ts +2 -2
- package/types/store/types.d.ts +6 -40
- package/types/utils/hooks/useIosSafariFullscreenSubtitles.d.ts +2 -2
- package/types/utils/parseExperiment.d.ts +8 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vkontakte/videoplayer",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.97-dev.02230ed18.0",
|
|
4
4
|
"author": "vk.com",
|
|
5
5
|
"description": "Videoplayer based on the vk.com platform",
|
|
6
6
|
"homepage": "https://vk.com",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
],
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@adtech/rbadman": "2.2.57",
|
|
46
|
-
"@vkontakte/videoplayer-core": "2.0.
|
|
47
|
-
"@vkontakte/videoplayer-interactive": "1.0.
|
|
48
|
-
"@vkontakte/videoplayer-shared": "1.0.
|
|
49
|
-
"@vkontakte/videoplayer-statistics": "1.0.
|
|
46
|
+
"@vkontakte/videoplayer-core": "2.0.166-dev.02230ed18.0",
|
|
47
|
+
"@vkontakte/videoplayer-interactive": "1.0.72-dev.02230ed18.0",
|
|
48
|
+
"@vkontakte/videoplayer-shared": "1.0.95-dev.02230ed18.0",
|
|
49
|
+
"@vkontakte/videoplayer-statistics": "1.0.112-dev.02230ed18.0"
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -3,7 +3,7 @@ import type { IVKVideoPlayerConfig } from "../types";
|
|
|
3
3
|
import type { IUIStatistics } from "../services/statistics";
|
|
4
4
|
import type { IStore } from "./index";
|
|
5
5
|
import type { FakeIsPlayingStore, GraphIsOpenedStore, HighlightedMenuItemsStore, InteractiveControlsOpacityStore, LanguageStore, NotificationsStore, PictureInPictureStore, IQoeStore, SeekToInteractiveDisabledTooltipStore, ShowInteractiveTimeIndicatorTooltipStore, SubtitlesStore, QualityStore, PlaybackRateStore } from "./modules";
|
|
6
|
-
import type { AppTracer } from "@vkontakte/videoplayer-shared";
|
|
6
|
+
import type { AppTracer, ITracer } from "@vkontakte/videoplayer-shared";
|
|
7
7
|
import type { Interactives } from "@vkontakte/videoplayer-interactive";
|
|
8
8
|
export interface ICompositionParams {
|
|
9
9
|
legacyStore: IStore;
|
|
@@ -12,6 +12,7 @@ export interface ICompositionParams {
|
|
|
12
12
|
interactiveController: Interactives | undefined;
|
|
13
13
|
getStatisticsService: () => IUIStatistics | undefined;
|
|
14
14
|
getAppTracer: () => AppTracer | undefined;
|
|
15
|
+
tracer: ITracer;
|
|
15
16
|
}
|
|
16
17
|
export interface ICompositionResult {
|
|
17
18
|
stores: {
|
package/types/store/index.d.ts
CHANGED
|
@@ -4,4 +4,4 @@ export type { IStore, IAdsState, IUIState, EnrichedStore } from "./types";
|
|
|
4
4
|
* Store приложения.
|
|
5
5
|
* Если будет слишком большим - можно разделить его на модули
|
|
6
6
|
*/
|
|
7
|
-
export declare const createStore: ({
|
|
7
|
+
export declare const createStore: ({ initialVideoId, isTouch, isLiveCatchUpMode, isAudioDisabled, canDownload, callbacks, webApi, videoEpisodes: initialVideoEpisodes, previewThumbsData: initialPreviewThumbsData, uiConfig, coreConfig, player: playerInstance, disabledControls, isInteractive, interactiveRanges$, isInteractiveTime$, replayInteractive, stopPlayer, hasInteractiveBranches, playPrevChapterDisabledTooltip, additionalButtons, additionalSettingsMenuItems, additionalContextMenuItems, playPrevVideo, playNextVideo, onVideoChanged, looped, getStatisticsService, internalsExposure, playerView, playerId, metaConfig, getAppTracer, getAdmanWrapper, logger, adsEnabled, rootTracer, tracer }: IStoreParams) => IStore;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Playback Rate Store Module
|
|
3
3
|
*/
|
|
4
|
-
export { createPlaybackRateStore, type PlaybackRateStoreDeps, type PlaybackRateStoreState, type PlaybackRateStoreActions, type PlaybackRateStore } from "./playbackRateStore.store";
|
|
4
|
+
export { createPlaybackRateStore, type PlaybackRateStoreDeps, type PlaybackRateStoreState, type PlaybackRateStoreActions, type PlaybackRateStoreExternalActions, type PlaybackRateStore } from "./playbackRateStore.store";
|
|
5
5
|
export { playbackRateModule } from "./playbackRateStore.module";
|
|
6
6
|
export { PLAYBACK_RATE_STORE_TOKEN } from "./playbackRateStore.token";
|
|
@@ -51,9 +51,13 @@ export interface PlaybackRateStoreActions {
|
|
|
51
51
|
decrementPlaybackRate: () => VideoPlaybackRate;
|
|
52
52
|
changeDoubleForwardOn: (enabled: boolean) => void;
|
|
53
53
|
}
|
|
54
|
+
export interface PlaybackRateStoreExternalActions {
|
|
55
|
+
setPlaybackRate: (playbackRate: PlaybackRate) => void;
|
|
56
|
+
}
|
|
54
57
|
export interface PlaybackRateStore {
|
|
55
58
|
state: PlaybackRateStoreState;
|
|
56
59
|
actions: PlaybackRateStoreActions;
|
|
60
|
+
externalActions: PlaybackRateStoreExternalActions;
|
|
57
61
|
}
|
|
58
62
|
/**
|
|
59
63
|
* Создаёт playback rate store
|
|
@@ -77,9 +77,9 @@ export interface SubtitlesStoreState {
|
|
|
77
77
|
*/
|
|
78
78
|
export interface SubtitlesStoreInternalActions {
|
|
79
79
|
/** Установить субтитры */
|
|
80
|
-
setSubtitle: (subtitle: VideoSubtitle | undefined
|
|
80
|
+
setSubtitle: (subtitle: VideoSubtitle | undefined) => void;
|
|
81
81
|
/** Переключить субтитры */
|
|
82
|
-
toggleSubtitle: (
|
|
82
|
+
toggleSubtitle: () => void;
|
|
83
83
|
/** Включить субтитры */
|
|
84
84
|
subtitleOn: (external: boolean, id?: string) => void;
|
|
85
85
|
/** Выключить субтитры */
|
package/types/store/types.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import type { ChromecastState, IAudioStream, IConfig as ICoreInitVideoConfig, IExternalTextTrack, IOptionalTuningConfig, IPlayer, ISources,
|
|
1
|
+
import type { ChromecastState, IAudioStream, IConfig as ICoreInitVideoConfig, IExternalTextTrack, IOptionalTuningConfig, IPlayer, ISources, IVideoStream, PlaybackState, VideoFormat } from "@vkontakte/videoplayer-core";
|
|
2
2
|
import type { InteractiveRange } from "@vkontakte/videoplayer-interactive";
|
|
3
|
-
import type { AppTracer, IError, ILogger,
|
|
3
|
+
import type { AppTracer, IError, ILogger, InternalsExposure, IRectangle, IRootTracer, ISubject, ITracer, IValueObservable, IValueSubject, QualityLimits, VideoQuality } from "@vkontakte/videoplayer-shared";
|
|
4
4
|
import type { SeekAction, ThinOneStat } from "@vkontakte/videoplayer-statistics";
|
|
5
5
|
import type { Readable, Writable } from "svelte/store";
|
|
6
|
-
import type { AdditionalButtonDeprecated, AdsPlaybackState, ControlBlocksRefs, ControlsKeys, HotKeyMapData, IAnnotationsApi, IControlInfo, IDisabledControls, IInteractiveData, IPictureInPictureApi, IPlayerControlsRef, IPlayerPhase, ITimelinePreviewThumbsData, IVideoEpisode, IVKVideoPlayerCallbacks, IVKVideoPlayerUICallbacks, Position, Size,
|
|
6
|
+
import type { AdditionalButtonDeprecated, AdsPlaybackState, ControlBlocksRefs, ControlsKeys, HotKeyMapData, IAnnotationsApi, IControlInfo, IDisabledControls, IInteractiveData, IPictureInPictureApi, IPlayerControlsRef, IPlayerPhase, ITimelinePreviewThumbsData, IVideoEpisode, IVKVideoPlayerCallbacks, IVKVideoPlayerUICallbacks, Position, Size, VideoPlayerView, VideoQualityUI } from "../types";
|
|
7
7
|
import type { AdmanWrapper } from "../components/Ads/admanWrapper";
|
|
8
|
-
import type { Key } from "../translation/types";
|
|
9
8
|
import type { QualitySettingsAppliesTo } from "../utils/userSettings";
|
|
10
9
|
import type { GridTypes, PlayPrevChapterDisabledTooltipKey } from "../constans";
|
|
11
10
|
import type { AdditionalButton, AdditionalDesktopControlPanelButton } from "../components/Controls/types";
|
|
@@ -31,7 +30,6 @@ export interface IAdsStateValues {
|
|
|
31
30
|
}
|
|
32
31
|
export type IAdsState = { [K in keyof IAdsStateValues]: Writable<IAdsStateValues[K]> };
|
|
33
32
|
export interface IUIState {
|
|
34
|
-
t: (key: Key, params?: Record<string, string>) => string;
|
|
35
33
|
isMinimalView$: Writable<boolean>;
|
|
36
34
|
controlsVisible: Writable<boolean>;
|
|
37
35
|
/**
|
|
@@ -130,14 +128,6 @@ export interface IUIState {
|
|
|
130
128
|
* Положение заголовка названия видео.
|
|
131
129
|
*/
|
|
132
130
|
videoTitleInfo: Writable<IControlInfo | undefined>;
|
|
133
|
-
/**
|
|
134
|
-
* Ускорение видео х2.
|
|
135
|
-
*/
|
|
136
|
-
doubleForwardOn$: Writable<boolean>;
|
|
137
|
-
/**
|
|
138
|
-
* Определяет, что двойное ускорение видео доступно.
|
|
139
|
-
*/
|
|
140
|
-
doubleForwardAvailable$: Readable<boolean>;
|
|
141
131
|
previewTrackActive: Writable<boolean>;
|
|
142
132
|
previewTrackDragInProgress: Writable<boolean>;
|
|
143
133
|
previewTrackAvailable: Readable<boolean>;
|
|
@@ -159,7 +149,6 @@ export interface IPlayerState {
|
|
|
159
149
|
isLoaderVisible: Readable<boolean>;
|
|
160
150
|
bufferedProgress$: Readable<number>;
|
|
161
151
|
isLive$: Readable<boolean | undefined>;
|
|
162
|
-
canChangePlaybackSpeed$: Readable<boolean | undefined>;
|
|
163
152
|
isActiveLive$: Readable<boolean | undefined>;
|
|
164
153
|
isOldestAvailableLive$: Readable<boolean | undefined>;
|
|
165
154
|
isRewindableLive$: Readable<boolean>;
|
|
@@ -175,15 +164,8 @@ export interface IPlayerState {
|
|
|
175
164
|
currentQuality$: Readable<VideoQuality | undefined>;
|
|
176
165
|
autoQualityLimitingAvailable$: Readable<boolean>;
|
|
177
166
|
isAutoQualityEnabled$: Readable<boolean | undefined>;
|
|
178
|
-
availableQualities$: Readable<VideoQualityForRender[]>;
|
|
179
167
|
currentPlaybackRate$: Readable<number>;
|
|
180
|
-
availablePlaybackRates$: Readable<VideoPlaybackRate[]>;
|
|
181
|
-
currentSubtitle$: Readable<Omit<VideoSubtitle, "selected">>;
|
|
182
|
-
availableTextTracks$: Readable<ITextTrack[]>;
|
|
183
|
-
availableSubtitlesList$: Readable<VideoSubtitle[]>;
|
|
184
|
-
currentSubtitleCaptions$: Readable<VideoSubtitleParsed["texts"]>;
|
|
185
168
|
previewThumbsData$: Writable<ITimelinePreviewThumbsData | undefined>;
|
|
186
|
-
isAutoSubtitleCaptionVisible$: Writable<boolean>;
|
|
187
169
|
chromecastState$: Readable<ChromecastState>;
|
|
188
170
|
chromecastDeviceName$: Readable<string | undefined>;
|
|
189
171
|
chromecastConnected$: Readable<boolean>;
|
|
@@ -211,10 +193,6 @@ export interface IPlayerState {
|
|
|
211
193
|
playPrevChapterDisabledTooltip: PlayPrevChapterDisabledTooltipKey;
|
|
212
194
|
looped$: Writable<boolean>;
|
|
213
195
|
loadedMetadata$: Writable<boolean>;
|
|
214
|
-
/**
|
|
215
|
-
* Определяет, можно ли в целом увидеть/выбрать Авто режим выбора качества.
|
|
216
|
-
*/
|
|
217
|
-
isAutoQualityAvailable$: Readable<boolean>;
|
|
218
196
|
}
|
|
219
197
|
export interface IStoreInternalActions {
|
|
220
198
|
preload: () => void;
|
|
@@ -236,11 +214,6 @@ export interface IStoreInternalActions {
|
|
|
236
214
|
setAudioStream: (stream: IAudioStream) => void;
|
|
237
215
|
setVideoStream: (stream: IVideoStream) => void;
|
|
238
216
|
setQuality: (quality: VideoQualityUI, info?: SetQualityInfo) => void;
|
|
239
|
-
setPlaybackRate: (playbackRate: PlaybackRate) => void;
|
|
240
|
-
incrementPlaybackRate: () => VideoPlaybackRate;
|
|
241
|
-
decrementPlaybackRate: () => VideoPlaybackRate;
|
|
242
|
-
setSubtitle: (subtitle?: VideoSubtitle) => void;
|
|
243
|
-
toggleSubtitle: () => void;
|
|
244
217
|
togglePictureInPicture: () => void;
|
|
245
218
|
startScrubbing: (progress: number) => void;
|
|
246
219
|
progressScrubbing: (progress: number) => void;
|
|
@@ -273,7 +246,6 @@ export interface IStoreInternalActions {
|
|
|
273
246
|
holdCamera(): void;
|
|
274
247
|
releaseCamera(): void;
|
|
275
248
|
downloadVideo: () => void;
|
|
276
|
-
setLanguage: (language: InterfaceLanguage | string) => Promise<void>;
|
|
277
249
|
nextMovie: (movieId: number) => void;
|
|
278
250
|
correctSeekTimeToInteractive: (time: number) => number;
|
|
279
251
|
replayInteractive?: () => void;
|
|
@@ -289,7 +261,6 @@ export interface IStoreInternalActions {
|
|
|
289
261
|
nextVideoAnnouncementAuto: () => void;
|
|
290
262
|
nextVideoAnnouncementCancel: () => void;
|
|
291
263
|
checkFullscreenSupport: () => boolean;
|
|
292
|
-
changeDoubleForwardOn: (enabled: boolean) => void;
|
|
293
264
|
closePreviewTrack: () => void;
|
|
294
265
|
previewTrackOpened: () => void;
|
|
295
266
|
previewTrackDragStarted: () => void;
|
|
@@ -303,11 +274,8 @@ export interface IStoreExternalActions {
|
|
|
303
274
|
stop: () => void;
|
|
304
275
|
seekTime: (time: number) => void;
|
|
305
276
|
seekEpisodeStartTime: (time: number) => void;
|
|
306
|
-
setPlaybackRate: (playbackRate: PlaybackRate) => void;
|
|
307
277
|
setAutoQualityLimits: (limits: QualityLimits) => void;
|
|
308
278
|
setMuted: (muted: boolean) => void;
|
|
309
|
-
toggleSubtitle: () => void;
|
|
310
|
-
changeSubtitle: (enabled: boolean, id?: string) => void;
|
|
311
279
|
setVolume: (volume: number) => void;
|
|
312
280
|
returnFocusToEpisodes: () => void;
|
|
313
281
|
updateAdditionalSettingsItem: (itemId: string, fields: Partial<Omit<AdditionalSettingsMenuItem, "id" | "type">>) => void;
|
|
@@ -347,9 +315,6 @@ export interface IStore {
|
|
|
347
315
|
initVideo: (config: IStoreInitVideoConfig) => void;
|
|
348
316
|
videoId$: Writable<number | undefined>;
|
|
349
317
|
playerPhase: IPlayerPhase;
|
|
350
|
-
interfaceLanguage$: Readable<InterfaceLanguage | string>;
|
|
351
|
-
interfaceLanguageUpdated$: ISubject<void>;
|
|
352
|
-
isCyrillicRelatedInterface$: Readable<boolean>;
|
|
353
318
|
interactiveData?: IInteractiveData;
|
|
354
319
|
vsid$: Writable<string | undefined>;
|
|
355
320
|
events: IStoreEvents;
|
|
@@ -376,10 +341,9 @@ export interface IStore {
|
|
|
376
341
|
export type EnrichedStore = IStore & {
|
|
377
342
|
stores: ICompositionResult["stores"];
|
|
378
343
|
destroyComposedStore: () => void;
|
|
344
|
+
t: ICompositionResult["stores"]["languageStore"]["actions"]["t"];
|
|
379
345
|
};
|
|
380
346
|
export interface IStoreParams {
|
|
381
|
-
interfaceLanguage: InterfaceLanguage | string;
|
|
382
|
-
isCyrillicRelatedInterface: boolean;
|
|
383
347
|
initialVideoId?: number;
|
|
384
348
|
isTouch: boolean;
|
|
385
349
|
isLiveCatchUpMode?: boolean;
|
|
@@ -422,4 +386,6 @@ export interface IStoreParams {
|
|
|
422
386
|
getAdmanWrapper: () => AdmanWrapper | undefined;
|
|
423
387
|
logger: ILogger;
|
|
424
388
|
adsEnabled: boolean;
|
|
389
|
+
tracer: ITracer;
|
|
390
|
+
rootTracer: IRootTracer;
|
|
425
391
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { EnrichedStore } from "../../store/types";
|
|
2
2
|
interface Params {
|
|
3
|
-
store:
|
|
3
|
+
store: EnrichedStore;
|
|
4
4
|
getFullscreenTarget: () => HTMLElement;
|
|
5
5
|
}
|
|
6
6
|
export declare const useIosSafariFullscreenSubtitles: ({ store, getFullscreenTarget }: Params) => void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @docs https://confluence.vk.team/pages/viewpage.action?pageId=1405044928
|
|
3
|
+
*
|
|
4
|
+
* в поле `meta` ключи экспериментов придут в 2-х возможных форматах
|
|
5
|
+
* 1. `feature.<feature_name>.experiment`
|
|
6
|
+
* 2. `feature.<feature_name>.experiment.<config_name>`
|
|
7
|
+
*/
|
|
8
|
+
export declare const parseExperiment: (experiment: string, index: number) => Record<string, string | true>;
|