@gcorevideo/player 2.12.3 → 2.14.1

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.
Files changed (42) hide show
  1. package/dist/index.js +65 -8
  2. package/dist/player.d.ts +71 -11
  3. package/docs/api/player.errorlevel.md +15 -0
  4. package/docs/api/player.md +77 -0
  5. package/docs/api/player.mediatransport.md +1 -1
  6. package/docs/api/player.playbackerror.code.md +14 -0
  7. package/docs/api/player.playbackerror.description.md +14 -0
  8. package/docs/api/player.playbackerror.level.md +14 -0
  9. package/docs/api/player.playbackerror.md +116 -0
  10. package/docs/api/player.playbackerror.message.md +14 -0
  11. package/docs/api/player.playbackerrorcode.md +83 -0
  12. package/docs/api/player.playbackmodule.md +1 -1
  13. package/docs/api/player.playerconfig.md +2 -2
  14. package/docs/api/player.playerconfig.strings.md +1 -1
  15. package/docs/api/player.playerplugin.md +1 -1
  16. package/docs/api/player.timeposition.md +21 -0
  17. package/docs/api/player.timeprogress.md +20 -0
  18. package/docs/api/player.timeupdate.md +20 -0
  19. package/docs/api/player.timevalue.md +16 -0
  20. package/docs/api/player.transportpreference.md +1 -1
  21. package/lib/index.d.ts +1 -0
  22. package/lib/index.d.ts.map +1 -1
  23. package/lib/index.js +1 -0
  24. package/lib/playback.types.d.ts +7 -4
  25. package/lib/playback.types.d.ts.map +1 -1
  26. package/lib/testUtils.d.ts +34 -0
  27. package/lib/testUtils.d.ts.map +1 -0
  28. package/lib/testUtils.js +58 -0
  29. package/lib/types.d.ts +2 -2
  30. package/lib/types.d.ts.map +1 -1
  31. package/lib/utils/mediaSources.d.ts.map +1 -1
  32. package/lib/utils/mediaSources.js +4 -5
  33. package/package.json +1 -1
  34. package/src/__tests__/Player.test.ts +0 -5
  35. package/src/index.ts +1 -0
  36. package/src/playback.types.ts +7 -4
  37. package/src/testUtils.ts +80 -0
  38. package/src/types.ts +2 -2
  39. package/src/utils/__tests__/mediaSources.test.ts +0 -41
  40. package/src/utils/mediaSources.ts +5 -6
  41. package/temp/player.api.json +373 -11
  42. package/tsconfig.tsbuildinfo +1 -1
package/dist/index.js CHANGED
@@ -42163,13 +42163,13 @@ function canPlayHls(source, mimeType) {
42163
42163
  return HlsPlayback.canPlay(source, mimeType);
42164
42164
  }
42165
42165
 
42166
- function buildMediaSourcesList(sources, priorityTransport = 'auto') {
42167
- const [preferred, rest] = sources.reduce(priorityTransport === 'dash' || priorityTransport === 'auto'
42166
+ function buildMediaSourcesList(sources, priorityTransport = 'dash') {
42167
+ const [preferred, rest] = sources.reduce(priorityTransport === 'dash'
42168
42168
  ? (acc, item) => {
42169
42169
  if (canPlayDash(item.source, item.mimeType)) {
42170
42170
  acc[0].push(item);
42171
42171
  }
42172
- else if (canPlayHls(item.source, item.mimeType)) {
42172
+ else {
42173
42173
  acc[1].push(item);
42174
42174
  }
42175
42175
  return acc;
@@ -42178,7 +42178,7 @@ function buildMediaSourcesList(sources, priorityTransport = 'auto') {
42178
42178
  if (canPlayHls(item.source, item.mimeType)) {
42179
42179
  acc[0].push(item);
42180
42180
  }
42181
- else if (canPlayDash(item.source, item.mimeType)) {
42181
+ else {
42182
42182
  acc[1].push(item);
42183
42183
  }
42184
42184
  return acc;
@@ -42198,7 +42198,6 @@ function guessMimeType(s) {
42198
42198
  if (s.endsWith('.m3u8')) {
42199
42199
  return 'application/vnd.apple.mpegurl';
42200
42200
  }
42201
- throw new Error('Unrecognized media source type');
42202
42201
  }
42203
42202
 
42204
42203
  const T = 'GPlayer';
@@ -42568,12 +42567,70 @@ class Player {
42568
42567
  }
42569
42568
  }
42570
42569
 
42571
- var version$1 = "2.12.3";
42570
+ /**
42571
+ * @internal
42572
+ */
42573
+ class _MockPlayback extends EventLite {
42574
+ options;
42575
+ i18n;
42576
+ playerError;
42577
+ constructor(options, i18n, playerError) {
42578
+ super();
42579
+ this.options = options;
42580
+ this.i18n = i18n;
42581
+ this.playerError = playerError;
42582
+ }
42583
+ get name() {
42584
+ return 'mock';
42585
+ }
42586
+ consent() { }
42587
+ play() { }
42588
+ pause() { }
42589
+ stop() { }
42590
+ destroy() { }
42591
+ seek() { }
42592
+ seekPercentage() { }
42593
+ getDuration() {
42594
+ return 100;
42595
+ }
42596
+ enterPiP() { }
42597
+ exitPiP() { }
42598
+ getPlaybackType() {
42599
+ return 'live';
42600
+ }
42601
+ getStartTimeOffset() {
42602
+ return 0;
42603
+ }
42604
+ getCurrentTime() {
42605
+ return 0;
42606
+ }
42607
+ isHighDefinitionInUse() {
42608
+ return false;
42609
+ }
42610
+ mute() { }
42611
+ unmute() { }
42612
+ volume() { }
42613
+ configure() { }
42614
+ attemptAutoPlay() {
42615
+ return true;
42616
+ }
42617
+ canAutoPlay() {
42618
+ return true;
42619
+ }
42620
+ onResize() {
42621
+ return true;
42622
+ }
42623
+ trigger(event, ...args) {
42624
+ this.emit(event, ...args);
42625
+ }
42626
+ }
42627
+
42628
+ var version$1 = "2.14.1";
42572
42629
 
42573
42630
  var packages = {
42574
42631
  "": {
42575
42632
  name: "@gcorevideo/player",
42576
- version: "2.12.3",
42633
+ version: "2.14.1",
42577
42634
  license: "Apache-2.0",
42578
42635
  dependencies: {
42579
42636
  "@clappr/core": "^0.11.3",
@@ -46604,4 +46661,4 @@ function version() {
46604
46661
  };
46605
46662
  }
46606
46663
 
46607
- export { PlaybackErrorCode, Player, PlayerEvent, setTracer, version };
46664
+ export { PlaybackErrorCode, Player, PlayerEvent, _MockPlayback, setTracer, version };
package/dist/player.d.ts CHANGED
@@ -8,6 +8,7 @@
8
8
  * @packageDocumentation
9
9
  */
10
10
 
11
+ import EventLite from 'event-lite';
11
12
  import { setTracer } from '@gcorevideo/utils';
12
13
 
13
14
  /**
@@ -16,6 +17,11 @@ import { setTracer } from '@gcorevideo/utils';
16
17
  */
17
18
  export declare type DashSettings = Record<string, unknown>;
18
19
 
20
+ /**
21
+ * @beta
22
+ */
23
+ export declare type ErrorLevel = 'FATAL' | 'WARN' | 'INFO';
24
+
19
25
  /**
20
26
  * @beta
21
27
  */
@@ -24,12 +30,64 @@ export declare type LangTag = string;
24
30
  /**
25
31
  * @beta
26
32
  */
27
- export declare type MediaTransport = 'dash' | 'hls' | 'mpegts';
33
+ export declare type MediaTransport = 'dash' | 'hls';
34
+
35
+ /**
36
+ * @internal
37
+ */
38
+ export declare class _MockPlayback extends EventLite {
39
+ protected options: any;
40
+ readonly i18n: any;
41
+ protected playerError?: any | undefined;
42
+ constructor(options: any, i18n: any, playerError?: any | undefined);
43
+ get name(): string;
44
+ consent(): void;
45
+ play(): void;
46
+ pause(): void;
47
+ stop(): void;
48
+ destroy(): void;
49
+ seek(): void;
50
+ seekPercentage(): void;
51
+ getDuration(): number;
52
+ enterPiP(): void;
53
+ exitPiP(): void;
54
+ getPlaybackType(): string;
55
+ getStartTimeOffset(): number;
56
+ getCurrentTime(): number;
57
+ isHighDefinitionInUse(): boolean;
58
+ mute(): void;
59
+ unmute(): void;
60
+ volume(): void;
61
+ configure(): void;
62
+ attemptAutoPlay(): boolean;
63
+ canAutoPlay(): boolean;
64
+ onResize(): boolean;
65
+ trigger(event: string, ...args: any[]): void;
66
+ }
28
67
 
29
68
  /**
30
69
  * @beta
31
70
  */
32
- export declare type PlaybackModule = 'dash' | 'hls' | 'native';
71
+ export declare interface PlaybackError {
72
+ code: PlaybackErrorCode;
73
+ description: string;
74
+ level: ErrorLevel;
75
+ message: string;
76
+ }
77
+
78
+ /**
79
+ * @beta
80
+ */
81
+ export declare enum PlaybackErrorCode {
82
+ Generic = 0,
83
+ MediaSourceUnavailable = 1,
84
+ QualityLevelUnavailable = 2
85
+ }
86
+
87
+ /**
88
+ * @beta
89
+ */
90
+ export declare type PlaybackModule = 'dash' | 'hls' | 'html5_video';
33
91
 
34
92
  /**
35
93
  * Type of a stream playback
@@ -143,7 +201,8 @@ export declare class Player {
143
201
  private events;
144
202
  private buildCoreOptions;
145
203
  private configurePlaybacks;
146
- private selectMediaSource;
204
+ private buildMediaSourcesList;
205
+ private bindContainerEventListeners;
147
206
  }
148
207
 
149
208
  /**
@@ -228,7 +287,7 @@ export declare interface PlayerConfig extends Record<string, unknown> {
228
287
  playbackType?: PlaybackType;
229
288
  /**
230
289
  * Preferred transport protocol when multiple sources are available.
231
- * @defaultValue 'auto'
290
+ * @defaultValue 'dash'
232
291
  */
233
292
  priorityTransport?: TransportPreference;
234
293
  /**
@@ -238,7 +297,7 @@ export declare interface PlayerConfig extends Record<string, unknown> {
238
297
  /**
239
298
  * Localization strings for the player UI.
240
299
  */
241
- strings: TranslationSettings;
300
+ strings?: TranslationSettings;
242
301
  }
243
302
 
244
303
  /**
@@ -315,7 +374,7 @@ export declare interface PlayerMediaSourceDesc {
315
374
  */
316
375
  export declare type PlayerPlugin = {
317
376
  new (...args: any[]): unknown;
318
- type: 'core' | 'container';
377
+ name: string;
319
378
  };
320
379
 
321
380
  /**
@@ -332,7 +391,7 @@ export { setTracer }
332
391
 
333
392
  /**
334
393
  * For the plugin development
335
- * @internal
394
+ * @beta
336
395
  */
337
396
  export declare type TimePosition = {
338
397
  current: TimeValue;
@@ -341,7 +400,7 @@ export declare type TimePosition = {
341
400
 
342
401
  /**
343
402
  * For the plugin development
344
- * @internal
403
+ * @beta
345
404
  */
346
405
  export declare type TimeProgress = TimePosition & {
347
406
  start: number;
@@ -349,15 +408,16 @@ export declare type TimeProgress = TimePosition & {
349
408
 
350
409
  /**
351
410
  * For the plugin development
352
- * @internal
411
+ * @beta
353
412
  */
354
413
  export declare type TimeUpdate = TimePosition & {
355
414
  firstFragDateTime: number;
356
415
  };
357
416
 
358
417
  /**
418
+ * Playback time in seconds since the beginning of the stream (or a segment for the live streams)
359
419
  * For the plugin development
360
- * @internal
420
+ * @beta
361
421
  */
362
422
  export declare type TimeValue = number;
363
423
 
@@ -390,7 +450,7 @@ export declare type TranslationSettings = Partial<Record<LangTag, Record<Transla
390
450
  /**
391
451
  * @beta
392
452
  */
393
- export declare type TransportPreference = MediaTransport | 'auto';
453
+ export declare type TransportPreference = MediaTransport;
394
454
 
395
455
  /**
396
456
  * Version information about the gplayer and its main dependencies
@@ -0,0 +1,15 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [ErrorLevel](./player.errorlevel.md)
4
+
5
+ ## ErrorLevel type
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+
11
+ **Signature:**
12
+
13
+ ```typescript
14
+ export type ErrorLevel = 'FATAL' | 'WARN' | 'INFO';
15
+ ```
@@ -51,6 +51,17 @@ Description
51
51
  </th></tr></thead>
52
52
  <tbody><tr><td>
53
53
 
54
+ [PlaybackErrorCode](./player.playbackerrorcode.md)
55
+
56
+
57
+ </td><td>
58
+
59
+ **_(BETA)_**
60
+
61
+
62
+ </td></tr>
63
+ <tr><td>
64
+
54
65
  [PlayerEvent](./player.playerevent.md)
55
66
 
56
67
 
@@ -103,6 +114,17 @@ Description
103
114
  </th></tr></thead>
104
115
  <tbody><tr><td>
105
116
 
117
+ [PlaybackError](./player.playbackerror.md)
118
+
119
+
120
+ </td><td>
121
+
122
+ **_(BETA)_**
123
+
124
+
125
+ </td></tr>
126
+ <tr><td>
127
+
106
128
  [PlayerConfig](./player.playerconfig.md)
107
129
 
108
130
 
@@ -148,6 +170,17 @@ Description
148
170
  **_(BETA)_** [DASH.js settings](https://cdn.dashjs.org/latest/jsdoc/module-Settings.html)
149
171
 
150
172
 
173
+ </td></tr>
174
+ <tr><td>
175
+
176
+ [ErrorLevel](./player.errorlevel.md)
177
+
178
+
179
+ </td><td>
180
+
181
+ **_(BETA)_**
182
+
183
+
151
184
  </td></tr>
152
185
  <tr><td>
153
186
 
@@ -258,6 +291,50 @@ Description
258
291
  **_(BETA)_**
259
292
 
260
293
 
294
+ </td></tr>
295
+ <tr><td>
296
+
297
+ [TimePosition](./player.timeposition.md)
298
+
299
+
300
+ </td><td>
301
+
302
+ **_(BETA)_** For the plugin development
303
+
304
+
305
+ </td></tr>
306
+ <tr><td>
307
+
308
+ [TimeProgress](./player.timeprogress.md)
309
+
310
+
311
+ </td><td>
312
+
313
+ **_(BETA)_** For the plugin development
314
+
315
+
316
+ </td></tr>
317
+ <tr><td>
318
+
319
+ [TimeUpdate](./player.timeupdate.md)
320
+
321
+
322
+ </td><td>
323
+
324
+ **_(BETA)_** For the plugin development
325
+
326
+
327
+ </td></tr>
328
+ <tr><td>
329
+
330
+ [TimeValue](./player.timevalue.md)
331
+
332
+
333
+ </td><td>
334
+
335
+ **_(BETA)_** Playback time in seconds since the beginning of the stream (or a segment for the live streams) For the plugin development
336
+
337
+
261
338
  </td></tr>
262
339
  <tr><td>
263
340
 
@@ -11,5 +11,5 @@
11
11
  **Signature:**
12
12
 
13
13
  ```typescript
14
- export type MediaTransport = 'dash' | 'hls' | 'mpegts';
14
+ export type MediaTransport = 'dash' | 'hls';
15
15
  ```
@@ -0,0 +1,14 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [PlaybackError](./player.playbackerror.md) &gt; [code](./player.playbackerror.code.md)
4
+
5
+ ## PlaybackError.code property
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+ **Signature:**
11
+
12
+ ```typescript
13
+ code: PlaybackErrorCode;
14
+ ```
@@ -0,0 +1,14 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [PlaybackError](./player.playbackerror.md) &gt; [description](./player.playbackerror.description.md)
4
+
5
+ ## PlaybackError.description property
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+ **Signature:**
11
+
12
+ ```typescript
13
+ description: string;
14
+ ```
@@ -0,0 +1,14 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [PlaybackError](./player.playbackerror.md) &gt; [level](./player.playbackerror.level.md)
4
+
5
+ ## PlaybackError.level property
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+ **Signature:**
11
+
12
+ ```typescript
13
+ level: ErrorLevel;
14
+ ```
@@ -0,0 +1,116 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [PlaybackError](./player.playbackerror.md)
4
+
5
+ ## PlaybackError interface
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+
11
+ **Signature:**
12
+
13
+ ```typescript
14
+ export interface PlaybackError
15
+ ```
16
+
17
+ ## Properties
18
+
19
+ <table><thead><tr><th>
20
+
21
+ Property
22
+
23
+
24
+ </th><th>
25
+
26
+ Modifiers
27
+
28
+
29
+ </th><th>
30
+
31
+ Type
32
+
33
+
34
+ </th><th>
35
+
36
+ Description
37
+
38
+
39
+ </th></tr></thead>
40
+ <tbody><tr><td>
41
+
42
+ [code](./player.playbackerror.code.md)
43
+
44
+
45
+ </td><td>
46
+
47
+
48
+ </td><td>
49
+
50
+ [PlaybackErrorCode](./player.playbackerrorcode.md)
51
+
52
+
53
+ </td><td>
54
+
55
+ **_(BETA)_**
56
+
57
+
58
+ </td></tr>
59
+ <tr><td>
60
+
61
+ [description](./player.playbackerror.description.md)
62
+
63
+
64
+ </td><td>
65
+
66
+
67
+ </td><td>
68
+
69
+ string
70
+
71
+
72
+ </td><td>
73
+
74
+ **_(BETA)_**
75
+
76
+
77
+ </td></tr>
78
+ <tr><td>
79
+
80
+ [level](./player.playbackerror.level.md)
81
+
82
+
83
+ </td><td>
84
+
85
+
86
+ </td><td>
87
+
88
+ [ErrorLevel](./player.errorlevel.md)
89
+
90
+
91
+ </td><td>
92
+
93
+ **_(BETA)_**
94
+
95
+
96
+ </td></tr>
97
+ <tr><td>
98
+
99
+ [message](./player.playbackerror.message.md)
100
+
101
+
102
+ </td><td>
103
+
104
+
105
+ </td><td>
106
+
107
+ string
108
+
109
+
110
+ </td><td>
111
+
112
+ **_(BETA)_**
113
+
114
+
115
+ </td></tr>
116
+ </tbody></table>
@@ -0,0 +1,14 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [PlaybackError](./player.playbackerror.md) &gt; [message](./player.playbackerror.message.md)
4
+
5
+ ## PlaybackError.message property
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+ **Signature:**
11
+
12
+ ```typescript
13
+ message: string;
14
+ ```
@@ -0,0 +1,83 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [PlaybackErrorCode](./player.playbackerrorcode.md)
4
+
5
+ ## PlaybackErrorCode enum
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+
11
+ **Signature:**
12
+
13
+ ```typescript
14
+ export declare enum PlaybackErrorCode
15
+ ```
16
+
17
+ ## Enumeration Members
18
+
19
+ <table><thead><tr><th>
20
+
21
+ Member
22
+
23
+
24
+ </th><th>
25
+
26
+ Value
27
+
28
+
29
+ </th><th>
30
+
31
+ Description
32
+
33
+
34
+ </th></tr></thead>
35
+ <tbody><tr><td>
36
+
37
+ Generic
38
+
39
+
40
+ </td><td>
41
+
42
+ `0`
43
+
44
+
45
+ </td><td>
46
+
47
+ **_(BETA)_**
48
+
49
+
50
+ </td></tr>
51
+ <tr><td>
52
+
53
+ MediaSourceUnavailable
54
+
55
+
56
+ </td><td>
57
+
58
+ `1`
59
+
60
+
61
+ </td><td>
62
+
63
+ **_(BETA)_**
64
+
65
+
66
+ </td></tr>
67
+ <tr><td>
68
+
69
+ QualityLevelUnavailable
70
+
71
+
72
+ </td><td>
73
+
74
+ `2`
75
+
76
+
77
+ </td><td>
78
+
79
+ **_(BETA)_**
80
+
81
+
82
+ </td></tr>
83
+ </tbody></table>
@@ -11,5 +11,5 @@
11
11
  **Signature:**
12
12
 
13
13
  ```typescript
14
- export type PlaybackModule = 'dash' | 'hls' | 'native';
14
+ export type PlaybackModule = 'dash' | 'hls' | 'html5_video';
15
15
  ```
@@ -246,7 +246,7 @@ boolean
246
246
  </td></tr>
247
247
  <tr><td>
248
248
 
249
- [strings](./player.playerconfig.strings.md)
249
+ [strings?](./player.playerconfig.strings.md)
250
250
 
251
251
 
252
252
  </td><td>
@@ -259,7 +259,7 @@ boolean
259
259
 
260
260
  </td><td>
261
261
 
262
- **_(BETA)_** Localization strings for the player UI.
262
+ **_(BETA)_** _(Optional)_ Localization strings for the player UI.
263
263
 
264
264
 
265
265
  </td></tr>
@@ -12,5 +12,5 @@ Localization strings for the player UI.
12
12
  **Signature:**
13
13
 
14
14
  ```typescript
15
- strings: TranslationSettings;
15
+ strings?: TranslationSettings;
16
16
  ```
@@ -12,6 +12,6 @@
12
12
  ```typescript
13
13
  export type PlayerPlugin = {
14
14
  new (...args: any[]): unknown;
15
- type: 'core' | 'container';
15
+ name: string;
16
16
  };
17
17
  ```