1import { n as e } from "./chunk-Bh1tDfsg.js"; 2import { i as t, n, r, t as i } from "./video.es-DWhCbnPv.js"; 3var a = e(t()), o = e(r()), s = (e2) => { 4 let t2 = new ArrayBuffer(e2.length * 2), n2 = new Uint16Array(t2); 5 for (let t3 = 0; t3 < e2.length; t3++) n2[t3] = e2.charCodeAt(t3); 6 return n2; 7}, c = (e2) => String.fromCharCode.apply(null, new Uint8Array(e2.buffer || e2)), l = (e2) => String.fromCharCode.apply(null, new Uint16Array(e2.buffer || e2)), u = (e2) => { 8 let t2 = o.default.createElement(`a`); 9 return t2.href = e2, t2.hostname; 10}, d = (e2, t2) => { 11 if (e2 === t2) return true; 12 if (e2.byteLength !== t2.byteLength) return false; 13 let n2 = new DataView(e2), r2 = new DataView(t2); 14 for (let e3 = 0; e3 < n2.byteLength; e3++) if (n2.getUint8(e3) !== r2.getUint8(e3)) return false; 15 return true; 16}, f = (e2) => e2 instanceof Uint8Array || e2 instanceof Uint16Array ? e2.buffer : e2, p = (...e2) => { 17 let t2 = i.obj || i; 18 return (t2.merge || t2.mergeOptions).apply(t2, e2); 19}, m = (...e2) => { 20 let t2 = p(...e2); 21 return Object.keys(t2).forEach((e3) => { 22 t2[e3] === null && delete t2[e3]; 23 }), t2; 24}, h = (e2) => { 25 let t2 = []; 26 return Object.keys(e2).forEach((n2) => { 27 let r2 = O(n2, e2[n2])[0]; 28 t2.push(r2); 29 }), t2; 30}, g = i.xhr.httpHandler; 31g || (g = (e2, t2) => (n2, r2, i2) => { 32 if (n2) { 33 e2(n2); 34 return; 35 } 36 if (r2.statusCode >= 400 && r2.statusCode <= 599) { 37 let n3 = i2; 38 t2 && (n3 = String.fromCharCode.apply(null, new Uint8Array(i2))), e2({ cause: n3 }); 39 return; 40 } 41 e2(null, i2); 42}); 43var ee = (e2) => { 44 let t2 = String.fromCharCode.apply(null, new Uint16Array(e2)), n2 = new a.default.DOMParser().parseFromString(t2, `application/xml`), r2 = n2.getElementsByTagName(`HttpHeaders`)[0], i2 = {}; 45 if (r2) { 46 let e3 = r2.getElementsByTagName(`name`), t3 = r2.getElementsByTagName(`value`); 47 for (let n3 = 0; n3 < e3.length; n3++) i2[e3[n3].childNodes[0].nodeValue] = t3[n3].childNodes[0].nodeValue; 48 } 49 let o2 = n2.getElementsByTagName(`Challenge`)[0], s2; 50 return o2 && (s2 = a.default.atob(o2.childNodes[0].nodeValue)), n2.querySelector(`parsererror`) && (i2 = { "Content-Type": `text/xml; charset=utf-8`, SOAPAction: `"http://schemas.microsoft.com/DRM/2007/03/protocols/AcquireLicense"` }, s2 = e2), { headers: i2, message: s2 }; 51}, _ = (e2, t2, n2, r2, a2) => { 52 let o2 = ee(n2), s2 = o2.message, c2 = m(o2.headers, r2.emeHeaders, t2.licenseHeaders); 53 i.xhr({ uri: t2.url, method: `post`, headers: c2, body: s2, responseType: `arraybuffer`, requestType: `license`, metadata: { keySystem: e2 } }, g(a2, true)); 54}, v = { EMEFailedToRequestMediaKeySystemAccess: `eme-failed-request-media-key-system-access`, EMEFailedToCreateMediaKeys: `eme-failed-create-media-keys`, EMEFailedToAttachMediaKeysToVideoElement: `eme-failed-attach-media-keys-to-video`, EMEFailedToCreateMediaKeySession: `eme-failed-create-media-key-session`, EMEFailedToSetServerCertificate: `eme-failed-set-server-certificate`, EMEFailedToGenerateLicenseRequest: `eme-failed-generate-license-request`, EMEFailedToUpdateSessionWithReceivedLicenseKeys: `eme-failed-update-session`, EMEFailedToCloseSession: `eme-failed-close-session`, EMEFailedToRemoveKeysFromSession: `eme-failed-remove-keys`, EMEFailedToLoadSessionBySessionId: `eme-failed-load-session` }, y = `com.apple.fps.1_0`, b = ({ initData: e2, id: t2, cert: n2 }) => { 55 typeof t2 == `string` && (t2 = s(t2)); 56 let r2 = 0, i2 = new ArrayBuffer(e2.byteLength + 4 + t2.byteLength + 4 + n2.byteLength), a2 = new DataView(i2); 57 new Uint8Array(i2, r2, e2.byteLength).set(e2), r2 += e2.byteLength, a2.setUint32(r2, t2.byteLength, true), r2 += 4; 58 let o2 = new Uint16Array(i2, r2, t2.length); 59 return o2.set(t2), r2 += o2.byteLength, a2.setUint32(r2, n2.byteLength, true), r2 += 4, new Uint8Array(i2, r2, n2.byteLength).set(n2), new Uint8Array(i2, 0, i2.byteLength); 60}, x = ({ video: e2, contentId: t2, initData: n2, cert: r2, options: i2, getLicense: o2, eventBus: s2, emeError: c2 }) => new Promise((l2, u2) => { 61 if (!e2.webkitKeys) try { 62 e2.webkitSetMediaKeys(new a.default.WebKitMediaKeys(y)); 63 } catch (e3) { 64 c2(e3, { errorType: v.EMEFailedToCreateMediaKeys, keySystem: y }), u2(`Could not create MediaKeys`); 65 return; 66 } 67 let d2; 68 try { 69 d2 = e2.webkitKeys.createSession(`video/mp4`, b({ id: t2, initData: n2, cert: r2 })); 70 } catch (e3) { 71 c2(e3, { errorType: v.EMEFailedToCreateMediaKeySession, keySystem: y }), u2(`Could not create key session`); 72 return; 73 } 74 D(s2, { type: `keysessioncreated`, keySession: d2 }), d2.contentId = t2, d2.addEventListener(`webkitkeymessage`, (e3) => { 75 D(s2, { type: `keymessage`, messageEvent: e3 }), o2(i2, t2, e3.message, (e4, t3) => { 76 if (s2 && D(s2, { type: `licenserequestattempted` }), e4) { 77 c2(e4, { errortype: v.EMEFailedToGenerateLicenseRequest, keySystem: y }), u2(e4); 78 return; 79 } 80 d2.update(new Uint8Array(t3)), D(s2, { type: `keysessionupdated`, keySession: d2 }); 81 }); 82 }), d2.addEventListener(`webkitkeyadded`, () => { 83 l2(); 84 }), d2.addEventListener(`webkitkeyerror`, () => { 85 let e3 = d2.error; 86 c2(e3, { errorType: v.EMEFailedToUpdateSessionWithReceivedLicenseKeys, keySystem: y }), u2(`KeySession error: code ${e3.code}, systemCode ${e3.systemCode}`); 87 }); 88}), S = (e2, t2) => (n2, r2) => { 89 let a2 = m(n2.emeHeaders, t2.certificateHeaders); 90 i.xhr({ uri: t2.certificateUri, responseType: `arraybuffer`, requestType: `license`, metadata: { keySystem: e2 }, headers: a2 }, g((e3, t3) => { 91 if (e3) { 92 r2(e3); 93 return; 94 } 95 r2(null, new Uint8Array(t3)); 96 })); 97}, C = (e2, t2) => u(t2), w = (e2, t2) => (n2, r2, a2, o2) => { 98 let s2 = m({ "Content-type": `application/octet-stream` }, n2.emeHeaders, t2.licenseHeaders); 99 i.xhr({ uri: t2.licenseUri || t2.url, method: `POST`, responseType: `arraybuffer`, requestType: `license`, metadata: { keySystem: e2, contentId: r2 }, body: a2, headers: s2 }, g(o2, true)); 100}, T = ({ video: e2, initData: t2, options: n2, eventBus: r2, emeError: i2 }) => { 101 let a2 = n2.keySystems[y], o2 = a2.getCertificate || S(y, a2), s2 = a2.getContentId || C, c2 = a2.getLicense || w(y, a2); 102 return new Promise((e3, t3) => { 103 o2(n2, (n3, r3) => { 104 if (n3) { 105 i2(n3, { errorType: v.EMEFailedToSetServerCertificate, keySystem: y }), t3(n3); 106 return; 107 } 108 e3(r3); 109 }); 110 }).then((a3) => x({ video: e2, cert: a3, initData: t2, getLicense: c2, options: n2, contentId: s2(n2, l(t2)), eventBus: r2, emeError: i2 })); 111}, E = (e2) => e2.startsWith(`com.apple.fps`), D = (e2, t2) => { 112 e2.isDisposed() || e2.trigger(n({}, t2)); 113}, O = (e2, t2) => { 114 if (t2.supportedConfigurations) return t2.supportedConfigurations; 115 let r2 = E(e2), i2 = {}, a2 = t2.initDataTypes || (r2 ? [`sinf`] : null), o2 = t2.audioContentType, s2 = t2.audioRobustness, c2 = t2.videoContentType || (r2 ? `video/mp4` : null), l2 = t2.videoRobustness, u2 = t2.persistentState; 116 return (o2 || s2) && (i2.audioCapabilities = [n({}, o2 ? { contentType: o2 } : {}, s2 ? { robustness: s2 } : {})]), (c2 || l2) && (i2.videoCapabilities = [n({}, c2 ? { contentType: c2 } : {}, l2 ? { robustness: l2 } : {})]), u2 && (i2.persistentState = u2), a2 && (i2.initDataTypes = a2), [i2]; 117}, k = (e2) => { 118 let t2; 119 return Object.keys(e2).forEach((n2) => { 120 let r2 = O(n2, e2[n2]); 121 t2 = t2 ? t2.catch((e3) => a.default.navigator.requestMediaKeySystemAccess(n2, r2)) : a.default.navigator.requestMediaKeySystemAccess(n2, r2); 122 }), t2; 123}, A = (e2, t2) => { 124 let { mediaKeys: n2, initDataType: r2, initData: a2, options: o2, getLicense: s2, removeSession: c2, eventBus: l2, contentId: u2, emeError: d2, keySystem: f2 } = t2, p2 = 0, m2;
125 e2.on(`pause`, () => { 126 o2.limitRenewalsMaxPauseDuration && typeof o2.limitRenewalsMaxPauseDuration == `number` && (m2 = setInterval(() => { 127 p2++, p2 >= o2.limitRenewalsMaxPauseDuration && clearInterval(m2); 128 }, 1e3), e2.on(`play`, () => { 129 clearInterval(m2), p2 = 0; 130 })); 131 }); 132 try { 133 let t3 = n2.createSession(), m3 = () => { 134 i.log.debug(`Session expired, closing the session.`), t3.close().then(() => { 135 l2.isDisposed() || (D(l2, { type: `keysessionclosed`, keySession: t3 }), c2(a2)); 136 }).catch((e3) => { 137 d2(e3, { errorType: v.EMEFailedToCloseSession, keySystem: f2 }); 138 }); 139 }; 140 return D(l2, { type: `keysessioncreated`, keySession: t3 }), e2.on(`dispose`, () => { 141 m3(); 142 }), new Promise((n3, c3) => { 143 t3.addEventListener(`message`, (r3) => { 144 if (D(l2, { type: `keymessage`, messageEvent: r3 }), !(r3.messageType !== `license-request` && r3.messageType !== `license-renewal`)) { 145 if (r3.messageType === `license-renewal`) { 146 let t4 = o2.limitRenewalsBeforePlay, n4 = o2.limitRenewalsMaxPauseDuration, r4 = typeof n4 == `number`, i2 = !e2.hasStarted() && t4, a3 = e2.paused() && r4 && p2 >= n4, s3 = e2.ended(); 147 if (i2 || a3 || s3) { 148 m3(); 149 return; 150 } 151 } 152 s2(o2, r3.message, u2).then((e3) => { 153 n3(t3.update(e3).then(() => { 154 D(l2, { type: `keysessionupdated`, keySession: t3 }); 155 }).catch((e4) => { 156 d2(e4, { errorType: v.EMEFailedToUpdateSessionWithReceivedLicenseKeys, keySystem: f2 }); 157 })); 158 }).catch((e3) => { 159 c3(e3); 160 }); 161 } 162 }, false); 163 let h2 = `keystatuseschange`; 164 t3.addEventListener(h2, (e3) => { 165 let n4 = false; 166 l2.isDisposed() || (D(l2, { type: h2, keyStatuses: t3.keyStatuses }), t3.keyStatuses.forEach((r3, a3) => { 167 switch (D(l2, { keyId: a3, status: r3, target: t3, type: `keystatuschange` }), r3) { 168 case `expired`: 169 n4 = true; 170 break; 171 case `internal-error`: 172 i.log.warn(`Key status reported as "internal-error." Leaving the session open since we don't have enough details to know if this error is fatal.`, e3); 173 break; 174 } 175 }), n4 && m3()); 176 }, false), t3.generateRequest(r2, a2).catch((e3) => { 177 d2(e3, { errorType: v.EMEFailedToGenerateLicenseRequest, keySystem: f2 }), c3(`Unable to create or initialize key session`); 178 }); 179 }); 180 } catch (e3) { 181 d2(e3, { errorType: v.EMEFailedToCreateMediaKeySession, keySystem: f2 }); 182 } 183}, j = ({ player: e2, video: t2, initDataType: n2, initData: r2, options: i2, getLicense: a2, contentId: o2, removeSession: s2, eventBus: c2, emeError: l2 }) => { 184 let u2 = { initDataType: n2, initData: r2, options: i2, getLicense: a2, removeSession: s2, eventBus: c2, contentId: o2, emeError: l2, keySystem: t2.keySystem }; 185 return t2.mediaKeysObject ? (u2.mediaKeys = t2.mediaKeysObject, A(e2, u2)) : (t2.pendingSessionData.push(u2), Promise.resolve()); 186}, M = ({ player: e2, video: t2, certificate: n2, createdMediaKeys: r2, emeError: i2 }) => { 187 t2.mediaKeysObject = r2; 188 let a2 = []; 189 n2 && a2.push(r2.setServerCertificate(n2).catch((e3) => { 190 i2(e3, { errorType: v.EMEFailedToSetServerCertificate, keySystem: t2.keySystem }); 191 })); 192 for (let n3 = 0; n3 < t2.pendingSessionData.length; n3++) { 193 let r3 = t2.pendingSessionData[n3]; 194 a2.push(A(e2, { mediaKeys: t2.mediaKeysObject, initDataType: r3.initDataType, initData: r3.initData, options: r3.options, getLicense: r3.getLicense, removeSession: r3.removeSession, eventBus: r3.eventBus, contentId: r3.contentId, emeError: r3.emeError, keySystem: t2.keySystem })); 195 } 196 return t2.pendingSessionData = [], a2.push(t2.setMediaKeys(r2).catch((e3) => { 197 i2(e3, { errorType: v.EMEFailedToAttachMediaKeysToVideoElement, keySystem: t2.keySystem }); 198 })), Promise.all(a2); 199}, N = (e2, t2) => (n2, r2, i2) => { 200 _(e2, t2, r2, n2, i2); 201}, P = (e2, t2) => (n2, r2, a2) => { 202 let o2 = m({ "Content-type": `application/octet-stream` }, n2.emeHeaders, t2.licenseHeaders); 203 i.xhr({ uri: t2.url, method: `POST`, responseType: `arraybuffer`, requestType: `license`, metadata: { keySystem: e2 }, body: r2, headers: o2 }, g(a2, true)); 204}, F = (e2, t2, n2) => (r2, i2, a2) => new Promise((o2, s2) => { 205 let c2 = function(e3, t3) { 206 if (n2 && D(n2, { type: `licenserequestattempted` }), e3) { 207 s2(e3); 208 return; 209 } 210 o2(t3); 211 }; 212 E(e2) ? t2(r2, a2, new Uint8Array(i2), c2) : t2(r2, i2, c2); 213}), te = (e2, t2) => { 214 if (typeof t2 == `string` && (t2 = { url: t2 }), !t2.url && t2.licenseUri && (t2.url = t2.licenseUri), !t2.url && !t2.getLicense) throw Error(`Missing url/lice
214nseUri or getLicense in ${e2} keySystem configuration.`); 215 let n2 = E(e2); 216 if (n2 && t2.certificateUri && !t2.getCertificate && (t2.getCertificate = S(e2, t2)), n2 && !t2.getCertificate) throw Error(`Missing getCertificate or certificateUri in ${e2} keySystem configuration.`); 217 return n2 && !t2.getContentId && (t2.getContentId = C), t2.url && !t2.getLicense && (e2 === `com.microsoft.playready` ? t2.getLicense = N(e2, t2) : n2 ? t2.getLicense = w(e2, t2) : t2.getLicense = P(e2, t2)), t2; 218}, ne = ({ player: e2, video: t2, initDataType: n2, initData: r2, keySystemAccess: i2, options: a2, removeSession: o2, eventBus: s2, emeError: l2 }) => { 219 let u2 = Promise.resolve(), d2 = i2.keySystem, f2; 220 try { 221 f2 = te(d2, a2.keySystems[d2]); 222 } catch (e3) { 223 return Promise.reject(e3); 224 } 225 let p2 = f2.getContentId ? f2.getContentId(a2, c(r2)) : null; 226 if (t2.mediaKeysObject === void 0) { 227 t2.mediaKeysObject = null, t2.pendingSessionData = []; 228 let n3; 229 u2 = new Promise((e3, r3) => { 230 if (t2.keySystem = d2, !f2.getCertificate) { 231 e3(i2); 232 return; 233 } 234 f2.getCertificate(a2, (t3, i3) => { 235 if (t3) { 236 r3(t3); 237 return; 238 } 239 n3 = i3, e3(); 240 }); 241 }).then(() => i2.createMediaKeys()).then((r3) => (D(s2, { type: `keysystemaccesscomplete`, mediaKeys: r3 }), M({ player: e2, video: t2, certificate: n3, createdMediaKeys: r3, emeError: l2 }))).catch((e3) => (l2(e3, { errorType: v.EMEFailedToCreateMediaKeys, keySystem: d2 }), e3 ? Promise.reject(e3) : Promise.reject(`Failed to create and initialize a MediaKeys object`))); 242 } 243 return u2.then(() => j({ player: e2, video: t2, initDataType: n2, initData: r2, options: a2, getLicense: t2.keySystem ? F(d2, f2.getLicense, s2) : null, contentId: p2, removeSession: o2, eventBus: s2, emeError: l2 })); 244}, I = `com.microsoft.playready`, L = (e2, t2, n2, r2, i2) => { 245 let a2 = e2.keySystems[I]; 246 if (typeof a2.getKey == `function`) { 247 a2.getKey(e2, n2.destinationURL, n2.message.buffer, (n3, a3) => { 248 if (n3) { 249 i2(n3, { errorType: v.EMEFailedToRequestMediaKeySystemAccess, config: h(e2.keySystems) }), D(r2, { message: `Unable to get key: ` + n3, target: t2, type: `mskeyerror` }); 250 return; 251 } 252 t2.update(a3), D(r2, { type: `keysessionupdated`, keySession: t2 }); 253 }); 254 return; 255 } 256 typeof a2 == `string` ? a2 = { url: a2 } : typeof a2 == `boolean` && (a2 = {}), a2.url || (a2.url = n2.destinationURL); 257 let o2 = (e3, n3) => { 258 if (r2 && D(r2, { type: `licenserequestattempted` }), e3) { 259 i2(e3, { errorType: v.EMEFailedToGenerateLicenseRequest, keySystem: I }), D(r2, { message: `Unable to request key from url: ` + a2.url, target: t2, type: `mskeyerror` }); 260 return; 261 } 262 t2.update(new Uint8Array(n3)); 263 }; 264 a2.getLicense ? a2.getLicense(e2, n2.message.buffer, o2) : _(I, a2, n2.message.buffer, e2, o2); 265}, R = (e2, t2, n2, r2, i2) => { 266 let a2 = e2.msKeys.createSession(`video/mp4`, t2); 267 if (!a2) { 268 let e3 = Error(`Could not create key session.`); 269 throw i2(e3, { errorType: v.EMEFailedToCreateMediaKeySession, keySystem: I }), e3; 270 } 271 D(r2, { type: `keysessioncreated`, keySession: a2 }), a2.addEventListener(`mskeymessage`, (e3) => { 272 D(r2, { type: `keymessage`, messageEvent: e3 }), L(n2, a2, e3, r2, i2); 273 }), a2.addEventListener(`mskeyerror`, (e3) => { 274 let t3 = { errorType: v.EMEFailedToCreateMediaKeySession, keySystem: I }; 275 i2(a2.error, t3), D(r2, { message: `Unexpected key error from key session with code: ${a2.error.code} and systemCode: ${a2.error.systemCode}`, target: a2, type: `mskeyerror` }); 276 }), a2.addEventListener(`mskeyadded`, () => { 277 D(r2, { target: a2, type: `mskeyadded` }); 278 }); 279}, z = (({ video: e2, initData: t2, options: n2, eventBus: r2, emeError: i2 }) => { 280 e2.msKeys && delete e2.msKeys; 281 try { 282 e2.msSetMediaKeys(new a.default.MSMediaKeys(I)); 283 } catch (e3) { 284 throw i2(e3, { errorType: v.EMEFailedToCreateMediaKeys, keySystem: I }), Error(`Unable to create media keys for PlayReady key system. Error: ` + e3.message); 285 } 286 R(e2, t2, n2, r2, i2); 287}), B = [{ initDataTypes: [`cenc`], audioCapabilities: [{ contentType: `audio/mp4;codecs="mp4a.40.2"` }], videoCapabilities: [{ contentType: `video/mp4;codecs="avc1.42E01E"` }] }], V = [{ keySystem: `com.apple.fps`, supportedConfig: [{ initDataTypes: [`sinf`], videoCapabilities: [{ contentType: `video/mp4` }] }] }, { keySystem: `com.microsoft.playready.recommendation`, supportedConfig: B }, { keySystem: `com.widevine.alpha`, supportedConfig: B }, { keySystem: `org.w3.clearkey`, supportedConfig: B }], H = () => { 288 let e2 = a.default.Promise, t2 = { fairplay: !!a.default.WebKitMediaKeys, playready: false, widevine: false, clearkey: false }; 289 return !a.default.MediaKeys || !a.default.navigator.requestMediaKeySystemAccess ? e2.resolve(t2) : e2.all(V.map(({ keySystem: e3, supportedConfig: t3 }) => a.default.navigator.requestMediaKeySystemAccess(e3, t3).catch(() => { 290 }))).then(([e3, n2, r2, i2]) => (t2.fairplay = !!e3, t2.playready = !!n2, t2.widevine = !!r2, t2.clearkey = !!i2, t2)); 291}, U = `5.5.2`, W = (e2, t2) => { 292 for (let n2 = 0; n2 < e2.length; n2++) if (e2[n2].initData && d(f(e2[n2].initData), f(t2))) return true; 293 return false;
294}, G = (e2, t2) => { 295 for (let n2 = 0; n2 < e2.length; n2++) if (e2[n2].initData === t2) { 296 e2.splice(n2, 1); 297 return; 298 } 299}; 300function K(e2, t2, n2, r2, o2, s2) { 301 if (!n2 || !n2.keySystems) return Promise.resolve(); 302 if (n2.keySystems[y] && a.default.WebKitMediaKeys && e2.eme.legacyFairplayIsUsed) return i.log.debug(`eme`, `Ignoring 'encrypted' event, using legacy fairplay keySystem ${y}`), Promise.resolve(); 303 let c2 = t2.initData; 304 return k(n2.keySystems).then((i2) => { 305 let a2 = i2.keySystem; 306 return n2.keySystems[a2] && n2.keySystems[a2].pssh && (c2 = n2.keySystems[a2].pssh), W(r2, c2) || !c2 ? Promise.resolve() : (r2.push({ initData: c2 }), ne({ player: e2, video: t2.target, initDataType: t2.initDataType, initData: c2, keySystemAccess: i2, options: n2, removeSession: G.bind(null, r2), eventBus: o2, emeError: s2 })); 307 }).catch((e3) => { 308 s2(e3, { errorType: v.EMEFailedToRequestMediaKeySystemAccess, config: h(n2.keySystems) }); 309 }); 310} 311var q = (e2, t2, n2, r2) => !t2.keySystems || !t2.keySystems[y] || !e2.initData ? Promise.resolve() : T({ video: e2.target, initData: e2.initData, options: t2, eventBus: n2, emeError: r2 }), J = (e2, t2, n2, r2, i2) => { 312 if (!t2.keySystems || !t2.keySystems[I] || n2.reduce((e3, t3) => e3 || t3.playready, false)) return; 313 let a2 = e2.initData; 314 t2.keySystems[I] && t2.keySystems[I].pssh && (a2 = t2.keySystems[I].pssh), a2 && (n2.push({ playready: true, initData: a2 }), z({ video: e2.target, initData: a2, options: t2, eventBus: r2, emeError: i2 })); 315}, Y = (e2) => p(e2.currentSource(), e2.eme.options), X = (e2) => { 316 let t2 = e2.src(); 317 t2 !== e2.eme.activeSrc && (e2.eme.activeSrc = t2, e2.eme.sessions = []); 318}, Z = (e2) => (t2, n2) => { 319 let r2 = { code: 5 }; 320 typeof t2 == `string` ? r2.message = t2 : t2 && (t2.message && (r2.message = t2.message), t2.cause && (t2.cause.length || t2.cause.byteLength) && (r2.cause = t2.cause), t2.keySystem && (r2.keySystem = t2.keySystem), r2.originalError = t2), n2 && (r2.metadata = n2), e2.error(r2); 321}, Q = (e2, t2) => { 322 if (e2.$(`.vjs-tech`).tagName.toLowerCase() === `video`) { 323 if (X(e2), a.default.MediaKeys) { 324 let n2 = () => { 325 let n3 = { initDataType: `cenc`, initData: null, target: e2.tech_.el_ }; 326 X(e2), K(e2, n3, Y(e2), e2.eme.sessions, e2.tech_, t2); 327 }; 328 if (i.browser.IS_FIREFOX) { 329 let t3; 330 e2.on(`ended`, () => { 331 t3 = false, e2.one([`seek`, `play`], (r2) => { 332 !t3 && e2.eme.sessions.length === 0 && (n2(), t3 = true); 333 }); 334 }), e2.on(`play`, () => { 335 let r2 = e2.eme.options.limitRenewalsMaxPauseDuration; 336 e2.eme.sessions.length === 0 && typeof r2 == `number` && (t3 = true, n2()); 337 }); 338 } 339 e2.tech_.el_.addEventListener(`encrypted`, (n3) => { 340 i.log.debug(`eme`, `Received an 'encrypted' event`), X(e2), K(e2, n3, Y(e2), e2.eme.sessions, e2.tech_, t2); 341 }); 342 } else if (a.default.WebKitMediaKeys) e2.eme.initLegacyFairplay(); 343 else if (a.default.MSMediaKeys) { 344 e2.tech_.el_.addEventListener(`msneedkey`, (n3) => { 345 i.log.debug(`eme`, `Received an 'msneedkey' event`), X(e2); 346 try { 347 J(n3, Y(e2), e2.eme.sessions, e2.tech_, t2); 348 } catch (e3) { 349 t2(e3); 350 } 351 }); 352 let n2 = (e3) => { 353 t2(e3); 354 }; 355 e2.tech_.on(`mskeyerror`, n2), e2.on(`dispose`, () => { 356 e2.tech_.off(`mskeyerror`, n2); 357 }); 358 } 359 } 360}, $ = function(e2 = {}) { 361 let t2 = this, n2 = Z(t2); 362 t2.ready(() => Q(t2, n2)), t2.eme = { setupEmeListeners() { 363 Q(t2, n2); 364 }, initializeMediaKeys(r2 = {}, i2 = function() { 365 }, o2 = false) { 366 let s2 = p(t2.currentSource(), e2, r2), c2 = { initDataType: `cenc`, initData: null, target: t2.tech_.el_ }; 367 if (X(t2), a.default.MediaKeys) K(t2, c2, s2, t2.eme.sessions, t2.tech_, n2).then(() => i2()).catch((e3) => { 368 i2(e3), o2 || n2(e3); 369 }); 370 else if (a.default.MSMediaKeys) { 371 let e3 = (r3) => { 372 t2.tech_.off(`mskeyadded`, e3), t2.tech_.off(`mskeyerror`, e3), r3.type === `mskeyerror` ? (i2(r3.target.error), o2 || n2(r3.message)) : i2(); 373 }; 374 t2.tech_.one(`mskeyadded`, e3), t2.tech_.one(`mskeyerror`, e3);
375 try { 376 J(c2, s2, t2.eme.sessions, t2.tech_, n2); 377 } catch (r3) { 378 t2.tech_.off(`mskeyadded`, e3), t2.tech_.off(`mskeyerror`, e3), i2(r3), o2 || n2(r3); 379 } 380 } 381 }, initLegacyFairplay() { 382 let e3 = (e4) => { 383 i.log.debug(`eme`, `Received a 'webkitneedkey' event`), X(t2), q(e4, Y(t2), t2.tech_, n2).catch((e5) => { 384 n2(e5); 385 }); 386 }, r2 = (n3) => { 387 let r3 = Y(t2).firstWebkitneedkeyTimeout || 1e3, i2 = t2.src(); 388 t2.eme.webkitneedkey_ = t2.eme.webkitneedkey_ || {}, t2.eme.webkitneedkey_.src !== i2 && (t2.eme.webkitneedkey_ = { handledFirstEvent: false, src: i2 }), t2.eme.webkitneedkey_.handledFirstEvent ? e3(n3) : (t2.clearTimeout(t2.eme.webkitneedkey_.timeout), t2.eme.webkitneedkey_.timeout = t2.setTimeout(() => { 389 t2.eme.webkitneedkey_.handledFirstEvent = true, t2.eme.webkitneedkey_.timeout = null, e3(n3); 390 }, r3)); 391 }; 392 t2.eme.legacyFairplayIsUsed = true; 393 let a2 = t2.tech_.el_; 394 a2.addEventListener(`webkitneedkey`, r2); 395 let o2 = () => { 396 t2.off(`dispose`, o2), a2 !== null && a2.removeEventListener(`webkitneedkey`, r2), t2.eme.legacyFairplayIsUsed = false, a2 = null; 397 }; 398 return t2.on(`dispose`, o2), o2; 399 }, detectSupportedCDMs: H, legacyFairplayIsUsed: false, options: e2 }; 400}; 401i.registerPlugin(`eme`, $), $.Error = v, $.VERSION = U; 402export { 403 $ as default, 404 Z as emeErrorHandler, 405 Y as getOptions, 406 K as handleEncryptedEvent, 407 J as handleMsNeedKeyEvent, 408 q as handleWebKitNeedKeyEvent, 409 W as hasSession, 410 G as removeSession, 411 X as setupSessions 412};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.