perf(sources): keep source-health helpers off the startup path

Master's #1931 lowered the initial-bytes baseline, and this branch then
sat 535 bytes over its slack. Most of its growth was runtime helpers in
`@iptvnator/shared/interfaces` (reachability, health history, reason and
fingerprint helpers) that only the lazily loaded source services call:
the bundler put them in a chunk the app preloads. They now live in
`@iptvnator/portal/shared/data-access` beside those services (types stay
in interfaces); initialBytes 1,350,438 → 1,349,048, 855 under the limit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Opus 5.5 committed 2026-10-14 04:02:40 +02:00
1 parent 31899d7b58
commit 7d0e8f69ca
14 files changed
+191 -167

No files matched your search

@@ -10,7 +10,10 @@ import { MatTooltip } from '@angular/material/tooltip';
import { Store } from '@ngrx/store';
import { TranslatePipe } from '@ngx-translate/core';
import { selectAllPlaylistsMeta } from '@iptvnator/m3u-state';
import { SourceStatusService } from '@iptvnator/portal/shared/data-access';
import {
SourceStatusService,
sourceStatusBucket,
} from '@iptvnator/portal/shared/data-access';
import { SourceRemovalService } from '@iptvnator/playlist/shared/ui';
import {
countSourcesByStatus,
@@ -20,10 +23,7 @@ import {
SourcesTypeFilter,
SourcesViewStateService,
} from '@iptvnator/playlist/shared/util';
import {
SOURCE_TYPE_ICONS,
sourceStatusBucket,
} from '@iptvnator/shared/interfaces';
import { SOURCE_TYPE_ICONS } from '@iptvnator/shared/interfaces';
import {
WORKSPACE_SHELL_ACTIONS,
WorkspaceShellContextDrawerService,
@@ -18,7 +18,10 @@ import { Store } from '@ngrx/store';
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
import { map } from 'rxjs';
import { PlaylistActions, selectAllPlaylistsMeta } from '@iptvnator/m3u-state';
import { SourceStatusService } from '@iptvnator/portal/shared/data-access';
import {
SourceStatusService,
sourceStatusBucket,
} from '@iptvnator/portal/shared/data-access';
import {
isLiveExternalPlayerSession,
PORTAL_EXTERNAL_PLAYBACK,
@@ -43,7 +46,6 @@ import {
import {
PlaylistUpdateState,
sourceHealthType,
sourceStatusBucket,
} from '@iptvnator/shared/interfaces';
import {
MenuItemRadioCheckDirective,