@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.d.cts CHANGED
@@ -1,203 +1,215 @@
1
+ //#region src/types.d.ts
1
2
  interface PlayerEvents {
2
- READY: 'ready';
3
- PLAY: 'play';
4
- PAUSE: 'pause';
5
- ENDED: 'ended';
6
- TIMEUPDATE: 'timeupdate';
7
- PROGRESS: 'progress';
8
- SEEKED: 'seeked';
9
- ERROR: 'error';
10
- FULLSCREEN_CHANGE: 'fullscreenChange';
11
- PIP_CHANGE: 'pipChange';
12
- PLAYBACK_RATE_CHANGE: 'playbackRateChange';
13
- AUDIO_CHANGE: 'audioChange';
14
- QUALITY_CHANGE: 'qualityChange';
15
- VOLUME_CHANGE: 'volumeChange';
16
- all(): string[];
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
- PLAY: 'play';
20
- PAUSE: 'pause';
21
- GETPAUSED: 'getPaused';
22
- MUTE: 'mute';
23
- UNMUTE: 'unmute';
24
- GETMUTED: 'getMuted';
25
- SETVOLUME: 'setVolume';
26
- GETVOLUME: 'getVolume';
27
- GETDURATION: 'getDuration';
28
- SETCURRENTTIME: 'setCurrentTime';
29
- GETCURRENTTIME: 'getCurrentTime';
30
- SETLOOP: 'setLoop';
31
- GETLOOP: 'getLoop';
32
- SETPLAYBACKRATE: 'setPlaybackRate';
33
- GETPLAYBACKRATE: 'getPlaybackRate';
34
- REMOVEEVENTLISTENER: 'removeEventListener';
35
- ADDEVENTLISTENER: 'addEventListener';
36
- all(): string[];
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
- EVENTS: PlayerEvents;
40
- POST_MESSAGE: boolean;
41
- METHODS: PlayerMethods;
42
- DEBUG: boolean;
43
- VERSION: string;
44
- CONTEXT: string;
45
- isString(obj: any): obj is string;
46
- has(obj: object, key: string): boolean;
47
- addEvent(elem: any, type: string, eventHandle: (e: any) => void): void;
48
- isNone(obj: any): obj is null | undefined;
49
- assert(test: any, msg?: string): asserts test;
50
- generateUUID(): string;
51
- isArray(obj: any): obj is any[];
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
- method?: string;
55
- value?: any;
56
- context?: string;
57
- version?: string;
58
- listener?: string;
59
- event?: string;
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
- event: string;
63
- value: {
64
- src: string;
65
- events?: string[];
66
- methods?: string[];
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
- events: string[];
75
- methods: string[];
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
- private data;
82
- constructor();
83
- has(event: string, id?: string): boolean;
84
- add(id: string, event: string, cb: EventCallback, ctx?: any, one?: boolean): void;
85
- execute(event: string, id?: string, data?: any, ctx?: any): boolean;
86
- on(id: string, event: string, cb: EventCallback, ctx?: any): void;
87
- one(id: string, event: string, cb: EventCallback, ctx?: any): void;
88
- off(event: string, cb?: EventCallback): string[];
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
- READIED: string[];
93
- elem: HTMLIFrameElement;
94
- debug: boolean;
95
- origin: string;
96
- keeper: Keeper;
97
- isReady: boolean;
98
- queue: PlayerData[];
99
- events: string[];
100
- methods: string[];
101
- loaded?: boolean;
102
- constructor(elem: string | HTMLIFrameElement, debug?: boolean);
103
- send(data: PlayerData, callback?: MethodCallback, ctx?: any): boolean;
104
- receive(e: MessageEvent): boolean;
105
- ready(data: ReadyData): boolean;
106
- on(event: string, callback: EventCallback, ctx?: any): boolean;
107
- off(event: string, callback?: EventCallback): boolean;
108
- supports(evtOrMethod: 'event' | 'method', names: string | string[]): boolean;
109
- play?(): Promise<void>;
110
- pause?(): Promise<void>;
111
- mute?(): Promise<void>;
112
- unmute?(): Promise<void>;
113
- getPaused?(): GetMethodPromise<boolean>;
114
- getPaused?(callback: MethodCallback): void;
115
- getMuted?(): GetMethodPromise<boolean>;
116
- getMuted?(callback: MethodCallback): void;
117
- getVolume?(): GetMethodPromise<number>;
118
- getVolume?(callback: MethodCallback): void;
119
- getDuration?(): GetMethodPromise<number>;
120
- getDuration?(callback: MethodCallback): void;
121
- getCurrentTime?(): GetMethodPromise<number>;
122
- getCurrentTime?(callback: MethodCallback): void;
123
- getLoop?(): GetMethodPromise<boolean>;
124
- getLoop?(callback: MethodCallback): void;
125
- getPlaybackRate?(): GetMethodPromise<number>;
126
- getPlaybackRate?(callback: MethodCallback): void;
127
- setVolume?(volume: number): SetMethodPromise;
128
- setCurrentTime?(time: number): SetMethodPromise;
129
- setLoop?(loop: boolean): SetMethodPromise;
130
- setPlaybackRate?(rate: number): SetMethodPromise;
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
- isReady: boolean;
135
- origin: string;
136
- methods: {
137
- [method: string]: Function;
138
- };
139
- supported: SupportedFeatures;
140
- eventListeners: {
141
- [event: string]: (string | null)[];
142
- };
143
- reject: boolean;
144
- constructor(events?: string[], methods?: string[]);
145
- receive(e: MessageEvent): boolean;
146
- get(method: string, value: any, listener: string | null): boolean;
147
- on(event: string, callback: Function): void;
148
- send(event: string, value?: any, listener?: string | null): boolean;
149
- emit(event: string, value?: any): boolean;
150
- ready(): void;
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
- receiver: Receiver;
155
- constructor();
156
- init(): void;
157
- ready(): void;
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
- on(event: string, callback: () => void): void;
162
- play(): void;
163
- pause(): void;
164
- paused(): boolean;
165
- currentTime(time?: number): number;
166
- duration(): number;
167
- volume(vol?: number): number;
168
- loop(loop?: boolean): boolean;
169
- playbackRate(rate?: number): number;
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
- receiver: Receiver;
173
- constructor(player: VideoJSPlayer);
174
- init(player: VideoJSPlayer): void;
175
- ready(): void;
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
- receiver: Receiver;
180
- constructor(video: HTMLVideoElement);
181
- init(video: HTMLVideoElement): void;
182
- ready(): void;
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
- Player: typeof Player;
187
- Receiver: typeof Receiver;
188
- MockAdapter: typeof MockAdapter;
189
- VideoJSAdapter: typeof VideoJSAdapter;
190
- HTML5Adapter: typeof HTML5Adapter;
191
- CONTEXT: string;
192
- VERSION: string;
193
- METHODS: PlayerMethods;
194
- addEvent: typeof core.addEvent;
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
- interface Window {
199
- playerjs: PlayerJS;
200
- }
210
+ interface Window {
211
+ playerjs: PlayerJS;
212
+ }
201
213
  }
202
-
203
- export { playerjs as default };
214
+ export = playerjs;
215
+ //# sourceMappingURL=main.d.cts.map
@@ -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