@vkontakte/videoplayer 1.1.96 → 1.1.97-dev.0bf203cc7.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/videoplayer",
3
- "version": "1.1.96",
3
+ "version": "1.1.97-dev.0bf203cc7.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.165",
47
- "@vkontakte/videoplayer-interactive": "1.0.71",
48
- "@vkontakte/videoplayer-shared": "1.0.94",
49
- "@vkontakte/videoplayer-statistics": "1.0.111"
46
+ "@vkontakte/videoplayer-core": "2.0.166-dev.0bf203cc7.0",
47
+ "@vkontakte/videoplayer-interactive": "1.0.72-dev.0bf203cc7.0",
48
+ "@vkontakte/videoplayer-shared": "1.0.95-dev.0bf203cc7.0",
49
+ "@vkontakte/videoplayer-statistics": "1.0.112-dev.0bf203cc7.0"
50
50
  }
51
51
  }
@@ -215,4 +215,5 @@ export declare class VKVideoPlayer extends HTMLElement {
215
215
  setAutoplayNext(autoplayNext: boolean): void;
216
216
  getTotalViewTime(): Seconds | undefined;
217
217
  private unmountComponent;
218
+ private createTracer;
218
219
  }
@@ -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: {
@@ -4,4 +4,4 @@ export type { IStore, IAdsState, IUIState, EnrichedStore } from "./types";
4
4
  * Store приложения.
5
5
  * Если будет слишком большим - можно разделить его на модули
6
6
  */
7
- export declare const createStore: ({ interfaceLanguage, isCyrillicRelatedInterface, 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 }: IStoreParams) => IStore;
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, external: boolean) => void;
80
+ setSubtitle: (subtitle: VideoSubtitle | undefined) => void;
81
81
  /** Переключить субтитры */
82
- toggleSubtitle: (external: boolean) => void;
82
+ toggleSubtitle: () => void;
83
83
  /** Включить субтитры */
84
84
  subtitleOn: (external: boolean, id?: string) => void;
85
85
  /** Выключить субтитры */
@@ -1,11 +1,10 @@
1
- import type { ChromecastState, IAudioStream, IConfig as ICoreInitVideoConfig, IExternalTextTrack, IOptionalTuningConfig, IPlayer, ISources, ITextTrack, IVideoStream, PlaybackRate, PlaybackState, VideoFormat } from "@vkontakte/videoplayer-core";
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, InterfaceLanguage, InternalsExposure, IRectangle, ISubject, IValueObservable, IValueSubject, QualityLimits, VideoQuality } from "@vkontakte/videoplayer-shared";
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, VideoPlaybackRate, VideoPlayerView, VideoQualityForRender, VideoQualityUI, VideoSubtitle, VideoSubtitleParsed } from "../types";
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 { IStore } from "../../store";
1
+ import type { EnrichedStore } from "../../store/types";
2
2
  interface Params {
3
- store: IStore;
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>;