@gcorevideo/player 2.29.0 → 2.30.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 (54) hide show
  1. package/README.md +108 -0
  2. package/dist/core.js +81 -22
  3. package/dist/index.css +370 -370
  4. package/dist/index.embed.js +80 -23
  5. package/dist/index.js +459 -87
  6. package/docs/api/player.md +37 -0
  7. package/docs/api/player.player.getplugin.md +59 -0
  8. package/docs/api/player.player.md +14 -0
  9. package/docs/api/player.tokenrefreshoptions.gettoken.md +13 -0
  10. package/docs/api/player.tokenrefreshoptions.ipbound.md +13 -0
  11. package/docs/api/player.tokenrefreshoptions.md +115 -0
  12. package/docs/api/player.tokenrefreshoptions.ontokenrefreshed.md +13 -0
  13. package/docs/api/player.tokenrefreshoptions.refreshleadseconds.md +13 -0
  14. package/docs/api/player.tokenrefreshplugin.md +50 -0
  15. package/docs/api/player.tokenresponse.client_ip.md +13 -0
  16. package/docs/api/player.tokenresponse.expires.md +13 -0
  17. package/docs/api/player.tokenresponse.md +153 -0
  18. package/docs/api/player.tokenresponse.token.md +13 -0
  19. package/docs/api/player.tokenresponse.token_ip.md +13 -0
  20. package/docs/api/player.tokenresponse.url.md +13 -0
  21. package/docs/api/player.tokenresponse.url_ip.md +13 -0
  22. package/lib/Player.d.ts +9 -0
  23. package/lib/Player.d.ts.map +1 -1
  24. package/lib/Player.js +11 -0
  25. package/lib/index.plugins.d.ts +1 -0
  26. package/lib/index.plugins.d.ts.map +1 -1
  27. package/lib/index.plugins.js +1 -0
  28. package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
  29. package/lib/playback/dash-playback/DashPlayback.js +5 -1
  30. package/lib/playback/hls-playback/HlsPlayback.d.ts +1 -1
  31. package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
  32. package/lib/playback/hls-playback/HlsPlayback.js +23 -20
  33. package/lib/playback/hls-playback/RangesList.d.ts +7 -0
  34. package/lib/playback/hls-playback/RangesList.d.ts.map +1 -0
  35. package/lib/playback/hls-playback/RangesList.js +41 -0
  36. package/lib/plugins/subtitles/ClosedCaptions.d.ts.map +1 -1
  37. package/lib/plugins/subtitles/ClosedCaptions.js +0 -2
  38. package/lib/plugins/token-refresh/TokenRefreshPlugin.d.ts +119 -0
  39. package/lib/plugins/token-refresh/TokenRefreshPlugin.d.ts.map +1 -0
  40. package/lib/plugins/token-refresh/TokenRefreshPlugin.js +318 -0
  41. package/lib/plugins/token-refresh/index.d.ts +2 -0
  42. package/lib/plugins/token-refresh/index.d.ts.map +1 -0
  43. package/lib/plugins/token-refresh/index.js +1 -0
  44. package/package.json +1 -1
  45. package/src/Player.ts +12 -0
  46. package/src/index.plugins.ts +1 -0
  47. package/src/playback/dash-playback/DashPlayback.ts +6 -1
  48. package/src/playback/hls-playback/HlsPlayback.ts +40 -37
  49. package/src/playback/hls-playback/RangesList.ts +45 -0
  50. package/src/playback/hls-playback/__tests__/RangesList.test.ts +60 -0
  51. package/src/plugins/subtitles/ClosedCaptions.ts +0 -5
  52. package/src/plugins/token-refresh/TokenRefreshPlugin.ts +425 -0
  53. package/src/plugins/token-refresh/index.ts +5 -0
  54. package/tsconfig.tsbuildinfo +1 -1
@@ -361,6 +361,21 @@ A `PLUGIN` that configures [CMCD](https://cdn.cta.tech/cta/media/media/resources
361
361
  `PLUGIN` that displays the thumbnails of the video when available.
362
362
 
363
363
 
364
+ </td></tr>
365
+ <tr><td>
366
+
367
+ [TokenRefreshPlugin](./player.tokenrefreshplugin.md)
368
+
369
+
370
+ </td><td>
371
+
372
+ `PLUGIN` — automatic token refresh for Gcore protected-content streams.
373
+
374
+ Supports all three playback engines:
375
+
376
+ \| Engine \| Mechanism \| Interruption \| \|\-\-\-\-\-\---\|\-\-\-\-\-\-\-\-\---\|\-\-\-\-\-\-\-\-\-\-\-\---\| \| \*\*hls.js\*\* \| Custom loader rewrites every request URL \| None \| \| \*\*dash.js\*\* \| `addRequestInterceptor` rewrites every request URL \| None \| \| \*\*Native `<video>`<!-- -->\*\* (Safari ≤ iOS 14.4) \| Source reload + seek restore \| Brief \|
377
+
378
+
364
379
  </td></tr>
365
380
  <tr><td>
366
381
 
@@ -721,6 +736,28 @@ Plugin configuration options for the thumbnails plugin.
721
736
  Current playback time and total duration of the media.
722
737
 
723
738
 
739
+ </td></tr>
740
+ <tr><td>
741
+
742
+ [TokenRefreshOptions](./player.tokenrefreshoptions.md)
743
+
744
+
745
+ </td><td>
746
+
747
+ Configuration options for [TokenRefreshPlugin](./player.tokenrefreshplugin.md)<!-- -->.
748
+
749
+
750
+ </td></tr>
751
+ <tr><td>
752
+
753
+ [TokenResponse](./player.tokenresponse.md)
754
+
755
+
756
+ </td><td>
757
+
758
+ Response shape expected from your token-refresh API endpoint.
759
+
760
+
724
761
  </td></tr>
725
762
  <tr><td>
726
763
 
@@ -0,0 +1,59 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [Player](./player.player.md) &gt; [getPlugin](./player.player.getplugin.md)
4
+
5
+ ## Player.getPlugin() method
6
+
7
+ Returns a registered core plugin instance by name, or `null` if not found.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ getPlugin(name: string): any;
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Parameter
20
+
21
+
22
+ </th><th>
23
+
24
+ Type
25
+
26
+
27
+ </th><th>
28
+
29
+ Description
30
+
31
+
32
+ </th></tr></thead>
33
+ <tbody><tr><td>
34
+
35
+ name
36
+
37
+
38
+ </td><td>
39
+
40
+ string
41
+
42
+
43
+ </td><td>
44
+
45
+
46
+ </td></tr>
47
+ </tbody></table>
48
+
49
+ **Returns:**
50
+
51
+ any
52
+
53
+ ## Example
54
+
55
+
56
+ ```ts
57
+ const tokenRefresh = player.getPlugin('token_refresh') as TokenRefreshPlugin | null
58
+ ```
59
+
@@ -137,6 +137,20 @@ Current playback (time since the beginning of the stream), if appropriate.
137
137
  Duration of the current media in seconds, if appropriate.
138
138
 
139
139
 
140
+ </td></tr>
141
+ <tr><td>
142
+
143
+ [getPlugin(name)](./player.player.getplugin.md)
144
+
145
+
146
+ </td><td>
147
+
148
+
149
+ </td><td>
150
+
151
+ Returns a registered core plugin instance by name, or `null` if not found.
152
+
153
+
140
154
  </td></tr>
141
155
  <tr><td>
142
156
 
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenRefreshOptions](./player.tokenrefreshoptions.md) &gt; [getToken](./player.tokenrefreshoptions.gettoken.md)
4
+
5
+ ## TokenRefreshOptions.getToken property
6
+
7
+ Async function called each time a fresh token is needed. Must return a [TokenResponse](./player.tokenresponse.md)<!-- -->.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ getToken: () => Promise<TokenResponse>;
13
+ ```
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenRefreshOptions](./player.tokenrefreshoptions.md) &gt; [ipBound](./player.tokenrefreshoptions.ipbound.md)
4
+
5
+ ## TokenRefreshOptions.ipBound property
6
+
7
+ When `true`<!-- -->, the IP-bound variant (`token_ip` / `url_ip`<!-- -->) is used. Defaults to `false`<!-- -->.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ ipBound?: boolean;
13
+ ```
@@ -0,0 +1,115 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenRefreshOptions](./player.tokenrefreshoptions.md)
4
+
5
+ ## TokenRefreshOptions interface
6
+
7
+ Configuration options for [TokenRefreshPlugin](./player.tokenrefreshplugin.md)<!-- -->.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ export interface TokenRefreshOptions
13
+ ```
14
+
15
+ ## Properties
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Property
20
+
21
+
22
+ </th><th>
23
+
24
+ Modifiers
25
+
26
+
27
+ </th><th>
28
+
29
+ Type
30
+
31
+
32
+ </th><th>
33
+
34
+ Description
35
+
36
+
37
+ </th></tr></thead>
38
+ <tbody><tr><td>
39
+
40
+ [getToken](./player.tokenrefreshoptions.gettoken.md)
41
+
42
+
43
+ </td><td>
44
+
45
+
46
+ </td><td>
47
+
48
+ () =&gt; Promise&lt;[TokenResponse](./player.tokenresponse.md)<!-- -->&gt;
49
+
50
+
51
+ </td><td>
52
+
53
+ Async function called each time a fresh token is needed. Must return a [TokenResponse](./player.tokenresponse.md)<!-- -->.
54
+
55
+
56
+ </td></tr>
57
+ <tr><td>
58
+
59
+ [ipBound?](./player.tokenrefreshoptions.ipbound.md)
60
+
61
+
62
+ </td><td>
63
+
64
+
65
+ </td><td>
66
+
67
+ boolean
68
+
69
+
70
+ </td><td>
71
+
72
+ _(Optional)_ When `true`<!-- -->, the IP-bound variant (`token_ip` / `url_ip`<!-- -->) is used. Defaults to `false`<!-- -->.
73
+
74
+
75
+ </td></tr>
76
+ <tr><td>
77
+
78
+ [onTokenRefreshed?](./player.tokenrefreshoptions.ontokenrefreshed.md)
79
+
80
+
81
+ </td><td>
82
+
83
+
84
+ </td><td>
85
+
86
+ (data: [TokenResponse](./player.tokenresponse.md)<!-- -->) =&gt; void
87
+
88
+
89
+ </td><td>
90
+
91
+ _(Optional)_ Optional callback invoked after every successful token refresh.
92
+
93
+
94
+ </td></tr>
95
+ <tr><td>
96
+
97
+ [refreshLeadSeconds?](./player.tokenrefreshoptions.refreshleadseconds.md)
98
+
99
+
100
+ </td><td>
101
+
102
+
103
+ </td><td>
104
+
105
+ number
106
+
107
+
108
+ </td><td>
109
+
110
+ _(Optional)_ Seconds before the token expiry timestamp to request a fresh token. Defaults to `5`<!-- -->.
111
+
112
+
113
+ </td></tr>
114
+ </tbody></table>
115
+
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenRefreshOptions](./player.tokenrefreshoptions.md) &gt; [onTokenRefreshed](./player.tokenrefreshoptions.ontokenrefreshed.md)
4
+
5
+ ## TokenRefreshOptions.onTokenRefreshed property
6
+
7
+ Optional callback invoked after every successful token refresh.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ onTokenRefreshed?: (data: TokenResponse) => void;
13
+ ```
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenRefreshOptions](./player.tokenrefreshoptions.md) &gt; [refreshLeadSeconds](./player.tokenrefreshoptions.refreshleadseconds.md)
4
+
5
+ ## TokenRefreshOptions.refreshLeadSeconds property
6
+
7
+ Seconds before the token expiry timestamp to request a fresh token. Defaults to `5`<!-- -->.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ refreshLeadSeconds?: number;
13
+ ```
@@ -0,0 +1,50 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenRefreshPlugin](./player.tokenrefreshplugin.md)
4
+
5
+ ## TokenRefreshPlugin class
6
+
7
+ `PLUGIN` — automatic token refresh for Gcore protected-content streams.
8
+
9
+ Supports all three playback engines:
10
+
11
+ \| Engine \| Mechanism \| Interruption \| \|\-\-\-\-\-\---\|\-\-\-\-\-\-\-\-\---\|\-\-\-\-\-\-\-\-\-\-\-\---\| \| \*\*hls.js\*\* \| Custom loader rewrites every request URL \| None \| \| \*\*dash.js\*\* \| `addRequestInterceptor` rewrites every request URL \| None \| \| \*\*Native `<video>`<!-- -->\*\* (Safari ≤ iOS 14.4) \| Source reload + seek restore \| Brief \|
12
+
13
+ **Signature:**
14
+
15
+ ```typescript
16
+ export declare class TokenRefreshPlugin extends CorePlugin
17
+ ```
18
+ **Extends:** CorePlugin
19
+
20
+ ## Remarks
21
+
22
+ Register the plugin once before creating any player instance:
23
+
24
+ ```ts
25
+ import { Player, TokenRefreshPlugin } from '@gcorevideo/player'
26
+ Player.registerPlugin(TokenRefreshPlugin)
27
+ ```
28
+ Then pass `tokenRefresh` in `PlayerConfig`<!-- -->:
29
+
30
+ ```ts
31
+ const player = new Player({
32
+ sources: [{ source: initialUrl, mimeType: 'application/x-mpegURL' }],
33
+ tokenRefresh: {
34
+ getToken: () => fetch('https://…/token').then(r => r.json()),
35
+ ipBound: false,
36
+ refreshLeadSeconds: 5,
37
+ onTokenRefreshed: (data) => console.log('new token expires', data.expires),
38
+ },
39
+ })
40
+ ```
41
+
42
+ ## Example
43
+
44
+ Safari native — opt-in Service Worker for fully seamless refresh:
45
+
46
+ ```js
47
+ // Register token-refresh-sw.js (see example/ directory)
48
+ // and omit tokenRefresh config — the SW handles rewriting.
49
+ ```
50
+
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenResponse](./player.tokenresponse.md) &gt; [client\_ip](./player.tokenresponse.client_ip.md)
4
+
5
+ ## TokenResponse.client\_ip property
6
+
7
+ Client IP address (informational)
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ client_ip: string;
13
+ ```
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenResponse](./player.tokenresponse.md) &gt; [expires](./player.tokenresponse.expires.md)
4
+
5
+ ## TokenResponse.expires property
6
+
7
+ Unix timestamp (seconds) when both tokens expire
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ expires: number;
13
+ ```
@@ -0,0 +1,153 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenResponse](./player.tokenresponse.md)
4
+
5
+ ## TokenResponse interface
6
+
7
+ Response shape expected from your token-refresh API endpoint.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ export interface TokenResponse
13
+ ```
14
+
15
+ ## Properties
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Property
20
+
21
+
22
+ </th><th>
23
+
24
+ Modifiers
25
+
26
+
27
+ </th><th>
28
+
29
+ Type
30
+
31
+
32
+ </th><th>
33
+
34
+ Description
35
+
36
+
37
+ </th></tr></thead>
38
+ <tbody><tr><td>
39
+
40
+ [client\_ip](./player.tokenresponse.client_ip.md)
41
+
42
+
43
+ </td><td>
44
+
45
+
46
+ </td><td>
47
+
48
+ string
49
+
50
+
51
+ </td><td>
52
+
53
+ Client IP address (informational)
54
+
55
+
56
+ </td></tr>
57
+ <tr><td>
58
+
59
+ [expires](./player.tokenresponse.expires.md)
60
+
61
+
62
+ </td><td>
63
+
64
+
65
+ </td><td>
66
+
67
+ number
68
+
69
+
70
+ </td><td>
71
+
72
+ Unix timestamp (seconds) when both tokens expire
73
+
74
+
75
+ </td></tr>
76
+ <tr><td>
77
+
78
+ [token\_ip](./player.tokenresponse.token_ip.md)
79
+
80
+
81
+ </td><td>
82
+
83
+
84
+ </td><td>
85
+
86
+ string
87
+
88
+
89
+ </td><td>
90
+
91
+ IP-bound secure token
92
+
93
+
94
+ </td></tr>
95
+ <tr><td>
96
+
97
+ [token](./player.tokenresponse.token.md)
98
+
99
+
100
+ </td><td>
101
+
102
+
103
+ </td><td>
104
+
105
+ string
106
+
107
+
108
+ </td><td>
109
+
110
+ Plain (non-IP-bound) secure token
111
+
112
+
113
+ </td></tr>
114
+ <tr><td>
115
+
116
+ [url\_ip](./player.tokenresponse.url_ip.md)
117
+
118
+
119
+ </td><td>
120
+
121
+
122
+ </td><td>
123
+
124
+ string
125
+
126
+
127
+ </td><td>
128
+
129
+ Ready-to-use HLS master playlist URL with IP-bound token embedded
130
+
131
+
132
+ </td></tr>
133
+ <tr><td>
134
+
135
+ [url](./player.tokenresponse.url.md)
136
+
137
+
138
+ </td><td>
139
+
140
+
141
+ </td><td>
142
+
143
+ string
144
+
145
+
146
+ </td><td>
147
+
148
+ Ready-to-use HLS master playlist URL with plain token embedded
149
+
150
+
151
+ </td></tr>
152
+ </tbody></table>
153
+
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenResponse](./player.tokenresponse.md) &gt; [token](./player.tokenresponse.token.md)
4
+
5
+ ## TokenResponse.token property
6
+
7
+ Plain (non-IP-bound) secure token
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ token: string;
13
+ ```
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenResponse](./player.tokenresponse.md) &gt; [token\_ip](./player.tokenresponse.token_ip.md)
4
+
5
+ ## TokenResponse.token\_ip property
6
+
7
+ IP-bound secure token
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ token_ip: string;
13
+ ```
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenResponse](./player.tokenresponse.md) &gt; [url](./player.tokenresponse.url.md)
4
+
5
+ ## TokenResponse.url property
6
+
7
+ Ready-to-use HLS master playlist URL with plain token embedded
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ url: string;
13
+ ```
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [TokenResponse](./player.tokenresponse.md) &gt; [url\_ip](./player.tokenresponse.url_ip.md)
4
+
5
+ ## TokenResponse.url\_ip property
6
+
7
+ Ready-to-use HLS master playlist URL with IP-bound token embedded
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ url_ip: string;
13
+ ```
package/lib/Player.d.ts CHANGED
@@ -132,6 +132,15 @@ export declare class Player {
132
132
  * @beta
133
133
  */
134
134
  load(mediaSources: PlayerMediaSource[]): void;
135
+ /**
136
+ * Returns a registered core plugin instance by name, or `null` if not found.
137
+ *
138
+ * @example
139
+ * ```ts
140
+ * const tokenRefresh = player.getPlugin('token_refresh') as TokenRefreshPlugin | null
141
+ * ```
142
+ */
143
+ getPlugin(name: string): any;
135
144
  /**
136
145
  * Mutes the sound of the video.
137
146
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"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"}
package/lib/Player.js CHANGED
@@ -199,6 +199,17 @@ export class Player {
199
199
  }
200
200
  this.player?.load(ms, ms[0].mimeType ?? '');
201
201
  }
202
+ /**
203
+ * Returns a registered core plugin instance by name, or `null` if not found.
204
+ *
205
+ * @example
206
+ * ```ts
207
+ * const tokenRefresh = player.getPlugin('token_refresh') as TokenRefreshPlugin | null
208
+ * ```
209
+ */
210
+ getPlugin(name) {
211
+ return this.player?.core.getPlugin(name) ?? null;
212
+ }
202
213
  /**
203
214
  * Mutes the sound of the video.
204
215
  */
@@ -32,5 +32,6 @@ export * from './plugins/subtitles/ClosedCaptions.js';
32
32
  export { ClosedCaptions as Subtitles } from './plugins/subtitles/ClosedCaptions.js';
33
33
  export * from './plugins/telemetry/Telemetry.js';
34
34
  export * from './plugins/thumbnails/Thumbnails.js';
35
+ export * from './plugins/token-refresh/index.js';
35
36
  export * from './plugins/volume-fade/VolumeFade.js';
36
37
  //# sourceMappingURL=index.plugins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.plugins.d.ts","sourceRoot":"","sources":["../src/index.plugins.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAA;AAElC,cAAc,yCAAyC,CAAA;AACvD,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,yCAAyC,CAAA;AACtF,cAAc,4CAA4C,CAAA;AAC1D,cAAc,qCAAqC,CAAA;AACnD,cAAc,uCAAuC,CAAA;AACrD,cAAc,qCAAqC,CAAA;AACnD,cAAc,0CAA0C,CAAA;AACxD,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,0CAA0C,CAAA;AACvF,cAAc,0CAA0C,CAAA;AACxD,cAAc,0BAA0B,CAAA;AACxC,cAAc,uCAAuC,CAAA;AACrD,cAAc,uCAAuC,CAAA;AACrD,cAAc,uCAAuC,CAAA;AACrD,cAAc,8BAA8B,CAAA;AAE5C,cAAc,+CAA+C,CAAA;AAC7D,cAAc,wBAAwB,CAAA;AACtC,cAAc,yCAAyC,CAAA;AACvD,cAAc,uCAAuC,CAAA;AACrD,cAAc,kDAAkD,CAAA;AAChE,cAAc,yCAAyC,CAAA;AACvD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2CAA2C,CAAA;AACzD,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAA;AAC1F,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sDAAsD,CAAA;AACpE,OAAO,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,sDAAsD,CAAA;AACpG,cAAc,iDAAiD,CAAA;AAC/D,cAAc,uCAAuC,CAAA;AACrD,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,uCAAuC,CAAA;AACnF,cAAc,kCAAkC,CAAA;AAChD,cAAc,oCAAoC,CAAA;AAGlD,cAAc,qCAAqC,CAAA"}
1
+ {"version":3,"file":"index.plugins.d.ts","sourceRoot":"","sources":["../src/index.plugins.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAA;AAElC,cAAc,yCAAyC,CAAA;AACvD,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,yCAAyC,CAAA;AACtF,cAAc,4CAA4C,CAAA;AAC1D,cAAc,qCAAqC,CAAA;AACnD,cAAc,uCAAuC,CAAA;AACrD,cAAc,qCAAqC,CAAA;AACnD,cAAc,0CAA0C,CAAA;AACxD,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,0CAA0C,CAAA;AACvF,cAAc,0CAA0C,CAAA;AACxD,cAAc,0BAA0B,CAAA;AACxC,cAAc,uCAAuC,CAAA;AACrD,cAAc,uCAAuC,CAAA;AACrD,cAAc,uCAAuC,CAAA;AACrD,cAAc,8BAA8B,CAAA;AAE5C,cAAc,+CAA+C,CAAA;AAC7D,cAAc,wBAAwB,CAAA;AACtC,cAAc,yCAAyC,CAAA;AACvD,cAAc,uCAAuC,CAAA;AACrD,cAAc,kDAAkD,CAAA;AAChE,cAAc,yCAAyC,CAAA;AACvD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2CAA2C,CAAA;AACzD,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAA;AAC1F,cAAc,iCAAiC,CAAA;AAC/C,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sDAAsD,CAAA;AACpE,OAAO,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,sDAAsD,CAAA;AACpG,cAAc,iDAAiD,CAAA;AAC/D,cAAc,uCAAuC,CAAA;AACrD,OAAO,EAAE,cAAc,IAAI,SAAS,EAAE,MAAM,uCAAuC,CAAA;AACnF,cAAc,kCAAkC,CAAA;AAChD,cAAc,oCAAoC,CAAA;AAGlD,cAAc,kCAAkC,CAAA;AAChD,cAAc,qCAAqC,CAAA"}
@@ -35,4 +35,5 @@ export * from './plugins/telemetry/Telemetry.js';
35
35
  export * from './plugins/thumbnails/Thumbnails.js';
36
36
  // _ vast-ads
37
37
  // _ video360
38
+ export * from './plugins/token-refresh/index.js';
38
39
  export * from './plugins/volume-fade/VolumeFade.js';
@@ -1 +1 @@
1
- {"version":3,"file":"DashPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/dash-playback/DashPlayback.ts"],"names":[],"mappings":"AAKA,OAAO,EAAe,QAAQ,EAAyB,MAAM,cAAc,CAAA;AAG3E,OAAO,EAGL,gBAAgB,EAKhB,aAAa,EAQd,MAAM,QAAQ,CAAA;AAEf,OAAO,EAGL,YAAY,EACZ,YAAY,EACZ,SAAS,EACV,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAkB,UAAU,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAA;AAMzE,KAAK,YAAY,GACb,OAAO,QAAQ,CAAC,GAAG,GACnB,OAAO,QAAQ,CAAC,IAAI,GACpB,OAAO,QAAQ,CAAC,GAAG,GACnB,OAAO,QAAQ,CAAC,KAAK,CAAA;AAEzB,KAAK,YAAY,GAAG,MAAM,CAAA;AAE1B,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAID,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IACpD,OAAO,EAAE,YAAY,EAAE,CAAK;IAE5B,aAAa,EAAE,MAAM,CAAO;IAE5B,mBAAmB,EAAE,MAAM,CAAK;IAKhC,mCAAmC,EAAE,OAAO,CAAQ;IAEpD,aAAa,EAAE,OAAO,CAAQ;IAI9B,uBAAuB,EAAE,MAAM,CAAI;IASnC,wBAAwB,EAAE,MAAM,CAAI;IAEpC,aAAa,EAAE,YAAY,CAAe;IAG1C,aAAa,EAAE,YAAY,GAAG,IAAI,CAAO;IAEzC,gBAAgB,EAAE,SAAS,CAAI;IAE/B,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAO;IAErC,2BAA2B,EAAE,MAAM,CAAI;IAEvC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAO;IAEtC,eAAe,EAAE,YAAY,CAA2B;IAIxD,0BAA0B,EAAE,oBAAoB,GAAG,IAAI,CAAO;IAI9D,wBAAwB,EAAE,oBAAoB,GAAG,IAAI,CAAO;IAE5D,kBAAkB,UAAQ;IAE1B,YAAY,EAAE,aAAa,GAAG,IAAI,CAAO;IAEzC,gBAAgB,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAO;IAE9D,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAEnD,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IAEtD,IAAI,IAAI,WAEP;IAED,IAAI,MAAM,IAAI,YAAY,EAAE,CAE3B;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,OAAO,YAEV;IAED,IAAI,YAAY,CAAC,EAAE,EAAE,MAAM,EAoC1B;IAED,IAAI,UAAU,WAUb;IAED,IAAI,IAAI,WAEP;IAID,IAAI,sBAAsB,WAczB;IAID,IAAI,oBAAoB,WAgBvB;IAED,IAAI,SAAS,WAKZ;gBAEW,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG;IAOzD,MAAM;IAyFN,MAAM;IAMN,MAAM;YAKW,SAAS;IAI1B,qBAAqB;IAQrB,oBAAoB;IAapB,WAAW,IAAI,SAAS;IAQxB,cAAc,IAAI,SAAS;IAO3B,kBAAkB,IAAI,SAAS;IAItB,cAAc,CAAC,UAAU,EAAE,MAAM;IAejC,IAAI,CAAC,IAAI,EAAE,SAAS;IAgB7B,eAAe;IAIf,UAAU,CAAC,MAAM,EAAE,OAAO;IAMjB,eAAe;IAgBxB,OAAO,CAAC,gBAAgB,CAEvB;IAED,OAAO,CAAC,eAAe,CAkCtB;IAED,OAAO,CAAC,YAAY;IAiBX,aAAa;IAqBb,iBAAiB;IAW1B,IAAI,UAAU,YAQb;IAEQ,WAAW;IAgBX,IAAI;IAMJ,KAAK;IAUL,IAAI;IAQb,OAAO,CAAC,eAAe;IAuBd,OAAO;IAMhB,mBAAmB;IASnB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gBAAgB;IAQxB,eAAe;IAIf,aAAa;IAIb,OAAO,CAAC,QAAQ;IAMhB,eAAe,CAAC,IAAI,EAAE,MAAM;IAI5B,IAAI,WAAW,IAAI,UAAU,EAAE,CAI9B;IAGD,IAAI,iBAAiB,IAAI,UAAU,GAAG,IAAI,CAOzC;IAEQ,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQlC,IAAI,CAAC,MAAM,EAAE,MAAM;IAQ5B,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,sBAAsB;IAKtB,YAAY,CAAC,EAAE,EAAE,MAAM;IAKvB;;OAEG;IACH,IAAI,oBAAoB;;;;;;;;;QAEvB;IAED,OAAO,CAAC,aAAa;CAYtB"}
1
+ {"version":3,"file":"DashPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/dash-playback/DashPlayback.ts"],"names":[],"mappings":"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"}