@videts/vide 0.7.4 → 0.9.2
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/README.md +10 -10
- package/dist/chunk-2OVLZ27V.mjs +1 -0
- package/dist/chunk-3RDTWUHH.mjs +1 -0
- package/dist/chunk-6DWWYSH4.mjs +1 -0
- package/dist/chunk-G74QBLVV.mjs +1 -0
- package/dist/chunk-H3OXPFD3.mjs +1 -0
- package/dist/chunk-JRU2FKRB.mjs +2 -0
- package/dist/chunk-LPSJOF2I.mjs +2 -0
- package/dist/chunk-NA4C7W64.mjs +2 -0
- package/dist/chunk-UY5CGRNN.mjs +1 -0
- package/dist/chunk-VPH4JIJV.mjs +1 -0
- package/dist/chunk-WINCDUN5.mjs +1 -0
- package/dist/dash/index.d.ts +3 -7
- package/dist/dash/index.js +1 -0
- package/dist/dash/index.mjs +1 -2
- package/dist/drm/index.d.ts +5 -32
- package/dist/drm/index.js +1 -0
- package/dist/drm/index.mjs +1 -1
- package/dist/hls/index.d.ts +3 -7
- package/dist/hls/index.js +1 -0
- package/dist/hls/index.mjs +1 -2
- package/dist/index.d.ts +5 -5
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -1
- package/dist/omid/index.d.ts +2 -2
- package/dist/omid/index.js +2 -0
- package/dist/omid/index.mjs +2 -2
- package/dist/react/index.d.ts +240 -0
- package/dist/react/index.js +2 -0
- package/dist/react/index.mjs +2 -0
- package/dist/simid/index.d.ts +2 -2
- package/dist/simid/index.js +1 -0
- package/dist/ssai/index.d.ts +4 -40
- package/dist/ssai/index.js +1 -0
- package/dist/ssai/index.mjs +1 -1
- package/dist/svelte/DashPlugin.svelte +23 -0
- package/dist/svelte/DashPlugin.svelte.d.ts +4 -0
- package/dist/svelte/DrmPlugin.svelte +20 -0
- package/dist/svelte/DrmPlugin.svelte.d.ts +4 -0
- package/dist/svelte/HlsPlugin.svelte +23 -0
- package/dist/svelte/HlsPlugin.svelte.d.ts +4 -0
- package/dist/svelte/SsaiPlugin.svelte +23 -0
- package/dist/svelte/SsaiPlugin.svelte.d.ts +4 -0
- package/dist/svelte/VastPlugin.svelte +20 -0
- package/dist/svelte/VastPlugin.svelte.d.ts +4 -0
- package/dist/svelte/VideControls.svelte +22 -0
- package/dist/svelte/VideControls.svelte.d.ts +8 -0
- package/dist/svelte/VideUI.svelte +49 -0
- package/dist/svelte/VideUI.svelte.d.ts +9 -0
- package/dist/svelte/Video.svelte +31 -0
- package/dist/svelte/Video.svelte.d.ts +10 -0
- package/dist/svelte/VmapPlugin.svelte +20 -0
- package/dist/svelte/VmapPlugin.svelte.d.ts +4 -0
- package/dist/svelte/components/AdCountdown.svelte +37 -0
- package/dist/svelte/components/AdCountdown.svelte.d.ts +7 -0
- package/dist/svelte/components/AdLabel.svelte +26 -0
- package/dist/svelte/components/AdLabel.svelte.d.ts +8 -0
- package/dist/svelte/components/AdLearnMore.svelte +42 -0
- package/dist/svelte/components/AdLearnMore.svelte.d.ts +9 -0
- package/dist/svelte/components/AdOverlay.svelte +46 -0
- package/dist/svelte/components/AdOverlay.svelte.d.ts +8 -0
- package/dist/svelte/components/AdSkip.svelte +67 -0
- package/dist/svelte/components/AdSkip.svelte.d.ts +8 -0
- package/dist/svelte/components/BigPlayButton.svelte +46 -0
- package/dist/svelte/components/BigPlayButton.svelte.d.ts +8 -0
- package/dist/svelte/components/ClickPlay.svelte +76 -0
- package/dist/svelte/components/ClickPlay.svelte.d.ts +7 -0
- package/dist/svelte/components/ErrorDisplay.svelte +27 -0
- package/dist/svelte/components/ErrorDisplay.svelte.d.ts +6 -0
- package/dist/svelte/components/FullscreenButton.svelte +65 -0
- package/dist/svelte/components/FullscreenButton.svelte.d.ts +9 -0
- package/dist/svelte/components/Loader.svelte +11 -0
- package/dist/svelte/components/Loader.svelte.d.ts +6 -0
- package/dist/svelte/components/MuteButton.svelte +57 -0
- package/dist/svelte/components/MuteButton.svelte.d.ts +8 -0
- package/dist/svelte/components/PlayButton.svelte +63 -0
- package/dist/svelte/components/PlayButton.svelte.d.ts +8 -0
- package/dist/svelte/components/Poster.svelte +13 -0
- package/dist/svelte/components/Poster.svelte.d.ts +8 -0
- package/dist/svelte/components/Progress.svelte +101 -0
- package/dist/svelte/components/Progress.svelte.d.ts +6 -0
- package/dist/svelte/components/TimeDisplay.svelte +33 -0
- package/dist/svelte/components/TimeDisplay.svelte.d.ts +7 -0
- package/dist/svelte/components/Volume.svelte +117 -0
- package/dist/svelte/components/Volume.svelte.d.ts +8 -0
- package/dist/svelte/context.d.ts +6 -0
- package/dist/svelte/context.js +10 -0
- package/dist/svelte/create-vide-player.svelte.d.ts +2 -0
- package/dist/svelte/create-vide-player.svelte.js +22 -0
- package/dist/svelte/helpers.d.ts +17 -0
- package/dist/svelte/helpers.js +31 -0
- package/dist/svelte/icons/IconFullscreenEnter.svelte +3 -0
- package/dist/svelte/icons/IconFullscreenEnter.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconFullscreenExit.svelte +3 -0
- package/dist/svelte/icons/IconFullscreenExit.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconPause.svelte +3 -0
- package/dist/svelte/icons/IconPause.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconPlay.svelte +3 -0
- package/dist/svelte/icons/IconPlay.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconVolumeHigh.svelte +3 -0
- package/dist/svelte/icons/IconVolumeHigh.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconVolumeLow.svelte +3 -0
- package/dist/svelte/icons/IconVolumeLow.svelte.d.ts +26 -0
- package/dist/svelte/icons/IconVolumeMute.svelte +3 -0
- package/dist/svelte/icons/IconVolumeMute.svelte.d.ts +26 -0
- package/dist/svelte/index.d.ts +42 -0
- package/dist/svelte/index.js +39 -0
- package/dist/svelte/use-ad-state.svelte.d.ts +7 -0
- package/dist/svelte/use-ad-state.svelte.js +40 -0
- package/dist/svelte/use-autohide.svelte.d.ts +2 -0
- package/dist/svelte/use-autohide.svelte.js +68 -0
- package/dist/svelte/use-keyboard.svelte.d.ts +7 -0
- package/dist/svelte/use-keyboard.svelte.js +96 -0
- package/dist/svelte/use-plugin.svelte.d.ts +15 -0
- package/dist/svelte/use-plugin.svelte.js +40 -0
- package/dist/svelte/use-vide-event.svelte.d.ts +3 -0
- package/dist/svelte/use-vide-event.svelte.js +9 -0
- package/dist/types-BsEF8iWC.d.ts +316 -0
- package/dist/types-C1_eVsFF.d.ts +49 -0
- package/dist/types-C6XFF6w_.d.ts +30 -0
- package/dist/types-COeag8fU.d.ts +173 -0
- package/dist/types-CwjR99DL.d.ts +10 -0
- package/dist/types-DsixuzNX.d.ts +52 -0
- package/dist/types-DzY1cmXC.d.ts +10 -0
- package/dist/types-SuT99_Z3.d.ts +40 -0
- package/dist/ui/index.d.ts +8 -38
- package/dist/ui/index.js +1 -0
- package/dist/ui/index.mjs +1 -2
- package/dist/ui/theme.css +138 -46
- package/dist/vast/index.d.ts +188 -4
- package/dist/vast/index.js +1 -0
- package/dist/vast/index.mjs +1 -1
- package/dist/vide.core.global.js +1 -0
- package/dist/vide.dash.global.js +2 -0
- package/dist/vide.drm.global.js +1 -0
- package/dist/vide.global.js +2 -0
- package/dist/vide.hls.global.js +2 -0
- package/dist/vide.omid.global.js +2 -0
- package/dist/vide.simid.global.js +1 -0
- package/dist/vide.ssai.global.js +1 -0
- package/dist/vide.ui.css +956 -0
- package/dist/vide.ui.global.js +2 -0
- package/dist/vide.vast.global.js +1 -0
- package/dist/vide.vmap.global.js +1 -0
- package/dist/vmap/index.d.ts +5 -49
- package/dist/vmap/index.js +1 -0
- package/dist/vmap/index.mjs +1 -1
- package/dist/vue/index.d.ts +354 -0
- package/dist/vue/index.js +2 -0
- package/dist/vue/index.mjs +2 -0
- package/package.json +48 -5
- package/dist/chunk-726XNUGZ.mjs +0 -1
- package/dist/chunk-G4Q7R3SH.mjs +0 -1
- package/dist/types-8aPf_wxJ.d.ts +0 -98
- package/dist/types-Cine0xi3.d.ts +0 -142
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
type MediaElement = HTMLVideoElement | HTMLAudioElement;
|
|
2
|
+
type PlayerState = "idle" | "loading" | "ready" | "playing" | "paused" | "buffering" | "ad:loading" | "ad:playing" | "ad:paused" | "ended" | "error";
|
|
3
|
+
type AdQuartile = "start" | "firstQuartile" | "midpoint" | "thirdQuartile" | "complete";
|
|
4
|
+
interface PlayerEventMap {
|
|
5
|
+
statechange: {
|
|
6
|
+
from: PlayerState;
|
|
7
|
+
to: PlayerState;
|
|
8
|
+
};
|
|
9
|
+
play: undefined;
|
|
10
|
+
pause: undefined;
|
|
11
|
+
ended: undefined;
|
|
12
|
+
timeupdate: {
|
|
13
|
+
currentTime: number;
|
|
14
|
+
duration: number;
|
|
15
|
+
};
|
|
16
|
+
livestatechange: {
|
|
17
|
+
isLive: boolean;
|
|
18
|
+
};
|
|
19
|
+
error: {
|
|
20
|
+
code: number;
|
|
21
|
+
message: string;
|
|
22
|
+
source: string;
|
|
23
|
+
recoverable?: boolean | undefined;
|
|
24
|
+
retryCount?: number | undefined;
|
|
25
|
+
};
|
|
26
|
+
"ad:companions": {
|
|
27
|
+
adId: string;
|
|
28
|
+
required: "all" | "any" | "none";
|
|
29
|
+
companions: {
|
|
30
|
+
width: number;
|
|
31
|
+
height: number;
|
|
32
|
+
id?: string | undefined;
|
|
33
|
+
assetWidth?: number | undefined;
|
|
34
|
+
assetHeight?: number | undefined;
|
|
35
|
+
expandedWidth?: number | undefined;
|
|
36
|
+
expandedHeight?: number | undefined;
|
|
37
|
+
pxratio?: number | undefined;
|
|
38
|
+
renderingMode?: "default" | "end-card" | "concurrent" | undefined;
|
|
39
|
+
resources: Array<{
|
|
40
|
+
type: "static";
|
|
41
|
+
url: string;
|
|
42
|
+
creativeType: string;
|
|
43
|
+
} | {
|
|
44
|
+
type: "iframe";
|
|
45
|
+
url: string;
|
|
46
|
+
} | {
|
|
47
|
+
type: "html";
|
|
48
|
+
content: string;
|
|
49
|
+
}>;
|
|
50
|
+
clickThrough?: string | undefined;
|
|
51
|
+
clickTracking: string[];
|
|
52
|
+
trackingEvents: {
|
|
53
|
+
creativeView: string[];
|
|
54
|
+
};
|
|
55
|
+
altText?: string | undefined;
|
|
56
|
+
adParameters?: string | undefined;
|
|
57
|
+
}[];
|
|
58
|
+
};
|
|
59
|
+
"ad:nonlinears": {
|
|
60
|
+
adId: string;
|
|
61
|
+
nonLinears: {
|
|
62
|
+
width: number;
|
|
63
|
+
height: number;
|
|
64
|
+
id?: string | undefined;
|
|
65
|
+
expandedWidth?: number | undefined;
|
|
66
|
+
expandedHeight?: number | undefined;
|
|
67
|
+
scalable?: boolean | undefined;
|
|
68
|
+
maintainAspectRatio?: boolean | undefined;
|
|
69
|
+
minSuggestedDuration?: number | undefined;
|
|
70
|
+
apiFramework?: string | undefined;
|
|
71
|
+
resources: Array<{
|
|
72
|
+
type: "static";
|
|
73
|
+
url: string;
|
|
74
|
+
creativeType: string;
|
|
75
|
+
} | {
|
|
76
|
+
type: "iframe";
|
|
77
|
+
url: string;
|
|
78
|
+
} | {
|
|
79
|
+
type: "html";
|
|
80
|
+
content: string;
|
|
81
|
+
}>;
|
|
82
|
+
clickThrough?: string | undefined;
|
|
83
|
+
clickTracking: string[];
|
|
84
|
+
adParameters?: string | undefined;
|
|
85
|
+
}[];
|
|
86
|
+
trackingEvents: Record<string, string[]>;
|
|
87
|
+
};
|
|
88
|
+
"ad:start": {
|
|
89
|
+
adId: string;
|
|
90
|
+
clickThrough?: string | undefined;
|
|
91
|
+
skipOffset?: number | undefined;
|
|
92
|
+
duration?: number | undefined;
|
|
93
|
+
adTitle?: string | undefined;
|
|
94
|
+
};
|
|
95
|
+
"ad:end": {
|
|
96
|
+
adId: string;
|
|
97
|
+
};
|
|
98
|
+
"ad:skip": {
|
|
99
|
+
adId: string;
|
|
100
|
+
};
|
|
101
|
+
"ad:click": {
|
|
102
|
+
clickThrough: string | undefined;
|
|
103
|
+
clickTracking: string[];
|
|
104
|
+
};
|
|
105
|
+
"ad:error": {
|
|
106
|
+
error: Error;
|
|
107
|
+
source: string;
|
|
108
|
+
/** VAST 4.2 error code. Undefined for non-VAST errors. */
|
|
109
|
+
vastErrorCode?: number | undefined;
|
|
110
|
+
};
|
|
111
|
+
"ad:impression": {
|
|
112
|
+
adId: string;
|
|
113
|
+
};
|
|
114
|
+
"ad:loaded": {
|
|
115
|
+
adId: string;
|
|
116
|
+
};
|
|
117
|
+
"ad:quartile": {
|
|
118
|
+
adId: string;
|
|
119
|
+
quartile: AdQuartile;
|
|
120
|
+
};
|
|
121
|
+
"ad:mute": {
|
|
122
|
+
adId: string;
|
|
123
|
+
};
|
|
124
|
+
"ad:unmute": {
|
|
125
|
+
adId: string;
|
|
126
|
+
};
|
|
127
|
+
"ad:volumeChange": {
|
|
128
|
+
adId: string;
|
|
129
|
+
volume: number;
|
|
130
|
+
};
|
|
131
|
+
"ad:fullscreen": {
|
|
132
|
+
adId: string;
|
|
133
|
+
fullscreen: boolean;
|
|
134
|
+
};
|
|
135
|
+
"ad:breakStart": {
|
|
136
|
+
breakId: string | undefined;
|
|
137
|
+
};
|
|
138
|
+
"ad:breakEnd": {
|
|
139
|
+
breakId: string | undefined;
|
|
140
|
+
};
|
|
141
|
+
"ad:pod:start": {
|
|
142
|
+
ads: {
|
|
143
|
+
id: string;
|
|
144
|
+
sequence?: number | undefined;
|
|
145
|
+
}[];
|
|
146
|
+
total: number;
|
|
147
|
+
};
|
|
148
|
+
"ad:pod:end": {
|
|
149
|
+
completed: number;
|
|
150
|
+
skipped: number;
|
|
151
|
+
failed: number;
|
|
152
|
+
};
|
|
153
|
+
"ad:pod:adstart": {
|
|
154
|
+
ad: {
|
|
155
|
+
id: string;
|
|
156
|
+
sequence?: number | undefined;
|
|
157
|
+
};
|
|
158
|
+
index: number;
|
|
159
|
+
total: number;
|
|
160
|
+
};
|
|
161
|
+
"ad:pod:adend": {
|
|
162
|
+
ad: {
|
|
163
|
+
id: string;
|
|
164
|
+
sequence?: number | undefined;
|
|
165
|
+
};
|
|
166
|
+
index: number;
|
|
167
|
+
total: number;
|
|
168
|
+
};
|
|
169
|
+
qualitiesavailable: {
|
|
170
|
+
qualities: QualityLevel[];
|
|
171
|
+
};
|
|
172
|
+
qualitychange: {
|
|
173
|
+
from: QualityLevel | null;
|
|
174
|
+
to: QualityLevel;
|
|
175
|
+
};
|
|
176
|
+
texttrackchange: {
|
|
177
|
+
track: VideTextTrack | null;
|
|
178
|
+
};
|
|
179
|
+
texttracksavailable: {
|
|
180
|
+
tracks: VideTextTrack[];
|
|
181
|
+
};
|
|
182
|
+
cuechange: {
|
|
183
|
+
cues: VideCue[];
|
|
184
|
+
};
|
|
185
|
+
destroy: undefined;
|
|
186
|
+
}
|
|
187
|
+
type PlayerEvent = keyof PlayerEventMap;
|
|
188
|
+
/** Ad metadata exposed by framework `useAdState` hooks. */
|
|
189
|
+
interface AdMeta {
|
|
190
|
+
adId: string;
|
|
191
|
+
clickThrough: string | undefined;
|
|
192
|
+
skipOffset: number | undefined;
|
|
193
|
+
duration: number | undefined;
|
|
194
|
+
adTitle: string | undefined;
|
|
195
|
+
adStartTime: number;
|
|
196
|
+
}
|
|
197
|
+
interface RecoveryConfig {
|
|
198
|
+
maxRetries: number;
|
|
199
|
+
retryDelay: number;
|
|
200
|
+
backoffMultiplier: number;
|
|
201
|
+
}
|
|
202
|
+
type EventHandler<T> = (data: T) => void;
|
|
203
|
+
/** Native media event names not already covered by PlayerEventMap. */
|
|
204
|
+
type NativeMediaEvent = Exclude<keyof HTMLMediaElementEventMap, keyof PlayerEventMap>;
|
|
205
|
+
interface EventBus {
|
|
206
|
+
on<K extends PlayerEvent>(event: K, handler: EventHandler<PlayerEventMap[K]>): void;
|
|
207
|
+
on<K extends NativeMediaEvent>(event: K, handler: (ev: HTMLMediaElementEventMap[K]) => void): void;
|
|
208
|
+
on(event: string, handler: (...args: any[]) => void): void;
|
|
209
|
+
off<K extends PlayerEvent>(event: K, handler: EventHandler<PlayerEventMap[K]>): void;
|
|
210
|
+
off<K extends NativeMediaEvent>(event: K, handler: (ev: HTMLMediaElementEventMap[K]) => void): void;
|
|
211
|
+
off(event: string, handler: (...args: any[]) => void): void;
|
|
212
|
+
emit<K extends PlayerEvent>(event: K, data: PlayerEventMap[K]): void;
|
|
213
|
+
once<K extends PlayerEvent>(event: K, handler: EventHandler<PlayerEventMap[K]>): void;
|
|
214
|
+
once<K extends NativeMediaEvent>(event: K, handler: (ev: HTMLMediaElementEventMap[K]) => void): void;
|
|
215
|
+
once(event: string, handler: (...args: any[]) => void): void;
|
|
216
|
+
}
|
|
217
|
+
interface SeekableRange {
|
|
218
|
+
start: number;
|
|
219
|
+
end: number;
|
|
220
|
+
}
|
|
221
|
+
interface QualityLevel {
|
|
222
|
+
id: number;
|
|
223
|
+
width: number;
|
|
224
|
+
height: number;
|
|
225
|
+
bitrate: number;
|
|
226
|
+
label: string;
|
|
227
|
+
}
|
|
228
|
+
interface VideTextTrack {
|
|
229
|
+
id: number;
|
|
230
|
+
label: string;
|
|
231
|
+
language: string;
|
|
232
|
+
kind: "subtitles" | "captions" | "descriptions" | "chapters" | "metadata";
|
|
233
|
+
active: boolean;
|
|
234
|
+
}
|
|
235
|
+
interface VideCue {
|
|
236
|
+
startTime: number;
|
|
237
|
+
endTime: number;
|
|
238
|
+
text: string;
|
|
239
|
+
}
|
|
240
|
+
interface SourceHandler {
|
|
241
|
+
/** Whether this handler can process the given URL/type. */
|
|
242
|
+
canHandle(url: string, type?: string): boolean;
|
|
243
|
+
/** Load the source into the media element. */
|
|
244
|
+
load(url: string, mediaElement: MediaElement): void;
|
|
245
|
+
/** Unload the source and clean up. */
|
|
246
|
+
unload(mediaElement: MediaElement): void;
|
|
247
|
+
}
|
|
248
|
+
interface Plugin {
|
|
249
|
+
name: string;
|
|
250
|
+
setup(player: Player): (() => void) | undefined;
|
|
251
|
+
}
|
|
252
|
+
interface Player extends EventBus {
|
|
253
|
+
readonly el: MediaElement;
|
|
254
|
+
readonly state: PlayerState;
|
|
255
|
+
play(): Promise<void>;
|
|
256
|
+
pause(): void;
|
|
257
|
+
currentTime: number;
|
|
258
|
+
duration: number;
|
|
259
|
+
volume: number;
|
|
260
|
+
muted: boolean;
|
|
261
|
+
playbackRate: number;
|
|
262
|
+
readonly paused: boolean;
|
|
263
|
+
readonly ended: boolean;
|
|
264
|
+
readonly readyState: number;
|
|
265
|
+
readonly buffered: TimeRanges;
|
|
266
|
+
readonly seekable: TimeRanges;
|
|
267
|
+
readonly seeking: boolean;
|
|
268
|
+
readonly isLive: boolean;
|
|
269
|
+
readonly seekableRange: SeekableRange | null;
|
|
270
|
+
readonly qualities: QualityLevel[];
|
|
271
|
+
readonly currentQuality: QualityLevel | null;
|
|
272
|
+
setQuality(id: number): void;
|
|
273
|
+
readonly isAutoQuality: boolean;
|
|
274
|
+
readonly isAudio: boolean;
|
|
275
|
+
readonly textTracks: TextTrackList;
|
|
276
|
+
getTextTracks(): VideTextTrack[];
|
|
277
|
+
getActiveTextTrack(): VideTextTrack | null;
|
|
278
|
+
readonly activeCues: VideCue[];
|
|
279
|
+
setTextTrack(id: number): void;
|
|
280
|
+
addTextTrack(options: {
|
|
281
|
+
src: string;
|
|
282
|
+
label: string;
|
|
283
|
+
language: string;
|
|
284
|
+
kind?: "subtitles" | "captions";
|
|
285
|
+
default?: boolean;
|
|
286
|
+
}): void;
|
|
287
|
+
readonly videoWidth: number;
|
|
288
|
+
readonly videoHeight: number;
|
|
289
|
+
readonly networkState: number;
|
|
290
|
+
loop: boolean;
|
|
291
|
+
autoplay: boolean;
|
|
292
|
+
poster: string;
|
|
293
|
+
preload: "" | "none" | "metadata" | "auto";
|
|
294
|
+
defaultPlaybackRate: number;
|
|
295
|
+
defaultMuted: boolean;
|
|
296
|
+
crossOrigin: string | null;
|
|
297
|
+
controls: boolean;
|
|
298
|
+
/** Web-standard addEventListener, delegates to the underlying media element. */
|
|
299
|
+
addEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (ev: HTMLMediaElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
|
|
300
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
301
|
+
/** Web-standard removeEventListener, delegates to the underlying media element. */
|
|
302
|
+
removeEventListener<K extends keyof HTMLMediaElementEventMap>(type: K, listener: (ev: HTMLMediaElementEventMap[K]) => void, options?: boolean | EventListenerOptions): void;
|
|
303
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
304
|
+
/** Current media source URL. Setting triggers SourceHandler lookup. */
|
|
305
|
+
src: string;
|
|
306
|
+
/** Register a handler for custom source types (e.g., HLS, DASH). */
|
|
307
|
+
registerSourceHandler(handler: SourceHandler): void;
|
|
308
|
+
use(plugin: Plugin): void;
|
|
309
|
+
destroy(): void;
|
|
310
|
+
/** Store data for cross-plugin communication. */
|
|
311
|
+
setPluginData(key: string, data: unknown): void;
|
|
312
|
+
/** Retrieve data stored by another plugin. Returns undefined if not set. */
|
|
313
|
+
getPluginData(key: string): unknown;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export type { AdMeta as A, EventBus as E, MediaElement as M, Player as P, QualityLevel as Q, RecoveryConfig as R, SeekableRange as S, VideCue as V, AdQuartile as a, EventHandler as b, PlayerEvent as c, PlayerEventMap as d, PlayerState as e, Plugin as f, SourceHandler as g, VideTextTrack as h };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { c as VastAd, A as AdPlugin } from './types-COeag8fU.js';
|
|
2
|
+
|
|
3
|
+
interface VmapResponse {
|
|
4
|
+
version: string;
|
|
5
|
+
adBreaks: AdBreak[];
|
|
6
|
+
}
|
|
7
|
+
interface AdBreakTrackingEvents {
|
|
8
|
+
breakStart: string[];
|
|
9
|
+
breakEnd: string[];
|
|
10
|
+
error: string[];
|
|
11
|
+
}
|
|
12
|
+
interface AdBreak {
|
|
13
|
+
timeOffset: AdBreakTimeOffset;
|
|
14
|
+
breakType: "linear" | "nonlinear" | "display";
|
|
15
|
+
breakId?: string | undefined;
|
|
16
|
+
adSource: AdSource | null;
|
|
17
|
+
trackingEvents: AdBreakTrackingEvents;
|
|
18
|
+
}
|
|
19
|
+
type AdBreakTimeOffset = {
|
|
20
|
+
type: "start";
|
|
21
|
+
} | {
|
|
22
|
+
type: "end";
|
|
23
|
+
} | {
|
|
24
|
+
type: "time";
|
|
25
|
+
seconds: number;
|
|
26
|
+
} | {
|
|
27
|
+
type: "percentage";
|
|
28
|
+
pct: number;
|
|
29
|
+
};
|
|
30
|
+
interface AdSource {
|
|
31
|
+
id?: string | undefined;
|
|
32
|
+
allowMultipleAds?: boolean | undefined;
|
|
33
|
+
followRedirects?: boolean | undefined;
|
|
34
|
+
vastUrl?: string | undefined;
|
|
35
|
+
vastData?: string | undefined;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
interface VmapPluginOptions {
|
|
39
|
+
url: string;
|
|
40
|
+
timeout?: number | undefined;
|
|
41
|
+
vastOptions?: {
|
|
42
|
+
timeout?: number | undefined;
|
|
43
|
+
maxDepth?: number | undefined;
|
|
44
|
+
};
|
|
45
|
+
/** Create per-ad plugins. Called once per ad with the parsed VastAd. */
|
|
46
|
+
adPlugins?: ((ad: VastAd) => AdPlugin[]) | undefined;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export type { AdBreak as A, VmapResponse as V, VmapPluginOptions as a, AdBreakTimeOffset as b, AdBreakTrackingEvents as c, AdSource as d };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Widevine DRM configuration. */
|
|
2
|
+
interface WidevineConfig {
|
|
3
|
+
licenseUrl: string;
|
|
4
|
+
headers?: Record<string, string> | undefined;
|
|
5
|
+
prepareLicenseRequest?: ((payload: Uint8Array) => Uint8Array | Promise<Uint8Array>) | undefined;
|
|
6
|
+
processLicenseResponse?: ((response: Uint8Array) => Uint8Array | Promise<Uint8Array>) | undefined;
|
|
7
|
+
}
|
|
8
|
+
/** FairPlay DRM configuration. */
|
|
9
|
+
interface FairPlayConfig {
|
|
10
|
+
licenseUrl: string;
|
|
11
|
+
certificateUrl: string;
|
|
12
|
+
headers?: Record<string, string> | undefined;
|
|
13
|
+
prepareLicenseRequest?: ((payload: Uint8Array) => Uint8Array | Promise<Uint8Array>) | undefined;
|
|
14
|
+
processLicenseResponse?: ((response: Uint8Array) => Uint8Array | Promise<Uint8Array>) | undefined;
|
|
15
|
+
}
|
|
16
|
+
/** Options for the DRM plugin. */
|
|
17
|
+
interface DrmPluginOptions {
|
|
18
|
+
widevine?: WidevineConfig | undefined;
|
|
19
|
+
fairplay?: FairPlayConfig | undefined;
|
|
20
|
+
}
|
|
21
|
+
/** Key system identifier string. */
|
|
22
|
+
type KeySystem = "com.widevine.alpha" | "com.apple.fps.1_0";
|
|
23
|
+
/** Resolved DRM configuration stored via setPluginData("drm"). */
|
|
24
|
+
interface ResolvedDrmConfig {
|
|
25
|
+
keySystem: KeySystem;
|
|
26
|
+
hlsConfig: Record<string, unknown>;
|
|
27
|
+
dashConfig: Record<string, unknown>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export type { DrmPluginOptions as D, FairPlayConfig as F, KeySystem as K, ResolvedDrmConfig as R, WidevineConfig as W };
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { P as Player } from './types-BsEF8iWC.js';
|
|
2
|
+
|
|
3
|
+
interface VastResponse {
|
|
4
|
+
version: string;
|
|
5
|
+
ads: VastAd[];
|
|
6
|
+
errors: string[];
|
|
7
|
+
}
|
|
8
|
+
interface VastAd {
|
|
9
|
+
id: string;
|
|
10
|
+
sequence?: number | undefined;
|
|
11
|
+
adSystem: string;
|
|
12
|
+
adTitle: string;
|
|
13
|
+
impressions: string[];
|
|
14
|
+
creatives: VastCreative[];
|
|
15
|
+
errors: string[];
|
|
16
|
+
verifications?: AdVerification[] | undefined;
|
|
17
|
+
categories?: AdCategory[] | undefined;
|
|
18
|
+
extensions?: VastExtension[] | undefined;
|
|
19
|
+
viewableImpression?: VastViewableImpression | undefined;
|
|
20
|
+
}
|
|
21
|
+
interface AdVerification {
|
|
22
|
+
vendor: string;
|
|
23
|
+
resourceUrl: string;
|
|
24
|
+
apiFramework?: string | undefined;
|
|
25
|
+
parameters?: string | undefined;
|
|
26
|
+
}
|
|
27
|
+
interface AdCategory {
|
|
28
|
+
authority: string;
|
|
29
|
+
value: string;
|
|
30
|
+
}
|
|
31
|
+
interface VastExtension {
|
|
32
|
+
type: string;
|
|
33
|
+
content: string;
|
|
34
|
+
}
|
|
35
|
+
interface VastViewableImpression {
|
|
36
|
+
viewable: string[];
|
|
37
|
+
notViewable: string[];
|
|
38
|
+
viewUndetermined: string[];
|
|
39
|
+
}
|
|
40
|
+
interface VastCreative {
|
|
41
|
+
id?: string | undefined;
|
|
42
|
+
sequence?: number | undefined;
|
|
43
|
+
linear: VastLinear | null;
|
|
44
|
+
companionAds?: VastCompanionAds | undefined;
|
|
45
|
+
nonLinearAds?: VastNonLinearAds | undefined;
|
|
46
|
+
}
|
|
47
|
+
interface VastLinear {
|
|
48
|
+
duration: number;
|
|
49
|
+
skipOffset?: number | undefined;
|
|
50
|
+
mediaFiles: VastMediaFile[];
|
|
51
|
+
interactiveCreativeFiles: InteractiveCreativeFile[];
|
|
52
|
+
trackingEvents: VastTrackingEvents;
|
|
53
|
+
clickThrough?: string | undefined;
|
|
54
|
+
clickTracking: string[];
|
|
55
|
+
}
|
|
56
|
+
interface VastMediaFile {
|
|
57
|
+
url: string;
|
|
58
|
+
mimeType: string;
|
|
59
|
+
width: number;
|
|
60
|
+
height: number;
|
|
61
|
+
bitrate?: number | undefined;
|
|
62
|
+
delivery: "progressive" | "streaming";
|
|
63
|
+
}
|
|
64
|
+
interface InteractiveCreativeFile {
|
|
65
|
+
url: string;
|
|
66
|
+
apiFramework: string;
|
|
67
|
+
variableDuration?: boolean | undefined;
|
|
68
|
+
}
|
|
69
|
+
interface VastProgressEvent {
|
|
70
|
+
offset: number;
|
|
71
|
+
url: string;
|
|
72
|
+
}
|
|
73
|
+
interface VastTrackingEvents {
|
|
74
|
+
start: string[];
|
|
75
|
+
firstQuartile: string[];
|
|
76
|
+
midpoint: string[];
|
|
77
|
+
thirdQuartile: string[];
|
|
78
|
+
complete: string[];
|
|
79
|
+
pause: string[];
|
|
80
|
+
resume: string[];
|
|
81
|
+
skip: string[];
|
|
82
|
+
loaded: string[];
|
|
83
|
+
mute: string[];
|
|
84
|
+
unmute: string[];
|
|
85
|
+
rewind: string[];
|
|
86
|
+
playerExpand: string[];
|
|
87
|
+
playerCollapse: string[];
|
|
88
|
+
closeLinear: string[];
|
|
89
|
+
notUsed: string[];
|
|
90
|
+
otherAdInteraction: string[];
|
|
91
|
+
creativeView: string[];
|
|
92
|
+
progress: VastProgressEvent[];
|
|
93
|
+
}
|
|
94
|
+
type CompanionRequired = "all" | "any" | "none";
|
|
95
|
+
type CompanionRenderingMode = "default" | "end-card" | "concurrent";
|
|
96
|
+
interface CompanionTrackingEvents {
|
|
97
|
+
creativeView: string[];
|
|
98
|
+
}
|
|
99
|
+
interface CompanionStaticResource {
|
|
100
|
+
type: "static";
|
|
101
|
+
url: string;
|
|
102
|
+
creativeType: string;
|
|
103
|
+
}
|
|
104
|
+
interface CompanionIFrameResource {
|
|
105
|
+
type: "iframe";
|
|
106
|
+
url: string;
|
|
107
|
+
}
|
|
108
|
+
interface CompanionHTMLResource {
|
|
109
|
+
type: "html";
|
|
110
|
+
content: string;
|
|
111
|
+
}
|
|
112
|
+
type CompanionResource = CompanionStaticResource | CompanionIFrameResource | CompanionHTMLResource;
|
|
113
|
+
interface VastCompanionAd {
|
|
114
|
+
width: number;
|
|
115
|
+
height: number;
|
|
116
|
+
id?: string | undefined;
|
|
117
|
+
assetWidth?: number | undefined;
|
|
118
|
+
assetHeight?: number | undefined;
|
|
119
|
+
expandedWidth?: number | undefined;
|
|
120
|
+
expandedHeight?: number | undefined;
|
|
121
|
+
apiFramework?: string | undefined;
|
|
122
|
+
adSlotId?: string | undefined;
|
|
123
|
+
pxratio?: number | undefined;
|
|
124
|
+
renderingMode?: CompanionRenderingMode | undefined;
|
|
125
|
+
resources: CompanionResource[];
|
|
126
|
+
clickThrough?: string | undefined;
|
|
127
|
+
clickTracking: string[];
|
|
128
|
+
trackingEvents: CompanionTrackingEvents;
|
|
129
|
+
altText?: string | undefined;
|
|
130
|
+
adParameters?: string | undefined;
|
|
131
|
+
}
|
|
132
|
+
interface VastCompanionAds {
|
|
133
|
+
required: CompanionRequired;
|
|
134
|
+
companions: VastCompanionAd[];
|
|
135
|
+
}
|
|
136
|
+
interface NonLinearAd {
|
|
137
|
+
width: number;
|
|
138
|
+
height: number;
|
|
139
|
+
id?: string | undefined;
|
|
140
|
+
expandedWidth?: number | undefined;
|
|
141
|
+
expandedHeight?: number | undefined;
|
|
142
|
+
scalable?: boolean | undefined;
|
|
143
|
+
maintainAspectRatio?: boolean | undefined;
|
|
144
|
+
/** Minimum suggested display time in seconds, parsed from HH:MM:SS */
|
|
145
|
+
minSuggestedDuration?: number | undefined;
|
|
146
|
+
apiFramework?: string | undefined;
|
|
147
|
+
resources: CompanionResource[];
|
|
148
|
+
clickThrough?: string | undefined;
|
|
149
|
+
clickTracking: string[];
|
|
150
|
+
adParameters?: string | undefined;
|
|
151
|
+
}
|
|
152
|
+
interface VastNonLinearAds {
|
|
153
|
+
trackingEvents: Record<string, string[]>;
|
|
154
|
+
nonLinears: NonLinearAd[];
|
|
155
|
+
}
|
|
156
|
+
/** Plugin scoped to a single ad. Created per-ad, cleaned up on ad end. */
|
|
157
|
+
interface AdPlugin {
|
|
158
|
+
name: string;
|
|
159
|
+
setup(player: Player, ad: VastAd): (() => void) | undefined;
|
|
160
|
+
}
|
|
161
|
+
interface VastPluginOptions {
|
|
162
|
+
tagUrl: string;
|
|
163
|
+
timeout?: number | undefined;
|
|
164
|
+
allowSkip?: boolean | undefined;
|
|
165
|
+
/** Create per-ad plugins. Called once per ad with the parsed VastAd. */
|
|
166
|
+
adPlugins?: ((ad: VastAd) => AdPlugin[]) | undefined;
|
|
167
|
+
}
|
|
168
|
+
interface ResolveOptions {
|
|
169
|
+
timeout?: number | undefined;
|
|
170
|
+
maxDepth?: number | undefined;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export type { AdPlugin as A, CompanionHTMLResource as C, NonLinearAd as N, ResolveOptions as R, VastResponse as V, VastCompanionAd as a, VastNonLinearAds as b, VastAd as c, VastLinear as d, VastPluginOptions as e, AdCategory as f, AdVerification as g, CompanionIFrameResource as h, CompanionRenderingMode as i, CompanionRequired as j, CompanionResource as k, CompanionStaticResource as l, CompanionTrackingEvents as m, VastCompanionAds as n, VastExtension as o, VastProgressEvent as p, VastViewableImpression as q };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { R as RecoveryConfig } from './types-BsEF8iWC.js';
|
|
2
|
+
|
|
3
|
+
interface HlsPluginOptions {
|
|
4
|
+
/** Configuration passed directly to the hls.js constructor. */
|
|
5
|
+
hlsConfig?: Record<string, unknown> | undefined;
|
|
6
|
+
/** Error recovery settings. `false` to disable. Defaults to enabled (3 retries, 3s delay, 2x backoff). */
|
|
7
|
+
recovery?: Partial<RecoveryConfig> | false | undefined;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type { HlsPluginOptions as H };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** VAST-equivalent tracking URL map for SSAI ad breaks. */
|
|
2
|
+
interface AdTrackingMap {
|
|
3
|
+
impression?: string[];
|
|
4
|
+
start?: string[];
|
|
5
|
+
firstQuartile?: string[];
|
|
6
|
+
midpoint?: string[];
|
|
7
|
+
thirdQuartile?: string[];
|
|
8
|
+
complete?: string[];
|
|
9
|
+
pause?: string[];
|
|
10
|
+
resume?: string[];
|
|
11
|
+
skip?: string[];
|
|
12
|
+
}
|
|
13
|
+
/** Parsed ad break metadata from stream signals. */
|
|
14
|
+
interface AdBreakMetadata {
|
|
15
|
+
id: string;
|
|
16
|
+
/** Absolute start time in seconds relative to stream timeline. */
|
|
17
|
+
startTime: number;
|
|
18
|
+
/** Duration of the ad break in seconds. */
|
|
19
|
+
duration: number;
|
|
20
|
+
/** Timing-specific tracking URLs. */
|
|
21
|
+
tracking?: AdTrackingMap;
|
|
22
|
+
clickThrough?: string;
|
|
23
|
+
customData?: Record<string, string>;
|
|
24
|
+
}
|
|
25
|
+
/** Discriminated union of raw metadata from different stream sources. */
|
|
26
|
+
type RawMetadata = {
|
|
27
|
+
source: "daterange";
|
|
28
|
+
attributes: Record<string, string>;
|
|
29
|
+
} | {
|
|
30
|
+
source: "id3";
|
|
31
|
+
samples: Array<{
|
|
32
|
+
type: string;
|
|
33
|
+
data: Uint8Array;
|
|
34
|
+
}>;
|
|
35
|
+
} | {
|
|
36
|
+
source: "eventstream";
|
|
37
|
+
schemeIdUri: string;
|
|
38
|
+
value: string;
|
|
39
|
+
startTime: number;
|
|
40
|
+
duration: number;
|
|
41
|
+
messageData?: string | undefined;
|
|
42
|
+
};
|
|
43
|
+
/** Custom parser: receives raw metadata, returns zero or more ad breaks. */
|
|
44
|
+
type MetadataParser = (raw: RawMetadata) => AdBreakMetadata[];
|
|
45
|
+
interface SsaiPluginOptions {
|
|
46
|
+
/** Custom metadata parser. Overrides default auto-detection. */
|
|
47
|
+
parser?: MetadataParser;
|
|
48
|
+
/** Tolerance in seconds for time-based ad break matching. Default: 0.5. */
|
|
49
|
+
tolerance?: number;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export type { AdBreakMetadata as A, MetadataParser as M, RawMetadata as R, SsaiPluginOptions as S, AdTrackingMap as a };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { R as RecoveryConfig } from './types-BsEF8iWC.js';
|
|
2
|
+
|
|
3
|
+
interface DashPluginOptions {
|
|
4
|
+
/** dash.js MediaPlayerSettingClass — passed to updateSettings(). */
|
|
5
|
+
dashConfig?: Record<string, unknown> | undefined;
|
|
6
|
+
/** Error recovery settings. `false` to disable. Defaults to enabled (3 retries, 3s delay, 2x backoff). */
|
|
7
|
+
recovery?: Partial<RecoveryConfig> | false | undefined;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type { DashPluginOptions as D };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { P as Player } from './types-BsEF8iWC.js';
|
|
2
|
+
|
|
3
|
+
/** A single UI component that can be independently mounted and connected. */
|
|
4
|
+
interface UIComponent {
|
|
5
|
+
/** Create DOM elements and append them to the container. */
|
|
6
|
+
mount(container: HTMLElement): void;
|
|
7
|
+
/** Subscribe to player events and start reacting. */
|
|
8
|
+
connect(player: Player): void;
|
|
9
|
+
/** Remove DOM elements and unsubscribe from all events. */
|
|
10
|
+
destroy(): void;
|
|
11
|
+
}
|
|
12
|
+
/** Shared mutable state for ad UI components. Set by uiAdPlugin, read by ad components. */
|
|
13
|
+
interface AdUIState {
|
|
14
|
+
adId: string;
|
|
15
|
+
skipOffset: number | undefined;
|
|
16
|
+
clickThrough: string | undefined;
|
|
17
|
+
duration: number;
|
|
18
|
+
adTitle: string | undefined;
|
|
19
|
+
}
|
|
20
|
+
/** Mutable holder for AdUIState, shared between ad-plugin and ad UI components. */
|
|
21
|
+
interface AdUIStateRef {
|
|
22
|
+
current: AdUIState | null;
|
|
23
|
+
set(state: AdUIState): void;
|
|
24
|
+
clear(): void;
|
|
25
|
+
}
|
|
26
|
+
/** Component names that can be excluded from the ui() convenience plugin. */
|
|
27
|
+
type UIComponentName = "play" | "progress" | "time" | "volume" | "fullscreen" | "loader" | "error" | "bigplay" | "poster" | "ad-countdown" | "ad-skip" | "ad-overlay" | "ad-label" | "ad-learn-more" | "keyboard" | "clickplay" | "autohide";
|
|
28
|
+
/** Options for the ui() convenience plugin. */
|
|
29
|
+
interface UiPluginOptions {
|
|
30
|
+
/** Container element to mount UI controls into. */
|
|
31
|
+
container: HTMLElement;
|
|
32
|
+
/** Components to exclude (default: `ad-overlay`). */
|
|
33
|
+
exclude?: UIComponentName[] | undefined;
|
|
34
|
+
/** Components to opt-in (overrides default exclusions like `ad-overlay`). */
|
|
35
|
+
include?: UIComponentName[] | undefined;
|
|
36
|
+
/** Poster image URL. */
|
|
37
|
+
poster?: string | undefined;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export type { AdUIStateRef as A, UIComponent as U, UIComponentName as a, UiPluginOptions as b, AdUIState as c };
|