diff --git a/packages/video-player/dist/core/player-runtime.d.ts b/packages/video-player/dist/core/player-runtime.d.ts index 928d1bb..25d4f4c 100644 --- a/packages/video-player/dist/core/player-runtime.d.ts +++ b/packages/video-player/dist/core/player-runtime.d.ts @@ -105,6 +105,8 @@ export declare class VideoPlayerRuntime { private currentEngine; private currentSource; private vhsAuthTokenRef; + private hlsAuthTokenRef; + private hlsTokenResolvePromise; private vhsRequestCleanupRef; private visibilityObserverRef; private originalPlayRef; @@ -116,6 +118,8 @@ export declare class VideoPlayerRuntime { dispose(): void; getState(): VideoPlayerRuntimeState; getPlayer(): VideoPlayerRuntimePlayer | null; + private ensureHlsAuthToken; + private refreshHlsAuthTokenInBackground; private emit; private tryPlay; private resolveEngine; diff --git a/packages/video-player/dist/core/player-runtime.d.ts.map b/packages/video-player/dist/core/player-runtime.d.ts.map index 93c6002..132abb7 100644 --- a/packages/video-player/dist/core/player-runtime.d.ts.map +++ b/packages/video-player/dist/core/player-runtime.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"player-runtime.d.ts","sourceRoot":"","sources":["../../src/core/player-runtime.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"player-runtime.d.ts","sourceRoot":"","sources":["../../src/core/player-runtime.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/video-player/dist/core/player-runtime.js b/packages/video-player/dist/core/player-runtime.js index ff79ca7..850751f 100644 --- a/packages/video-player/dist/core/player-runtime.js +++ b/packages/video-player/dist/core/player-runtime.js @@ -12,37 +12,30 @@ const detectIOS = () => { const userAgent = navigator.userAgent || ""; return /iPad|iPhone|iPod/.test(userAgent); }; -const createAuthPlaylistLoader = ({ debug, }) => { +const createAuthPlaylistLoader = ({ debug, getToken, refreshToken, }) => { const BaseLoader = Hls.DefaultConfig.loader; return class AuthPlaylistLoader extends BaseLoader { constructor(config) { super({ ...config, debug: debug ?? false }); } load(context, config, callbacks) { - const start = async () => { - try { - const token = await resolveVideoPlayerToken(); - if (token) { - context.headers = { - ...(context.headers ?? {}), - Authorization: `Bearer ${token}`, - }; - } + try { + const token = getToken(); + if (token) { + context.headers = { + ...(context.headers ?? {}), + Authorization: `Bearer ${token}`, + }; } - catch (error) { - if (debug) { - console.warn("[VideoRuntime:HLS] Failed to append auth header to playlist request", error); - } - } - finally { - super.load(context, config, callbacks); - } - }; - void start().catch(error => { + } + catch (error) { if (debug) { - console.error("[VideoRuntime:HLS] Playlist loader start failed", error); + console.warn("[VideoRuntime:HLS] Failed to append auth header to playlist request", error); } - }); + } + // Critical path must stay sync for hls.js loader lifecycle. + super.load(context, config, callbacks); + refreshToken(); } }; }; @@ -82,6 +75,8 @@ export class VideoPlayerRuntime { this.currentEngine = null; this.currentSource = null; this.vhsAuthTokenRef = null; + this.hlsAuthTokenRef = null; + this.hlsTokenResolvePromise = null; this.vhsRequestCleanupRef = null; this.visibilityObserverRef = null; this.originalPlayRef = null; @@ -147,6 +142,8 @@ export class VideoPlayerRuntime { this.vhsRequestCleanupRef?.(); this.vhsRequestCleanupRef = null; this.vhsAuthTokenRef = null; + this.hlsAuthTokenRef = null; + this.hlsTokenResolvePromise = null; if (this.playerRef) { this.playerRef.dispose(); } @@ -171,6 +168,29 @@ export class VideoPlayerRuntime { getPlayer() { return this.playerRef; } + async ensureHlsAuthToken() { + if (this.hlsTokenResolvePromise !== null) { + await this.hlsTokenResolvePromise; + return; + } + this.hlsTokenResolvePromise = resolveVideoPlayerToken() + .then(token => { + this.hlsAuthTokenRef = token ?? null; + }) + .catch(() => { + this.hlsAuthTokenRef = null; + }) + .finally(() => { + this.hlsTokenResolvePromise = null; + }); + await this.hlsTokenResolvePromise; + } + refreshHlsAuthTokenInBackground() { + if (this.hlsTokenResolvePromise !== null) { + return; + } + void this.ensureHlsAuthToken(); + } emit(event, payload) { const listeners = this.eventListeners.get(event); if (!listeners?.size) { @@ -417,7 +437,11 @@ export class VideoPlayerRuntime { const preferHqSettings = options.preferHQ ? { abrEwmaDefaultEstimate: 10690560 * 1.2 } : {}; - const playlistLoader = createAuthPlaylistLoader({ debug: options.debug }); + const playlistLoader = createAuthPlaylistLoader({ + debug: options.debug, + getToken: () => this.hlsAuthTokenRef, + refreshToken: () => this.refreshHlsAuthTokenInBackground(), + }); return { debug: options.debug, enableWorker: true, @@ -456,6 +480,8 @@ export class VideoPlayerRuntime { await this.loadVideoJsSource(); return; } + // Resolve async token before starting HLS manifest load. + await this.ensureHlsAuthToken(); const setupHls = () => { if (this.hlsLoaded) { return; diff --git a/packages/video-player/dist/core/player-runtime.js.map b/packages/video-player/dist/core/player-runtime.js.map index 456c9f9..0b2a406 100644 --- a/packages/video-player/dist/core/player-runtime.js.map +++ b/packages/video-player/dist/core/player-runtime.js.map @@ -1 +1 @@ -{"version":3,"file":"player-runtime.js","sourceRoot":"","sources":["../../src/core/player-runtime.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"player-runtime.js","sourceRoot":"","sources":["../../src/core/player-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,GAON,MAAM,QAAQ,CAAC;AAChB,OAAO,OAAO,MAAM,UAAU,CAAC;AAG/B,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAGN,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAgH3D,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAEpD,MAAM,SAAS,GAAG,GAAG,EAAE;IACtB,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC;IAE5C,OAAO,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,YAAY,GAKZ,EAA6B,EAAE;IAC/B,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,MAEH,CAAC;IAEnC,OAAO,MAAM,kBAAmB,SAAQ,UAAU;QACjD,YAAY,MAAiB;YAC5B,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QAEQ,IAAI,CACZ,OAA8B,EAC9B,MAA2B,EAC3B,SAAiD;YAEjD,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACzB,IAAI,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,OAAO,GAAG;wBACjB,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;wBAC1B,aAAa,EAAE,UAAU,KAAK,EAAE;qBAChC,CAAC;gBACH,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CACX,qEAAqE,EACrE,KAAK,CACL,CAAC;gBACH,CAAC;YACF,CAAC;YAED,4DAA4D;YAC5D,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YACvC,YAAY,EAAE,CAAC;QAChB,CAAC;KACD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACvB,MAAwC,EACb,EAAE,CAAC,CAAC;IAC/B,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE;IACtB,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,mBAAmB;CACzC,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CACxB,OAAwE,EACxE,QAAoC,EACR,EAAE,CAAC,CAAC;IAChC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,MAAM,CAAC;IAC3D,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,EAAE,QAAQ,IAAI,MAAM;IAC1D,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ,EAAE,OAAO,IAAI,MAAM;IACvD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,EAAE,QAAQ,IAAI,KAAK;IACzD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,EAAE,QAAQ,IAAI,IAAI;IACxD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ,EAAE,UAAU,IAAI,IAAI;IAC9D,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ,EAAE,WAAW;IACzD,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,IAAI;IAC/C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,KAAK;IAChD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,MAAM;IAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,EAAE,QAAQ,IAAI,KAAK;IACzD,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,KAAK;IAChD,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ,EAAE,WAAW,IAAI,CAAC;IAC9D,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ,EAAE,KAAK;IACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,EAAE,QAAQ;IAChD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ,EAAE,IAAI,IAAI,KAAK;IAC7C,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ,EAAE,UAAU,IAAI,IAAI;IAC9D,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ,EAAE,WAAW,IAAI,EAAE;IAC/D,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ,EAAE,UAAU,IAAI,EAAE;IAC5D,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,QAAQ,EAAE,aAAa;CAC/D,CAAC,CAAC;AAEH,MAAM,OAAO,kBAAkB;IAA/B;QACS,iBAAY,GAAuB,IAAI,CAAC;QACxC,aAAQ,GAA4B,IAAI,CAAC;QACzC,cAAS,GAAoC,IAAI,CAAC;QAClD,WAAM,GAAe,IAAI,CAAC;QAC1B,YAAO,GAAqC,IAAI,CAAC;QACjD,kBAAa,GAA0B,IAAI,CAAC;QAC5C,kBAAa,GAAoC,IAAI,CAAC;QACtD,oBAAe,GAA8B,IAAI,CAAC;QAClD,oBAAe,GAAkB,IAAI,CAAC;QACtC,2BAAsB,GAAyB,IAAI,CAAC;QACpD,yBAAoB,GAAwB,IAAI,CAAC;QACjD,0BAAqB,GAAgC,IAAI,CAAC;QAC1D,oBAAe,GAA4C,IAAI,CAAC;QAChE,cAAS,GAAG,KAAK,CAAC;QAClB,mBAAc,GAAG,IAAI,GAAG,EAG7B,CAAC;IAkyBL,CAAC;IAhyBA,KAAK,CAAC,IAAI,CAAC,OAAsC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAClB,MAAM,EAAE,KAAK,CAAC,MAAwB;YACtC,MAAM,EAAE,KAAK,CAAC,MAAkC;YAChD,MAAM,EAAE,IAAI,CAAC,SAAqC;SAClD,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAC3B,IAAI,CAAC,SAAqC,EAC1C,KAAK,CACL,CAAC;QAEF,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAwC;QACpD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;QAE3B,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAErD,MAAM,aAAa,GAClB,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,MAAM,CAAC,GAAG;YAC9C,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAClD,MAAM,sBAAsB,GAC3B,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;YAC1C,WAAW,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC;QAEtC,IAAI,aAAa,IAAI,sBAAsB,EAAE,CAAC;YAC7C,IAAI,aAAa,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;oBACzB,QAAQ,EAAE,QAAQ,CAAC,MAAM;oBACzB,IAAI,EAAE,WAAW,CAAC,MAAM;oBACxB,MAAM,EAAE,IAAI,CAAC,aAA+B;iBAC5C,CAAC,CAAC;YACJ,CAAC;YAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC5C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,EAAE,CACD,KAAQ,EACR,OAAyD;QAEzD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAE9C,CAAC;QACF,SAAS,CAAC,GAAG,CAAC,OAAqC,CAAC,CAAC;QAErD,OAAO,GAAG,EAAE;YACX,SAAS,CAAC,MAAM,CAAC,OAAqC,CAAC,CAAC;QACzD,CAAC,CAAC;IACH,CAAC;IAED,OAAO;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEzB,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC9B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QAEnC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,QAAQ;QACP,OAAO;YACN,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YACpC,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,MAAM,EAAE,IAAI,CAAC,aAAa;SAC1B,CAAC;IACH,CAAC;IAED,SAAS;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC/B,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI,EAAE,CAAC;YAC1C,MAAM,IAAI,CAAC,sBAAsB,CAAC;YAClC,OAAO;QACR,CAAC;QAED,IAAI,CAAC,sBAAsB,GAAG,uBAAuB,EAAE;aACrD,IAAI,CAAC,KAAK,CAAC,EAAE;YACb,IAAI,CAAC,eAAe,GAAG,KAAK,IAAI,IAAI,CAAC;QACtC,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACX,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACb,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACpC,CAAC,CAAC,CAAC;QAEJ,MAAM,IAAI,CAAC,sBAAsB,CAAC;IACnC,CAAC;IAEO,+BAA+B;QACtC,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI,EAAE,CAAC;YAC1C,OAAO;QACR,CAAC;QAED,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAChC,CAAC;IAEO,IAAI,CACX,KAAQ,EACR,OAAsC;QAEtC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;YACtB,OAAO;QACR,CAAC;QAED,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC5B,IAAI,CAAC;gBACH,QAA6D,CAAC,OAAO,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE;oBAC/C,KAAK;oBACL,KAAK;iBACL,CAAC,CAAC;YACJ,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,OAAO,CAAC,MAAgC;QAC/C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,UAAU,IAAI,OAAQ,UAA4B,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC7E,KAAM,UAA4B,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3D,CAAC;IACF,CAAC;IAEO,aAAa,CAAC,OAAkC;QACvD,OAAO,oBAAoB,CAAC;YAC3B,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG;YACvB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;YACzB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS,EAAE;SACnC,CAAC,CAAC;IACJ,CAAC;IAEO,kBAAkB;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACzC,OAAO;QACR,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrD,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9B,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClD,CAAC;QACD,YAAY,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzB,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC3C,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;IAC9B,CAAC;IAEO,YAAY;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,UAAU,GAAG,OAGlB,CAAC;QACF,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;QACnC,UAAU,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,CAAC;QAEvC,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;YACvD,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;YAC/B,OAAO,EACN,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;YACtE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;YACnC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACrC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;SACzB,CAA6B,CAAC,CAAC;QAEhC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAClB,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,CAAC,sBAAsB,CAAC;aAC5D,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;YACxB,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;IAEO,UAAU,CAAC,MAAe;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACZ,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACP,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAEO,wBAAwB,CAC/B,QAAmC,EACnC,IAA+B;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO;QACR,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;YACxB,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACvE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACzC,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IAEO,sBAAsB,CAAC,MAAgC;QAC9D,MAAM,CAAC,wBAAwB,GAAG,QAAQ,CAAC,EAAE;YAC5C,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;oBACxD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YAED,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;gBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;gBACtD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;gBAC9C,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;oBAC9B,SAAS,GAAG,YAAY,CAAC;oBACzB,QAAQ,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,EAAE,EAAE,CAAC,CAAC;gBACxC,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,CAAC,aAAa,GAAG,GAAG,EAAE;YAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC3D,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,CAAC;gBAC/B,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;oBAC5B,OAAO,OAAO,CAAC,aAAa,CAAC;gBAC9B,CAAC;YACF,CAAC;YAED,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1B,CAAC,CAAC;QAEF,MAAM,CAAC,mBAAmB,GAAG,QAAQ,CAAC,EAAE;YACvC,MAAM,IAAI,GAAG,CAAC,QAAiB,EAAE,EAAE;gBAClC,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACzD,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACpB,CAAC;YACF,CAAC,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAExB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,EAAE;oBAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC;oBACrE,IAAI,aAAa,EAAE,CAAC;wBACnB,IAAI,CAAC,aAAa,CAAC,CAAC;oBACrB,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC;QAEF,MAAM,CAAC,oBAAoB,GAAG,QAAQ,CAAC,EAAE;YACxC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,WAAW,GAAG,GAAG,EAAE;gBACxB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,OAAO,GAAG,IAAI,CAAC;oBACf,QAAQ,EAAE,CAAC;gBACZ,CAAC;YACF,CAAC,CAAC;YAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,MAAM,CAAC,sBAAsB,GAAG,QAAQ,CAAC,EAAE;YAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,aAAa,GAAG,GAAG,EAAE;gBAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,OAAO,GAAG,IAAI,CAAC;oBACf,QAAQ,EAAE,CAAC;gBACZ,CAAC;YACF,CAAC,CAAC;YAEF,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,MAAM,CAAC,yBAAyB,GAAG,QAAQ,CAAC,EAAE;YAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/D,OAAO;YACR,CAAC;YAED,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC;IACH,CAAC;IAEO,+BAA+B;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO;QACR,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACtB,MAAM,EAAE,IAAI,CAAC,aAA+B;aAC5C,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,EAAE;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrC,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,cAAqC;QACpE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAEnC,IAAI,cAAc,KAAK,UAAU,IAAI,IAAI,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACzB,QAAQ,EAAE,IAAI,CAAC,aAAa;gBAC5B,IAAI,EAAE,UAAU;gBAChB,MAAM;aACN,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAE5B,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAEvC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEO,cAAc,CAAC,YAAgC,EAAE;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ;YACxC,CAAC,CAAC,EAAE,sBAAsB,EAAE,QAAQ,GAAG,GAAG,EAAE;YAC5C,CAAC,CAAC,EAAE,CAAC;QAEN,MAAM,cAAc,GAAG,wBAAwB,CAAC;YAC/C,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe;YACpC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,+BAA+B,EAAE;SAC1D,CAAC,CAAC;QAEH,OAAO;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,IAAI;YAClB,mBAAmB,EAAE,CAAC;YACtB,uBAAuB,EAAE,CAAC;YAC1B,qBAAqB,EAAE,IAAI;YAC3B,yBAAyB,EAAE,IAAI;YAC/B,4BAA4B,EAAE,IAAI;YAClC,gBAAgB,EAAE,EAAE;YACpB,mBAAmB,EAAE,CAAC;YACtB,aAAa,EAAE,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,aAAa,EAAE,KAAK;YACpB,cAAc,EAAE,KAAK;YACrB,qBAAqB,EAAE,CAAC;YACxB,aAAa,EAAE,EAAE;YACjB,WAAW,EAAE,GAAG;YAChB,aAAa,EAAE,CAAC;YAChB,wBAAwB,EAAE,CAAC;YAC3B,GAAG,gBAAgB;YACnB,GAAG,SAAS;YACZ,OAAO,EAAE,cAAc;SACvB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,OAAO;QACR,CAAC;QAED,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/B,OAAO;QACR,CAAC;QAED,yDAAyD;QACzD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,MAAM,QAAQ,GAAG,GAAG,EAAE;YACrB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,OAAO;YACR,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAEtB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;YACjB,MAAmC,CAAC,WAAW,GAAG,GAAG,CAAC;YACvD,IAAI,gBAAgB,GAAG,CAAC,CAAC;YACzB,MAAM,qBAAqB,GAAG,EAAE,CAAC;YACjC,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,MAAM,gBAAgB,GAAG,KAAM,CAAC;YAChC,IAAI,gBAAgB,GAAG,CAAC,CAAC,CAAC;YAE1B,MAAM,YAAY,GAAG,GAAG,EAAE;gBACzB,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC9C,OAAO,KAAK,CAAC;gBACd,CAAC;gBACD,OAAO,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC;YACtD,CAAC,CAAC;YAEF,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBACnD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;oBAC3B,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,OAAO,EAAE,aAAa;oBAChC,IAAI,EAAE,OAAO,EAAE,IAAI;iBACnB,CAAC,CAAC;gBAEH,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBACnB,KAAK,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;oBAC/D,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAC1B,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;wBACxB,MAAM,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;wBAClC,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;wBACnC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;oBAC9C,CAAC;gBACF,CAAC;gBAED,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;oBAC7B,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACpC,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,EAAE;gBACpC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACxB,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG,YAAY,CAAC;oBAC7C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;gBACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;oBAClB,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,IAAI,CAAC,KAAK;iBACjB,CAAC,CAAC;gBAEH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO;gBACR,CAAC;gBAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,IAAI,GAAG,GAAG,aAAa,GAAG,gBAAgB,EAAE,CAAC;oBAC5C,gBAAgB,GAAG,CAAC,CAAC;oBACrB,gBAAgB,GAAG,CAAC,CAAC,CAAC;gBACvB,CAAC;gBACD,aAAa,GAAG,GAAG,CAAC;gBAEpB,IAAI,gBAAgB,IAAI,qBAAqB,EAAE,CAAC;oBAC/C,OAAO;gBACR,CAAC;gBACD,gBAAgB,IAAI,CAAC,CAAC;gBAEtB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,KAAK,GAAG,CAAC,UAAU,CAAC,aAAa;wBAChC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;wBACxC,MAAM;oBACP,KAAK,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;wBACjC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;wBACtC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;wBAClD,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;4BAChC,IAAI,gBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC;gCAC7B,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;4BACpC,CAAC;4BACD,gBAAgB,IAAI,CAAC,CAAC;4BAEtB,IAAI,gBAAgB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;gCACtC,MAAM,QAAQ,GACb,OAAO,CAAC,SAAS,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;gCACvD,IAAI,QAAQ,EAAE,CAAC;oCACd,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;oCACjC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;oCAC9B,UAAU,CAAC,GAAG,EAAE;wCACf,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC;4CACnD,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;wCAC/B,CAAC;wCACD,GAAG,CAAC,iBAAiB,EAAE,CAAC;wCACxB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4CACvC,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;wCAC1C,CAAC;oCACF,CAAC,EAAE,GAAG,CAAC,CAAC;oCACR,MAAM;gCACP,CAAC;4BACF,CAAC;iCAAM,CAAC;gCACP,gBAAgB,GAAG,qBAAqB,CAAC;gCACzC,MAAM;4BACP,CAAC;wBACF,CAAC;wBAED,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,CAAC;wBAChD,MAAM;oBACP,CAAC;oBACD;wBACC,UAAU,CAAC,GAAG,EAAE;4BACf,IAAI,CAAC,WAAW,EAAE,CAAC;4BACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACvB,QAAQ,EAAE,CAAC;wBACZ,CAAC,EAAE,IAAI,CAAC,CAAC;gBACX,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAEvB,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACF,CAAC,CAAC;QAEF,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC;YACzB,KAAK,MAAM;gBACV,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChD,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,IAAQ,EAAE,EAAE;oBAC7B,QAAQ,EAAE,CAAC;oBACX,OAAQ,IAAI,CAAC,eAAmE,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC3F,CAAC,CAAC;gBACF,MAAM;YACP,KAAK,UAAU,CAAC,CAAC,CAAC;gBACjB,MAAM,GAAG,GAAG,IAAI,GAAG,CAClB,IAAI,CAAC,cAAc,CAAC;oBACnB,aAAa,EAAE,KAAK;iBACpB,CAAC,CACF,CAAC;gBACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;gBACjB,MAAmC,CAAC,WAAW,GAAG,GAAG,CAAC;gBACvD,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACvB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnC,MAAM;YACP,CAAC;YACD,KAAK,YAAY;gBAChB,IAAI,OAAO,oBAAoB,KAAK,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtE,IAAI,CAAC,qBAAqB,GAAG,IAAI,oBAAoB,CACpD,OAAO,CAAC,EAAE;wBACT,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;4BAChC,QAAQ,EAAE,CAAC;4BACX,IAAI,CAAC,qBAAqB,EAAE,UAAU,EAAE,CAAC;4BACzC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;wBACnC,CAAC;oBACF,CAAC,EACD,EAAE,SAAS,EAAE,IAAI,EAAE,CACnB,CAAC;oBACF,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACP,QAAQ,EAAE,CAAC;gBACZ,CAAC;gBACD,MAAM;YACP;gBACC,QAAQ,EAAE,CAAC;QACb,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,uBAAuB,EAAE,CAAC;YAC9C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAClB,KAAK,EAAE,SAAS;gBAChB,KAAK;aACL,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,GAAG,CAAC;YACV;gBACC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG;gBACvB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,mBAAmB;aAChD;SACD,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,EAAE;gBACjC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;IAEO,uBAAuB;QAC9B,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACnC,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;YAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC;IACF,CAAC;IAEO,wBAAwB,CAAC,MAAgC;QAChE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,OAAO;QACR,CAAC;QAED,MAAM,UAAU,GAAG,OAelB,CAAC;QAEF,MAAM,GAAG,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC;QACzD,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,OAAO;QACR,CAAC;QAED,MAAM,qBAAqB,GAAG,GAAG,CAAC,aAAa,CAAC;QAEhD,GAAG,CAAC,aAAa,GAAG,CAAC,cAAmC,EAAE,EAAE;YAC3D,MAAM,gBAAgB,GACrB,qBAAqB,EAAE,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,cAAc,CAAC;YAEpE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1B,gBAAgB,CAAC,OAAO,GAAG;oBAC1B,GAAG,CAAC,gBAAgB,CAAC,OAAO,IAAI,EAAE,CAAC;oBACnC,aAAa,EAAE,UAAU,IAAI,CAAC,eAAe,EAAE;iBAC/C,CAAC;YACH,CAAC;YAED,OAAO,gBAAgB,CAAC;QACzB,CAAC,CAAC;QAEF,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE;YAChC,GAAG,CAAC,aAAa,GAAG,qBAAqB,CAAC;QAC3C,CAAC,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE;YAC1B,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAClC,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,WAAW;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAsC,CAAC,WAAW,GAAG,IAAI,CAAC;YAChE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS;iBACjC,EAAE,EAAE;gBACL,EAAE,aAAa,CAAC,OAAO,CAA4B,CAAC;YACrD,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YAC1E,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;gBAC3C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACtD,CAAC;QACF,CAAC;IACF,CAAC;CACD"} \ No newline at end of file diff --git a/packages/video-player/package.json b/packages/video-player/package.json index bb7d4e4..5ba57e2 100644 --- a/packages/video-player/package.json +++ b/packages/video-player/package.json @@ -1,6 +1,6 @@ { "name": "@hublib-web/video-player", - "version": "0.1.1", + "version": "0.1.2", "description": "Cross-framework video player package for React and Angular", "license": "MIT", "type": "module", diff --git a/packages/video-player/src/core/player-runtime.ts b/packages/video-player/src/core/player-runtime.ts index 74f25d5..ee31bfb 100644 --- a/packages/video-player/src/core/player-runtime.ts +++ b/packages/video-player/src/core/player-runtime.ts @@ -143,8 +143,12 @@ const detectIOS = () => { const createAuthPlaylistLoader = ({ debug, + getToken, + refreshToken, }: { debug?: boolean; + getToken: () => string | null; + refreshToken: () => void; }): PlaylistLoaderConstructor => { const BaseLoader = Hls.DefaultConfig.loader as unknown as new ( config: HlsConfig, @@ -155,37 +159,31 @@ const createAuthPlaylistLoader = ({ super({ ...config, debug: debug ?? false }); } - load( + override load( context: PlaylistLoaderContext, config: LoaderConfiguration, callbacks: LoaderCallbacks, ): void { - const start = async () => { - try { - const token = await resolveVideoPlayerToken(); - if (token) { - context.headers = { - ...(context.headers ?? {}), - Authorization: `Bearer ${token}`, - }; - } - } catch (error) { - if (debug) { - console.warn( - "[VideoRuntime:HLS] Failed to append auth header to playlist request", - error, - ); - } - } finally { - super.load(context, config, callbacks); + try { + const token = getToken(); + if (token) { + context.headers = { + ...(context.headers ?? {}), + Authorization: `Bearer ${token}`, + }; } - }; - - void start().catch(error => { + } catch (error) { if (debug) { - console.error("[VideoRuntime:HLS] Playlist loader start failed", error); + console.warn( + "[VideoRuntime:HLS] Failed to append auth header to playlist request", + error, + ); } - }); + } + + // Critical path must stay sync for hls.js loader lifecycle. + super.load(context, config, callbacks); + refreshToken(); } }; }; @@ -232,6 +230,8 @@ export class VideoPlayerRuntime { private currentEngine: PlaybackEngine | null = null; private currentSource: VideoPlayerRuntimeSource | null = null; private vhsAuthTokenRef: string | null | undefined = null; + private hlsAuthTokenRef: string | null = null; + private hlsTokenResolvePromise: Promise | null = null; private vhsRequestCleanupRef: (() => void) | null = null; private visibilityObserverRef: IntersectionObserver | null = null; private originalPlayRef: VideoPlayerRuntimePlayer["play"] | null = null; @@ -328,6 +328,8 @@ export class VideoPlayerRuntime { this.vhsRequestCleanupRef?.(); this.vhsRequestCleanupRef = null; this.vhsAuthTokenRef = null; + this.hlsAuthTokenRef = null; + this.hlsTokenResolvePromise = null; if (this.playerRef) { this.playerRef.dispose(); @@ -358,6 +360,34 @@ export class VideoPlayerRuntime { return this.playerRef; } + private async ensureHlsAuthToken(): Promise { + if (this.hlsTokenResolvePromise !== null) { + await this.hlsTokenResolvePromise; + return; + } + + this.hlsTokenResolvePromise = resolveVideoPlayerToken() + .then(token => { + this.hlsAuthTokenRef = token ?? null; + }) + .catch(() => { + this.hlsAuthTokenRef = null; + }) + .finally(() => { + this.hlsTokenResolvePromise = null; + }); + + await this.hlsTokenResolvePromise; + } + + private refreshHlsAuthTokenInBackground(): void { + if (this.hlsTokenResolvePromise !== null) { + return; + } + + void this.ensureHlsAuthToken(); + } + private emit( event: K, payload: VideoPlayerRuntimeEventMap[K], @@ -658,7 +688,11 @@ export class VideoPlayerRuntime { ? { abrEwmaDefaultEstimate: 10690560 * 1.2 } : {}; - const playlistLoader = createAuthPlaylistLoader({ debug: options.debug }); + const playlistLoader = createAuthPlaylistLoader({ + debug: options.debug, + getToken: () => this.hlsAuthTokenRef, + refreshToken: () => this.refreshHlsAuthTokenInBackground(), + }); return { debug: options.debug, @@ -702,6 +736,9 @@ export class VideoPlayerRuntime { return; } + // Resolve async token before starting HLS manifest load. + await this.ensureHlsAuthToken(); + const setupHls = () => { if (this.hlsLoaded) { return;