@latest-thinking/lt-player 3.0.0-beta.22 → 3.0.0-beta.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/player.js CHANGED
@@ -20527,12 +20527,17 @@ function Xg() {
20527
20527
  }
20528
20528
  //#endregion
20529
20529
  //#region src/core/adaptive-video.tsx
20530
- var Zg = "application/vnd.apple.mpegurl", Qg = /* @__PURE__ */ new Set(["application/x-mpegurl", Zg]), $g = Object.freeze({
20530
+ var Zg = "application/vnd.apple.mpegurl", Qg = /* @__PURE__ */ new Set(["application/x-mpegurl", Zg]), $g = [
20531
+ 0,
20532
+ 50,
20533
+ 200,
20534
+ 500
20535
+ ], e_ = Object.freeze({
20531
20536
  enableWebVTT: !1,
20532
20537
  enableCEA708Captions: !1,
20533
20538
  renderTextTracksNatively: !1
20534
20539
  });
20535
- function e_() {
20540
+ function t_() {
20536
20541
  let e = !1, t = null;
20537
20542
  return {
20538
20543
  begin() {
@@ -20566,11 +20571,11 @@ function e_() {
20566
20571
  }
20567
20572
  };
20568
20573
  }
20569
- function t_(e) {
20574
+ function n_(e) {
20570
20575
  return e !== void 0 && Qg.has(e.toLowerCase());
20571
20576
  }
20572
- function n_(e) {
20573
- return e.findIndex((e) => t_(e.type)) === 0 ? {
20577
+ function r_(e) {
20578
+ return e.findIndex((e) => n_(e.type)) === 0 ? {
20574
20579
  kind: "hls",
20575
20580
  source: e[0]
20576
20581
  } : {
@@ -20578,70 +20583,106 @@ function n_(e) {
20578
20583
  sources: e
20579
20584
  };
20580
20585
  }
20581
- function r_(e, t) {
20586
+ function i_(e, t) {
20582
20587
  return e.src === t.src && e.type === t.type;
20583
20588
  }
20584
- function i_(e, t) {
20585
- return e.kind === t.kind ? e.kind === "hls" && t.kind === "hls" ? r_(e.source, t.source) : e.kind !== "native" || t.kind !== "native" ? !1 : e.sources.length === t.sources.length && e.sources.every((e, n) => r_(e, t.sources[n])) : !1;
20589
+ function a_(e, t) {
20590
+ return e.kind === t.kind ? e.kind === "hls" && t.kind === "hls" ? i_(e.source, t.source) : e.kind !== "native" || t.kind !== "native" ? !1 : e.sources.length === t.sources.length && e.sources.every((e, n) => i_(e, t.sources[n])) : !1;
20586
20591
  }
20587
- function a_(e) {
20588
- let t = (0, w.useRef)(n_(e)), n = n_(e);
20589
- return i_(t.current, n) || (t.current = n), t.current;
20592
+ function o_(e) {
20593
+ let t = (0, w.useRef)(r_(e)), n = r_(e);
20594
+ return a_(t.current, n) || (t.current = n), t.current;
20590
20595
  }
20591
- function o_() {
20596
+ function s_() {
20592
20597
  return typeof document > "u" || typeof navigator > "u" || !/apple/i.test(navigator.vendor) ? !1 : document.createElement("video").canPlayType(Zg) !== "";
20593
20598
  }
20594
- function s_({ children: e, intentQueue: t, mediaRef: n, sources: r, ...i }) {
20595
- let a = Wt(), o = (0, w.useRef)(null), s = (0, w.useRef)(null), c = (0, w.useRef)(null), l = (0, w.useRef)(0), u = a_(r), d = u.kind === "hls" && o_(), f = u.kind === "hls" && !d, p = (0, w.useCallback)((e) => {
20596
- if (o.current = e, e === null) {
20597
- a?.(null);
20599
+ function c_({ children: e, intentQueue: t, mediaRef: n, onNativeSourceErrorChange: r, sources: i, ...a }) {
20600
+ let o = Wt(), s = (0, w.useRef)(null), c = (0, w.useRef)(null), l = (0, w.useRef)(null), u = (0, w.useRef)(0), d = (0, w.useRef)(null), f = (0, w.useRef)(0), p = (0, w.useRef)(/* @__PURE__ */ new Set()), m = (0, w.useRef)(null), h = (0, w.useRef)(null), g = (0, w.useRef)(null), _ = o_(i);
20601
+ d.current !== _ && (d.current = _, f.current += 1, p.current.clear(), m.current = null);
20602
+ let v = f.current, y = _.kind === "hls" && s_(), b = _.kind === "hls" && !y, x = (0, w.useCallback)((e) => {
20603
+ if (s.current = e, e === null) {
20604
+ o?.(null);
20598
20605
  return;
20599
20606
  }
20600
- n?.(e), a?.(e);
20601
- }, [n, a]);
20607
+ n?.(e), o?.(e);
20608
+ }, [n, o]);
20602
20609
  (0, w.useLayoutEffect)(() => {
20603
- let e = o.current;
20610
+ let e = s.current;
20604
20611
  if (e === null) return;
20605
- let n = ++l.current;
20606
- if (!f) {
20607
- let n = c.current;
20608
- n !== null && (n.source = null, n.detach(), c.current = null), e.removeAttribute("src"), a?.(e), e.load(), t?.finish(e);
20612
+ let n = ++u.current;
20613
+ if (!b) {
20614
+ let n = l.current;
20615
+ n !== null && (n.source = null, n.detach(), l.current = null), e.removeAttribute("src"), o?.(e), e.load(), t?.finish(e);
20609
20616
  return;
20610
20617
  }
20611
20618
  t?.begin();
20612
20619
  let r = !1;
20613
- return import("./hls.js").then(({ HlsJsMedia: o }) => {
20614
- if (r || n !== l.current) return;
20615
- let d = s.current ?? new o();
20616
- s.current = d, c.current !== d && (d.attach(e), c.current = d), d.preload = i.preload === "" || i.preload === "none" || i.preload === "auto" || i.preload === "metadata" ? i.preload : "metadata", a?.(d), d.source = {
20617
- src: u.source.src,
20620
+ return import("./hls.js").then(({ HlsJsMedia: i }) => {
20621
+ if (r || n !== u.current) return;
20622
+ let s = c.current ?? new i();
20623
+ c.current = s, l.current !== s && (s.attach(e), l.current = s), s.preload = a.preload === "" || a.preload === "none" || a.preload === "auto" || a.preload === "metadata" ? a.preload : "metadata", o?.(s), s.source = {
20624
+ src: _.source.src,
20618
20625
  type: Zg,
20619
20626
  preferPlayback: "mse",
20620
- engine: { hlsJs: $g }
20627
+ engine: { hlsJs: e_ }
20621
20628
  }, queueMicrotask(() => {
20622
- !r && n === l.current && t?.finish(d);
20629
+ !r && n === u.current && t?.finish(s);
20623
20630
  });
20624
20631
  }).catch(() => {
20625
- if (r || n !== l.current) return;
20626
- let i = c.current;
20627
- i !== null && (i.source = null, i.detach(), c.current = null), a?.(e), e.src = u.source.src, e.load(), t?.finish(e);
20632
+ if (r || n !== u.current) return;
20633
+ let i = l.current;
20634
+ i !== null && (i.source = null, i.detach(), l.current = null), o?.(e), e.src = _.source.src, e.load(), t?.finish(e);
20628
20635
  }), () => {
20629
20636
  r = !0;
20630
20637
  };
20631
20638
  }, [
20632
20639
  t,
20633
- i.preload,
20634
- u,
20635
- a,
20636
- f
20640
+ a.preload,
20641
+ _,
20642
+ o,
20643
+ b
20637
20644
  ]), (0, w.useLayoutEffect)(() => () => {
20638
- l.current += 1, t?.cancel(), s.current?.destroy(), s.current = null, c.current = null, a?.(null);
20639
- }, [t, a]);
20640
- let m = u.kind === "native" ? u.sources : d ? [u.source] : Object.freeze([]);
20645
+ u.current += 1, g.current !== null && (clearTimeout(g.current), g.current = null), t?.cancel(), c.current?.destroy(), c.current = null, l.current = null, o?.(null);
20646
+ }, [t, o]);
20647
+ let S = _.kind === "native" ? _.sources : y ? [_.source] : Object.freeze([]);
20648
+ (0, w.useLayoutEffect)(() => {
20649
+ g.current !== null && (clearTimeout(g.current), g.current = null), p.current.clear(), m.current = null, h.current = null, r?.(null);
20650
+ }, [
20651
+ v,
20652
+ r,
20653
+ b
20654
+ ]);
20655
+ let C = (0, w.useCallback)((e) => {
20656
+ if (h.current === e) return;
20657
+ h.current = e;
20658
+ let t = 0, n = () => {
20659
+ g.current = null;
20660
+ let i = s.current;
20661
+ if (i === null || b || l.current !== null || e !== f.current || m.current === e || p.current.size < S.length) return;
20662
+ if (i.networkState === HTMLMediaElement.NETWORK_NO_SOURCE && i.readyState === HTMLMediaElement.HAVE_NOTHING) {
20663
+ m.current = e, r?.(/* @__PURE__ */ Error("No authored native media source could be loaded"));
20664
+ return;
20665
+ }
20666
+ let a = $g[t];
20667
+ t += 1, a !== void 0 && (g.current = setTimeout(n, a));
20668
+ };
20669
+ queueMicrotask(n);
20670
+ }, [
20671
+ r,
20672
+ S.length,
20673
+ b
20674
+ ]), T = (0, w.useCallback)((e, t) => {
20675
+ b || t !== f.current || (p.current.add(e), !(p.current.size < S.length) && C(t));
20676
+ }, [
20677
+ S.length,
20678
+ C,
20679
+ b
20680
+ ]);
20641
20681
  return /* @__PURE__ */ (0, j.jsxs)("video", {
20642
- ref: p,
20643
- ...i,
20644
- children: [m.map((e, t) => /* @__PURE__ */ (0, j.jsx)("source", {
20682
+ ref: x,
20683
+ ...a,
20684
+ children: [S.map((e, t) => /* @__PURE__ */ (0, j.jsx)("source", {
20685
+ onError: () => T(t, v),
20645
20686
  src: e.src,
20646
20687
  type: e.type
20647
20688
  }, `${e.src}:${e.type ?? ""}:${t}`)), e]
@@ -20649,44 +20690,44 @@ function s_({ children: e, intentQueue: t, mediaRef: n, sources: r, ...i }) {
20649
20690
  }
20650
20691
  //#endregion
20651
20692
  //#region src/core/media-engine.tsx
20652
- function c_(e) {
20693
+ function l_(e) {
20653
20694
  return !e || typeof navigator < "u" && /\bFirefox\//u.test(navigator.userAgent);
20654
20695
  }
20655
- function l_(...e) {
20696
+ function u_(...e) {
20656
20697
  return e;
20657
20698
  }
20658
- var { Player: u_, usePlayer: d_ } = bc({
20659
- features: l_(mr, gr, Pr, Mr, Cr, Tn, nr, Ni, pr, Hn, Ar, Wn, fr),
20699
+ var { Player: d_, usePlayer: f_ } = bc({
20700
+ features: u_(mr, gr, Pr, Mr, Cr, Tn, nr, Ni, pr, Hn, Ar, Wn, fr),
20660
20701
  displayName: "LTMediaEnginePlayer"
20661
- }), f_ = M(mr), p_ = M(Cr), m_ = M(Wn), h_ = M(Mr), g_ = M(Pr), __ = M(gr), v_ = M(Ar), y_ = M(pr), b_ = M(Hn), x_ = M(fr);
20662
- function S_(e) {
20663
- let t = f_(e), n = p_(e), r = m_(e), i = h_(e);
20664
- if (t === void 0 || n === void 0 || r === void 0 || i === void 0) throw Error("The LT media engine state features are not configured");
20702
+ }), p_ = M(mr), m_ = M(Cr), h_ = M(Wn), g_ = M(Mr), __ = M(Pr), v_ = M(gr), y_ = M(Ar), b_ = M(pr), x_ = M(Hn), S_ = M(fr);
20703
+ function C_(e, t = null) {
20704
+ let n = p_(e), r = m_(e), i = h_(e), a = g_(e);
20705
+ if (n === void 0 || r === void 0 || i === void 0 || a === void 0) throw Error("The LT media engine state features are not configured");
20665
20706
  return {
20666
- paused: t.paused,
20667
- ended: t.ended,
20668
- started: t.started,
20669
- waiting: t.waiting,
20670
- canPlay: n.canPlay,
20671
- error: r.error,
20672
- source: n.source,
20673
- currentTime: i.currentTime
20707
+ paused: n.paused,
20708
+ ended: n.ended,
20709
+ started: n.started,
20710
+ waiting: n.waiting,
20711
+ canPlay: r.canPlay,
20712
+ error: i.error ?? t,
20713
+ source: r.source,
20714
+ currentTime: a.currentTime
20674
20715
  };
20675
20716
  }
20676
- function C_({ children: e, mediaRef: t, userStateSession: n }) {
20677
- let r = d_(), i = Ot((e) => r.subscribe(e), () => r.state, S_), a = (0, w.useCallback)((e, t) => {
20717
+ function w_({ children: e, clearNativeSourceError: t, mediaRef: n, nativeSourceError: r = null, userStateSession: i }) {
20718
+ let a = f_(), o = Ot((e) => a.subscribe(e), () => a.state, (0, w.useCallback)((e) => C_(e, r), [r])), s = (0, w.useCallback)((e, n) => {
20678
20719
  if (e.source === null) return Promise.reject(/* @__PURE__ */ Error("Cannot recover media without a selected source"));
20679
- let n = r.state, i = m_(n), a = p_(n);
20680
- return i === void 0 || a === void 0 ? Promise.reject(/* @__PURE__ */ Error("The LT media recovery features are not configured")) : (i.dismissError(), a.loadSource(e.source), new Promise((n, i) => {
20681
- let a = !1, o = !1, s = !1, c = () => void 0, l = (e) => {
20682
- s || (s = !0, c(), t.removeEventListener("abort", u), e === void 0 ? n() : i(e));
20720
+ let r = a.state, i = h_(r), o = m_(r);
20721
+ return i === void 0 || o === void 0 ? Promise.reject(/* @__PURE__ */ Error("The LT media recovery features are not configured")) : (t?.(), i.dismissError(), o.loadSource(e.source), new Promise((t, r) => {
20722
+ let i = !1, o = !1, s = !1, c = () => void 0, l = (e) => {
20723
+ s || (s = !0, c(), n.removeEventListener("abort", u), e === void 0 ? t() : r(e));
20683
20724
  }, u = () => l(/* @__PURE__ */ Error("Media recovery was cancelled")), d = () => {
20684
- if (t.aborted) {
20725
+ if (n.aborted) {
20685
20726
  u();
20686
20727
  return;
20687
20728
  }
20688
- let n = r.state, i = f_(n), s = p_(n), c = m_(n), f = h_(n);
20689
- if (i === void 0 || s === void 0 || c === void 0 || f === void 0) {
20729
+ let t = a.state, r = p_(t), s = m_(t), c = h_(t), f = g_(t);
20730
+ if (r === void 0 || s === void 0 || c === void 0 || f === void 0) {
20690
20731
  l(/* @__PURE__ */ Error("The LT media recovery features are not configured"));
20691
20732
  return;
20692
20733
  }
@@ -20694,28 +20735,28 @@ function C_({ children: e, mediaRef: t, userStateSession: n }) {
20694
20735
  l(c.error);
20695
20736
  return;
20696
20737
  }
20697
- !a && s.canPlay && (a = !0, f.seek(e.position).then(() => {
20698
- if (t.aborted) throw Error("Media recovery was cancelled");
20699
- return i.play();
20738
+ !i && s.canPlay && (i = !0, f.seek(e.position).then(() => {
20739
+ if (n.aborted) throw Error("Media recovery was cancelled");
20740
+ return r.play();
20700
20741
  }).then(() => {
20701
- if (t.aborted) throw Error("Media recovery was cancelled");
20742
+ if (n.aborted) throw Error("Media recovery was cancelled");
20702
20743
  o = !0, d();
20703
- }).catch(l)), o && i.started && !i.paused && !i.waiting && l();
20744
+ }).catch(l)), o && r.started && !r.paused && !r.waiting && l();
20704
20745
  };
20705
- c = r.subscribe(d), t.addEventListener("abort", u, { once: !0 }), d();
20746
+ c = a.subscribe(d), n.addEventListener("abort", u, { once: !0 }), d();
20706
20747
  }));
20707
- }, [r]), o = (0, w.useCallback)(() => lg({ recoverMedia: a }), [a]), s = (0, w.useMemo)(() => ({
20748
+ }, [t, a]), c = (0, w.useCallback)(() => lg({ recoverMedia: s }), [s]), l = (0, w.useMemo)(() => ({
20708
20749
  getSnapshot: () => {
20709
- let e = r.state, n = g_(e), i = __(e), a = p_(e), o = v_(e);
20710
- if (n === void 0 || i === void 0 || a === void 0 || o === void 0) throw Error("The LT user-state media features are not configured");
20750
+ let e = a.state, t = __(e), r = v_(e), i = m_(e), o = y_(e);
20751
+ if (t === void 0 || r === void 0 || i === void 0 || o === void 0) throw Error("The LT user-state media features are not configured");
20711
20752
  return {
20712
- attached: !!r.target,
20713
- source: a.source,
20714
- volume: n.volume,
20715
- muted: n.muted,
20716
- playbackRate: i.playbackRate,
20717
- canPlay: a.canPlay,
20718
- textTracks: Ff(t?.current ?? null).map((e) => ({
20753
+ attached: !!a.target,
20754
+ source: i.source,
20755
+ volume: t.volume,
20756
+ muted: t.muted,
20757
+ playbackRate: r.playbackRate,
20758
+ canPlay: i.canPlay,
20759
+ textTracks: Ff(n?.current ?? null).map((e) => ({
20719
20760
  id: e.id,
20720
20761
  kind: e.kind,
20721
20762
  label: e.label,
@@ -20724,72 +20765,74 @@ function C_({ children: e, mediaRef: t, userStateSession: n }) {
20724
20765
  }))
20725
20766
  };
20726
20767
  },
20727
- subscribe: (e) => r.subscribe(e),
20768
+ subscribe: (e) => a.subscribe(e),
20728
20769
  setVolume(e) {
20729
- g_(r.state)?.setVolume(e);
20770
+ __(a.state)?.setVolume(e);
20730
20771
  },
20731
20772
  setMuted(e) {
20732
- let n = t?.current;
20733
- if (n != null) {
20734
- n.muted !== e && (n.muted = e);
20773
+ let t = n?.current;
20774
+ if (t != null) {
20775
+ t.muted !== e && (t.muted = e);
20735
20776
  return;
20736
20777
  }
20737
- let i = g_(r.state);
20738
- i !== void 0 && i.muted !== e && i.toggleMuted();
20778
+ let r = __(a.state);
20779
+ r !== void 0 && r.muted !== e && r.toggleMuted();
20739
20780
  },
20740
20781
  setPlaybackRate(e) {
20741
- __(r.state)?.setPlaybackRate(e);
20782
+ v_(a.state)?.setPlaybackRate(e);
20742
20783
  },
20743
20784
  selectSubtitlesTrack(e) {
20744
- if (v_(r.state)?.selectSubtitlesTrack(e), e === "off") return;
20745
- let n = Ff(t?.current ?? null).find((t) => t.id === e);
20746
- n !== void 0 && (n.mode = "hidden");
20785
+ if (y_(a.state)?.selectSubtitlesTrack(e), e === "off") return;
20786
+ let t = Ff(n?.current ?? null).find((t) => t.id === e);
20787
+ t !== void 0 && (t.mode = "hidden");
20747
20788
  }
20748
- }), [t, r]), c = (0, w.useCallback)((e) => $h(s, e), [s]), l = (0, w.useRef)(null), u = (0, w.useRef)(null), d = (0, w.useRef)(null), f = (0, w.useRef)(i), [, p] = (0, w.useState)(0);
20749
- f.current = i, l.current === null && (l.current = o()), d.current ??= n ?? Zh(), u.current ??= c(d.current);
20750
- let m = l.current, h = u.current;
20789
+ }), [n, a]), u = (0, w.useCallback)((e) => $h(l, e), [l]), d = (0, w.useRef)(null), f = (0, w.useRef)(null), p = (0, w.useRef)(null), m = (0, w.useRef)(o), [, h] = (0, w.useState)(0);
20790
+ m.current = o, d.current === null && (d.current = c()), p.current ??= i ?? Zh(), f.current ??= u(p.current);
20791
+ let g = d.current, _ = f.current;
20751
20792
  return (0, w.useEffect)(() => {
20752
- let e = l.current;
20753
- return (e === null || e.isDestroyed()) && (e = o(), l.current = e, p((e) => e + 1)), e.applyEngineSnapshot(f.current), () => e.destroy();
20793
+ let e = d.current;
20794
+ return (e === null || e.isDestroyed()) && (e = c(), d.current = e, h((e) => e + 1)), e.applyEngineSnapshot(m.current), () => e.destroy();
20795
+ }, [c]), (0, w.useEffect)(() => {
20796
+ let e = d.current;
20797
+ e !== null && !e.isDestroyed() && e.applyEngineSnapshot(o);
20754
20798
  }, [o]), (0, w.useEffect)(() => {
20755
- let e = l.current;
20756
- e !== null && !e.isDestroyed() && e.applyEngineSnapshot(i);
20757
- }, [i]), (0, w.useEffect)(() => {
20758
- let e = u.current;
20799
+ let e = f.current;
20759
20800
  if (e === null || e.isDestroyed()) {
20760
- let t = d.current ?? Zh();
20761
- d.current = t, e = c(t), u.current = e, p((e) => e + 1);
20801
+ let t = p.current ?? Zh();
20802
+ p.current = t, e = u(t), f.current = e, h((e) => e + 1);
20762
20803
  }
20763
20804
  return e.start(), () => e.destroy();
20764
- }, [c]), /* @__PURE__ */ (0, j.jsx)(dg, {
20765
- controller: m,
20805
+ }, [u]), /* @__PURE__ */ (0, j.jsx)(dg, {
20806
+ controller: g,
20766
20807
  children: /* @__PURE__ */ (0, j.jsx)(zf, {
20767
- controller: h,
20808
+ controller: _,
20768
20809
  children: e
20769
20810
  })
20770
20811
  });
20771
20812
  }
20772
- function w_({ children: e, mediaRef: t, orientationLockType: n, poster: r, stringCatalog: i = wh, title: a, userStateSession: o }) {
20813
+ function T_({ children: e, clearNativeSourceError: t, mediaRef: n, nativeSourceError: r, orientationLockType: i, poster: a, stringCatalog: o = wh, title: s, userStateSession: c }) {
20773
20814
  return /* @__PURE__ */ (0, j.jsx)(Gd, {
20774
- value: i,
20815
+ value: o,
20775
20816
  children: /* @__PURE__ */ (0, j.jsx)(_h, {
20776
- language: i.selectedLanguage,
20777
- strings: i.strings,
20778
- children: /* @__PURE__ */ (0, j.jsx)(u_, {
20779
- orientationLockType: n,
20780
- poster: r,
20781
- title: a,
20782
- children: /* @__PURE__ */ (0, j.jsx)(C_, {
20783
- mediaRef: t,
20784
- userStateSession: o,
20817
+ language: o.selectedLanguage,
20818
+ strings: o.strings,
20819
+ children: /* @__PURE__ */ (0, j.jsx)(d_, {
20820
+ orientationLockType: i,
20821
+ poster: a,
20822
+ title: s,
20823
+ children: /* @__PURE__ */ (0, j.jsx)(w_, {
20824
+ clearNativeSourceError: t,
20825
+ mediaRef: n,
20826
+ nativeSourceError: r,
20827
+ userStateSession: c,
20785
20828
  children: e
20786
20829
  })
20787
20830
  })
20788
20831
  })
20789
20832
  });
20790
20833
  }
20791
- function T_(e, t) {
20792
- let n = h_(e), r = g_(e), i = __(e), a = v_(e), o = y_(e);
20834
+ function E_(e, t) {
20835
+ let n = g_(e), r = __(e), i = v_(e), a = y_(e), o = b_(e);
20793
20836
  if (n === void 0 || r === void 0 || i === void 0 || a === void 0 || o === void 0) throw Error("The LT page API media features are not configured");
20794
20837
  let s = Ff(t).find((e) => Vf(e.kind) && Hf(e.mode));
20795
20838
  return Object.freeze({
@@ -20805,8 +20848,8 @@ function T_(e, t) {
20805
20848
  pip: o.pip
20806
20849
  });
20807
20850
  }
20808
- function E_({ application: e, intentQueue: t, mediaRef: n, runtime: r }) {
20809
- let i = d_(), a = fg(), o = Bf(), s = (0, w.useMemo)(() => ({
20851
+ function D_({ application: e, intentQueue: t, mediaRef: n, runtime: r }) {
20852
+ let i = f_(), a = fg(), o = Bf(), s = (0, w.useMemo)(() => ({
20810
20853
  get media() {
20811
20854
  let e = n.current;
20812
20855
  if (e === null) throw Error("The LT media element is not attached");
@@ -20814,16 +20857,16 @@ function E_({ application: e, intentQueue: t, mediaRef: n, runtime: r }) {
20814
20857
  },
20815
20858
  playerState: a,
20816
20859
  userState: o,
20817
- getSnapshot: () => T_(i.state, n.current),
20860
+ getSnapshot: () => E_(i.state, n.current),
20818
20861
  subscribe: (e) => i.subscribe(e),
20819
20862
  play() {
20820
- t.play(() => f_(i.state)?.play().catch(() => void 0));
20863
+ t.play(() => p_(i.state)?.play().catch(() => void 0));
20821
20864
  },
20822
20865
  pause() {
20823
- t.pause(() => f_(i.state)?.pause());
20866
+ t.pause(() => p_(i.state)?.pause());
20824
20867
  },
20825
20868
  seek(e) {
20826
- h_(i.state)?.seek(e).catch(() => void 0);
20869
+ g_(i.state)?.seek(e).catch(() => void 0);
20827
20870
  },
20828
20871
  load() {
20829
20872
  n.current?.load();
@@ -20843,9 +20886,9 @@ function E_({ application: e, intentQueue: t, mediaRef: n, runtime: r }) {
20843
20886
  r
20844
20887
  ]), null;
20845
20888
  }
20846
- function D_({ application: e, visible: t }) {
20847
- let n = d_(), { playback: r } = pg(), i = Jd("coverButton"), { config: a } = e, o = a.controls.cover, s = (0, w.useCallback)(() => {
20848
- let e = f_(n.state);
20889
+ function O_({ application: e, visible: t }) {
20890
+ let n = f_(), { playback: r } = pg(), i = Jd("coverButton"), { config: a } = e, o = a.controls.cover, s = (0, w.useCallback)(() => {
20891
+ let e = p_(n.state);
20849
20892
  return e === void 0 ? Promise.reject(/* @__PURE__ */ Error("The LT media playback feature is not configured")) : e.play();
20850
20893
  }, [n]);
20851
20894
  if (!o.enabled) return null;
@@ -20864,7 +20907,7 @@ function D_({ application: e, visible: t }) {
20864
20907
  visibleButtonLabel: c
20865
20908
  });
20866
20909
  }
20867
- function O_({ application: e, runtime: t }) {
20910
+ function k_({ application: e, runtime: t }) {
20868
20911
  let { config: n, strings: r } = e;
20869
20912
  if (e.initialError) {
20870
20913
  let e = n.layout === "landscape" ? "ltp-landscape" : "ltp-portrait";
@@ -20876,74 +20919,80 @@ function O_({ application: e, runtime: t }) {
20876
20919
  children: [/* @__PURE__ */ (0, j.jsx)(wd, {}), /* @__PURE__ */ (0, j.jsx)(Yg, { message: r.strings.configErrorMessage })]
20877
20920
  });
20878
20921
  }
20879
- return /* @__PURE__ */ (0, j.jsx)(k_, {
20922
+ return /* @__PURE__ */ (0, j.jsx)(A_, {
20880
20923
  application: e,
20881
20924
  runtime: t
20882
20925
  });
20883
20926
  }
20884
- function k_({ application: e, runtime: t }) {
20885
- let n = (0, w.useRef)(null), [r, i] = (0, w.useState)(null), a = (0, w.useRef)(null), o = (0, w.useRef)(null);
20886
- a.current ??= e_();
20887
- let s = a.current, c = (0, w.useCallback)((e) => {
20927
+ function A_({ application: e, runtime: t }) {
20928
+ let n = (0, w.useRef)(null), [r, i] = (0, w.useState)(null), [a, o] = (0, w.useState)(null), s = (0, w.useRef)(null), c = (0, w.useRef)(null);
20929
+ s.current ??= t_();
20930
+ let l = s.current, u = (0, w.useCallback)((e) => {
20888
20931
  n.current = e, i(e), e !== null && t.prepareMedia(e);
20889
- }, [t]), { config: l, strings: u } = e;
20890
- o.current !== e.generation && (o.current = e.generation, s.begin());
20891
- let d = /* @__PURE__ */ (0, j.jsx)(s_, {
20892
- mediaRef: c,
20893
- "aria-label": l.content.title,
20932
+ }, [t]), { config: d, strings: f } = e, p = a?.generation === e.generation ? a.error : null, m = (0, w.useCallback)(() => o(null), []), h = (0, w.useCallback)((t) => o(t === null ? null : {
20933
+ error: t,
20934
+ generation: e.generation
20935
+ }), [e.generation]);
20936
+ c.current !== e.generation && (c.current = e.generation, l.begin());
20937
+ let g = /* @__PURE__ */ (0, j.jsx)(c_, {
20938
+ mediaRef: u,
20939
+ "aria-label": d.content.title,
20894
20940
  className: "ltp-media-engine__video",
20895
20941
  crossOrigin: "anonymous",
20896
- disablePictureInPicture: c_(l.controls.pip.enabled),
20897
- intentQueue: s,
20942
+ disablePictureInPicture: l_(d.controls.pip.enabled),
20943
+ intentQueue: l,
20944
+ onNativeSourceErrorChange: h,
20898
20945
  playsInline: !0,
20899
20946
  preload: "metadata",
20900
- sources: l.content.sources,
20901
- children: l.content.tracks.map((t, n) => /* @__PURE__ */ (0, j.jsx)(np, {
20947
+ sources: d.content.sources,
20948
+ children: d.content.tracks.map((t, n) => /* @__PURE__ */ (0, j.jsx)(np, {
20902
20949
  index: n,
20903
20950
  track: t
20904
20951
  }, `${e.generation}:${t.src}:${t.kind ?? ""}:${n}`))
20905
- }), f = e.configurationError ? /* @__PURE__ */ (0, j.jsx)(Yg, { message: u.strings.configErrorMessage }) : void 0, p = /* @__PURE__ */ (0, j.jsx)(E_, {
20952
+ }), _ = e.configurationError ? /* @__PURE__ */ (0, j.jsx)(Yg, { message: f.strings.configErrorMessage }) : void 0, v = /* @__PURE__ */ (0, j.jsx)(D_, {
20906
20953
  application: e,
20907
- intentQueue: s,
20954
+ intentQueue: l,
20908
20955
  mediaRef: n,
20909
20956
  runtime: t
20910
20957
  });
20911
20958
  return /* @__PURE__ */ (0, j.jsx)(fd, {
20912
- value: l,
20959
+ value: d,
20913
20960
  children: /* @__PURE__ */ (0, j.jsx)($m, {
20914
20961
  registry: e.registry,
20915
- children: /* @__PURE__ */ (0, j.jsx)(w_, {
20962
+ children: /* @__PURE__ */ (0, j.jsx)(T_, {
20963
+ clearNativeSourceError: m,
20916
20964
  mediaRef: n,
20917
- orientationLockType: l.layout,
20918
- poster: l.content.poster ?? null,
20919
- stringCatalog: u,
20920
- title: l.content.title ?? null,
20965
+ nativeSourceError: p,
20966
+ orientationLockType: d.layout,
20967
+ poster: d.content.poster ?? null,
20968
+ stringCatalog: f,
20969
+ title: d.content.title ?? null,
20921
20970
  userStateSession: t.userStateSession,
20922
20971
  children: /* @__PURE__ */ (0, j.jsx)(tp, {
20923
20972
  generation: e.generation,
20924
20973
  media: r,
20925
- children: /* @__PURE__ */ (0, j.jsx)(N_, {
20974
+ children: /* @__PURE__ */ (0, j.jsx)(P_, {
20926
20975
  application: e,
20927
- configurationError: f,
20928
- media: d,
20929
- runtimeBridge: p
20976
+ configurationError: _,
20977
+ media: g,
20978
+ runtimeBridge: v
20930
20979
  })
20931
20980
  })
20932
20981
  })
20933
20982
  })
20934
20983
  });
20935
20984
  }
20936
- function A_(e) {
20937
- let t = j_(e), n = h_(e);
20985
+ function j_(e) {
20986
+ let t = M_(e), n = g_(e);
20938
20987
  if (t === void 0 || n === void 0) throw Error("The LT core control media features are not configured");
20939
20988
  return {
20940
20989
  buffered: t.buffered,
20941
20990
  duration: n.duration
20942
20991
  };
20943
20992
  }
20944
- var j_ = M(Tn);
20945
- function M_(e) {
20946
- let t = b_(e);
20993
+ var M_ = M(Tn);
20994
+ function N_(e) {
20995
+ let t = x_(e);
20947
20996
  if (t === void 0) throw Error("The LT control visibility media feature is not configured");
20948
20997
  return {
20949
20998
  controlsVisible: t.controlsVisible,
@@ -20951,8 +21000,8 @@ function M_(e) {
20951
21000
  userActive: t.userActive
20952
21001
  };
20953
21002
  }
20954
- function N_({ application: e, configurationError: t, media: n, runtimeBridge: r }) {
20955
- let i = d_(), { playback: a } = pg(), { config: o } = e, s = Ot((e) => i.subscribe(e), () => i.state, M_), c = (0, w.useRef)(null), l = (0, w.useRef)({
21003
+ function P_({ application: e, configurationError: t, media: n, runtimeBridge: r }) {
21004
+ let i = f_(), { playback: a } = pg(), { config: o } = e, s = Ot((e) => i.subscribe(e), () => i.state, N_), c = (0, w.useRef)(null), l = (0, w.useRef)({
20956
21005
  configurationError: t !== void 0,
20957
21006
  engine: s,
20958
21007
  generation: e.generation,
@@ -20981,7 +21030,7 @@ function N_({ application: e, configurationError: t, media: n, runtimeBridge: r
20981
21030
  a
20982
21031
  ]), /* @__PURE__ */ (0, j.jsx)(Tg, {
20983
21032
  controller: d,
20984
- children: /* @__PURE__ */ (0, j.jsx)(L_, {
21033
+ children: /* @__PURE__ */ (0, j.jsx)(R_, {
20985
21034
  application: e,
20986
21035
  configurationError: t,
20987
21036
  media: n,
@@ -20989,12 +21038,12 @@ function N_({ application: e, configurationError: t, media: n, runtimeBridge: r
20989
21038
  })
20990
21039
  });
20991
21040
  }
20992
- function P_() {
21041
+ function F_() {
20993
21042
  let e = eh().getModule("share"), t = (0, w.useSyncExternalStore)(e.subscribeInteraction, e.getInteractionSnapshot, e.getInteractionSnapshot).open;
20994
21043
  return Og(t), null;
20995
21044
  }
20996
- function F_(e) {
20997
- let t = x_(e), n = f_(e), r = __(e), i = h_(e);
21045
+ function I_(e) {
21046
+ let t = S_(e), n = p_(e), r = v_(e), i = g_(e);
20998
21047
  if (t === void 0 || n === void 0 || r === void 0 || i === void 0) throw Error("The LT Media Session features are not configured");
20999
21048
  return {
21000
21049
  currentTime: i.currentTime,
@@ -21005,16 +21054,16 @@ function F_(e) {
21005
21054
  title: t.title
21006
21055
  };
21007
21056
  }
21008
- function I_({ application: e }) {
21009
- let t = d_(), n = pg(), r = Ot((e) => t.subscribe(e), () => t.state, F_), i = (0, w.useMemo)(() => ({
21057
+ function L_({ application: e }) {
21058
+ let t = f_(), n = pg(), r = Ot((e) => t.subscribe(e), () => t.state, I_), i = (0, w.useMemo)(() => ({
21010
21059
  play() {
21011
- f_(t.state)?.play().catch(() => void 0);
21060
+ p_(t.state)?.play().catch(() => void 0);
21012
21061
  },
21013
21062
  pause() {
21014
- f_(t.state)?.pause();
21063
+ p_(t.state)?.pause();
21015
21064
  },
21016
21065
  seek(e) {
21017
- h_(t.state)?.seek(e).catch(() => void 0);
21066
+ g_(t.state)?.seek(e).catch(() => void 0);
21018
21067
  },
21019
21068
  ...e.mediaSessionTrackCommands === void 0 ? {} : {
21020
21069
  previousTrack: e.mediaSessionTrackCommands.previousTrack,
@@ -21041,8 +21090,8 @@ function I_({ application: e }) {
21041
21090
  };
21042
21091
  }, [i]), (0, w.useLayoutEffect)(() => s.current?.update(a), [a]), null;
21043
21092
  }
21044
- function L_({ application: e, configurationError: t, media: n, runtimeBridge: r }) {
21045
- let i = d_(), a = pg(), { playback: o } = a, { config: s, strings: c } = e, l = Dg(), u = th(), d = eh().getModule("share"), f = eh().getModule("contextPanel"), p = Xf(), m = Ot((e) => i.subscribe(e), () => i.state, A_), h = p.available ? u.capabilities.captions.state : "dormant", g = u.capabilities.chapters.state, _ = u.capabilities.speed.state, v = (0, w.useMemo)(() => Yd(s, {
21093
+ function R_({ application: e, configurationError: t, media: n, runtimeBridge: r }) {
21094
+ let i = f_(), a = pg(), { playback: o } = a, { config: s, strings: c } = e, l = Dg(), u = th(), d = eh().getModule("share"), f = eh().getModule("contextPanel"), p = Xf(), m = Ot((e) => i.subscribe(e), () => i.state, j_), h = p.available ? u.capabilities.captions.state : "dormant", g = u.capabilities.chapters.state, _ = u.capabilities.speed.state, v = (0, w.useMemo)(() => Yd(s, {
21046
21095
  captions: h,
21047
21096
  chapters: g,
21048
21097
  speed: _
@@ -21052,9 +21101,9 @@ function L_({ application: e, configurationError: t, media: n, runtimeBridge: r
21052
21101
  s,
21053
21102
  _
21054
21103
  ]), y = t !== void 0 || o === "error", b = (0, w.useCallback)((e) => {
21055
- h_(i.state)?.seek(e).catch(() => void 0);
21104
+ g_(i.state)?.seek(e).catch(() => void 0);
21056
21105
  }, [i]), x = Ng(v.gestures && !y), S = t === void 0 && a.playback === "error" && a.errorKind === "media" ? /* @__PURE__ */ (0, j.jsx)(Xg, {}) : void 0, { chromeVisible: C, coverVisible: T } = gg(o, e.generation, s.controls.cover.enabled), E = {
21057
- cover: s.controls.cover.enabled && T ? /* @__PURE__ */ (0, j.jsx)(D_, {
21106
+ cover: s.controls.cover.enabled && T ? /* @__PURE__ */ (0, j.jsx)(O_, {
21058
21107
  application: e,
21059
21108
  visible: T
21060
21109
  }, e.generation) : void 0,
@@ -21087,7 +21136,7 @@ function L_({ application: e, configurationError: t, media: n, runtimeBridge: r
21087
21136
  runtimeBridge: r
21088
21137
  };
21089
21138
  return /* @__PURE__ */ (0, j.jsxs)(j.Fragment, { children: [
21090
- /* @__PURE__ */ (0, j.jsx)(I_, { application: e }),
21139
+ /* @__PURE__ */ (0, j.jsx)(L_, { application: e }),
21091
21140
  /* @__PURE__ */ (0, j.jsx)(Fg, {
21092
21141
  disabled: y,
21093
21142
  layout: s.layout,
@@ -21101,7 +21150,7 @@ function L_({ application: e, configurationError: t, media: n, runtimeBridge: r
21101
21150
  module: f,
21102
21151
  children: /* @__PURE__ */ (0, j.jsx)(Sp, {
21103
21152
  module: d,
21104
- children: s.layout === "landscape" ? /* @__PURE__ */ (0, j.jsxs)(j.Fragment, { children: [/* @__PURE__ */ (0, j.jsx)(P_, {}), /* @__PURE__ */ (0, j.jsx)(sh, {
21153
+ children: s.layout === "landscape" ? /* @__PURE__ */ (0, j.jsxs)(j.Fragment, { children: [/* @__PURE__ */ (0, j.jsx)(F_, {}), /* @__PURE__ */ (0, j.jsx)(sh, {
21105
21154
  ...ee,
21106
21155
  controlsMounted: C,
21107
21156
  controlsVisible: l.visible,
@@ -21118,8 +21167,8 @@ function L_({ application: e, configurationError: t, media: n, runtimeBridge: r
21118
21167
  }
21119
21168
  //#endregion
21120
21169
  //#region src/player-application-mode.ts
21121
- var R_ = Object.freeze({ mode: "standalone" }), z_ = /* @__PURE__ */ new WeakMap();
21122
- function B_(e, t, n) {
21170
+ var z_ = Object.freeze({ mode: "standalone" }), B_ = /* @__PURE__ */ new WeakMap();
21171
+ function V_(e, t, n) {
21123
21172
  let r = Object.freeze({
21124
21173
  mode: t.mode,
21125
21174
  ...t.mediaSessionTrackCommands === void 0 ? {} : { mediaSessionTrackCommands: Object.freeze({
@@ -21127,32 +21176,32 @@ function B_(e, t, n) {
21127
21176
  nextTrack: t.mediaSessionTrackCommands.nextTrack
21128
21177
  }) }
21129
21178
  });
21130
- z_.set(e, r);
21179
+ B_.set(e, r);
21131
21180
  try {
21132
21181
  return n();
21133
21182
  } finally {
21134
- z_.delete(e);
21183
+ B_.delete(e);
21135
21184
  }
21136
21185
  }
21137
- function V_(e) {
21138
- return z_.get(e) ?? R_;
21186
+ function H_(e) {
21187
+ return B_.get(e) ?? z_;
21139
21188
  }
21140
21189
  //#endregion
21141
21190
  //#region src/config/diagnostics.ts
21142
- function H_(e) {
21191
+ function U_(e) {
21143
21192
  return e.length === 0 ? null : {
21144
21193
  level: "warning",
21145
21194
  code: "config-soft-degrade",
21146
21195
  message: `[lt-player] Configuration soft-degraded:\n${e.map((e) => `- ${e.path}: ${e.message}`).join("\n")}`
21147
21196
  };
21148
21197
  }
21149
- function U_(e, t) {
21150
- let n = H_(e);
21198
+ function W_(e, t) {
21199
+ let n = U_(e);
21151
21200
  return n !== null && t(n), n;
21152
21201
  }
21153
21202
  //#endregion
21154
21203
  //#region src/config/parse-config.ts
21155
- var W_ = [
21204
+ var G_ = [
21156
21205
  "version",
21157
21206
  "layout",
21158
21207
  "language",
@@ -21160,7 +21209,7 @@ var W_ = [
21160
21209
  "controls",
21161
21210
  "capabilities",
21162
21211
  "strings"
21163
- ], G_ = [
21212
+ ], K_ = [
21164
21213
  "title",
21165
21214
  "author",
21166
21215
  "description",
@@ -21170,14 +21219,14 @@ var W_ = [
21170
21219
  "tracks",
21171
21220
  "chapters",
21172
21221
  "metadata"
21173
- ], K_ = [
21222
+ ], q_ = [
21174
21223
  "inANutshell",
21175
21224
  "keyConcepts",
21176
21225
  "researchField",
21177
21226
  "transcript",
21178
21227
  "underlyingPublication",
21179
21228
  "relatedVideos"
21180
- ], q_ = [
21229
+ ], J_ = [
21181
21230
  "cover",
21182
21231
  "playPause",
21183
21232
  "timeline",
@@ -21190,7 +21239,7 @@ var W_ = [
21190
21239
  "logo",
21191
21240
  "gestures",
21192
21241
  "hotkeys"
21193
- ], J_ = [
21242
+ ], Y_ = [
21194
21243
  "chapters",
21195
21244
  "captions",
21196
21245
  "speed",
@@ -21200,17 +21249,17 @@ var W_ = [
21200
21249
  function Q(e) {
21201
21250
  return typeof e == "object" && !!e && !Array.isArray(e);
21202
21251
  }
21203
- function Y_(e, t) {
21252
+ function X_(e, t) {
21204
21253
  return Object.hasOwn(e, t);
21205
21254
  }
21206
- function X_(e) {
21255
+ function Z_(e) {
21207
21256
  return e === "landscape" || e === "portrait";
21208
21257
  }
21209
- function Z_(e) {
21258
+ function Q_(e) {
21210
21259
  return typeof e == "number" && Number.isFinite(e);
21211
21260
  }
21212
- function Q_(e) {
21213
- return Z_(e) && e > 0;
21261
+ function $_(e) {
21262
+ return Q_(e) && e > 0;
21214
21263
  }
21215
21264
  function $(e, t, n, r, i) {
21216
21265
  e.push({
@@ -21220,46 +21269,46 @@ function $(e, t, n, r, i) {
21220
21269
  message: i
21221
21270
  });
21222
21271
  }
21223
- function $_(e, t, n, r) {
21272
+ function ev(e, t, n, r) {
21224
21273
  let i = new Set(t);
21225
21274
  for (let t of Object.keys(e)) i.has(t) || $(r, "unknown-key", `${n}.${t}`, "omitted", "unknown key was ignored");
21226
21275
  }
21227
- function ev(e, t, n, r) {
21228
- if (!Y_(e, t)) return;
21276
+ function tv(e, t, n, r) {
21277
+ if (!X_(e, t)) return;
21229
21278
  let i = e[t];
21230
21279
  if (typeof i == "string") return i;
21231
21280
  $(r, "wrong-type", `${n}.${t}`, "omitted", "expected a string");
21232
21281
  }
21233
- function tv(e, t, n, r) {
21234
- if (!Y_(e, t)) return;
21282
+ function nv(e, t, n, r) {
21283
+ if (!X_(e, t)) return;
21235
21284
  let i = e[t];
21236
21285
  if (typeof i == "boolean") return i;
21237
21286
  $(r, "wrong-type", `${n}.${t}`, "omitted", "expected a boolean");
21238
21287
  }
21239
- function nv(e, t, n, r) {
21240
- if (!Y_(e, t)) return;
21241
- let i = e[t];
21242
- if (Z_(i) && i >= 0) return i;
21243
- $(r, Z_(i) ? "invalid-value" : "wrong-type", `${n}.${t}`, "omitted", "expected a finite nonnegative number");
21244
- }
21245
21288
  function rv(e, t, n, r) {
21246
- if (!Y_(e, t)) return;
21289
+ if (!X_(e, t)) return;
21247
21290
  let i = e[t];
21248
- if (Z_(i) && i > 0) return i;
21249
- $(r, Z_(i) ? "invalid-value" : "wrong-type", `${n}.${t}`, "omitted", "expected a finite positive number");
21291
+ if (Q_(i) && i >= 0) return i;
21292
+ $(r, Q_(i) ? "invalid-value" : "wrong-type", `${n}.${t}`, "omitted", "expected a finite nonnegative number");
21250
21293
  }
21251
21294
  function iv(e, t, n, r) {
21295
+ if (!X_(e, t)) return;
21252
21296
  let i = e[t];
21253
- if (typeof i == "string" && i.length > 0) return i;
21254
- $(r, Y_(e, t) ? typeof i == "string" ? "invalid-value" : "wrong-type" : "missing-value", `${n}.${t}`, "dropped", "entry requires a non-empty string");
21297
+ if (Q_(i) && i > 0) return i;
21298
+ $(r, Q_(i) ? "invalid-value" : "wrong-type", `${n}.${t}`, "omitted", "expected a finite positive number");
21255
21299
  }
21256
21300
  function av(e, t, n, r) {
21257
21301
  let i = e[t];
21258
- if (Z_(i) && i >= 0) return i;
21259
- $(r, Y_(e, t) ? Z_(i) ? "invalid-value" : "wrong-type" : "missing-value", `${n}.${t}`, "dropped", "entry requires a finite nonnegative number");
21302
+ if (typeof i == "string" && i.length > 0) return i;
21303
+ $(r, X_(e, t) ? typeof i == "string" ? "invalid-value" : "wrong-type" : "missing-value", `${n}.${t}`, "dropped", "entry requires a non-empty string");
21260
21304
  }
21261
- function ov(e, t, n, r, i) {
21262
- if (!Y_(e, t)) return;
21305
+ function ov(e, t, n, r) {
21306
+ let i = e[t];
21307
+ if (Q_(i) && i >= 0) return i;
21308
+ $(r, X_(e, t) ? Q_(i) ? "invalid-value" : "wrong-type" : "missing-value", `${n}.${t}`, "dropped", "entry requires a finite nonnegative number");
21309
+ }
21310
+ function sv(e, t, n, r, i) {
21311
+ if (!X_(e, t)) return;
21263
21312
  let a = e[t];
21264
21313
  if (!Array.isArray(a)) {
21265
21314
  $(r, "wrong-type", `${n}.${t}`, "omitted", "expected an array");
@@ -21271,30 +21320,30 @@ function ov(e, t, n, r, i) {
21271
21320
  s !== void 0 && o.push(s);
21272
21321
  }), o;
21273
21322
  }
21274
- function sv(e, t, n) {
21323
+ function cv(e, t, n) {
21275
21324
  if (!Q(e)) {
21276
21325
  $(n, "dropped-entry", t, "dropped", "source entry must be an object");
21277
21326
  return;
21278
21327
  }
21279
- $_(e, ["src", "type"], t, n);
21280
- let r = iv(e, "src", t, n);
21328
+ ev(e, ["src", "type"], t, n);
21329
+ let r = av(e, "src", t, n);
21281
21330
  if (r === void 0) return;
21282
- let i = { src: r }, a = ev(e, "type", t, n);
21331
+ let i = { src: r }, a = tv(e, "type", t, n);
21283
21332
  return a !== void 0 && (i.type = a), i;
21284
21333
  }
21285
- function cv(e, t, n) {
21334
+ function lv(e, t, n) {
21286
21335
  if (!Q(e)) {
21287
21336
  $(n, "dropped-entry", t, "dropped", "track entry must be an object");
21288
21337
  return;
21289
21338
  }
21290
- $_(e, [
21339
+ ev(e, [
21291
21340
  "src",
21292
21341
  "kind",
21293
21342
  "label",
21294
21343
  "srclang",
21295
21344
  "default"
21296
21345
  ], t, n);
21297
- let r = iv(e, "src", t, n);
21346
+ let r = av(e, "src", t, n);
21298
21347
  if (r === void 0) return;
21299
21348
  let i = { src: r };
21300
21349
  for (let r of [
@@ -21302,19 +21351,19 @@ function cv(e, t, n) {
21302
21351
  "label",
21303
21352
  "srclang"
21304
21353
  ]) {
21305
- let a = ev(e, r, t, n);
21354
+ let a = tv(e, r, t, n);
21306
21355
  a !== void 0 && (i[r] = a);
21307
21356
  }
21308
- let a = tv(e, "default", t, n);
21357
+ let a = nv(e, "default", t, n);
21309
21358
  return a !== void 0 && (i.default = a), i;
21310
21359
  }
21311
- function lv(e, t, n) {
21360
+ function uv(e, t, n) {
21312
21361
  if (!Q(e)) {
21313
21362
  $(n, "dropped-entry", t, "dropped", "chapter entry must be an object");
21314
21363
  return;
21315
21364
  }
21316
- $_(e, ["name", "start"], t, n);
21317
- let r = iv(e, "name", t, n), i = av(e, "start", t, n);
21365
+ ev(e, ["name", "start"], t, n);
21366
+ let r = av(e, "name", t, n), i = ov(e, "start", t, n);
21318
21367
  if (r === void 0 || i === void 0) return;
21319
21368
  let a = t.match(/\[(\d+)\]$/u);
21320
21369
  return {
@@ -21325,8 +21374,8 @@ function lv(e, t, n) {
21325
21374
  index: Number(a?.[1] ?? 0)
21326
21375
  };
21327
21376
  }
21328
- function uv(e, t) {
21329
- let n = ov(e, "chapters", "$.content", t, lv);
21377
+ function dv(e, t) {
21378
+ let n = sv(e, "chapters", "$.content", t, uv);
21330
21379
  if (n === void 0) return;
21331
21380
  let r = /* @__PURE__ */ new Set(), i = [];
21332
21381
  for (let { chapter: e, index: a } of n) {
@@ -21338,99 +21387,99 @@ function uv(e, t) {
21338
21387
  }
21339
21388
  return i.sort((e, t) => e.start - t.start);
21340
21389
  }
21341
- function dv(e, t, n) {
21342
- let r = {}, i = tv(e, "generatedByAi", t, n);
21390
+ function fv(e, t, n) {
21391
+ let r = {}, i = nv(e, "generatedByAi", t, n);
21343
21392
  return i !== void 0 && (r.generatedByAi = i), r;
21344
21393
  }
21345
- function fv(e, t, n) {
21394
+ function pv(e, t, n) {
21346
21395
  if (!Q(e)) {
21347
21396
  $(n, "wrong-type", t, "omitted", "expected an object");
21348
21397
  return;
21349
21398
  }
21350
- $_(e, [
21399
+ ev(e, [
21351
21400
  "generatedByAi",
21352
21401
  "keyTakeaway",
21353
21402
  "summary"
21354
21403
  ], t, n);
21355
- let r = dv(e, t, n);
21404
+ let r = fv(e, t, n);
21356
21405
  for (let i of ["keyTakeaway", "summary"]) {
21357
- let a = ev(e, i, t, n);
21406
+ let a = tv(e, i, t, n);
21358
21407
  a !== void 0 && (r[i] = a);
21359
21408
  }
21360
21409
  return r;
21361
21410
  }
21362
- function pv(e, t, n) {
21411
+ function mv(e, t, n) {
21363
21412
  if (!Q(e)) {
21364
21413
  $(n, "dropped-entry", t, "dropped", "key-concept entry must be an object");
21365
21414
  return;
21366
21415
  }
21367
- $_(e, [
21416
+ ev(e, [
21368
21417
  "label",
21369
21418
  "description",
21370
21419
  "start"
21371
21420
  ], t, n);
21372
- let r = iv(e, "label", t, n), i = iv(e, "description", t, n);
21421
+ let r = av(e, "label", t, n), i = av(e, "description", t, n);
21373
21422
  if (r === void 0 || i === void 0) return;
21374
21423
  let a = {
21375
21424
  label: r,
21376
21425
  description: i
21377
- }, o = nv(e, "start", t, n);
21426
+ }, o = rv(e, "start", t, n);
21378
21427
  return o !== void 0 && (a.start = o), a;
21379
21428
  }
21380
- function mv(e, t, n) {
21429
+ function hv(e, t, n) {
21381
21430
  if (!Q(e)) {
21382
21431
  $(n, "wrong-type", t, "omitted", "expected an object");
21383
21432
  return;
21384
21433
  }
21385
- $_(e, ["generatedByAi", "items"], t, n);
21386
- let r = dv(e, t, n), i = ov(e, "items", t, n, pv);
21434
+ ev(e, ["generatedByAi", "items"], t, n);
21435
+ let r = fv(e, t, n), i = sv(e, "items", t, n, mv);
21387
21436
  return i !== void 0 && (r.items = i), r;
21388
21437
  }
21389
- function hv(e, t, n) {
21438
+ function gv(e, t, n) {
21390
21439
  if (!Q(e)) {
21391
21440
  $(n, "dropped-entry", t, "dropped", "research-field entry must be an object");
21392
21441
  return;
21393
21442
  }
21394
- $_(e, ["title", "description"], t, n);
21395
- let r = iv(e, "title", t, n), i = iv(e, "description", t, n);
21443
+ ev(e, ["title", "description"], t, n);
21444
+ let r = av(e, "title", t, n), i = av(e, "description", t, n);
21396
21445
  return r === void 0 || i === void 0 ? void 0 : {
21397
21446
  title: r,
21398
21447
  description: i
21399
21448
  };
21400
21449
  }
21401
- function gv(e, t, n) {
21450
+ function _v(e, t, n) {
21402
21451
  if (!Q(e)) {
21403
21452
  $(n, "wrong-type", t, "omitted", "expected an object");
21404
21453
  return;
21405
21454
  }
21406
- $_(e, ["generatedByAi", "sections"], t, n);
21407
- let r = dv(e, t, n), i = ov(e, "sections", t, n, hv);
21455
+ ev(e, ["generatedByAi", "sections"], t, n);
21456
+ let r = fv(e, t, n), i = sv(e, "sections", t, n, gv);
21408
21457
  return i !== void 0 && (r.sections = i), r;
21409
21458
  }
21410
- function _v(e, t, n) {
21459
+ function vv(e, t, n) {
21411
21460
  if (!Q(e)) {
21412
21461
  $(n, "dropped-entry", t, "dropped", "transcript entry must be an object");
21413
21462
  return;
21414
21463
  }
21415
- $_(e, ["start", "text"], t, n);
21416
- let r = av(e, "start", t, n), i = iv(e, "text", t, n);
21464
+ ev(e, ["start", "text"], t, n);
21465
+ let r = ov(e, "start", t, n), i = av(e, "text", t, n);
21417
21466
  return r === void 0 || i === void 0 ? void 0 : {
21418
21467
  start: r,
21419
21468
  text: i
21420
21469
  };
21421
21470
  }
21422
- function vv(e, t, n) {
21471
+ function yv(e, t, n) {
21423
21472
  if (!Q(e)) {
21424
21473
  $(n, "wrong-type", t, "omitted", "expected an object");
21425
21474
  return;
21426
21475
  }
21427
- $_(e, ["generatedByAi", "entries"], t, n);
21428
- let r = dv(e, t, n), i = ov(e, "entries", t, n, _v);
21476
+ ev(e, ["generatedByAi", "entries"], t, n);
21477
+ let r = fv(e, t, n), i = sv(e, "entries", t, n, vv);
21429
21478
  return i !== void 0 && (r.entries = i), r;
21430
21479
  }
21431
- function yv(e, t, n, r) {
21432
- if (!Y_(e, t) || !Array.isArray(e[t])) {
21433
- $(r, Y_(e, t) ? "wrong-type" : "missing-value", `${n}.${t}`, "dropped", "entry requires an array of strings");
21480
+ function bv(e, t, n, r) {
21481
+ if (!X_(e, t) || !Array.isArray(e[t])) {
21482
+ $(r, X_(e, t) ? "wrong-type" : "missing-value", `${n}.${t}`, "dropped", "entry requires an array of strings");
21434
21483
  return;
21435
21484
  }
21436
21485
  let i = [];
@@ -21438,19 +21487,19 @@ function yv(e, t, n, r) {
21438
21487
  typeof e == "string" ? i.push(e) : $(r, "dropped-entry", `${n}.${t}[${a}]`, "dropped", "expected a string");
21439
21488
  }), i;
21440
21489
  }
21441
- function bv(e, t, n) {
21490
+ function xv(e, t, n) {
21442
21491
  if (!Q(e)) {
21443
21492
  $(n, "dropped-entry", t, "dropped", "publication entry must be an object");
21444
21493
  return;
21445
21494
  }
21446
- $_(e, [
21495
+ ev(e, [
21447
21496
  "title",
21448
21497
  "authors",
21449
21498
  "journal",
21450
21499
  "abstract",
21451
21500
  "url"
21452
21501
  ], t, n);
21453
- let r = iv(e, "title", t, n), i = yv(e, "authors", t, n), a = iv(e, "journal", t, n), o = iv(e, "abstract", t, n), s = iv(e, "url", t, n);
21502
+ let r = av(e, "title", t, n), i = bv(e, "authors", t, n), a = av(e, "journal", t, n), o = av(e, "abstract", t, n), s = av(e, "url", t, n);
21454
21503
  if (r !== void 0 && i !== void 0 && a !== void 0 && o !== void 0 && s !== void 0) return {
21455
21504
  title: r,
21456
21505
  authors: i,
@@ -21459,92 +21508,92 @@ function bv(e, t, n) {
21459
21508
  url: s
21460
21509
  };
21461
21510
  }
21462
- function xv(e, t, n) {
21511
+ function Sv(e, t, n) {
21463
21512
  if (!Q(e)) {
21464
21513
  $(n, "wrong-type", t, "omitted", "expected an object");
21465
21514
  return;
21466
21515
  }
21467
- $_(e, ["generatedByAi", "items"], t, n);
21468
- let r = dv(e, t, n), i = ov(e, "items", t, n, bv);
21516
+ ev(e, ["generatedByAi", "items"], t, n);
21517
+ let r = fv(e, t, n), i = sv(e, "items", t, n, xv);
21469
21518
  return i !== void 0 && (r.items = i), r;
21470
21519
  }
21471
- function Sv(e, t, n) {
21520
+ function Cv(e, t, n) {
21472
21521
  if (!Q(e)) {
21473
21522
  $(n, "dropped-entry", t, "dropped", "related-video entry must be an object");
21474
21523
  return;
21475
21524
  }
21476
- $_(e, [
21525
+ ev(e, [
21477
21526
  "title",
21478
21527
  "poster",
21479
21528
  "url"
21480
21529
  ], t, n);
21481
- let r = iv(e, "title", t, n), i = iv(e, "poster", t, n), a = iv(e, "url", t, n);
21530
+ let r = av(e, "title", t, n), i = av(e, "poster", t, n), a = av(e, "url", t, n);
21482
21531
  return r === void 0 || i === void 0 || a === void 0 ? void 0 : {
21483
21532
  title: r,
21484
21533
  poster: i,
21485
21534
  url: a
21486
21535
  };
21487
21536
  }
21488
- function Cv(e, t, n) {
21537
+ function wv(e, t, n) {
21489
21538
  if (!Q(e)) {
21490
21539
  $(n, "wrong-type", t, "omitted", "expected an object");
21491
21540
  return;
21492
21541
  }
21493
- $_(e, [
21542
+ ev(e, [
21494
21543
  "generatedByAi",
21495
21544
  "related",
21496
21545
  "forYou"
21497
21546
  ], t, n);
21498
- let r = dv(e, t, n);
21547
+ let r = fv(e, t, n);
21499
21548
  for (let i of ["related", "forYou"]) {
21500
- let a = ov(e, i, t, n, Sv);
21549
+ let a = sv(e, i, t, n, Cv);
21501
21550
  a !== void 0 && (r[i] = a);
21502
21551
  }
21503
21552
  return r;
21504
21553
  }
21505
- function wv(e, t, n) {
21554
+ function Tv(e, t, n) {
21506
21555
  if (!Q(e)) {
21507
21556
  $(n, "wrong-type", t, "omitted", "expected an object");
21508
21557
  return;
21509
21558
  }
21510
- $_(e, K_, t, n);
21559
+ ev(e, q_, t, n);
21511
21560
  let r = {}, i = {
21512
- inANutshell: fv,
21513
- keyConcepts: mv,
21514
- researchField: gv,
21515
- transcript: vv,
21516
- underlyingPublication: xv,
21517
- relatedVideos: Cv
21561
+ inANutshell: pv,
21562
+ keyConcepts: hv,
21563
+ researchField: _v,
21564
+ transcript: yv,
21565
+ underlyingPublication: Sv,
21566
+ relatedVideos: wv
21518
21567
  };
21519
- for (let a of K_) {
21520
- if (!Y_(e, a)) continue;
21568
+ for (let a of q_) {
21569
+ if (!X_(e, a)) continue;
21521
21570
  let o = i[a](e[a], `${t}.${a}`, n);
21522
21571
  o !== void 0 && Object.assign(r, { [a]: o });
21523
21572
  }
21524
21573
  return r;
21525
21574
  }
21526
- function Tv(e, t, n) {
21575
+ function Ev(e, t, n) {
21527
21576
  if (typeof e == "boolean") return e;
21528
- if (Q(e)) return $_(e, [], t, n), {};
21577
+ if (Q(e)) return ev(e, [], t, n), {};
21529
21578
  $(n, "wrong-type", t, "omitted", "expected a boolean or object");
21530
21579
  }
21531
- function Ev(e, t, n) {
21580
+ function Dv(e, t, n) {
21532
21581
  if (typeof e == "boolean") return e;
21533
21582
  if (!Q(e)) {
21534
21583
  $(n, "wrong-type", t, "omitted", "expected a boolean or object");
21535
21584
  return;
21536
21585
  }
21537
- $_(e, ["label"], t, n);
21538
- let r = {}, i = ev(e, "label", t, n);
21586
+ ev(e, ["label"], t, n);
21587
+ let r = {}, i = tv(e, "label", t, n);
21539
21588
  return i !== void 0 && (r.label = i), r;
21540
21589
  }
21541
- function Dv(e, t, n) {
21590
+ function Ov(e, t, n) {
21542
21591
  if (typeof e == "boolean") return e;
21543
21592
  if (!Q(e)) {
21544
21593
  $(n, "wrong-type", t, "omitted", "expected a boolean or object");
21545
21594
  return;
21546
21595
  }
21547
- $_(e, [
21596
+ ev(e, [
21548
21597
  "image",
21549
21598
  "title",
21550
21599
  "author",
@@ -21556,62 +21605,62 @@ function Dv(e, t, n) {
21556
21605
  "title",
21557
21606
  "author"
21558
21607
  ]) {
21559
- let a = tv(e, i, t, n);
21608
+ let a = nv(e, i, t, n);
21560
21609
  a !== void 0 && (r[i] = a);
21561
21610
  }
21562
- if (Y_(e, "button")) {
21563
- let i = Ev(e.button, `${t}.button`, n);
21611
+ if (X_(e, "button")) {
21612
+ let i = Dv(e.button, `${t}.button`, n);
21564
21613
  i !== void 0 && (r.button = i);
21565
21614
  }
21566
21615
  return r;
21567
21616
  }
21568
- function Ov(e, t, n) {
21617
+ function kv(e, t, n) {
21569
21618
  if (typeof e == "boolean") return e;
21570
21619
  if (!Q(e)) {
21571
21620
  $(n, "wrong-type", t, "omitted", "expected a boolean or object");
21572
21621
  return;
21573
21622
  }
21574
- $_(e, ["seekStep"], t, n);
21623
+ ev(e, ["seekStep"], t, n);
21575
21624
  let r = {};
21576
- if (Y_(e, "seekStep")) {
21625
+ if (X_(e, "seekStep")) {
21577
21626
  let i = e.seekStep;
21578
- Z_(i) && i > 0 ? r.seekStep = i : $(n, Z_(i) ? "invalid-value" : "wrong-type", `${t}.seekStep`, "omitted", "expected a finite positive number");
21627
+ Q_(i) && i > 0 ? r.seekStep = i : $(n, Q_(i) ? "invalid-value" : "wrong-type", `${t}.seekStep`, "omitted", "expected a finite positive number");
21579
21628
  }
21580
21629
  return r;
21581
21630
  }
21582
- function kv(e, t, n) {
21631
+ function Av(e, t, n) {
21583
21632
  if (!Q(e)) {
21584
21633
  $(n, "wrong-type", t, "omitted", "expected an object");
21585
21634
  return;
21586
21635
  }
21587
- $_(e, q_, t, n);
21636
+ ev(e, J_, t, n);
21588
21637
  let r = {};
21589
- for (let i of q_) {
21590
- if (!Y_(e, i)) continue;
21591
- let a = i === "cover" ? Dv(e[i], `${t}.${i}`, n) : i === "timeline" ? Ov(e[i], `${t}.${i}`, n) : Tv(e[i], `${t}.${i}`, n);
21638
+ for (let i of J_) {
21639
+ if (!X_(e, i)) continue;
21640
+ let a = i === "cover" ? Ov(e[i], `${t}.${i}`, n) : i === "timeline" ? kv(e[i], `${t}.${i}`, n) : Ev(e[i], `${t}.${i}`, n);
21592
21641
  a !== void 0 && Object.assign(r, { [i]: a });
21593
21642
  }
21594
21643
  return r;
21595
21644
  }
21596
- function Av(e, t, n) {
21645
+ function jv(e, t, n) {
21597
21646
  if (typeof e == "boolean") return e;
21598
21647
  if (!Q(e)) {
21599
21648
  $(n, "wrong-type", t, "omitted", "expected a boolean or object");
21600
21649
  return;
21601
21650
  }
21602
- $_(e, ["options"], t, n);
21651
+ ev(e, ["options"], t, n);
21603
21652
  let r = {};
21604
- if (!Y_(e, "options")) return r;
21653
+ if (!X_(e, "options")) return r;
21605
21654
  let i = e.options;
21606
- return Array.isArray(i) && i.length > 0 && i.every((e) => Z_(e) && e > 0) && i.every((e, t) => t === 0 || e > i[t - 1]) ? r.options = [...i] : $(n, Array.isArray(i) ? "invalid-value" : "wrong-type", `${t}.options`, "omitted", "expected a non-empty strictly ascending list of positive rates"), r;
21655
+ return Array.isArray(i) && i.length > 0 && i.every((e) => Q_(e) && e > 0) && i.every((e, t) => t === 0 || e > i[t - 1]) ? r.options = [...i] : $(n, Array.isArray(i) ? "invalid-value" : "wrong-type", `${t}.options`, "omitted", "expected a non-empty strictly ascending list of positive rates"), r;
21607
21656
  }
21608
- function jv(e, t, n) {
21657
+ function Mv(e, t, n) {
21609
21658
  if (typeof e == "boolean") return e;
21610
21659
  if (!Q(e)) {
21611
21660
  $(n, "wrong-type", t, "omitted", "expected a boolean or object");
21612
21661
  return;
21613
21662
  }
21614
- $_(e, [
21663
+ ev(e, [
21615
21664
  "canonicalUrl",
21616
21665
  "embedUrl",
21617
21666
  "playerTrigger",
@@ -21620,11 +21669,11 @@ function jv(e, t, n) {
21620
21669
  ], t, n);
21621
21670
  let r = {};
21622
21671
  for (let i of ["canonicalUrl", "embedUrl"]) {
21623
- let a = ev(e, i, t, n);
21672
+ let a = tv(e, i, t, n);
21624
21673
  a !== void 0 && (r[i] = a);
21625
21674
  }
21626
- let i = tv(e, "playerTrigger", t, n);
21627
- if (i !== void 0 && (r.playerTrigger = i), Y_(e, "targets")) {
21675
+ let i = nv(e, "playerTrigger", t, n);
21676
+ if (i !== void 0 && (r.playerTrigger = i), X_(e, "targets")) {
21628
21677
  let i = e.targets;
21629
21678
  if (!Array.isArray(i)) $(n, "wrong-type", `${t}.targets`, "omitted", "expected an array");
21630
21679
  else {
@@ -21656,13 +21705,13 @@ function jv(e, t, n) {
21656
21705
  }), r.targets = o;
21657
21706
  }
21658
21707
  }
21659
- if (Y_(e, "templates")) {
21708
+ if (X_(e, "templates")) {
21660
21709
  if (!Q(e.templates)) $(n, "wrong-type", `${t}.templates`, "omitted", "expected an object");
21661
21710
  else {
21662
- $_(e.templates, ["message"], `${t}.templates`, n);
21711
+ ev(e.templates, ["message"], `${t}.templates`, n);
21663
21712
  let i = {};
21664
21713
  for (let r of ["message"]) {
21665
- let a = ev(e.templates, r, `${t}.templates`, n);
21714
+ let a = tv(e.templates, r, `${t}.templates`, n);
21666
21715
  a !== void 0 && (i[r] = a);
21667
21716
  }
21668
21717
  r.templates = i;
@@ -21670,21 +21719,21 @@ function jv(e, t, n) {
21670
21719
  }
21671
21720
  return r;
21672
21721
  }
21673
- function Mv(e, t, n) {
21722
+ function Nv(e, t, n) {
21674
21723
  if (!Q(e)) {
21675
21724
  $(n, "wrong-type", t, "omitted", "expected an object");
21676
21725
  return;
21677
21726
  }
21678
- $_(e, J_, t, n);
21727
+ ev(e, Y_, t, n);
21679
21728
  let r = {};
21680
- for (let i of J_) {
21681
- if (!Y_(e, i)) continue;
21682
- let a = i === "speed" ? Av(e[i], `${t}.${i}`, n) : i === "share" ? jv(e[i], `${t}.${i}`, n) : tv(e, i, t, n);
21729
+ for (let i of Y_) {
21730
+ if (!X_(e, i)) continue;
21731
+ let a = i === "speed" ? jv(e[i], `${t}.${i}`, n) : i === "share" ? Mv(e[i], `${t}.${i}`, n) : nv(e, i, t, n);
21683
21732
  a !== void 0 && Object.assign(r, { [i]: a });
21684
21733
  }
21685
21734
  return r;
21686
21735
  }
21687
- function Nv(e, t, n) {
21736
+ function Pv(e, t, n) {
21688
21737
  if (!Q(e)) {
21689
21738
  $(n, "wrong-type", t, "omitted", "expected an object");
21690
21739
  return;
@@ -21693,7 +21742,7 @@ function Nv(e, t, n) {
21693
21742
  for (let [i, a] of Object.entries(e)) typeof a == "string" ? r[i] = a : $(n, "wrong-type", `${t}.${i}`, "omitted", "expected a string");
21694
21743
  return r;
21695
21744
  }
21696
- function Pv(e, t, n) {
21745
+ function Fv(e, t, n) {
21697
21746
  if (typeof e == "string") return e;
21698
21747
  if (!Array.isArray(e)) {
21699
21748
  $(n, "wrong-type", t, "omitted", "expected a string or string array");
@@ -21708,50 +21757,50 @@ function Pv(e, t, n) {
21708
21757
  typeof e == "string" ? r.push(e) : $(n, "dropped-entry", `${t}[${i}]`, "dropped", "expected a string");
21709
21758
  }), r.length > 0 ? r : void 0;
21710
21759
  }
21711
- function Fv(e, t) {
21712
- $_(e, G_, "$.content", t);
21713
- let n = { sources: e.sources.map((e, n) => sv(e, `$.content.sources[${n}]`, t)).filter((e) => e !== void 0) };
21760
+ function Iv(e, t) {
21761
+ ev(e, K_, "$.content", t);
21762
+ let n = { sources: e.sources.map((e, n) => cv(e, `$.content.sources[${n}]`, t)).filter((e) => e !== void 0) };
21714
21763
  for (let r of [
21715
21764
  "title",
21716
21765
  "author",
21717
21766
  "description",
21718
21767
  "poster"
21719
21768
  ]) {
21720
- let i = ev(e, r, "$.content", t);
21769
+ let i = tv(e, r, "$.content", t);
21721
21770
  i !== void 0 && (n[r] = i);
21722
21771
  }
21723
- let r = rv(e, "duration", "$.content", t);
21772
+ let r = iv(e, "duration", "$.content", t);
21724
21773
  r !== void 0 && (n.duration = r);
21725
- let i = ov(e, "tracks", "$.content", t, cv);
21774
+ let i = sv(e, "tracks", "$.content", t, lv);
21726
21775
  i !== void 0 && (n.tracks = i);
21727
- let a = uv(e, t);
21728
- if (a !== void 0 && (n.chapters = a), Y_(e, "metadata")) {
21729
- let r = wv(e.metadata, "$.content.metadata", t);
21776
+ let a = dv(e, t);
21777
+ if (a !== void 0 && (n.chapters = a), X_(e, "metadata")) {
21778
+ let r = Tv(e.metadata, "$.content.metadata", t);
21730
21779
  r !== void 0 && (n.metadata = r);
21731
21780
  }
21732
21781
  return n;
21733
21782
  }
21734
- function Iv(e, t) {
21783
+ function Lv(e, t) {
21735
21784
  return {
21736
21785
  level: "error",
21737
21786
  code: t ? "legacy-config-invalid" : "config-invalid",
21738
21787
  message: `${t ? "[lt-player] Legacy pre-v3 configuration rejected" : "[lt-player] Configuration rejected"}:\n${e.map((e) => `- ${e.path}: ${e.message}`).join("\n")}`
21739
21788
  };
21740
21789
  }
21741
- function Lv(e, t) {
21790
+ function Rv(e, t) {
21742
21791
  return {
21743
21792
  status: "valid",
21744
21793
  config: e,
21745
21794
  findings: t,
21746
- diagnostic: H_(t)
21795
+ diagnostic: U_(t)
21747
21796
  };
21748
21797
  }
21749
- function Rv(e, t, n) {
21798
+ function zv(e, t, n) {
21750
21799
  return e.filter((e) => e.start <= t || ($(n, "chapter-beyond-duration", "$.content.chapters", "dropped", `chapter "${e.name}" at ${e.start} seconds exceeds duration ${t}`), !1));
21751
21800
  }
21752
- function zv(e, t) {
21801
+ function Bv(e, t) {
21753
21802
  let n = Q(e) ? e : {}, r = Q(n.content) ? n.content : void 0, i = n.layout, a = [];
21754
- if (X_(i) || a.push({
21803
+ if (Z_(i) || a.push({
21755
21804
  code: "invalid-layout",
21756
21805
  path: "$.layout",
21757
21806
  message: "layout must be landscape or portrait"
@@ -21759,54 +21808,54 @@ function zv(e, t) {
21759
21808
  code: "missing-sources",
21760
21809
  path: "$.content.sources",
21761
21810
  message: "content.sources must be a non-empty array"
21762
- }), t.application === "update" && X_(i) && i !== t.instanceLayout && a.push({
21811
+ }), t.application === "update" && Z_(i) && i !== t.instanceLayout && a.push({
21763
21812
  code: "layout-change",
21764
21813
  path: "$.layout",
21765
21814
  message: `layout cannot change from ${t.instanceLayout} to ${i}`
21766
21815
  }), a.length > 0) {
21767
- let e = Y_(n, "body");
21816
+ let e = X_(n, "body");
21768
21817
  return {
21769
21818
  status: "invalid",
21770
21819
  violations: a,
21771
21820
  legacy: e,
21772
- diagnostic: Iv(a, e)
21821
+ diagnostic: Lv(a, e)
21773
21822
  };
21774
21823
  }
21775
21824
  let o = [];
21776
- $_(n, W_, "$", o);
21825
+ ev(n, G_, "$", o);
21777
21826
  let s = {
21778
21827
  version: 3,
21779
21828
  layout: i,
21780
- content: Fv(r, o)
21829
+ content: Iv(r, o)
21781
21830
  };
21782
- if (Y_(n, "version") && n.version !== 3 && $(o, typeof n.version == "number" ? "invalid-value" : "wrong-type", "$.version", "omitted", "version was normalized to 3"), Y_(n, "language")) {
21783
- let e = Pv(n.language, "$.language", o);
21831
+ if (X_(n, "version") && n.version !== 3 && $(o, typeof n.version == "number" ? "invalid-value" : "wrong-type", "$.version", "omitted", "version was normalized to 3"), X_(n, "language")) {
21832
+ let e = Fv(n.language, "$.language", o);
21784
21833
  e !== void 0 && (s.language = e);
21785
21834
  }
21786
- if (Y_(n, "controls")) {
21787
- let e = kv(n.controls, "$.controls", o);
21835
+ if (X_(n, "controls")) {
21836
+ let e = Av(n.controls, "$.controls", o);
21788
21837
  e !== void 0 && (s.controls = e);
21789
21838
  }
21790
- if (Y_(n, "capabilities")) {
21791
- let e = Mv(n.capabilities, "$.capabilities", o);
21839
+ if (X_(n, "capabilities")) {
21840
+ let e = Nv(n.capabilities, "$.capabilities", o);
21792
21841
  e !== void 0 && (s.capabilities = e);
21793
21842
  }
21794
- if (Y_(n, "strings")) {
21795
- let e = Nv(n.strings, "$.strings", o);
21843
+ if (X_(n, "strings")) {
21844
+ let e = Pv(n.strings, "$.strings", o);
21796
21845
  e !== void 0 && (s.strings = e);
21797
21846
  }
21798
- let c = s.content.chapters, l = s.content.duration ?? (Q_(t.engineDuration) ? t.engineDuration : void 0);
21847
+ let c = s.content.chapters, l = s.content.duration ?? ($_(t.engineDuration) ? t.engineDuration : void 0);
21799
21848
  return c !== void 0 && c.length > 0 && l === void 0 ? {
21800
21849
  status: "pending-duration",
21801
21850
  config: s,
21802
21851
  findings: o,
21803
21852
  diagnostic: null
21804
- } : (c !== void 0 && l !== void 0 && (s.content.chapters = Rv(c, l, o)), Lv(s, o));
21853
+ } : (c !== void 0 && l !== void 0 && (s.content.chapters = zv(c, l, o)), Rv(s, o));
21805
21854
  }
21806
- function Bv(e, t) {
21807
- if (!Q_(t)) return e;
21808
- let n = [...e.findings], r = Rv(e.config.content.chapters ?? [], t, n);
21809
- return Lv({
21855
+ function Vv(e, t) {
21856
+ if (!$_(t)) return e;
21857
+ let n = [...e.findings], r = zv(e.config.content.chapters ?? [], t, n);
21858
+ return Rv({
21810
21859
  ...e.config,
21811
21860
  content: {
21812
21861
  ...e.config.content,
@@ -21814,16 +21863,16 @@ function Bv(e, t) {
21814
21863
  }
21815
21864
  }, n);
21816
21865
  }
21817
- function Vv(e) {
21818
- return Lv(e.config, e.findings);
21866
+ function Hv(e) {
21867
+ return Rv(e.config, e.findings);
21819
21868
  }
21820
21869
  //#endregion
21821
21870
  //#region src/page-api/player-runtime.ts
21822
- var Hv = Symbol("chapter-unset"), Uv = () => void 0;
21823
- function Wv(e) {
21871
+ var Uv = Symbol("chapter-unset"), Wv = () => void 0;
21872
+ function Gv(e) {
21824
21873
  return Number.isFinite(e) && e >= 0 ? e : 0;
21825
21874
  }
21826
- function Gv(e) {
21875
+ function Kv(e) {
21827
21876
  return Fh({
21828
21877
  version: 3,
21829
21878
  layout: e,
@@ -21837,14 +21886,14 @@ function Gv(e) {
21837
21886
  }
21838
21887
  });
21839
21888
  }
21840
- function Kv(e) {
21889
+ function qv(e) {
21841
21890
  if (typeof e == "object" && e && "layout" in e) {
21842
21891
  let t = e.layout;
21843
21892
  if (t === "landscape" || t === "portrait") return t;
21844
21893
  }
21845
21894
  return "landscape";
21846
21895
  }
21847
- var qv = class {
21896
+ var Jv = class {
21848
21897
  #e;
21849
21898
  #t;
21850
21899
  #n;
@@ -21863,7 +21912,7 @@ var qv = class {
21863
21912
  #h = 0;
21864
21913
  #g = "";
21865
21914
  #_ = -1;
21866
- #v = Hv;
21915
+ #v = Uv;
21867
21916
  #y = Object.freeze({
21868
21917
  playback: "idle",
21869
21918
  currentTime: 0,
@@ -21916,9 +21965,9 @@ var qv = class {
21916
21965
  return this.#x;
21917
21966
  }
21918
21967
  mount(e) {
21919
- let t = zv(e, { application: "mount" });
21968
+ let t = Bv(e, { application: "mount" });
21920
21969
  if (t.status === "invalid") {
21921
- let n = Kv(e), r = Gv(n), i = Ch(), a = Zm(r);
21970
+ let n = qv(e), r = Kv(n), i = Ch(), a = Zm(r);
21922
21971
  throw this.#m += 1, this.#l = Object.freeze({
21923
21972
  generation: this.#m,
21924
21973
  revision: ++this.#h,
@@ -21941,7 +21990,7 @@ var qv = class {
21941
21990
  if (this.#b) return;
21942
21991
  let t = this.application;
21943
21992
  this.#E();
21944
- let n = zv(e, {
21993
+ let n = Bv(e, {
21945
21994
  application: "update",
21946
21995
  instanceLayout: t.config.layout
21947
21996
  });
@@ -21965,8 +22014,8 @@ var qv = class {
21965
22014
  });
21966
22015
  let e = this.#d.getSnapshot(), t = this.#d.playerState.getSnapshot().playback, n = Object.freeze({
21967
22016
  playback: t,
21968
- currentTime: Wv(e.currentTime),
21969
- duration: Wv(e.duration),
22017
+ currentTime: Gv(e.currentTime),
22018
+ duration: Gv(e.duration),
21970
22019
  volume: e.volume,
21971
22020
  muted: e.muted,
21972
22021
  rate: e.rate,
@@ -21977,7 +22026,7 @@ var qv = class {
21977
22026
  return this.#y = n, n;
21978
22027
  }
21979
22028
  on(e, t) {
21980
- if (this.#b) return Uv;
22029
+ if (this.#b) return Wv;
21981
22030
  let n = this.#s.get(e) ?? /* @__PURE__ */ new Set();
21982
22031
  this.#s.set(e, n);
21983
22032
  let r = t;
@@ -21988,7 +22037,7 @@ var qv = class {
21988
22037
  };
21989
22038
  }
21990
22039
  attachEngine(e) {
21991
- if (this.#b) return Uv;
22040
+ if (this.#b) return Wv;
21992
22041
  this.#f?.(), this.#d = e;
21993
22042
  let t = e.media, n = e.getSnapshot(), r = e.playerState.getSnapshot(), i = e.subscribe(() => {
21994
22043
  let t = e.getSnapshot();
@@ -22018,7 +22067,7 @@ var qv = class {
22018
22067
  let n = this.application;
22019
22068
  if (n.generation !== e || n.revision !== t) return;
22020
22069
  let r = `${e}:${t}`;
22021
- this.#g !== r && (this.#g = r, n.commit !== "duration" && (this.#S = !0, this.#_ = -1, this.#v = Hv, n.configurationError ? (this.#d.pause(), this.#d.playerState.enterConfigurationError()) : (this.#C = n.generation, this.#d.playerState.resetForApplication(this.#r), this.#d.userState.applyResolvedConfig(n.config, this.#r), this.#d.load()), this.#S = !1, n.commit === "update" && this.#I("videoChange", {})));
22070
+ this.#g !== r && (this.#g = r, n.commit !== "duration" && (this.#S = !0, this.#_ = -1, this.#v = Uv, n.configurationError ? (this.#d.pause(), this.#d.playerState.enterConfigurationError()) : (this.#C = n.generation, this.#d.playerState.resetForApplication(this.#r), this.#d.userState.applyResolvedConfig(n.config, this.#r), this.#d.load()), this.#S = !1, n.commit === "update" && this.#I("videoChange", {})));
22022
22071
  }
22023
22072
  #w(e, t) {
22024
22073
  let n = this.#d?.userState.getSnapshot() ?? this.#a.hydrate(), r = Fh(e.config, n), i = Ch(typeof r.language == "string" ? r.language : [...r.language], r.strings), a = this.#l?.registry ?? Zm(r);
@@ -22041,7 +22090,7 @@ var qv = class {
22041
22090
  #T(e) {
22042
22091
  let t = this.#u;
22043
22092
  if (t === null || t.generation !== this.application.generation || this.#C !== -1 || !Number.isFinite(e) || e <= 0) return;
22044
- let n = Bv(t.result, e);
22093
+ let n = Vv(t.result, e);
22045
22094
  if (n.status === "pending-duration") return;
22046
22095
  this.#u = null;
22047
22096
  let r = this.#d?.userState.getSnapshot() ?? this.#a.hydrate(), i = Fh(n.config, r);
@@ -22056,7 +22105,7 @@ var qv = class {
22056
22105
  let e = this.#u;
22057
22106
  if (e === null) return;
22058
22107
  this.#u = null;
22059
- let t = Vv(e.result);
22108
+ let t = Hv(e.result);
22060
22109
  this.#L([...t.findings, ...e.stringFindings]);
22061
22110
  }
22062
22111
  #D(e) {
@@ -22086,7 +22135,7 @@ var qv = class {
22086
22135
  #M(e) {
22087
22136
  if (!(this.#b || this.#S || this.#d === null)) {
22088
22137
  if (e === "canplay") {
22089
- this.#C = -1, this.#T(this.#d.getSnapshot().duration), this.#_ !== this.application.generation && (this.#_ = this.application.generation, this.#I("ready", { duration: Wv(this.#d.getSnapshot().duration) }));
22138
+ this.#C = -1, this.#T(this.#d.getSnapshot().duration), this.#_ !== this.application.generation && (this.#_ = this.application.generation, this.#I("ready", { duration: Gv(this.#d.getSnapshot().duration) }));
22090
22139
  return;
22091
22140
  }
22092
22141
  if (this.#C === -1) {
@@ -22121,33 +22170,33 @@ var qv = class {
22121
22170
  }
22122
22171
  #I(e, t) {
22123
22172
  if (this.#b) return;
22124
- let n = Wv(this.#d?.getSnapshot().currentTime ?? 0), r = Object.freeze({
22173
+ let n = Gv(this.#d?.getSnapshot().currentTime ?? 0), r = Object.freeze({
22125
22174
  currentTime: n,
22126
22175
  ...t
22127
22176
  });
22128
22177
  for (let t of [...this.#s.get(e) ?? []]) t(r);
22129
22178
  }
22130
22179
  #L(e) {
22131
- U_(e, (e) => this.#R(e));
22180
+ W_(e, (e) => this.#R(e));
22132
22181
  }
22133
22182
  #R(e) {
22134
22183
  e.level === "error" ? console.error(e.message) : console.warn(e.message);
22135
22184
  }
22136
- }, Jv = /* @__PURE__ */ new WeakMap();
22137
- function Yv(e) {
22185
+ }, Yv = /* @__PURE__ */ new WeakMap();
22186
+ function Xv(e) {
22138
22187
  return e.id ? `#${e.id}` : e.tagName.toLowerCase();
22139
22188
  }
22140
- function Xv(e, t) {
22141
- let n = Jv.get(e);
22189
+ function Zv(e, t) {
22190
+ let n = Yv.get(e);
22142
22191
  if (n !== void 0) {
22143
- if (!n.isFailedMount()) throw Error(`Cannot create player: host ${Yv(e)} is already owned`);
22192
+ if (!n.isFailedMount()) throw Error(`Cannot create player: host ${Xv(e)} is already owned`);
22144
22193
  n.destroy();
22145
22194
  }
22146
- let r = (0, ud.createRoot)(e), i = new qv({
22147
- applicationContext: V_(e),
22195
+ let r = (0, ud.createRoot)(e), i = new Jv({
22196
+ applicationContext: H_(e),
22148
22197
  render(e) {
22149
22198
  r !== null && (0, Ol.flushSync)(() => {
22150
- r?.render((0, w.createElement)(O_, {
22199
+ r?.render((0, w.createElement)(k_, {
22151
22200
  application: e,
22152
22201
  runtime: i
22153
22202
  }));
@@ -22159,10 +22208,10 @@ function Xv(e, t) {
22159
22208
  r = null, (0, Ol.flushSync)(() => e.unmount());
22160
22209
  },
22161
22210
  releaseHost() {
22162
- Jv.get(e) === i && Jv.delete(e);
22211
+ Yv.get(e) === i && Yv.delete(e);
22163
22212
  }
22164
22213
  });
22165
- return Jv.set(e, i), i.mount(t);
22214
+ return Yv.set(e, i), i.mount(t);
22166
22215
  }
22167
22216
  //#endregion
22168
- export { m as _, Bp as a, en as c, St as d, _t as f, v as g, f as h, Rp as i, $t as l, _ as m, B_ as n, Id as o, A as p, Fp as r, xn as s, Xv as t, Qt as u };
22217
+ export { m as _, Bp as a, en as c, St as d, _t as f, v as g, f as h, Rp as i, $t as l, _ as m, V_ as n, Id as o, A as p, Fp as r, xn as s, Zv as t, Qt as u };