@gumlet/player.js 3.0.2 → 3.0.4
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/dist/main.cjs +1 -1
- package/dist/main.cjs.map +1 -1
- package/dist/main.d.cts +179 -167
- package/dist/main.d.mts +216 -0
- package/dist/main.iife.js +2 -0
- package/dist/main.iife.js.map +1 -0
- package/dist/main.mjs +2 -0
- package/dist/main.mjs.map +1 -0
- package/package.json +7 -5
- package/dist/.keep +0 -0
- package/dist/main.d.ts +0 -203
- package/dist/main.global.js +0 -2
- package/dist/main.global.js.map +0 -1
- package/dist/main.js +0 -2
- package/dist/main.js.map +0 -1
package/dist/main.d.cts
CHANGED
|
@@ -1,203 +1,215 @@
|
|
|
1
|
+
//#region src/types.d.ts
|
|
1
2
|
interface PlayerEvents {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
3
|
+
READY: 'ready';
|
|
4
|
+
PLAY: 'play';
|
|
5
|
+
PAUSE: 'pause';
|
|
6
|
+
ENDED: 'ended';
|
|
7
|
+
TIMEUPDATE: 'timeupdate';
|
|
8
|
+
PROGRESS: 'progress';
|
|
9
|
+
SEEKED: 'seeked';
|
|
10
|
+
ERROR: 'error';
|
|
11
|
+
FULLSCREEN_CHANGE: 'fullscreenChange';
|
|
12
|
+
PIP_CHANGE: 'pipChange';
|
|
13
|
+
PLAYBACK_RATE_CHANGE: 'playbackRateChange';
|
|
14
|
+
AUDIO_CHANGE: 'audioChange';
|
|
15
|
+
QUALITY_CHANGE: 'qualityChange';
|
|
16
|
+
VOLUME_CHANGE: 'volumeChange';
|
|
17
|
+
all(): string[];
|
|
17
18
|
}
|
|
18
19
|
interface PlayerMethods {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
20
|
+
PLAY: 'play';
|
|
21
|
+
PAUSE: 'pause';
|
|
22
|
+
GETPAUSED: 'getPaused';
|
|
23
|
+
MUTE: 'mute';
|
|
24
|
+
UNMUTE: 'unmute';
|
|
25
|
+
GETMUTED: 'getMuted';
|
|
26
|
+
SETVOLUME: 'setVolume';
|
|
27
|
+
GETVOLUME: 'getVolume';
|
|
28
|
+
GETDURATION: 'getDuration';
|
|
29
|
+
SETCURRENTTIME: 'setCurrentTime';
|
|
30
|
+
GETCURRENTTIME: 'getCurrentTime';
|
|
31
|
+
SETLOOP: 'setLoop';
|
|
32
|
+
GETLOOP: 'getLoop';
|
|
33
|
+
SETPLAYBACKRATE: 'setPlaybackRate';
|
|
34
|
+
GETPLAYBACKRATE: 'getPlaybackRate';
|
|
35
|
+
REMOVEEVENTLISTENER: 'removeEventListener';
|
|
36
|
+
ADDEVENTLISTENER: 'addEventListener';
|
|
37
|
+
all(): string[];
|
|
37
38
|
}
|
|
38
39
|
interface Core {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
40
|
+
EVENTS: PlayerEvents;
|
|
41
|
+
POST_MESSAGE: boolean;
|
|
42
|
+
METHODS: PlayerMethods;
|
|
43
|
+
DEBUG: boolean;
|
|
44
|
+
VERSION: string;
|
|
45
|
+
CONTEXT: string;
|
|
46
|
+
isString(obj: any): obj is string;
|
|
47
|
+
has(obj: object, key: string): boolean;
|
|
48
|
+
addEvent(elem: any, type: string, eventHandle: (e: any) => void): void;
|
|
49
|
+
isNone(obj: any): obj is null | undefined;
|
|
50
|
+
assert(test: any, msg?: string): asserts test;
|
|
51
|
+
generateUUID(): string;
|
|
52
|
+
isArray(obj: any): obj is any[];
|
|
52
53
|
}
|
|
53
54
|
interface PlayerData {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
method?: string;
|
|
56
|
+
value?: any;
|
|
57
|
+
context?: string;
|
|
58
|
+
version?: string;
|
|
59
|
+
listener?: string;
|
|
60
|
+
event?: string;
|
|
60
61
|
}
|
|
61
62
|
interface ReadyData {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
event: string;
|
|
64
|
+
value: {
|
|
65
|
+
src: string;
|
|
66
|
+
events?: string[];
|
|
67
|
+
methods?: string[];
|
|
68
|
+
};
|
|
68
69
|
}
|
|
69
70
|
type EventCallback = (data?: any) => void;
|
|
70
71
|
type MethodCallback = (value?: any) => void;
|
|
71
72
|
type GetMethodPromise<T = any> = Promise<T>;
|
|
72
73
|
type SetMethodPromise = Promise<void>;
|
|
73
74
|
interface SupportedFeatures {
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
events: string[];
|
|
76
|
+
methods: string[];
|
|
76
77
|
}
|
|
77
|
-
|
|
78
|
+
//#endregion
|
|
79
|
+
//#region src/core.d.ts
|
|
78
80
|
declare const core: Core;
|
|
79
|
-
|
|
81
|
+
//#endregion
|
|
82
|
+
//#region src/keeper.d.ts
|
|
80
83
|
declare class Keeper {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
private data;
|
|
85
|
+
constructor();
|
|
86
|
+
has(event: string, id?: string): boolean;
|
|
87
|
+
add(id: string, event: string, cb: EventCallback, ctx?: any, one?: boolean): void;
|
|
88
|
+
execute(event: string, id?: string, data?: any, ctx?: any): boolean;
|
|
89
|
+
on(id: string, event: string, cb: EventCallback, ctx?: any): void;
|
|
90
|
+
one(id: string, event: string, cb: EventCallback, ctx?: any): void;
|
|
91
|
+
off(event: string, cb?: EventCallback): string[];
|
|
89
92
|
}
|
|
90
|
-
|
|
93
|
+
//#endregion
|
|
94
|
+
//#region src/player.d.ts
|
|
91
95
|
declare class Player {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
96
|
+
READIED: string[];
|
|
97
|
+
elem: HTMLIFrameElement;
|
|
98
|
+
debug: boolean;
|
|
99
|
+
private logger;
|
|
100
|
+
origin: string;
|
|
101
|
+
keeper: Keeper;
|
|
102
|
+
isReady: boolean;
|
|
103
|
+
queue: PlayerData[];
|
|
104
|
+
events: string[];
|
|
105
|
+
methods: string[];
|
|
106
|
+
loaded?: boolean;
|
|
107
|
+
constructor(elem: string | HTMLIFrameElement, debug?: boolean);
|
|
108
|
+
send(data: PlayerData, callback?: MethodCallback, ctx?: any): boolean;
|
|
109
|
+
receive(e: MessageEvent): boolean;
|
|
110
|
+
ready(data: ReadyData): boolean;
|
|
111
|
+
on(event: string, callback: EventCallback, ctx?: any): boolean;
|
|
112
|
+
off(event: string, callback?: EventCallback): boolean;
|
|
113
|
+
supports(evtOrMethod: 'event' | 'method', names: string | string[]): boolean;
|
|
114
|
+
play?(): Promise<void>;
|
|
115
|
+
pause?(): Promise<void>;
|
|
116
|
+
mute?(): Promise<void>;
|
|
117
|
+
unmute?(): Promise<void>;
|
|
118
|
+
getPaused?(): GetMethodPromise<boolean>;
|
|
119
|
+
getPaused?(callback: MethodCallback): void;
|
|
120
|
+
getMuted?(): GetMethodPromise<boolean>;
|
|
121
|
+
getMuted?(callback: MethodCallback): void;
|
|
122
|
+
getVolume?(): GetMethodPromise<number>;
|
|
123
|
+
getVolume?(callback: MethodCallback): void;
|
|
124
|
+
getDuration?(): GetMethodPromise<number>;
|
|
125
|
+
getDuration?(callback: MethodCallback): void;
|
|
126
|
+
getCurrentTime?(): GetMethodPromise<number>;
|
|
127
|
+
getCurrentTime?(callback: MethodCallback): void;
|
|
128
|
+
getLoop?(): GetMethodPromise<boolean>;
|
|
129
|
+
getLoop?(callback: MethodCallback): void;
|
|
130
|
+
getPlaybackRate?(): GetMethodPromise<number>;
|
|
131
|
+
getPlaybackRate?(callback: MethodCallback): void;
|
|
132
|
+
setVolume?(volume: number): SetMethodPromise;
|
|
133
|
+
setCurrentTime?(time: number): SetMethodPromise;
|
|
134
|
+
setLoop?(loop: boolean): SetMethodPromise;
|
|
135
|
+
setPlaybackRate?(rate: number): SetMethodPromise;
|
|
131
136
|
}
|
|
132
|
-
|
|
137
|
+
//#endregion
|
|
138
|
+
//#region src/receiver.d.ts
|
|
133
139
|
declare class Receiver {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
140
|
+
isReady: boolean;
|
|
141
|
+
origin: string;
|
|
142
|
+
methods: {
|
|
143
|
+
[method: string]: Function;
|
|
144
|
+
};
|
|
145
|
+
supported: SupportedFeatures;
|
|
146
|
+
eventListeners: {
|
|
147
|
+
[event: string]: (string | null)[];
|
|
148
|
+
};
|
|
149
|
+
reject: boolean;
|
|
150
|
+
debug: boolean;
|
|
151
|
+
private logger;
|
|
152
|
+
constructor(events?: string[], methods?: string[], debug?: boolean);
|
|
153
|
+
receive(e: MessageEvent): boolean;
|
|
154
|
+
get(method: string, value: any, listener: string | null): boolean;
|
|
155
|
+
on(event: string, callback: Function): void;
|
|
156
|
+
send(event: string, value?: any, listener?: string | null): boolean;
|
|
157
|
+
emit(event: string, value?: any): boolean;
|
|
158
|
+
ready(): void;
|
|
151
159
|
}
|
|
152
|
-
|
|
160
|
+
//#endregion
|
|
161
|
+
//#region src/adapters/mock.d.ts
|
|
153
162
|
declare class MockAdapter {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
163
|
+
receiver: Receiver;
|
|
164
|
+
constructor();
|
|
165
|
+
init(): void;
|
|
166
|
+
ready(): void;
|
|
158
167
|
}
|
|
159
|
-
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/adapters/video.d.ts
|
|
160
170
|
interface VideoJSPlayer {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
171
|
+
on(event: string, callback: () => void): void;
|
|
172
|
+
play(): void;
|
|
173
|
+
pause(): void;
|
|
174
|
+
paused(): boolean;
|
|
175
|
+
currentTime(time?: number): number;
|
|
176
|
+
duration(): number;
|
|
177
|
+
volume(vol?: number): number;
|
|
178
|
+
loop(loop?: boolean): boolean;
|
|
179
|
+
playbackRate(rate?: number): number;
|
|
170
180
|
}
|
|
171
181
|
declare class VideoJSAdapter {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
182
|
+
receiver: Receiver;
|
|
183
|
+
constructor(player: VideoJSPlayer);
|
|
184
|
+
init(player: VideoJSPlayer): void;
|
|
185
|
+
ready(): void;
|
|
176
186
|
}
|
|
177
|
-
|
|
187
|
+
//#endregion
|
|
188
|
+
//#region src/adapters/html.d.ts
|
|
178
189
|
declare class HTML5Adapter {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
190
|
+
receiver: Receiver;
|
|
191
|
+
constructor(video: HTMLVideoElement);
|
|
192
|
+
init(video: HTMLVideoElement): void;
|
|
193
|
+
ready(): void;
|
|
183
194
|
}
|
|
184
|
-
|
|
195
|
+
//#endregion
|
|
196
|
+
//#region src/main.d.ts
|
|
185
197
|
interface PlayerJS {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
198
|
+
Player: typeof Player;
|
|
199
|
+
Receiver: typeof Receiver;
|
|
200
|
+
MockAdapter: typeof MockAdapter;
|
|
201
|
+
VideoJSAdapter: typeof VideoJSAdapter;
|
|
202
|
+
HTML5Adapter: typeof HTML5Adapter;
|
|
203
|
+
CONTEXT: string;
|
|
204
|
+
VERSION: string;
|
|
205
|
+
METHODS: PlayerMethods;
|
|
206
|
+
addEvent: typeof core.addEvent;
|
|
195
207
|
}
|
|
196
208
|
declare const playerjs: PlayerJS;
|
|
197
209
|
declare global {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
210
|
+
interface Window {
|
|
211
|
+
playerjs: PlayerJS;
|
|
212
|
+
}
|
|
201
213
|
}
|
|
202
|
-
|
|
203
|
-
|
|
214
|
+
export = playerjs;
|
|
215
|
+
//# sourceMappingURL=main.d.cts.map
|
package/dist/main.d.mts
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
//#region src/types.d.ts
|
|
2
|
+
interface PlayerEvents {
|
|
3
|
+
READY: 'ready';
|
|
4
|
+
PLAY: 'play';
|
|
5
|
+
PAUSE: 'pause';
|
|
6
|
+
ENDED: 'ended';
|
|
7
|
+
TIMEUPDATE: 'timeupdate';
|
|
8
|
+
PROGRESS: 'progress';
|
|
9
|
+
SEEKED: 'seeked';
|
|
10
|
+
ERROR: 'error';
|
|
11
|
+
FULLSCREEN_CHANGE: 'fullscreenChange';
|
|
12
|
+
PIP_CHANGE: 'pipChange';
|
|
13
|
+
PLAYBACK_RATE_CHANGE: 'playbackRateChange';
|
|
14
|
+
AUDIO_CHANGE: 'audioChange';
|
|
15
|
+
QUALITY_CHANGE: 'qualityChange';
|
|
16
|
+
VOLUME_CHANGE: 'volumeChange';
|
|
17
|
+
all(): string[];
|
|
18
|
+
}
|
|
19
|
+
interface PlayerMethods {
|
|
20
|
+
PLAY: 'play';
|
|
21
|
+
PAUSE: 'pause';
|
|
22
|
+
GETPAUSED: 'getPaused';
|
|
23
|
+
MUTE: 'mute';
|
|
24
|
+
UNMUTE: 'unmute';
|
|
25
|
+
GETMUTED: 'getMuted';
|
|
26
|
+
SETVOLUME: 'setVolume';
|
|
27
|
+
GETVOLUME: 'getVolume';
|
|
28
|
+
GETDURATION: 'getDuration';
|
|
29
|
+
SETCURRENTTIME: 'setCurrentTime';
|
|
30
|
+
GETCURRENTTIME: 'getCurrentTime';
|
|
31
|
+
SETLOOP: 'setLoop';
|
|
32
|
+
GETLOOP: 'getLoop';
|
|
33
|
+
SETPLAYBACKRATE: 'setPlaybackRate';
|
|
34
|
+
GETPLAYBACKRATE: 'getPlaybackRate';
|
|
35
|
+
REMOVEEVENTLISTENER: 'removeEventListener';
|
|
36
|
+
ADDEVENTLISTENER: 'addEventListener';
|
|
37
|
+
all(): string[];
|
|
38
|
+
}
|
|
39
|
+
interface Core {
|
|
40
|
+
EVENTS: PlayerEvents;
|
|
41
|
+
POST_MESSAGE: boolean;
|
|
42
|
+
METHODS: PlayerMethods;
|
|
43
|
+
DEBUG: boolean;
|
|
44
|
+
VERSION: string;
|
|
45
|
+
CONTEXT: string;
|
|
46
|
+
isString(obj: any): obj is string;
|
|
47
|
+
has(obj: object, key: string): boolean;
|
|
48
|
+
addEvent(elem: any, type: string, eventHandle: (e: any) => void): void;
|
|
49
|
+
isNone(obj: any): obj is null | undefined;
|
|
50
|
+
assert(test: any, msg?: string): asserts test;
|
|
51
|
+
generateUUID(): string;
|
|
52
|
+
isArray(obj: any): obj is any[];
|
|
53
|
+
}
|
|
54
|
+
interface PlayerData {
|
|
55
|
+
method?: string;
|
|
56
|
+
value?: any;
|
|
57
|
+
context?: string;
|
|
58
|
+
version?: string;
|
|
59
|
+
listener?: string;
|
|
60
|
+
event?: string;
|
|
61
|
+
}
|
|
62
|
+
interface ReadyData {
|
|
63
|
+
event: string;
|
|
64
|
+
value: {
|
|
65
|
+
src: string;
|
|
66
|
+
events?: string[];
|
|
67
|
+
methods?: string[];
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
type EventCallback = (data?: any) => void;
|
|
71
|
+
type MethodCallback = (value?: any) => void;
|
|
72
|
+
type GetMethodPromise<T = any> = Promise<T>;
|
|
73
|
+
type SetMethodPromise = Promise<void>;
|
|
74
|
+
interface SupportedFeatures {
|
|
75
|
+
events: string[];
|
|
76
|
+
methods: string[];
|
|
77
|
+
}
|
|
78
|
+
//#endregion
|
|
79
|
+
//#region src/core.d.ts
|
|
80
|
+
declare const core: Core;
|
|
81
|
+
//#endregion
|
|
82
|
+
//#region src/keeper.d.ts
|
|
83
|
+
declare class Keeper {
|
|
84
|
+
private data;
|
|
85
|
+
constructor();
|
|
86
|
+
has(event: string, id?: string): boolean;
|
|
87
|
+
add(id: string, event: string, cb: EventCallback, ctx?: any, one?: boolean): void;
|
|
88
|
+
execute(event: string, id?: string, data?: any, ctx?: any): boolean;
|
|
89
|
+
on(id: string, event: string, cb: EventCallback, ctx?: any): void;
|
|
90
|
+
one(id: string, event: string, cb: EventCallback, ctx?: any): void;
|
|
91
|
+
off(event: string, cb?: EventCallback): string[];
|
|
92
|
+
}
|
|
93
|
+
//#endregion
|
|
94
|
+
//#region src/player.d.ts
|
|
95
|
+
declare class Player {
|
|
96
|
+
READIED: string[];
|
|
97
|
+
elem: HTMLIFrameElement;
|
|
98
|
+
debug: boolean;
|
|
99
|
+
private logger;
|
|
100
|
+
origin: string;
|
|
101
|
+
keeper: Keeper;
|
|
102
|
+
isReady: boolean;
|
|
103
|
+
queue: PlayerData[];
|
|
104
|
+
events: string[];
|
|
105
|
+
methods: string[];
|
|
106
|
+
loaded?: boolean;
|
|
107
|
+
constructor(elem: string | HTMLIFrameElement, debug?: boolean);
|
|
108
|
+
send(data: PlayerData, callback?: MethodCallback, ctx?: any): boolean;
|
|
109
|
+
receive(e: MessageEvent): boolean;
|
|
110
|
+
ready(data: ReadyData): boolean;
|
|
111
|
+
on(event: string, callback: EventCallback, ctx?: any): boolean;
|
|
112
|
+
off(event: string, callback?: EventCallback): boolean;
|
|
113
|
+
supports(evtOrMethod: 'event' | 'method', names: string | string[]): boolean;
|
|
114
|
+
play?(): Promise<void>;
|
|
115
|
+
pause?(): Promise<void>;
|
|
116
|
+
mute?(): Promise<void>;
|
|
117
|
+
unmute?(): Promise<void>;
|
|
118
|
+
getPaused?(): GetMethodPromise<boolean>;
|
|
119
|
+
getPaused?(callback: MethodCallback): void;
|
|
120
|
+
getMuted?(): GetMethodPromise<boolean>;
|
|
121
|
+
getMuted?(callback: MethodCallback): void;
|
|
122
|
+
getVolume?(): GetMethodPromise<number>;
|
|
123
|
+
getVolume?(callback: MethodCallback): void;
|
|
124
|
+
getDuration?(): GetMethodPromise<number>;
|
|
125
|
+
getDuration?(callback: MethodCallback): void;
|
|
126
|
+
getCurrentTime?(): GetMethodPromise<number>;
|
|
127
|
+
getCurrentTime?(callback: MethodCallback): void;
|
|
128
|
+
getLoop?(): GetMethodPromise<boolean>;
|
|
129
|
+
getLoop?(callback: MethodCallback): void;
|
|
130
|
+
getPlaybackRate?(): GetMethodPromise<number>;
|
|
131
|
+
getPlaybackRate?(callback: MethodCallback): void;
|
|
132
|
+
setVolume?(volume: number): SetMethodPromise;
|
|
133
|
+
setCurrentTime?(time: number): SetMethodPromise;
|
|
134
|
+
setLoop?(loop: boolean): SetMethodPromise;
|
|
135
|
+
setPlaybackRate?(rate: number): SetMethodPromise;
|
|
136
|
+
}
|
|
137
|
+
//#endregion
|
|
138
|
+
//#region src/receiver.d.ts
|
|
139
|
+
declare class Receiver {
|
|
140
|
+
isReady: boolean;
|
|
141
|
+
origin: string;
|
|
142
|
+
methods: {
|
|
143
|
+
[method: string]: Function;
|
|
144
|
+
};
|
|
145
|
+
supported: SupportedFeatures;
|
|
146
|
+
eventListeners: {
|
|
147
|
+
[event: string]: (string | null)[];
|
|
148
|
+
};
|
|
149
|
+
reject: boolean;
|
|
150
|
+
debug: boolean;
|
|
151
|
+
private logger;
|
|
152
|
+
constructor(events?: string[], methods?: string[], debug?: boolean);
|
|
153
|
+
receive(e: MessageEvent): boolean;
|
|
154
|
+
get(method: string, value: any, listener: string | null): boolean;
|
|
155
|
+
on(event: string, callback: Function): void;
|
|
156
|
+
send(event: string, value?: any, listener?: string | null): boolean;
|
|
157
|
+
emit(event: string, value?: any): boolean;
|
|
158
|
+
ready(): void;
|
|
159
|
+
}
|
|
160
|
+
//#endregion
|
|
161
|
+
//#region src/adapters/mock.d.ts
|
|
162
|
+
declare class MockAdapter {
|
|
163
|
+
receiver: Receiver;
|
|
164
|
+
constructor();
|
|
165
|
+
init(): void;
|
|
166
|
+
ready(): void;
|
|
167
|
+
}
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/adapters/video.d.ts
|
|
170
|
+
interface VideoJSPlayer {
|
|
171
|
+
on(event: string, callback: () => void): void;
|
|
172
|
+
play(): void;
|
|
173
|
+
pause(): void;
|
|
174
|
+
paused(): boolean;
|
|
175
|
+
currentTime(time?: number): number;
|
|
176
|
+
duration(): number;
|
|
177
|
+
volume(vol?: number): number;
|
|
178
|
+
loop(loop?: boolean): boolean;
|
|
179
|
+
playbackRate(rate?: number): number;
|
|
180
|
+
}
|
|
181
|
+
declare class VideoJSAdapter {
|
|
182
|
+
receiver: Receiver;
|
|
183
|
+
constructor(player: VideoJSPlayer);
|
|
184
|
+
init(player: VideoJSPlayer): void;
|
|
185
|
+
ready(): void;
|
|
186
|
+
}
|
|
187
|
+
//#endregion
|
|
188
|
+
//#region src/adapters/html.d.ts
|
|
189
|
+
declare class HTML5Adapter {
|
|
190
|
+
receiver: Receiver;
|
|
191
|
+
constructor(video: HTMLVideoElement);
|
|
192
|
+
init(video: HTMLVideoElement): void;
|
|
193
|
+
ready(): void;
|
|
194
|
+
}
|
|
195
|
+
//#endregion
|
|
196
|
+
//#region src/main.d.ts
|
|
197
|
+
interface PlayerJS {
|
|
198
|
+
Player: typeof Player;
|
|
199
|
+
Receiver: typeof Receiver;
|
|
200
|
+
MockAdapter: typeof MockAdapter;
|
|
201
|
+
VideoJSAdapter: typeof VideoJSAdapter;
|
|
202
|
+
HTML5Adapter: typeof HTML5Adapter;
|
|
203
|
+
CONTEXT: string;
|
|
204
|
+
VERSION: string;
|
|
205
|
+
METHODS: PlayerMethods;
|
|
206
|
+
addEvent: typeof core.addEvent;
|
|
207
|
+
}
|
|
208
|
+
declare const playerjs: PlayerJS;
|
|
209
|
+
declare global {
|
|
210
|
+
interface Window {
|
|
211
|
+
playerjs: PlayerJS;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
//#endregion
|
|
215
|
+
export { playerjs as default };
|
|
216
|
+
//# sourceMappingURL=main.d.mts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var playerjs=(function(){let e={EVENTS:{READY:`ready`,PLAY:`play`,PAUSE:`pause`,ENDED:`ended`,TIMEUPDATE:`timeupdate`,PROGRESS:`progress`,SEEKED:`seeked`,ERROR:`error`,FULLSCREEN_CHANGE:`fullscreenChange`,PIP_CHANGE:`pipChange`,PLAYBACK_RATE_CHANGE:`playbackRateChange`,AUDIO_CHANGE:`audioChange`,QUALITY_CHANGE:`qualityChange`,VOLUME_CHANGE:`volumeChange`,all(){let t=[];for(let n in e.EVENTS)e.has(e.EVENTS,n)&&e.isString(e.EVENTS[n])&&t.push(e.EVENTS[n]);return t}},POST_MESSAGE:!!window.postMessage,METHODS:{PLAY:`play`,PAUSE:`pause`,GETPAUSED:`getPaused`,MUTE:`mute`,UNMUTE:`unmute`,GETMUTED:`getMuted`,SETVOLUME:`setVolume`,GETVOLUME:`getVolume`,GETDURATION:`getDuration`,SETCURRENTTIME:`setCurrentTime`,GETCURRENTTIME:`getCurrentTime`,SETLOOP:`setLoop`,GETLOOP:`getLoop`,SETPLAYBACKRATE:`setPlaybackRate`,GETPLAYBACKRATE:`getPlaybackRate`,REMOVEEVENTLISTENER:`removeEventListener`,ADDEVENTLISTENER:`addEventListener`,all(){let t=[];for(let n in e.METHODS)e.has(e.METHODS,n)&&e.isString(e.METHODS[n])&&t.push(e.METHODS[n]);return t}},DEBUG:!1,VERSION:`2.0`,CONTEXT:`player.js`,isString(e){return Object.prototype.toString.call(e)===`[object String]`},has(e,t){return Object.hasOwn(e,t)},addEvent(e,t,n){e&&(e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent?e.attachEvent(`on${t}`,n):e[`on${t}`]=n)},isNone(e){return e==null},assert(e,t){if(!e)throw t||`Player.js Assert Failed`},generateUUID(){if(crypto?.randomUUID)return crypto.randomUUID();{let e=URL.createObjectURL(new Blob);return e.substring(e.lastIndexOf(`/`)+1)}},isArray(e){return Object.prototype.toString.call(e)===`[object Array]`}};var t=class{constructor(){this.data={}}has(t,n){if(!Object.hasOwn(this.data,t))return!1;if(e.isNone(n))return!0;let r=this.data[t];for(let e=0;e<r.length;e++)if(r[e].id===n)return!0;return!1}add(e,t,n,r,i=!1){let a={id:e,event:t,cb:n,ctx:r,one:i};this.has(t)?this.data[t].push(a):this.data[t]=[a]}execute(t,n,r,i){if(!this.has(t,n))return!1;let a=[],o=[];for(let s=0;s<this.data[t].length;s++){let c=this.data[t][s];e.isNone(n)||!e.isNone(n)&&c.id===n?(o.push({cb:c.cb,ctx:c.ctx?c.ctx:i,data:r}),c.one===!1&&a.push(c)):a.push(c)}a.length===0?delete this.data[t]:this.data[t]=a;for(let e=0;e<o.length;e++){let t=o[e];t.cb.call(t.ctx,t.data)}return!0}on(e,t,n,r){this.add(e,t,n,r,!1)}one(e,t,n,r){this.add(e,t,n,r,!0)}off(t,n){let r=[];if(!Object.hasOwn(this.data,t))return r;let i=[];for(let a=0;a<this.data[t].length;a++){let o=this.data[t][a];!e.isNone(n)&&o.cb!==n?i.push(o):e.isNone(o.id)||r.push(o.id)}return i.length===0?delete this.data[t]:this.data[t]=i,r}},n=class{constructor(e=!1){this.enabled=e}setEnabled(e){this.enabled=e}isEnabled(){return this.enabled}debug(...e){this.enabled&&console.debug(...e)}log(...e){this.enabled&&console.log(...e)}warn(...e){this.enabled&&console.warn(...e)}error(...e){this.enabled&&console.error(...e)}};let r=[];var i=class{constructor(i,a=!1){if(this.READIED=r,e.isString(i)){let e=document.getElementById(i);if(!e)throw Error(`Element with id "${i}" not found`);i=e}this.elem=i,this.debug=a,this.logger=new n(a),e.assert(i.nodeName===`IFRAME`,`playerjs.Player constructor requires an Iframe, got "`+i.nodeName+`"`),e.assert(i.src,`playerjs.Player constructor requires a Iframe with a 'src' attribute.`),this.origin=new URL(i.src).origin,this.keeper=new t,this.isReady=!1,this.queue=[],this.events=e.EVENTS.all(),this.methods=e.METHODS.all(),e.POST_MESSAGE?e.addEvent(window,`message`,e=>{this.receive(e)}):this.logger.error(`Post Message is not Available.`),r.includes(i.src)?this.loaded=!0:this.elem.onload=()=>{this.loaded=!0}}send(t,n,r){if(t.context=e.CONTEXT,t.version=e.VERSION,n){let i=e.generateUUID();t.listener=i,this.keeper.one(i,t.method||``,n,r)}return!this.isReady&&t.value!==`ready`?(this.logger.debug(`Player.queue`,t),this.queue.push(t),!1):(this.logger.debug(`Player.send`,t,this.origin),this.loaded===!0&&this.elem.contentWindow&&this.elem.contentWindow.postMessage(JSON.stringify(t),this.origin),!0)}receive(t){if(this.logger.debug(`Player.receive`,t),t.origin!==this.origin)return!1;let n;try{n=JSON.parse(t.data)}catch{return!1}return n.context===e.CONTEXT?(n.event===`ready`&&n.value&&n.value.src===this.elem.src&&this.ready(n),this.keeper.has(n.event,n.listener)&&this.keeper.execute(n.event,n.listener,n.value,this),!0):!1}ready(e){if(this.isReady===!0)return!1;e.value.events&&(this.events=e.value.events),e.value.methods&&(this.methods=e.value.methods),this.isReady=!0,this.loaded=!0;for(let t=0;t<this.queue.length;t++){let n=this.queue[t];this.logger.debug(`Player.dequeue`,n),e.event===`ready`&&this.keeper.execute(n.event||``,n.listener,!0,this),this.send(n)}return this.queue=[],!0}on(t,n,r){let i=e.generateUUID();return t===`ready`?this.keeper.one(i,t,n,r):this.keeper.on(i,t,n,r),this.send({method:`addEventListener`,value:t,listener:i}),!0}off(e,t){let n=this.keeper.off(e,t);if(this.logger.debug(`Player.off`,n),n.length>0){for(let t in n)this.send({method:`removeEventListener`,value:e,listener:n[t]});return!0}return!1}supports(t,n){e.assert([`method`,`event`].includes(t),`evtOrMethod needs to be either "event" or "method" got `+t),n=e.isArray(n)?n:[n];let r=t===`event`?this.events:this.methods;for(let e=0;e<n.length;e++)if(!r.includes(n[e]))return!1;return!0}};function a(t){return function(...n){let r={method:t};if(/^get/.test(t))if(n.length>0&&typeof n[0]==`function`){let e=n[0];this.send(r,e,n[1]);return}else return new Promise(e=>{this.send(r,t=>{e(t)})});else return/^set/.test(t)&&(e.assert(n.length!==0,`Set methods require a value.`),r.value=n[0]),new Promise(e=>{[`play`,`pause`,`mute`,`unmute`].includes(t)?(this.send(r),e()):this.send(r,()=>{e()})})}}for(let t of e.METHODS.all())Object.hasOwn(i.prototype,t)||(i.prototype[t]=a(t));e.addEvent(window,`message`,t=>{let n;try{n=JSON.parse(t.data)}catch{return!1}if(n.context!==e.CONTEXT)return!1;n.event===`ready`&&n.value&&n.value.src&&r.push(n.value.src)});var o=class{constructor(t,r,i=!1){this.isReady=!1,this.debug=i,this.logger=new n(i),document.referrer?this.origin=new URL(document.referrer).origin:this.origin=`*`,this.methods={},this.supported={events:t||e.EVENTS.all(),methods:r||e.METHODS.all()},this.eventListeners={},this.reject=!(window.self!==window.top&&e.POST_MESSAGE),this.reject||e.addEvent(window,`message`,e=>{this.receive(e)})}receive(t){if(t.origin!==this.origin)return!1;let n={};if(typeof t.data==`object`)n=t.data;else try{n=window.JSON.parse(t.data)}catch(e){this.logger.error(`JSON Parse Error`,e)}if(this.logger.debug(`Receiver.receive`,t,n),!n.method||n.context!==e.CONTEXT)return!1;if(!e.METHODS.all().includes(n.method))return this.emit(`error`,{code:2,msg:`Invalid Method "`+n.method+`"`}),!1;let r=e.isNone(n.listener)?null:n.listener;if(n.method===`addEventListener`)Object.hasOwn(this.eventListeners,n.value)?this.eventListeners[n.value].includes(r)||this.eventListeners[n.value].push(r):this.eventListeners[n.value]=[r],n.value===`ready`&&this.isReady&&this.ready();else if(n.method===`removeEventListener`){if(Object.hasOwn(this.eventListeners,n.value)){let e=this.eventListeners[n.value].indexOf(r);e>-1&&this.eventListeners[n.value].splice(e,1),this.eventListeners[n.value].length===0&&delete this.eventListeners[n.value]}}else this.get(n.method,n.value,r);return!0}get(e,t,n){if(!Object.hasOwn(this.methods,e))return this.emit(`error`,{code:3,msg:`Method Not Supported "`+e+`"`}),!1;let r=this.methods[e];return e.substr(0,3)===`get`?r.call(this,t=>{this.send(e,t,n)}):r.call(this,t),!0}on(e,t){this.methods[e]=t}send(t,n,r){if(this.logger.debug(`Receiver.send`,t,n,r),this.reject)return this.logger.error(`Receiver.send.reject`,t,n,r),!1;let i={context:e.CONTEXT,version:e.VERSION,event:t};e.isNone(n)||(i.value=n),e.isNone(r)||(i.listener=r);let a=JSON.stringify(i);return window.parent.postMessage(a,this.origin===``?`*`:this.origin),!0}emit(e,t){if(!Object.hasOwn(this.eventListeners,e))return!1;this.logger.debug(`Receiver.emit`,e,t,this.eventListeners[e]);for(let n=0;n<this.eventListeners[e].length;n++){let r=this.eventListeners[e][n];this.send(e,t,r)}return!0}ready(){this.logger.debug(`Receiver.ready`),this.isReady=!0;let e={src:window.location.toString(),events:this.supported.events,methods:this.supported.methods};this.emit(`ready`,e)||this.send(`ready`,e)}};let s={Player:i,Receiver:o,MockAdapter:class{constructor(){this.init()}init(){let e={duration:20,currentTime:0,interval:null,timeupdate:()=>{},volume:100,mute:!1,playing:!1,loop:!1,playbackRate:1,play:()=>{e.interval=setInterval(()=>{e.currentTime+=.25,e.timeupdate({seconds:e.currentTime,duration:e.duration})},250),e.playing=!0},pause:()=>{e.interval&&clearInterval(e.interval),e.playing=!1}},t=new o;this.receiver=t,t.on(`play`,function(){e.play(),this.emit(`play`),e.timeupdate=e=>{this.emit(`timeupdate`,e)}}),t.on(`pause`,function(){e.pause(),this.emit(`pause`)}),t.on(`getPaused`,t=>{t(!e.playing)}),t.on(`getCurrentTime`,t=>{t(e.currentTime)}),t.on(`setCurrentTime`,t=>{e.currentTime=t}),t.on(`getDuration`,t=>{t(e.duration)}),t.on(`getVolume`,t=>{t(e.volume)}),t.on(`setVolume`,t=>{e.volume=t}),t.on(`mute`,()=>{e.mute=!0}),t.on(`unmute`,()=>{e.mute=!1}),t.on(`getMuted`,t=>{t(e.mute)}),t.on(`getLoop`,t=>{t(e.loop)}),t.on(`setLoop`,t=>{e.loop=t}),t.on(`setPlaybackRate`,t=>{e.playbackRate=t}),t.on(`getPlaybackRate`,t=>{t(e.playbackRate)})}ready(){this.receiver.ready()}},VideoJSAdapter:class{constructor(e){this.init(e)}init(t){e.assert(t,`VideoJSReceiver requires a player object`);let n=new o;this.receiver=n,t.on(`pause`,()=>{n.emit(`pause`)}),t.on(`play`,()=>{n.emit(`play`)}),t.on(`timeupdate`,()=>{let e=t.currentTime(),r=t.duration();if(!e||!r)return!1;let i={seconds:e,duration:r};n.emit(`timeupdate`,i)}),t.on(`ended`,()=>{n.emit(`ended`)}),t.on(`error`,()=>{n.emit(`error`)}),n.on(`play`,()=>{t.play()}),n.on(`pause`,()=>{t.pause()}),n.on(`getPaused`,e=>{e(t.paused())}),n.on(`getCurrentTime`,e=>{e(t.currentTime())}),n.on(`setCurrentTime`,e=>{t.currentTime(e)}),n.on(`getDuration`,e=>{e(t.duration())}),n.on(`getVolume`,e=>{e(t.volume()*100)}),n.on(`setVolume`,e=>{t.volume(e/100)}),n.on(`mute`,()=>{t.volume(0)}),n.on(`unmute`,()=>{t.volume(1)}),n.on(`getMuted`,e=>{e(t.volume()===0)}),n.on(`getLoop`,e=>{e(t.loop())}),n.on(`setLoop`,e=>{t.loop(e)}),n.on(`setPlaybackRate`,e=>{t.playbackRate(e)}),n.on(`getPlaybackRate`,e=>{e(t.playbackRate())})}ready(){this.receiver.ready()}},HTML5Adapter:class{constructor(e){this.init(e)}init(t){e.assert(t,`HTML5Adapter requires a video element`);let n=new o;this.receiver=n,t.addEventListener(`playing`,()=>{n.emit(`play`)}),t.addEventListener(`pause`,()=>{n.emit(`pause`)}),t.addEventListener(`ended`,()=>{n.emit(`ended`)}),t.addEventListener(`timeupdate`,()=>{n.emit(`timeupdate`,{seconds:t.currentTime,duration:t.duration})}),t.addEventListener(`progress`,()=>{n.emit(`buffered`,{percent:t.buffered.length})}),n.on(`play`,()=>{t.play()}),n.on(`pause`,()=>{t.pause()}),n.on(`getPaused`,e=>{e(t.paused)}),n.on(`getCurrentTime`,e=>{e(t.currentTime)}),n.on(`setCurrentTime`,e=>{t.currentTime=e}),n.on(`getDuration`,e=>{e(t.duration)}),n.on(`getVolume`,e=>{e(t.volume*100)}),n.on(`setVolume`,e=>{t.volume=e/100}),n.on(`mute`,()=>{t.muted=!0}),n.on(`unmute`,()=>{t.muted=!1}),n.on(`getMuted`,e=>{e(t.muted)}),n.on(`getLoop`,e=>{e(t.loop)}),n.on(`setLoop`,e=>{t.loop=e}),n.on(`setPlaybackRate`,e=>{t.playbackRate=e}),n.on(`getPlaybackRate`,e=>{e(t.playbackRate)})}ready(){this.receiver.ready()}},CONTEXT:e.CONTEXT,VERSION:e.VERSION,METHODS:e.METHODS,addEvent:e.addEvent};return typeof window<`u`&&(window.playerjs=s),s})();
|
|
2
|
+
//# sourceMappingURL=main.iife.js.map
|