mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-12 20:16:15 -08:00
Dashboard Continue Watching now carries the exact saved season/episode into Xtream series details and starts it at the persisted offset. Successful external MPV/VLC launches persist the launched episode and retarget the series CTA to "Play episode N". Recent-history rows keyed by an episode id resolve their parent series before navigation. Includes maintainer follow-ups: no zero-offset resume on failed position loads, seriesXtreamId-gated resume targets for legacy rows, and patch coverage raised from 76.7% to 93.9%. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
44 lines
997 B
JavaScript
44 lines
997 B
JavaScript
// The video.js CJS bundle fails to evaluate under the web project's ESM jest
|
|
// preset, so specs that transitively import the vjs player get this stub. It
|
|
// stays CommonJS because videojs plugin packages require() it at module load.
|
|
class StubComponent {
|
|
createEl() {
|
|
return {};
|
|
}
|
|
}
|
|
|
|
class StubPlugin {}
|
|
|
|
class StubEventTarget {
|
|
on() {
|
|
return undefined;
|
|
}
|
|
off() {
|
|
return undefined;
|
|
}
|
|
one() {
|
|
return undefined;
|
|
}
|
|
trigger() {
|
|
return undefined;
|
|
}
|
|
}
|
|
|
|
const videoJs = () => ({
|
|
dispose: () => undefined,
|
|
on: () => undefined,
|
|
off: () => undefined,
|
|
src: () => undefined,
|
|
});
|
|
|
|
videoJs.getComponent = () => StubComponent;
|
|
videoJs.registerComponent = () => undefined;
|
|
videoJs.getPlugin = () => StubPlugin;
|
|
videoJs.registerPlugin = () => undefined;
|
|
videoJs.EventTarget = StubEventTarget;
|
|
videoJs.dom = { createEl: () => ({}) };
|
|
videoJs.browser = {};
|
|
|
|
module.exports = videoJs;
|
|
module.exports.default = videoJs;
|