@gumlet/player.js 3.0.3 → 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,206 +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
- private logger;
96
- origin: string;
97
- keeper: Keeper;
98
- isReady: boolean;
99
- queue: PlayerData[];
100
- events: string[];
101
- methods: string[];
102
- loaded?: boolean;
103
- constructor(elem: string | HTMLIFrameElement, debug?: boolean);
104
- send(data: PlayerData, callback?: MethodCallback, ctx?: any): boolean;
105
- receive(e: MessageEvent): boolean;
106
- ready(data: ReadyData): boolean;
107
- on(event: string, callback: EventCallback, ctx?: any): boolean;
108
- off(event: string, callback?: EventCallback): boolean;
109
- supports(evtOrMethod: 'event' | 'method', names: string | string[]): boolean;
110
- play?(): Promise<void>;
111
- pause?(): Promise<void>;
112
- mute?(): Promise<void>;
113
- unmute?(): Promise<void>;
114
- getPaused?(): GetMethodPromise<boolean>;
115
- getPaused?(callback: MethodCallback): void;
116
- getMuted?(): GetMethodPromise<boolean>;
117
- getMuted?(callback: MethodCallback): void;
118
- getVolume?(): GetMethodPromise<number>;
119
- getVolume?(callback: MethodCallback): void;
120
- getDuration?(): GetMethodPromise<number>;
121
- getDuration?(callback: MethodCallback): void;
122
- getCurrentTime?(): GetMethodPromise<number>;
123
- getCurrentTime?(callback: MethodCallback): void;
124
- getLoop?(): GetMethodPromise<boolean>;
125
- getLoop?(callback: MethodCallback): void;
126
- getPlaybackRate?(): GetMethodPromise<number>;
127
- getPlaybackRate?(callback: MethodCallback): void;
128
- setVolume?(volume: number): SetMethodPromise;
129
- setCurrentTime?(time: number): SetMethodPromise;
130
- setLoop?(loop: boolean): SetMethodPromise;
131
- 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;
132
136
  }
133
-
137
+ //#endregion
138
+ //#region src/receiver.d.ts
134
139
  declare class Receiver {
135
- isReady: boolean;
136
- origin: string;
137
- methods: {
138
- [method: string]: Function;
139
- };
140
- supported: SupportedFeatures;
141
- eventListeners: {
142
- [event: string]: (string | null)[];
143
- };
144
- reject: boolean;
145
- debug: boolean;
146
- private logger;
147
- constructor(events?: string[], methods?: string[], debug?: boolean);
148
- receive(e: MessageEvent): boolean;
149
- get(method: string, value: any, listener: string | null): boolean;
150
- on(event: string, callback: Function): void;
151
- send(event: string, value?: any, listener?: string | null): boolean;
152
- emit(event: string, value?: any): boolean;
153
- 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;
154
159
  }
155
-
160
+ //#endregion
161
+ //#region src/adapters/mock.d.ts
156
162
  declare class MockAdapter {
157
- receiver: Receiver;
158
- constructor();
159
- init(): void;
160
- ready(): void;
163
+ receiver: Receiver;
164
+ constructor();
165
+ init(): void;
166
+ ready(): void;
161
167
  }
162
-
168
+ //#endregion
169
+ //#region src/adapters/video.d.ts
163
170
  interface VideoJSPlayer {
164
- on(event: string, callback: () => void): void;
165
- play(): void;
166
- pause(): void;
167
- paused(): boolean;
168
- currentTime(time?: number): number;
169
- duration(): number;
170
- volume(vol?: number): number;
171
- loop(loop?: boolean): boolean;
172
- 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;
173
180
  }
174
181
  declare class VideoJSAdapter {
175
- receiver: Receiver;
176
- constructor(player: VideoJSPlayer);
177
- init(player: VideoJSPlayer): void;
178
- ready(): void;
182
+ receiver: Receiver;
183
+ constructor(player: VideoJSPlayer);
184
+ init(player: VideoJSPlayer): void;
185
+ ready(): void;
179
186
  }
180
-
187
+ //#endregion
188
+ //#region src/adapters/html.d.ts
181
189
  declare class HTML5Adapter {
182
- receiver: Receiver;
183
- constructor(video: HTMLVideoElement);
184
- init(video: HTMLVideoElement): void;
185
- ready(): void;
190
+ receiver: Receiver;
191
+ constructor(video: HTMLVideoElement);
192
+ init(video: HTMLVideoElement): void;
193
+ ready(): void;
186
194
  }
187
-
195
+ //#endregion
196
+ //#region src/main.d.ts
188
197
  interface PlayerJS {
189
- Player: typeof Player;
190
- Receiver: typeof Receiver;
191
- MockAdapter: typeof MockAdapter;
192
- VideoJSAdapter: typeof VideoJSAdapter;
193
- HTML5Adapter: typeof HTML5Adapter;
194
- CONTEXT: string;
195
- VERSION: string;
196
- METHODS: PlayerMethods;
197
- 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;
198
207
  }
199
208
  declare const playerjs: PlayerJS;
200
209
  declare global {
201
- interface Window {
202
- playerjs: PlayerJS;
203
- }
210
+ interface Window {
211
+ playerjs: PlayerJS;
212
+ }
204
213
  }
205
-
206
- 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