PageSourceSearch

https://zappr.stream/assets/videojs-contrib-eme.es-Bj7FGQbv.js

js zappr.stream collected 2026-10-08 07:14:43 UTC 23,667 bytes, 412 lines download raw bytes

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.