eb-player 2.1.2 → 2.1.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/build/ebplayer.bundle.js +169 -61
- package/dist/build/ebplayer.bundle.js.map +1 -1
- package/dist/build/types/src/core/lifecycle.d.ts +3 -2
- package/dist/build/types/src/core/lifecycle.d.ts.map +1 -1
- package/dist/build/types/src/eb-player.d.ts.map +1 -1
- package/dist/build/types/src/engines/cdn-token-manager.d.ts +18 -0
- package/dist/build/types/src/engines/cdn-token-manager.d.ts.map +1 -1
- package/dist/build/types/src/engines/hls.d.ts.map +1 -1
- package/dist/build/types/src/engines/segment-token-loader.d.ts +46 -25
- package/dist/build/types/src/engines/segment-token-loader.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -17,8 +17,9 @@ import type { SavedSelections } from './command-handler';
|
|
|
17
17
|
* Mount order:
|
|
18
18
|
* 1. CSS vars / data-theme applied to container
|
|
19
19
|
* 2. Config-derived state (isRtl, isRadio) set
|
|
20
|
-
* 3. SkinRoot connected (needs DOM) — creates video element
|
|
21
|
-
*
|
|
20
|
+
* 3. SkinRoot connected (needs DOM) — creates the video element on every
|
|
21
|
+
* mount, including noUi; the ads container is only rendered in UI mode
|
|
22
|
+
* 4. AutoHideController + KeyboardController wired (UI mode only)
|
|
22
23
|
* 5. Integrations initialized (need skin DOM for ads)
|
|
23
24
|
*
|
|
24
25
|
* Dispose order (reverse of mount):
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../../src/core/lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAW7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGxD
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../../src/core/lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAW7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGxD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;IAC3B,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IAEnB,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,cAAc,CAAqB;IAE3C,IAAI,MAAM,IAAI,WAAW,CAExB;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,WAAW,GAAG,IAAI,CAElC;gBAEW,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC;IAczC;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAmGnC;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAI7C;;;OAGG;IACH,kBAAkB,IAAI,eAAe;IAOrC;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAQ1C;;;;;;;;OAQG;IACH,OAAO,IAAI,IAAI;IAwBf;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAyFzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eb-player.d.ts","sourceRoot":"","sources":["../../../../src/eb-player.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAGjD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,qFAAqF;IACrF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,uEAAuE;IACvE,KAAK,IAAI,IAAI,CAAA;IACb,4FAA4F;IAC5F,OAAO,IAAI,IAAI,CAAA;IACf,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAC5B;
|
|
1
|
+
{"version":3,"file":"eb-player.d.ts","sourceRoot":"","sources":["../../../../src/eb-player.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAGjD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,qFAAqF;IACrF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,uEAAuE;IACvE,KAAK,IAAI,IAAI,CAAA;IACb,4FAA4F;IAC5F,OAAO,IAAI,IAAI,CAAA;IACf,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAC5B;AAwHD;;;;;;;;;GASG;AACH,wBAAgB,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,eAAe,CA2hB3E;AAED;;;;GAIG;AACH,wBAAgB,IAAI,IAAI,IAAI,CAO3B;AAED;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAK9B"}
|
|
@@ -112,6 +112,24 @@ export declare class CDNTokenManager {
|
|
|
112
112
|
retryInterval: number;
|
|
113
113
|
private expirationMarginInSeconds;
|
|
114
114
|
lastTokenResponse: TokenResponse | null;
|
|
115
|
+
/**
|
|
116
|
+
* The session's source (master playlist) URL, set by the engine before its
|
|
117
|
+
* first token acquisition.
|
|
118
|
+
*
|
|
119
|
+
* The token service derives `token_path` from the DIRECTORY of the URL it is
|
|
120
|
+
* asked to sign: a master URL yields `/vod/<asset>`, a rendition URL yields
|
|
121
|
+
* `/vod/<asset>/<rendition>`. `token_path` is a PREFIX scope, so an
|
|
122
|
+
* asset-level grant authorizes every rendition beneath it, while a
|
|
123
|
+
* rendition-level grant 403s on all its siblings.
|
|
124
|
+
*
|
|
125
|
+
* Because `lastTokenResponse` is a single shared slot, minting it against
|
|
126
|
+
* whichever URL happened to trigger the refresh (e.g. a level playlist
|
|
127
|
+
* requested by an ABR switch) caches a narrow grant that then fails for
|
|
128
|
+
* every other rendition. Pinning acquisition here keeps the shared grant
|
|
129
|
+
* asset-level, which is what makes one grant safely serve manifests and
|
|
130
|
+
* segments alike. Null falls back to the requested URL (previous behaviour).
|
|
131
|
+
*/
|
|
132
|
+
sourceUrl: string | null;
|
|
115
133
|
private resetAttemptCounterTimeout;
|
|
116
134
|
private inFlightFetch;
|
|
117
135
|
constructor({ token, tokenType, srcInTokenRequest, extraParamsCallback, onCDNTokenError, maxRetries, retryInterval, expirationMarginInSeconds }: CDNTokenManagerOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdn-token-manager.d.ts","sourceRoot":"","sources":["../../../../../src/engines/cdn-token-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cdn-token-manager.d.ts","sourceRoot":"","sources":["../../../../../src/engines/cdn-token-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hls.d.ts","sourceRoot":"","sources":["../../../../../src/engines/hls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAOrD;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,QAAS,CAAA;AAuJnD,qBAAa,SAAU,SAAQ,UAAU;IAEvC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,WAAW,CAAO;IAE1B,OAAO,CAAC,UAAU,CAA2B;IAG7C,OAAO,CAAC,qBAAqB,CAAqC;IAElE,SAAS,IAAI,OAAO,GAAG,IAAI;IAI3B;;;;OAIG;IACH,eAAe,IAAI,eAAe,GAAG,IAAI;cAQzB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAezC,SAAS,CAAC,QAAQ,IAAI,IAAI;IAmB1B,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAgBjD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAa/B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKnC,OAAO,CAAC,gBAAgB,CAAQ;IAEvB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAajC,UAAU,IAAI,IAAI;IAWlB;;;OAGG;IACH,OAAO,KAAK,QAAQ,GAEnB;YAEa,IAAI;
|
|
1
|
+
{"version":3,"file":"hls.d.ts","sourceRoot":"","sources":["../../../../../src/engines/hls.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAOrD;;;;;;;;;GASG;AACH,eAAO,MAAM,6BAA6B,QAAS,CAAA;AAuJnD,qBAAa,SAAU,SAAQ,UAAU;IAEvC,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,WAAW,CAAO;IAE1B,OAAO,CAAC,UAAU,CAA2B;IAG7C,OAAO,CAAC,qBAAqB,CAAqC;IAElE,SAAS,IAAI,OAAO,GAAG,IAAI;IAI3B;;;;OAIG;IACH,eAAe,IAAI,eAAe,GAAG,IAAI;cAQzB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAezC,SAAS,CAAC,QAAQ,IAAI,IAAI;IAmB1B,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAgBjD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAa/B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKnC,OAAO,CAAC,gBAAgB,CAAQ;IAEvB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAajC,UAAU,IAAI,IAAI;IAWlB;;;OAGG;IACH,OAAO,KAAK,QAAQ,GAEnB;YAEa,IAAI;IA2TlB,OAAO,CAAC,oBAAoB;IAoB5B;;;;;;;OAOG;IACH,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,6BAA6B;IAKrC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,sBAAsB;CAM/B"}
|
|
@@ -2,33 +2,39 @@
|
|
|
2
2
|
* Segment (fragment) CDN token signing — shared primitive.
|
|
3
3
|
*
|
|
4
4
|
* Extends CDN token signing from manifests to segments, behind an opt-in flag
|
|
5
|
-
* (`EngineSettings.signSegmentsWithCdnToken`).
|
|
6
|
-
* grant carried by its OWN parent playlist — read from
|
|
7
|
-
* the object hls.js itself parsed that fragment from
|
|
8
|
-
* cache, or shared manager state. This makes cross-rendition mis-signing
|
|
9
|
-
* structurally impossible rather than merely unlikely.
|
|
5
|
+
* (`EngineSettings.signSegmentsWithCdnToken`). The fast path signs each segment
|
|
6
|
+
* with the grant carried by its OWN parent playlist — read from
|
|
7
|
+
* `context.frag.baseurl`, the object hls.js itself parsed that fragment from.
|
|
10
8
|
*
|
|
11
|
-
*
|
|
12
|
-
* data already present on the fragment context handed to it by hls.js. Any
|
|
13
|
-
* acquisition call here would reintroduce the single-slot cache reuse in
|
|
14
|
-
* `CDNTokenManager.lastTokenResponse`, which hands one rendition's grant to
|
|
15
|
-
* another — the exact failure this design forbids.
|
|
9
|
+
* Token expiry model (CDN-04, D-07, revised):
|
|
16
10
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* this module
|
|
11
|
+
* `frag.baseurl` is a string frozen at the moment hls.js parsed the level
|
|
12
|
+
* playlist. Live playlists reload on their own cadence, so their fragments pick
|
|
13
|
+
* up refreshed grants for free — reload IS the refresh path. VOD playlists are
|
|
14
|
+
* parsed exactly once by hls.js 1.6.10 (its level controller only (re)requests a
|
|
15
|
+
* playlist it has none of, or one that is live), so for VOD that string never
|
|
16
|
+
* changes. Pure transfer alone therefore pins a VOD asset's segments to the
|
|
17
|
+
* first grant for the asset's entire duration, and every segment 403s once that
|
|
18
|
+
* grant lapses — the condition CONTEXT.md named as D-07's revisit trigger, since
|
|
19
|
+
* observed in production (a ~294s grant against a ~26min asset).
|
|
20
|
+
*
|
|
21
|
+
* So when the inherited grant is inside the manager's expiry margin, this module
|
|
22
|
+
* now defers to the shared grant via `updateUrlWithTokenParams` rather than
|
|
23
|
+
* copying a dead string.
|
|
24
|
+
*
|
|
25
|
+
* Why sharing a grant across renditions is safe (supersedes this module's
|
|
26
|
+
* previous prohibition): the token service derives `token_path` from the
|
|
27
|
+
* directory of the URL it signs, and `token_path` is a PREFIX scope. An
|
|
28
|
+
* asset-level grant returns 200 on every rendition beneath it — verified live
|
|
29
|
+
* across all four renditions of a real asset. The hazard this module previously
|
|
30
|
+
* guarded against — one rendition's grant handed to another — is real ONLY for a
|
|
31
|
+
* rendition-scoped grant, and that is prevented at its source by
|
|
32
|
+
* `CDNTokenManager.sourceUrl`, which pins acquisition of the shared grant to the
|
|
33
|
+
* asset-level source URL. The invariant is therefore "the shared grant must be
|
|
34
|
+
* asset-level", not "segments must never refresh".
|
|
35
|
+
*
|
|
36
|
+
* Still true: no timer, interval, or scheduled re-fetch belongs in this module.
|
|
37
|
+
* Refresh here is demand-driven, on the load that needs it.
|
|
32
38
|
*/
|
|
33
39
|
import type { TokenType } from './cdn-token-manager';
|
|
34
40
|
export interface SegmentLoaderFrag {
|
|
@@ -87,6 +93,12 @@ export interface SegmentLoaderClass {
|
|
|
87
93
|
*/
|
|
88
94
|
export interface SegmentSigningTokenSource {
|
|
89
95
|
readonly tokenType: TokenType | undefined;
|
|
96
|
+
/** True when `expirationTime` is absent or within the manager's expiry margin. */
|
|
97
|
+
isTokenExpired: (expirationTime: number | string | null | undefined) => boolean;
|
|
98
|
+
/** Returns `url` signed with the shared, asset-level grant, refreshing it if needed. */
|
|
99
|
+
updateUrlWithTokenParams: (options: {
|
|
100
|
+
url: string;
|
|
101
|
+
}) => Promise<string>;
|
|
90
102
|
}
|
|
91
103
|
export declare const SEGMENT_SIGNING_TOKEN_TYPES: readonly TokenType[];
|
|
92
104
|
/**
|
|
@@ -105,6 +117,15 @@ export declare function segmentSigningUnsupportedMessage(tokenType: TokenType |
|
|
|
105
117
|
* failure).
|
|
106
118
|
*/
|
|
107
119
|
export declare function signSegmentUrlFromPlaylist(segmentUrl: string, parentPlaylistUrl: string): string;
|
|
120
|
+
/**
|
|
121
|
+
* Reads the `expires` value off a parent playlist URL, or null when the URL
|
|
122
|
+
* carries no token at all or cannot be parsed. Used to decide between the pure
|
|
123
|
+
* transfer fast path and a shared-grant refresh.
|
|
124
|
+
*/
|
|
125
|
+
export declare function readPlaylistGrantExpiry(parentPlaylistUrl: string): {
|
|
126
|
+
hasToken: boolean;
|
|
127
|
+
expires: string | null;
|
|
128
|
+
};
|
|
108
129
|
/**
|
|
109
130
|
* Returns a loader constructor extending `BaseLoader`: construct the base,
|
|
110
131
|
* bind the inherited `load`, then assign an own `load` property that reads
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segment-token-loader.d.ts","sourceRoot":"","sources":["../../../../../src/engines/segment-token-loader.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"segment-token-loader.d.ts","sourceRoot":"","sources":["../../../../../src/engines/segment-token-loader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED