Socket
Socket
Sign inDemoInstall

svelte-player

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

svelte-player - npm Package Compare versions

Comparing version 0.0.16 to 0.0.17

dist/players/FilePlayerAudio.svelte

68

dist/PlayerMedia.svelte.d.ts
import { SvelteComponentTyped } from "svelte";
import type { SeekToType } from './types';
import type { Player } from './players';
import type { OnProgressProps, InternalPlayerKey, OnErrorProps, FilePlayerUrl } from './players/types';
import type { OnProgressProps, OnErrorProps, PlayerUrl, Player, PlayerRef, PlayerConfigObject, PlayerInternalPlayer } from './players/types';
declare const __propDef: {
props: {
url: FilePlayerUrl;
url: PlayerUrl;
playing: boolean;

@@ -20,12 +19,37 @@ loop: boolean;

stopOnUnmount: boolean;
config: any;
config: PlayerConfigObject;
progressFrequency?: number | undefined;
disableDeferredLoading?: boolean | undefined;
loopOnEnded?: boolean | undefined;
forceLoad?: boolean | undefined;
activePlayer: Player['loadComponent'];
display?: string | undefined;
activePlayer?: Player['loadComponent'] | undefined;
handlePlayerMount?: (() => void) | undefined;
getDuration?: (() => number | null) | undefined;
getCurrentTime?: (() => number | null) | undefined;
getSecondsLoaded?: (() => number | null) | undefined;
getInternalPlayer?: ((key: InternalPlayerKey) => import("./players/types").GetPlayerReturn) | undefined;
getInternalPlayer?: (<TKey extends "player" | "hls" | "dash" | "flv">(key?: TKey | undefined) => PlayerInternalPlayer[TKey] | null) | undefined;
progress?: (() => void) | undefined;
seekTo?: ((amount: number, type?: SeekToType, keepPlaying?: boolean) => void) | undefined;
handleReady?: (() => void) | undefined;
handlePlay?: (() => void) | undefined;
handlePause?: (() => void) | undefined;
handleEnded?: (() => void) | undefined;
handleDurationCheck?: (() => void) | undefined;
_setIsReady?: ((ready: boolean) => void) | undefined;
_setIsLoading?: ((loading: boolean) => void) | undefined;
_getIsLoading?: (() => boolean) | undefined;
_setStartOnPlay?: ((onPlay: boolean) => void) | undefined;
_getStartOnPlay?: (() => boolean | undefined) | undefined;
_setOnDurationCalled?: ((durationCalled: boolean) => void) | undefined;
_getOnDurationCalled?: (() => boolean | undefined) | undefined;
_getIsPlaying?: (() => boolean) | undefined;
_setIsPlaying?: ((playing: boolean) => void) | undefined;
_setLoadOnReady?: ((onReady: PlayerUrl) => void) | undefined;
_getLoadOnReady?: (() => PlayerUrl | null) | undefined;
_setSeekOnPlay?: ((onPlay: number) => void) | undefined;
_setDurationCheckTimeout?: ((checkTimeout: number | null) => void) | undefined;
_getDurationCheckTimeout?: (() => number | null | undefined) | undefined;
_getSeekOnPlay?: (() => number | null) | undefined;
_setPlayer?: ((newPlayer: PlayerRef) => void) | undefined;
};

@@ -35,7 +59,6 @@ events: {

buffer: any;
startxxxxxxxxxxx: any;
playbackRateChange: any;
seek: any;
playbackQualityChange: any;
ready: CustomEvent<undefined>;
ready: CustomEvent<Event | undefined>;
mount: CustomEvent<undefined>;

@@ -45,3 +68,3 @@ start: CustomEvent<undefined>;

progress: CustomEvent<OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -63,8 +86,31 @@ ended: CustomEvent<Event | undefined>;

export default class PlayerMedia extends SvelteComponentTyped<PlayerMediaProps, PlayerMediaEvents, PlayerMediaSlots> {
get handlePlayerMount(): () => void;
get getDuration(): () => number | null;
get getCurrentTime(): () => number | null;
get getSecondsLoaded(): () => number | null;
get getInternalPlayer(): (key: InternalPlayerKey) => import("./players/types").GetPlayerReturn;
get seekTo(): (amount: number, type?: SeekToType | undefined, keepPlaying?: boolean) => void;
get getInternalPlayer(): <TKey extends "player" | "hls" | "dash" | "flv">(key?: TKey | undefined) => PlayerInternalPlayer[TKey] | null;
get progress(): () => void;
get seekTo(): (amount: number, type?: SeekToType | undefined, keepPlaying?: boolean | undefined) => void;
get handleReady(): () => void;
get handlePlay(): () => void;
get handlePause(): () => void;
get handleEnded(): () => void;
get handleDurationCheck(): () => void;
get _setIsReady(): (ready: boolean) => void;
get _setIsLoading(): (loading: boolean) => void;
get _getIsLoading(): () => boolean;
get _setStartOnPlay(): (onPlay: boolean) => void;
get _getStartOnPlay(): () => boolean | undefined;
get _setOnDurationCalled(): (durationCalled: boolean) => void;
get _getOnDurationCalled(): () => boolean | undefined;
get _getIsPlaying(): () => boolean;
get _setIsPlaying(): (playing: boolean) => void;
get _setLoadOnReady(): (onReady: PlayerUrl) => void;
get _getLoadOnReady(): () => PlayerUrl | null;
get _setSeekOnPlay(): (onPlay: number) => void;
get _setDurationCheckTimeout(): (checkTimeout: number | null) => void;
get _getDurationCheckTimeout(): () => number | null | undefined;
get _getSeekOnPlay(): () => number | null;
get _setPlayer(): (newPlayer: PlayerRef) => void;
}
export {};

1

dist/players/dailymotion.global.types.d.ts

@@ -44,3 +44,2 @@ export type DailyMotionPlayerOptionsParams = {

new (container: HTMLElement, options: Partial<DailyMotionPlayerOptions>): DailyMotionPlayer;
readonly prototype: DailyMotionPlayer;
}

@@ -47,0 +46,0 @@ export type DailyMotion = {

import { SvelteComponentTyped } from "svelte";
import type { FilePlayerUrl, GetPlayerReturn } from './types';
import type { DailyMotionPlayer } from './dailymotion.global.types';
import type { DailyMotionConfig } from './dailymotion.types';
declare const __propDef: {
props: {
url?: FilePlayerUrl | undefined;
playing: boolean;
loop?: boolean | undefined;
controls: boolean;
volume?: number | null | undefined;
muted: boolean;
width?: string | undefined;
height?: string | undefined;
playsinline?: boolean | undefined;
config: DailyMotionConfig;
load?: ((url: string, _?: boolean) => void) | undefined;
display?: string | undefined;
load?: ((url: string) => void) | undefined;
_onDurationChange?: (() => void) | undefined;
play?: (() => void) | undefined;
pause?: (() => void) | undefined;
stop?: (() => void) | undefined;
seekTo?: ((seconds: number, _?: boolean) => void) | undefined;
seekTo?: ((seconds: number, keepPlaying?: boolean) => void) | undefined;
setVolume?: ((fraction: number) => void) | undefined;
mute?: (() => void) | undefined;
unmute?: (() => void) | undefined;
getDuration?: (() => number) | undefined;
getDuration?: (() => number | null) | undefined;
getCurrentTime?: (() => number) | undefined;
getSecondsLoaded?: (() => number) | undefined;
getPlayer?: (() => GetPlayerReturn) | undefined;
getPlayer?: (() => DailyMotionPlayer) | undefined;
_setPlayer?: ((newPlayer: DailyMotionPlayer) => void) | undefined;
};

@@ -35,3 +32,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -58,21 +55,17 @@ buffer: CustomEvent<Event | undefined>;

export default class DailyMotion extends SvelteComponentTyped<DailyMotionProps, DailyMotionEvents, DailyMotionSlots> {
get url(): NonNullable<FilePlayerUrl | undefined>;
get loop(): NonNullable<boolean | undefined>;
get volume(): number;
get width(): string;
get height(): string;
get playsinline(): NonNullable<boolean | undefined>;
get load(): (url: string, _?: boolean | undefined) => void;
get load(): (url: string) => void;
get _onDurationChange(): () => void;
get play(): () => void;
get pause(): () => void;
get stop(): () => void;
get seekTo(): (seconds: number, _?: boolean | undefined) => void;
get seekTo(): (seconds: number, keepPlaying?: boolean) => void;
get setVolume(): (fraction: number) => void;
get mute(): () => void;
get unmute(): () => void;
get getDuration(): () => number;
get getDuration(): () => number | null;
get getCurrentTime(): () => number;
get getSecondsLoaded(): () => number;
get getPlayer(): () => GetPlayerReturn;
get getPlayer(): () => DailyMotionPlayer;
get _setPlayer(): (newPlayer: DailyMotionPlayer) => void;
}
export {};

@@ -1,1 +0,17 @@

export type { MediaPlayerClass as DashJSMediaPlayerClass } from 'dashjs';
import type dashjs from 'dashjs';
import type { MediaPlayerClass } from 'dashjs';
type TypeOfDashJS = typeof dashjs;
type DashJSLogLevel = TypeOfDashJS['LogLevel'];
export type DashJSDebugLogLevel = {
[k in keyof DashJSLogLevel]: DashJSLogLevel[k];
};
export type DashJS = TypeOfDashJS & {
Debug: DashJSDebugLogLevel;
};
type DashJSDebug = ReturnType<MediaPlayerClass['getDebug']> & {
setLogToBrowserConsole?: (setLog: boolean) => void;
};
export type DashJSMediaPlayerClass = Omit<MediaPlayerClass, 'getDebug'> & {
getDebug(): DashJSDebug;
};
export {};
import { SvelteComponentTyped } from "svelte";
import type { FilePlayerUrl, GetPlayerReturn } from './types';
import type { FacebookPlayer } from './facebook.global.types';
import type { FacebookConfig } from './facebook.types';
declare const __propDef: {
props: {
url: FilePlayerUrl;
url: string;
playing: boolean;
loop?: boolean | undefined;
controls: boolean;
volume?: number | null | undefined;
muted: boolean;
width?: string | undefined;
height?: string | undefined;
playsinline?: boolean | undefined;
config: FacebookConfig;

@@ -20,3 +15,3 @@ load?: ((_: string, isReady?: boolean) => void) | undefined;

stop?: (() => void) | undefined;
seekTo?: ((seconds: number, _?: boolean) => void) | undefined;
seekTo?: ((seconds: number, keepPlaying?: boolean) => void) | undefined;
setVolume?: ((fraction: number) => void) | undefined;

@@ -27,4 +22,5 @@ mute?: (() => void) | undefined;

getCurrentTime?: (() => number) | undefined;
getSecondsLoaded?: (() => number) | undefined;
getPlayer?: (() => GetPlayerReturn) | undefined;
getSecondsLoaded?: (() => null) | undefined;
getPlayer?: (() => FacebookPlayer) | undefined;
_setPlayer?: ((newPlayer: FacebookPlayer) => void) | undefined;
};

@@ -37,3 +33,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -60,7 +56,2 @@ buffer: CustomEvent<Event | undefined>;

export default class Facebook extends SvelteComponentTyped<FacebookProps, FacebookEvents, FacebookSlots> {
get loop(): NonNullable<boolean | undefined>;
get volume(): number;
get width(): string;
get height(): string;
get playsinline(): NonNullable<boolean | undefined>;
get load(): (_: string, isReady?: boolean | undefined) => void;

@@ -70,3 +61,3 @@ get play(): () => void;

get stop(): () => void;
get seekTo(): (seconds: number, _?: boolean | undefined) => void;
get seekTo(): (seconds: number, keepPlaying?: boolean) => void;
get setVolume(): (fraction: number) => void;

@@ -77,5 +68,6 @@ get mute(): () => void;

get getCurrentTime(): () => number;
get getSecondsLoaded(): () => number;
get getPlayer(): () => GetPlayerReturn;
get getSecondsLoaded(): () => null;
get getPlayer(): () => FacebookPlayer;
get _setPlayer(): (newPlayer: FacebookPlayer) => void;
}
export {};
import type { HTMLVideoAttributes, HTMLAudioAttributes, HTMLTrackAttributes } from 'svelte/elements';
import type { FilePlayerUrl } from './types';
export type FileConfigAttributes = Omit<HTMLVideoAttributes | HTMLAudioAttributes, `on:${string}`>;
export type FileConfigHlsOptions = Record<string, never>;
import type { GlobalSDKFLV, GlobalSDKHLS } from './global.types';
import type { HlsConfig, HLSClass, ErrorData } from './hls.types';
import type { DashJSMediaPlayerClass } from './dash.types';
import type { FlvJSPlayer } from './flv.types';
export type { DashJSMediaPlayerClass } from './dash.types';
export type { FlvJSPlayer } from './flv.types';
export type { HLSClass } from './hls.types';
export type FileMedia = {
src: string;
type: string;
};
export type FileUrl = string | string[] | FileMedia[] | MediaStream;
export type FileConfigAttributes = Omit<HTMLVideoAttributes, `on:${string}`> | Omit<HTMLAudioAttributes, `on:${string}`>;
export type FileConfig = {

@@ -13,3 +23,3 @@ attributes: Partial<FileConfigAttributes>;

forceFLV: boolean;
hlsOptions: FileConfigHlsOptions;
hlsOptions: Partial<HlsConfig>;
hlsVersion: string;

@@ -21,5 +31,18 @@ dashVersion: string;

};
export type ShouldUseAudioParams = {
url: FilePlayerUrl;
config: FileConfig;
export type FilePlayerElement = HTMLAudioElement | HTMLVideoElement;
export type FilePlayer = FilePlayerElement;
export type FileInternalPlayer = {
hls: HLSClass;
dash: DashJSMediaPlayerClass;
flv: FlvJSPlayer;
player: FilePlayer;
};
export type FileInternalPlayerKey = keyof FileInternalPlayer;
export type FileErrorData = ErrorData;
export type FileErrorSDKInstance = HLSClass | FlvJSPlayer;
export type FileErrorSDKGlobal = GlobalSDKFLV | GlobalSDKHLS;
export type AddListenersFn = (playerParams: FilePlayerElement) => void;
export type RemoveListenersFn = (playerParams: FilePlayerElement, urlParams?: FileUrl) => void;
export type PlayerElementRef = {
getPlayer(): FilePlayerElement;
};
import { SvelteComponentTyped } from "svelte";
import type { FilePlayerUrl, GetPlayerReturn } from './types';
import type { FileConfig } from './file.types';
import type { FileConfig, FilePlayerElement, FileUrl, FileInternalPlayer, DashJSMediaPlayerClass } from './file.types';
declare const __propDef: {
props: {
url: FilePlayerUrl;
url: FileUrl;
playing: boolean;
loop: boolean;
controls: boolean;
volume?: number | null | undefined;
muted: boolean;
width: string;
height: string;
playsinline?: boolean | undefined;
playsinline: boolean;
config: FileConfig;
load?: ((url: FilePlayerUrl, _?: boolean) => void) | undefined;
setInternalPlayer?: ((newPlayer: FilePlayerElement) => void) | undefined;
_addListeners?: ((playerParams: FilePlayerElement) => void) | undefined;
_removeListeners?: ((playerParams: FilePlayerElement, urlParams?: FileUrl | undefined) => void) | undefined;
onSeek?: ((e: Event) => void) | undefined;
load?: ((loadUrl: FileUrl) => void) | undefined;
play?: (() => void) | undefined;
pause?: (() => void) | undefined;
stop?: (() => void) | undefined;
seekTo?: ((seconds: number, _?: boolean) => void) | undefined;
seekTo?: ((seconds: number, keepPlaying?: boolean) => void) | undefined;
setVolume?: ((fraction: number) => void) | undefined;

@@ -27,6 +29,8 @@ mute?: (() => void) | undefined;

setPlaybackRate?: ((rate: number) => void) | undefined;
getDuration?: (() => number) | undefined;
getCurrentTime?: (() => number) | undefined;
getSecondsLoaded?: (() => number) | undefined;
getPlayer?: (() => GetPlayerReturn | null) | undefined;
getDuration?: (() => number | null) | undefined;
getCurrentTime?: (() => number | null) | undefined;
getSecondsLoaded?: (() => number | null) | undefined;
getPlayer?: (<TKey extends keyof FileInternalPlayer>(key: TKey) => FileInternalPlayer[TKey] | null) | undefined;
_setPlayer?: ((newPlayer: FilePlayerElement) => void) | undefined;
_setDash?: ((newDashPlayer: DashJSMediaPlayerClass) => void) | undefined;
};

@@ -39,3 +43,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -62,9 +66,9 @@ buffer: CustomEvent<Event | undefined>;

export default class FilePlayer extends SvelteComponentTyped<FilePlayerProps, FilePlayerEvents, FilePlayerSlots> {
get volume(): number;
get playsinline(): NonNullable<boolean | undefined>;
get load(): (url: FilePlayerUrl, _?: boolean | undefined) => void;
get setInternalPlayer(): (newPlayer: FilePlayerElement) => void;
get onSeek(): (e: Event) => void;
get load(): (loadUrl: FileUrl) => void;
get play(): () => void;
get pause(): () => void;
get stop(): () => void;
get seekTo(): (seconds: number, _?: boolean | undefined) => void;
get seekTo(): (seconds: number, keepPlaying?: boolean) => void;
get setVolume(): (fraction: number) => void;

@@ -76,7 +80,9 @@ get mute(): () => void;

get setPlaybackRate(): (rate: number) => void;
get getDuration(): () => number;
get getCurrentTime(): () => number;
get getSecondsLoaded(): () => number;
get getPlayer(): () => GetPlayerReturn;
get getDuration(): () => number | null;
get getCurrentTime(): () => number | null;
get getSecondsLoaded(): () => number | null;
get getPlayer(): <TKey extends keyof FileInternalPlayer>(key: TKey) => FileInternalPlayer[TKey] | null;
get _setPlayer(): (newPlayer: FilePlayerElement) => void;
get _setDash(): (newDashPlayer: DashJSMediaPlayerClass) => void;
}
export {};
import type flv from 'flv.js';
export type FlvJSPlayer = flv.Player;
export type FlvJS = typeof flv;

@@ -11,51 +11,78 @@ import type { YT, YTSDKReady } from './youtube.global.types';

import type { Vidyard, VidyardSDKReady } from './vidyard.global.types';
import type { HlsJS, DashJS, FlvJS, Hls } from './fileplayer.global.types';
export type GlobalSDK = {
YT: YT;
SC: SoundCloud;
Vimeo: Vimeo;
FB: Facebook;
playerjs: PlayerJS;
Wistia: Wistia;
Twitch: Twitch;
DM: DailyMotion;
Mixcloud: MixcloudPlayer;
VidyardV4: Vidyard;
Hls: HlsJS;
dashjs: DashJS;
flvjs: FlvJS;
import type { HlsJS } from './hls.types';
import type { DashJS } from './dash.types';
import type { FlvJS } from './flv.types';
export type GlobalSDKYTKey = 'YT';
export type GlobalSDKYT = YT;
type GlobalSDKYTObject = {
[k in GlobalSDKYTKey]: GlobalSDKYT;
};
export type GlobalSDKSoundCloudKey = 'SC';
export type GlobalSDKSoundCloud = SoundCloud;
type GlobalSDKSoundCloudObject = {
[k in GlobalSDKSoundCloudKey]: GlobalSDKSoundCloud;
};
export type GlobalSDKVimeoKey = 'Vimeo';
export type GlobalSDKVimeo = Vimeo;
type GlobalSDKVimeoObject = {
[k in GlobalSDKVimeoKey]: GlobalSDKVimeo;
};
export type GlobalSDKFacebookKey = 'FB';
export type GlobalSDKFacebook = Facebook;
type GlobalSDKFacebookObject = {
[k in GlobalSDKFacebookKey]: GlobalSDKFacebook;
};
export type GlobalSDKPlayerJSKey = 'playerjs';
export type GlobalSDKPlayerJS = PlayerJS;
type GlobalSDKPlayerJSObject = {
[k in GlobalSDKPlayerJSKey]: GlobalSDKPlayerJS;
};
export type GlobalSDKWistiaKey = 'Wistia';
export type GlobalSDKWistia = Wistia;
type GlobalSDKWistiaObject = {
[k in GlobalSDKWistiaKey]: GlobalSDKWistia;
};
export type GlobalSDKTwitchKey = 'Twitch';
export type GlobalSDKTwitch = Twitch;
type GlobalSDKTwitchObject = {
[k in GlobalSDKTwitchKey]: GlobalSDKTwitch;
};
export type GlobalSDKDailyMotionKey = 'DM';
export type GlobalSDKDailyMotion = DailyMotion;
type GlobalSDKDailyMotionObject = {
[k in GlobalSDKDailyMotionKey]: GlobalSDKDailyMotion;
};
export type GlobalSDKMixcloudKey = 'Mixcloud';
export type GlobalSDKMixcloud = MixcloudPlayer;
type GlobalSDKMixcloudObject = {
[k in GlobalSDKMixcloudKey]: GlobalSDKMixcloud;
};
export type GlobalSDKVidyardKey = 'VidyardV4';
export type GlobalSDKVidyard = Vidyard;
type GlobalSDKVidyardObject = {
[k in GlobalSDKVidyardKey]: GlobalSDKVidyard;
};
export type GlobalSDKHLSKey = 'Hls';
export type GlobalSDKHLS = HlsJS;
type GlobalSDKHLSObject = {
[k in GlobalSDKHLSKey]: GlobalSDKHLS;
};
export type GlobalSDKDASHKey = 'dashjs';
export type GlobalSDKDASH = DashJS;
type GlobalSDKDASHObject = {
[k in GlobalSDKDASHKey]: GlobalSDKDASH;
};
export type GlobalSDKFLVKey = 'flvjs';
export type GlobalSDKFLV = FlvJS;
type GlobalSDKFLVObject = {
[k in GlobalSDKFLVKey]: GlobalSDKFLV;
};
export type GlobalSDK = GlobalSDKYTObject & GlobalSDKSoundCloudObject & GlobalSDKVimeoObject & GlobalSDKFacebookObject & GlobalSDKPlayerJSObject & GlobalSDKWistiaObject & GlobalSDKTwitchObject & GlobalSDKDailyMotionObject & GlobalSDKMixcloudObject & GlobalSDKVidyardObject & GlobalSDKHLSObject & GlobalSDKDASHObject & GlobalSDKFLVObject;
export type GlobalSDKType = keyof GlobalSDK;
export type GlobalSDKYTKey = Extract<GlobalSDKType, 'YT'>;
export type GlobalSDKSoundCloudKey = Extract<GlobalSDKType, 'SC'>;
export type GlobalSDKVimeoKey = Extract<GlobalSDKType, 'Vimeo'>;
export type GlobalSDKFacebookKey = Extract<GlobalSDKType, 'FB'>;
export type GlobalSDKPlayerJSKey = Extract<GlobalSDKType, 'playerjs'>;
export type GlobalSDKWistiaKey = Extract<GlobalSDKType, 'Wistia'>;
export type GlobalSDKTwitchKey = Extract<GlobalSDKType, 'Twitch'>;
export type GlobalSDKDailyMotionKey = Extract<GlobalSDKType, 'DM'>;
export type GlobalSDKMixcloudKey = Extract<GlobalSDKType, 'Mixcloud'>;
export type GlobalSDKVidyardKey = Extract<GlobalSDKType, 'VidyardV4'>;
export type GlobalSDKHLSKey = Extract<GlobalSDKType, 'Hls'>;
export type GlobalSDKDASHKey = Extract<GlobalSDKType, 'dashjs'>;
export type GlobalSDKFLVKey = Extract<GlobalSDKType, 'flvjs'>;
export type GlobalSDKValue = GlobalSDK[GlobalSDKType];
export type GlobalSDKYT = Extract<GlobalSDKValue, YT>;
export type GlobalSDKSoundCloud = Extract<GlobalSDKValue, SoundCloud>;
export type GlobalSDKVimeo = Extract<GlobalSDKValue, Vimeo>;
export type GlobalSDKFacebook = Extract<GlobalSDKValue, Facebook>;
export type GlobalSDKPlayerJS = Extract<GlobalSDKValue, PlayerJS>;
export type GlobalSDKWistia = Extract<GlobalSDKValue, Wistia>;
export type GlobalSDKTwitch = Extract<GlobalSDKValue, Twitch>;
export type GlobalSDKDailyMotion = Extract<GlobalSDKValue, DailyMotion>;
export type GlobalSDKMixcloud = Extract<GlobalSDKValue, MixcloudPlayer>;
export type GlobalSDKVidyard = Extract<GlobalSDKValue, Vidyard>;
export type GlobalSDKHLSClass = Hls;
export type GlobalSDKHLS = Extract<GlobalSDKValue, HlsJS>;
export type GlobalSDKDASH = Extract<GlobalSDKValue, DashJS>;
export type GlobalSDKFLV = Extract<GlobalSDKValue, FlvJS>;
export type GlobalSDKReady = YTSDKReady | DailyMotionSDKReady | FacebookSDKReady | VidyardSDKReady;
export type GlobalSDKYTReady = Extract<GlobalSDKReady, YTSDKReady>;
export type GlobalSDKDailyMotionReady = Extract<GlobalSDKReady, DailyMotionSDKReady>;
export type GlobalSDKFacebookReady = Extract<GlobalSDKReady, FacebookSDKReady>;
export type GlobalSDKVidyardReady = Extract<GlobalSDKReady, VidyardSDKReady>;
export type GlobalSDKYTReady = YTSDKReady;
export type GlobalSDKDailyMotionReady = DailyMotionSDKReady;
export type GlobalSDKFacebookReady = FacebookSDKReady;
export type GlobalSDKVidyardReady = VidyardSDKReady;
export type GlobalSDKReady = GlobalSDKYTReady | GlobalSDKDailyMotionReady | GlobalSDKFacebookReady | GlobalSDKVidyardReady;
export {};

@@ -1,96 +0,3 @@

import type { FilePlayerUrl } from './types';
import { canPlayYoutube, canPlayFile, canPlayTwitch, canPlaySoundCloud, canPlayMixcloud, canPlayDailyMotion, canPlayFacebook, canPlayVimeo, canPlayStreamable, canPlayKaltura, canPlayWistia, canPlayVidyard } from './patterns';
declare const players: readonly [{
readonly key: "youtube";
readonly canPlay: typeof canPlayYoutube;
readonly canEnablePIP: undefined;
readonly loopOnEnded: undefined;
readonly forceLoad: undefined;
readonly loadComponent: () => Promise<typeof import("./YouTube.svelte")>;
}, {
readonly key: "soundcloud";
readonly canPlay: typeof canPlaySoundCloud;
readonly canEnablePIP: undefined;
readonly loopOnEnded: true;
readonly forceLoad: undefined;
readonly loadComponent: () => Promise<typeof import("./SoundCloud.svelte")>;
}, {
readonly key: "vimeo";
readonly canPlay: typeof canPlayVimeo;
readonly canEnablePIP: undefined;
readonly loopOnEnded: undefined;
readonly forceLoad: true;
readonly loadComponent: () => Promise<typeof import("./Vimeo.svelte")>;
}, {
readonly key: "facebook";
readonly canPlay: typeof canPlayFacebook;
readonly canEnablePIP: undefined;
readonly loopOnEnded: true;
readonly forceLoad: undefined;
readonly loadComponent: () => Promise<typeof import("./Facebook.svelte")>;
}, {
readonly key: "streamable";
readonly canPlay: typeof canPlayStreamable;
readonly canEnablePIP: undefined;
readonly loopOnEnded: undefined;
readonly forceLoad: undefined;
readonly loadComponent: () => Promise<typeof import("./Streamable.svelte")>;
}, {
readonly key: "wistia";
readonly canPlay: typeof canPlayWistia;
readonly canEnablePIP: undefined;
readonly loopOnEnded: true;
readonly forceLoad: undefined;
readonly loadComponent: () => Promise<typeof import("./Wistia.svelte")>;
}, {
readonly key: "twitch";
readonly canPlay: typeof canPlayTwitch;
readonly canEnablePIP: undefined;
readonly loopOnEnded: true;
readonly forceLoad: undefined;
readonly loadComponent: () => Promise<typeof import("./Twitch.svelte")>;
}, {
readonly key: "dailymotion";
readonly canPlay: typeof canPlayDailyMotion;
readonly canEnablePIP: undefined;
readonly loopOnEnded: true;
readonly forceLoad: undefined;
readonly loadComponent: () => Promise<typeof import("./DailyMotion.svelte")>;
}, {
readonly key: "mixcloud";
readonly canPlay: typeof canPlayMixcloud;
readonly canEnablePIP: undefined;
readonly loopOnEnded: true;
readonly forceLoad: undefined;
readonly loadComponent: () => Promise<typeof import("./Mixcloud.svelte")>;
}, {
readonly key: "vidyard";
readonly canPlay: typeof canPlayVidyard;
readonly canEnablePIP: undefined;
readonly loopOnEnded: undefined;
readonly forceLoad: undefined;
readonly loadComponent: () => Promise<typeof import("./Vidyard.svelte")>;
}, {
readonly key: "kaltura";
readonly canPlay: typeof canPlayKaltura;
readonly canEnablePIP: undefined;
readonly loopOnEnded: undefined;
readonly forceLoad: undefined;
readonly loadComponent: () => Promise<typeof import("./Kaltura.svelte")>;
}, {
readonly key: "file";
readonly canPlay: typeof canPlayFile;
readonly loopOnEnded: undefined;
readonly forceLoad: undefined;
readonly canEnablePIP: (url: FilePlayerUrl) => unknown;
readonly loadComponent: () => Promise<typeof import("./FilePlayer.svelte")>;
}, {
readonly key: "not-implemented";
readonly loopOnEnded: undefined;
readonly forceLoad: undefined;
readonly canPlay: () => boolean;
readonly canEnablePIP: () => boolean;
readonly loadComponent: () => Promise<typeof import("./NotImplemented.svelte")>;
}];
export type Player = (typeof players)[number];
import type { Player } from './types';
declare const players: Player[];
export default players;

@@ -6,2 +6,3 @@ import { canPlayYoutube, canPlayFile, AUDIO_EXTENSIONS, canPlayTwitch, canPlaySoundCloud, canPlayMixcloud, canPlayDailyMotion, canPlayFacebook, canPlayVimeo, canPlayStreamable, canPlayKaltura, canPlayWistia, canPlayVidyard } from './patterns';

key: 'youtube',
name: 'YouTube',
canPlay: canPlayYoutube,

@@ -11,3 +12,3 @@ canEnablePIP: undefined,

forceLoad: undefined,
loadComponent: () => {
loadComponent() {
return import('./YouTube.svelte');

@@ -18,2 +19,3 @@ }

key: 'soundcloud',
name: 'SoundCloud',
canPlay: canPlaySoundCloud,

@@ -23,3 +25,3 @@ canEnablePIP: undefined,

forceLoad: undefined,
loadComponent: () => {
loadComponent() {
return import('./SoundCloud.svelte');

@@ -30,2 +32,3 @@ }

key: 'vimeo',
name: 'Vimeo',
canPlay: canPlayVimeo,

@@ -35,3 +38,3 @@ canEnablePIP: undefined,

forceLoad: true,
loadComponent: () => {
loadComponent() {
return import('./Vimeo.svelte');

@@ -42,2 +45,3 @@ }

key: 'facebook',
name: 'Facebook',
canPlay: canPlayFacebook,

@@ -47,3 +51,3 @@ canEnablePIP: undefined,

forceLoad: undefined,
loadComponent: () => {
loadComponent() {
return import('./Facebook.svelte');

@@ -54,2 +58,3 @@ }

key: 'streamable',
name: 'Streamable',
canPlay: canPlayStreamable,

@@ -59,3 +64,3 @@ canEnablePIP: undefined,

forceLoad: undefined,
loadComponent: () => {
loadComponent() {
return import('./Streamable.svelte');

@@ -66,2 +71,3 @@ }

key: 'wistia',
name: 'Wistia',
canPlay: canPlayWistia,

@@ -71,3 +77,3 @@ canEnablePIP: undefined,

forceLoad: undefined,
loadComponent: () => {
loadComponent() {
return import('./Wistia.svelte');

@@ -78,2 +84,3 @@ }

key: 'twitch',
name: 'Twitch',
canPlay: canPlayTwitch,

@@ -83,3 +90,3 @@ canEnablePIP: undefined,

forceLoad: undefined,
loadComponent: () => {
loadComponent() {
return import('./Twitch.svelte');

@@ -90,2 +97,3 @@ }

key: 'dailymotion',
name: 'DailyMotion',
canPlay: canPlayDailyMotion,

@@ -95,3 +103,3 @@ canEnablePIP: undefined,

forceLoad: undefined,
loadComponent: () => {
loadComponent() {
return import('./DailyMotion.svelte');

@@ -102,2 +110,3 @@ }

key: 'mixcloud',
name: 'Mixcloud',
canPlay: canPlayMixcloud,

@@ -107,3 +116,3 @@ canEnablePIP: undefined,

forceLoad: undefined,
loadComponent: () => {
loadComponent() {
return import('./Mixcloud.svelte');

@@ -114,2 +123,3 @@ }

key: 'vidyard',
name: 'Vidyard',
canPlay: canPlayVidyard,

@@ -119,3 +129,3 @@ canEnablePIP: undefined,

forceLoad: undefined,
loadComponent: () => {
loadComponent() {
return import('./Vidyard.svelte');

@@ -126,2 +136,3 @@ }

key: 'kaltura',
name: 'Kaltura',
canPlay: canPlayKaltura,

@@ -131,3 +142,3 @@ canEnablePIP: undefined,

forceLoad: undefined,
loadComponent: () => {
loadComponent() {
return import('./Kaltura.svelte');

@@ -138,6 +149,7 @@ }

key: 'file',
name: 'FilePlayer',
canPlay: canPlayFile,
loopOnEnded: undefined,
forceLoad: undefined,
canEnablePIP: (url) => {
canEnablePIP(url) {
return (canPlayFile(url) &&

@@ -148,3 +160,3 @@ (document.pictureInPictureEnabled || supportsWebKitPresentationMode()) &&

},
loadComponent: () => {
loadComponent() {
return import('./FilePlayer.svelte');

@@ -155,2 +167,3 @@ }

key: 'not-implemented',
name: 'NotImplemented',
loopOnEnded: undefined,

@@ -161,6 +174,6 @@ forceLoad: undefined,

},
canEnablePIP: () => {
canEnablePIP() {
return false;
},
loadComponent: () => {
loadComponent() {
return import('./NotImplemented.svelte');

@@ -167,0 +180,0 @@ }

import { SvelteComponentTyped } from "svelte";
import type { FilePlayerUrl, GetPlayerReturn } from './types';
import type { PlayerJSPlayer } from './playerjs.global.types';
declare const __propDef: {
props: {
url: FilePlayerUrl;
playing?: boolean | undefined;
url: string;
loop: boolean;
controls?: boolean | undefined;
volume?: number | null | undefined;
muted: boolean;
width?: string | undefined;
height?: string | undefined;
playsinline?: boolean | undefined;
config?: Record<string, never> | undefined;
load?: ((_: FilePlayerUrl, __?: boolean) => void) | undefined;
load?: (() => void) | undefined;
play?: (() => void) | undefined;
pause?: (() => void) | undefined;
stop?: (() => void) | undefined;
seekTo?: ((seconds: number, _?: boolean) => void) | undefined;
seekTo?: ((seconds: number, keepPlaying?: boolean) => void) | undefined;
setVolume?: ((fraction: number) => void) | undefined;
setLoop?: ((loop: boolean) => void) | undefined;
mute?: (() => void) | undefined;
unmute?: (() => void) | undefined;
setLoop?: ((loop: boolean) => void) | undefined;
getDuration?: (() => number) | undefined;
getCurrentTime?: (() => number) | undefined;
getSecondsLoaded?: (() => number) | undefined;
getPlayer?: (() => GetPlayerReturn) | undefined;
getDuration?: (() => number | null) | undefined;
getCurrentTime?: (() => number | null) | undefined;
getSecondsLoaded?: (() => number | null) | undefined;
getPlayer?: (() => PlayerJSPlayer) | undefined;
_setPlayer?: ((newPlayer: PlayerJSPlayer) => void) | undefined;
_setDuration?: ((newDuration: number) => void) | undefined;
_setCurrentTime?: ((newCurrentTime: number) => void) | undefined;
_setSecondsLoaded?: ((newSecondsLoaded: number) => void) | undefined;
};

@@ -35,3 +32,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -58,23 +55,20 @@ buffer: CustomEvent<Event | undefined>;

export default class Kaltura extends SvelteComponentTyped<KalturaProps, KalturaEvents, KalturaSlots> {
get playing(): NonNullable<boolean | undefined>;
get controls(): NonNullable<boolean | undefined>;
get volume(): number;
get width(): string;
get height(): string;
get playsinline(): NonNullable<boolean | undefined>;
get config(): Record<string, never>;
get load(): (_: FilePlayerUrl, __?: boolean | undefined) => void;
get load(): () => void;
get play(): () => void;
get pause(): () => void;
get stop(): () => void;
get seekTo(): (seconds: number, _?: boolean | undefined) => void;
get seekTo(): (seconds: number, keepPlaying?: boolean) => void;
get setVolume(): (fraction: number) => void;
get setLoop(): (loop: boolean) => void;
get mute(): () => void;
get unmute(): () => void;
get setLoop(): (loop: boolean) => void;
get getDuration(): () => number;
get getCurrentTime(): () => number;
get getSecondsLoaded(): () => number;
get getPlayer(): () => GetPlayerReturn;
get getDuration(): () => number | null;
get getCurrentTime(): () => number | null;
get getSecondsLoaded(): () => number | null;
get getPlayer(): () => PlayerJSPlayer;
get _setPlayer(): (newPlayer: PlayerJSPlayer) => void;
get _setDuration(): (newDuration: number) => void;
get _setCurrentTime(): (newCurrentTime: number) => void;
get _setSecondsLoaded(): (newSecondsLoaded: number) => void;
}
export {};

@@ -19,3 +19,3 @@ export type MixcloudPlayerLoadOptions = {

export type MixcloudWidgetProgressEVENT = {
[l in Extract<MixcloudPlayerEVENT, MixcloudPROGRESSEvent>]: {
[l in MixcloudPROGRESSEvent]: {
on(callback: MixcloudWidgetProgressEVENTCallback): void;

@@ -26,3 +26,3 @@ off(callback: MixcloudWidgetEVENTCallback): void;

export type MixcloudWidgetErrorEVENT = {
[l in Extract<MixcloudPlayerEVENT, MixcloudERROREvent>]: {
[l in MixcloudERROREvent]: {
on(callback: MixcloudWidgetErrorßEVENTCallback): void;

@@ -29,0 +29,0 @@ off(callback: MixcloudWidgetEVENTCallback): void;

import { SvelteComponentTyped } from "svelte";
import type { FilePlayerUrl, GetPlayerReturn } from './types';
import type { MixcloudWidget } from './mixcloud.global.types';
import type { MixcloudConfig } from './mixcloud.types';
declare const __propDef: {
props: {
url: FilePlayerUrl;
playing?: boolean | undefined;
loop?: boolean | undefined;
controls?: boolean | undefined;
volume?: number | null | undefined;
muted?: boolean | undefined;
width?: string | undefined;
height?: string | undefined;
playsinline?: boolean | undefined;
url: string;
config: MixcloudConfig;
load?: ((_: string, __?: boolean) => void) | undefined;
load?: (() => void) | undefined;
play?: (() => void) | undefined;
pause?: (() => void) | undefined;
stop?: (() => void) | undefined;
seekTo?: ((seconds: number, _?: boolean) => void) | undefined;
seekTo?: ((seconds: number, keepPlaying?: boolean) => void) | undefined;
setVolume?: ((_: number) => void) | undefined;
mute?: (() => void) | undefined;
unmute?: (() => void) | undefined;
getDuration?: (() => number) | undefined;
getCurrentTime?: (() => number) | undefined;
getSecondsLoaded?: (() => number) | undefined;
getPlayer?: (() => GetPlayerReturn) | undefined;
getDuration?: (() => number | null) | undefined;
getCurrentTime?: (() => number | null) | undefined;
getSecondsLoaded?: (() => null) | undefined;
getPlayer?: (() => MixcloudWidget) | undefined;
_setPlayer?: ((newPlayer: MixcloudWidget) => void) | undefined;
_setDuration?: ((newDuration: number) => void) | undefined;
_setCurrentTime?: ((newCurrentTime: number) => void) | undefined;
};

@@ -35,3 +30,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -58,23 +53,18 @@ buffer: CustomEvent<Event | undefined>;

export default class Mixcloud extends SvelteComponentTyped<MixcloudProps, MixcloudEvents, MixcloudSlots> {
get playing(): NonNullable<boolean | undefined>;
get loop(): NonNullable<boolean | undefined>;
get controls(): NonNullable<boolean | undefined>;
get volume(): number;
get muted(): NonNullable<boolean | undefined>;
get width(): string;
get height(): string;
get playsinline(): NonNullable<boolean | undefined>;
get load(): (_: string, __?: boolean | undefined) => void;
get load(): () => void;
get play(): () => void;
get pause(): () => void;
get stop(): () => void;
get seekTo(): (seconds: number, _?: boolean | undefined) => void;
get seekTo(): (seconds: number, keepPlaying?: boolean) => void;
get setVolume(): (_: number) => void;
get mute(): () => void;
get unmute(): () => void;
get getDuration(): () => number;
get getCurrentTime(): () => number;
get getSecondsLoaded(): () => number;
get getPlayer(): () => GetPlayerReturn;
get getDuration(): () => number | null;
get getCurrentTime(): () => number | null;
get getSecondsLoaded(): () => null;
get getPlayer(): () => MixcloudWidget;
get _setPlayer(): (newPlayer: MixcloudWidget) => void;
get _setDuration(): (newDuration: number) => void;
get _setCurrentTime(): (newCurrentTime: number) => void;
}
export {};

@@ -1,1 +0,1 @@

export type NotImplementedPlayer = Record<string, never>;
export type NotImplementedPlayer = null;
import { SvelteComponentTyped } from "svelte";
import type { FilePlayerUrl, GetPlayerReturn } from './types';
import type { NotImplementedPlayer } from './notimplemented.global.types';
import type { PlayerUrl } from './types';
import type { NotImplementedConfig } from './notimplemented.types';
declare const __propDef: {
props: {
url?: FilePlayerUrl | undefined;
url?: PlayerUrl | undefined;
playing?: boolean | undefined;

@@ -16,3 +17,3 @@ loop?: boolean | undefined;

config?: NotImplementedConfig | undefined;
load?: ((url: FilePlayerUrl, isReady?: boolean) => void) | undefined;
load?: ((url: PlayerUrl, isReady?: boolean) => void) | undefined;
play?: (() => void) | undefined;

@@ -27,8 +28,9 @@ pause?: (() => void) | undefined;

setLoop?: ((loop: boolean) => void) | undefined;
getDuration?: (() => number) | undefined;
getCurrentTime?: (() => number) | undefined;
getSecondsLoaded?: (() => number) | undefined;
getDuration?: (() => number | null) | undefined;
getCurrentTime?: (() => number | null) | undefined;
getSecondsLoaded?: (() => number | null) | undefined;
enablePIP?: (() => void) | undefined;
disablePIP?: (() => void) | undefined;
getPlayer?: (() => GetPlayerReturn) | undefined;
getPlayer?: (() => NotImplementedPlayer) | undefined;
_setPlayer?: ((newPlayer: NotImplementedPlayer) => void) | undefined;
};

@@ -41,3 +43,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -64,3 +66,3 @@ buffer: CustomEvent<Event | undefined>;

export default class NotImplemented extends SvelteComponentTyped<NotImplementedProps, NotImplementedEvents, NotImplementedSlots> {
get url(): NonNullable<FilePlayerUrl | undefined>;
get url(): NonNullable<PlayerUrl | undefined>;
get playing(): NonNullable<boolean | undefined>;

@@ -75,3 +77,3 @@ get loop(): NonNullable<boolean | undefined>;

get config(): Partial<Record<string, never>>;
get load(): (url: FilePlayerUrl, isReady?: boolean | undefined) => void;
get load(): (url: PlayerUrl, isReady?: boolean | undefined) => void;
get play(): () => void;

@@ -86,9 +88,10 @@ get pause(): () => void;

get setLoop(): (loop: boolean) => void;
get getDuration(): () => number;
get getCurrentTime(): () => number;
get getSecondsLoaded(): () => number;
get getDuration(): () => number | null;
get getCurrentTime(): () => number | null;
get getSecondsLoaded(): () => number | null;
get enablePIP(): () => void;
get disablePIP(): () => void;
get getPlayer(): () => GetPlayerReturn;
get getPlayer(): () => null;
get _setPlayer(): (newPlayer: null) => void;
}
export {};

@@ -1,2 +0,3 @@

import type { FilePlayerUrl } from './types';
import type { YouTubeUrl } from './youtube.types';
import type { PlayerUrl } from './types';
export declare const MATCH_URL_YOUTUBE: RegExp;

@@ -20,14 +21,13 @@ export declare const MATCH_URL_SOUNDCLOUD: RegExp;

export declare const FLV_EXTENSIONS: RegExp;
export declare function everyNonObjectUrl(url: Exclude<FilePlayerUrl, string>, urlCase: RegExp): boolean;
export declare function canPlayYoutube(url: FilePlayerUrl): boolean;
export declare function canPlaySoundCloud(url: FilePlayerUrl): boolean;
export declare function canPlayVimeo(url: FilePlayerUrl): boolean;
export declare function canPlayFacebook(url: FilePlayerUrl): boolean;
export declare function canPlayStreamable(url: FilePlayerUrl): boolean;
export declare function canPlayWistia(url: FilePlayerUrl): boolean;
export declare function canPlayTwitch(url: FilePlayerUrl): boolean;
export declare function canPlayDailyMotion(url: FilePlayerUrl): boolean;
export declare function canPlayMixcloud(url: FilePlayerUrl): boolean;
export declare function canPlayVidyard(url: FilePlayerUrl): boolean;
export declare function canPlayKaltura(url: FilePlayerUrl): boolean;
export declare function canPlayFile(url: FilePlayerUrl): boolean;
export declare function canPlayYoutube(url: YouTubeUrl): boolean;
export declare function canPlaySoundCloud(url: string): boolean;
export declare function canPlayVimeo(url: string): boolean;
export declare function canPlayFacebook(url: string): boolean;
export declare function canPlayStreamable(url: string): boolean;
export declare function canPlayWistia(url: string): boolean;
export declare function canPlayTwitch(url: string): boolean;
export declare function canPlayDailyMotion(url: string): boolean;
export declare function canPlayMixcloud(url: string): boolean;
export declare function canPlayVidyard(url: string): boolean;
export declare function canPlayKaltura(url: string): boolean;
export declare function canPlayFile(url: PlayerUrl): boolean;

@@ -22,16 +22,7 @@ import { isMediaStream, isBlobUrl } from './utils';

export const FLV_EXTENSIONS = /\.(flv)($|\?)/i;
export function everyNonObjectUrl(url, urlCase) {
let isEveryUrl = true;
for (let i = 0; i < url.length; i++) {
const item = url[i];
if (typeof item !== 'string') {
return false;
}
isEveryUrl = isEveryUrl && urlCase.test(item);
}
return isEveryUrl;
}
export function canPlayYoutube(url) {
if (url instanceof Array) {
return everyNonObjectUrl(url, MATCH_URL_YOUTUBE);
return url.every(function (item) {
return MATCH_URL_YOUTUBE.test(item);
});
}

@@ -41,59 +32,29 @@ return MATCH_URL_YOUTUBE.test(url);

export function canPlaySoundCloud(url) {
if (url instanceof Array) {
return false;
}
return MATCH_URL_SOUNDCLOUD.test(url) && !AUDIO_EXTENSIONS.test(url);
}
export function canPlayVimeo(url) {
if (url instanceof Array) {
return false;
}
return MATCH_URL_VIMEO.test(url) && !VIDEO_EXTENSIONS.test(url) && !HLS_EXTENSIONS.test(url);
}
export function canPlayFacebook(url) {
if (url instanceof Array) {
return false;
}
return MATCH_URL_FACEBOOK.test(url) || MATCH_URL_FACEBOOK_WATCH.test(url);
}
export function canPlayStreamable(url) {
if (url instanceof Array) {
return false;
}
return MATCH_URL_STREAMABLE.test(url);
}
export function canPlayWistia(url) {
if (url instanceof Array) {
return false;
}
return MATCH_URL_WISTIA.test(url);
}
export function canPlayTwitch(url) {
if (url instanceof Array) {
return false;
}
return MATCH_URL_TWITCH_VIDEO.test(url) || MATCH_URL_TWITCH_CHANNEL.test(url);
}
export function canPlayDailyMotion(url) {
if (url instanceof Array) {
return false;
}
return MATCH_URL_DAILYMOTION.test(url);
}
export function canPlayMixcloud(url) {
if (url instanceof Array) {
return false;
}
return MATCH_URL_MIXCLOUD.test(url);
}
export function canPlayVidyard(url) {
if (url instanceof Array) {
return false;
}
return MATCH_URL_VIDYARD.test(url);
}
export function canPlayKaltura(url) {
if (url instanceof Array) {
return false;
}
return MATCH_URL_KALTURA.test(url);

@@ -107,3 +68,3 @@ }

}
if (typeof item === 'object' && canPlayFile(item.src)) {
if (typeof item !== 'string' && canPlayFile(item.src)) {
return true;

@@ -110,0 +71,0 @@ }

@@ -55,3 +55,2 @@ import type { AnyFunction } from './utility.types';

new (container: HTMLIFrameElement): PlayerJSPlayer;
readonly prototype: PlayerJSPlayer;
}

@@ -58,0 +57,0 @@ export type PlayerJS = {

@@ -50,3 +50,3 @@ import type { AnyFunction } from './utility.types';

bind(event: Exclude<SoundCloudPlayerEVENT, SoundCloudUIERROREvent>, listener: SoundCloudPlayerBindCallbackFn): void;
bind(event: Extract<SoundCloudPlayerEVENT, SoundCloudUIERROREvent>, listener: (e: unknown) => void): void;
bind(event: SoundCloudUIERROREvent, listener: (e: unknown) => void): void;
unbind(event: SoundCloudPlayerEVENT): void;

@@ -53,0 +53,0 @@ load(url: string, options?: Partial<SoundCloudPlayerLoadOptions>): void;

import { SvelteComponentTyped } from "svelte";
import type { FilePlayerUrl, GetPlayerReturn } from './types';
import type { SoundCloudPlayer } from './soundcloud.global.types';
import type { SoundCloudConfig } from './soundcloud.types';
declare const __propDef: {
props: {
url: FilePlayerUrl;
playing?: boolean | undefined;
loop?: boolean | undefined;
controls?: boolean | undefined;
url: string;
volume: number | null;
muted?: boolean | undefined;
width?: string | undefined;
height?: string | undefined;
playsinline?: boolean | undefined;
config: SoundCloudConfig;
display?: string | undefined;
load?: ((url: string, isReady?: boolean) => void) | undefined;

@@ -20,3 +14,3 @@ play?: (() => void) | undefined;

stop?: (() => void) | undefined;
seekTo?: ((seconds: number, _?: boolean) => void) | undefined;
seekTo?: ((seconds: number, keepPlaying?: boolean) => void) | undefined;
setVolume?: ((fraction: number) => void) | undefined;

@@ -28,3 +22,7 @@ mute?: (() => void) | undefined;

getSecondsLoaded?: (() => number) | undefined;
getPlayer?: (() => GetPlayerReturn | null) | undefined;
getPlayer?: (() => SoundCloudPlayer) | undefined;
_setPlayer?: ((newPlayer: SoundCloudPlayer) => void) | undefined;
_setDuration?: ((newDuration: number) => void) | undefined;
_setCurrentTime?: ((newCurrentTime: number) => void) | undefined;
_setFractionLoaded?: ((newFractionLoaded: number) => void) | undefined;
};

@@ -37,3 +35,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -60,9 +58,2 @@ buffer: CustomEvent<Event | undefined>;

export default class SoundCloud extends SvelteComponentTyped<SoundCloudProps, SoundCloudEvents, SoundCloudSlots> {
get playing(): NonNullable<boolean | undefined>;
get loop(): NonNullable<boolean | undefined>;
get controls(): NonNullable<boolean | undefined>;
get muted(): NonNullable<boolean | undefined>;
get width(): string;
get height(): string;
get playsinline(): NonNullable<boolean | undefined>;
get load(): (url: string, isReady?: boolean | undefined) => void;

@@ -72,3 +63,3 @@ get play(): () => void;

get stop(): () => void;
get seekTo(): (seconds: number, _?: boolean | undefined) => void;
get seekTo(): (seconds: number, keepPlaying?: boolean) => void;
get setVolume(): (fraction: number) => void;

@@ -80,4 +71,8 @@ get mute(): () => void;

get getSecondsLoaded(): () => number;
get getPlayer(): () => GetPlayerReturn;
get getPlayer(): () => SoundCloudPlayer;
get _setPlayer(): (newPlayer: SoundCloudPlayer) => void;
get _setDuration(): (newDuration: number) => void;
get _setCurrentTime(): (newCurrentTime: number) => void;
get _setFractionLoaded(): (newFractionLoaded: number) => void;
}
export {};
import { SvelteComponentTyped } from "svelte";
import type { FilePlayerUrl, GetPlayerReturn } from './types';
import type { PlayerJSPlayer } from './playerjs.global.types';
declare const __propDef: {
props: {
url: FilePlayerUrl;
playing?: boolean | undefined;
url: string;
loop: boolean;
controls?: boolean | undefined;
volume?: number | null | undefined;
muted: boolean;
width?: string | undefined;
height?: string | undefined;
playsinline?: boolean | undefined;
config?: Record<string, never> | undefined;
load?: ((_: FilePlayerUrl, __?: boolean) => void) | undefined;
load?: (() => void) | undefined;
play?: (() => void) | undefined;
pause?: (() => void) | undefined;
stop?: (() => void) | undefined;
seekTo?: ((seconds: number, _?: boolean) => void) | undefined;
seekTo?: ((seconds: number, keepPlaying?: boolean) => void) | undefined;
setVolume?: ((fraction: number) => void) | undefined;
setLoop?: ((loop: boolean) => void) | undefined;
mute?: (() => void) | undefined;
unmute?: (() => void) | undefined;
setLoop?: ((loop: boolean) => void) | undefined;
getDuration?: (() => number) | undefined;
getCurrentTime?: (() => number) | undefined;
getSecondsLoaded?: (() => number) | undefined;
getPlayer?: (() => GetPlayerReturn) | undefined;
getDuration?: (() => number | null) | undefined;
getCurrentTime?: (() => number | null) | undefined;
getSecondsLoaded?: (() => number | null) | undefined;
getPlayer?: (() => PlayerJSPlayer) | undefined;
_setPlayer?: ((newPlayer: PlayerJSPlayer) => void) | undefined;
_setDuration?: ((newDuration: number) => void) | undefined;
_setCurrentTime?: ((newCurrentTime: number) => void) | undefined;
_setSecondsLoaded?: ((newSecondsLoaded: number) => void) | undefined;
};

@@ -35,3 +32,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -58,23 +55,20 @@ buffer: CustomEvent<Event | undefined>;

export default class Streamable extends SvelteComponentTyped<StreamableProps, StreamableEvents, StreamableSlots> {
get playing(): NonNullable<boolean | undefined>;
get controls(): NonNullable<boolean | undefined>;
get volume(): number;
get width(): string;
get height(): string;
get playsinline(): NonNullable<boolean | undefined>;
get config(): Record<string, never>;
get load(): (_: FilePlayerUrl, __?: boolean | undefined) => void;
get load(): () => void;
get play(): () => void;
get pause(): () => void;
get stop(): () => void;
get seekTo(): (seconds: number, _?: boolean | undefined) => void;
get seekTo(): (seconds: number, keepPlaying?: boolean) => void;
get setVolume(): (fraction: number) => void;
get setLoop(): (loop: boolean) => void;
get mute(): () => void;
get unmute(): () => void;
get setLoop(): (loop: boolean) => void;
get getDuration(): () => number;
get getCurrentTime(): () => number;
get getSecondsLoaded(): () => number;
get getPlayer(): () => GetPlayerReturn;
get getDuration(): () => number | null;
get getCurrentTime(): () => number | null;
get getSecondsLoaded(): () => number | null;
get getPlayer(): () => PlayerJSPlayer;
get _setPlayer(): (newPlayer: PlayerJSPlayer) => void;
get _setDuration(): (newDuration: number) => void;
get _setCurrentTime(): (newCurrentTime: number) => void;
get _setSecondsLoaded(): (newSecondsLoaded: number) => void;
}
export {};

@@ -81,7 +81,6 @@ export type TwitchPlayerChannelOption = {

addEventListener(event: Exclude<TwitchPlayerEVENT, TwitchPlayerSEEKEvent>, callback: TwitchPlayerEVENTCallback): void;
addEventListener(event: Extract<TwitchPlayerEVENT, TwitchPlayerSEEKEvent>, callback: TwitchPlayerSEEKEVENTCallback): void;
addEventListener(event: TwitchPlayerSEEKEvent, callback: TwitchPlayerSEEKEVENTCallback): void;
}
export interface TwitchPlayerConstructor {
new (container: string, options: Partial<TwitchPlayerOptions>): TwitchPlayer;
readonly prototype: TwitchPlayer;
CAPTIONS: TwitchPlayerCAPTIONSEvent;

@@ -88,0 +87,0 @@ ENDED: TwitchPlayerENDEDEvent;

import { SvelteComponentTyped } from "svelte";
import type { TwitchPlayer } from './twitch.global.types';
import type { FilePlayerUrl } from './types';
import type { TwitchConfig } from './twitch.types';
declare const __propDef: {
props: {
url?: FilePlayerUrl | undefined;
playing: boolean;
loop?: boolean | undefined;
controls: boolean;
volume?: number | null | undefined;
muted: boolean;
width?: string | undefined;
height?: string | undefined;
playsinline: boolean;

@@ -21,11 +15,11 @@ config: TwitchConfig;

stop?: (() => void) | undefined;
seekTo?: ((seconds: number, _?: boolean) => void) | undefined;
seekTo?: ((seconds: number, keepPlaying?: boolean) => void) | undefined;
setVolume?: ((fraction: number) => void) | undefined;
mute?: (() => void) | undefined;
unmute?: (() => void) | undefined;
setLoop?: ((_: boolean) => void) | undefined;
getDuration?: (() => number) | undefined;
getCurrentTime?: (() => number) | undefined;
getSecondsLoaded?: (() => number) | undefined;
getPlayer?: (() => TwitchPlayer | null) | undefined;
getSecondsLoaded?: (() => null) | undefined;
getPlayer?: (() => TwitchPlayer) | undefined;
_setPlayer?: ((newPlayer: TwitchPlayer) => void) | undefined;
};

@@ -38,3 +32,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -61,7 +55,2 @@ buffer: CustomEvent<Event | undefined>;

export default class Twitch extends SvelteComponentTyped<TwitchProps, TwitchEvents, TwitchSlots> {
get url(): NonNullable<FilePlayerUrl | undefined>;
get loop(): NonNullable<boolean | undefined>;
get volume(): number;
get width(): string;
get height(): string;
get load(): (url: string, isReady?: boolean | undefined) => void;

@@ -71,12 +60,12 @@ get play(): () => void;

get stop(): () => void;
get seekTo(): (seconds: number, _?: boolean | undefined) => void;
get seekTo(): (seconds: number, keepPlaying?: boolean) => void;
get setVolume(): (fraction: number) => void;
get mute(): () => void;
get unmute(): () => void;
get setLoop(): (_: boolean) => void;
get getDuration(): () => number;
get getCurrentTime(): () => number;
get getSecondsLoaded(): () => number;
get getPlayer(): () => TwitchPlayer | null;
get getSecondsLoaded(): () => null;
get getPlayer(): () => TwitchPlayer;
get _setPlayer(): (newPlayer: TwitchPlayer) => void;
}
export {};
import type { SvelteComponent } from 'svelte';
import type loadScript from 'load-script';
import type { GlobalSDK, GlobalSDKReady, GlobalSDKType } from './global.types';
import type { RecursivePartial, Constructor } from './utility.types';
import type { NotImplementedPlayer } from './notimplemented.global.types';

@@ -15,47 +14,34 @@ import type { YTPlayerOnPlaybackQualityChangeEvent, YTPlayer } from './youtube.global.types';

import type { VidyardPlayer } from './vidyard.global.types';
export type PlayerInstance = YTPlayer | TwitchPlayer | HTMLAudioElement | HTMLVideoElement | NotImplementedPlayer | SoundCloudPlayer | DailyMotionPlayer | MixcloudWidget | FacebookPlayer | VimeoPlayer | PlayerJSPlayer | WistiaPlayer | VidyardPlayer;
export type SDKBase<T extends keyof GlobalSDK> = {
url: string;
sdkGlobal: T;
sdkReady?: GlobalSDKReady | null;
import type { YouTubeConfig, YouTubeUrl } from './youtube.types';
import type { SoundCloudConfig } from './soundcloud.types';
import type { ViemoConfig } from './vimeo.types';
import type { FacebookConfig } from './facebook.types';
import type { WistiaConfig } from './wistia.types';
import type { TwitchConfig } from './twitch.types';
import type { DailyMotionConfig } from './dailymotion.types';
import type { MixcloudConfig } from './mixcloud.types';
import type { VidyardConfig } from './vidyard.types';
import type { FileConfig, FileUrl, FilePlayer, FileErrorData, FileErrorSDKInstance, FileErrorSDKGlobal, FileInternalPlayer } from './file.types';
import type { NotImplementedConfig } from './notimplemented.types';
export type PlayerInstance = YTPlayer | TwitchPlayer | FilePlayer | NotImplementedPlayer | SoundCloudPlayer | DailyMotionPlayer | MixcloudWidget | FacebookPlayer | VimeoPlayer | PlayerJSPlayer | WistiaPlayer | VidyardPlayer;
export type PlayerInternalPlayer = Omit<FileInternalPlayer, 'player'> & {
player: FileInternalPlayer['player'] | PlayerInstance;
};
export type PlayerType = 'YouTube';
export type PlayerUrl = string | string[];
export type Player = {
canPlay: (url: PlayerUrl) => boolean;
loadComponent: () => Promise<{
default: typeof SvelteComponent<any>;
}>;
loopOnEnded?: boolean;
forceLoad?: boolean;
export type PlayerGetPlayerKey = keyof PlayerInternalPlayer;
export type PlayerConfig = {
youtube: YouTubeConfig;
soundcloud: SoundCloudConfig;
vimeo: ViemoConfig;
facebook: FacebookConfig;
streamable: undefined;
wistia: WistiaConfig;
twitch: TwitchConfig;
dailymotion: DailyMotionConfig;
mixcloud: MixcloudConfig;
vidyard: VidyardConfig;
kaltura: undefined;
file: FileConfig;
'not-implemented': NotImplementedConfig;
};
export type GetSDKParams<T extends keyof GlobalSDK = GlobalSDKType> = SDKBase<T> & {
isLoaded?: (sdk: GlobalSDK[T]) => boolean;
fetchScript?: typeof loadScript;
};
export type PlayerProps = {
playing?: boolean;
controls?: boolean;
playsinline?: boolean;
loop?: boolean;
};
export type GetPlayerReturn = PlayerInstance | null;
export type PlayerMedia = {
load(url: FilePlayerUrl, isReady?: boolean): void;
stop(): void;
play(): void;
pause(): void;
setVolume(fraction: number): void;
mute(): void;
unmute(): void;
getDuration(): number;
getCurrentTime(): number;
getSecondsLoaded(): number;
seekTo(amount: number, keepPlaying?: boolean): void;
setPlaybackRate?(rate: number): void;
setLoop?(loop: boolean): void;
enablePIP?(): void;
disablePIP?(): void;
getPlayer?(): GetPlayerReturn;
};
export type PlayerUrl = string | YouTubeUrl | FileUrl;
export type OnProgressProps = {

@@ -67,9 +53,12 @@ played: number;

};
export type ErrorData = FileErrorData;
export type ErrorSDKInstance = FileErrorSDKInstance;
export type ErrorSDKGlobal = FileErrorSDKGlobal;
export type OnErrorProps = {
error: unknown;
data?: unknown;
sdkInstance?: unknown;
sdkGlobal?: unknown;
data?: ErrorData | unknown;
sdkInstance?: ErrorSDKInstance;
sdkGlobal?: ErrorSDKGlobal;
};
export type Dispatcher = {
export type PlayerDispatcher = {
ready: undefined | Event;

@@ -80,3 +69,3 @@ mount: undefined;

progress: OnProgressProps;
duration: number;
duration: number | null;
pause: undefined | Event;

@@ -95,8 +84,54 @@ buffer: undefined | Event;

};
export type PlayerMediaRef = PlayerMedia & PlayerProps;
export type InternalPlayerKey = 'player' | 'hls' | 'dash';
export type FileMediaUrl = {
src: string;
type: string;
export type PlayerConfigKey = keyof PlayerConfig;
export type PlayerConfigObject = PlayerConfig[PlayerConfigKey];
export type PlayerProps = {
url: PlayerUrl;
playing: boolean;
loop: boolean;
controls: boolean;
light: boolean | string;
volume: number | null;
muted: boolean;
playbackRate: number;
width: string;
height: string;
progressInterval: number;
playsinline: boolean;
pip: boolean;
stopOnUnmount: boolean;
previewTabIndex: number;
config: RecursivePartial<PlayerConfigObject>;
oEmbedUrl: string;
display: string;
};
export type FilePlayerUrl = PlayerUrl | FileMediaUrl[];
export type PlayerRef = {
load(url: PlayerUrl, isReady?: boolean): void;
stop(): void;
play(): void;
pause(): void;
setVolume(fraction: number): void;
mute(): void;
unmute(): void;
getDuration(): number | null;
getCurrentTime(): number | null;
getSecondsLoaded(): number | null;
seekTo(amount: number, keepPlaying?: boolean): void;
setPlaybackRate?(rate: number): void;
setLoop?(loop: boolean): void;
enablePIP?(): void;
disablePIP?(): void;
getPlayer(key?: 'player'): PlayerInternalPlayer['player'] | null;
getPlayer<TKey extends PlayerGetPlayerKey>(key?: TKey): PlayerInternalPlayer[TKey] | null;
};
export type PlayerComponent = Constructor<SvelteComponent<Partial<PlayerProps>> & PlayerRef>;
export type Player = {
key: PlayerConfigKey;
name: string;
loopOnEnded?: boolean;
forceLoad?: boolean;
canPlay(url: PlayerUrl): boolean;
canEnablePIP?(url: PlayerUrl): boolean;
loadComponent(): Promise<{
default: PlayerComponent;
}>;
};
export type AnyFunction = (...args: any[]) => any;
export type RecursivePartial<T> = {
[P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object | undefined ? RecursivePartial<T[P]> : T[P];
};
export type Constructor<T> = new (...args: any[]) => T;
export type Prettify<T> = {
[K in keyof T]: T[K];
} & {};
export type PickMatching<T, V> = {
[K in keyof T as T[K] extends V ? K : never]: T[K];
};
export type ObjectMethods<T> = PickMatching<T, Function>;
export type MethodParameters<T> = T extends (...args: infer P) => any ? P : never;
export type MethodReturnType<T> = T extends (...args: any) => infer R ? R : any;

@@ -1,4 +0,5 @@

import type { GlobalSDKYT, GlobalSDK, GlobalSDKType, GlobalSDKFLV, GlobalSDKDASH, GlobalSDKHLS, GlobalSDKTwitch, GlobalSDKSoundCloud, GlobalSDKMixcloud, GlobalSDKDailyMotion, GlobalSDKFacebook, GlobalSDKVimeo, GlobalSDKPlayerJS, GlobalSDKWistia, GlobalSDKVidyard } from './global.types';
import type { GlobalSDKYT, GlobalSDK, GlobalSDKReady, GlobalSDKType, GlobalSDKFLV, GlobalSDKDASH, GlobalSDKHLS, GlobalSDKTwitch, GlobalSDKSoundCloud, GlobalSDKMixcloud, GlobalSDKDailyMotion, GlobalSDKFacebook, GlobalSDKVimeo, GlobalSDKPlayerJS, GlobalSDKWistia, GlobalSDKVidyard } from './global.types';
import type { WistiaWQ } from './wistia.global.types';
import type { GetSDKParams, FilePlayerUrl } from './types';
import type { PlayerUrl } from './types';
import loadScript from 'load-script';
declare global {

@@ -26,9 +27,17 @@ interface Window {

}
export declare function parseStartTime(url: FilePlayerUrl): number | undefined;
export declare function parseEndTime(url: FilePlayerUrl): number | undefined;
export declare function parseStartTime(url: PlayerUrl): number | undefined;
export declare function parseEndTime(url: PlayerUrl): number | undefined;
export declare function randomString(): string;
export declare function queryString(object: Record<string, unknown>): string;
export declare function getSDK<T extends GlobalSDKType>({ fetchScript, isLoaded, sdkGlobal, url, sdkReady }: GetSDKParams<T>): Promise<GlobalSDK[T]>;
export declare function isMediaStream(url: FilePlayerUrl): boolean;
export declare function getSDK<T extends GlobalSDKType>(url: string, sdkGlobal: T, sdkReady?: GlobalSDKReady | null, isLoaded?: (sdk: GlobalSDK[T]) => boolean, fetchScript?: typeof loadScript): Promise<GlobalSDK[T]>;
export declare function isMediaStream(url: PlayerUrl): url is MediaStream;
export declare function isBlobUrl(url: string): boolean;
export declare function supportsWebKitPresentationMode(video?: HTMLMediaElement): unknown;
type VideoPresentationMode = 'inline' | 'picture-in-picture' | 'fullscreen';
type WebkitHTMLVideoElement = HTMLMediaElement & {
webkitSupportsPresentationMode: boolean;
webkitSetPresentationMode: (mode: VideoPresentationMode) => void;
webkitPresentationMode: VideoPresentationMode;
};
export declare function supportsWebKitPresentationMode(video?: HTMLMediaElement): video is WebkitHTMLVideoElement;
export declare function noop(): void;
export {};

@@ -11,3 +11,3 @@ // The codes in this file, is just copy-paste from https://github.com/cookpete/react-player

function parseTimeParam(url, pattern) {
if (url instanceof Array) {
if (typeof url !== 'string') {
return undefined;

@@ -54,3 +54,5 @@ }

return Object.keys(object)
.map((key) => `${key}=${object[key]}`)
.map(function (key) {
return `${key}=${object[key]}`;
})
.join('&');

@@ -65,3 +67,3 @@ }

const requests = {};
export function getSDK({ fetchScript = loadScript, isLoaded = () => true, sdkGlobal, url, sdkReady = null }) {
export function getSDK(url, sdkGlobal, sdkReady = null, isLoaded = () => true, fetchScript = loadScript) {
const existingGlobal = getGlobal(sdkGlobal);

@@ -104,2 +106,26 @@ if (existingGlobal && isLoaded(existingGlobal)) {

}
// export function callPlayer<TPlayer extends PlayerInstance>(player?: TPlayer) {
// return function <
// TObject extends ObjectMethods<Required<TPlayer>>,
// TMethodKey extends keyof ObjectMethods<Required<TPlayer>>,
// TMethod extends TObject[TMethodKey],
// TParams extends MethodParameters<TMethod>,
// TReturn extends MethodReturnType<TMethod>
// >(method: TMethodKey, ...args: TParams) {
// // Util method for calling a method on this.player
// // but guard against errors and console.warn instead
// if (!player || !player[method]) {
// let message = `SveltePlayer: player could not call %c${String(method)}%c – `;
// if (!player) {
// message += 'The player was not available';
// } else if (!player[method]) {
// message += 'The method was not available';
// }
// console.warn(message, 'font-weight: bold', '');
// return null;
// }
// type CurryFn = (...args: TParams) => TReturn;
// return (player[method] as CurryFn)(...args);
// };
// }
export function isMediaStream(url) {

@@ -118,2 +144,3 @@ return (typeof window !== 'undefined' &&

return ('webkitSupportsPresentationMode' in video &&
typeof video.webkitSupportsPresentationMode === 'boolean' &&
video.webkitSupportsPresentationMode &&

@@ -124,1 +151,4 @@ 'webkitSetPresentationMode' in video &&

}
export function noop() {
// this comment to suppress warning from eslint
}
import { SvelteComponentTyped } from "svelte";
import type { FilePlayerUrl, GetPlayerReturn } from './types';
import type { VidyardPlayer } from './vidyard.global.types';
import type { VidyardConfig } from './vidyard.types';
declare const __propDef: {
props: {
url?: FilePlayerUrl | undefined;
playing: boolean;
loop?: boolean | undefined;
controls?: boolean | undefined;
volume: number | null;
muted?: boolean | undefined;
width?: string | undefined;
height?: string | undefined;
playsinline?: boolean | undefined;
config: VidyardConfig;
load?: ((url: string, _?: boolean) => void) | undefined;
display?: string | undefined;
load?: ((url: string) => void) | undefined;
play?: (() => void) | undefined;
pause?: (() => void) | undefined;
stop?: (() => void) | undefined;
seekTo?: ((seconds: number, _?: boolean) => void) | undefined;
seekTo?: ((seconds: number, keepPlaying?: boolean) => void) | undefined;
setVolume?: ((fraction: number) => void) | undefined;

@@ -25,6 +19,7 @@ mute?: (() => void) | undefined;

setPlaybackRate?: ((rate: number) => void) | undefined;
getDuration?: (() => number) | undefined;
getDuration?: (() => number | null) | undefined;
getCurrentTime?: (() => number) | undefined;
getSecondsLoaded?: (() => number) | undefined;
getPlayer?: (() => GetPlayerReturn) | undefined;
getSecondsLoaded?: (() => null) | undefined;
getPlayer?: (() => VidyardPlayer) | undefined;
_setPlayer?: ((newPlayer: VidyardPlayer) => void) | undefined;
};

@@ -37,3 +32,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -60,14 +55,7 @@ buffer: CustomEvent<Event | undefined>;

export default class Vidyard extends SvelteComponentTyped<VidyardProps, VidyardEvents, VidyardSlots> {
get url(): NonNullable<FilePlayerUrl | undefined>;
get loop(): NonNullable<boolean | undefined>;
get controls(): NonNullable<boolean | undefined>;
get muted(): NonNullable<boolean | undefined>;
get width(): string;
get height(): string;
get playsinline(): NonNullable<boolean | undefined>;
get load(): (url: string, _?: boolean | undefined) => void;
get load(): (url: string) => void;
get play(): () => void;
get pause(): () => void;
get stop(): () => void;
get seekTo(): (seconds: number, _?: boolean | undefined) => void;
get seekTo(): (seconds: number, keepPlaying?: boolean) => void;
get setVolume(): (fraction: number) => void;

@@ -77,7 +65,8 @@ get mute(): () => void;

get setPlaybackRate(): (rate: number) => void;
get getDuration(): () => number;
get getDuration(): () => number | null;
get getCurrentTime(): () => number;
get getSecondsLoaded(): () => number;
get getPlayer(): () => GetPlayerReturn;
get getSecondsLoaded(): () => null;
get getPlayer(): () => VidyardPlayer;
get _setPlayer(): (newPlayer: VidyardPlayer) => void;
}
export {};

@@ -202,3 +202,2 @@ import type { AnyFunction } from './utility.types';

new (container: HTMLElement | string, options?: Partial<VimeoEmbedOptions>): VimeoPlayer;
readonly prototype: VimeoPlayer;
}

@@ -205,0 +204,0 @@ export type Vimeo = {

import { SvelteComponentTyped } from "svelte";
import type { FilePlayerUrl, GetPlayerReturn } from './types';
import type { VimeoPlayer } from './vimeo.global.types';
import type { ViemoConfig } from './vimeo.types';
declare const __propDef: {
props: {
url?: FilePlayerUrl | undefined;
playing: boolean;
loop: boolean;
controls: boolean;
volume?: number | null | undefined;
muted: boolean;
width?: string | undefined;
height?: string | undefined;
playsinline: boolean;
config: ViemoConfig;
load?: ((url: string, _?: boolean) => void) | undefined;
display?: string | undefined;
load?: ((url: string) => void) | undefined;
play?: (() => void) | undefined;
pause?: (() => void) | undefined;
stop?: (() => void) | undefined;
seekTo?: ((seconds: number, _?: boolean) => void) | undefined;
seekTo?: ((seconds: number, keepPlaying?: boolean) => void) | undefined;
setVolume?: ((fraction: number) => void) | undefined;
setLoop?: ((loop: boolean) => void) | undefined;
setPlaybackRate?: ((rate: number) => void) | undefined;
mute?: (() => void) | undefined;
unmute?: (() => void) | undefined;
setPlaybackRate?: ((rate: number) => void) | undefined;
setLoop?: ((loop: boolean) => void) | undefined;
getDuration?: (() => number) | undefined;
getCurrentTime?: (() => number) | undefined;
getSecondsLoaded?: (() => number) | undefined;
getPlayer?: (() => GetPlayerReturn) | undefined;
getDuration?: (() => number | null) | undefined;
getCurrentTime?: (() => number | null) | undefined;
getSecondsLoaded?: (() => number | null) | undefined;
getPlayer?: (() => VimeoPlayer) | undefined;
_setPlayer?: ((newPlayer: VimeoPlayer) => void) | undefined;
};

@@ -37,3 +35,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -60,21 +58,18 @@ buffer: CustomEvent<Event | undefined>;

export default class Vimeo extends SvelteComponentTyped<VimeoProps, VimeoEvents, VimeoSlots> {
get url(): NonNullable<FilePlayerUrl | undefined>;
get volume(): number;
get width(): string;
get height(): string;
get load(): (url: string, _?: boolean | undefined) => void;
get load(): (url: string) => void;
get play(): () => void;
get pause(): () => void;
get stop(): () => void;
get seekTo(): (seconds: number, _?: boolean | undefined) => void;
get seekTo(): (seconds: number, keepPlaying?: boolean) => void;
get setVolume(): (fraction: number) => void;
get setLoop(): (loop: boolean) => void;
get setPlaybackRate(): (rate: number) => void;
get mute(): () => void;
get unmute(): () => void;
get setPlaybackRate(): (rate: number) => void;
get setLoop(): (loop: boolean) => void;
get getDuration(): () => number;
get getCurrentTime(): () => number;
get getSecondsLoaded(): () => number;
get getPlayer(): () => GetPlayerReturn;
get getDuration(): () => number | null;
get getCurrentTime(): () => number | null;
get getSecondsLoaded(): () => number | null;
get getPlayer(): () => VimeoPlayer;
get _setPlayer(): (newPlayer: VimeoPlayer) => void;
}
export {};
import { SvelteComponentTyped } from "svelte";
import type { FilePlayerUrl, GetPlayerReturn } from './types';
import type { WistiaPlayer } from './wistia.global.types';
import type { WistiaConfig } from './wistia.types';
declare const __propDef: {
props: {
url: FilePlayerUrl;
url: string;
playing: boolean;
loop?: boolean | undefined;
controls: boolean;
volume?: number | null | undefined;
muted: boolean;
width?: string | undefined;
height?: string | undefined;
playsinline?: boolean | undefined;
config: WistiaConfig;
load?: ((_: FilePlayerUrl, __?: boolean) => void) | undefined;
load?: (() => void) | undefined;
play?: (() => void) | undefined;
pause?: (() => void) | undefined;
stop?: (() => void) | undefined;
seekTo?: ((seconds: number, _?: boolean) => void) | undefined;
seekTo?: ((seconds: number, keepPlaying?: boolean) => void) | undefined;
setVolume?: ((fraction: number) => void) | undefined;

@@ -27,4 +22,5 @@ mute?: (() => void) | undefined;

getCurrentTime?: (() => number) | undefined;
getSecondsLoaded?: (() => number) | undefined;
getPlayer?: (() => GetPlayerReturn) | undefined;
getSecondsLoaded?: (() => null) | undefined;
getPlayer?: (() => WistiaPlayer) | undefined;
_setPlayer?: ((newPlayer: WistiaPlayer) => void) | undefined;
};

@@ -37,3 +33,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -60,12 +56,7 @@ buffer: CustomEvent<Event | undefined>;

export default class Wistia extends SvelteComponentTyped<WistiaProps, WistiaEvents, WistiaSlots> {
get loop(): NonNullable<boolean | undefined>;
get volume(): number;
get width(): string;
get height(): string;
get playsinline(): NonNullable<boolean | undefined>;
get load(): (_: FilePlayerUrl, __?: boolean | undefined) => void;
get load(): () => void;
get play(): () => void;
get pause(): () => void;
get stop(): () => void;
get seekTo(): (seconds: number, _?: boolean | undefined) => void;
get seekTo(): (seconds: number, keepPlaying?: boolean) => void;
get setVolume(): (fraction: number) => void;

@@ -77,5 +68,6 @@ get mute(): () => void;

get getCurrentTime(): () => number;
get getSecondsLoaded(): () => number;
get getPlayer(): () => GetPlayerReturn;
get getSecondsLoaded(): () => null;
get getPlayer(): () => WistiaPlayer;
get _setPlayer(): (newPlayer: WistiaPlayer) => void;
}
export {};

@@ -164,3 +164,2 @@ import type { AnyFunction } from './utility.types';

new (container: string | HTMLElement, options?: Partial<YTPlayerOptions>): YTPlayer;
readonly prototype: YTPlayer;
}

@@ -167,0 +166,0 @@ export type YT = {

import { SvelteComponentTyped } from "svelte";
import type { FilePlayerUrl, PlayerUrl, GetPlayerReturn } from './types';
import type { YouTubeConfig } from './youtube.types';
import type { YTPlayer, YTPlayerOnStateChangeEvent } from './youtube.global.types';
import type { YouTubeConfig, YouTubeUrl } from './youtube.types';
declare const __propDef: {
props: {
url?: FilePlayerUrl | undefined;
playing: boolean;
loop: boolean;
controls: boolean;
volume?: number | null | undefined;
muted?: boolean | undefined;
width?: string | undefined;
height?: string | undefined;
playsinline: boolean;
config: YouTubeConfig;
load?: ((url: PlayerUrl, isReady?: boolean) => void) | undefined;
display?: string | undefined;
load?: ((url: YouTubeUrl, isReady?: boolean) => void) | undefined;
onStateChange?: ((event: YTPlayerOnStateChangeEvent) => void) | undefined;
play?: (() => void) | undefined;

@@ -29,3 +26,4 @@ pause?: (() => void) | undefined;

getSecondsLoaded?: (() => number) | undefined;
getPlayer?: (() => GetPlayerReturn | null) | undefined;
getPlayer?: (() => YTPlayer) | undefined;
_setPlayer?: ((newPlayer: YTPlayer) => void) | undefined;
};

@@ -38,3 +36,3 @@ events: {

progress: CustomEvent<import("./types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
pause: CustomEvent<Event | undefined>;

@@ -61,12 +59,8 @@ buffer: CustomEvent<Event | undefined>;

export default class YouTube extends SvelteComponentTyped<YouTubeProps, YouTubeEvents, YouTubeSlots> {
get url(): NonNullable<FilePlayerUrl | undefined>;
get volume(): number;
get muted(): NonNullable<boolean | undefined>;
get width(): string;
get height(): string;
get load(): (url: PlayerUrl, isReady?: boolean | undefined) => void;
get load(): (url: YouTubeUrl, isReady?: boolean | undefined) => void;
get onStateChange(): (event: YTPlayerOnStateChangeEvent) => void;
get play(): () => void;
get pause(): () => void;
get stop(): () => void;
get seekTo(): (amount: number, keepPlaying?: boolean | undefined) => void;
get seekTo(): (amount: number, keepPlaying?: boolean) => void;
get setVolume(): (fraction: number) => void;

@@ -80,4 +74,5 @@ get mute(): () => void;

get getSecondsLoaded(): () => number;
get getPlayer(): () => GetPlayerReturn;
get getPlayer(): () => YTPlayer;
get _setPlayer(): (newPlayer: YTPlayer) => void;
}
export {};

@@ -1,4 +0,4 @@

import type { PlayerUrl } from './types';
import type { YTListUserUploadsType, YTListPlaylistType, YTPlayerPlayerVars, YTPlayerOptions } from './youtube.global.types';
export type ParsePlaylistFn = (url: PlayerUrl) => {
export type YouTubeUrl = string | string[];
export type ParsePlaylistFn = (url: YouTubeUrl) => {
listType: YTListPlaylistType;

@@ -5,0 +5,0 @@ list: string;

@@ -8,6 +8,7 @@ import { SvelteComponentTyped } from "svelte";

oEmbedUrl: string;
isCustomPlayIcon: boolean;
isElementLight: boolean;
playIcon: boolean;
};
events: {
click: CustomEvent<any>;
click: MouseEvent;
} & {

@@ -14,0 +15,0 @@ [evt: string]: CustomEvent<any>;

@@ -1,2 +0,2 @@

import type { Config } from './types';
export declare const defaultConfig: Config;
import type { PlayerConfig } from './players/types';
export declare const defaultConfig: PlayerConfig;

@@ -1,3 +0,2 @@

// eslint-disable-next-line @typescript-eslint/no-empty-function
const noop = () => { };
import { noop } from './players/utils';
export const defaultConfig = {

@@ -4,0 +3,0 @@ soundcloud: {

import { SvelteComponentTyped } from "svelte";
import type { RecursivePartial, PlayerRef, SeekToType, Config } from './types';
import type { InternalPlayerKey, PlayerUrl, FilePlayerUrl } from './players/types';
import type { Player as PlayerType } from './players/types';
export declare function addCustomPlayer(player: PlayerType): void;
export declare function removeCustomPlayers(): void;
export declare function canPlay(url: PlayerUrl): boolean;
export declare function canEnablePIP(url: PlayerUrl): boolean;
import type { PlayerMediaRef, SeekToType } from './types';
import type { RecursivePartial } from './players/utility.types';
import type { PlayerUrl, PlayerConfig, PlayerInternalPlayer } from './players/types';
declare const __propDef: {
props: {
url: FilePlayerUrl;
someValue?: 123 | undefined;
url: PlayerUrl;
playing?: boolean | undefined;
loop?: boolean | undefined;
controls?: boolean | undefined;
light?: string | boolean | undefined;
light?: boolean | undefined;
volume?: number | null | undefined;

@@ -21,6 +28,6 @@ muted?: boolean | undefined;

previewTabIndex?: number | undefined;
config?: RecursivePartial<Config> | undefined;
config?: RecursivePartial<PlayerConfig> | undefined;
oEmbedUrl?: string | undefined;
progressFrequency?: number | undefined;
canEnablePIP?: ((url: PlayerUrl) => boolean) | undefined;
display?: string | undefined;
showPreview?: (() => void) | undefined;

@@ -30,4 +37,7 @@ getDuration?: (() => number | null) | undefined;

getSecondsLoaded?: (() => number | null) | undefined;
getInternalPlayer?: ((key?: InternalPlayerKey) => import("./players/youtube.global.types").YTPlayer | import("./players/twitch.global.types").TwitchPlayer | import("./players/soundcloud.global.types").SoundCloudPlayer | import("./players/mixcloud.global.types").MixcloudWidget | import("./players/dailymotion.global.types").DailyMotionPlayer | import("./players/facebook.global.types").FacebookPlayer | import("./players/vimeo.global.types").VimeoPlayer | import("./players/playerjs.global.types").PlayerJSPlayer | import("./players/wistia.global.types").WistiaPlayer | import("./players/vidyard.global.types").VidyardPlayer | import("./players/notimplemented.global.types").NotImplementedPlayer | HTMLAudioElement | null) | undefined;
getInternalPlayer?: (<TKey extends "player" | "hls" | "dash" | "flv">(key?: "player" | TKey) => import("./players/youtube.global.types").YTPlayer | import("./players/twitch.global.types").TwitchPlayer | import("./players/soundcloud.global.types").SoundCloudPlayer | import("./players/mixcloud.global.types").MixcloudWidget | import("./players/dailymotion.global.types").DailyMotionPlayer | import("./players/facebook.global.types").FacebookPlayer | import("./players/vimeo.global.types").VimeoPlayer | import("./players/playerjs.global.types").PlayerJSPlayer | import("./players/wistia.global.types").WistiaPlayer | import("./players/vidyard.global.types").VidyardPlayer | HTMLVideoElement | HTMLAudioElement | PlayerInternalPlayer[TKey] | null) | undefined;
seekTo?: ((fraction: number, type?: SeekToType, keepPlaying?: boolean) => null | undefined) | undefined;
handleReady?: (() => void) | undefined;
_getPlayer?: (() => PlayerMediaRef) | undefined;
_setPlayer?: ((newPlayer: PlayerMediaRef) => void) | undefined;
};

@@ -44,12 +54,11 @@ events: {

progress: CustomEvent<import("./players/types").OnProgressProps>;
duration: CustomEvent<number>;
duration: CustomEvent<number | null>;
playbackQualityChange: any;
loaded: CustomEvent<undefined>;
ready: CustomEvent<Event | undefined>;
mount: CustomEvent<undefined>;
bufferEnd: CustomEvent<Event | undefined>;
clickPreview: CustomEvent<unknown>;
clickPreview: CustomEvent<Event>;
enablePIP: CustomEvent<Event>;
disablePIP: CustomEvent<Event>;
ready: CustomEvent<PlayerRef>;
onClickPreview: CustomEvent<null>;
loaded: CustomEvent<undefined>;
} & {

@@ -59,2 +68,5 @@ [evt: string]: CustomEvent<any>;

slots: {
light: {
slot: string;
};
'play-icon': {

@@ -69,3 +81,3 @@ slot: string;

export default class SveltePlayer extends SvelteComponentTyped<SveltePlayerProps, SveltePlayerEvents, SveltePlayerSlots> {
get canEnablePIP(): (url: PlayerUrl) => boolean;
get someValue(): 123;
get showPreview(): () => void;

@@ -75,5 +87,8 @@ get getDuration(): () => number | null;

get getSecondsLoaded(): () => number | null;
get getInternalPlayer(): (key?: InternalPlayerKey) => import("./players/youtube.global.types").YTPlayer | import("./players/twitch.global.types").TwitchPlayer | import("./players/soundcloud.global.types").SoundCloudPlayer | import("./players/mixcloud.global.types").MixcloudWidget | import("./players/dailymotion.global.types").DailyMotionPlayer | import("./players/facebook.global.types").FacebookPlayer | import("./players/vimeo.global.types").VimeoPlayer | import("./players/playerjs.global.types").PlayerJSPlayer | import("./players/wistia.global.types").WistiaPlayer | import("./players/vidyard.global.types").VidyardPlayer | import("./players/notimplemented.global.types").NotImplementedPlayer | HTMLAudioElement | null;
get getInternalPlayer(): <TKey extends "player" | "hls" | "dash" | "flv">(key?: "player" | TKey) => import("./players/youtube.global.types").YTPlayer | import("./players/twitch.global.types").TwitchPlayer | import("./players/soundcloud.global.types").SoundCloudPlayer | import("./players/mixcloud.global.types").MixcloudWidget | import("./players/dailymotion.global.types").DailyMotionPlayer | import("./players/facebook.global.types").FacebookPlayer | import("./players/vimeo.global.types").VimeoPlayer | import("./players/playerjs.global.types").PlayerJSPlayer | import("./players/wistia.global.types").WistiaPlayer | import("./players/vidyard.global.types").VidyardPlayer | HTMLVideoElement | HTMLAudioElement | PlayerInternalPlayer[TKey] | null;
get seekTo(): (fraction: number, type?: SeekToType | undefined, keepPlaying?: boolean | undefined) => null | undefined;
get handleReady(): () => void;
get _getPlayer(): () => PlayerMediaRef;
get _setPlayer(): (newPlayer: PlayerMediaRef) => void;
}
export {};

@@ -1,51 +0,19 @@

import type { InternalPlayerKey, Dispatcher, PlayerUrl, PlayerInstance } from './players/types';
import type { YouTubeConfig } from './players/youtube.types';
import type { SoundCloudConfig } from './players/soundcloud.types';
import type { ViemoConfig } from './players/vimeo.types';
import type { FacebookConfig } from './players/facebook.types';
import type { WistiaConfig } from './players/wistia.types';
import type { TwitchConfig } from './players/twitch.types';
import type { DailyMotionConfig } from './players/dailymotion.types';
import type { MixcloudConfig } from './players/mixcloud.types';
import type { VidyardConfig } from './players/vidyard.types';
import type { FileConfig } from './players/file.types';
import type { NotImplementedConfig } from './players/notimplemented.types';
export type RecursivePartial<T> = {
[P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial<U>[] : T[P] extends object | undefined ? RecursivePartial<T[P]> : T[P];
};
import type { PlayerDispatcher, PlayerInternalPlayer, PlayerGetPlayerKey } from './players/types';
export type SeekToType = 'seconds' | 'fraction';
export type PlayerDispatcher = Dispatcher & {
ready: undefined;
};
export type PlayerRef = {
export type PlayerMediaRef = {
getDuration(): number | null;
getCurrentTime(): number | null;
getSecondsLoaded(): number | null;
getInternalPlayer(key?: InternalPlayerKey): PlayerInstance | null;
getInternalPlayer(key?: 'player'): PlayerInternalPlayer['player'] | null;
getInternalPlayer<TKey extends PlayerGetPlayerKey>(key: TKey): PlayerInternalPlayer[TKey] | null;
seekTo(amount: number, type?: SeekToType, keepPlaying?: boolean): void;
};
export type SveltePlayerDispatcher = Omit<Dispatcher, 'ready'> & {
ready: PlayerRef;
onClickPreview: null;
export type PreviewDispatcher = {
click?: Event;
};
export type SveltePlayerRef = PlayerRef & {
canEnablePIP(url: PlayerUrl): boolean;
export type SveltePlayerRef = PlayerMediaRef & {
showPreview(): void;
};
export type Config = {
youtube: YouTubeConfig;
soundcloud: SoundCloudConfig;
vimeo: ViemoConfig;
facebook: FacebookConfig;
streamable: undefined;
wistia: WistiaConfig;
twitch: TwitchConfig;
dailymotion: DailyMotionConfig;
mixcloud: MixcloudConfig;
vidyard: VidyardConfig;
kaltura: undefined;
file: FileConfig;
'not-implemented': NotImplementedConfig;
export type SveltePlayerDispatcher = PlayerDispatcher & {
clickPreview: Event;
};
export type PlayerKey = keyof Config;
export type PlayerConfig = Config[keyof Config];
{
"name": "svelte-player",
"version": "0.0.16",
"version": "0.0.17",
"license": "MIT",

@@ -58,11 +58,13 @@ "repository": {

"@sveltejs/adapter-auto": "^2.1.0",
"@sveltejs/kit": "^1.20.5",
"@sveltejs/adapter-static": "^2.0.3",
"@sveltejs/kit": "^1.27.5",
"@sveltejs/package": "^2.1.0",
"@sveltejs/vite-plugin-svelte": "^2.4.2",
"@typescript-eslint/eslint-plugin": "^5.60.0",
"@typescript-eslint/parser": "^5.60.0",
"@sveltejs/vite-plugin-svelte": "^2.5.2",
"@testing-library/svelte": "^4.0.3",
"@typescript-eslint/eslint-plugin": "^6.10.0",
"@typescript-eslint/parser": "^6.10.0",
"dashjs": "3.1.3",
"eslint": "^8.43.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-svelte": "^2.31.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-svelte": "^2.35.0",
"flv.js": "1.5.0",

@@ -72,13 +74,13 @@ "hls.js": "1.1.4",

"jsdom": "^22.1.0",
"lint-staged": "^13.2.3",
"prettier": "^2.8.8",
"prettier-plugin-svelte": "^2.10.1",
"publint": "^0.1.12",
"lint-staged": "^15.1.0",
"prettier": "^3.1.0",
"prettier-plugin-svelte": "^3.1.0",
"publint": "^0.2.5",
"screenfull": "^6.0.2",
"svelte": "^4.0.0",
"svelte-check": "^3.4.4",
"svelte": "^4.2.3",
"svelte-check": "^3.6.0",
"tslib": "^2.5.3",
"typescript": "^5.1.3",
"vite": "^4.3.9",
"vitest": "^0.32.2"
"vitest": "^0.34.6"
},

@@ -85,0 +87,0 @@ "svelte": "./dist/SveltePlayer.svelte",

@@ -1,5 +0,90 @@

# SveltePlayer
<h1 align='center'>
SveltePlayer
</h1>
🚧 This package is under constructor.
<p align='center'>
A Svelte component for playing a variety of URLs, including file paths, YouTube, Facebook, Twitch, SoundCloud, Streamable, Vimeo, Wistia, Mixcloud, DailyMotion and Kaltura. This package is port of <a href="https://github.com/CookPete/react-player">CookPete/react-player</a> in <a href="https://svelte.dev/">Svelte</a>
</p>
🔗 This package is port of [CookPete/react-player](https://github.com/CookPete/react-player) in [Svelte](https://svelte.dev/)
### Usage
```bash
pnpm install svelte-player
```
```ts
<script lang="ts">
import SveltePlayer from 'svelte-player';
</script>
// Render a YouTube video player
<SveltePlayer url="https://www.youtube.com/watch?v=LXb3EKWsInQ" />
```
By default, SveltePlayer supports [many different types](https://github.com/CookPete/react-player#supported-media) of `url`. Import only one type such as `svelte-player/youtube` or `svelte-player/lazy` to lazy load the appropriate player for the `url` you pass in like [react-player](https://github.com/CookPete/react-player#usage) not supported.
Demo page: [`https://fikryfahrezy.github.io/svelte-player`](https://fikryfahrezy.github.io/svelte-player)
The component parses a URL and loads in the appropriate markup and external SDKs to play media from [various sources](#https://github.com/CookPete/react-player#supported-media). [Props](#props) can be passed in to control playback and react to events such as buffering or media ending. See [the demo source](https://github.com/fikryfahrezy/svelte-player/blob/main/src/routes/%2Bpage.svelte) for a full example.
For platforms without direct use of `npm` modules, a minified version of `SveletePlayer` is not available.
### Polyfills
- Not available
#### Autoplay
See how [react-player](https://github.com/CookPete/react-player) handle it.
### Props
Read the description at [react-player](https://github.com/CookPete/react-player#props).
| Prop | Supported | Note |
| ------------------ | --------- | ------------------------------------------------------------------------------------- |
| `url` | ✅ | - |
| `playing` | ✅ | - |
| `loop` | ✅ | - |
| `controls` | ✅ | - |
| `light` | ✅ | Set `boolean` value through props or custom component through `<slot name="light" />` |
| `volume` | ✅ | - |
| `muted` | ✅ | - |
| `playbackRate` | ✅ | - |
| `width` | ✅ | - |
| `height` | ✅ | - |
| `style` | ❌ | - |
| `progressInterval` | ✅ | - |
| `playsinline` | ✅ | - |
| `pip` | ✅ | - |
| `stopOnUnmount` | ✅ | - |
| `fallback` | ❌ | - |
| `wrapper` | ❌ | - |
| `playIcon` | ✅ | Pass it through `<slot name="play-icon" >` |
| `previewTabIndex` | ✅ | - |
| `config` | ✅ | - |
#### Callback props
Read the description at [react-player](https://github.com/CookPete/react-player#callback-props).
Callback props take a function that gets fired on various player events:
| Prop | Supported | Svelte Player Version |
| ------------------------- | --------- | ------------------------ |
| `onReady` | ✅ | on:ready |
| `onStart` | ✅ | on:start |
| `onPlay` | ✅ | on:play |
| `onProgress` | ✅ | on:progress |
| `onDuration` | ✅ | on:duration |
| `onPause` | ✅ | on:pause |
| `onBuffer` | ✅ | on:buffer |
| `onBufferEnd` | ✅ | on:bufferEnd |
| `onSeek` | ✅ | on:seek |
| `onPlaybackRateChange` | ✅ | on:playbackRateChange |
| `onPlaybackQualityChange` | ✅ | on:playbackQualityChange |
| `onEnded` | ✅ | on:ended |
| `onError` | ✅ | on:error |
| `onClickPreview` | ✅ | on:clickPreview |
| `onEnablePIP` | ✅ | on:enablePIP |
| `onDisablePIP` | ✅ | on:disablePIP |

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc