mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-09 01:16:15 -08:00
Finishes the size finding rather than arguing it: `epg.service.ts` is now 247 lines and has left `max-lines-baseline.mjs` — the baseline the repo says must only shrink is one file shorter. The whole "what is on air" machinery moved out unchanged: - `EpgSingleProgramLookup` — one channel, and the scope ladder it walks. - `EpgCurrentProgramsLookup` — the batch ladder, backed by the per-channel lookups so both shapes answer identically. - `EpgLookupContext` — the five collaborators they need from the service. - `epg-lookup-normalization.util.ts` — the two pure id/URL normalizers the service's metadata path shares with them. The service keeps the import pipeline, the capability guards and the two public entry points that delegate. Note for readers: the cache field must be declared before the context that captures it — class fields initialise in declaration order, and a context built too early carries an undefined cache. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>