eb-player 2.1.2 → 2.1.3

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.
@@ -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;IAsTlB,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"}
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`). Each segment is signed with the
6
- * grant carried by its OWN parent playlist — read from `context.frag.baseurl`,
7
- * the object hls.js itself parsed that fragment from — never from any store,
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
- * CRITICAL: this module must never acquire or refresh a token. It only reads
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
- * Token expiry model (CDN-04, D-07): a segment carries whatever grant its
18
- * parent playlist carried when hls.js parsed it. Live playlists reload on
19
- * their own cadence, so their fragments pick up refreshed grants with no
20
- * refresh machinery here — reload IS the refresh path. VOD playlists are
21
- * parsed exactly once by hls.js 1.6.10 (its level controller only
22
- * (re)requests a playlist it has none of, or one that is live), so a VOD
23
- * asset's segment grants are frozen at first parse for the asset's entire
24
- * duration. If a token's lifetime is shorter than the asset's duration, later
25
- * segments will be rejected by the edge and surface through the existing
26
- * error/retry path. This is an accepted operational constraint — the token
27
- * service's lifetime must exceed the longest VOD asset — not an oversight;
28
- * D-07 chose reload-cadence refresh and CONTEXT.md defers a proactive
29
- * near-expiry refresh path with a named revisit condition (a real asset shown
30
- * to outlive its grant). No timer, interval, or scheduled re-fetch belongs in
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAOpD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,iBAAiB,CAAA;CACzB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACtD,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACvC,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CACzD;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACxE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAA;IACjG,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;CACzE;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,MAAM,EAAE,mBAAmB,GAAG;QACjC,IAAI,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,sBAAsB,KAAK,IAAI,CAAA;KAC9G,CAAA;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAA;CAC1C;AAQD,eAAO,MAAM,2BAA2B,EAAE,SAAS,SAAS,EAI1D,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAIzF;AAwBD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAahG;AASD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,kBAAkB,EAC9B,WAAW,EAAE,yBAAyB,GACrC,kBAAkB,CAuEpB"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eb-player",
3
- "version": "2.1.2",
3
+ "version": "2.1.3",
4
4
  "scripts": {
5
5
  "generate-demo": "pnpm generate --brand default --variant demo && cp dist/players/default/default.js test_player/src/demo.js",
6
6
  "dev-test-player": "cd test_player && pnpm run dev",