@gcorevideo/player 2.20.3 → 2.20.5
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/assets/error-screen/error_screen.ejs +3 -1
- package/dist/core.js +436 -210
- package/dist/index.css +1223 -1223
- package/dist/index.js +580 -392
- package/dist/player.d.ts +10 -0
- package/dist/plugins/index.css +754 -754
- package/dist/plugins/index.js +122 -163
- package/docs/api/player.contextmenupluginsettings.label.md +3 -0
- package/docs/api/player.contextmenupluginsettings.md +8 -3
- package/docs/api/player.contextmenupluginsettings.preventshowcontextmenu.md +3 -0
- package/docs/api/player.contextmenupluginsettings.url.md +3 -0
- package/docs/api/player.md +6 -2
- package/docs/api/player.multicamera._constructor_.md +3 -0
- package/docs/api/player.multicamera.activebyid.md +3 -0
- package/docs/api/player.multicamera.attributes.md +3 -0
- package/docs/api/player.multicamera.bindevents.md +3 -0
- package/docs/api/player.multicamera.events.md +3 -0
- package/docs/api/player.multicamera.getcameraslist.md +3 -0
- package/docs/api/player.multicamera.getcurrentcamera.md +3 -0
- package/docs/api/player.multicamera.md +28 -1
- package/docs/api/player.multicamera.name.md +3 -0
- package/docs/api/player.multicamera.render.md +3 -0
- package/docs/api/player.multicamera.supportedversion.md +3 -0
- package/docs/api/player.multicamera.template.md +3 -0
- package/docs/api/player.multicamera.unbindevents.md +3 -0
- package/docs/api/player.multicamera.version.md +3 -0
- package/docs/api/player.volumefadeevents.md +7 -0
- package/docs/api/player.zeptoresult.md +1 -0
- package/lib/Player.d.ts +5 -3
- package/lib/Player.d.ts.map +1 -1
- package/lib/Player.js +32 -8
- package/lib/internal.types.d.ts +7 -7
- package/lib/internal.types.d.ts.map +1 -1
- package/lib/playback/BasePlayback.d.ts +11 -0
- package/lib/playback/BasePlayback.d.ts.map +1 -0
- package/lib/playback/BasePlayback.js +33 -0
- package/lib/playback/dash-playback/DashPlayback.d.ts +3 -2
- package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
- package/lib/playback/dash-playback/DashPlayback.js +7 -7
- package/lib/playback/hls-playback/HlsPlayback.d.ts +2 -2
- package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
- package/lib/playback/hls-playback/HlsPlayback.js +8 -5
- package/lib/playback/utils.d.ts +2 -0
- package/lib/playback/utils.d.ts.map +1 -0
- package/lib/playback/utils.js +1 -0
- package/lib/playback.types.d.ts +10 -3
- package/lib/playback.types.d.ts.map +1 -1
- package/lib/playback.types.js +3 -3
- package/lib/plugins/context-menu/ContextMenu.d.ts +4 -0
- package/lib/plugins/context-menu/ContextMenu.d.ts.map +1 -1
- package/lib/plugins/context-menu/ContextMenu.js +1 -2
- package/lib/plugins/error-screen/ErrorScreen.d.ts +39 -24
- package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
- package/lib/plugins/error-screen/ErrorScreen.js +70 -136
- package/lib/plugins/media-control/MediaControl.d.ts +1 -1
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +7 -5
- package/lib/plugins/multi-camera/MultiCamera.d.ts +1 -0
- package/lib/plugins/multi-camera/MultiCamera.d.ts.map +1 -1
- package/lib/plugins/multi-camera/MultiCamera.js +5 -5
- package/lib/plugins/poster/Poster.js +1 -1
- package/lib/plugins/seek-time/SeekTime.js +1 -1
- package/lib/plugins/share/Share.js +1 -1
- package/lib/plugins/source-controller/SourceController.d.ts +2 -1
- package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
- package/lib/plugins/source-controller/SourceController.js +12 -6
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts +2 -1
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +19 -3
- package/lib/plugins/volume-fade/VolumeFade.d.ts +4 -0
- package/lib/plugins/volume-fade/VolumeFade.d.ts.map +1 -1
- package/lib/plugins/volume-fade/VolumeFade.js +4 -0
- package/lib/testUtils.d.ts +66 -2
- package/lib/testUtils.d.ts.map +1 -1
- package/lib/testUtils.js +95 -2
- package/lib/types.d.ts +9 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/utils/types.d.ts +1 -0
- package/lib/utils/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/release_notes +297 -0
- package/src/Player.ts +103 -48
- package/src/__tests__/Player.test.ts +25 -4
- package/src/internal.types.ts +86 -79
- package/src/playback/BasePlayback.ts +41 -0
- package/src/playback/dash-playback/DashPlayback.ts +11 -15
- package/src/playback/hls-playback/HlsPlayback.ts +7 -5
- package/src/playback/utils.ts +2 -0
- package/src/playback.types.ts +11 -3
- package/src/plugins/context-menu/ContextMenu.ts +5 -2
- package/src/plugins/error-screen/ErrorScreen.ts +121 -195
- package/src/plugins/error-screen/__tests__/ErrorScreen.test.ts +113 -0
- package/src/plugins/error-screen/__tests__/__snapshots__/ErrorScreen.test.ts.snap +20 -0
- package/src/plugins/level-selector/__tests__/LevelSelector.test.ts +32 -57
- package/src/plugins/media-control/MediaControl.ts +8 -5
- package/src/plugins/multi-camera/MultiCamera.ts +5 -5
- package/src/plugins/poster/Poster.ts +1 -1
- package/src/plugins/seek-time/SeekTime.ts +1 -1
- package/src/plugins/share/Share.ts +1 -1
- package/src/plugins/source-controller/SourceController.ts +20 -14
- package/src/plugins/source-controller/__tests__/SourceController.test.ts +29 -46
- package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +20 -3
- package/src/plugins/volume-fade/VolumeFade.ts +4 -0
- package/src/testUtils.ts +100 -3
- package/src/types.ts +11 -1
- package/src/utils/types.ts +1 -0
- package/temp/player.api.json +24 -24
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Events as ClapprEvents, CorePlugin, } from '@clappr/core';
|
|
2
|
-
import { PlaybackErrorCode
|
|
2
|
+
import { PlaybackErrorCode } from '../../playback.types.js';
|
|
3
3
|
import { trace } from '@gcorevideo/utils';
|
|
4
4
|
import { SpinnerEvents } from '../spinner-three-bounce/SpinnerThreeBounce.js';
|
|
5
5
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
@@ -100,10 +100,15 @@ export class SourceController extends CorePlugin {
|
|
|
100
100
|
*/
|
|
101
101
|
bindEvents() {
|
|
102
102
|
super.bindEvents();
|
|
103
|
-
this.listenTo(this.core, ClapprEvents.
|
|
103
|
+
this.listenTo(this.core, ClapprEvents.CORE_READY, this.onCoreReady);
|
|
104
|
+
this.listenTo(this.core, ClapprEvents.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);
|
|
104
105
|
}
|
|
105
|
-
|
|
106
|
-
trace(`${T}
|
|
106
|
+
onCoreReady() {
|
|
107
|
+
trace(`${T} onCoreReady`);
|
|
108
|
+
this.core.getPlugin('error_screen')?.disable(); // TODO test
|
|
109
|
+
}
|
|
110
|
+
onActiveContainerChanged() {
|
|
111
|
+
trace(`${T} onActiveContainerChanged`, {
|
|
107
112
|
retrying: this.active,
|
|
108
113
|
currentSource: this.sourcesList[this.currentSourceIndex],
|
|
109
114
|
});
|
|
@@ -119,7 +124,7 @@ export class SourceController extends CorePlugin {
|
|
|
119
124
|
this.bindContainerEventListeners();
|
|
120
125
|
if (this.active) {
|
|
121
126
|
this.core.activeContainer?.getPlugin('poster_custom')?.disable();
|
|
122
|
-
spinner?.show();
|
|
127
|
+
spinner?.show(0);
|
|
123
128
|
}
|
|
124
129
|
}
|
|
125
130
|
bindContainerEventListeners() {
|
|
@@ -136,7 +141,7 @@ export class SourceController extends CorePlugin {
|
|
|
136
141
|
switch (error.code) {
|
|
137
142
|
case PlaybackErrorCode.MediaSourceUnavailable:
|
|
138
143
|
this.core.activeContainer?.getPlugin('poster_custom')?.disable();
|
|
139
|
-
this.retryPlayback();
|
|
144
|
+
setTimeout(() => this.retryPlayback(), 0);
|
|
140
145
|
break;
|
|
141
146
|
// TODO handle other errors
|
|
142
147
|
default:
|
|
@@ -166,6 +171,7 @@ export class SourceController extends CorePlugin {
|
|
|
166
171
|
currentSource: this.sourcesList[this.currentSourceIndex],
|
|
167
172
|
});
|
|
168
173
|
this.active = true;
|
|
174
|
+
this.core.activeContainer?.getPlugin('spinner')?.show(0);
|
|
169
175
|
this.getNextMediaSource().then((nextSource) => {
|
|
170
176
|
trace(`${T} retryPlayback syncing...`, {
|
|
171
177
|
nextSource,
|
|
@@ -34,6 +34,7 @@ export declare class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
34
34
|
'data-spinner': string;
|
|
35
35
|
class: string;
|
|
36
36
|
};
|
|
37
|
+
private hideTimeout;
|
|
37
38
|
private showTimeout;
|
|
38
39
|
private template;
|
|
39
40
|
private hasFatalError;
|
|
@@ -47,7 +48,7 @@ export declare class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
47
48
|
/**
|
|
48
49
|
* Shows the spinner
|
|
49
50
|
*/
|
|
50
|
-
show(): void;
|
|
51
|
+
show(delay?: number): void;
|
|
51
52
|
/**
|
|
52
53
|
* Hides the spinner
|
|
53
54
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpinnerThreeBounce.d.ts","sourceRoot":"","sources":["../../../src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAA0B,iBAAiB,EAAY,MAAM,cAAc,CAAC;AAK9F,OAAO,mDAAmD,CAAC;AAM3D;;GAEG;AACH,oBAAY,aAAa;IACvB;;;OAGG;IACH,IAAI,yBAAyB;CAC9B;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,CAAC,QAAQ,CAAyB;IAEzC,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,YAAY,CAAQ;gBAEhB,SAAS,EAAE,SAAS;IAWhC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,OAAO;IAef;;OAEG;IACH,IAAI;
|
|
1
|
+
{"version":3,"file":"SpinnerThreeBounce.d.ts","sourceRoot":"","sources":["../../../src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAA0B,iBAAiB,EAAY,MAAM,cAAc,CAAC;AAK9F,OAAO,mDAAmD,CAAC;AAM3D;;GAEG;AACH,oBAAY,aAAa;IACvB;;;OAGG;IACH,IAAI,yBAAyB;CAC9B;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,CAAC,WAAW,CAAwB;IAE3C,OAAO,CAAC,QAAQ,CAAyB;IAEzC,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,YAAY,CAAQ;gBAEhB,SAAS,EAAE,SAAS;IAWhC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,OAAO;IAef;;OAEG;IACH,IAAI,CAAC,KAAK,SAAM;IAchB;;OAEG;IACH,IAAI;IAaJ;;OAEG;IACM,MAAM;CAmBhB"}
|
|
@@ -47,6 +47,7 @@ export class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
47
47
|
'class': 'spinner-three-bounce'
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
|
+
hideTimeout = null;
|
|
50
51
|
showTimeout = null;
|
|
51
52
|
template = template(spinnerHTML);
|
|
52
53
|
hasFatalError = false;
|
|
@@ -102,8 +103,18 @@ export class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
102
103
|
/**
|
|
103
104
|
* Shows the spinner
|
|
104
105
|
*/
|
|
105
|
-
show() {
|
|
106
|
-
|
|
106
|
+
show(delay = 300) {
|
|
107
|
+
trace(`${T} show`);
|
|
108
|
+
if (this.showTimeout === null) {
|
|
109
|
+
if (this.hideTimeout !== null) {
|
|
110
|
+
clearTimeout(this.hideTimeout);
|
|
111
|
+
this.hideTimeout = null;
|
|
112
|
+
}
|
|
113
|
+
this.showTimeout = setTimeout(() => {
|
|
114
|
+
this.showTimeout = null;
|
|
115
|
+
this.$el.show();
|
|
116
|
+
}, delay);
|
|
117
|
+
}
|
|
107
118
|
}
|
|
108
119
|
/**
|
|
109
120
|
* Hides the spinner
|
|
@@ -113,7 +124,12 @@ export class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
113
124
|
clearTimeout(this.showTimeout);
|
|
114
125
|
this.showTimeout = null;
|
|
115
126
|
}
|
|
116
|
-
this
|
|
127
|
+
this.hideTimeout = setTimeout(() => {
|
|
128
|
+
this.hideTimeout = null;
|
|
129
|
+
if (this.showTimeout === null) {
|
|
130
|
+
this.$el.hide();
|
|
131
|
+
}
|
|
132
|
+
}, 0);
|
|
117
133
|
}
|
|
118
134
|
/**
|
|
119
135
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VolumeFade.d.ts","sourceRoot":"","sources":["../../../src/plugins/volume-fade/VolumeFade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiC,MAAM,cAAc,CAAC;AAK3E,oBAAY,gBAAgB;IAC1B,IAAI,qBAAqB;CAC1B;AAED;;;GAGG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,kBAAkB,CAAK;IAE/B,OAAO,CAAC,SAAS,CAA0B;IAE3C,OAAO,CAAC,KAAK,CAAK;IAElB,OAAO,CAAC,QAAQ,CAAwB;IAExC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IA0BhB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,OAAO;CAGhB"}
|
|
1
|
+
{"version":3,"file":"VolumeFade.d.ts","sourceRoot":"","sources":["../../../src/plugins/volume-fade/VolumeFade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiC,MAAM,cAAc,CAAC;AAK3E;;;GAGG;AACH,oBAAY,gBAAgB;IAC1B,IAAI,qBAAqB;CAC1B;AAED;;;GAGG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,kBAAkB,CAAK;IAE/B,OAAO,CAAC,SAAS,CAA0B;IAE3C,OAAO,CAAC,KAAK,CAAK;IAElB,OAAO,CAAC,QAAQ,CAAwB;IAExC;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IA0BhB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,OAAO;CAGhB"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { UICorePlugin, Events, Browser, $ } from '@clappr/core';
|
|
2
2
|
import { reportError } from '@gcorevideo/utils';
|
|
3
|
+
/**
|
|
4
|
+
* Events emitted by the VolumeFade plugin.
|
|
5
|
+
* @beta
|
|
6
|
+
*/
|
|
3
7
|
export var VolumeFadeEvents;
|
|
4
8
|
(function (VolumeFadeEvents) {
|
|
5
9
|
VolumeFadeEvents["FADE"] = "core:volume:fade";
|
package/lib/testUtils.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Events from 'eventemitter3';
|
|
2
2
|
/**
|
|
3
3
|
* @internal
|
|
4
|
+
* @deprecated
|
|
5
|
+
* TODO use createMockPlayback() instead
|
|
4
6
|
*/
|
|
5
|
-
export declare class _MockPlayback extends
|
|
7
|
+
export declare class _MockPlayback extends Events {
|
|
6
8
|
protected options: any;
|
|
7
9
|
readonly i18n: any;
|
|
8
10
|
protected playerError?: any | undefined;
|
|
@@ -31,4 +33,66 @@ export declare class _MockPlayback extends EventLite {
|
|
|
31
33
|
onResize(): boolean;
|
|
32
34
|
trigger(event: string, ...args: any[]): void;
|
|
33
35
|
}
|
|
36
|
+
export declare function createMockCore(options?: Record<string, unknown>, container?: any): Events<string | symbol, any> & {
|
|
37
|
+
el: HTMLDivElement;
|
|
38
|
+
$el: {
|
|
39
|
+
0: HTMLDivElement;
|
|
40
|
+
append: import("vitest").Mock<(...args: any[]) => any>;
|
|
41
|
+
};
|
|
42
|
+
activePlayback: any;
|
|
43
|
+
activeContainer: any;
|
|
44
|
+
options: {
|
|
45
|
+
[x: string]: unknown;
|
|
46
|
+
};
|
|
47
|
+
configure: import("vitest").Mock<(...args: any[]) => any>;
|
|
48
|
+
getPlugin: import("vitest").Mock<(...args: any[]) => any>;
|
|
49
|
+
load: import("vitest").Mock<(...args: any[]) => any>;
|
|
50
|
+
};
|
|
51
|
+
export declare function createMockPlugin(): Events<string | symbol, any> & {
|
|
52
|
+
enable: import("vitest").Mock<(...args: any[]) => any>;
|
|
53
|
+
disable: import("vitest").Mock<(...args: any[]) => any>;
|
|
54
|
+
};
|
|
55
|
+
export declare function createSpinnerPlugin(): Events<string | symbol, any> & {
|
|
56
|
+
enable: import("vitest").Mock<(...args: any[]) => any>;
|
|
57
|
+
disable: import("vitest").Mock<(...args: any[]) => any>;
|
|
58
|
+
} & {
|
|
59
|
+
show: import("vitest").Mock<(...args: any[]) => any>;
|
|
60
|
+
hide: import("vitest").Mock<(...args: any[]) => any>;
|
|
61
|
+
};
|
|
62
|
+
export declare function createMockPlayback(name?: string): Events<string | symbol, any> & {
|
|
63
|
+
name: string;
|
|
64
|
+
currentLevel: number;
|
|
65
|
+
levels: never[];
|
|
66
|
+
consent(): void;
|
|
67
|
+
play(): void;
|
|
68
|
+
pause(): void;
|
|
69
|
+
stop(): void;
|
|
70
|
+
destroy(): void;
|
|
71
|
+
seek(): void;
|
|
72
|
+
seekPercentage(): void;
|
|
73
|
+
getDuration(): 100;
|
|
74
|
+
enterPiP(): void;
|
|
75
|
+
exitPiP(): void;
|
|
76
|
+
getPlaybackType(): "live";
|
|
77
|
+
getStartTimeOffset(): 0;
|
|
78
|
+
getCurrentTime(): 0;
|
|
79
|
+
isHighDefinitionInUse(): false;
|
|
80
|
+
mute(): void;
|
|
81
|
+
unmute(): void;
|
|
82
|
+
volume(): void;
|
|
83
|
+
configure(): void;
|
|
84
|
+
attemptAutoPlay(): true;
|
|
85
|
+
canAutoPlay(): true;
|
|
86
|
+
onResize(): true;
|
|
87
|
+
trigger(event: string, ...args: any[]): void;
|
|
88
|
+
};
|
|
89
|
+
export declare function createMockContainer(playback?: any): Events<string | symbol, any> & {
|
|
90
|
+
$el: {
|
|
91
|
+
html: import("vitest").Mock<(...args: any[]) => any>;
|
|
92
|
+
0: HTMLDivElement;
|
|
93
|
+
};
|
|
94
|
+
el: HTMLDivElement;
|
|
95
|
+
getPlugin: import("vitest").Mock<(...args: any[]) => any>;
|
|
96
|
+
playback: any;
|
|
97
|
+
};
|
|
34
98
|
//# sourceMappingURL=testUtils.d.ts.map
|
package/lib/testUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"testUtils.d.ts","sourceRoot":"","sources":["../src/testUtils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,eAAe,CAAA;AAElC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,MAAM;IAErC,SAAS,CAAC,OAAO,EAAE,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,GAAG;IAClB,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG;gBAFjB,OAAO,EAAE,GAAG,EACb,IAAI,EAAE,GAAG,EACR,WAAW,CAAC,EAAE,GAAG,YAAA;IAK7B,IAAI,IAAI,WAEP;IAED,OAAO;IAEP,IAAI;IAEJ,KAAK;IAEL,IAAI;IAEJ,OAAO;IAEP,IAAI;IAEJ,cAAc;IAEd,WAAW;IAIX,QAAQ;IAER,OAAO;IAEP,eAAe;IAIf,kBAAkB;IAIlB,cAAc;IAId,qBAAqB;IAIrB,IAAI;IAEJ,MAAM;IAEN,MAAM;IAEN,SAAS;IAET,eAAe;IAIf,WAAW;IAIX,QAAQ;IAIR,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAGtC;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,SAAS,GAAE,GAA2B;;;;;;;;;;;;;;EAiB3G;AAED,wBAAgB,gBAAgB;;;EAK/B;AAED,wBAAgB,mBAAmB;;;;;;EAKlC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;mBA2C7B,MAAM,WAAW,GAAG,EAAE;EAIxC;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,GAAE,GAA0B;;;;;;;;EAWvE"}
|
package/lib/testUtils.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import Events from 'eventemitter3';
|
|
2
|
+
import { vi } from 'vitest';
|
|
2
3
|
/**
|
|
3
4
|
* @internal
|
|
5
|
+
* @deprecated
|
|
6
|
+
* TODO use createMockPlayback() instead
|
|
4
7
|
*/
|
|
5
|
-
export class _MockPlayback extends
|
|
8
|
+
export class _MockPlayback extends Events {
|
|
6
9
|
options;
|
|
7
10
|
i18n;
|
|
8
11
|
playerError;
|
|
@@ -56,3 +59,93 @@ export class _MockPlayback extends EventLite {
|
|
|
56
59
|
this.emit(event, ...args);
|
|
57
60
|
}
|
|
58
61
|
}
|
|
62
|
+
export function createMockCore(options = {}, container = createMockContainer()) {
|
|
63
|
+
const el = document.createElement('div');
|
|
64
|
+
return Object.assign(new Events(), {
|
|
65
|
+
el,
|
|
66
|
+
$el: {
|
|
67
|
+
[0]: el,
|
|
68
|
+
append: vi.fn(),
|
|
69
|
+
},
|
|
70
|
+
activePlayback: container.playback,
|
|
71
|
+
activeContainer: container,
|
|
72
|
+
options: {
|
|
73
|
+
...options,
|
|
74
|
+
},
|
|
75
|
+
configure: vi.fn(),
|
|
76
|
+
getPlugin: vi.fn(),
|
|
77
|
+
load: vi.fn(),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
export function createMockPlugin() {
|
|
81
|
+
return Object.assign(new Events(), {
|
|
82
|
+
enable: vi.fn(),
|
|
83
|
+
disable: vi.fn(),
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
export function createSpinnerPlugin() {
|
|
87
|
+
return Object.assign(createMockPlugin(), {
|
|
88
|
+
show: vi.fn(),
|
|
89
|
+
hide: vi.fn(),
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
export function createMockPlayback(name = 'mock') {
|
|
93
|
+
const emitter = new Events();
|
|
94
|
+
return Object.assign(emitter, {
|
|
95
|
+
name,
|
|
96
|
+
currentLevel: -1,
|
|
97
|
+
levels: [],
|
|
98
|
+
consent() { },
|
|
99
|
+
play() { },
|
|
100
|
+
pause() { },
|
|
101
|
+
stop() { },
|
|
102
|
+
destroy() { },
|
|
103
|
+
seek() { },
|
|
104
|
+
seekPercentage() { },
|
|
105
|
+
getDuration() {
|
|
106
|
+
return 100;
|
|
107
|
+
},
|
|
108
|
+
enterPiP() { },
|
|
109
|
+
exitPiP() { },
|
|
110
|
+
getPlaybackType() {
|
|
111
|
+
return 'live';
|
|
112
|
+
},
|
|
113
|
+
getStartTimeOffset() {
|
|
114
|
+
return 0;
|
|
115
|
+
},
|
|
116
|
+
getCurrentTime() {
|
|
117
|
+
return 0;
|
|
118
|
+
},
|
|
119
|
+
isHighDefinitionInUse() {
|
|
120
|
+
return false;
|
|
121
|
+
},
|
|
122
|
+
mute() { },
|
|
123
|
+
unmute() { },
|
|
124
|
+
volume() { },
|
|
125
|
+
configure() { },
|
|
126
|
+
attemptAutoPlay() {
|
|
127
|
+
return true;
|
|
128
|
+
},
|
|
129
|
+
canAutoPlay() {
|
|
130
|
+
return true;
|
|
131
|
+
},
|
|
132
|
+
onResize() {
|
|
133
|
+
return true;
|
|
134
|
+
},
|
|
135
|
+
trigger(event, ...args) {
|
|
136
|
+
emitter.emit(event, ...args);
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
export function createMockContainer(playback = createMockPlayback()) {
|
|
141
|
+
const el = document.createElement('div');
|
|
142
|
+
return Object.assign(new Events(), {
|
|
143
|
+
$el: {
|
|
144
|
+
html: vi.fn(),
|
|
145
|
+
[0]: el,
|
|
146
|
+
},
|
|
147
|
+
el,
|
|
148
|
+
getPlugin: vi.fn(),
|
|
149
|
+
playback,
|
|
150
|
+
});
|
|
151
|
+
}
|
package/lib/types.d.ts
CHANGED
|
@@ -49,12 +49,20 @@ export type MediaTransport = 'dash' | 'hls';
|
|
|
49
49
|
export type TransportPreference = MediaTransport;
|
|
50
50
|
/**
|
|
51
51
|
* @beta
|
|
52
|
-
* @see {@link https://clappr.github.io/classes/UIContainerPlugin.html},
|
|
52
|
+
* @see {@link https://clappr.github.io/classes/UIContainerPlugin.html},
|
|
53
|
+
* {@link https://clappr.github.io/classes/ContainerPlugin.html}
|
|
53
54
|
*/
|
|
54
55
|
export type PlayerPlugin = {
|
|
55
56
|
new (...args: any[]): unknown;
|
|
56
57
|
name: string;
|
|
57
58
|
};
|
|
59
|
+
export type PlayerPluginConstructor = CorePluginConstructor | ContainerPluginConstructor;
|
|
60
|
+
export type CorePluginConstructor = ((core: unknown) => PlayerPlugin) & {
|
|
61
|
+
type: 'core';
|
|
62
|
+
};
|
|
63
|
+
export type ContainerPluginConstructor = ((container: unknown) => PlayerPlugin) & {
|
|
64
|
+
type: 'container';
|
|
65
|
+
};
|
|
58
66
|
/**
|
|
59
67
|
* Configuration options for the player
|
|
60
68
|
*
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,qBAAqB,CAAA;AAE9D;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AAEvE;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,OAAO,CAAA;AAE1D;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,CAAA;AAEzC;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,CAAA;AAE3C;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAA;AAEhD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/types.d.ts
CHANGED
package/lib/utils/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gcorevideo/player",
|
|
3
|
-
"version": "2.20.
|
|
3
|
+
"version": "2.20.5",
|
|
4
4
|
"description": "Gcore JavaScript video player",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"@types/node": "^22.10.1",
|
|
43
43
|
"@types/sinonjs__fake-timers": "^8.1.5",
|
|
44
44
|
"assert": "^2.1.0",
|
|
45
|
+
"eventemitter3": "^5.0.1",
|
|
45
46
|
"jsdom": "^26.0.0",
|
|
46
47
|
"nodemon": "^3.1.9",
|
|
47
48
|
"rollup": "^4.27.4",
|
|
@@ -57,7 +58,6 @@
|
|
|
57
58
|
"@gcorevideo/utils": "^0.0.1",
|
|
58
59
|
"@sentry/types": "^8.47.0",
|
|
59
60
|
"dashjs": "^4.7.4",
|
|
60
|
-
"event-lite": "^1.0.0",
|
|
61
61
|
"hls.js": "^1.5.17",
|
|
62
62
|
"human-format": "^1.2.1",
|
|
63
63
|
"mousetrap": "^1.6.5",
|