From d24c77a14395b895b23ed5149bc727aba5a05023 Mon Sep 17 00:00:00 2001 From: 4gray <4gray@users.noreply.github.com> Date: Fri, 15 May 2026 09:59:06 +0200 Subject: [PATCH] chore(nx): enforce scoped workspace boundaries (#942) --- .../skills/iptvnator-nx-architecture/SKILL.md | 44 +++++++++++ .../iptvnator-sqlite-db-worker/SKILL.md | 31 ++++++++ .codex/skills/iptvnator-theme-style/SKILL.md | 31 ++++++++ .codex/skills/iptvnator-ui-design/SKILL.md | 29 +++++++ .codex/skills/xtream-electron/SKILL.md | 30 +++++++ .gitignore | 4 +- AGENTS.md | 11 ++- CLAUDE.md | 16 +++- apps/electron-backend-e2e/project.json | 3 +- apps/electron-backend/build-worker.js | 10 +-- apps/electron-backend/project.json | 3 +- .../src/app/api/main.preload.ts | 2 +- .../app/database/connection-schema.spec.ts | 2 +- .../src/app/database/connection.ts | 2 +- .../src/app/database/database.types.ts | 2 +- .../operations/category.operations.spec.ts | 2 +- .../operations/category.operations.ts | 2 +- .../content-backdrop.operations.spec.ts | 2 +- .../operations/content-backdrop.operations.ts | 2 +- .../operations/content.operations.spec.ts | 2 +- .../database/operations/content.operations.ts | 2 +- .../operations/favorites.operations.ts | 2 +- .../playback-position.operations.ts | 2 +- .../operations/playlist.operations.ts | 2 +- .../operations/recently-viewed.operations.ts | 2 +- .../database/operations/xtream.operations.ts | 4 +- .../src/app/database/schema.ts | 2 +- .../src/app/events/embedded-mpv.events.ts | 2 +- .../src/app/events/epg.events.ts | 2 +- .../external-player-session-registry.spec.ts | 2 +- .../external-player-session-registry.ts | 2 +- .../src/app/events/player.events.ts | 2 +- .../src/app/events/playlist.events.ts | 4 +- .../src/app/events/portal-debug.events.ts | 2 +- .../src/app/events/settings.events.ts | 2 +- .../src/app/events/stalker.events.ts | 2 +- .../src/app/events/xtream.events.spec.ts | 2 +- .../src/app/events/xtream.events.ts | 2 +- .../embedded-mpv-native.service.spec.ts | 2 +- .../services/embedded-mpv-native.service.ts | 2 +- .../src/app/services/store.service.ts | 2 +- .../app/workers/database.worker-connection.ts | 4 +- .../src/app/workers/database.worker.ts | 2 +- .../src/app/workers/epg-parser.worker.ts | 2 +- .../app/workers/playlist-refresh.worker.ts | 4 +- .../workers/playlist-refresh.worker.types.ts | 2 +- apps/electron-backend/src/main.ts | 2 +- apps/remote-control-web/project.json | 2 +- apps/remote-control-web/src/app/app.ts | 2 +- apps/stalker-mock-server/project.json | 2 +- apps/web-e2e/project.json | 3 +- apps/web/project.json | 2 +- apps/web/src/app/app.component.spec.ts | 6 +- apps/web/src/app/app.component.ts | 6 +- apps/web/src/app/app.config.ts | 6 +- apps/web/src/app/app.routes.ts | 2 +- ...edded-mpv-player-recording-message.spec.ts | 2 +- .../app/global-collection-route.component.ts | 2 +- .../web/src/app/services/downloads.service.ts | 2 +- apps/web/src/app/services/electron.service.ts | 6 +- .../external-playback.service.spec.ts | 2 +- .../app/services/external-playback.service.ts | 2 +- .../src/app/services/player.service.spec.ts | 4 +- apps/web/src/app/services/player.service.ts | 6 +- .../portal-navigation-actions.service.ts | 2 +- apps/web/src/app/services/pwa.service.ts | 6 +- .../app/services/settings-store.service.ts | 2 +- .../src/app/services/settings.service.spec.ts | 2 +- apps/web/src/app/services/settings.service.ts | 2 +- .../settings-general-section.component.ts | 2 +- apps/web/src/app/settings/settings-options.ts | 4 +- ...ettings-playback-section.component.spec.ts | 2 +- .../settings-playback-section.component.ts | 2 +- .../app/settings/settings.component.spec.ts | 8 +- .../src/app/settings/settings.component.ts | 8 +- apps/web/src/app/settings/settings.models.ts | 2 +- apps/web/src/typings.d.ts | 4 +- apps/website/project.json | 60 +++++++------- apps/xtream-mock-server/project.json | 2 +- docs/architecture/m3u-playlist-module.md | 2 +- docs/architecture/nx-workspace-boundaries.md | 78 +++++++++++++++++++ docs/architecture/sqlite-db-worker.md | 4 +- eslint.config.mjs | 52 +++++++++++++ .../epg-program-normalization.util.spec.ts | 2 +- .../src/lib/epg-program-normalization.util.ts | 2 +- libs/epg/data-access/src/lib/epg.service.ts | 2 +- libs/m3u-state/jest.config.ts | 2 +- libs/m3u-state/src/lib/actions.ts | 2 +- .../src/lib/channel-epg-lookup.util.spec.ts | 2 +- .../src/lib/channel-epg-lookup.util.ts | 2 +- libs/m3u-state/src/lib/effects.spec.ts | 2 +- libs/m3u-state/src/lib/effects.ts | 6 +- .../src/lib/external-player-payload.util.ts | 2 +- libs/m3u-state/src/lib/playlists.state.ts | 2 +- .../src/lib/reducers/channel.reducers.spec.ts | 2 +- .../src/lib/reducers/channel.reducers.ts | 2 +- .../src/lib/reducers/epg.reducers.ts | 2 +- .../lib/reducers/playlist.reducers.spec.ts | 2 +- .../src/lib/reducers/playlist.reducers.ts | 2 +- libs/m3u-state/src/lib/selectors.spec.ts | 2 +- libs/m3u-state/src/lib/selectors.ts | 2 +- libs/m3u-state/src/lib/state.ts | 4 +- .../add-playlist-dialog.component.spec.ts | 6 +- .../add-playlist-dialog.component.ts | 6 +- .../stalker-portal-import.component.ts | 4 +- .../xtream-code-import.component.ts | 6 +- ...3u-workspace-route-session.service.spec.ts | 6 +- .../m3u-workspace-route-session.service.ts | 4 +- .../m3u-channel-playback-actions.spec.ts | 4 +- .../m3u-channel-playback-actions.ts | 4 +- .../video-player.component.spec.ts | 8 +- .../video-player/video-player.component.ts | 14 ++-- .../filter-sort-menu.component.ts | 4 +- .../playlist-switcher.component.spec.ts | 6 +- .../playlist-switcher.component.ts | 8 +- .../playlist-info/playlist-info.component.ts | 6 +- .../playlist-item.component.spec.ts | 2 +- .../playlist-item/playlist-item.component.ts | 4 +- .../recent-playlists.component.spec.ts | 8 +- .../recent-playlists.component.ts | 8 +- .../src/lib/playlist-context.facade.spec.ts | 4 +- .../util/src/lib/playlist-context.facade.ts | 4 +- .../lib/playlist-file-import.service.spec.ts | 4 +- .../src/lib/playlist-file-import.service.ts | 4 +- .../playlist-refresh-action.service.spec.ts | 8 +- .../lib/playlist-refresh-action.service.ts | 8 +- .../feature/src/lib/downloads.component.ts | 6 +- libs/portal/shared/ui/src/index.ts | 4 +- .../favorites-layout.component.ts | 4 +- .../global-favorites-list.component.spec.ts | 6 +- .../global-favorites-list.component.ts | 6 +- .../grid-list/grid-list.component.ts | 2 +- .../playlist-error-view.component.ts | 4 +- .../portal-collection-live-shell.component.ts | 6 +- .../portal-collection-shell.component.ts | 2 +- .../unified-collection-page.component.spec.ts | 6 +- .../unified-collection-page.component.ts | 4 +- .../unified-live-tab.component.ts | 10 +-- .../lib/navigation/navigation.component.ts | 4 +- .../src/lib/collection/collection-helpers.ts | 2 +- .../stream-resolver.service.spec.ts | 4 +- .../lib/collection/stream-resolver.service.ts | 4 +- .../unified-collection-item.interface.ts | 2 +- .../unified-favorite-channel.interface.ts | 2 +- .../unified-favorites-data.service.spec.ts | 4 +- .../unified-favorites-data.service.ts | 6 +- .../unified-live-tab.component.spec.ts | 8 +- .../unified-recent-data.service.spec.ts | 4 +- .../collection/unified-recent-data.service.ts | 6 +- libs/portal/shared/util/src/lib/logger.ts | 2 +- .../navigation/workspace-portal-navigation.ts | 2 +- .../util/src/lib/portal-catalog-facade.ts | 2 +- .../lib/portal-collection-context.service.ts | 2 +- .../util/src/lib/portal-collection-context.ts | 2 +- .../util/src/lib/portal-collection-items.ts | 2 +- .../util/src/lib/portal-external-playback.ts | 2 +- .../util/src/lib/portal-navigation-actions.ts | 2 +- .../util/src/lib/portal-playback-positions.ts | 2 +- .../shared/util/src/lib/portal-player.ts | 4 +- .../util/src/lib/series-quick-start.spec.ts | 2 +- .../shared/util/src/lib/series-quick-start.ts | 2 +- .../models/stalker-favorite-item.interface.ts | 2 +- .../stalker-serial-details.interface.ts | 4 +- .../models/stalker-vod-details.interface.ts | 4 +- .../src/lib/stalker-content-types.ts | 2 +- .../src/lib/stalker-live-playback.utils.ts | 2 +- .../src/lib/stalker-series.adapters.ts | 2 +- .../src/lib/stalker-session.service.ts | 4 +- .../src/lib/stalker-vod.utils.spec.ts | 2 +- .../data-access/src/lib/stalker-vod.utils.ts | 4 +- .../src/lib/stalker.store.compat.spec.ts | 2 +- .../with-stalker-content.feature.spec.ts | 4 +- .../features/with-stalker-content.feature.ts | 2 +- .../features/with-stalker-epg.feature.spec.ts | 4 +- .../features/with-stalker-epg.feature.ts | 4 +- .../with-stalker-favorites.feature.ts | 4 +- .../with-stalker-player.feature.spec.ts | 4 +- .../features/with-stalker-player.feature.ts | 4 +- .../features/with-stalker-portal.feature.ts | 4 +- .../features/with-stalker-recent.feature.ts | 4 +- .../features/with-stalker-series.feature.ts | 4 +- .../src/lib/stores/stalker-store.contracts.ts | 2 +- .../stalker-collection-persistence.utils.ts | 4 +- .../stalker-player-request.utils.spec.ts | 2 +- .../utils/stalker-player-request.utils.ts | 4 +- .../lib/stores/utils/stalker-request.utils.ts | 4 +- .../stalker-catalog-detail.component.ts | 4 +- .../stalker-catalog-facade.service.spec.ts | 2 +- .../src/lib/stalker-catalog-facade.service.ts | 2 +- ...collection-channels-list.component.spec.ts | 4 +- ...lker-collection-channels-list.component.ts | 4 +- ...talker-collection-detail.component.spec.ts | 6 +- .../stalker-collection-detail.component.ts | 6 +- ...stalker-favorites-button.component.spec.ts | 2 +- .../stalker-favorites-button.component.ts | 2 +- .../stalker-inline-detail.component.ts | 2 +- ...alker-live-stream-layout.component.spec.ts | 8 +- .../stalker-live-stream-layout.component.ts | 8 +- .../stalker-search.component.ts | 4 +- .../stalker-series-quick-start.ts | 2 +- .../stalker-series-view.component.spec.ts | 6 +- .../stalker-series-view.component.ts | 6 +- .../stalker-vod-playback-controller.spec.ts | 2 +- .../lib/stalker-vod-playback-controller.ts | 2 +- ...er-workspace-route-session.service.spec.ts | 4 +- ...stalker-workspace-route-session.service.ts | 2 +- .../electron-xtream-data-source.ts | 4 +- .../data-sources/pwa-xtream-data-source.ts | 2 +- .../xtream-data-source.interface.ts | 4 +- .../lib/services/epg-queue.service.spec.ts | 4 +- .../src/lib/services/epg-queue.service.ts | 4 +- .../src/lib/services/favorites.service.ts | 2 +- .../lib/services/xtream-api.service.spec.ts | 4 +- .../src/lib/services/xtream-api.service.ts | 4 +- .../lib/services/xtream-url.service.spec.ts | 2 +- .../src/lib/services/xtream-url.service.ts | 4 +- .../xtream-xmltv-fallback.service.spec.ts | 2 +- .../services/xtream-xmltv-fallback.service.ts | 2 +- .../features/with-content.feature.spec.ts | 2 +- .../stores/features/with-content.feature.ts | 4 +- .../stores/features/with-epg.feature.spec.ts | 4 +- .../lib/stores/features/with-epg.feature.ts | 4 +- .../with-playback-positions.feature.ts | 2 +- .../stores/features/with-player.feature.ts | 2 +- .../stores/features/with-search.feature.ts | 2 +- .../src/lib/stores/xtream.store.ts | 2 +- .../src/lib/with-favorites.feature.spec.ts | 2 +- .../src/lib/with-favorites.feature.ts | 2 +- .../src/lib/with-recent-items.feature.spec.ts | 2 +- .../data-access/src/lib/with-recent-items.ts | 4 +- .../data-access/src/lib/xtream-state.ts | 4 +- .../account-info/account-info.component.ts | 2 +- .../category-management-dialog.component.ts | 2 +- .../live-stream-layout.component.spec.ts | 6 +- .../live-stream-layout.component.ts | 8 +- .../portal-channels-list.component.spec.ts | 2 +- .../portal-channels-list.component.ts | 4 +- .../search-results.component.spec.ts | 2 +- .../search-results.component.ts | 2 +- .../serial-details.component.spec.ts | 2 +- .../serial-details.component.ts | 4 +- .../vod-details-fallback.util.spec.ts | 2 +- .../vod-details/vod-details-fallback.util.ts | 2 +- .../vod-details-route.component.spec.ts | 4 +- .../vod-details-route.component.ts | 6 +- ...xtream-collection-detail.component.spec.ts | 4 +- .../lib/xtream-collection-detail.component.ts | 6 +- ...am-workspace-route-session.service.spec.ts | 2 +- .../xtream-workspace-route-session.service.ts | 2 +- libs/services/jest.config.ts | 2 +- .../src/lib/database-electron.service.ts | 2 +- .../src/lib/playback-position.service.ts | 2 +- .../src/lib/playlist-backup.service.spec.ts | 2 +- .../src/lib/playlist-backup.service.ts | 2 +- .../src/lib/playlist-refresh.service.ts | 2 +- .../src/lib/playlists.service.spec.ts | 2 +- libs/services/src/lib/playlists.service.ts | 4 +- .../src/lib/settings-store.service.ts | 2 +- libs/services/src/lib/sort.service.ts | 2 +- .../src/lib/xtream-pending-restore.service.ts | 2 +- libs/shared/database/README.md | 6 +- libs/shared/interfaces/jest.config.ts | 2 +- libs/shared/interfaces/package.json | 3 +- libs/shared/m3u-utils/jest.config.ts | 2 +- libs/shared/m3u-utils/package.json | 6 +- .../m3u-utils/src/lib/catchup.utils.spec.ts | 2 +- .../shared/m3u-utils/src/lib/catchup.utils.ts | 2 +- .../m3u-utils/src/lib/playlist.utils.spec.ts | 2 +- .../m3u-utils/src/lib/playlist.utils.ts | 2 +- libs/ui/components/jest.config.ts | 2 +- .../all-channels-view.component.spec.ts | 2 +- .../all-channels-view.component.ts | 4 +- .../channel-details-dialog.component.spec.ts | 2 +- .../channel-details-dialog.component.ts | 4 +- .../channel-list-container.component.spec.ts | 6 +- .../channel-list-container.component.ts | 6 +- .../channel-list-item.component.spec.ts | 2 +- .../channel-list-item.component.ts | 2 +- .../channel-logo-fallback.util.ts | 4 +- .../favorites-view.component.spec.ts | 2 +- .../favorites-view.component.ts | 4 +- .../groups-view/groups-view.component.spec.ts | 2 +- .../groups-view/groups-view.component.ts | 4 +- .../recent-view/recent-view.component.spec.ts | 2 +- .../recent-view/recent-view.component.ts | 4 +- .../external-playback-dock.component.spec.ts | 2 +- .../external-playback-dock.component.ts | 2 +- .../season-container.component.spec.ts | 4 +- .../season-container.component.ts | 4 +- .../epg-item-description.component.spec.ts | 2 +- .../epg-item-description.component.ts | 2 +- .../epg-list-item.component.spec.ts | 2 +- .../epg-list-item/epg-list-item.component.ts | 2 +- .../lib/epg-list/epg-list.component.spec.ts | 2 +- .../src/lib/epg-list/epg-list.component.ts | 4 +- .../multi-epg-container.component.ts | 2 +- .../art-player/art-player.component.spec.ts | 2 +- .../lib/art-player/art-player.component.ts | 2 +- .../audio-player/audio-player.component.ts | 2 +- .../embedded-mpv-format.utils.ts | 2 +- .../embedded-mpv-player.component.ts | 2 +- .../embedded-mpv-session-controller.ts | 2 +- .../html-video-player.component.spec.ts | 2 +- .../html-video-player.component.ts | 4 +- .../playback-diagnostics.model.ts | 2 +- .../playback-media-source.util.ts | 2 +- .../portal-inline-player.component.ts | 2 +- .../video-player/sidebar/sidebar.component.ts | 4 +- .../video-player/toolbar/toolbar.component.ts | 4 +- .../lib/vod-details/vod-details.component.ts | 6 +- .../web-player-view.component.spec.ts | 2 +- .../web-player-view.component.ts | 4 +- libs/ui/remote-control/jest.config.ts | 2 +- libs/ui/shared-portals/jest.config.ts | 2 +- .../src/lib/epg-view/epg-view.component.ts | 2 +- .../live-stream-layout.component.ts | 4 +- .../dashboard/data-access/jest.config.ts | 2 +- .../src/lib/dashboard-data.service.spec.ts | 6 +- .../src/lib/dashboard-data.service.ts | 12 +-- .../data-access/src/lib/dashboard-mappers.ts | 4 +- .../dashboard/feature/jest.config.ts | 2 +- ...orkspace-dashboard-rails.component.spec.ts | 2 +- .../workspace-dashboard-rails.component.ts | 10 +-- .../global-favorites.service.ts | 6 +- .../recent-commands.service.ts | 2 +- ...kspace-player-commands.contributor.spec.ts | 4 +- .../workspace-player-commands.contributor.ts | 4 +- ...rkspace-shell-context-sidebar.component.ts | 2 +- .../services/workspace-shell.facade.spec.ts | 4 +- .../services/workspace-shell.facade.ts | 6 +- .../workspace-shell.component.ts | 2 +- ...rkspace-sources-filters-panel.component.ts | 2 +- .../workspace-sources.component.ts | 4 +- .../util/src/lib/workspace-shell-actions.ts | 2 +- ...kspace-startup-preferences.service.spec.ts | 4 +- .../workspace-startup-preferences.service.ts | 4 +- tools/packaging/project.json | 2 +- tsconfig.base.json | 38 +++++---- 338 files changed, 925 insertions(+), 589 deletions(-) create mode 100644 .codex/skills/iptvnator-nx-architecture/SKILL.md create mode 100644 .codex/skills/iptvnator-sqlite-db-worker/SKILL.md create mode 100644 .codex/skills/iptvnator-theme-style/SKILL.md create mode 100644 .codex/skills/iptvnator-ui-design/SKILL.md create mode 100644 .codex/skills/xtream-electron/SKILL.md create mode 100644 docs/architecture/nx-workspace-boundaries.md diff --git a/.codex/skills/iptvnator-nx-architecture/SKILL.md b/.codex/skills/iptvnator-nx-architecture/SKILL.md new file mode 100644 index 000000000..94e643d4a --- /dev/null +++ b/.codex/skills/iptvnator-nx-architecture/SKILL.md @@ -0,0 +1,44 @@ +--- +name: iptvnator-nx-architecture +description: Repository-specific Nx monorepo structure, library placement rules, scoped path aliases, and migration guardrails for portal/workspace/app code. +--- + +# IPTVnator Nx Architecture + +Use this skill when deciding where code belongs, extracting libraries, changing imports, editing project tags, or refactoring portal/workspace/app boundaries. + +## Project Shape + +- `apps/web`: Angular renderer application. +- `apps/electron-backend`: Electron main process and native/runtime integration. +- `apps/*-e2e`: Playwright E2E projects. +- `apps/*-mock-server`: local development and E2E mock servers. +- `libs/playlist/*`: M3U/import/shared playlist functionality. +- `libs/portal/*`: Xtream, Stalker, and provider-neutral portal functionality. +- `libs/workspace/*`: workspace shell and dashboard. +- `libs/ui/*`: provider-neutral UI, playback, EPG, remote control, and pipes. +- `libs/shared/*`: contracts, database, and pure utility code. + +## Import Policy + +- Use scoped aliases from `tsconfig.base.json`, for example `@iptvnator/services` and `@iptvnator/shared/interfaces`. +- Do not reintroduce legacy bare aliases such as `services`, `components`, or `shared-interfaces`. +- Prefer library public APIs (`src/index.ts`) over deep imports unless a sub-entrypoint is explicitly configured. +- Keep app-only code in `apps/*`; shared behavior belongs in a domain library. + +## Tag Policy + +- Every project should have `scope:*`, `domain:*`, and `type:*` tags. +- Use `type:feature` for route/component orchestration, `type:data-access` for stores/API/persistence, `type:ui` for reusable components, and `type:util` for pure helpers/contracts. +- Keep `type:data-access` from depending on `type:feature` or `type:ui`. +- Add or update `@nx/enforce-module-boundaries` constraints when introducing new tag families. + +## Validation + +```bash +pnpm nx show projects +pnpm nx lint +pnpm nx test +``` + +When dependencies are not installed in a fresh worktree, run `pnpm install --frozen-lockfile` first. diff --git a/.codex/skills/iptvnator-sqlite-db-worker/SKILL.md b/.codex/skills/iptvnator-sqlite-db-worker/SKILL.md new file mode 100644 index 000000000..49bf8a163 --- /dev/null +++ b/.codex/skills/iptvnator-sqlite-db-worker/SKILL.md @@ -0,0 +1,31 @@ +--- +name: iptvnator-sqlite-db-worker +description: Repository-specific guidance for Electron non-EPG SQLite worker boundaries, request-scoped DB progress events, and validation for slow DB operations. +--- + +# IPTVnator SQLite DB Worker + +Use this skill when changing Electron SQLite operations, worker-backed database flows, DB progress events, or Xtream/playlist import/search/delete persistence. + +## Ownership + +- Runtime worker client: `apps/electron-backend/src/app/services/database-worker-client.ts` +- Worker protocol: `apps/electron-backend/src/app/workers/database-worker.types.ts` +- Worker dispatcher: `apps/electron-backend/src/app/workers/database.worker.ts` +- SQL operation modules: `apps/electron-backend/src/app/database/operations/` +- Shared schema/path helpers: `libs/shared/database/src/` +- Architecture doc: `docs/architecture/sqlite-db-worker.md` + +## Rules + +- Keep heavy non-EPG SQLite work off the Electron main thread. +- Keep SQL-heavy logic in operation modules; keep the worker entrypoint as dispatcher/orchestration. +- Emit request-scoped `DB_OPERATION_EVENT` progress for long-running operations. +- Preserve cancellation as cooperative and chunk-based. +- Do not break existing preload API method names without a coordinated renderer migration. + +## Validation + +- Run `pnpm nx test electron-backend` for worker/client/operation changes. +- Run targeted Electron E2E for import, search, delete, backup/restore, or downloads flows when touched. +- Use `IPTVNATOR_TRACE_DB=1` or `IPTVNATOR_TRACE_SQL=1` for manual debugging. diff --git a/.codex/skills/iptvnator-theme-style/SKILL.md b/.codex/skills/iptvnator-theme-style/SKILL.md new file mode 100644 index 000000000..0763e7c8e --- /dev/null +++ b/.codex/skills/iptvnator-theme-style/SKILL.md @@ -0,0 +1,31 @@ +--- +name: iptvnator-theme-style +description: Theme architecture, design tokens, shared SCSS library, portal header/sidebar patterns, Electron drag regions, and cross-portal style consistency. +--- + +# IPTVnator Theme Style + +Use this skill when changing SCSS tokens, shared layout mixins, portal headers, sidebars, detail views, or Electron draggable regions. + +## Shared Style Sources + +- `libs/ui/styles/_index.scss` +- `libs/ui/styles/_portal-layout.scss` +- `libs/ui/styles/_content-grid.scss` +- `libs/ui/styles/_portal-sidebar.scss` +- `libs/ui/styles/_panel-header.scss` +- `libs/ui/styles/_detail-view-actions.scss` +- `docs/architecture/iptvnator-ui-guidelines.md` + +## Rules + +- Prefer shared SCSS mixins and Material system tokens over local hard-coded colors. +- Keep Electron drag behavior explicit: interactive controls need `app-region: no-drag`. +- Do not duplicate large SCSS files across feature libraries; extract a shared partial or mixin. +- Use relative SCSS imports only when no stable shared entrypoint exists. +- Check Xtream, Stalker, M3U, and workspace views for cross-portal style drift when editing shared patterns. + +## Validation + +- Run lint/tests for the affected UI project. +- Manually inspect the changed screen in light and dark themes for layout, selection, and drag-region regressions. diff --git a/.codex/skills/iptvnator-ui-design/SKILL.md b/.codex/skills/iptvnator-ui-design/SKILL.md new file mode 100644 index 000000000..6c49bb223 --- /dev/null +++ b/.codex/skills/iptvnator-ui-design/SKILL.md @@ -0,0 +1,29 @@ +--- +name: iptvnator-ui-design +description: Repository-specific UI design guidance for IPTVnator channel rows, EPG views, settings surfaces, shared selection styles, and light/dark theme consistency. +--- + +# IPTVnator UI Design + +Use this skill when changing user-visible Angular UI in the IPTVnator app, especially channel lists, EPG panels, settings, playlist surfaces, and portal shared components. + +## Principles + +- Prefer dense, scannable application UI over marketing-style layouts. +- Preserve existing Material 3 token usage and light/dark theme behavior. +- Keep repeated selection states aligned with existing `--app-selection-*` tokens. +- Use existing shared UI components before adding local one-off markup. +- Avoid large visual rewrites in behavior-focused changes. + +## Checklist + +1. Inspect the nearest existing component and shared UI library before editing. +2. Check both light and dark theme styles when touching colors, borders, hover states, or selection states. +3. Keep text and controls within fixed-width rows from resizing the layout. +4. Prefer existing components from `@iptvnator/ui/components`, `@iptvnator/portal/shared/ui`, and `@iptvnator/ui/epg`. +5. Add or update focused component tests for changed interaction states. + +## Validation + +- Run the affected Nx project test target. +- For visible workflow changes, run the closest Playwright E2E target or manually verify through Electron CDP as documented in `AGENTS.md`. diff --git a/.codex/skills/xtream-electron/SKILL.md b/.codex/skills/xtream-electron/SKILL.md new file mode 100644 index 000000000..305afcd27 --- /dev/null +++ b/.codex/skills/xtream-electron/SKILL.md @@ -0,0 +1,30 @@ +--- +name: xtream-electron +description: IPTVnator's Electron-first Xtream implementation, including feature/data-access boundaries, worker-backed DB flows, and Xtream loading/progress UX. +--- + +# Xtream Electron + +Use this skill when working on Xtream routes, stores, data sources, import/search/delete behavior, or Electron-backed Xtream playback and persistence. + +## Key Areas + +- Feature UI: `libs/portal/xtream/feature/src/lib/` +- Data access: `libs/portal/xtream/data-access/src/lib/` +- Shared portal utilities: `libs/portal/shared/util/src/lib/` +- Shared portal UI: `libs/portal/shared/ui/src/lib/` +- Electron DB events: `apps/electron-backend/src/app/events/database/` +- DB worker operations: `apps/electron-backend/src/app/database/operations/` + +## Rules + +- Keep provider-specific API/cache behavior in `portal/xtream/data-access`. +- Keep reusable layout and collection UI in `portal/shared/ui` or `portal/shared/util`. +- Prefer worker-backed DB operations for large imports, global search, delete, and restore. +- Preserve request cancellation and progress reporting for long imports. +- Validate both PWA and Electron data-source paths when changing Xtream APIs. + +## Validation + +- Run `pnpm nx test portal-xtream-data-access` and `pnpm nx test portal-xtream-feature` for store/UI changes. +- Run `pnpm nx run web-e2e:e2e-ci--src/xtream.e2e.ts` or the closest Electron E2E target for user-visible Xtream workflow changes. diff --git a/.gitignore b/.gitignore index 698ce0d19..befffd62e 100644 --- a/.gitignore +++ b/.gitignore @@ -73,7 +73,9 @@ Thumbs.db .cursor .agent .claude -.codex +.codex/* +!.codex/skills/ +!.codex/skills/** .plans # Native Electron addons diff --git a/AGENTS.md b/AGENTS.md index eb95e0745..c1bde1d3a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -9,6 +9,15 @@ This file provides guidance to coding agents working in this repository. - Use the filename pattern `YYYY-MM-DD-short-topic.md` such as `.plans/2026-03-12-channel-filtering.md`. - If the intended filename already exists, append a numeric suffix such as `-2`, `-3`, and so on. +## Agent Bootstrap + +- In a fresh worktree, run `pnpm install --frozen-lockfile` before relying on Nx project discovery, lint, test, or build commands. Without `node_modules`, `pnpm nx show projects` will fail because the local Nx modules are unavailable. +- After dependencies are installed, verify workspace discovery with `pnpm nx show projects`. +- Use scoped path aliases from `tsconfig.base.json` such as `@iptvnator/services`, `@iptvnator/shared/interfaces`, and `@iptvnator/ui/components`. Do not add new imports from legacy bare aliases such as `services`, `shared-interfaces`, `components`, `m3u-state`, or `database`. +- Every Nx project should keep `scope:*`, `domain:*`, and `type:*` tags in `project.json` so `@nx/enforce-module-boundaries` remains useful for humans and agents. +- See `docs/architecture/nx-workspace-boundaries.md` for the current Nx tag and alias policy. +- Repository-specific skills are committed under `.codex/skills/`. If an external agent does not support skills, treat those files as concise ownership docs. + ## Documentation After Changes - After implementing a meaningful change, agents must assess whether canonical repo docs need updates before considering the task complete. @@ -150,7 +159,7 @@ Key files: ## General Guidelines for working with Nx -- For navigating/exploring the workspace, invoke the `nx-workspace` skill first - it has patterns for querying projects, targets, and dependencies +- For navigating/exploring the workspace, invoke the `nx-workspace` skill first when it is available - it has patterns for querying projects, targets, and dependencies. If it is unavailable, use `pnpm nx show projects`, `pnpm nx graph`, and project `project.json` files directly. - When running tasks (for example build, lint, test, e2e, etc.), always prefer running the task through `nx` (i.e. `nx run`, `nx run-many`, `nx affected`) instead of using the underlying tooling directly - Prefix nx commands with the workspace's package manager (e.g., `pnpm nx build`, `npm exec nx test`) - avoids using globally installed CLI - You have access to the Nx MCP server and its tools, use them to help the user diff --git a/CLAUDE.md b/CLAUDE.md index 02daca064..e99b3c071 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -45,6 +45,20 @@ IPTVnator is a cross-platform IPTV player application built with Angular and Ele ## Development Commands +### Agent Bootstrap + +```bash +pnpm install --frozen-lockfile +pnpm nx show projects +``` + +- Run the install step in a fresh worktree before relying on Nx discovery, lint, test, or build commands. Without `node_modules`, local Nx modules are unavailable. +- Use scoped path aliases from `tsconfig.base.json` such as `@iptvnator/services`, `@iptvnator/shared/interfaces`, and `@iptvnator/ui/components`. +- Do not add new imports from legacy bare aliases such as `services`, `shared-interfaces`, `components`, `m3u-state`, or `database`. +- Every Nx project should keep `scope:*`, `domain:*`, and `type:*` tags in `project.json`. +- See `docs/architecture/nx-workspace-boundaries.md` for the current Nx tag and alias policy. +- Repository-specific skills are committed under `.codex/skills/`. If Claude Code does not load skills directly, treat those files as concise ownership docs. + ### Building and Serving ```bash @@ -689,7 +703,7 @@ No formal migration system yet. Schema changes are applied via raw SQL in `conne ## General Guidelines for working with Nx -- For navigating/exploring the workspace, invoke the `nx-workspace` skill first - it has patterns for querying projects, targets, and dependencies +- For navigating/exploring the workspace, invoke the `nx-workspace` skill first when it is available - it has patterns for querying projects, targets, and dependencies. If it is unavailable, use `pnpm nx show projects`, `pnpm nx graph`, and project `project.json` files directly. - When running tasks (for example build, lint, test, e2e, etc.), always prefer running the task through `nx` (i.e. `nx run`, `nx run-many`, `nx affected`) instead of using the underlying tooling directly - Prefix nx commands with the workspace's package manager (e.g., `pnpm nx build`, `npm exec nx test`) - avoids using globally installed CLI - You have access to the Nx MCP server and its tools, use them to help the user diff --git a/apps/electron-backend-e2e/project.json b/apps/electron-backend-e2e/project.json index 4d777d241..b21c54f82 100644 --- a/apps/electron-backend-e2e/project.json +++ b/apps/electron-backend-e2e/project.json @@ -12,5 +12,6 @@ "e2e": { "dependsOn": ["electron-backend:build-e2e"] } - } + }, + "tags": ["scope:e2e", "domain:electron-main", "type:e2e"] } diff --git a/apps/electron-backend/build-worker.js b/apps/electron-backend/build-worker.js index 7d7d7c48f..a80817272 100644 --- a/apps/electron-backend/build-worker.js +++ b/apps/electron-backend/build-worker.js @@ -77,23 +77,23 @@ async function buildWorker() { sourcemap: !isProduction, minify: isProduction, alias: { - 'shared-interfaces': path.join( + '@iptvnator/shared/interfaces': path.join( __dirname, '../../libs/shared/interfaces/src/index.ts' ), - 'm3u-utils': path.join( + '@iptvnator/shared/m3u-utils': path.join( __dirname, '../../libs/shared/m3u-utils/src/index.ts' ), - 'database': path.join( + '@iptvnator/shared/database': path.join( __dirname, '../../libs/shared/database/src/index.ts' ), - 'database-schema': path.join( + '@iptvnator/shared/database/schema': path.join( __dirname, '../../libs/shared/database/src/lib/schema.ts' ), - 'database-path-utils': path.join( + '@iptvnator/shared/database/path-utils': path.join( __dirname, '../../libs/shared/database/src/lib/path-utils.ts' ), diff --git a/apps/electron-backend/project.json b/apps/electron-backend/project.json index 80bda92be..9993dd2ae 100644 --- a/apps/electron-backend/project.json +++ b/apps/electron-backend/project.json @@ -179,5 +179,6 @@ "jestConfig": "apps/electron-backend/jest.config.ts" } } - } + }, + "tags": ["scope:electron", "domain:electron-main", "type:app"] } diff --git a/apps/electron-backend/src/app/api/main.preload.ts b/apps/electron-backend/src/app/api/main.preload.ts index a11dc2465..d4b84936f 100644 --- a/apps/electron-backend/src/app/api/main.preload.ts +++ b/apps/electron-backend/src/app/api/main.preload.ts @@ -9,7 +9,7 @@ import type { PlaylistRefreshPayload, ResolvedPortalPlayback, XtreamCategory, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { DEBUG_TRACE_EVENT_CHANNEL, isRendererApiTraceEnabled, diff --git a/apps/electron-backend/src/app/database/connection-schema.spec.ts b/apps/electron-backend/src/app/database/connection-schema.spec.ts index 0535311e2..673d53b20 100644 --- a/apps/electron-backend/src/app/database/connection-schema.spec.ts +++ b/apps/electron-backend/src/app/database/connection-schema.spec.ts @@ -1,4 +1,4 @@ -import { __databaseConnectionTestHooks } from 'database'; +import { __databaseConnectionTestHooks } from '@iptvnator/shared/database'; function statementContaining(pattern: string): string { const statement = diff --git a/apps/electron-backend/src/app/database/connection.ts b/apps/electron-backend/src/app/database/connection.ts index eaaff155d..54e9f8339 100644 --- a/apps/electron-backend/src/app/database/connection.ts +++ b/apps/electron-backend/src/app/database/connection.ts @@ -10,5 +10,5 @@ export { closeDatabase, type DatabaseInstance, type DatabaseOptions, -} from 'database'; +} from '@iptvnator/shared/database'; diff --git a/apps/electron-backend/src/app/database/database.types.ts b/apps/electron-backend/src/app/database/database.types.ts index 22a0af16d..6ac8a6c82 100644 --- a/apps/electron-backend/src/app/database/database.types.ts +++ b/apps/electron-backend/src/app/database/database.types.ts @@ -1,4 +1,4 @@ import type { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3'; -import * as schema from 'database-schema'; +import * as schema from '@iptvnator/shared/database/schema'; export type AppDatabase = BetterSQLite3Database; diff --git a/apps/electron-backend/src/app/database/operations/category.operations.spec.ts b/apps/electron-backend/src/app/database/operations/category.operations.spec.ts index ba79ca834..b11405790 100644 --- a/apps/electron-backend/src/app/database/operations/category.operations.spec.ts +++ b/apps/electron-backend/src/app/database/operations/category.operations.spec.ts @@ -1,5 +1,5 @@ import type { AppDatabase } from '../database.types'; -import * as schema from 'database-schema'; +import * as schema from '@iptvnator/shared/database/schema'; import { getCategories, saveCategories } from './category.operations'; function createDbMock(existingCount = 0) { diff --git a/apps/electron-backend/src/app/database/operations/category.operations.ts b/apps/electron-backend/src/app/database/operations/category.operations.ts index d1263b00c..a22a4a4e2 100644 --- a/apps/electron-backend/src/app/database/operations/category.operations.ts +++ b/apps/electron-backend/src/app/database/operations/category.operations.ts @@ -1,5 +1,5 @@ import { and, eq, inArray, sql } from 'drizzle-orm'; -import * as schema from 'database-schema'; +import * as schema from '@iptvnator/shared/database/schema'; import type { AppDatabase } from '../database.types'; type XtreamCategoryInput = { diff --git a/apps/electron-backend/src/app/database/operations/content-backdrop.operations.spec.ts b/apps/electron-backend/src/app/database/operations/content-backdrop.operations.spec.ts index b7ba14c5d..9bf39bd1f 100644 --- a/apps/electron-backend/src/app/database/operations/content-backdrop.operations.spec.ts +++ b/apps/electron-backend/src/app/database/operations/content-backdrop.operations.spec.ts @@ -20,7 +20,7 @@ jest.mock('drizzle-orm', () => ({ sqlMock(strings, ...values), })); -import * as schema from 'database-schema'; +import * as schema from '@iptvnator/shared/database/schema'; import type { AppDatabase } from '../database.types'; import { setContentBackdropIfMissing } from './content-backdrop.operations'; diff --git a/apps/electron-backend/src/app/database/operations/content-backdrop.operations.ts b/apps/electron-backend/src/app/database/operations/content-backdrop.operations.ts index c3ccc56fa..dc02ca7c1 100644 --- a/apps/electron-backend/src/app/database/operations/content-backdrop.operations.ts +++ b/apps/electron-backend/src/app/database/operations/content-backdrop.operations.ts @@ -1,5 +1,5 @@ import { and, eq, sql } from 'drizzle-orm'; -import * as schema from 'database-schema'; +import * as schema from '@iptvnator/shared/database/schema'; import type { AppDatabase } from '../database.types'; export async function persistContentBackdropIfMissing( diff --git a/apps/electron-backend/src/app/database/operations/content.operations.spec.ts b/apps/electron-backend/src/app/database/operations/content.operations.spec.ts index 69314a23c..7563642df 100644 --- a/apps/electron-backend/src/app/database/operations/content.operations.spec.ts +++ b/apps/electron-backend/src/app/database/operations/content.operations.spec.ts @@ -18,7 +18,7 @@ jest.mock('drizzle-orm', () => ({ sql: jest.fn(), })); -import * as schema from 'database-schema'; +import * as schema from '@iptvnator/shared/database/schema'; import type { AppDatabase } from '../database.types'; import { getContentByXtreamId, saveContent } from './content.operations'; diff --git a/apps/electron-backend/src/app/database/operations/content.operations.ts b/apps/electron-backend/src/app/database/operations/content.operations.ts index 444d4aecc..738b63e3d 100644 --- a/apps/electron-backend/src/app/database/operations/content.operations.ts +++ b/apps/electron-backend/src/app/database/operations/content.operations.ts @@ -1,5 +1,5 @@ import { and, asc, desc, eq, inArray, or, sql } from 'drizzle-orm'; -import * as schema from 'database-schema'; +import * as schema from '@iptvnator/shared/database/schema'; import type { AppDatabase } from '../database.types'; import { checkpointOperation, diff --git a/apps/electron-backend/src/app/database/operations/favorites.operations.ts b/apps/electron-backend/src/app/database/operations/favorites.operations.ts index 3c6db8eeb..9ee5ba4c7 100644 --- a/apps/electron-backend/src/app/database/operations/favorites.operations.ts +++ b/apps/electron-backend/src/app/database/operations/favorites.operations.ts @@ -1,5 +1,5 @@ import { and, asc, desc, eq, inArray, sql } from 'drizzle-orm'; -import * as schema from 'database-schema'; +import * as schema from '@iptvnator/shared/database/schema'; import type { AppDatabase } from '../database.types'; import { chunkValues, diff --git a/apps/electron-backend/src/app/database/operations/playback-position.operations.ts b/apps/electron-backend/src/app/database/operations/playback-position.operations.ts index 3668a2c01..e7782139f 100644 --- a/apps/electron-backend/src/app/database/operations/playback-position.operations.ts +++ b/apps/electron-backend/src/app/database/operations/playback-position.operations.ts @@ -1,5 +1,5 @@ import { and, desc, eq, sql } from 'drizzle-orm'; -import * as schema from 'database-schema'; +import * as schema from '@iptvnator/shared/database/schema'; import type { AppDatabase } from '../database.types'; type PlaylistType = 'xtream' | 'stalker' | 'm3u-file' | 'm3u-text' | 'm3u-url'; diff --git a/apps/electron-backend/src/app/database/operations/playlist.operations.ts b/apps/electron-backend/src/app/database/operations/playlist.operations.ts index b8cc19493..b3eb93980 100644 --- a/apps/electron-backend/src/app/database/operations/playlist.operations.ts +++ b/apps/electron-backend/src/app/database/operations/playlist.operations.ts @@ -1,5 +1,5 @@ import { eq, inArray } from 'drizzle-orm'; -import * as schema from 'database-schema'; +import * as schema from '@iptvnator/shared/database/schema'; import type { AppDatabase } from '../database.types'; import { checkpointOperation, diff --git a/apps/electron-backend/src/app/database/operations/recently-viewed.operations.ts b/apps/electron-backend/src/app/database/operations/recently-viewed.operations.ts index 04b6fea49..d1df9adff 100644 --- a/apps/electron-backend/src/app/database/operations/recently-viewed.operations.ts +++ b/apps/electron-backend/src/app/database/operations/recently-viewed.operations.ts @@ -1,5 +1,5 @@ import { and, desc, eq, inArray, sql } from 'drizzle-orm'; -import * as schema from 'database-schema'; +import * as schema from '@iptvnator/shared/database/schema'; import type { AppDatabase } from '../database.types'; import { persistContentBackdropIfMissing } from './content-backdrop.operations'; diff --git a/apps/electron-backend/src/app/database/operations/xtream.operations.ts b/apps/electron-backend/src/app/database/operations/xtream.operations.ts index cc4980945..93643f951 100644 --- a/apps/electron-backend/src/app/database/operations/xtream.operations.ts +++ b/apps/electron-backend/src/app/database/operations/xtream.operations.ts @@ -1,10 +1,10 @@ import { and, eq, inArray } from 'drizzle-orm'; -import * as schema from 'database-schema'; +import * as schema from '@iptvnator/shared/database/schema'; import type { XtreamBackupFavoriteItem, XtreamBackupHiddenCategory, XtreamBackupRecentlyViewedItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import type { AppDatabase } from '../database.types'; import { checkpointOperation, diff --git a/apps/electron-backend/src/app/database/schema.ts b/apps/electron-backend/src/app/database/schema.ts index 26b30353c..84dfb64ae 100644 --- a/apps/electron-backend/src/app/database/schema.ts +++ b/apps/electron-backend/src/app/database/schema.ts @@ -36,4 +36,4 @@ export { type NewPlaybackPosition, type Download, type NewDownload, -} from 'database'; +} from '@iptvnator/shared/database'; diff --git a/apps/electron-backend/src/app/events/embedded-mpv.events.ts b/apps/electron-backend/src/app/events/embedded-mpv.events.ts index 5f4c3e1bd..35f6e2cca 100644 --- a/apps/electron-backend/src/app/events/embedded-mpv.events.ts +++ b/apps/electron-backend/src/app/events/embedded-mpv.events.ts @@ -20,7 +20,7 @@ import { EmbeddedMpvBounds, EmbeddedMpvRecordingStartOptions, ResolvedPortalPlayback, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { EmbeddedMpvNativeService, embeddedMpvNativeService, diff --git a/apps/electron-backend/src/app/events/epg.events.ts b/apps/electron-backend/src/app/events/epg.events.ts index 4a7e31c91..adb08db1f 100644 --- a/apps/electron-backend/src/app/events/epg.events.ts +++ b/apps/electron-backend/src/app/events/epg.events.ts @@ -1,7 +1,7 @@ import { and, eq, gte, inArray, lte, sql } from 'drizzle-orm'; import { app, BrowserWindow, ipcMain } from 'electron'; import * as path from 'path'; -import { EpgChannelMetadata, EpgProgram } from 'shared-interfaces'; +import { EpgChannelMetadata, EpgProgram } from '@iptvnator/shared/interfaces'; import { pathToFileURL } from 'url'; import { Worker } from 'worker_threads'; import { getDatabase } from '../database/connection'; diff --git a/apps/electron-backend/src/app/events/external-player-session-registry.spec.ts b/apps/electron-backend/src/app/events/external-player-session-registry.spec.ts index 00842f692..18e573f11 100644 --- a/apps/electron-backend/src/app/events/external-player-session-registry.spec.ts +++ b/apps/electron-backend/src/app/events/external-player-session-registry.spec.ts @@ -1,4 +1,4 @@ -import { ExternalPlayerSession } from 'shared-interfaces'; +import { ExternalPlayerSession } from '@iptvnator/shared/interfaces'; import { ExternalPlayerSessionRegistry } from './external-player-session-registry'; describe('ExternalPlayerSessionRegistry', () => { diff --git a/apps/electron-backend/src/app/events/external-player-session-registry.ts b/apps/electron-backend/src/app/events/external-player-session-registry.ts index cf4828e93..f18e1fb39 100644 --- a/apps/electron-backend/src/app/events/external-player-session-registry.ts +++ b/apps/electron-backend/src/app/events/external-player-session-registry.ts @@ -2,7 +2,7 @@ import { ExternalPlayerName, ExternalPlayerSession, PlayerContentInfo, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; interface CreateExternalPlayerSessionOptions { player: ExternalPlayerName; diff --git a/apps/electron-backend/src/app/events/player.events.ts b/apps/electron-backend/src/app/events/player.events.ts index 3b3e66838..ebec84ebe 100644 --- a/apps/electron-backend/src/app/events/player.events.ts +++ b/apps/electron-backend/src/app/events/player.events.ts @@ -6,7 +6,7 @@ import { ExternalPlayerSession, parseExternalPlayerArguments, type ExternalPlayerArgumentsInput, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import App from '../app'; import { MPV_PLAYER_ARGUMENTS, diff --git a/apps/electron-backend/src/app/events/playlist.events.ts b/apps/electron-backend/src/app/events/playlist.events.ts index c0035dfaf..f9920b322 100644 --- a/apps/electron-backend/src/app/events/playlist.events.ts +++ b/apps/electron-backend/src/app/events/playlist.events.ts @@ -6,7 +6,7 @@ import axios from 'axios'; import { app, dialog, ipcMain, WebContents } from 'electron'; import { parse } from 'iptv-playlist-parser'; -import { createPlaylistObject, getFilenameFromUrl } from 'm3u-utils'; +import { createPlaylistObject, getFilenameFromUrl } from '@iptvnator/shared/m3u-utils'; import { readFile, writeFile } from 'node:fs/promises'; import { basename } from 'node:path'; import { pathToFileURL } from 'url'; @@ -19,7 +19,7 @@ import { Playlist, PlaylistRefreshEvent, PlaylistRefreshPayload, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { resolveWorkerRuntimeBootstrap } from '../workers/worker-runtime-paths'; import type { PlaylistRefreshWorkerMessage, diff --git a/apps/electron-backend/src/app/events/portal-debug.events.ts b/apps/electron-backend/src/app/events/portal-debug.events.ts index c1acfd2d1..153efee15 100644 --- a/apps/electron-backend/src/app/events/portal-debug.events.ts +++ b/apps/electron-backend/src/app/events/portal-debug.events.ts @@ -1,5 +1,5 @@ import { BrowserWindow } from 'electron'; -import { PORTAL_DEBUG_EVENT, PortalDebugEvent } from 'shared-interfaces'; +import { PORTAL_DEBUG_EVENT, PortalDebugEvent } from '@iptvnator/shared/interfaces'; import { environment } from '../../environments/environment'; const MAX_DEBUG_DEPTH = 6; diff --git a/apps/electron-backend/src/app/events/settings.events.ts b/apps/electron-backend/src/app/events/settings.events.ts index ee35552a2..5d3797880 100644 --- a/apps/electron-backend/src/app/events/settings.events.ts +++ b/apps/electron-backend/src/app/events/settings.events.ts @@ -1,5 +1,5 @@ import { ipcMain } from 'electron'; -import { normalizeExternalPlayerArguments } from 'shared-interfaces'; +import { normalizeExternalPlayerArguments } from '@iptvnator/shared/interfaces'; import { MPV_PLAYER_ARGUMENTS, MPV_REUSE_INSTANCE, diff --git a/apps/electron-backend/src/app/events/stalker.events.ts b/apps/electron-backend/src/app/events/stalker.events.ts index d05e3e0a1..4d04de11a 100644 --- a/apps/electron-backend/src/app/events/stalker.events.ts +++ b/apps/electron-backend/src/app/events/stalker.events.ts @@ -6,7 +6,7 @@ import axios, { AxiosRequestConfig } from 'axios'; import { createHash } from 'crypto'; import { ipcMain } from 'electron'; -import { PortalDebugEvent, STALKER_REQUEST } from 'shared-interfaces'; +import { PortalDebugEvent, STALKER_REQUEST } from '@iptvnator/shared/interfaces'; import { rememberStalkerPlaybackContext } from '../services/stalker-playback-context.service'; import { emitPortalDebugEvent } from './portal-debug.events'; diff --git a/apps/electron-backend/src/app/events/xtream.events.spec.ts b/apps/electron-backend/src/app/events/xtream.events.spec.ts index 743338f48..94bce8b3b 100644 --- a/apps/electron-backend/src/app/events/xtream.events.spec.ts +++ b/apps/electron-backend/src/app/events/xtream.events.spec.ts @@ -1,4 +1,4 @@ -import { XTREAM_CANCEL_SESSION } from 'shared-interfaces'; +import { XTREAM_CANCEL_SESSION } from '@iptvnator/shared/interfaces'; const registeredHandlers = new Map unknown>(); const axiosMock = Object.assign(jest.fn(), { diff --git a/apps/electron-backend/src/app/events/xtream.events.ts b/apps/electron-backend/src/app/events/xtream.events.ts index c117bc191..2706fad3c 100644 --- a/apps/electron-backend/src/app/events/xtream.events.ts +++ b/apps/electron-backend/src/app/events/xtream.events.ts @@ -5,7 +5,7 @@ import axios, { AxiosRequestConfig } from 'axios'; import { ipcMain } from 'electron'; -import { PortalDebugEvent, XTREAM_CANCEL_SESSION } from 'shared-interfaces'; +import { PortalDebugEvent, XTREAM_CANCEL_SESSION } from '@iptvnator/shared/interfaces'; import { emitPortalDebugEvent } from './portal-debug.events'; export default class XtreamEvents { diff --git a/apps/electron-backend/src/app/services/embedded-mpv-native.service.spec.ts b/apps/electron-backend/src/app/services/embedded-mpv-native.service.spec.ts index a3c5da0fe..5da8d4101 100644 --- a/apps/electron-backend/src/app/services/embedded-mpv-native.service.spec.ts +++ b/apps/electron-backend/src/app/services/embedded-mpv-native.service.spec.ts @@ -2,7 +2,7 @@ import type { EmbeddedMpvBounds, EmbeddedMpvSessionStatus, ResolvedPortalPlayback, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { existsSync, mkdtempSync, rmSync, writeFileSync } from 'fs'; import { tmpdir } from 'os'; import path from 'path'; diff --git a/apps/electron-backend/src/app/services/embedded-mpv-native.service.ts b/apps/electron-backend/src/app/services/embedded-mpv-native.service.ts index aaa49c35d..ccc315b28 100644 --- a/apps/electron-backend/src/app/services/embedded-mpv-native.service.ts +++ b/apps/electron-backend/src/app/services/embedded-mpv-native.service.ts @@ -22,7 +22,7 @@ import { EmbeddedMpvSupport, EMBEDDED_MPV_SESSION_UPDATE, ResolvedPortalPlayback, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; interface NativeEmbeddedMpvSessionSnapshot { status: EmbeddedMpvSessionStatus; diff --git a/apps/electron-backend/src/app/services/store.service.ts b/apps/electron-backend/src/app/services/store.service.ts index d1e01ec23..a472708aa 100644 --- a/apps/electron-backend/src/app/services/store.service.ts +++ b/apps/electron-backend/src/app/services/store.service.ts @@ -1,5 +1,5 @@ import { Conf } from 'electron-conf/main'; -import { getElectronConfigDirectory } from 'database'; +import { getElectronConfigDirectory } from '@iptvnator/shared/database'; export const WINDOW_BOUNDS = 'WINDOW_BOUNDS'; export const MPV_PLAYER_PATH = 'MPV_PLAYER_PATH'; diff --git a/apps/electron-backend/src/app/workers/database.worker-connection.ts b/apps/electron-backend/src/app/workers/database.worker-connection.ts index de81d9781..6a2b29784 100644 --- a/apps/electron-backend/src/app/workers/database.worker-connection.ts +++ b/apps/electron-backend/src/app/workers/database.worker-connection.ts @@ -1,6 +1,6 @@ import type BetterSqlite3 from 'better-sqlite3'; -import * as schema from 'database-schema'; -import { getIptvnatorDatabasePath } from 'database-path-utils'; +import * as schema from '@iptvnator/shared/database/schema'; +import { getIptvnatorDatabasePath } from '@iptvnator/shared/database/path-utils'; import { workerData } from 'worker_threads'; import type { AppDatabase } from '../database/database.types'; import { diff --git a/apps/electron-backend/src/app/workers/database.worker.ts b/apps/electron-backend/src/app/workers/database.worker.ts index 4649e5167..899732a32 100644 --- a/apps/electron-backend/src/app/workers/database.worker.ts +++ b/apps/electron-backend/src/app/workers/database.worker.ts @@ -6,7 +6,7 @@ import { parentPort } from 'worker_threads'; import type { XtreamBackupFavoriteItem, XtreamBackupRecentlyViewedItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import type { DbOperationEvent, DbWorkerIncomingMessage, diff --git a/apps/electron-backend/src/app/workers/epg-parser.worker.ts b/apps/electron-backend/src/app/workers/epg-parser.worker.ts index 07517082c..26d683b19 100644 --- a/apps/electron-backend/src/app/workers/epg-parser.worker.ts +++ b/apps/electron-backend/src/app/workers/epg-parser.worker.ts @@ -1,6 +1,6 @@ import type BetterSqlite3 from 'better-sqlite3'; import { existsSync, mkdirSync } from 'fs'; -import { getIptvnatorDatabasePath } from 'database-path-utils'; +import { getIptvnatorDatabasePath } from '@iptvnator/shared/database/path-utils'; import { Readable } from 'stream'; import { parentPort, workerData } from 'worker_threads'; import { createGunzip } from 'zlib'; diff --git a/apps/electron-backend/src/app/workers/playlist-refresh.worker.ts b/apps/electron-backend/src/app/workers/playlist-refresh.worker.ts index 959ce6bed..b0eabc9db 100644 --- a/apps/electron-backend/src/app/workers/playlist-refresh.worker.ts +++ b/apps/electron-backend/src/app/workers/playlist-refresh.worker.ts @@ -2,12 +2,12 @@ import axios from 'axios'; import { parentPort } from 'worker_threads'; import { parse } from 'iptv-playlist-parser'; import { readFile } from 'node:fs/promises'; -import { createPlaylistObject, getFilenameFromUrl } from 'm3u-utils'; +import { createPlaylistObject, getFilenameFromUrl } from '@iptvnator/shared/m3u-utils'; import type { Playlist, PlaylistRefreshEvent, PlaylistRefreshPayload, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import type { PlaylistRefreshWorkerIncomingMessage, PlaylistRefreshWorkerMessage, diff --git a/apps/electron-backend/src/app/workers/playlist-refresh.worker.types.ts b/apps/electron-backend/src/app/workers/playlist-refresh.worker.types.ts index ed6607311..05c7e2a80 100644 --- a/apps/electron-backend/src/app/workers/playlist-refresh.worker.types.ts +++ b/apps/electron-backend/src/app/workers/playlist-refresh.worker.types.ts @@ -1,4 +1,4 @@ -import type { PlaylistRefreshEvent, PlaylistRefreshPayload } from 'shared-interfaces'; +import type { PlaylistRefreshEvent, PlaylistRefreshPayload } from '@iptvnator/shared/interfaces'; export interface PlaylistRefreshWorkerRequestMessage { type: 'request'; diff --git a/apps/electron-backend/src/main.ts b/apps/electron-backend/src/main.ts index ad3861d1a..18fb7b51c 100644 --- a/apps/electron-backend/src/main.ts +++ b/apps/electron-backend/src/main.ts @@ -1,5 +1,5 @@ import { app, BrowserWindow } from 'electron'; -import { getElectronUserDataPath } from 'database'; +import { getElectronUserDataPath } from '@iptvnator/shared/database'; import fixPath from 'fix-path'; import App from './app/app'; import { initDatabase } from './app/database/connection'; diff --git a/apps/remote-control-web/project.json b/apps/remote-control-web/project.json index 53cf78907..5819a8bf5 100644 --- a/apps/remote-control-web/project.json +++ b/apps/remote-control-web/project.json @@ -9,7 +9,7 @@ "enabled": false } }, - "tags": [], + "tags": ["scope:remote-control", "domain:playback", "type:app"], "targets": { "build": { "executor": "@angular/build:application", diff --git a/apps/remote-control-web/src/app/app.ts b/apps/remote-control-web/src/app/app.ts index 0ba58f221..c5cf9f9de 100644 --- a/apps/remote-control-web/src/app/app.ts +++ b/apps/remote-control-web/src/app/app.ts @@ -1,5 +1,5 @@ import { Component, OnInit, inject } from '@angular/core'; -import { RemoteControlComponent } from 'remote-control'; +import { RemoteControlComponent } from '@iptvnator/ui/remote-control'; import { TranslateService } from '@ngx-translate/core'; @Component({ diff --git a/apps/stalker-mock-server/project.json b/apps/stalker-mock-server/project.json index 61e02ecf8..d826d0656 100644 --- a/apps/stalker-mock-server/project.json +++ b/apps/stalker-mock-server/project.json @@ -3,7 +3,7 @@ "$schema": "../../node_modules/nx/schemas/project-schema.json", "projectType": "application", "sourceRoot": "apps/stalker-mock-server/src", - "tags": ["scope:dev-tools"], + "tags": ["scope:dev-tools", "domain:stalker", "type:dev-app"], "targets": { "serve": { "continuous": true, diff --git a/apps/web-e2e/project.json b/apps/web-e2e/project.json index b7417356f..7b39c17a9 100644 --- a/apps/web-e2e/project.json +++ b/apps/web-e2e/project.json @@ -11,5 +11,6 @@ "// targets": "to see all targets run: nx show project web-e2e --web", "targets": { "e2e": {} - } + }, + "tags": ["scope:e2e", "domain:web", "type:e2e"] } diff --git a/apps/web/project.json b/apps/web/project.json index bf423df83..6e4871dcd 100644 --- a/apps/web/project.json +++ b/apps/web/project.json @@ -9,7 +9,7 @@ "enabled": false } }, - "tags": ["scope:app", "type:app"], + "tags": ["scope:app", "domain:web", "type:app"], "targets": { "build": { "executor": "@angular/build:application", diff --git a/apps/web/src/app/app.component.spec.ts b/apps/web/src/app/app.component.spec.ts index 1eca36f97..2c32e2d6c 100644 --- a/apps/web/src/app/app.component.spec.ts +++ b/apps/web/src/app/app.component.spec.ts @@ -8,7 +8,7 @@ import { EpgService } from '@iptvnator/epg/data-access'; import { WORKSPACE_SHELL_ACTIONS } from '@iptvnator/workspace/shell/util'; import { MockProvider } from 'ng-mocks'; import { EMPTY, of } from 'rxjs'; -import { DataService } from 'services'; +import { DataService } from '@iptvnator/services'; import { Language, Settings, @@ -17,8 +17,8 @@ import { StreamFormat, Theme, VideoPlayer, -} from 'shared-interfaces'; -import { PlaylistActions } from 'm3u-state'; +} from '@iptvnator/shared/interfaces'; +import { PlaylistActions } from '@iptvnator/m3u-state'; import { AppComponent } from './app.component'; import { ElectronServiceStub } from './services/electron.service.stub'; import { SettingsService } from './services/settings.service'; diff --git a/apps/web/src/app/app.component.ts b/apps/web/src/app/app.component.ts index 933a9aa11..15b11610f 100644 --- a/apps/web/src/app/app.component.ts +++ b/apps/web/src/app/app.component.ts @@ -7,9 +7,9 @@ import { TranslateService } from '@ngx-translate/core'; import { EpgService } from '@iptvnator/epg/data-access'; import { WORKSPACE_SHELL_ACTIONS } from '@iptvnator/workspace/shell/util'; import { EpgProgressPanelComponent } from '@iptvnator/ui/epg/progress-panel'; -import { PlaylistActions, selectAllPlaylistsMeta } from 'm3u-state'; +import { PlaylistActions, selectAllPlaylistsMeta } from '@iptvnator/m3u-state'; import { filter, take } from 'rxjs'; -import { DataService, SettingsStore } from 'services'; +import { DataService, SettingsStore } from '@iptvnator/services'; import { AUTO_UPDATE_PLAYLISTS, Language, @@ -17,7 +17,7 @@ import { Settings, STORE_KEY, Theme, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { SettingsService } from './services/settings.service'; @Component({ diff --git a/apps/web/src/app/app.config.ts b/apps/web/src/app/app.config.ts index 56a9f91df..eafb9250f 100644 --- a/apps/web/src/app/app.config.ts +++ b/apps/web/src/app/app.config.ts @@ -18,7 +18,7 @@ import { provideStore } from '@ngrx/store'; import { provideStoreDevtools } from '@ngrx/store-devtools'; import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; import { TranslateHttpLoader } from '@ngx-translate/http-loader'; -import { PlaylistEffects, playlistReducer } from 'm3u-state'; +import { PlaylistEffects, playlistReducer } from '@iptvnator/m3u-state'; import { NgxIndexedDBModule, NgxIndexedDBService } from 'ngx-indexed-db'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { @@ -27,8 +27,8 @@ import { } from '@iptvnator/portal/shared/util'; import { PLAYLIST_PLAYER_ACTIONS } from '@iptvnator/playlist/shared/util'; import { provideXtreamDataSource } from '@iptvnator/portal/xtream/data-access'; -import { DataService } from 'services'; -import { dbConfig } from 'shared-interfaces'; +import { DataService } from '@iptvnator/services'; +import { dbConfig } from '@iptvnator/shared/interfaces'; import { AppConfig } from '../environments/environment'; import { routes } from './app.routes'; import { ElectronService } from './services/electron.service'; diff --git a/apps/web/src/app/app.routes.ts b/apps/web/src/app/app.routes.ts index 657b026c5..d15ab2df2 100644 --- a/apps/web/src/app/app.routes.ts +++ b/apps/web/src/app/app.routes.ts @@ -40,7 +40,7 @@ export const routes: Routes = [ path: 'dashboard', canActivate: [dashboardAccessGuard], loadComponent: () => - import('workspace-dashboard-feature').then( + import('@iptvnator/workspace/dashboard/feature').then( (c) => c.WorkspaceDashboardRailsComponent ), }, diff --git a/apps/web/src/app/embedded-mpv-player-recording-message.spec.ts b/apps/web/src/app/embedded-mpv-player-recording-message.spec.ts index e43562419..d8932fac6 100644 --- a/apps/web/src/app/embedded-mpv-player-recording-message.spec.ts +++ b/apps/web/src/app/embedded-mpv-player-recording-message.spec.ts @@ -1,7 +1,7 @@ import { Component, signal } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { ResolvedPortalPlayback } from 'shared-interfaces'; +import { ResolvedPortalPlayback } from '@iptvnator/shared/interfaces'; import { EmbeddedMpvOverlayVisibilityService } from '../../../../libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-overlay-visibility.service'; import { EmbeddedMpvPlayerComponent } from '../../../../libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-player.component'; import { EmbeddedMpvSessionController } from '../../../../libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-session-controller'; diff --git a/apps/web/src/app/global-collection-route.component.ts b/apps/web/src/app/global-collection-route.component.ts index f144e57d4..a560d385f 100644 --- a/apps/web/src/app/global-collection-route.component.ts +++ b/apps/web/src/app/global-collection-route.component.ts @@ -14,7 +14,7 @@ import { } from '@angular/core'; import { Router } from '@angular/router'; import { Store } from '@ngrx/store'; -import { selectAllPlaylistsMeta } from 'm3u-state'; +import { selectAllPlaylistsMeta } from '@iptvnator/m3u-state'; import { EmptyStateComponent } from '@iptvnator/playlist/shared/ui'; import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; import { diff --git a/apps/web/src/app/services/downloads.service.ts b/apps/web/src/app/services/downloads.service.ts index 23f7206d3..c4e645aff 100644 --- a/apps/web/src/app/services/downloads.service.ts +++ b/apps/web/src/app/services/downloads.service.ts @@ -2,4 +2,4 @@ export { DownloadsService, type DownloadItem, type DownloadStatus, -} from 'services'; +} from '@iptvnator/services'; diff --git a/apps/web/src/app/services/electron.service.ts b/apps/web/src/app/services/electron.service.ts index 5052a925c..0adccd9e4 100644 --- a/apps/web/src/app/services/electron.service.ts +++ b/apps/web/src/app/services/electron.service.ts @@ -2,8 +2,8 @@ import { inject, Injectable } from '@angular/core'; import { MatSnackBar } from '@angular/material/snack-bar'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; -import { PlaylistActions } from 'm3u-state'; -import { DataService } from 'services'; +import { PlaylistActions } from '@iptvnator/m3u-state'; +import { DataService } from '@iptvnator/services'; import { AUTO_UPDATE_PLAYLISTS, ERROR, @@ -13,7 +13,7 @@ import { XTREAM_REQUEST, XTREAM_RESPONSE, XtreamCodeActions, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { AppConfig } from '../../environments/environment'; import { createPortalDebugRequestContext, diff --git a/apps/web/src/app/services/external-playback.service.spec.ts b/apps/web/src/app/services/external-playback.service.spec.ts index 059a31c17..f434c79bc 100644 --- a/apps/web/src/app/services/external-playback.service.spec.ts +++ b/apps/web/src/app/services/external-playback.service.spec.ts @@ -1,4 +1,4 @@ -import { ExternalPlayerSession } from 'shared-interfaces'; +import { ExternalPlayerSession } from '@iptvnator/shared/interfaces'; import { ExternalPlaybackService } from './external-playback.service'; describe('ExternalPlaybackService', () => { diff --git a/apps/web/src/app/services/external-playback.service.ts b/apps/web/src/app/services/external-playback.service.ts index 3cedd66d2..100476c7d 100644 --- a/apps/web/src/app/services/external-playback.service.ts +++ b/apps/web/src/app/services/external-playback.service.ts @@ -1,5 +1,5 @@ import { computed, Injectable, signal } from '@angular/core'; -import { ExternalPlayerSession, PlayerContentInfo } from 'shared-interfaces'; +import { ExternalPlayerSession, PlayerContentInfo } from '@iptvnator/shared/interfaces'; @Injectable({ providedIn: 'root', diff --git a/apps/web/src/app/services/player.service.spec.ts b/apps/web/src/app/services/player.service.spec.ts index 8fa7de9db..86ab12ca8 100644 --- a/apps/web/src/app/services/player.service.spec.ts +++ b/apps/web/src/app/services/player.service.spec.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing'; import { MatDialog } from '@angular/material/dialog'; -import { DataService } from 'services'; -import { ExternalPlayerSession, VideoPlayer } from 'shared-interfaces'; +import { DataService } from '@iptvnator/services'; +import { ExternalPlayerSession, VideoPlayer } from '@iptvnator/shared/interfaces'; import { SettingsStore } from './settings-store.service'; import { PlayerService } from './player.service'; diff --git a/apps/web/src/app/services/player.service.ts b/apps/web/src/app/services/player.service.ts index 25cd161db..a37e32b66 100644 --- a/apps/web/src/app/services/player.service.ts +++ b/apps/web/src/app/services/player.service.ts @@ -1,7 +1,7 @@ import { Injectable, inject } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { ExternalPlayerInfoDialogComponent } from '@iptvnator/ui/playback/external-player-info-dialog'; -import { DataService } from 'services'; +import { DataService } from '@iptvnator/services'; import { ExternalPlayerSession, OPEN_MPV_PLAYER, @@ -9,8 +9,8 @@ import { PlayerContentInfo, ResolvedPortalPlayback, VideoPlayer, -} from 'shared-interfaces'; -import type { ExternalPlayerName } from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; +import type { ExternalPlayerName } from '@iptvnator/shared/interfaces'; import { SettingsStore } from './settings-store.service'; @Injectable({ diff --git a/apps/web/src/app/services/portal-navigation-actions.service.ts b/apps/web/src/app/services/portal-navigation-actions.service.ts index f573b6f68..863185e71 100644 --- a/apps/web/src/app/services/portal-navigation-actions.service.ts +++ b/apps/web/src/app/services/portal-navigation-actions.service.ts @@ -6,7 +6,7 @@ import { PortalNavigationActions, } from '@iptvnator/portal/shared/util'; import { XtreamStore } from '@iptvnator/portal/xtream/data-access'; -import { Playlist } from 'shared-interfaces'; +import { Playlist } from '@iptvnator/shared/interfaces'; import { SettingsComponent } from '../settings/settings.component'; @Injectable({ providedIn: 'root' }) diff --git a/apps/web/src/app/services/pwa.service.ts b/apps/web/src/app/services/pwa.service.ts index e82872587..e231cdba6 100644 --- a/apps/web/src/app/services/pwa.service.ts +++ b/apps/web/src/app/services/pwa.service.ts @@ -4,9 +4,9 @@ import { MatSnackBar } from '@angular/material/snack-bar'; import { SwUpdate } from '@angular/service-worker'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; -import { PlaylistActions } from 'm3u-state'; +import { PlaylistActions } from '@iptvnator/m3u-state'; import { catchError, firstValueFrom, throwError } from 'rxjs'; -import { DataService } from 'services'; +import { DataService } from '@iptvnator/services'; import { ERROR, Playlist, @@ -16,7 +16,7 @@ import { XtreamCodeActions, XTREAM_REQUEST, XTREAM_RESPONSE, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { AppConfig } from '../../environments/environment'; import { createPortalDebugErrorEvent, diff --git a/apps/web/src/app/services/settings-store.service.ts b/apps/web/src/app/services/settings-store.service.ts index 74279bf7a..1c0e0584c 100644 --- a/apps/web/src/app/services/settings-store.service.ts +++ b/apps/web/src/app/services/settings-store.service.ts @@ -1 +1 @@ -export { SettingsStore } from 'services'; +export { SettingsStore } from '@iptvnator/services'; diff --git a/apps/web/src/app/services/settings.service.spec.ts b/apps/web/src/app/services/settings.service.spec.ts index 336dfc3d6..cf7462593 100644 --- a/apps/web/src/app/services/settings.service.spec.ts +++ b/apps/web/src/app/services/settings.service.spec.ts @@ -2,7 +2,7 @@ import { HttpClientTestingModule } from '@angular/common/http/testing'; import { inject, TestBed } from '@angular/core/testing'; import { StorageMap } from '@ngx-pwa/local-storage'; import { of } from 'rxjs'; -import { STORE_KEY, Theme } from 'shared-interfaces'; +import { STORE_KEY, Theme } from '@iptvnator/shared/interfaces'; import { SettingsService } from './settings.service'; describe('Service: Settings', () => { diff --git a/apps/web/src/app/services/settings.service.ts b/apps/web/src/app/services/settings.service.ts index 0d17b5b7c..da980f203 100644 --- a/apps/web/src/app/services/settings.service.ts +++ b/apps/web/src/app/services/settings.service.ts @@ -2,7 +2,7 @@ import { HttpClient } from '@angular/common/http'; import { inject, Injectable } from '@angular/core'; import { StorageMap } from '@ngx-pwa/local-storage'; import { catchError, map, Observable } from 'rxjs'; -import { STORE_KEY, Theme } from 'shared-interfaces'; +import { STORE_KEY, Theme } from '@iptvnator/shared/interfaces'; const PRERELEASE_KEYWORDS = [ 'beta', diff --git a/apps/web/src/app/settings/settings-general-section.component.ts b/apps/web/src/app/settings/settings-general-section.component.ts index be634dc9d..4125376dc 100644 --- a/apps/web/src/app/settings/settings-general-section.component.ts +++ b/apps/web/src/app/settings/settings-general-section.component.ts @@ -6,7 +6,7 @@ import { MatFormFieldModule } from '@angular/material/form-field'; import { MatIconModule } from '@angular/material/icon'; import { MatSelectModule } from '@angular/material/select'; import { TranslateModule } from '@ngx-translate/core'; -import { CoverSize, Language, Theme } from 'shared-interfaces'; +import { CoverSize, Language, Theme } from '@iptvnator/shared/interfaces'; import { CoverSizeOption, StartupBehaviorOption, diff --git a/apps/web/src/app/settings/settings-options.ts b/apps/web/src/app/settings/settings-options.ts index 0e05271c5..8c509f186 100644 --- a/apps/web/src/app/settings/settings-options.ts +++ b/apps/web/src/app/settings/settings-options.ts @@ -3,7 +3,7 @@ import { StartupBehavior, Theme, VideoPlayer, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { CoverSizeOption, SettingsPlayerOption, @@ -108,7 +108,7 @@ export function buildSettingsSectionNavItems( visible: isDesktop, }, { - id: 'remote-control', + id: '@iptvnator/ui/remote-control', label: 'SETTINGS.NAV_REMOTE', icon: 'smartphone', visible: isDesktop, diff --git a/apps/web/src/app/settings/settings-playback-section.component.spec.ts b/apps/web/src/app/settings/settings-playback-section.component.spec.ts index e0c2ef768..0658fa3ec 100644 --- a/apps/web/src/app/settings/settings-playback-section.component.spec.ts +++ b/apps/web/src/app/settings/settings-playback-section.component.spec.ts @@ -2,7 +2,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { TranslateModule, TranslateService } from '@ngx-translate/core'; -import { StreamFormat, VideoPlayer } from 'shared-interfaces'; +import { StreamFormat, VideoPlayer } from '@iptvnator/shared/interfaces'; import { SettingsPlaybackSectionComponent } from './settings-playback-section.component'; const MPV_PATH_DESCRIPTION = diff --git a/apps/web/src/app/settings/settings-playback-section.component.ts b/apps/web/src/app/settings/settings-playback-section.component.ts index 6f869bd41..f5def7a1e 100644 --- a/apps/web/src/app/settings/settings-playback-section.component.ts +++ b/apps/web/src/app/settings/settings-playback-section.component.ts @@ -8,7 +8,7 @@ import { MatIconModule } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; import { MatSelectModule } from '@angular/material/select'; import { TranslateModule } from '@ngx-translate/core'; -import { StreamFormat, VideoPlayer } from 'shared-interfaces'; +import { StreamFormat, VideoPlayer } from '@iptvnator/shared/interfaces'; import { SettingsPlayerOption } from './settings.models'; @Component({ diff --git a/apps/web/src/app/settings/settings.component.spec.ts b/apps/web/src/app/settings/settings.component.spec.ts index 488c5f96d..b4f20bdf0 100644 --- a/apps/web/src/app/settings/settings.component.spec.ts +++ b/apps/web/src/app/settings/settings.component.spec.ts @@ -22,14 +22,14 @@ import { EpgService } from '@iptvnator/epg/data-access'; import { Store } from '@ngrx/store'; import { MockStore, provideMockStore } from '@ngrx/store/testing'; import { TranslateModule, TranslateService } from '@ngx-translate/core'; -import { DialogService } from 'components'; +import { DialogService } from '@iptvnator/ui/components'; import { MockModule, MockProvider } from 'ng-mocks'; import { DatabaseService, DataService, PlaylistBackupService, PlaylistsService, -} from 'services'; +} from '@iptvnator/services'; import { EmbeddedMpvSupport, Language, @@ -38,7 +38,7 @@ import { StreamFormat, Theme, VideoPlayer, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { SettingsComponent } from './settings.component'; import { signal } from '@angular/core'; @@ -47,7 +47,7 @@ import { PlaylistActions, selectAllPlaylistsMeta, selectIsEpgAvailable, -} from 'm3u-state'; +} from '@iptvnator/m3u-state'; import { NgxIndexedDBService } from 'ngx-indexed-db'; import { from, of } from 'rxjs'; import { ElectronServiceStub } from '../services/electron.service.stub'; diff --git a/apps/web/src/app/settings/settings.component.ts b/apps/web/src/app/settings/settings.component.ts index 61c48f3b1..e2bcb8848 100644 --- a/apps/web/src/app/settings/settings.component.ts +++ b/apps/web/src/app/settings/settings.component.ts @@ -28,12 +28,12 @@ import { EpgService } from '@iptvnator/epg/data-access'; import { SettingsContextService } from '@iptvnator/workspace/shell/util'; import { Store } from '@ngrx/store'; import { TranslateModule, TranslateService } from '@ngx-translate/core'; -import { DialogService } from 'components'; +import { DialogService } from '@iptvnator/ui/components'; import { PlaylistActions, selectAllPlaylistsMeta, selectIsEpgAvailable, -} from 'm3u-state'; +} from '@iptvnator/m3u-state'; import { firstValueFrom, take } from 'rxjs'; import { DatabaseService, @@ -42,7 +42,7 @@ import { PlaylistBackupImportSummary, PlaylistBackupService, PlaylistsService, -} from 'services'; +} from '@iptvnator/services'; import { EmbeddedMpvSupport, CoverSize, @@ -52,7 +52,7 @@ import { StreamFormat, Theme, VideoPlayer, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { SettingsStore } from '../services/settings-store.service'; import { SettingsService } from './../services/settings.service'; import { SettingsAboutSectionComponent } from './settings-about-section.component'; diff --git a/apps/web/src/app/settings/settings.models.ts b/apps/web/src/app/settings/settings.models.ts index dee97efbb..a618a96ac 100644 --- a/apps/web/src/app/settings/settings.models.ts +++ b/apps/web/src/app/settings/settings.models.ts @@ -3,7 +3,7 @@ import { StartupBehavior, Theme, VideoPlayer, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; export interface SettingsSection { id: string; diff --git a/apps/web/src/typings.d.ts b/apps/web/src/typings.d.ts index 69a430107..34d49ea50 100644 --- a/apps/web/src/typings.d.ts +++ b/apps/web/src/typings.d.ts @@ -23,7 +23,7 @@ import { XtreamBackupHiddenCategory, XtreamBackupRecentlyViewedItem, XtreamCategory, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { DbOperationEvent, GlobalFavoriteItem, @@ -32,7 +32,7 @@ import { GlobalSearchResult, XCategoryFromDb, XtreamContent, -} from 'services'; +} from '@iptvnator/services'; type JsonObject = Record; type JsonArray = unknown[]; diff --git a/apps/website/project.json b/apps/website/project.json index fd8737b43..d4ebcea22 100644 --- a/apps/website/project.json +++ b/apps/website/project.json @@ -1,33 +1,33 @@ { - "name": "website", - "$schema": "../../node_modules/nx/schemas/project-schema.json", - "projectType": "application", - "sourceRoot": "apps/website/src", - "tags": ["type:website"], - "targets": { - "build": { - "executor": "nx:run-commands", - "outputs": ["{workspaceRoot}/dist/apps/website"], - "inputs": ["production", "^production"], - "options": { - "command": "pnpm exec astro build", - "cwd": "apps/website" - } - }, - "serve": { - "executor": "nx:run-commands", - "options": { - "command": "pnpm exec astro dev --port 4321", - "cwd": "apps/website" - } - }, - "preview": { - "executor": "nx:run-commands", - "dependsOn": ["build"], - "options": { - "command": "pnpm exec astro preview --port 4322", - "cwd": "apps/website" - } + "name": "website", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "projectType": "application", + "sourceRoot": "apps/website/src", + "tags": ["scope:website", "domain:marketing", "type:website"], + "targets": { + "build": { + "executor": "nx:run-commands", + "outputs": ["{workspaceRoot}/dist/apps/website"], + "inputs": ["production", "^production"], + "options": { + "command": "pnpm exec astro build", + "cwd": "apps/website" + } + }, + "serve": { + "executor": "nx:run-commands", + "options": { + "command": "pnpm exec astro dev --port 4321", + "cwd": "apps/website" + } + }, + "preview": { + "executor": "nx:run-commands", + "dependsOn": ["build"], + "options": { + "command": "pnpm exec astro preview --port 4322", + "cwd": "apps/website" + } + } } - } } diff --git a/apps/xtream-mock-server/project.json b/apps/xtream-mock-server/project.json index 9f1c5d30e..7a8056516 100644 --- a/apps/xtream-mock-server/project.json +++ b/apps/xtream-mock-server/project.json @@ -3,7 +3,7 @@ "$schema": "../../node_modules/nx/schemas/project-schema.json", "projectType": "application", "sourceRoot": "apps/xtream-mock-server/src", - "tags": ["scope:dev-tools"], + "tags": ["scope:dev-tools", "domain:xtream", "type:dev-app"], "targets": { "serve": { "continuous": true, diff --git a/docs/architecture/m3u-playlist-module.md b/docs/architecture/m3u-playlist-module.md index 5b4c848f7..b22b25ab4 100644 --- a/docs/architecture/m3u-playlist-module.md +++ b/docs/architecture/m3u-playlist-module.md @@ -354,7 +354,7 @@ class EpgService { - The shared EPG UI only shows the archive replay badge when the host confirms that the selected M3U channel has a playable replay scheme. Archive days alone are not enough. -- M3U catch-up support is resolved in `m3u-utils` from channel metadata and +- M3U catch-up support is resolved in `@iptvnator/shared/m3u-utils` from channel metadata and the archived program start time. - Supported replay precedence: 1. `catchup.source` if it is an HTTP(S) URL. IPTVNator rewrites or appends diff --git a/docs/architecture/nx-workspace-boundaries.md b/docs/architecture/nx-workspace-boundaries.md new file mode 100644 index 000000000..402f43056 --- /dev/null +++ b/docs/architecture/nx-workspace-boundaries.md @@ -0,0 +1,78 @@ +# Nx Workspace Boundaries + +This document records the current monorepo boundary conventions for IPTVnator. + +## Fresh Worktree Bootstrap + +Install dependencies before using Nx discovery or targets: + +```bash +pnpm install --frozen-lockfile +pnpm nx show projects +``` + +`pnpm nx show projects` depends on the workspace-local Nx packages under +`node_modules`. In a fresh worktree without dependencies it will fail before it +can inspect project metadata. + +## Project Tags + +Every Nx project should carry three tag families in `project.json`: + +1. `scope:*` - ownership area, for example `scope:portal`, `scope:workspace`, + `scope:shared`, `scope:electron`, `scope:e2e`, or `scope:dev-tools`. +2. `domain:*` - product/runtime domain, for example `domain:xtream`, + `domain:stalker`, `domain:m3u`, `domain:playback`, `domain:web`, or + `domain:shared-runtime`. +3. `type:*` - architectural role, for example `type:app`, `type:e2e`, + `type:dev-app`, `type:feature`, `type:ui`, `type:data-access`, + `type:util`, `type:tool`, or `type:website`. + +`eslint.config.mjs` uses these tags with `@nx/enforce-module-boundaries`. +When adding a project, choose tags before adding imports so dependency direction +is clear from the start. + +## Import Aliases + +Use scoped `@iptvnator/*` aliases from `tsconfig.base.json`. + +Examples: + +```ts +import { SettingsStore } from '@iptvnator/services'; +import { Playlist } from '@iptvnator/shared/interfaces'; +import { DialogService } from '@iptvnator/ui/components'; +``` + +Do not introduce legacy bare aliases such as: + +- `components` +- `m3u-state` +- `m3u-utils` +- `services` +- `shared-interfaces` +- `shared-portals` +- `remote-control` +- `database` +- `database-schema` +- `database-path-utils` +- `workspace-dashboard-feature` +- `workspace-dashboard-data-access` + +The lint config blocks these aliases so new code uses the same visible +namespace and ownership convention. + +Buildable libraries that have a local `package.json` should use the same public +name as their scoped alias. Nx uses `package.json.name` when it rewrites +buildable dependency paths to `dist/` during `@nx/js:tsc` builds. + +## Dependency Direction + +- `type:feature` may use `type:feature`, `type:ui`, `type:data-access`, and + `type:util`. +- `type:ui` may use `type:ui`, `type:data-access`, and `type:util`. +- `type:data-access` may use `type:data-access` and `type:util`. +- `type:util` may use only `type:util`. + +If a change needs a dependency in the opposite direction, move the shared +contract into a lower-level library instead of weakening boundaries. diff --git a/docs/architecture/sqlite-db-worker.md b/docs/architecture/sqlite-db-worker.md index a6a8e99c3..b9bb7f85c 100644 --- a/docs/architecture/sqlite-db-worker.md +++ b/docs/architecture/sqlite-db-worker.md @@ -349,8 +349,8 @@ renderer can actually paint the loading state instead of freezing. The worker build also aliases: -1. `database-schema` -2. `database-path-utils` +1. `@iptvnator/shared/database/schema` +2. `@iptvnator/shared/database/path-utils` These aliases avoid importing the shared database barrel from inside the worker, which would otherwise pull in runtime code that assumes the main Electron diff --git a/eslint.config.mjs b/eslint.config.mjs index 217e5c3f5..33d621ba0 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,5 +1,20 @@ import nx from '@nx/eslint-plugin'; +const legacyBareAliases = [ + 'components', + 'm3u-state', + 'm3u-utils', + 'services', + 'shared-interfaces', + 'shared-portals', + 'remote-control', + 'database', + 'database-schema', + 'database-path-utils', + 'workspace-dashboard-feature', + 'workspace-dashboard-data-access', +]; + export default [ ...nx.configs['flat/base'], ...nx.configs['flat/typescript'], @@ -25,6 +40,28 @@ export default [ 'type:util', ], }, + { + sourceTag: 'type:e2e', + onlyDependOnLibsWithTags: [ + 'type:feature', + 'type:ui', + 'type:data-access', + 'type:util', + ], + }, + { + sourceTag: 'type:dev-app', + onlyDependOnLibsWithTags: [ + 'type:feature', + 'type:ui', + 'type:data-access', + 'type:util', + ], + }, + { + sourceTag: 'type:website', + onlyDependOnLibsWithTags: ['type:ui', 'type:util'], + }, { sourceTag: 'type:feature', onlyDependOnLibsWithTags: [ @@ -175,6 +212,21 @@ export default [ ], }, ], + 'no-restricted-imports': [ + 'error', + { + paths: legacyBareAliases.map((name) => ({ + name, + message: + 'Use the scoped @iptvnator/* path alias instead of the legacy bare alias.', + })), + patterns: legacyBareAliases.map((name) => ({ + group: [`${name}/*`], + message: + 'Use the scoped @iptvnator/* path alias instead of the legacy bare alias.', + })), + }, + ], }, }, { diff --git a/libs/epg/data-access/src/lib/epg-program-normalization.util.spec.ts b/libs/epg/data-access/src/lib/epg-program-normalization.util.spec.ts index 12b05bf57..f7538cb07 100644 --- a/libs/epg/data-access/src/lib/epg-program-normalization.util.spec.ts +++ b/libs/epg/data-access/src/lib/epg-program-normalization.util.spec.ts @@ -1,4 +1,4 @@ -import { EpgProgram } from 'shared-interfaces'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; import { normalizeEpgPrograms } from './epg-program-normalization.util'; function buildProgram(overrides: Partial = {}): EpgProgram { diff --git a/libs/epg/data-access/src/lib/epg-program-normalization.util.ts b/libs/epg/data-access/src/lib/epg-program-normalization.util.ts index b46958160..3a7d164c9 100644 --- a/libs/epg/data-access/src/lib/epg-program-normalization.util.ts +++ b/libs/epg/data-access/src/lib/epg-program-normalization.util.ts @@ -1,4 +1,4 @@ -import { EpgProgram } from 'shared-interfaces'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; function toIsoDate(value: string | undefined): string | null { if (!value) { diff --git a/libs/epg/data-access/src/lib/epg.service.ts b/libs/epg/data-access/src/lib/epg.service.ts index b60f6a1d1..1b4648881 100644 --- a/libs/epg/data-access/src/lib/epg.service.ts +++ b/libs/epg/data-access/src/lib/epg.service.ts @@ -3,7 +3,7 @@ import { MatSnackBar } from '@angular/material/snack-bar'; import { TranslateService } from '@ngx-translate/core'; import { BehaviorSubject, forkJoin, from, Observable, of } from 'rxjs'; import { catchError, map, tap, timeout } from 'rxjs/operators'; -import { EpgChannelMetadata, EpgProgram } from 'shared-interfaces'; +import { EpgChannelMetadata, EpgProgram } from '@iptvnator/shared/interfaces'; import { normalizeEpgPrograms } from './epg-program-normalization.util'; interface CachedProgram { diff --git a/libs/m3u-state/jest.config.ts b/libs/m3u-state/jest.config.ts index 549ab8336..8f4e3002e 100644 --- a/libs/m3u-state/jest.config.ts +++ b/libs/m3u-state/jest.config.ts @@ -1,5 +1,5 @@ export default { - displayName: 'm3u-state', + displayName: '@iptvnator/m3u-state', preset: '../../jest.preset.js', setupFilesAfterEnv: ['/src/test-setup.ts'], coverageDirectory: '../../coverage/libs/m3u-state', diff --git a/libs/m3u-state/src/lib/actions.ts b/libs/m3u-state/src/lib/actions.ts index 6065795c8..6a8ff0cfe 100644 --- a/libs/m3u-state/src/lib/actions.ts +++ b/libs/m3u-state/src/lib/actions.ts @@ -1,5 +1,5 @@ import { createActionGroup, emptyProps, props } from '@ngrx/store'; -import { Channel, EpgProgram, Playlist, PlaylistMeta } from 'shared-interfaces'; +import { Channel, EpgProgram, Playlist, PlaylistMeta } from '@iptvnator/shared/interfaces'; export const PlaylistActions = createActionGroup({ source: 'Playlists', diff --git a/libs/m3u-state/src/lib/channel-epg-lookup.util.spec.ts b/libs/m3u-state/src/lib/channel-epg-lookup.util.spec.ts index 235f777a5..5ccdd4c5f 100644 --- a/libs/m3u-state/src/lib/channel-epg-lookup.util.spec.ts +++ b/libs/m3u-state/src/lib/channel-epg-lookup.util.spec.ts @@ -1,4 +1,4 @@ -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { resolveChannelEpgLookupKey } from './channel-epg-lookup.util'; function buildChannel(overrides: Partial = {}): Channel { diff --git a/libs/m3u-state/src/lib/channel-epg-lookup.util.ts b/libs/m3u-state/src/lib/channel-epg-lookup.util.ts index 52e1ee69d..67aae6211 100644 --- a/libs/m3u-state/src/lib/channel-epg-lookup.util.ts +++ b/libs/m3u-state/src/lib/channel-epg-lookup.util.ts @@ -1,4 +1,4 @@ -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; export function resolveChannelEpgLookupKey( channel: Channel | null | undefined diff --git a/libs/m3u-state/src/lib/effects.spec.ts b/libs/m3u-state/src/lib/effects.spec.ts index 60abd11b6..08f5d560e 100644 --- a/libs/m3u-state/src/lib/effects.spec.ts +++ b/libs/m3u-state/src/lib/effects.spec.ts @@ -1,4 +1,4 @@ -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { buildExternalPlayerPayload } from './external-player-payload.util'; describe('buildExternalPlayerPayload', () => { diff --git a/libs/m3u-state/src/lib/effects.ts b/libs/m3u-state/src/lib/effects.ts index 5fbbdee04..d911d6358 100644 --- a/libs/m3u-state/src/lib/effects.ts +++ b/libs/m3u-state/src/lib/effects.ts @@ -2,7 +2,7 @@ import { inject, Injectable } from '@angular/core'; import { MatSnackBar } from '@angular/material/snack-bar'; import { Router } from '@angular/router'; import { EpgService } from '@iptvnator/epg/data-access'; -import { resolveM3uCatchupUrl } from 'm3u-utils'; +import { resolveM3uCatchupUrl } from '@iptvnator/shared/m3u-utils'; import { Actions, createEffect, ofType } from '@ngrx/effects'; import { Store } from '@ngrx/store'; import { StorageMap } from '@ngx-pwa/local-storage'; @@ -18,7 +18,7 @@ import { tap, withLatestFrom, } from 'rxjs'; -import { DataService, PlaylistsService } from 'services'; +import { DataService, PlaylistsService } from '@iptvnator/services'; import { OPEN_MPV_PLAYER, OPEN_VLC_PLAYER, @@ -26,7 +26,7 @@ import { Playlist, STORE_KEY, VideoPlayer, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { ChannelActions, EpgActions, diff --git a/libs/m3u-state/src/lib/external-player-payload.util.ts b/libs/m3u-state/src/lib/external-player-payload.util.ts index 902a15235..af82f2ca6 100644 --- a/libs/m3u-state/src/lib/external-player-payload.util.ts +++ b/libs/m3u-state/src/lib/external-player-payload.util.ts @@ -1,4 +1,4 @@ -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; export function buildExternalPlayerPayload( activeChannel: Channel | undefined | null, diff --git a/libs/m3u-state/src/lib/playlists.state.ts b/libs/m3u-state/src/lib/playlists.state.ts index f0b014558..2b4e48568 100644 --- a/libs/m3u-state/src/lib/playlists.state.ts +++ b/libs/m3u-state/src/lib/playlists.state.ts @@ -1,5 +1,5 @@ import { createEntityAdapter, EntityAdapter, EntityState } from '@ngrx/entity'; -import { PlaylistMeta } from 'shared-interfaces'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; export const playlistsAdapter: EntityAdapter = createEntityAdapter({ diff --git a/libs/m3u-state/src/lib/reducers/channel.reducers.spec.ts b/libs/m3u-state/src/lib/reducers/channel.reducers.spec.ts index 1b22c939d..32ae4778e 100644 --- a/libs/m3u-state/src/lib/reducers/channel.reducers.spec.ts +++ b/libs/m3u-state/src/lib/reducers/channel.reducers.spec.ts @@ -1,5 +1,5 @@ import { createReducer } from '@ngrx/store'; -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { ChannelActions } from '../actions'; import { initialState } from '../state'; import { channelReducers } from './channel.reducers'; diff --git a/libs/m3u-state/src/lib/reducers/channel.reducers.ts b/libs/m3u-state/src/lib/reducers/channel.reducers.ts index f640081aa..52554d5fd 100644 --- a/libs/m3u-state/src/lib/reducers/channel.reducers.ts +++ b/libs/m3u-state/src/lib/reducers/channel.reducers.ts @@ -1,5 +1,5 @@ import { on } from '@ngrx/store'; -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { ChannelActions } from '../actions'; import { PlaylistState } from '../state'; diff --git a/libs/m3u-state/src/lib/reducers/epg.reducers.ts b/libs/m3u-state/src/lib/reducers/epg.reducers.ts index aafce29f4..946a8694a 100644 --- a/libs/m3u-state/src/lib/reducers/epg.reducers.ts +++ b/libs/m3u-state/src/lib/reducers/epg.reducers.ts @@ -1,5 +1,5 @@ import { on } from '@ngrx/store'; -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { EpgActions } from '../actions'; import { PlaylistState } from '../state'; diff --git a/libs/m3u-state/src/lib/reducers/playlist.reducers.spec.ts b/libs/m3u-state/src/lib/reducers/playlist.reducers.spec.ts index 1c3446d2b..9b1341292 100644 --- a/libs/m3u-state/src/lib/reducers/playlist.reducers.spec.ts +++ b/libs/m3u-state/src/lib/reducers/playlist.reducers.spec.ts @@ -3,7 +3,7 @@ import { PlaylistActions } from '../actions'; import { playlistsAdapter } from '../playlists.state'; import { initialState } from '../state'; import { playlistReducers } from './playlist.reducers'; -import { Channel, Playlist, PlaylistMeta } from 'shared-interfaces'; +import { Channel, Playlist, PlaylistMeta } from '@iptvnator/shared/interfaces'; const reducer = createReducer(initialState, ...playlistReducers); diff --git a/libs/m3u-state/src/lib/reducers/playlist.reducers.ts b/libs/m3u-state/src/lib/reducers/playlist.reducers.ts index 8962d606e..9c694cc1a 100644 --- a/libs/m3u-state/src/lib/reducers/playlist.reducers.ts +++ b/libs/m3u-state/src/lib/reducers/playlist.reducers.ts @@ -1,5 +1,5 @@ import { on } from '@ngrx/store'; -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { PlaylistActions } from '../actions'; import { playlistsAdapter } from '../playlists.state'; import { PlaylistState } from '../state'; diff --git a/libs/m3u-state/src/lib/selectors.spec.ts b/libs/m3u-state/src/lib/selectors.spec.ts index 861afb5ae..6aa66a5f9 100644 --- a/libs/m3u-state/src/lib/selectors.spec.ts +++ b/libs/m3u-state/src/lib/selectors.spec.ts @@ -1,4 +1,4 @@ -import { PlaylistMeta } from 'shared-interfaces'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { PlaylistState } from './state'; import { selectActivePlaylist, selectChannelsLoading } from './selectors'; diff --git a/libs/m3u-state/src/lib/selectors.ts b/libs/m3u-state/src/lib/selectors.ts index fe9a6fdd1..6edea8183 100644 --- a/libs/m3u-state/src/lib/selectors.ts +++ b/libs/m3u-state/src/lib/selectors.ts @@ -1,5 +1,5 @@ import { createFeatureSelector, createSelector } from '@ngrx/store'; -import { Playlist } from 'shared-interfaces'; +import { Playlist } from '@iptvnator/shared/interfaces'; import * as fromPlaylistMetaState from './playlists.state'; import * as fromPlaylistState from './reducers'; import { PlaylistState } from './state'; diff --git a/libs/m3u-state/src/lib/state.ts b/libs/m3u-state/src/lib/state.ts index f0a2abc7a..7daf9217d 100644 --- a/libs/m3u-state/src/lib/state.ts +++ b/libs/m3u-state/src/lib/state.ts @@ -1,7 +1,7 @@ -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { initialPlaylistMetaState, PlaylistMetaState } from './playlists.state'; -import { EpgProgram } from 'shared-interfaces'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; export interface PlaylistState { active: Channel | undefined; diff --git a/libs/playlist/import/feature/src/lib/add-playlist-dialog/add-playlist-dialog.component.spec.ts b/libs/playlist/import/feature/src/lib/add-playlist-dialog/add-playlist-dialog.component.spec.ts index 2b356e16b..35d82a259 100644 --- a/libs/playlist/import/feature/src/lib/add-playlist-dialog/add-playlist-dialog.component.spec.ts +++ b/libs/playlist/import/feature/src/lib/add-playlist-dialog/add-playlist-dialog.component.spec.ts @@ -3,9 +3,9 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { MatSnackBar } from '@angular/material/snack-bar'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; -import { PlaylistActions } from 'm3u-state'; -import { DataService } from 'services'; -import { PLAYLIST_PARSE_BY_URL } from 'shared-interfaces'; +import { PlaylistActions } from '@iptvnator/m3u-state'; +import { DataService } from '@iptvnator/services'; +import { PLAYLIST_PARSE_BY_URL } from '@iptvnator/shared/interfaces'; import { PlaylistType } from '@iptvnator/playlist/shared/ui'; import { AddPlaylistDialogComponent } from './add-playlist-dialog.component'; diff --git a/libs/playlist/import/feature/src/lib/add-playlist-dialog/add-playlist-dialog.component.ts b/libs/playlist/import/feature/src/lib/add-playlist-dialog/add-playlist-dialog.component.ts index 2dcaf188e..1a6202b8e 100644 --- a/libs/playlist/import/feature/src/lib/add-playlist-dialog/add-playlist-dialog.component.ts +++ b/libs/playlist/import/feature/src/lib/add-playlist-dialog/add-playlist-dialog.component.ts @@ -16,9 +16,9 @@ import { MatSnackBar } from '@angular/material/snack-bar'; import { Store } from '@ngrx/store'; import { TranslateModule, TranslateService } from '@ngx-translate/core'; import { PlaylistType } from '@iptvnator/playlist/shared/ui'; -import { PlaylistActions } from 'm3u-state'; -import { DataService } from 'services'; -import { PLAYLIST_PARSE_BY_URL } from 'shared-interfaces'; +import { PlaylistActions } from '@iptvnator/m3u-state'; +import { DataService } from '@iptvnator/services'; +import { PLAYLIST_PARSE_BY_URL } from '@iptvnator/shared/interfaces'; import { FileUploadComponent } from '../file-upload/file-upload.component'; import { StalkerPortalImportComponent } from '../stalker-portal-import/stalker-portal-import.component'; import { TextImportComponent } from '../text-import/text-import.component'; diff --git a/libs/playlist/import/feature/src/lib/stalker-portal-import/stalker-portal-import.component.ts b/libs/playlist/import/feature/src/lib/stalker-portal-import/stalker-portal-import.component.ts index 6342e2979..397b5a368 100644 --- a/libs/playlist/import/feature/src/lib/stalker-portal-import/stalker-portal-import.component.ts +++ b/libs/playlist/import/feature/src/lib/stalker-portal-import/stalker-portal-import.component.ts @@ -11,12 +11,12 @@ import { MatInputModule } from '@angular/material/input'; import { MatSnackBar } from '@angular/material/snack-bar'; import { Store } from '@ngrx/store'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; -import { PlaylistActions } from 'm3u-state'; +import { PlaylistActions } from '@iptvnator/m3u-state'; import { STALKER_SERIAL_NUMBER, StalkerSessionService, } from '@iptvnator/portal/stalker/data-access'; -import { Playlist } from 'shared-interfaces'; +import { Playlist } from '@iptvnator/shared/interfaces'; import { v4 as uuid } from 'uuid'; @Component({ diff --git a/libs/playlist/import/feature/src/lib/xtream-code-import/xtream-code-import.component.ts b/libs/playlist/import/feature/src/lib/xtream-code-import/xtream-code-import.component.ts index ee897498e..c0a850697 100644 --- a/libs/playlist/import/feature/src/lib/xtream-code-import/xtream-code-import.component.ts +++ b/libs/playlist/import/feature/src/lib/xtream-code-import/xtream-code-import.component.ts @@ -11,9 +11,9 @@ import { MatIcon } from '@angular/material/icon'; import { MatInputModule } from '@angular/material/input'; import { Store } from '@ngrx/store'; import { TranslatePipe } from '@ngx-translate/core'; -import { PlaylistActions } from 'm3u-state'; -import { PortalStatus, PortalStatusService } from 'services'; -import { Playlist } from 'shared-interfaces'; +import { PlaylistActions } from '@iptvnator/m3u-state'; +import { PortalStatus, PortalStatusService } from '@iptvnator/services'; +import { Playlist } from '@iptvnator/shared/interfaces'; import { v4 as uuid } from 'uuid'; @Component({ diff --git a/libs/playlist/m3u/feature-player/src/lib/m3u-workspace-route-session.service.spec.ts b/libs/playlist/m3u/feature-player/src/lib/m3u-workspace-route-session.service.spec.ts index 9a133cbec..9618b5a7a 100644 --- a/libs/playlist/m3u/feature-player/src/lib/m3u-workspace-route-session.service.spec.ts +++ b/libs/playlist/m3u/feature-player/src/lib/m3u-workspace-route-session.service.spec.ts @@ -1,10 +1,10 @@ import { TestBed } from '@angular/core/testing'; import { NavigationEnd, Router } from '@angular/router'; import { Subject } from 'rxjs'; -import { ChannelActions, FavoritesActions } from 'm3u-state'; +import { ChannelActions, FavoritesActions } from '@iptvnator/m3u-state'; import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; -import { PlaylistsService } from 'services'; -import { Channel, Playlist } from 'shared-interfaces'; +import { PlaylistsService } from '@iptvnator/services'; +import { Channel, Playlist } from '@iptvnator/shared/interfaces'; import { Store } from '@ngrx/store'; import { M3uWorkspaceRouteSession } from './m3u-workspace-route-session.service'; diff --git a/libs/playlist/m3u/feature-player/src/lib/m3u-workspace-route-session.service.ts b/libs/playlist/m3u/feature-player/src/lib/m3u-workspace-route-session.service.ts index 9965b0fbb..7ae06bb14 100644 --- a/libs/playlist/m3u/feature-player/src/lib/m3u-workspace-route-session.service.ts +++ b/libs/playlist/m3u/feature-player/src/lib/m3u-workspace-route-session.service.ts @@ -8,10 +8,10 @@ import { import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { NavigationEnd, Router } from '@angular/router'; import { Store } from '@ngrx/store'; -import { ChannelActions, FavoritesActions } from 'm3u-state'; +import { ChannelActions, FavoritesActions } from '@iptvnator/m3u-state'; import { filter, firstValueFrom } from 'rxjs'; import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; -import { PlaylistsService } from 'services'; +import { PlaylistsService } from '@iptvnator/services'; type M3uLoadedSection = 'all' | 'groups'; diff --git a/libs/playlist/m3u/feature-player/src/lib/video-player/m3u-channel-playback-actions.spec.ts b/libs/playlist/m3u/feature-player/src/lib/video-player/m3u-channel-playback-actions.spec.ts index f58959dce..488a29df2 100644 --- a/libs/playlist/m3u/feature-player/src/lib/video-player/m3u-channel-playback-actions.spec.ts +++ b/libs/playlist/m3u/feature-player/src/lib/video-player/m3u-channel-playback-actions.spec.ts @@ -1,5 +1,5 @@ -import { ChannelActions } from 'm3u-state'; -import { Channel } from 'shared-interfaces'; +import { ChannelActions } from '@iptvnator/m3u-state'; +import { Channel } from '@iptvnator/shared/interfaces'; import { createM3uChannelPlaybackRequest } from './m3u-channel-playback-actions'; describe('createM3uChannelPlaybackRequest', () => { diff --git a/libs/playlist/m3u/feature-player/src/lib/video-player/m3u-channel-playback-actions.ts b/libs/playlist/m3u/feature-player/src/lib/video-player/m3u-channel-playback-actions.ts index c5850a057..ead033f1b 100644 --- a/libs/playlist/m3u/feature-player/src/lib/video-player/m3u-channel-playback-actions.ts +++ b/libs/playlist/m3u/feature-player/src/lib/video-player/m3u-channel-playback-actions.ts @@ -1,5 +1,5 @@ -import { ChannelActions } from 'm3u-state'; -import { Channel } from 'shared-interfaces'; +import { ChannelActions } from '@iptvnator/m3u-state'; +import { Channel } from '@iptvnator/shared/interfaces'; export function createM3uChannelPlaybackRequest(channel: Channel) { return ChannelActions.setActiveChannel({ diff --git a/libs/playlist/m3u/feature-player/src/lib/video-player/video-player.component.spec.ts b/libs/playlist/m3u/feature-player/src/lib/video-player/video-player.component.spec.ts index d58e88b55..9fe7c229c 100644 --- a/libs/playlist/m3u/feature-player/src/lib/video-player/video-player.component.spec.ts +++ b/libs/playlist/m3u/feature-player/src/lib/video-player/video-player.component.spec.ts @@ -21,16 +21,16 @@ import { selectChannels, selectChannelsLoading, selectCurrentEpgProgram, -} from 'm3u-state'; +} from '@iptvnator/m3u-state'; import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; import { PORTAL_EXTERNAL_PLAYBACK, LIVE_EPG_PANEL_STATE_STORAGE_KEY, WorkspaceHeaderContextService, } from '@iptvnator/portal/shared/util'; -import { DataService, PlaylistsService, SettingsStore } from 'services'; -import { Channel, EpgProgram, Settings, VideoPlayer } from 'shared-interfaces'; -import { LiveEpgPanelSummary } from 'shared-portals'; +import { DataService, PlaylistsService, SettingsStore } from '@iptvnator/services'; +import { Channel, EpgProgram, Settings, VideoPlayer } from '@iptvnator/shared/interfaces'; +import { LiveEpgPanelSummary } from '@iptvnator/ui/shared-portals'; import { Overlay } from '@angular/cdk/overlay'; import type { PlaybackFallbackRequest } from '@iptvnator/ui/playback'; import type { VideoPlayerComponent as VideoPlayerComponentInstance } from './video-player.component'; diff --git a/libs/playlist/m3u/feature-player/src/lib/video-player/video-player.component.ts b/libs/playlist/m3u/feature-player/src/lib/video-player/video-player.component.ts index e504ded5c..90e8e3512 100644 --- a/libs/playlist/m3u/feature-player/src/lib/video-player/video-player.component.ts +++ b/libs/playlist/m3u/feature-player/src/lib/video-player/video-player.component.ts @@ -20,8 +20,8 @@ import { ActivatedRoute, Router } from '@angular/router'; import { Store } from '@ngrx/store'; import { StorageMap } from '@ngx-pwa/local-storage'; import { TranslatePipe } from '@ngx-translate/core'; -import { ResizableDirective } from 'components'; -import { isM3uCatchupPlaybackSupported } from 'm3u-utils'; +import { ResizableDirective } from '@iptvnator/ui/components'; +import { isM3uCatchupPlaybackSupported } from '@iptvnator/shared/m3u-utils'; import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; import { COMPONENT_OVERLAY_REF, @@ -40,7 +40,7 @@ import { selectChannels, selectChannelsLoading, selectCurrentEpgProgram, -} from 'm3u-state'; +} from '@iptvnator/m3u-state'; import { firstValueFrom, Observable, @@ -72,9 +72,9 @@ import { SidebarComponent, WebPlayerViewComponent, } from '@iptvnator/ui/playback'; -import { LiveEpgPanelComponent, LiveEpgPanelSummary } from 'shared-portals'; -import { ChannelListLoadingStateComponent } from 'components'; -import { DataService, PlaylistsService, SettingsStore } from 'services'; +import { LiveEpgPanelComponent, LiveEpgPanelSummary } from '@iptvnator/ui/shared-portals'; +import { ChannelListLoadingStateComponent } from '@iptvnator/ui/components'; +import { DataService, PlaylistsService, SettingsStore } from '@iptvnator/services'; import { Channel, EpgProgram, @@ -88,7 +88,7 @@ import { STORE_KEY, Settings, VideoPlayer, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { createM3uChannelPlaybackRequest } from './m3u-channel-playback-actions'; const M3U_MULTI_EPG_HEADER_ACTION_ID = 'm3u-multi-epg'; diff --git a/libs/playlist/shared/ui/src/lib/filter-sort-menu/filter-sort-menu.component.ts b/libs/playlist/shared/ui/src/lib/filter-sort-menu/filter-sort-menu.component.ts index 7eb37e781..91c76e1da 100644 --- a/libs/playlist/shared/ui/src/lib/filter-sort-menu/filter-sort-menu.component.ts +++ b/libs/playlist/shared/ui/src/lib/filter-sort-menu/filter-sort-menu.component.ts @@ -12,8 +12,8 @@ import { MatIconModule } from '@angular/material/icon'; import { MatMenu, MatMenuModule, MatMenuTrigger } from '@angular/material/menu'; import { Store } from '@ngrx/store'; import { TranslateModule } from '@ngx-translate/core'; -import { FilterActions, selectActiveTypeFilters } from 'm3u-state'; -import { SortBy, SortOrder, SortService } from 'services'; +import { FilterActions, selectActiveTypeFilters } from '@iptvnator/m3u-state'; +import { SortBy, SortOrder, SortService } from '@iptvnator/services'; @Component({ selector: 'app-filter-sort-menu', diff --git a/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.spec.ts b/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.spec.ts index 0b074ffcd..dfe6e277f 100644 --- a/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.spec.ts +++ b/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.spec.ts @@ -15,9 +15,9 @@ import { PlaylistContextFacade, PlaylistRefreshActionService, } from '@iptvnator/playlist/shared/util'; -import { DialogService } from 'components'; -import { DatabaseService, PortalStatusService } from 'services'; -import { PlaylistMeta } from 'shared-interfaces'; +import { DialogService } from '@iptvnator/ui/components'; +import { DatabaseService, PortalStatusService } from '@iptvnator/services'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { PlaylistSwitcherComponent } from './playlist-switcher.component'; const SEARCH_QUERY_STORAGE_KEY = 'playlist-switcher:search-query'; diff --git a/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.ts b/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.ts index 04711572c..44775c432 100644 --- a/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.ts +++ b/libs/playlist/shared/ui/src/lib/playlist-switcher/playlist-switcher.component.ts @@ -25,8 +25,8 @@ import { MatTooltip } from '@angular/material/tooltip'; import { Store } from '@ngrx/store'; import { normalizeDateLocale } from '@iptvnator/pipes'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; -import { DialogService } from 'components'; -import { PlaylistActions } from 'm3u-state'; +import { DialogService } from '@iptvnator/ui/components'; +import { PlaylistActions } from '@iptvnator/m3u-state'; import { PlaylistContextFacade, PlaylistRefreshActionService, @@ -35,8 +35,8 @@ import { DatabaseService, PortalStatus, PortalStatusService, -} from 'services'; -import { PlaylistMeta } from 'shared-interfaces'; +} from '@iptvnator/services'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { startWith } from 'rxjs'; import { PlaylistInfoComponent } from '../recent-playlists/playlist-info/playlist-info.component'; diff --git a/libs/playlist/shared/ui/src/lib/recent-playlists/playlist-info/playlist-info.component.ts b/libs/playlist/shared/ui/src/lib/recent-playlists/playlist-info/playlist-info.component.ts index 51d42a3a2..1aa267ca6 100644 --- a/libs/playlist/shared/ui/src/lib/recent-playlists/playlist-info/playlist-info.component.ts +++ b/libs/playlist/shared/ui/src/lib/recent-playlists/playlist-info/playlist-info.component.ts @@ -17,10 +17,10 @@ import { MatSnackBar } from '@angular/material/snack-bar'; import { MatTooltip } from '@angular/material/tooltip'; import { Store } from '@ngrx/store'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; -import { PlaylistActions } from 'm3u-state'; +import { PlaylistActions } from '@iptvnator/m3u-state'; import { firstValueFrom } from 'rxjs'; -import { DatabaseService, PlaylistsService } from 'services'; -import { Playlist, PlaylistMeta } from 'shared-interfaces'; +import { DatabaseService, PlaylistsService } from '@iptvnator/services'; +import { Playlist, PlaylistMeta } from '@iptvnator/shared/interfaces'; @Component({ selector: 'app-playlist-info', diff --git a/libs/playlist/shared/ui/src/lib/recent-playlists/playlist-item/playlist-item.component.spec.ts b/libs/playlist/shared/ui/src/lib/recent-playlists/playlist-item/playlist-item.component.spec.ts index ad99e6351..eed3a45b3 100644 --- a/libs/playlist/shared/ui/src/lib/recent-playlists/playlist-item/playlist-item.component.spec.ts +++ b/libs/playlist/shared/ui/src/lib/recent-playlists/playlist-item/playlist-item.component.spec.ts @@ -4,7 +4,7 @@ import { MatListModule } from '@angular/material/list'; import { MatTooltipModule } from '@angular/material/tooltip'; import { TranslateModule } from '@ngx-translate/core'; import { MockModule } from 'ng-mocks'; -import { PortalStatusService } from 'services'; +import { PortalStatusService } from '@iptvnator/services'; import { PlaylistItemComponent } from './playlist-item.component'; describe('PlaylistItemComponent', () => { diff --git a/libs/playlist/shared/ui/src/lib/recent-playlists/playlist-item/playlist-item.component.ts b/libs/playlist/shared/ui/src/lib/recent-playlists/playlist-item/playlist-item.component.ts index f3a59427b..453d6d127 100644 --- a/libs/playlist/shared/ui/src/lib/recent-playlists/playlist-item/playlist-item.component.ts +++ b/libs/playlist/shared/ui/src/lib/recent-playlists/playlist-item/playlist-item.component.ts @@ -18,8 +18,8 @@ import { MatTooltip } from '@angular/material/tooltip'; import { normalizeDateLocale } from '@iptvnator/pipes'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; import { startWith } from 'rxjs'; -import { PortalStatus, PortalStatusService } from 'services'; -import { PlaylistMeta } from 'shared-interfaces'; +import { PortalStatus, PortalStatusService } from '@iptvnator/services'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; @Component({ selector: 'app-playlist-item', diff --git a/libs/playlist/shared/ui/src/lib/recent-playlists/recent-playlists.component.spec.ts b/libs/playlist/shared/ui/src/lib/recent-playlists/recent-playlists.component.spec.ts index df569d724..1705094f7 100644 --- a/libs/playlist/shared/ui/src/lib/recent-playlists/recent-playlists.component.spec.ts +++ b/libs/playlist/shared/ui/src/lib/recent-playlists/recent-playlists.component.spec.ts @@ -11,9 +11,9 @@ import { selectActiveTypeFilters, selectAllPlaylistsMeta, selectPlaylistsLoadingFlag, -} from 'm3u-state'; +} from '@iptvnator/m3u-state'; import { of } from 'rxjs'; -import { DialogService } from 'components'; +import { DialogService } from '@iptvnator/ui/components'; import { DatabaseService, DataService, @@ -21,8 +21,8 @@ import { SortBy, SortOrder, SortService, -} from 'services'; -import { PLAYLIST_UPDATE, PlaylistMeta } from 'shared-interfaces'; +} from '@iptvnator/services'; +import { PLAYLIST_UPDATE, PlaylistMeta } from '@iptvnator/shared/interfaces'; import { RecentPlaylistsComponent } from './recent-playlists.component'; function createDeferred() { diff --git a/libs/playlist/shared/ui/src/lib/recent-playlists/recent-playlists.component.ts b/libs/playlist/shared/ui/src/lib/recent-playlists/recent-playlists.component.ts index 935809c8a..7743a3277 100644 --- a/libs/playlist/shared/ui/src/lib/recent-playlists/recent-playlists.component.ts +++ b/libs/playlist/shared/ui/src/lib/recent-playlists/recent-playlists.component.ts @@ -26,9 +26,9 @@ import { selectActiveTypeFilters, selectAllPlaylistsMeta, selectPlaylistsLoadingFlag, -} from 'm3u-state'; +} from '@iptvnator/m3u-state'; import { BehaviorSubject, combineLatest, map } from 'rxjs'; -import { DialogService } from 'components'; +import { DialogService } from '@iptvnator/ui/components'; import { DatabaseService, DataService, @@ -39,12 +39,12 @@ import { SortBy, SortService, XtreamPendingRestoreService, -} from 'services'; +} from '@iptvnator/services'; import { PLAYLIST_UPDATE, PlaylistMeta, PlaylistRefreshEvent, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { EmptyStateComponent } from './empty-state/empty-state.component'; import { PlaylistInfoComponent } from './playlist-info/playlist-info.component'; diff --git a/libs/playlist/shared/util/src/lib/playlist-context.facade.spec.ts b/libs/playlist/shared/util/src/lib/playlist-context.facade.spec.ts index a78d29105..be6144df7 100644 --- a/libs/playlist/shared/util/src/lib/playlist-context.facade.spec.ts +++ b/libs/playlist/shared/util/src/lib/playlist-context.facade.spec.ts @@ -7,9 +7,9 @@ import { selectActivePlaylistId, selectAllPlaylistsMeta, selectPlaylistsLoadingFlag, -} from 'm3u-state'; +} from '@iptvnator/m3u-state'; import { Subject } from 'rxjs'; -import { PlaylistMeta } from 'shared-interfaces'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { PlaylistContextFacade, PlaylistRouteContext, diff --git a/libs/playlist/shared/util/src/lib/playlist-context.facade.ts b/libs/playlist/shared/util/src/lib/playlist-context.facade.ts index 99ee469c6..ead6e3b87 100644 --- a/libs/playlist/shared/util/src/lib/playlist-context.facade.ts +++ b/libs/playlist/shared/util/src/lib/playlist-context.facade.ts @@ -14,9 +14,9 @@ import { selectActivePlaylistId, selectAllPlaylistsMeta, selectPlaylistsLoadingFlag, -} from 'm3u-state'; +} from '@iptvnator/m3u-state'; import { filter } from 'rxjs'; -import { PlaylistMeta } from 'shared-interfaces'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { PortalProvider, PortalRailSection, diff --git a/libs/playlist/shared/util/src/lib/playlist-file-import.service.spec.ts b/libs/playlist/shared/util/src/lib/playlist-file-import.service.spec.ts index 98d01f8c5..c3872dbbf 100644 --- a/libs/playlist/shared/util/src/lib/playlist-file-import.service.spec.ts +++ b/libs/playlist/shared/util/src/lib/playlist-file-import.service.spec.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing'; import { Store } from '@ngrx/store'; -import { PlaylistActions } from 'm3u-state'; -import { Playlist } from 'shared-interfaces'; +import { PlaylistActions } from '@iptvnator/m3u-state'; +import { Playlist } from '@iptvnator/shared/interfaces'; import { PlaylistFileImportService } from './playlist-file-import.service'; describe('PlaylistFileImportService', () => { diff --git a/libs/playlist/shared/util/src/lib/playlist-file-import.service.ts b/libs/playlist/shared/util/src/lib/playlist-file-import.service.ts index 227a8bc7c..a2ae09384 100644 --- a/libs/playlist/shared/util/src/lib/playlist-file-import.service.ts +++ b/libs/playlist/shared/util/src/lib/playlist-file-import.service.ts @@ -1,7 +1,7 @@ import { Injectable, inject } from '@angular/core'; import { Store } from '@ngrx/store'; -import { PlaylistActions } from 'm3u-state'; -import { Playlist } from 'shared-interfaces'; +import { PlaylistActions } from '@iptvnator/m3u-state'; +import { Playlist } from '@iptvnator/shared/interfaces'; const M3U_EXTENSIONS = ['.m3u', '.m3u8']; diff --git a/libs/playlist/shared/util/src/lib/playlist-refresh-action.service.spec.ts b/libs/playlist/shared/util/src/lib/playlist-refresh-action.service.spec.ts index 00811da9a..999f37dab 100644 --- a/libs/playlist/shared/util/src/lib/playlist-refresh-action.service.spec.ts +++ b/libs/playlist/shared/util/src/lib/playlist-refresh-action.service.spec.ts @@ -4,14 +4,14 @@ import { MatSnackBar } from '@angular/material/snack-bar'; import { Router } from '@angular/router'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; -import { DialogService } from 'components'; +import { DialogService } from '@iptvnator/ui/components'; import { DatabaseService, PlaybackPositionService, PlaylistRefreshService, -} from 'services'; -import { ChannelActions, PlaylistActions } from 'm3u-state'; -import { Playlist, PlaylistMeta } from 'shared-interfaces'; +} from '@iptvnator/services'; +import { ChannelActions, PlaylistActions } from '@iptvnator/m3u-state'; +import { Playlist, PlaylistMeta } from '@iptvnator/shared/interfaces'; import { PlaylistContextFacade } from './playlist-context.facade'; import { PlaylistRefreshActionService } from './playlist-refresh-action.service'; diff --git a/libs/playlist/shared/util/src/lib/playlist-refresh-action.service.ts b/libs/playlist/shared/util/src/lib/playlist-refresh-action.service.ts index 833ad9540..19b3c9a69 100644 --- a/libs/playlist/shared/util/src/lib/playlist-refresh-action.service.ts +++ b/libs/playlist/shared/util/src/lib/playlist-refresh-action.service.ts @@ -3,7 +3,7 @@ import { Router } from '@angular/router'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; import { MatSnackBar } from '@angular/material/snack-bar'; -import { DialogService } from 'components'; +import { DialogService } from '@iptvnator/ui/components'; import { DatabaseService, type DbOperationEvent, @@ -11,9 +11,9 @@ import { PlaybackPositionService, PlaylistRefreshService, XtreamPendingRestoreService, -} from 'services'; -import { ChannelActions, PlaylistActions } from 'm3u-state'; -import { PlaylistMeta } from 'shared-interfaces'; +} from '@iptvnator/services'; +import { ChannelActions, PlaylistActions } from '@iptvnator/m3u-state'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { PlaylistContextFacade } from './playlist-context.facade'; export interface XtreamRefreshPreparationState { diff --git a/libs/portal/downloads/feature/src/lib/downloads.component.ts b/libs/portal/downloads/feature/src/lib/downloads.component.ts index 235c130a8..25edc527c 100644 --- a/libs/portal/downloads/feature/src/lib/downloads.component.ts +++ b/libs/portal/downloads/feature/src/lib/downloads.component.ts @@ -14,14 +14,14 @@ import { MatSnackBar } from '@angular/material/snack-bar'; import { MatTooltip } from '@angular/material/tooltip'; import { ActivatedRoute, Router } from '@angular/router'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; -import { DialogService } from 'components'; +import { DialogService } from '@iptvnator/ui/components'; import { firstValueFrom, map } from 'rxjs'; import { DatabaseService, type DownloadItem, DownloadsService, PlaylistsService, -} from 'services'; +} from '@iptvnator/services'; import { EmptyStateComponent } from '@iptvnator/playlist/shared/ui'; import { queryParamSignal } from '@iptvnator/portal/shared/util'; import { createPortalCollectionContext } from '@iptvnator/portal/shared/util'; @@ -31,7 +31,7 @@ import { PORTAL_SHELL_ACTIONS, } from '@iptvnator/portal/shared/util'; import { PortalCollectionContextService } from '@iptvnator/portal/shared/util'; -import { Playlist } from 'shared-interfaces'; +import { Playlist } from '@iptvnator/shared/interfaces'; type PortalSource = 'xtream' | 'stalker'; const DOWNLOAD_COLLECTION_LABELS = { diff --git a/libs/portal/shared/ui/src/index.ts b/libs/portal/shared/ui/src/index.ts index 216b620a9..5f9767729 100644 --- a/libs/portal/shared/ui/src/index.ts +++ b/libs/portal/shared/ui/src/index.ts @@ -5,13 +5,13 @@ export * from './lib/components/favorites-layout/favorites-layout.component'; export * from './lib/components/global-favorites-list/global-favorites-list.component'; export * from './lib/components/grid-list/grid-list.component'; export * from './lib/components/playlist-error-view/playlist-error-view.component'; -export { ProgressCapsuleComponent } from 'components'; +export { ProgressCapsuleComponent } from '@iptvnator/ui/components'; export * from './lib/components/portal-collection-live-shell/portal-collection-live-shell.component'; export * from './lib/components/portal-collection-shell/portal-collection-shell.component'; export * from './lib/components/portal-empty-state/portal-empty-state.component'; export * from './lib/components/search-form/search-form.component'; export * from './lib/components/search-layout/search-layout.component'; -export { WatchedBadgeComponent } from 'components'; +export { WatchedBadgeComponent } from '@iptvnator/ui/components'; export * from './lib/components/unified-collection/unified-collection-page.component'; export * from './lib/components/unified-collection/unified-collection-detail.directive'; export * from './lib/components/unified-collection/unified-live-tab.component'; diff --git a/libs/portal/shared/ui/src/lib/components/favorites-layout/favorites-layout.component.ts b/libs/portal/shared/ui/src/lib/components/favorites-layout/favorites-layout.component.ts index c180481df..77677df6c 100644 --- a/libs/portal/shared/ui/src/lib/components/favorites-layout/favorites-layout.component.ts +++ b/libs/portal/shared/ui/src/lib/components/favorites-layout/favorites-layout.component.ts @@ -6,8 +6,8 @@ import { ActivatedRoute } from '@angular/router'; import { PlaylistSwitcherComponent } from '@iptvnator/playlist/shared/ui'; import { isWorkspaceLayoutRoute } from '@iptvnator/portal/shared/util'; import { TranslatePipe } from '@ngx-translate/core'; -import { ResizableDirective } from 'components'; -import { StalkerPortalItem, XtreamCategory } from 'shared-interfaces'; +import { ResizableDirective } from '@iptvnator/ui/components'; +import { StalkerPortalItem, XtreamCategory } from '@iptvnator/shared/interfaces'; import { CategoryViewComponent } from '../category-view/category-view.component'; import { ContentCardComponent } from '../content-card/content-card.component'; diff --git a/libs/portal/shared/ui/src/lib/components/global-favorites-list/global-favorites-list.component.spec.ts b/libs/portal/shared/ui/src/lib/components/global-favorites-list/global-favorites-list.component.spec.ts index 270cc1bdb..3da53d630 100644 --- a/libs/portal/shared/ui/src/lib/components/global-favorites-list/global-favorites-list.component.spec.ts +++ b/libs/portal/shared/ui/src/lib/components/global-favorites-list/global-favorites-list.component.spec.ts @@ -3,10 +3,10 @@ import { signal } from '@angular/core'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { MatDialog } from '@angular/material/dialog'; import { TranslateModule } from '@ngx-translate/core'; -import { ChannelDetailsDialogComponent } from 'components'; +import { ChannelDetailsDialogComponent } from '@iptvnator/ui/components'; import { UnifiedFavoriteChannel } from '@iptvnator/portal/shared/util'; -import { Channel } from 'shared-interfaces'; -import { SettingsStore } from 'services'; +import { Channel } from '@iptvnator/shared/interfaces'; +import { SettingsStore } from '@iptvnator/services'; import { GlobalFavoritesListComponent } from './global-favorites-list.component'; describe('GlobalFavoritesListComponent', () => { diff --git a/libs/portal/shared/ui/src/lib/components/global-favorites-list/global-favorites-list.component.ts b/libs/portal/shared/ui/src/lib/components/global-favorites-list/global-favorites-list.component.ts index 26d519f2d..54b8b625d 100644 --- a/libs/portal/shared/ui/src/lib/components/global-favorites-list/global-favorites-list.component.ts +++ b/libs/portal/shared/ui/src/lib/components/global-favorites-list/global-favorites-list.component.ts @@ -19,9 +19,9 @@ import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu'; import { ChannelDetailsDialogComponent, ChannelListItemComponent, -} from 'components'; -import { SettingsStore } from 'services'; -import { EpgProgram } from 'shared-interfaces'; +} from '@iptvnator/ui/components'; +import { SettingsStore } from '@iptvnator/services'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; import { DEFAULT_FAVORITES_CHANNEL_SORT_MODE, FavoritesChannelSortMode, diff --git a/libs/portal/shared/ui/src/lib/components/grid-list/grid-list.component.ts b/libs/portal/shared/ui/src/lib/components/grid-list/grid-list.component.ts index f8fadd1a6..5fcc99587 100644 --- a/libs/portal/shared/ui/src/lib/components/grid-list/grid-list.component.ts +++ b/libs/portal/shared/ui/src/lib/components/grid-list/grid-list.component.ts @@ -13,7 +13,7 @@ import { TranslatePipe } from '@ngx-translate/core'; import { ProgressCapsuleComponent, WatchedBadgeComponent, -} from 'components'; +} from '@iptvnator/ui/components'; import { PlaylistErrorViewComponent } from '../playlist-error-view/playlist-error-view.component'; interface GridListItem { diff --git a/libs/portal/shared/ui/src/lib/components/playlist-error-view/playlist-error-view.component.ts b/libs/portal/shared/ui/src/lib/components/playlist-error-view/playlist-error-view.component.ts index 435859a42..387f32887 100644 --- a/libs/portal/shared/ui/src/lib/components/playlist-error-view/playlist-error-view.component.ts +++ b/libs/portal/shared/ui/src/lib/components/playlist-error-view/playlist-error-view.component.ts @@ -7,8 +7,8 @@ import { Store } from '@ngrx/store'; import { TranslateModule, TranslateService } from '@ngx-translate/core'; import { PlaylistInfoComponent } from '@iptvnator/playlist/shared/ui'; import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; -import { DialogService } from 'components'; -import { PlaylistActions } from 'm3u-state'; +import { DialogService } from '@iptvnator/ui/components'; +import { PlaylistActions } from '@iptvnator/m3u-state'; @Component({ selector: 'app-playlist-error-view', diff --git a/libs/portal/shared/ui/src/lib/components/portal-collection-live-shell/portal-collection-live-shell.component.ts b/libs/portal/shared/ui/src/lib/components/portal-collection-live-shell/portal-collection-live-shell.component.ts index b85e0f930..55cd22831 100644 --- a/libs/portal/shared/ui/src/lib/components/portal-collection-live-shell/portal-collection-live-shell.component.ts +++ b/libs/portal/shared/ui/src/lib/components/portal-collection-live-shell/portal-collection-live-shell.component.ts @@ -7,9 +7,9 @@ import { import { MatButtonModule } from '@angular/material/button'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { TranslatePipe } from '@ngx-translate/core'; -import { ResizableDirective } from 'components'; -import { EpgItem } from 'shared-interfaces'; -import { EpgViewComponent, WebPlayerViewComponent } from 'shared-portals'; +import { ResizableDirective } from '@iptvnator/ui/components'; +import { EpgItem } from '@iptvnator/shared/interfaces'; +import { EpgViewComponent, WebPlayerViewComponent } from '@iptvnator/ui/shared-portals'; import { PortalEmptyStateComponent } from '../portal-empty-state/portal-empty-state.component'; @Component({ diff --git a/libs/portal/shared/ui/src/lib/components/portal-collection-shell/portal-collection-shell.component.ts b/libs/portal/shared/ui/src/lib/components/portal-collection-shell/portal-collection-shell.component.ts index df456a938..d468194f5 100644 --- a/libs/portal/shared/ui/src/lib/components/portal-collection-shell/portal-collection-shell.component.ts +++ b/libs/portal/shared/ui/src/lib/components/portal-collection-shell/portal-collection-shell.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, input, output } from '@angular/core'; -import { XtreamCategory } from 'shared-interfaces'; +import { XtreamCategory } from '@iptvnator/shared/interfaces'; import { FavoriteLayoutItem, FavoritesLayoutComponent, diff --git a/libs/portal/shared/ui/src/lib/components/unified-collection/unified-collection-page.component.spec.ts b/libs/portal/shared/ui/src/lib/components/unified-collection/unified-collection-page.component.spec.ts index 77c767dec..a567dbbd6 100644 --- a/libs/portal/shared/ui/src/lib/components/unified-collection/unified-collection-page.component.spec.ts +++ b/libs/portal/shared/ui/src/lib/components/unified-collection/unified-collection-page.component.spec.ts @@ -11,7 +11,7 @@ import { By } from '@angular/platform-browser'; import { ActivatedRoute, convertToParamMap, Router } from '@angular/router'; import { Store } from '@ngrx/store'; import { TranslateModule } from '@ngx-translate/core'; -import { DialogService } from 'components'; +import { DialogService } from '@iptvnator/ui/components'; import { COLLECTION_VIEW_STATE_KEY, CollectionScope, @@ -23,9 +23,9 @@ import { UnifiedRecentDataService, WorkspaceViewCommandService, } from '@iptvnator/portal/shared/util'; -import { selectAllPlaylistsMeta, selectPlaylistsLoadingFlag } from 'm3u-state'; +import { selectAllPlaylistsMeta, selectPlaylistsLoadingFlag } from '@iptvnator/m3u-state'; import { BehaviorSubject } from 'rxjs'; -import { PlaylistMeta } from 'shared-interfaces'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { UnifiedCollectionPageComponent } from './unified-collection-page.component'; import { UnifiedCollectionDetailDirective } from './unified-collection-detail.directive'; import { UnifiedGridTabComponent } from './unified-grid-tab.component'; diff --git a/libs/portal/shared/ui/src/lib/components/unified-collection/unified-collection-page.component.ts b/libs/portal/shared/ui/src/lib/components/unified-collection/unified-collection-page.component.ts index 7cbc789c3..5a8c486a5 100644 --- a/libs/portal/shared/ui/src/lib/components/unified-collection/unified-collection-page.component.ts +++ b/libs/portal/shared/ui/src/lib/components/unified-collection/unified-collection-page.component.ts @@ -21,7 +21,7 @@ import { MatTooltip } from '@angular/material/tooltip'; import { ActivatedRoute, Router } from '@angular/router'; import { Store } from '@ngrx/store'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; -import { ChannelListSkeletonComponent, DialogService } from 'components'; +import { ChannelListSkeletonComponent, DialogService } from '@iptvnator/ui/components'; import { buildGlobalCollectionDetailNavigationTarget, buildCollectionViewState, @@ -52,7 +52,7 @@ import { UnifiedRecentDataService, WorkspaceViewCommandService, } from '@iptvnator/portal/shared/util'; -import { selectAllPlaylistsMeta, selectPlaylistsLoadingFlag } from 'm3u-state'; +import { selectAllPlaylistsMeta, selectPlaylistsLoadingFlag } from '@iptvnator/m3u-state'; import { EmptyStateComponent } from '@iptvnator/playlist/shared/ui'; import { UnifiedLiveTabComponent } from './unified-live-tab.component'; import { UnifiedGridTabComponent } from './unified-grid-tab.component'; diff --git a/libs/portal/shared/ui/src/lib/components/unified-collection/unified-live-tab.component.ts b/libs/portal/shared/ui/src/lib/components/unified-collection/unified-live-tab.component.ts index 42482a12f..201ff1815 100644 --- a/libs/portal/shared/ui/src/lib/components/unified-collection/unified-live-tab.component.ts +++ b/libs/portal/shared/ui/src/lib/components/unified-collection/unified-live-tab.component.ts @@ -13,7 +13,7 @@ import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { TranslatePipe } from '@ngx-translate/core'; -import { isM3uCatchupPlaybackSupported } from 'm3u-utils'; +import { isM3uCatchupPlaybackSupported } from '@iptvnator/shared/m3u-utils'; import { DEFAULT_FAVORITES_CHANNEL_SORT_MODE, FavoritesChannelSortMode, @@ -43,15 +43,15 @@ import { HtmlVideoPlayerComponent, VjsPlayerComponent, } from '@iptvnator/ui/playback'; -import { ResizableDirective } from 'components'; -import { SettingsStore } from 'services'; -import { Channel, EpgItem, EpgProgram } from 'shared-interfaces'; +import { ResizableDirective } from '@iptvnator/ui/components'; +import { SettingsStore } from '@iptvnator/services'; +import { Channel, EpgItem, EpgProgram } from '@iptvnator/shared/interfaces'; import { EpgViewComponent, LiveEpgPanelComponent, LiveEpgPanelSummary, WebPlayerViewComponent, -} from 'shared-portals'; +} from '@iptvnator/ui/shared-portals'; @Component({ selector: 'app-unified-live-tab', diff --git a/libs/portal/shared/ui/src/lib/navigation/navigation.component.ts b/libs/portal/shared/ui/src/lib/navigation/navigation.component.ts index 2b09e0415..64c899bd4 100644 --- a/libs/portal/shared/ui/src/lib/navigation/navigation.component.ts +++ b/libs/portal/shared/ui/src/lib/navigation/navigation.component.ts @@ -11,8 +11,8 @@ import { PORTAL_NAVIGATION_ACTIONS, PortalRailSection, } from '@iptvnator/portal/shared/util'; -import { selectPlaylistById } from 'm3u-state'; -import { Playlist } from 'shared-interfaces'; +import { selectPlaylistById } from '@iptvnator/m3u-state'; +import { Playlist } from '@iptvnator/shared/interfaces'; import { PortalRailLinksComponent } from './portal-rail-links.component'; @Component({ diff --git a/libs/portal/shared/util/src/lib/collection/collection-helpers.ts b/libs/portal/shared/util/src/lib/collection/collection-helpers.ts index 72167a8ce..222f12ab8 100644 --- a/libs/portal/shared/util/src/lib/collection/collection-helpers.ts +++ b/libs/portal/shared/util/src/lib/collection/collection-helpers.ts @@ -1,4 +1,4 @@ -import { StalkerPortalItem } from 'shared-interfaces'; +import { StalkerPortalItem } from '@iptvnator/shared/interfaces'; import { CollectionContentType } from './unified-collection-item.interface'; export interface XtreamFavoriteRow { diff --git a/libs/portal/shared/util/src/lib/collection/stream-resolver.service.spec.ts b/libs/portal/shared/util/src/lib/collection/stream-resolver.service.spec.ts index ff32a1ead..2d96ac850 100644 --- a/libs/portal/shared/util/src/lib/collection/stream-resolver.service.spec.ts +++ b/libs/portal/shared/util/src/lib/collection/stream-resolver.service.spec.ts @@ -5,8 +5,8 @@ import { XtreamUrlService, } from '@iptvnator/portal/xtream/data-access'; import { StalkerSessionService } from '@iptvnator/portal/stalker/data-access'; -import { DataService, PlaylistsService } from 'services'; -import { Playlist } from 'shared-interfaces'; +import { DataService, PlaylistsService } from '@iptvnator/services'; +import { Playlist } from '@iptvnator/shared/interfaces'; import { UnifiedCollectionItem } from './unified-collection-item.interface'; import { ResolvedLiveCollectionDetail, diff --git a/libs/portal/shared/util/src/lib/collection/stream-resolver.service.ts b/libs/portal/shared/util/src/lib/collection/stream-resolver.service.ts index 41d87f7ea..56c9d0cb6 100644 --- a/libs/portal/shared/util/src/lib/collection/stream-resolver.service.ts +++ b/libs/portal/shared/util/src/lib/collection/stream-resolver.service.ts @@ -1,6 +1,6 @@ import { inject, Injectable } from '@angular/core'; import { firstValueFrom } from 'rxjs'; -import { DataService, PlaylistsService } from 'services'; +import { DataService, PlaylistsService } from '@iptvnator/services'; import { Channel, EpgItem, @@ -9,7 +9,7 @@ import { ResolvedPortalPlayback, STALKER_REQUEST, StalkerPortalActions, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { XtreamApiService, XtreamUrlService, diff --git a/libs/portal/shared/util/src/lib/collection/unified-collection-item.interface.ts b/libs/portal/shared/util/src/lib/collection/unified-collection-item.interface.ts index 2f5d7d577..140612abe 100644 --- a/libs/portal/shared/util/src/lib/collection/unified-collection-item.interface.ts +++ b/libs/portal/shared/util/src/lib/collection/unified-collection-item.interface.ts @@ -5,7 +5,7 @@ * Extends the previous live-only UnifiedFavoriteChannel to cover * all content types: live TV, movies, and series. */ -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; export type CollectionSourceType = 'm3u' | 'xtream' | 'stalker'; export type CollectionContentType = 'live' | 'movie' | 'series'; diff --git a/libs/portal/shared/util/src/lib/collection/unified-favorite-channel.interface.ts b/libs/portal/shared/util/src/lib/collection/unified-favorite-channel.interface.ts index 9b5f85e23..438854125 100644 --- a/libs/portal/shared/util/src/lib/collection/unified-favorite-channel.interface.ts +++ b/libs/portal/shared/util/src/lib/collection/unified-favorite-channel.interface.ts @@ -2,7 +2,7 @@ * Unified interface for displaying live TV favorites from any source * (M3U playlists, Xtream Codes portals, Stalker portals) in one list. */ -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; export type FavoriteSourceType = 'm3u' | 'xtream' | 'stalker'; diff --git a/libs/portal/shared/util/src/lib/collection/unified-favorites-data.service.spec.ts b/libs/portal/shared/util/src/lib/collection/unified-favorites-data.service.spec.ts index da909fa8b..8aa5664ab 100644 --- a/libs/portal/shared/util/src/lib/collection/unified-favorites-data.service.spec.ts +++ b/libs/portal/shared/util/src/lib/collection/unified-favorites-data.service.spec.ts @@ -2,13 +2,13 @@ import { TestBed } from '@angular/core/testing'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; import { of } from 'rxjs'; -import { DatabaseService, PlaylistsService } from 'services'; +import { DatabaseService, PlaylistsService } from '@iptvnator/services'; import { Channel, Playlist, PlaylistMeta, StalkerPortalItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { UnifiedCollectionItem } from './unified-collection-item.interface'; import { UnifiedFavoritesDataService } from './unified-favorites-data.service'; diff --git a/libs/portal/shared/util/src/lib/collection/unified-favorites-data.service.ts b/libs/portal/shared/util/src/lib/collection/unified-favorites-data.service.ts index 2e6160ff7..3ca6b5e9e 100644 --- a/libs/portal/shared/util/src/lib/collection/unified-favorites-data.service.ts +++ b/libs/portal/shared/util/src/lib/collection/unified-favorites-data.service.ts @@ -1,9 +1,9 @@ import { inject, Injectable } from '@angular/core'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; -import { PlaylistActions, selectAllPlaylistsMeta } from 'm3u-state'; +import { PlaylistActions, selectAllPlaylistsMeta } from '@iptvnator/m3u-state'; import { firstValueFrom, map } from 'rxjs'; -import { DatabaseService, PlaylistsService } from 'services'; +import { DatabaseService, PlaylistsService } from '@iptvnator/services'; import { Channel, extractStalkerItemId, @@ -15,7 +15,7 @@ import { Playlist, PlaylistMeta, StalkerPortalItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { buildCollectionUid, buildXtreamCollectionUid, diff --git a/libs/portal/shared/util/src/lib/collection/unified-live-tab.component.spec.ts b/libs/portal/shared/util/src/lib/collection/unified-live-tab.component.spec.ts index d0e2ce36a..f6e41c276 100644 --- a/libs/portal/shared/util/src/lib/collection/unified-live-tab.component.spec.ts +++ b/libs/portal/shared/util/src/lib/collection/unified-live-tab.component.spec.ts @@ -25,14 +25,14 @@ import { getTodayEpgDateKey, shiftEpgDateKey, } from '@iptvnator/ui/epg'; -import { ResizableDirective } from 'components'; -import { SettingsStore } from 'services'; -import { Channel, EpgItem, EpgProgram } from 'shared-interfaces'; +import { ResizableDirective } from '@iptvnator/ui/components'; +import { SettingsStore } from '@iptvnator/services'; +import { Channel, EpgItem, EpgProgram } from '@iptvnator/shared/interfaces'; import { EpgViewComponent, LiveEpgPanelComponent, LiveEpgPanelSummary, -} from 'shared-portals'; +} from '@iptvnator/ui/shared-portals'; import { DEFAULT_FAVORITES_CHANNEL_SORT_MODE, PORTAL_PLAYER, diff --git a/libs/portal/shared/util/src/lib/collection/unified-recent-data.service.spec.ts b/libs/portal/shared/util/src/lib/collection/unified-recent-data.service.spec.ts index 416f7d5b0..f7c3e50fd 100644 --- a/libs/portal/shared/util/src/lib/collection/unified-recent-data.service.spec.ts +++ b/libs/portal/shared/util/src/lib/collection/unified-recent-data.service.spec.ts @@ -1,13 +1,13 @@ import { TestBed } from '@angular/core/testing'; import { Store } from '@ngrx/store'; import { of } from 'rxjs'; -import { DatabaseService, PlaylistsService } from 'services'; +import { DatabaseService, PlaylistsService } from '@iptvnator/services'; import { Channel, M3uRecentlyViewedItem, Playlist, PlaylistMeta, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { UnifiedCollectionItem } from './unified-collection-item.interface'; import { UnifiedRecentDataService } from './unified-recent-data.service'; diff --git a/libs/portal/shared/util/src/lib/collection/unified-recent-data.service.ts b/libs/portal/shared/util/src/lib/collection/unified-recent-data.service.ts index ed99f010a..4264c067d 100644 --- a/libs/portal/shared/util/src/lib/collection/unified-recent-data.service.ts +++ b/libs/portal/shared/util/src/lib/collection/unified-recent-data.service.ts @@ -1,8 +1,8 @@ import { inject, Injectable } from '@angular/core'; import { Store } from '@ngrx/store'; -import { PlaylistActions, selectAllPlaylistsMeta } from 'm3u-state'; +import { PlaylistActions, selectAllPlaylistsMeta } from '@iptvnator/m3u-state'; import { firstValueFrom, map } from 'rxjs'; -import { DatabaseService, PlaylistsService } from 'services'; +import { DatabaseService, PlaylistsService } from '@iptvnator/services'; import { Channel, extractStalkerItemId, @@ -18,7 +18,7 @@ import { PlaylistRecentlyViewedItem, PlaylistUpdateState, StalkerPortalItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { buildCollectionUid, buildXtreamCollectionUid, diff --git a/libs/portal/shared/util/src/lib/logger.ts b/libs/portal/shared/util/src/lib/logger.ts index 3bf74f493..439b449e3 100644 --- a/libs/portal/shared/util/src/lib/logger.ts +++ b/libs/portal/shared/util/src/lib/logger.ts @@ -2,7 +2,7 @@ import { PortalDebugEvent, PortalDebugProvider, PortalDebugTransport, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; export interface Logger { debug: (...args: unknown[]) => void; diff --git a/libs/portal/shared/util/src/lib/navigation/workspace-portal-navigation.ts b/libs/portal/shared/util/src/lib/navigation/workspace-portal-navigation.ts index 5d11e0c2e..8f93b093f 100644 --- a/libs/portal/shared/util/src/lib/navigation/workspace-portal-navigation.ts +++ b/libs/portal/shared/util/src/lib/navigation/workspace-portal-navigation.ts @@ -4,7 +4,7 @@ import { PortalFavoriteItem, PortalRecentItem, StalkerPortalItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { buildCollectionUid, buildXtreamCollectionUid, diff --git a/libs/portal/shared/util/src/lib/portal-catalog-facade.ts b/libs/portal/shared/util/src/lib/portal-catalog-facade.ts index debb0ae5a..ccd9e3e0d 100644 --- a/libs/portal/shared/util/src/lib/portal-catalog-facade.ts +++ b/libs/portal/shared/util/src/lib/portal-catalog-facade.ts @@ -1,5 +1,5 @@ import { InjectionToken, Signal } from '@angular/core'; -import { ResolvedPortalPlayback } from 'shared-interfaces'; +import { ResolvedPortalPlayback } from '@iptvnator/shared/interfaces'; export type PortalCatalogProvider = 'xtream' | 'stalker'; diff --git a/libs/portal/shared/util/src/lib/portal-collection-context.service.ts b/libs/portal/shared/util/src/lib/portal-collection-context.service.ts index 9105daac6..6209fd155 100644 --- a/libs/portal/shared/util/src/lib/portal-collection-context.service.ts +++ b/libs/portal/shared/util/src/lib/portal-collection-context.service.ts @@ -1,5 +1,5 @@ import { Injectable, signal } from '@angular/core'; -import { XtreamCategory } from 'shared-interfaces'; +import { XtreamCategory } from '@iptvnator/shared/interfaces'; /** * Lightweight service that bridges collection-backed routed diff --git a/libs/portal/shared/util/src/lib/portal-collection-context.ts b/libs/portal/shared/util/src/lib/portal-collection-context.ts index 70dfabee9..82f9d85a6 100644 --- a/libs/portal/shared/util/src/lib/portal-collection-context.ts +++ b/libs/portal/shared/util/src/lib/portal-collection-context.ts @@ -1,5 +1,5 @@ import { DestroyRef, Signal, effect, inject } from '@angular/core'; -import { XtreamCategory } from 'shared-interfaces'; +import { XtreamCategory } from '@iptvnator/shared/interfaces'; import { PortalCollectionContextService } from './portal-collection-context.service'; export interface PortalCollectionContextBridge { diff --git a/libs/portal/shared/util/src/lib/portal-collection-items.ts b/libs/portal/shared/util/src/lib/portal-collection-items.ts index 94109a9d1..5e4fe7177 100644 --- a/libs/portal/shared/util/src/lib/portal-collection-items.ts +++ b/libs/portal/shared/util/src/lib/portal-collection-items.ts @@ -1,4 +1,4 @@ -import { XtreamCategory } from 'shared-interfaces'; +import { XtreamCategory } from '@iptvnator/shared/interfaces'; type StandardCollectionBucket = 'all' | 'movie' | 'live' | 'series'; diff --git a/libs/portal/shared/util/src/lib/portal-external-playback.ts b/libs/portal/shared/util/src/lib/portal-external-playback.ts index b1cdeb752..6bb4ef6aa 100644 --- a/libs/portal/shared/util/src/lib/portal-external-playback.ts +++ b/libs/portal/shared/util/src/lib/portal-external-playback.ts @@ -1,5 +1,5 @@ import { InjectionToken, Signal } from '@angular/core'; -import { ExternalPlayerSession } from 'shared-interfaces'; +import { ExternalPlayerSession } from '@iptvnator/shared/interfaces'; export interface PortalExternalPlayback { readonly activeSession: Signal; diff --git a/libs/portal/shared/util/src/lib/portal-navigation-actions.ts b/libs/portal/shared/util/src/lib/portal-navigation-actions.ts index 978289041..ed80f0a49 100644 --- a/libs/portal/shared/util/src/lib/portal-navigation-actions.ts +++ b/libs/portal/shared/util/src/lib/portal-navigation-actions.ts @@ -1,5 +1,5 @@ import { InjectionToken } from '@angular/core'; -import { Playlist } from 'shared-interfaces'; +import { Playlist } from '@iptvnator/shared/interfaces'; export interface PortalNavigationActions { openAccountInfo(): void; diff --git a/libs/portal/shared/util/src/lib/portal-playback-positions.ts b/libs/portal/shared/util/src/lib/portal-playback-positions.ts index 4f4b66b07..0630a1f07 100644 --- a/libs/portal/shared/util/src/lib/portal-playback-positions.ts +++ b/libs/portal/shared/util/src/lib/portal-playback-positions.ts @@ -1,5 +1,5 @@ import { InjectionToken } from '@angular/core'; -import { PlaybackPositionData } from 'shared-interfaces'; +import { PlaybackPositionData } from '@iptvnator/shared/interfaces'; export interface PortalPlaybackPositions { savePlaybackPosition( diff --git a/libs/portal/shared/util/src/lib/portal-player.ts b/libs/portal/shared/util/src/lib/portal-player.ts index c66a519d9..389205068 100644 --- a/libs/portal/shared/util/src/lib/portal-player.ts +++ b/libs/portal/shared/util/src/lib/portal-player.ts @@ -2,8 +2,8 @@ import { InjectionToken } from '@angular/core'; import { ExternalPlayerSession, ResolvedPortalPlayback, -} from 'shared-interfaces'; -import type { ExternalPlayerName } from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; +import type { ExternalPlayerName } from '@iptvnator/shared/interfaces'; export interface PortalPlayer { isEmbeddedPlayer(): boolean; diff --git a/libs/portal/shared/util/src/lib/series-quick-start.spec.ts b/libs/portal/shared/util/src/lib/series-quick-start.spec.ts index 53d2578c8..5be1358f2 100644 --- a/libs/portal/shared/util/src/lib/series-quick-start.spec.ts +++ b/libs/portal/shared/util/src/lib/series-quick-start.spec.ts @@ -1,4 +1,4 @@ -import { PlaybackPositionData, XtreamSerieEpisode } from 'shared-interfaces'; +import { PlaybackPositionData, XtreamSerieEpisode } from '@iptvnator/shared/interfaces'; import { SERIES_QUICK_START_ACTION_KIND, formatSeriesEpisodeCode, diff --git a/libs/portal/shared/util/src/lib/series-quick-start.ts b/libs/portal/shared/util/src/lib/series-quick-start.ts index fde8a64d0..4a2d243e0 100644 --- a/libs/portal/shared/util/src/lib/series-quick-start.ts +++ b/libs/portal/shared/util/src/lib/series-quick-start.ts @@ -1,4 +1,4 @@ -import { PlaybackPositionData, XtreamSerieEpisode } from 'shared-interfaces'; +import { PlaybackPositionData, XtreamSerieEpisode } from '@iptvnator/shared/interfaces'; import { isPortalPlaybackInProgress, isPortalPlaybackWatched, diff --git a/libs/portal/stalker/data-access/src/lib/models/stalker-favorite-item.interface.ts b/libs/portal/stalker/data-access/src/lib/models/stalker-favorite-item.interface.ts index 7f767319b..621d28344 100644 --- a/libs/portal/stalker/data-access/src/lib/models/stalker-favorite-item.interface.ts +++ b/libs/portal/stalker/data-access/src/lib/models/stalker-favorite-item.interface.ts @@ -1,7 +1,7 @@ import { StalkerVodDetails, StalkerVodInfo, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; export type StalkerSeriesFlag = true | 1 | '1'; diff --git a/libs/portal/stalker/data-access/src/lib/models/stalker-serial-details.interface.ts b/libs/portal/stalker/data-access/src/lib/models/stalker-serial-details.interface.ts index 5bbdaec99..648cb1cb0 100644 --- a/libs/portal/stalker/data-access/src/lib/models/stalker-serial-details.interface.ts +++ b/libs/portal/stalker/data-access/src/lib/models/stalker-serial-details.interface.ts @@ -1,5 +1,5 @@ /** - * @deprecated Import from 'shared-interfaces' instead. + * @deprecated Import from '@iptvnator/shared/interfaces' instead. * This re-export exists for backward compatibility. */ -export { StalkerSerialDetails } from 'shared-interfaces'; +export { StalkerSerialDetails } from '@iptvnator/shared/interfaces'; diff --git a/libs/portal/stalker/data-access/src/lib/models/stalker-vod-details.interface.ts b/libs/portal/stalker/data-access/src/lib/models/stalker-vod-details.interface.ts index 592a786dc..48839c6c8 100644 --- a/libs/portal/stalker/data-access/src/lib/models/stalker-vod-details.interface.ts +++ b/libs/portal/stalker/data-access/src/lib/models/stalker-vod-details.interface.ts @@ -1,8 +1,8 @@ /** - * @deprecated Import from 'shared-interfaces' instead. + * @deprecated Import from '@iptvnator/shared/interfaces' instead. * This re-export exists for backward compatibility. */ export { StalkerVodDetails, StalkerVodInfo, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; diff --git a/libs/portal/stalker/data-access/src/lib/stalker-content-types.ts b/libs/portal/stalker/data-access/src/lib/stalker-content-types.ts index f7e35b085..6ad209ccd 100644 --- a/libs/portal/stalker/data-access/src/lib/stalker-content-types.ts +++ b/libs/portal/stalker/data-access/src/lib/stalker-content-types.ts @@ -1,4 +1,4 @@ -import { StalkerPortalActions } from 'shared-interfaces'; +import { StalkerPortalActions } from '@iptvnator/shared/interfaces'; export const StalkerContentTypes = { stb: { diff --git a/libs/portal/stalker/data-access/src/lib/stalker-live-playback.utils.ts b/libs/portal/stalker/data-access/src/lib/stalker-live-playback.utils.ts index 734b7e0aa..4318d1a77 100644 --- a/libs/portal/stalker/data-access/src/lib/stalker-live-playback.utils.ts +++ b/libs/portal/stalker/data-access/src/lib/stalker-live-playback.utils.ts @@ -1,4 +1,4 @@ -import { PlaylistMeta } from 'shared-interfaces'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; export const STALKER_MAG_USER_AGENT = 'Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG250'; diff --git a/libs/portal/stalker/data-access/src/lib/stalker-series.adapters.ts b/libs/portal/stalker/data-access/src/lib/stalker-series.adapters.ts index d18fcf12a..7a94a40bf 100644 --- a/libs/portal/stalker/data-access/src/lib/stalker-series.adapters.ts +++ b/libs/portal/stalker/data-access/src/lib/stalker-series.adapters.ts @@ -1,4 +1,4 @@ -import { XtreamSerieEpisode } from 'shared-interfaces'; +import { XtreamSerieEpisode } from '@iptvnator/shared/interfaces'; import { StalkerSeason, StalkerVodSeriesEpisode, diff --git a/libs/portal/stalker/data-access/src/lib/stalker-session.service.ts b/libs/portal/stalker/data-access/src/lib/stalker-session.service.ts index 7681b68c4..f0083378f 100644 --- a/libs/portal/stalker/data-access/src/lib/stalker-session.service.ts +++ b/libs/portal/stalker/data-access/src/lib/stalker-session.service.ts @@ -1,6 +1,6 @@ import { Injectable, inject } from '@angular/core'; -import { Playlist, STALKER_REQUEST } from 'shared-interfaces'; -import { DataService } from 'services'; +import { Playlist, STALKER_REQUEST } from '@iptvnator/shared/interfaces'; +import { DataService } from '@iptvnator/services'; /** * SHA1 hash using native Web Crypto API diff --git a/libs/portal/stalker/data-access/src/lib/stalker-vod.utils.spec.ts b/libs/portal/stalker/data-access/src/lib/stalker-vod.utils.spec.ts index 08c79da86..b6ccedd9c 100644 --- a/libs/portal/stalker/data-access/src/lib/stalker-vod.utils.spec.ts +++ b/libs/portal/stalker/data-access/src/lib/stalker-vod.utils.spec.ts @@ -1,4 +1,4 @@ -import { VodDetailsItem } from 'shared-interfaces'; +import { VodDetailsItem } from '@iptvnator/shared/interfaces'; import { StalkerFavoriteItem } from './models'; import { buildStalkerFavoritePayload, diff --git a/libs/portal/stalker/data-access/src/lib/stalker-vod.utils.ts b/libs/portal/stalker/data-access/src/lib/stalker-vod.utils.ts index 83e879f67..6fefe9253 100644 --- a/libs/portal/stalker/data-access/src/lib/stalker-vod.utils.ts +++ b/libs/portal/stalker/data-access/src/lib/stalker-vod.utils.ts @@ -4,13 +4,13 @@ import { } from '@angular/core'; import { rxResource } from '@angular/core/rxjs-interop'; import { Observable } from 'rxjs'; -import { PlaylistsService } from 'services'; +import { PlaylistsService } from '@iptvnator/services'; import { createStalkerVodItem, StalkerVodDetails, StalkerVodInfo, VodDetailsItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { StalkerFavoriteItem, StalkerSelectedVodItem, diff --git a/libs/portal/stalker/data-access/src/lib/stalker.store.compat.spec.ts b/libs/portal/stalker/data-access/src/lib/stalker.store.compat.spec.ts index 3d3db9738..c527fd0b2 100644 --- a/libs/portal/stalker/data-access/src/lib/stalker.store.compat.spec.ts +++ b/libs/portal/stalker/data-access/src/lib/stalker.store.compat.spec.ts @@ -4,7 +4,7 @@ import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; import { of } from 'rxjs'; import { PORTAL_PLAYER } from '@iptvnator/portal/shared/util'; -import { DataService, PlaylistsService } from 'services'; +import { DataService, PlaylistsService } from '@iptvnator/services'; import { StalkerSessionService } from './stalker-session.service'; import { StalkerStore } from './stalker.store'; diff --git a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-content.feature.spec.ts b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-content.feature.spec.ts index 9b638d703..39af80336 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-content.feature.spec.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-content.feature.spec.ts @@ -1,8 +1,8 @@ import { TestBed } from '@angular/core/testing'; import { patchState, signalStore, withMethods, withState } from '@ngrx/signals'; import { TranslateService } from '@ngx-translate/core'; -import { DataService } from 'services'; -import { PlaylistMeta, StalkerPortalActions } from 'shared-interfaces'; +import { DataService } from '@iptvnator/services'; +import { PlaylistMeta, StalkerPortalActions } from '@iptvnator/shared/interfaces'; import { StalkerSessionService } from '../../stalker-session.service'; import { withStalkerContent } from './with-stalker-content.feature'; diff --git a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-content.feature.ts b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-content.feature.ts index 61e0929a0..d4b3bffe4 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-content.feature.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-content.feature.ts @@ -9,7 +9,7 @@ import { } from '@ngrx/signals'; import { TranslateService } from '@ngx-translate/core'; import { createLogger } from '@iptvnator/portal/shared/util'; -import { DataService } from 'services'; +import { DataService } from '@iptvnator/services'; import { StalkerCategoryItem, StalkerContentItem, diff --git a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-epg.feature.spec.ts b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-epg.feature.spec.ts index 0602fa4ae..e25e02866 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-epg.feature.spec.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-epg.feature.spec.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing'; import { signalStore, withState } from '@ngrx/signals'; -import { DataService } from 'services'; -import { EpgItem, Playlist } from 'shared-interfaces'; +import { DataService } from '@iptvnator/services'; +import { EpgItem, Playlist } from '@iptvnator/shared/interfaces'; import { StalkerSessionService } from '../../stalker-session.service'; import { withStalkerEpg } from './with-stalker-epg.feature'; diff --git a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-epg.feature.ts b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-epg.feature.ts index b005e7f29..e12202ef2 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-epg.feature.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-epg.feature.ts @@ -7,8 +7,8 @@ import { withState, } from '@ngrx/signals'; import { createLogger } from '@iptvnator/portal/shared/util'; -import { DataService } from 'services'; -import { EpgItem, EpgProgram, StalkerPortalActions } from 'shared-interfaces'; +import { DataService } from '@iptvnator/services'; +import { EpgItem, EpgProgram, StalkerPortalActions } from '@iptvnator/shared/interfaces'; import { normalizeStalkerEntityId } from '../../stalker-vod.utils'; import { StalkerSessionService } from '../../stalker-session.service'; import { StalkerEpgFeatureStoreContract } from '../stalker-store.contracts'; diff --git a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-favorites.feature.ts b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-favorites.feature.ts index ccc8c30e0..3150ea696 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-favorites.feature.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-favorites.feature.ts @@ -3,8 +3,8 @@ import { MatSnackBar } from '@angular/material/snack-bar'; import { signalStoreFeature, withMethods } from '@ngrx/signals'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; -import { PlaylistsService } from 'services'; -import { PlaylistMeta, StalkerPortalItem } from 'shared-interfaces'; +import { PlaylistsService } from '@iptvnator/services'; +import { PlaylistMeta, StalkerPortalItem } from '@iptvnator/shared/interfaces'; import { StalkerSelectionStoreContract } from '../stalker-store.contracts'; import { dispatchStalkerPlaylistMetaUpdate, diff --git a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-player.feature.spec.ts b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-player.feature.spec.ts index 2e5794fbd..2ce3be38a 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-player.feature.spec.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-player.feature.spec.ts @@ -4,9 +4,9 @@ import { patchState, signalStore, withMethods, withState } from '@ngrx/signals'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; import { PORTAL_PLAYER } from '@iptvnator/portal/shared/util'; -import { DataService, PlaylistsService } from 'services'; +import { DataService, PlaylistsService } from '@iptvnator/services'; import { of } from 'rxjs'; -import { PlaylistMeta, StalkerPortalActions } from 'shared-interfaces'; +import { PlaylistMeta, StalkerPortalActions } from '@iptvnator/shared/interfaces'; import { StalkerSessionService } from '../../stalker-session.service'; import { withStalkerPlayer } from './with-stalker-player.feature'; diff --git a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-player.feature.ts b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-player.feature.ts index 624e064b1..be7d64e9f 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-player.feature.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-player.feature.ts @@ -4,12 +4,12 @@ import { signalStoreFeature, withMethods } from '@ngrx/signals'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; import { PORTAL_PLAYER, createLogger } from '@iptvnator/portal/shared/util'; -import { DataService, PlaylistsService } from 'services'; +import { DataService, PlaylistsService } from '@iptvnator/services'; import { PlaylistMeta, ResolvedPortalPlayback, StalkerPortalItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { buildStalkerExternalPlaybackHeaders, getStalkerPortalOrigin, diff --git a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-portal.feature.ts b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-portal.feature.ts index 37dbeda20..f06875ffd 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-portal.feature.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-portal.feature.ts @@ -6,9 +6,9 @@ import { withProps, withState, } from '@ngrx/signals'; -import { PlaylistMeta, STALKER_REQUEST } from 'shared-interfaces'; +import { PlaylistMeta, STALKER_REQUEST } from '@iptvnator/shared/interfaces'; import { createLogger } from '@iptvnator/portal/shared/util'; -import { DataService } from 'services'; +import { DataService } from '@iptvnator/services'; import { StalkerSessionService } from '../../stalker-session.service'; import { toStalkerSessionPlaylist } from '../utils'; diff --git a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-recent.feature.ts b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-recent.feature.ts index 777c7ee9c..d1f434027 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-recent.feature.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-recent.feature.ts @@ -1,8 +1,8 @@ import { inject } from '@angular/core'; import { signalStoreFeature, withMethods } from '@ngrx/signals'; import { Store } from '@ngrx/store'; -import { PlaylistsService } from 'services'; -import { PlaylistMeta, StalkerPortalItem } from 'shared-interfaces'; +import { PlaylistsService } from '@iptvnator/services'; +import { PlaylistMeta, StalkerPortalItem } from '@iptvnator/shared/interfaces'; import { createLogger } from '@iptvnator/portal/shared/util'; import { StalkerContentType } from '../stalker-store.contracts'; import { diff --git a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-series.feature.ts b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-series.feature.ts index 1d9989a60..d545fdc4f 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-series.feature.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/features/with-stalker-series.feature.ts @@ -8,8 +8,8 @@ import { withState, } from '@ngrx/signals'; import { createLogger } from '@iptvnator/portal/shared/util'; -import { DataService } from 'services'; -import { StalkerPortalActions } from 'shared-interfaces'; +import { DataService } from '@iptvnator/services'; +import { StalkerPortalActions } from '@iptvnator/shared/interfaces'; import { StalkerSeason, StalkerVodSeriesEpisode, diff --git a/libs/portal/stalker/data-access/src/lib/stores/stalker-store.contracts.ts b/libs/portal/stalker/data-access/src/lib/stores/stalker-store.contracts.ts index a9e28c078..3240a1d6b 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/stalker-store.contracts.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/stalker-store.contracts.ts @@ -1,4 +1,4 @@ -import { PlaylistMeta, StalkerPortalItem } from 'shared-interfaces'; +import { PlaylistMeta, StalkerPortalItem } from '@iptvnator/shared/interfaces'; import { StalkerCategoryItem, StalkerContentItem, diff --git a/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-collection-persistence.utils.ts b/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-collection-persistence.utils.ts index 66a69e2a1..fa7968792 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-collection-persistence.utils.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-collection-persistence.utils.ts @@ -1,6 +1,6 @@ import { Store } from '@ngrx/store'; -import { PlaylistActions } from 'm3u-state'; -import { PlaylistMeta, StalkerPortalItem } from 'shared-interfaces'; +import { PlaylistActions } from '@iptvnator/m3u-state'; +import { PlaylistMeta, StalkerPortalItem } from '@iptvnator/shared/interfaces'; import { normalizeStalkerEntityId } from '../../stalker-vod.utils'; import { StalkerContentType, diff --git a/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-player-request.utils.spec.ts b/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-player-request.utils.spec.ts index 138ac6c5a..f625d5438 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-player-request.utils.spec.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-player-request.utils.spec.ts @@ -1,4 +1,4 @@ -import { PlaylistMeta, StalkerPortalActions } from 'shared-interfaces'; +import { PlaylistMeta, StalkerPortalActions } from '@iptvnator/shared/interfaces'; import { StalkerSessionService } from '../../stalker-session.service'; import { fetchStalkerExpireDate, diff --git a/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-player-request.utils.ts b/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-player-request.utils.ts index cc2c0f110..e4cfa2723 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-player-request.utils.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-player-request.utils.ts @@ -1,9 +1,9 @@ -import { DataService } from 'services'; +import { DataService } from '@iptvnator/services'; import { PlaylistMeta, StalkerPortalActions, StalkerPortalItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { StalkerSessionService } from '../../stalker-session.service'; import { StalkerContentTypes } from '../../stalker-content-types'; import { StalkerContentType } from '../stalker-store.contracts'; diff --git a/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-request.utils.ts b/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-request.utils.ts index a9edff924..bc61bd959 100644 --- a/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-request.utils.ts +++ b/libs/portal/stalker/data-access/src/lib/stores/utils/stalker-request.utils.ts @@ -1,5 +1,5 @@ -import { DataService } from 'services'; -import { Playlist, PlaylistMeta, STALKER_REQUEST } from 'shared-interfaces'; +import { DataService } from '@iptvnator/services'; +import { Playlist, PlaylistMeta, STALKER_REQUEST } from '@iptvnator/shared/interfaces'; import { StalkerSessionService } from '../../stalker-session.service'; export interface StalkerRequestDeps { diff --git a/libs/portal/stalker/feature/src/lib/stalker-catalog-detail/stalker-catalog-detail.component.ts b/libs/portal/stalker/feature/src/lib/stalker-catalog-detail/stalker-catalog-detail.component.ts index af930133f..b0bc3d68e 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-catalog-detail/stalker-catalog-detail.component.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-catalog-detail/stalker-catalog-detail.component.ts @@ -29,14 +29,14 @@ import { type PlaybackFallbackRequest, VodDetailsComponent, } from '@iptvnator/ui/playback'; -import { DownloadsService, PlaylistsService } from 'services'; +import { DownloadsService, PlaylistsService } from '@iptvnator/services'; import { createStalkerVodItem, PlaybackPositionData, ResolvedPortalPlayback, StalkerVodDetails, VodDetailsItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { StalkerCatalogFacadeService } from '../stalker-catalog-facade.service'; import { StalkerSeriesViewComponent } from '../stalker-series-view/stalker-series-view.component'; diff --git a/libs/portal/stalker/feature/src/lib/stalker-catalog-facade.service.spec.ts b/libs/portal/stalker/feature/src/lib/stalker-catalog-facade.service.spec.ts index 94ec2a0ee..60eb1594f 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-catalog-facade.service.spec.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-catalog-facade.service.spec.ts @@ -2,7 +2,7 @@ import { signal } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { StalkerStore } from '@iptvnator/portal/stalker/data-access'; import { PORTAL_PLAYBACK_POSITIONS } from '@iptvnator/portal/shared/util'; -import { PlaybackPositionData } from 'shared-interfaces'; +import { PlaybackPositionData } from '@iptvnator/shared/interfaces'; import { StalkerCatalogFacadeService } from './stalker-catalog-facade.service'; describe('StalkerCatalogFacadeService', () => { diff --git a/libs/portal/stalker/feature/src/lib/stalker-catalog-facade.service.ts b/libs/portal/stalker/feature/src/lib/stalker-catalog-facade.service.ts index af053fc4a..ccdadf6e8 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-catalog-facade.service.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-catalog-facade.service.ts @@ -20,7 +20,7 @@ import { PORTAL_PLAYBACK_POSITIONS, StalkerPortalCatalogFacade, } from '@iptvnator/portal/shared/util'; -import { PlaybackPositionData } from 'shared-interfaces'; +import { PlaybackPositionData } from '@iptvnator/shared/interfaces'; function calculateProgress(position: PlaybackPositionData | undefined): number { if (!position || !position.durationSeconds) { diff --git a/libs/portal/stalker/feature/src/lib/stalker-collection-channels-list/stalker-collection-channels-list.component.spec.ts b/libs/portal/stalker/feature/src/lib/stalker-collection-channels-list/stalker-collection-channels-list.component.spec.ts index aefcf0f9d..625cac098 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-collection-channels-list/stalker-collection-channels-list.component.spec.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-collection-channels-list/stalker-collection-channels-list.component.spec.ts @@ -2,8 +2,8 @@ import { Component, input, output, signal } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { MockPipe } from 'ng-mocks'; import { TranslatePipe } from '@ngx-translate/core'; -import { ChannelListItemComponent } from 'components'; -import { EpgProgram } from 'shared-interfaces'; +import { ChannelListItemComponent } from '@iptvnator/ui/components'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; import { StalkerStore } from '@iptvnator/portal/stalker/data-access'; import { StalkerCollectionChannelsListComponent } from './stalker-collection-channels-list.component'; diff --git a/libs/portal/stalker/feature/src/lib/stalker-collection-channels-list/stalker-collection-channels-list.component.ts b/libs/portal/stalker/feature/src/lib/stalker-collection-channels-list/stalker-collection-channels-list.component.ts index c67a4f259..58b52492e 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-collection-channels-list/stalker-collection-channels-list.component.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-collection-channels-list/stalker-collection-channels-list.component.ts @@ -12,8 +12,8 @@ import { import { FormsModule } from '@angular/forms'; import { MatIconModule } from '@angular/material/icon'; import { TranslatePipe } from '@ngx-translate/core'; -import { ChannelListItemComponent } from 'components'; -import { EpgProgram } from 'shared-interfaces'; +import { ChannelListItemComponent } from '@iptvnator/ui/components'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; import { StalkerVodSource } from '@iptvnator/portal/stalker/data-access'; import { normalizeStalkerEntityId } from '@iptvnator/portal/stalker/data-access'; import { StalkerStore } from '@iptvnator/portal/stalker/data-access'; diff --git a/libs/portal/stalker/feature/src/lib/stalker-collection-detail.component.spec.ts b/libs/portal/stalker/feature/src/lib/stalker-collection-detail.component.spec.ts index da8218ae5..e856120ac 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-collection-detail.component.spec.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-collection-detail.component.spec.ts @@ -2,7 +2,7 @@ import { Component, input, output, signal } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { MatSnackBar } from '@angular/material/snack-bar'; import { TranslateService } from '@ngx-translate/core'; -import { ContentHeroComponent } from 'components'; +import { ContentHeroComponent } from '@iptvnator/ui/components'; import { PORTAL_EXTERNAL_PLAYBACK, PORTAL_PLAYBACK_POSITIONS, @@ -10,13 +10,13 @@ import { UnifiedCollectionItem, } from '@iptvnator/portal/shared/util'; import { StalkerStore } from '@iptvnator/portal/stalker/data-access'; -import { PlaylistsService } from 'services'; +import { PlaylistsService } from '@iptvnator/services'; import { Playlist, ResolvedPortalPlayback, VodDetailsItem, createStalkerVodItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { of } from 'rxjs'; import { StalkerCollectionDetailComponent } from './stalker-collection-detail.component'; import { StalkerInlineDetailComponent } from './stalker-inline-detail/stalker-inline-detail.component'; diff --git a/libs/portal/stalker/feature/src/lib/stalker-collection-detail.component.ts b/libs/portal/stalker/feature/src/lib/stalker-collection-detail.component.ts index a38f26a68..785376dac 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-collection-detail.component.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-collection-detail.component.ts @@ -11,7 +11,7 @@ import { } from '@angular/core'; import { MatSnackBar } from '@angular/material/snack-bar'; import { TranslateService } from '@ngx-translate/core'; -import { ContentHeroComponent } from 'components'; +import { ContentHeroComponent } from '@iptvnator/ui/components'; import { buildStalkerStateItem, createLogger, @@ -36,14 +36,14 @@ import { toggleStalkerVodFavorite, } from '@iptvnator/portal/stalker/data-access'; import type { PlaybackFallbackRequest } from '@iptvnator/ui/playback'; -import { PlaylistsService } from 'services'; +import { PlaylistsService } from '@iptvnator/services'; import { PlaybackPositionData, Playlist, ResolvedPortalPlayback, StalkerPortalItem, VodDetailsItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { firstValueFrom } from 'rxjs'; import { StalkerInlineDetailComponent } from './stalker-inline-detail/stalker-inline-detail.component'; import { StalkerVodPlaybackController } from './stalker-vod-playback-controller'; diff --git a/libs/portal/stalker/feature/src/lib/stalker-favorites-button/stalker-favorites-button.component.spec.ts b/libs/portal/stalker/feature/src/lib/stalker-favorites-button/stalker-favorites-button.component.spec.ts index 237ad0907..ff7cf141f 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-favorites-button/stalker-favorites-button.component.spec.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-favorites-button/stalker-favorites-button.component.spec.ts @@ -3,7 +3,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { TranslateModule } from '@ngx-translate/core'; import { StalkerStore } from '@iptvnator/portal/stalker/data-access'; -import { PlaylistsService } from 'services'; +import { PlaylistsService } from '@iptvnator/services'; import { of } from 'rxjs'; import { FavoritesButtonComponent } from './stalker-favorites-button.component'; diff --git a/libs/portal/stalker/feature/src/lib/stalker-favorites-button/stalker-favorites-button.component.ts b/libs/portal/stalker/feature/src/lib/stalker-favorites-button/stalker-favorites-button.component.ts index 2acc460e9..03eb10750 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-favorites-button/stalker-favorites-button.component.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-favorites-button/stalker-favorites-button.component.ts @@ -3,7 +3,7 @@ import { Component, inject, input } from '@angular/core'; import { MatIconModule } from '@angular/material/icon'; import { TranslateModule } from '@ngx-translate/core'; import { BehaviorSubject, map, switchMap } from 'rxjs'; -import { PlaylistsService } from 'services'; +import { PlaylistsService } from '@iptvnator/services'; import { StalkerStore } from '@iptvnator/portal/stalker/data-access'; import { matchesFavoriteById, diff --git a/libs/portal/stalker/feature/src/lib/stalker-inline-detail/stalker-inline-detail.component.ts b/libs/portal/stalker/feature/src/lib/stalker-inline-detail/stalker-inline-detail.component.ts index 51fde5c2b..38f4fdea1 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-inline-detail/stalker-inline-detail.component.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-inline-detail/stalker-inline-detail.component.ts @@ -13,7 +13,7 @@ import { ExternalPlayerSession, ResolvedPortalPlayback, VodDetailsItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { StalkerSeriesViewComponent } from '../stalker-series-view/stalker-series-view.component'; @Component({ diff --git a/libs/portal/stalker/feature/src/lib/stalker-live-stream-layout/stalker-live-stream-layout.component.spec.ts b/libs/portal/stalker/feature/src/lib/stalker-live-stream-layout/stalker-live-stream-layout.component.spec.ts index 7e268b67a..57b387b41 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-live-stream-layout/stalker-live-stream-layout.component.spec.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-live-stream-layout/stalker-live-stream-layout.component.spec.ts @@ -13,16 +13,16 @@ import { StalkerStore } from '@iptvnator/portal/stalker/data-access'; import { EpgListComponent } from '@iptvnator/ui/epg'; import { AudioPlayerComponent } from '@iptvnator/ui/playback'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; -import { ChannelListItemComponent } from 'components'; +import { ChannelListItemComponent } from '@iptvnator/ui/components'; import { MockPipe } from 'ng-mocks'; import { of } from 'rxjs'; -import { PlaylistsService, SettingsStore } from 'services'; -import { EpgProgram } from 'shared-interfaces'; +import { PlaylistsService, SettingsStore } from '@iptvnator/services'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; import { LiveEpgPanelComponent, LiveEpgPanelSummary, WebPlayerViewComponent, -} from 'shared-portals'; +} from '@iptvnator/ui/shared-portals'; import { StalkerLiveStreamLayoutComponent } from './stalker-live-stream-layout.component'; @Component({ diff --git a/libs/portal/stalker/feature/src/lib/stalker-live-stream-layout/stalker-live-stream-layout.component.ts b/libs/portal/stalker/feature/src/lib/stalker-live-stream-layout/stalker-live-stream-layout.component.ts index bb70d154d..d250a277c 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-live-stream-layout/stalker-live-stream-layout.component.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-live-stream-layout/stalker-live-stream-layout.component.ts @@ -24,14 +24,14 @@ import { ChannelListItemComponent, ChannelListSkeletonComponent, ResizableDirective, -} from 'components'; -import { PlaylistsService, SettingsStore } from 'services'; +} from '@iptvnator/ui/components'; +import { PlaylistsService, SettingsStore } from '@iptvnator/services'; import { Channel, EpgItem, EpgProgram, ResolvedPortalPlayback, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { EpgDateNavigationDirection, EpgListComponent, @@ -44,7 +44,7 @@ import { LiveEpgPanelSummary, type PlaybackFallbackRequest, WebPlayerViewComponent, -} from 'shared-portals'; +} from '@iptvnator/ui/shared-portals'; import { LiveLayoutSidebarStateService, PORTAL_PLAYER, diff --git a/libs/portal/stalker/feature/src/lib/stalker-search/stalker-search.component.ts b/libs/portal/stalker/feature/src/lib/stalker-search/stalker-search.component.ts index d2b473625..e2ba5695d 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-search/stalker-search.component.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-search/stalker-search.component.ts @@ -13,7 +13,7 @@ import { MatSnackBar } from '@angular/material/snack-bar'; import { ActivatedRoute } from '@angular/router'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; import { StalkerSessionService } from '@iptvnator/portal/stalker/data-access'; -import { DataService, PlaylistsService } from 'services'; +import { DataService, PlaylistsService } from '@iptvnator/services'; import { PlaybackPositionData, Playlist, @@ -21,7 +21,7 @@ import { STALKER_REQUEST, StalkerPortalActions, VodDetailsItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import type { PlaybackFallbackRequest } from '@iptvnator/ui/playback'; import { ContentCardComponent } from '@iptvnator/portal/shared/ui'; import { SearchLayoutComponent } from '@iptvnator/portal/shared/ui'; diff --git a/libs/portal/stalker/feature/src/lib/stalker-series-view/stalker-series-quick-start.ts b/libs/portal/stalker/feature/src/lib/stalker-series-view/stalker-series-quick-start.ts index 33f32ec94..a94388d7c 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-series-view/stalker-series-quick-start.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-series-view/stalker-series-quick-start.ts @@ -11,7 +11,7 @@ import { import type { PlaybackPositionData, XtreamSerieEpisode, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; export interface StalkerQuickStartButton { labelKey: string; diff --git a/libs/portal/stalker/feature/src/lib/stalker-series-view/stalker-series-view.component.spec.ts b/libs/portal/stalker/feature/src/lib/stalker-series-view/stalker-series-view.component.spec.ts index 758b31db0..8986cb0d2 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-series-view/stalker-series-view.component.spec.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-series-view/stalker-series-view.component.spec.ts @@ -4,7 +4,7 @@ import { Router } from '@angular/router'; import { MatSnackBar } from '@angular/material/snack-bar'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; import { MockPipe } from 'ng-mocks'; -import { ContentHeroComponent, SeasonContainerComponent } from 'components'; +import { ContentHeroComponent, SeasonContainerComponent } from '@iptvnator/ui/components'; import { PORTAL_EXTERNAL_PLAYBACK, PORTAL_PLAYBACK_POSITIONS, @@ -14,9 +14,9 @@ import { StalkerStore, StalkerVodSource, } from '@iptvnator/portal/stalker/data-access'; -import { PlaybackPositionData } from 'shared-interfaces'; +import { PlaybackPositionData } from '@iptvnator/shared/interfaces'; import { PortalInlinePlayerComponent } from '@iptvnator/ui/playback'; -import { DownloadsService } from 'services'; +import { DownloadsService } from '@iptvnator/services'; import { of } from 'rxjs'; import { FavoritesButtonComponent } from '../stalker-favorites-button/stalker-favorites-button.component'; import { StalkerSeriesViewComponent } from './stalker-series-view.component'; diff --git a/libs/portal/stalker/feature/src/lib/stalker-series-view/stalker-series-view.component.ts b/libs/portal/stalker/feature/src/lib/stalker-series-view/stalker-series-view.component.ts index 1c8ec47df..1df5faad2 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-series-view/stalker-series-view.component.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-series-view/stalker-series-view.component.ts @@ -17,12 +17,12 @@ import { ContentHeroComponent, SeasonContainerComponent, SeasonContainerPlaybackToggleRequest, -} from 'components'; +} from '@iptvnator/ui/components'; import { PlaybackPositionData, ResolvedPortalPlayback, XtreamSerieEpisode, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { PORTAL_EXTERNAL_PLAYBACK, PORTAL_PLAYBACK_POSITIONS, @@ -49,7 +49,7 @@ import { type PlaybackFallbackRequest, PortalInlinePlayerComponent, } from '@iptvnator/ui/playback'; -import { DownloadsService } from 'services'; +import { DownloadsService } from '@iptvnator/services'; import { getStalkerSeriesQuickStartButton, type StalkerQuickStartButton, diff --git a/libs/portal/stalker/feature/src/lib/stalker-vod-playback-controller.spec.ts b/libs/portal/stalker/feature/src/lib/stalker-vod-playback-controller.spec.ts index c9b2a1b13..ba1c94ae5 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-vod-playback-controller.spec.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-vod-playback-controller.spec.ts @@ -6,7 +6,7 @@ import type { PortalPlaybackPositions, PortalPlayer, } from '@iptvnator/portal/shared/util'; -import type { PlaybackPositionData } from 'shared-interfaces'; +import type { PlaybackPositionData } from '@iptvnator/shared/interfaces'; import { StalkerVodPlaybackController } from './stalker-vod-playback-controller'; interface Deferred { diff --git a/libs/portal/stalker/feature/src/lib/stalker-vod-playback-controller.ts b/libs/portal/stalker/feature/src/lib/stalker-vod-playback-controller.ts index 87cd75419..27bc985f3 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-vod-playback-controller.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-vod-playback-controller.ts @@ -10,7 +10,7 @@ import type { PlaybackFallbackRequest } from '@iptvnator/ui/playback'; import { PlaybackPositionData, ResolvedPortalPlayback, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; interface StalkerVodPlaybackControllerConfig { inlinePlayback: WritableSignal; diff --git a/libs/portal/stalker/feature/src/lib/stalker-workspace-route-session.service.spec.ts b/libs/portal/stalker/feature/src/lib/stalker-workspace-route-session.service.spec.ts index abf8e150e..9c0e7eccb 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-workspace-route-session.service.spec.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-workspace-route-session.service.spec.ts @@ -4,8 +4,8 @@ import { NavigationEnd, Router } from '@angular/router'; import { Subject, of } from 'rxjs'; import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; import { StalkerStore } from '@iptvnator/portal/stalker/data-access'; -import { PlaylistsService } from 'services'; -import { PlaylistMeta } from 'shared-interfaces'; +import { PlaylistsService } from '@iptvnator/services'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { StalkerWorkspaceRouteSession } from './stalker-workspace-route-session.service'; const PLAYLIST_ID = 'stalker-1'; diff --git a/libs/portal/stalker/feature/src/lib/stalker-workspace-route-session.service.ts b/libs/portal/stalker/feature/src/lib/stalker-workspace-route-session.service.ts index 9601c70ee..5248d2b5c 100644 --- a/libs/portal/stalker/feature/src/lib/stalker-workspace-route-session.service.ts +++ b/libs/portal/stalker/feature/src/lib/stalker-workspace-route-session.service.ts @@ -15,7 +15,7 @@ import { StalkerContentType, StalkerStore, } from '@iptvnator/portal/stalker/data-access'; -import { PlaylistsService } from 'services'; +import { PlaylistsService } from '@iptvnator/services'; @Injectable() export class StalkerWorkspaceRouteSession { diff --git a/libs/portal/xtream/data-access/src/lib/data-sources/electron-xtream-data-source.ts b/libs/portal/xtream/data-access/src/lib/data-sources/electron-xtream-data-source.ts index cfccd8ae1..111180599 100644 --- a/libs/portal/xtream/data-access/src/lib/data-sources/electron-xtream-data-source.ts +++ b/libs/portal/xtream/data-access/src/lib/data-sources/electron-xtream-data-source.ts @@ -4,7 +4,7 @@ import { PlaybackPositionService, XtreamPendingRestoreService, XtreamImportStatus, -} from 'services'; +} from '@iptvnator/services'; import { PlaybackPositionData, PlaylistMeta, @@ -13,7 +13,7 @@ import { XtreamLiveStream, XtreamSerieItem, XtreamVodStream, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { CategoryType, StreamType, diff --git a/libs/portal/xtream/data-access/src/lib/data-sources/pwa-xtream-data-source.ts b/libs/portal/xtream/data-access/src/lib/data-sources/pwa-xtream-data-source.ts index 115865ef2..26d3b3e70 100644 --- a/libs/portal/xtream/data-access/src/lib/data-sources/pwa-xtream-data-source.ts +++ b/libs/portal/xtream/data-access/src/lib/data-sources/pwa-xtream-data-source.ts @@ -6,7 +6,7 @@ import { XtreamLiveStream, XtreamSerieItem, XtreamVodStream, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { createLogger } from '@iptvnator/portal/shared/util'; import { CategoryType, diff --git a/libs/portal/xtream/data-access/src/lib/data-sources/xtream-data-source.interface.ts b/libs/portal/xtream/data-access/src/lib/data-sources/xtream-data-source.interface.ts index 45634d602..af2ee954c 100644 --- a/libs/portal/xtream/data-access/src/lib/data-sources/xtream-data-source.interface.ts +++ b/libs/portal/xtream/data-access/src/lib/data-sources/xtream-data-source.interface.ts @@ -6,8 +6,8 @@ import { XtreamLiveStream, XtreamSerieItem, XtreamVodStream, -} from 'shared-interfaces'; -import type { DbOperationEvent } from 'services'; +} from '@iptvnator/shared/interfaces'; +import type { DbOperationEvent } from '@iptvnator/services'; import { CategoryType, StreamType, diff --git a/libs/portal/xtream/data-access/src/lib/services/epg-queue.service.spec.ts b/libs/portal/xtream/data-access/src/lib/services/epg-queue.service.spec.ts index b0e199ebe..3aa315f41 100644 --- a/libs/portal/xtream/data-access/src/lib/services/epg-queue.service.spec.ts +++ b/libs/portal/xtream/data-access/src/lib/services/epg-queue.service.spec.ts @@ -1,9 +1,9 @@ import { TestBed } from '@angular/core/testing'; -import { SettingsStore } from 'services'; +import { SettingsStore } from '@iptvnator/services'; import { EpgQueueService } from './epg-queue.service'; import { XtreamApiService } from './xtream-api.service'; import { XtreamXmltvFallbackService } from './xtream-xmltv-fallback.service'; -import type { EpgItem } from 'shared-interfaces'; +import type { EpgItem } from '@iptvnator/shared/interfaces'; describe('EpgQueueService', () => { let service: EpgQueueService; diff --git a/libs/portal/xtream/data-access/src/lib/services/epg-queue.service.ts b/libs/portal/xtream/data-access/src/lib/services/epg-queue.service.ts index b26e3ec2a..0b067b705 100644 --- a/libs/portal/xtream/data-access/src/lib/services/epg-queue.service.ts +++ b/libs/portal/xtream/data-access/src/lib/services/epg-queue.service.ts @@ -1,7 +1,7 @@ import { inject, Injectable, OnDestroy } from '@angular/core'; import { Subject } from 'rxjs'; -import { EpgItem } from 'shared-interfaces'; -import { SettingsStore } from 'services'; +import { EpgItem } from '@iptvnator/shared/interfaces'; +import { SettingsStore } from '@iptvnator/services'; import { XtreamApiService, XtreamCredentials } from './xtream-api.service'; import { XtreamXmltvFallbackService } from './xtream-xmltv-fallback.service'; import { createLogger } from '@iptvnator/portal/shared/util'; diff --git a/libs/portal/xtream/data-access/src/lib/services/favorites.service.ts b/libs/portal/xtream/data-access/src/lib/services/favorites.service.ts index b3ad6b290..7d6ea7ff5 100644 --- a/libs/portal/xtream/data-access/src/lib/services/favorites.service.ts +++ b/libs/portal/xtream/data-access/src/lib/services/favorites.service.ts @@ -1,6 +1,6 @@ import { inject, Injectable } from '@angular/core'; import { from, map, Observable } from 'rxjs'; -import { DatabaseService } from 'services'; +import { DatabaseService } from '@iptvnator/services'; import { FavoriteItem } from './favorite-item.interface'; @Injectable({ diff --git a/libs/portal/xtream/data-access/src/lib/services/xtream-api.service.spec.ts b/libs/portal/xtream/data-access/src/lib/services/xtream-api.service.spec.ts index 598616b62..c70fa35ed 100644 --- a/libs/portal/xtream/data-access/src/lib/services/xtream-api.service.spec.ts +++ b/libs/portal/xtream/data-access/src/lib/services/xtream-api.service.spec.ts @@ -1,6 +1,6 @@ import { TestBed } from '@angular/core/testing'; -import { DataService } from 'services'; -import { XTREAM_REQUEST } from 'shared-interfaces'; +import { DataService } from '@iptvnator/services'; +import { XTREAM_REQUEST } from '@iptvnator/shared/interfaces'; import { XtreamApiService, XtreamCredentials } from './xtream-api.service'; describe('XtreamApiService', () => { diff --git a/libs/portal/xtream/data-access/src/lib/services/xtream-api.service.ts b/libs/portal/xtream/data-access/src/lib/services/xtream-api.service.ts index 48ac17abd..23a9efb6c 100644 --- a/libs/portal/xtream/data-access/src/lib/services/xtream-api.service.ts +++ b/libs/portal/xtream/data-access/src/lib/services/xtream-api.service.ts @@ -1,5 +1,5 @@ import { inject, Injectable } from '@angular/core'; -import { DataService } from 'services'; +import { DataService } from '@iptvnator/services'; import { EpgItem, XtreamCategory, @@ -10,7 +10,7 @@ import { XtreamVodDetails, XtreamVodStream, XTREAM_REQUEST, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { XtreamAccountInfo } from '../account-info/account-info.interface'; /** diff --git a/libs/portal/xtream/data-access/src/lib/services/xtream-url.service.spec.ts b/libs/portal/xtream/data-access/src/lib/services/xtream-url.service.spec.ts index 2cf32156b..a0c214fb4 100644 --- a/libs/portal/xtream/data-access/src/lib/services/xtream-url.service.spec.ts +++ b/libs/portal/xtream/data-access/src/lib/services/xtream-url.service.spec.ts @@ -1,6 +1,6 @@ import { signal } from '@angular/core'; import { TestBed } from '@angular/core/testing'; -import { DatabaseService, SettingsStore } from 'services'; +import { DatabaseService, SettingsStore } from '@iptvnator/services'; import { XtreamCredentials } from './xtream-api.service'; import { XtreamUrlService } from './xtream-url.service'; diff --git a/libs/portal/xtream/data-access/src/lib/services/xtream-url.service.ts b/libs/portal/xtream/data-access/src/lib/services/xtream-url.service.ts index 0d63c0937..53e3d13c3 100644 --- a/libs/portal/xtream/data-access/src/lib/services/xtream-url.service.ts +++ b/libs/portal/xtream/data-access/src/lib/services/xtream-url.service.ts @@ -2,8 +2,8 @@ import { inject, Injectable } from '@angular/core'; import { XtreamSerieEpisode, XtreamVodDetails, -} from 'shared-interfaces'; -import { DatabaseService, SettingsStore } from 'services'; +} from '@iptvnator/shared/interfaces'; +import { DatabaseService, SettingsStore } from '@iptvnator/services'; import { XtreamCredentials } from './xtream-api.service'; /** diff --git a/libs/portal/xtream/data-access/src/lib/services/xtream-xmltv-fallback.service.spec.ts b/libs/portal/xtream/data-access/src/lib/services/xtream-xmltv-fallback.service.spec.ts index 2233f28b8..a0953c1f8 100644 --- a/libs/portal/xtream/data-access/src/lib/services/xtream-xmltv-fallback.service.spec.ts +++ b/libs/portal/xtream/data-access/src/lib/services/xtream-xmltv-fallback.service.spec.ts @@ -1,5 +1,5 @@ import { TestBed } from '@angular/core/testing'; -import { EpgProgram } from 'shared-interfaces'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; import { XtreamXmltvFallbackService } from './xtream-xmltv-fallback.service'; jest.mock('@iptvnator/portal/shared/util', () => ({ diff --git a/libs/portal/xtream/data-access/src/lib/services/xtream-xmltv-fallback.service.ts b/libs/portal/xtream/data-access/src/lib/services/xtream-xmltv-fallback.service.ts index 140e96369..1da388e88 100644 --- a/libs/portal/xtream/data-access/src/lib/services/xtream-xmltv-fallback.service.ts +++ b/libs/portal/xtream/data-access/src/lib/services/xtream-xmltv-fallback.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { EpgItem, EpgProgram } from 'shared-interfaces'; +import { EpgItem, EpgProgram } from '@iptvnator/shared/interfaces'; import { createLogger } from '@iptvnator/portal/shared/util'; type ElectronEpgBridge = { diff --git a/libs/portal/xtream/data-access/src/lib/stores/features/with-content.feature.spec.ts b/libs/portal/xtream/data-access/src/lib/stores/features/with-content.feature.spec.ts index 80207ca94..a8f1bac48 100644 --- a/libs/portal/xtream/data-access/src/lib/stores/features/with-content.feature.spec.ts +++ b/libs/portal/xtream/data-access/src/lib/stores/features/with-content.feature.spec.ts @@ -1,6 +1,6 @@ import { TestBed } from '@angular/core/testing'; import { patchState, signalStore, withMethods, withState } from '@ngrx/signals'; -import { DatabaseService } from 'services'; +import { DatabaseService } from '@iptvnator/services'; import { XTREAM_DATA_SOURCE, XtreamPlaylistData, diff --git a/libs/portal/xtream/data-access/src/lib/stores/features/with-content.feature.ts b/libs/portal/xtream/data-access/src/lib/stores/features/with-content.feature.ts index bbd678193..3b5a73166 100644 --- a/libs/portal/xtream/data-access/src/lib/stores/features/with-content.feature.ts +++ b/libs/portal/xtream/data-access/src/lib/stores/features/with-content.feature.ts @@ -11,7 +11,7 @@ import { XtreamLiveStream, XtreamSerieItem, XtreamVodStream, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { createLogger } from '@iptvnator/portal/shared/util'; import { DatabaseService, @@ -19,7 +19,7 @@ import { isDbAbortError, XtreamPendingRestoreService, XtreamImportStatus, -} from 'services'; +} from '@iptvnator/services'; import { DbCategoryType, XTREAM_DATA_SOURCE, diff --git a/libs/portal/xtream/data-access/src/lib/stores/features/with-epg.feature.spec.ts b/libs/portal/xtream/data-access/src/lib/stores/features/with-epg.feature.spec.ts index c27223632..48c6a432b 100644 --- a/libs/portal/xtream/data-access/src/lib/stores/features/with-epg.feature.spec.ts +++ b/libs/portal/xtream/data-access/src/lib/stores/features/with-epg.feature.spec.ts @@ -1,7 +1,7 @@ import { TestBed } from '@angular/core/testing'; import { signalStore, withState } from '@ngrx/signals'; -import { DataService, SettingsStore } from 'services'; -import { EpgItem } from 'shared-interfaces'; +import { DataService, SettingsStore } from '@iptvnator/services'; +import { EpgItem } from '@iptvnator/shared/interfaces'; import { XtreamApiService } from '../../services/xtream-api.service'; import { XtreamXmltvFallbackService } from '../../services/xtream-xmltv-fallback.service'; import { withEpg } from './with-epg.feature'; diff --git a/libs/portal/xtream/data-access/src/lib/stores/features/with-epg.feature.ts b/libs/portal/xtream/data-access/src/lib/stores/features/with-epg.feature.ts index 37c6a83de..ed00cd453 100644 --- a/libs/portal/xtream/data-access/src/lib/stores/features/with-epg.feature.ts +++ b/libs/portal/xtream/data-access/src/lib/stores/features/with-epg.feature.ts @@ -6,8 +6,8 @@ import { withMethods, withState, } from '@ngrx/signals'; -import { EpgItem } from 'shared-interfaces'; -import { DataService, SettingsStore } from 'services'; +import { EpgItem } from '@iptvnator/shared/interfaces'; +import { DataService, SettingsStore } from '@iptvnator/services'; import { XtreamApiService, XtreamCredentials, diff --git a/libs/portal/xtream/data-access/src/lib/stores/features/with-playback-positions.feature.ts b/libs/portal/xtream/data-access/src/lib/stores/features/with-playback-positions.feature.ts index 9b9db04ff..d20c5e4e4 100644 --- a/libs/portal/xtream/data-access/src/lib/stores/features/with-playback-positions.feature.ts +++ b/libs/portal/xtream/data-access/src/lib/stores/features/with-playback-positions.feature.ts @@ -6,7 +6,7 @@ import { withMethods, withState, } from '@ngrx/signals'; -import { XtreamSerieEpisode } from 'shared-interfaces'; +import { XtreamSerieEpisode } from '@iptvnator/shared/interfaces'; import { PlaybackPositionData, XTREAM_DATA_SOURCE, diff --git a/libs/portal/xtream/data-access/src/lib/stores/features/with-player.feature.ts b/libs/portal/xtream/data-access/src/lib/stores/features/with-player.feature.ts index 30d909923..27fd022b5 100644 --- a/libs/portal/xtream/data-access/src/lib/stores/features/with-player.feature.ts +++ b/libs/portal/xtream/data-access/src/lib/stores/features/with-player.feature.ts @@ -6,7 +6,7 @@ import { withState, } from '@ngrx/signals'; import { PORTAL_PLAYER } from '@iptvnator/portal/shared/util'; -import { XtreamSerieEpisode, XtreamVodDetails } from 'shared-interfaces'; +import { XtreamSerieEpisode, XtreamVodDetails } from '@iptvnator/shared/interfaces'; import { XtreamCredentials } from '../../services/xtream-api.service'; import { XtreamUrlService } from '../../services/xtream-url.service'; diff --git a/libs/portal/xtream/data-access/src/lib/stores/features/with-search.feature.ts b/libs/portal/xtream/data-access/src/lib/stores/features/with-search.feature.ts index 46c17fd66..39338be01 100644 --- a/libs/portal/xtream/data-access/src/lib/stores/features/with-search.feature.ts +++ b/libs/portal/xtream/data-access/src/lib/stores/features/with-search.feature.ts @@ -5,7 +5,7 @@ import { withMethods, withState, } from '@ngrx/signals'; -import { GlobalSearchResult } from 'services'; +import { GlobalSearchResult } from '@iptvnator/services'; import { XTREAM_DATA_SOURCE, XtreamContentItem, diff --git a/libs/portal/xtream/data-access/src/lib/stores/xtream.store.ts b/libs/portal/xtream/data-access/src/lib/stores/xtream.store.ts index 52bb775a8..9ab97fbd6 100644 --- a/libs/portal/xtream/data-access/src/lib/stores/xtream.store.ts +++ b/libs/portal/xtream/data-access/src/lib/stores/xtream.store.ts @@ -1,6 +1,6 @@ import { computed, inject } from '@angular/core'; import { signalStore, withComputed, withMethods } from '@ngrx/signals'; -import { XtreamSerieDetails, XtreamVodDetails } from 'shared-interfaces'; +import { XtreamSerieDetails, XtreamVodDetails } from '@iptvnator/shared/interfaces'; // Import existing features that are already separate import { withFavorites } from '../with-favorites.feature'; diff --git a/libs/portal/xtream/data-access/src/lib/with-favorites.feature.spec.ts b/libs/portal/xtream/data-access/src/lib/with-favorites.feature.spec.ts index b931d8d1e..8ebc10e40 100644 --- a/libs/portal/xtream/data-access/src/lib/with-favorites.feature.spec.ts +++ b/libs/portal/xtream/data-access/src/lib/with-favorites.feature.spec.ts @@ -1,6 +1,6 @@ import { TestBed } from '@angular/core/testing'; import { patchState, signalStore } from '@ngrx/signals'; -import { DatabaseService } from 'services'; +import { DatabaseService } from '@iptvnator/services'; import { FavoritesService } from './services/favorites.service'; import { withFavorites } from './with-favorites.feature'; diff --git a/libs/portal/xtream/data-access/src/lib/with-favorites.feature.ts b/libs/portal/xtream/data-access/src/lib/with-favorites.feature.ts index 324126864..19dad0f54 100644 --- a/libs/portal/xtream/data-access/src/lib/with-favorites.feature.ts +++ b/libs/portal/xtream/data-access/src/lib/with-favorites.feature.ts @@ -5,7 +5,7 @@ import { withMethods, withState, } from '@ngrx/signals'; -import { DatabaseService } from 'services'; +import { DatabaseService } from '@iptvnator/services'; import { FavoritesService } from './services/favorites.service'; import { createLogger } from '@iptvnator/portal/shared/util'; diff --git a/libs/portal/xtream/data-access/src/lib/with-recent-items.feature.spec.ts b/libs/portal/xtream/data-access/src/lib/with-recent-items.feature.spec.ts index 950f41e2a..c3b4e0bd3 100644 --- a/libs/portal/xtream/data-access/src/lib/with-recent-items.feature.spec.ts +++ b/libs/portal/xtream/data-access/src/lib/with-recent-items.feature.spec.ts @@ -2,7 +2,7 @@ import { signal } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { signalStore } from '@ngrx/signals'; import { of } from 'rxjs'; -import { DatabaseService, PlaylistsService } from 'services'; +import { DatabaseService, PlaylistsService } from '@iptvnator/services'; import { withRecentItems } from './with-recent-items'; jest.mock('@iptvnator/portal/shared/util', () => ({ diff --git a/libs/portal/xtream/data-access/src/lib/with-recent-items.ts b/libs/portal/xtream/data-access/src/lib/with-recent-items.ts index 32e1f6046..a56bd5723 100644 --- a/libs/portal/xtream/data-access/src/lib/with-recent-items.ts +++ b/libs/portal/xtream/data-access/src/lib/with-recent-items.ts @@ -7,12 +7,12 @@ import { } from '@ngrx/signals'; import { rxMethod } from '@ngrx/signals/rxjs-interop'; import { firstValueFrom, pipe, switchMap, tap } from 'rxjs'; -import { DatabaseService, PlaylistsService } from 'services'; +import { DatabaseService, PlaylistsService } from '@iptvnator/services'; import { buildPlaylistRecentItems, Playlist, PortalRecentItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { createLogger } from '@iptvnator/portal/shared/util'; export interface RecentlyViewedItem extends PortalRecentItem { diff --git a/libs/portal/xtream/data-access/src/lib/xtream-state.ts b/libs/portal/xtream/data-access/src/lib/xtream-state.ts index 8410e8262..6ea17eb79 100644 --- a/libs/portal/xtream/data-access/src/lib/xtream-state.ts +++ b/libs/portal/xtream/data-access/src/lib/xtream-state.ts @@ -1,11 +1,11 @@ -import { GlobalSearchResult } from 'services'; +import { GlobalSearchResult } from '@iptvnator/services'; import { EpgItem, XtreamCategory, XtreamLiveStream, XtreamSerieItem, XtreamVodStream, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { XtreamContentItem, XtreamPlaylistData, diff --git a/libs/portal/xtream/feature/src/lib/account-info/account-info.component.ts b/libs/portal/xtream/feature/src/lib/account-info/account-info.component.ts index 80a666238..e114d8531 100644 --- a/libs/portal/xtream/feature/src/lib/account-info/account-info.component.ts +++ b/libs/portal/xtream/feature/src/lib/account-info/account-info.component.ts @@ -15,7 +15,7 @@ import { XtreamStore, } from '@iptvnator/portal/xtream/data-access'; import { createLogger } from '@iptvnator/portal/shared/util'; -import type { XtreamAccountInfoDialogData } from 'shared-interfaces'; +import type { XtreamAccountInfoDialogData } from '@iptvnator/shared/interfaces'; type AccountLoadState = 'loading' | 'ready' | 'error'; diff --git a/libs/portal/xtream/feature/src/lib/category-management-dialog/category-management-dialog.component.ts b/libs/portal/xtream/feature/src/lib/category-management-dialog/category-management-dialog.component.ts index d3faf66fc..c12ffa3be 100644 --- a/libs/portal/xtream/feature/src/lib/category-management-dialog/category-management-dialog.component.ts +++ b/libs/portal/xtream/feature/src/lib/category-management-dialog/category-management-dialog.component.ts @@ -17,7 +17,7 @@ import { MatIconModule } from '@angular/material/icon'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatSnackBar } from '@angular/material/snack-bar'; import { TranslatePipe } from '@ngx-translate/core'; -import { DatabaseService, XCategoryFromDb } from 'services'; +import { DatabaseService, XCategoryFromDb } from '@iptvnator/services'; import { createLogger } from '@iptvnator/portal/shared/util'; export interface CategoryManagementDialogData { diff --git a/libs/portal/xtream/feature/src/lib/live-stream-layout/live-stream-layout.component.spec.ts b/libs/portal/xtream/feature/src/lib/live-stream-layout/live-stream-layout.component.spec.ts index d44ef25f5..c8d93eefd 100644 --- a/libs/portal/xtream/feature/src/lib/live-stream-layout/live-stream-layout.component.spec.ts +++ b/libs/portal/xtream/feature/src/lib/live-stream-layout/live-stream-layout.component.spec.ts @@ -24,11 +24,11 @@ import { LiveEpgPanelComponent, LiveEpgPanelSummary, WebPlayerViewComponent, -} from 'shared-portals'; -import { EpgItem, EpgProgram } from 'shared-interfaces'; +} from '@iptvnator/ui/shared-portals'; +import { EpgItem, EpgProgram } from '@iptvnator/shared/interfaces'; import { PortalChannelsListComponent } from '../portal-channels-list/portal-channels-list.component'; import { LiveStreamLayoutComponent } from './live-stream-layout.component'; -import { SettingsStore } from 'services'; +import { SettingsStore } from '@iptvnator/services'; const LIVE_CHANNEL_SORT_STORAGE_KEY = 'xtream-live-channel-sort-mode'; diff --git a/libs/portal/xtream/feature/src/lib/live-stream-layout/live-stream-layout.component.ts b/libs/portal/xtream/feature/src/lib/live-stream-layout/live-stream-layout.component.ts index 89f08f8e0..0cff81747 100644 --- a/libs/portal/xtream/feature/src/lib/live-stream-layout/live-stream-layout.component.ts +++ b/libs/portal/xtream/feature/src/lib/live-stream-layout/live-stream-layout.component.ts @@ -15,7 +15,7 @@ import { MatIcon } from '@angular/material/icon'; import { MatMenuModule } from '@angular/material/menu'; import { MatTooltipModule } from '@angular/material/tooltip'; import { TranslatePipe } from '@ngx-translate/core'; -import { ResizableDirective } from 'components'; +import { ResizableDirective } from '@iptvnator/ui/components'; import { PortalEmptyStateComponent } from '@iptvnator/portal/shared/ui'; import { LiveLayoutSidebarStateService, @@ -53,11 +53,11 @@ import { LiveEpgPanelSummary, type PlaybackFallbackRequest, WebPlayerViewComponent, -} from 'shared-portals'; -import { EpgItem, EpgProgram, ResolvedPortalPlayback } from 'shared-interfaces'; +} from '@iptvnator/ui/shared-portals'; +import { EpgItem, EpgProgram, ResolvedPortalPlayback } from '@iptvnator/shared/interfaces'; import { PortalChannelsListComponent } from '../portal-channels-list/portal-channels-list.component'; import { ActivatedRoute } from '@angular/router'; -import { SettingsStore } from 'services'; +import { SettingsStore } from '@iptvnator/services'; const LIVE_CHANNEL_SORT_STORAGE_KEY = 'xtream-live-channel-sort-mode'; diff --git a/libs/portal/xtream/feature/src/lib/portal-channels-list/portal-channels-list.component.spec.ts b/libs/portal/xtream/feature/src/lib/portal-channels-list/portal-channels-list.component.spec.ts index 15c54a62d..2003c3390 100644 --- a/libs/portal/xtream/feature/src/lib/portal-channels-list/portal-channels-list.component.spec.ts +++ b/libs/portal/xtream/feature/src/lib/portal-channels-list/portal-channels-list.component.spec.ts @@ -10,7 +10,7 @@ import { FavoritesService, XtreamStore, } from '@iptvnator/portal/xtream/data-access'; -import { SettingsStore } from 'services'; +import { SettingsStore } from '@iptvnator/services'; import { PortalChannelsListComponent } from './portal-channels-list.component'; function buildEpgItem(params: { diff --git a/libs/portal/xtream/feature/src/lib/portal-channels-list/portal-channels-list.component.ts b/libs/portal/xtream/feature/src/lib/portal-channels-list/portal-channels-list.component.ts index 04067cfdb..3e338fea3 100644 --- a/libs/portal/xtream/feature/src/lib/portal-channels-list/portal-channels-list.component.ts +++ b/libs/portal/xtream/feature/src/lib/portal-channels-list/portal-channels-list.component.ts @@ -25,11 +25,11 @@ import { EpgProgram, XtreamCategory, XtreamItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { ChannelListItemComponent, ChannelListSkeletonComponent, -} from 'components'; +} from '@iptvnator/ui/components'; import { PortalChannelSortMode, sortPortalChannelItems, diff --git a/libs/portal/xtream/feature/src/lib/search-results/search-results.component.spec.ts b/libs/portal/xtream/feature/src/lib/search-results/search-results.component.spec.ts index 6912a0cc7..9a95e4e3d 100644 --- a/libs/portal/xtream/feature/src/lib/search-results/search-results.component.spec.ts +++ b/libs/portal/xtream/feature/src/lib/search-results/search-results.component.spec.ts @@ -2,7 +2,7 @@ import { signal } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { ActivatedRoute, Router, convertToParamMap } from '@angular/router'; import { of } from 'rxjs'; -import { DatabaseService } from 'services'; +import { DatabaseService } from '@iptvnator/services'; import { SearchResultsComponent } from './search-results.component'; import { SearchFilters, diff --git a/libs/portal/xtream/feature/src/lib/search-results/search-results.component.ts b/libs/portal/xtream/feature/src/lib/search-results/search-results.component.ts index cefbf9560..e94a38878 100644 --- a/libs/portal/xtream/feature/src/lib/search-results/search-results.component.ts +++ b/libs/portal/xtream/feature/src/lib/search-results/search-results.component.ts @@ -22,7 +22,7 @@ import { import { MatIcon } from '@angular/material/icon'; import { ActivatedRoute, Router } from '@angular/router'; import { TranslatePipe } from '@ngx-translate/core'; -import { DatabaseService } from 'services'; +import { DatabaseService } from '@iptvnator/services'; import { ContentCardComponent } from '@iptvnator/portal/shared/ui'; import { SearchLayoutComponent } from '@iptvnator/portal/shared/ui'; import { diff --git a/libs/portal/xtream/feature/src/lib/serial-details/serial-details.component.spec.ts b/libs/portal/xtream/feature/src/lib/serial-details/serial-details.component.spec.ts index 9a98346ac..456db8613 100644 --- a/libs/portal/xtream/feature/src/lib/serial-details/serial-details.component.spec.ts +++ b/libs/portal/xtream/feature/src/lib/serial-details/serial-details.component.spec.ts @@ -10,7 +10,7 @@ import { MockPipe } from 'ng-mocks'; import { ContentHeroComponent, SeasonContainerComponent, -} from 'components'; +} from '@iptvnator/ui/components'; import { PORTAL_EXTERNAL_PLAYBACK, PORTAL_PLAYBACK_POSITIONS, diff --git a/libs/portal/xtream/feature/src/lib/serial-details/serial-details.component.ts b/libs/portal/xtream/feature/src/lib/serial-details/serial-details.component.ts index 4f2b4a3dd..d67e95fdc 100644 --- a/libs/portal/xtream/feature/src/lib/serial-details/serial-details.component.ts +++ b/libs/portal/xtream/feature/src/lib/serial-details/serial-details.component.ts @@ -17,7 +17,7 @@ import { SeasonContainerComponent, SeasonContainerPlaybackToggleRequest, SeasonContainerXtreamDownloadContext, -} from 'components'; +} from '@iptvnator/ui/components'; import { PORTAL_EXTERNAL_PLAYBACK, PORTAL_PLAYBACK_POSITIONS, @@ -35,7 +35,7 @@ import { ResolvedPortalPlayback, XtreamSerieEpisode, XtreamSerieDetails, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; type XtreamSerieDetailsView = XtreamSerieDetails & { readonly series_id: number; diff --git a/libs/portal/xtream/feature/src/lib/vod-details/vod-details-fallback.util.spec.ts b/libs/portal/xtream/feature/src/lib/vod-details/vod-details-fallback.util.spec.ts index 65f03b9ef..88d4c5428 100644 --- a/libs/portal/xtream/feature/src/lib/vod-details/vod-details-fallback.util.spec.ts +++ b/libs/portal/xtream/feature/src/lib/vod-details/vod-details-fallback.util.spec.ts @@ -1,4 +1,4 @@ -import { XtreamVodDetails, XtreamVodStream } from 'shared-interfaces'; +import { XtreamVodDetails, XtreamVodStream } from '@iptvnator/shared/interfaces'; import { buildXtreamVodFallbackViewModel, hasUsableXtreamVodMetadata, diff --git a/libs/portal/xtream/feature/src/lib/vod-details/vod-details-fallback.util.ts b/libs/portal/xtream/feature/src/lib/vod-details/vod-details-fallback.util.ts index a688badcf..13a9b80b9 100644 --- a/libs/portal/xtream/feature/src/lib/vod-details/vod-details-fallback.util.ts +++ b/libs/portal/xtream/feature/src/lib/vod-details/vod-details-fallback.util.ts @@ -3,7 +3,7 @@ import { XtreamVodInfo, XtreamVodStream, getXtreamVodInfo, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; type XtreamCategoryContext = { readonly id?: string | number; diff --git a/libs/portal/xtream/feature/src/lib/vod-details/vod-details-route.component.spec.ts b/libs/portal/xtream/feature/src/lib/vod-details/vod-details-route.component.spec.ts index 7b7fee050..10e9b47cd 100644 --- a/libs/portal/xtream/feature/src/lib/vod-details/vod-details-route.component.spec.ts +++ b/libs/portal/xtream/feature/src/lib/vod-details/vod-details-route.component.spec.ts @@ -14,8 +14,8 @@ import { XtreamCategory, XtreamVodDetails, XtreamVodStream, -} from 'shared-interfaces'; -import { DownloadsService, SettingsStore } from 'services'; +} from '@iptvnator/shared/interfaces'; +import { DownloadsService, SettingsStore } from '@iptvnator/services'; import { MatSnackBar } from '@angular/material/snack-bar'; import { VodDetailsRouteComponent } from './vod-details-route.component'; diff --git a/libs/portal/xtream/feature/src/lib/vod-details/vod-details-route.component.ts b/libs/portal/xtream/feature/src/lib/vod-details/vod-details-route.component.ts index 23148e1f1..b094498e7 100644 --- a/libs/portal/xtream/feature/src/lib/vod-details/vod-details-route.component.ts +++ b/libs/portal/xtream/feature/src/lib/vod-details/vod-details-route.component.ts @@ -13,7 +13,7 @@ import { MatIcon } from '@angular/material/icon'; import { MatSnackBar } from '@angular/material/snack-bar'; import { ActivatedRoute } from '@angular/router'; import { TranslateModule, TranslateService } from '@ngx-translate/core'; -import { ContentHeroComponent } from 'components'; +import { ContentHeroComponent } from '@iptvnator/ui/components'; import { SafePipe } from '@iptvnator/pipes'; import { PORTAL_EXTERNAL_PLAYBACK, @@ -27,7 +27,7 @@ import { type PlaybackFallbackRequest, PortalInlinePlayerComponent, } from '@iptvnator/ui/playback'; -import { DownloadsService, SettingsStore } from 'services'; +import { DownloadsService, SettingsStore } from '@iptvnator/services'; import { PlaybackPositionData, PlayerContentInfo, @@ -36,7 +36,7 @@ import { XtreamVodDetails, XtreamVodStream, getXtreamVodInfo, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { buildXtreamVodFallbackViewModel, hasUsableXtreamVodMetadata, diff --git a/libs/portal/xtream/feature/src/lib/xtream-collection-detail.component.spec.ts b/libs/portal/xtream/feature/src/lib/xtream-collection-detail.component.spec.ts index 857e67b31..30c96bccc 100644 --- a/libs/portal/xtream/feature/src/lib/xtream-collection-detail.component.spec.ts +++ b/libs/portal/xtream/feature/src/lib/xtream-collection-detail.component.spec.ts @@ -6,8 +6,8 @@ import { XtreamPlaylistData, XtreamStore, } from '@iptvnator/portal/xtream/data-access'; -import { PlaylistsService } from 'services'; -import { Playlist } from 'shared-interfaces'; +import { PlaylistsService } from '@iptvnator/services'; +import { Playlist } from '@iptvnator/shared/interfaces'; import { of } from 'rxjs'; import { SerialDetailsComponent } from './serial-details/serial-details.component'; import { XtreamCollectionDetailComponent } from './xtream-collection-detail.component'; diff --git a/libs/portal/xtream/feature/src/lib/xtream-collection-detail.component.ts b/libs/portal/xtream/feature/src/lib/xtream-collection-detail.component.ts index 4ebd3f839..815053f34 100644 --- a/libs/portal/xtream/feature/src/lib/xtream-collection-detail.component.ts +++ b/libs/portal/xtream/feature/src/lib/xtream-collection-detail.component.ts @@ -11,14 +11,14 @@ import { untracked, } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; -import { ContentHeroComponent } from 'components'; +import { ContentHeroComponent } from '@iptvnator/ui/components'; import { UnifiedCollectionItem } from '@iptvnator/portal/shared/util'; import { XtreamPlaylistData, XtreamStore, } from '@iptvnator/portal/xtream/data-access'; -import { PlaylistsService } from 'services'; -import { Playlist } from 'shared-interfaces'; +import { PlaylistsService } from '@iptvnator/services'; +import { Playlist } from '@iptvnator/shared/interfaces'; import { firstValueFrom } from 'rxjs'; import { SerialDetailsComponent } from './serial-details/serial-details.component'; import { VodDetailsRouteComponent } from './vod-details/vod-details-route.component'; diff --git a/libs/portal/xtream/feature/src/lib/xtream-workspace-route-session.service.spec.ts b/libs/portal/xtream/feature/src/lib/xtream-workspace-route-session.service.spec.ts index 1f2781ca4..a8aca7734 100644 --- a/libs/portal/xtream/feature/src/lib/xtream-workspace-route-session.service.spec.ts +++ b/libs/portal/xtream/feature/src/lib/xtream-workspace-route-session.service.spec.ts @@ -9,7 +9,7 @@ import { XtreamPlaylistData, XtreamStore, } from '@iptvnator/portal/xtream/data-access'; -import { PlaylistMeta } from 'shared-interfaces'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { XtreamWorkspaceRouteSession } from './xtream-workspace-route-session.service'; const PLAYLIST_ID = 'playlist-1'; diff --git a/libs/portal/xtream/feature/src/lib/xtream-workspace-route-session.service.ts b/libs/portal/xtream/feature/src/lib/xtream-workspace-route-session.service.ts index bf6b63674..90aba19d2 100644 --- a/libs/portal/xtream/feature/src/lib/xtream-workspace-route-session.service.ts +++ b/libs/portal/xtream/feature/src/lib/xtream-workspace-route-session.service.ts @@ -16,7 +16,7 @@ import { XtreamPlaylistData, XtreamStore, } from '@iptvnator/portal/xtream/data-access'; -import { PlaylistMeta } from 'shared-interfaces'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; function normalizeOptionalConnectionValue( value: string | null | undefined diff --git a/libs/services/jest.config.ts b/libs/services/jest.config.ts index 5fdbeaf7d..f2e0566c4 100644 --- a/libs/services/jest.config.ts +++ b/libs/services/jest.config.ts @@ -1,5 +1,5 @@ export default { - displayName: 'services', + displayName: '@iptvnator/services', preset: '../../jest.preset.js', setupFilesAfterEnv: ['/src/test-setup.ts'], coverageDirectory: '../../coverage/libs/services', diff --git a/libs/services/src/lib/database-electron.service.ts b/libs/services/src/lib/database-electron.service.ts index abda4dbdb..49d3cf002 100644 --- a/libs/services/src/lib/database-electron.service.ts +++ b/libs/services/src/lib/database-electron.service.ts @@ -10,7 +10,7 @@ import { XtreamBackupHiddenCategory, XtreamBackupRecentlyViewedItem, XtreamCategory, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; export interface XCategoryFromDb { id: number; diff --git a/libs/services/src/lib/playback-position.service.ts b/libs/services/src/lib/playback-position.service.ts index 7df46b540..97252e074 100644 --- a/libs/services/src/lib/playback-position.service.ts +++ b/libs/services/src/lib/playback-position.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { PlaybackPositionData } from 'shared-interfaces'; +import { PlaybackPositionData } from '@iptvnator/shared/interfaces'; @Injectable({ providedIn: 'root', diff --git a/libs/services/src/lib/playlist-backup.service.spec.ts b/libs/services/src/lib/playlist-backup.service.spec.ts index 712beffb9..7f6ccbf08 100644 --- a/libs/services/src/lib/playlist-backup.service.spec.ts +++ b/libs/services/src/lib/playlist-backup.service.spec.ts @@ -4,7 +4,7 @@ import { PlaylistBackupManifestV1, PLAYLIST_BACKUP_KIND, PLAYLIST_BACKUP_VERSION, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { PlaylistBackupError, PlaylistBackupService, diff --git a/libs/services/src/lib/playlist-backup.service.ts b/libs/services/src/lib/playlist-backup.service.ts index b987254c1..bbb29c28d 100644 --- a/libs/services/src/lib/playlist-backup.service.ts +++ b/libs/services/src/lib/playlist-backup.service.ts @@ -22,7 +22,7 @@ import { XtreamBackupContentType, XtreamPlaylistBackupEntry, XtreamPendingRestoreState, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; export interface PlaylistBackupExportPayload { defaultFileName: string; diff --git a/libs/services/src/lib/playlist-refresh.service.ts b/libs/services/src/lib/playlist-refresh.service.ts index a38f10218..d4ab49d79 100644 --- a/libs/services/src/lib/playlist-refresh.service.ts +++ b/libs/services/src/lib/playlist-refresh.service.ts @@ -3,7 +3,7 @@ import { Playlist, PlaylistRefreshEvent, PlaylistRefreshPayload, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; export interface PlaylistRefreshOptions { onEvent?: (event: PlaylistRefreshEvent) => void; diff --git a/libs/services/src/lib/playlists.service.spec.ts b/libs/services/src/lib/playlists.service.spec.ts index e21456a19..637f44e73 100644 --- a/libs/services/src/lib/playlists.service.spec.ts +++ b/libs/services/src/lib/playlists.service.spec.ts @@ -1,5 +1,5 @@ import { firstValueFrom, of } from 'rxjs'; -import { DbStores, Playlist, PlaylistMeta } from 'shared-interfaces'; +import { DbStores, Playlist, PlaylistMeta } from '@iptvnator/shared/interfaces'; import { PlaylistsService, resolvePlaylistParser } from './playlists.service'; const SQLITE_PLAYLIST_MIGRATION_FLAG = 'm3u-playlists-indexeddb-to-sqlite-v1'; diff --git a/libs/services/src/lib/playlists.service.ts b/libs/services/src/lib/playlists.service.ts index d5bdf13c1..c76acc1b2 100644 --- a/libs/services/src/lib/playlists.service.ts +++ b/libs/services/src/lib/playlists.service.ts @@ -6,7 +6,7 @@ import { aggregateFavoriteChannels, createFavoritesPlaylist, createPlaylistObject, -} from 'm3u-utils'; +} from '@iptvnator/shared/m3u-utils'; import { NgxIndexedDBService } from 'ngx-indexed-db'; import { combineLatest, @@ -29,7 +29,7 @@ import { PlaylistUpdateState, StalkerPortalItem, normalizeStalkerDate, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; const SQLITE_PLAYLIST_MIGRATION_FLAG = 'm3u-playlists-indexeddb-to-sqlite-v1'; const STALKER_PLAYLIST_METADATA_MIGRATION_FLAG = diff --git a/libs/services/src/lib/settings-store.service.ts b/libs/services/src/lib/settings-store.service.ts index 414d7b1dc..d87e656b6 100644 --- a/libs/services/src/lib/settings-store.service.ts +++ b/libs/services/src/lib/settings-store.service.ts @@ -16,7 +16,7 @@ import { StreamFormat, Theme, VideoPlayer, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; const DEFAULT_SETTINGS: Settings = { player: VideoPlayer.VideoJs, diff --git a/libs/services/src/lib/sort.service.ts b/libs/services/src/lib/sort.service.ts index 4f374fef7..0b02b7abd 100644 --- a/libs/services/src/lib/sort.service.ts +++ b/libs/services/src/lib/sort.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; import { BehaviorSubject, Observable } from 'rxjs'; -import { PlaylistMeta } from 'shared-interfaces'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; export enum SortBy { DATE_ADDED = 'date', diff --git a/libs/services/src/lib/xtream-pending-restore.service.ts b/libs/services/src/lib/xtream-pending-restore.service.ts index b032ae721..1f1431124 100644 --- a/libs/services/src/lib/xtream-pending-restore.service.ts +++ b/libs/services/src/lib/xtream-pending-restore.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import { getXtreamPendingRestoreStorageKey, XtreamPendingRestoreState, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; const EMPTY_RESTORE_STATE: XtreamPendingRestoreState = { hiddenCategories: [], diff --git a/libs/shared/database/README.md b/libs/shared/database/README.md index 651b51002..cd04e865a 100644 --- a/libs/shared/database/README.md +++ b/libs/shared/database/README.md @@ -6,13 +6,13 @@ Shared database library for IPTVnator providing Drizzle ORM schema and connectio ```typescript // Full access (electron-backend) -import { getDatabase, initDatabase } from 'database'; +import { getDatabase, initDatabase } from '@iptvnator/shared/database'; // Read-only access (agent-backend) -import { getReadOnlyDatabase } from 'database'; +import { getReadOnlyDatabase } from '@iptvnator/shared/database'; // Schema and types -import { content, categories, playlists, type Content } from 'database'; +import { content, categories, playlists, type Content } from '@iptvnator/shared/database'; ``` ## Exports diff --git a/libs/shared/interfaces/jest.config.ts b/libs/shared/interfaces/jest.config.ts index 038ae6398..783e65f32 100644 --- a/libs/shared/interfaces/jest.config.ts +++ b/libs/shared/interfaces/jest.config.ts @@ -1,5 +1,5 @@ export default { - displayName: 'shared-interfaces', + displayName: '@iptvnator/shared/interfaces', preset: '../../../jest.preset.js', testEnvironment: 'node', transform: { diff --git a/libs/shared/interfaces/package.json b/libs/shared/interfaces/package.json index e39f9a8cc..ae833112e 100644 --- a/libs/shared/interfaces/package.json +++ b/libs/shared/interfaces/package.json @@ -1,11 +1,12 @@ { - "name": "shared-interfaces", + "name": "@iptvnator/shared/interfaces", "version": "0.0.1", "private": true, "type": "commonjs", "main": "./src/index.js", "types": "./src/index.d.ts", "dependencies": { + "ngx-indexed-db": "^21.0.0", "tslib": "^2.3.0" } } diff --git a/libs/shared/m3u-utils/jest.config.ts b/libs/shared/m3u-utils/jest.config.ts index 557c7be7e..d45dbb73a 100644 --- a/libs/shared/m3u-utils/jest.config.ts +++ b/libs/shared/m3u-utils/jest.config.ts @@ -1,5 +1,5 @@ export default { - displayName: 'm3u-utils', + displayName: '@iptvnator/shared/m3u-utils', preset: '../../../jest.preset.js', testEnvironment: 'node', transform: { diff --git a/libs/shared/m3u-utils/package.json b/libs/shared/m3u-utils/package.json index a9a138eea..221ae65e9 100644 --- a/libs/shared/m3u-utils/package.json +++ b/libs/shared/m3u-utils/package.json @@ -1,11 +1,13 @@ { - "name": "m3u-utils", + "name": "@iptvnator/shared/m3u-utils", "version": "0.0.1", "private": true, "type": "commonjs", "main": "./src/index.js", "types": "./src/index.d.ts", "dependencies": { - "tslib": "^2.3.0" + "@iptvnator/shared/interfaces": "0.0.1", + "tslib": "^2.3.0", + "uuid": "^9.0.0" } } diff --git a/libs/shared/m3u-utils/src/lib/catchup.utils.spec.ts b/libs/shared/m3u-utils/src/lib/catchup.utils.spec.ts index b0c054577..19c9961df 100644 --- a/libs/shared/m3u-utils/src/lib/catchup.utils.spec.ts +++ b/libs/shared/m3u-utils/src/lib/catchup.utils.spec.ts @@ -1,4 +1,4 @@ -import { Channel, EpgProgram } from 'shared-interfaces'; +import { Channel, EpgProgram } from '@iptvnator/shared/interfaces'; import { getM3uArchiveDays, isM3uCatchupPlaybackSupported, diff --git a/libs/shared/m3u-utils/src/lib/catchup.utils.ts b/libs/shared/m3u-utils/src/lib/catchup.utils.ts index fff3fab1c..e65782a7e 100644 --- a/libs/shared/m3u-utils/src/lib/catchup.utils.ts +++ b/libs/shared/m3u-utils/src/lib/catchup.utils.ts @@ -1,4 +1,4 @@ -import { Channel, EpgProgram } from 'shared-interfaces'; +import { Channel, EpgProgram } from '@iptvnator/shared/interfaces'; const XMLTV_TIMESTAMP_PATTERN = /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})\s*([+-]\d{2})(\d{2})$/; diff --git a/libs/shared/m3u-utils/src/lib/playlist.utils.spec.ts b/libs/shared/m3u-utils/src/lib/playlist.utils.spec.ts index c6ef64006..235b279dd 100644 --- a/libs/shared/m3u-utils/src/lib/playlist.utils.spec.ts +++ b/libs/shared/m3u-utils/src/lib/playlist.utils.spec.ts @@ -1,4 +1,4 @@ -import { Channel, Playlist } from 'shared-interfaces'; +import { Channel, Playlist } from '@iptvnator/shared/interfaces'; import { aggregateFavoriteChannels, getExtensionFromUrl, diff --git a/libs/shared/m3u-utils/src/lib/playlist.utils.ts b/libs/shared/m3u-utils/src/lib/playlist.utils.ts index c3d77b93d..ab4a338ca 100644 --- a/libs/shared/m3u-utils/src/lib/playlist.utils.ts +++ b/libs/shared/m3u-utils/src/lib/playlist.utils.ts @@ -3,7 +3,7 @@ import { ParsedPlaylist, ParsedPlaylistItem, Playlist, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { v4 as uuidv4 } from 'uuid'; /** diff --git a/libs/ui/components/jest.config.ts b/libs/ui/components/jest.config.ts index 577d48639..eb13f19f9 100644 --- a/libs/ui/components/jest.config.ts +++ b/libs/ui/components/jest.config.ts @@ -1,5 +1,5 @@ export default { - displayName: 'components', + displayName: '@iptvnator/ui/components', preset: '../../../jest.preset.js', setupFilesAfterEnv: ['/src/test-setup.ts'], coverageDirectory: '../../../coverage/libs/ui/components', diff --git a/libs/ui/components/src/lib/channel-list-container/all-channels-view/all-channels-view.component.spec.ts b/libs/ui/components/src/lib/channel-list-container/all-channels-view/all-channels-view.component.spec.ts index bf72f5b7f..f7ecacaf4 100644 --- a/libs/ui/components/src/lib/channel-list-container/all-channels-view/all-channels-view.component.spec.ts +++ b/libs/ui/components/src/lib/channel-list-container/all-channels-view/all-channels-view.component.spec.ts @@ -2,7 +2,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { MatDialog } from '@angular/material/dialog'; import { TranslateModule } from '@ngx-translate/core'; -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { ChannelDetailsDialogComponent } from '../channel-details-dialog/channel-details-dialog.component'; import { AllChannelsViewComponent } from './all-channels-view.component'; diff --git a/libs/ui/components/src/lib/channel-list-container/all-channels-view/all-channels-view.component.ts b/libs/ui/components/src/lib/channel-list-container/all-channels-view/all-channels-view.component.ts index 4a7031144..2a7dcca62 100644 --- a/libs/ui/components/src/lib/channel-list-container/all-channels-view/all-channels-view.component.ts +++ b/libs/ui/components/src/lib/channel-list-container/all-channels-view/all-channels-view.component.ts @@ -16,8 +16,8 @@ import { MatIconModule } from '@angular/material/icon'; import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu'; import { MatTooltipModule } from '@angular/material/tooltip'; import { TranslatePipe } from '@ngx-translate/core'; -import { resolveChannelEpgLookupKey } from 'm3u-state'; -import { Channel, EpgProgram } from 'shared-interfaces'; +import { resolveChannelEpgLookupKey } from '@iptvnator/m3u-state'; +import { Channel, EpgProgram } from '@iptvnator/shared/interfaces'; import { PlaylistChannelSortMode, getPlaylistChannelSortModeLabel, diff --git a/libs/ui/components/src/lib/channel-list-container/channel-details-dialog/channel-details-dialog.component.spec.ts b/libs/ui/components/src/lib/channel-list-container/channel-details-dialog/channel-details-dialog.component.spec.ts index 61b5584b2..57c6906ef 100644 --- a/libs/ui/components/src/lib/channel-list-container/channel-details-dialog/channel-details-dialog.component.spec.ts +++ b/libs/ui/components/src/lib/channel-list-container/channel-details-dialog/channel-details-dialog.component.spec.ts @@ -2,7 +2,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { MAT_DIALOG_DATA } from '@angular/material/dialog'; import { TranslateModule } from '@ngx-translate/core'; -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { ChannelDetailsDialogComponent } from './channel-details-dialog.component'; describe('ChannelDetailsDialogComponent', () => { diff --git a/libs/ui/components/src/lib/channel-list-container/channel-details-dialog/channel-details-dialog.component.ts b/libs/ui/components/src/lib/channel-list-container/channel-details-dialog/channel-details-dialog.component.ts index 99301f3a7..73f85d009 100644 --- a/libs/ui/components/src/lib/channel-list-container/channel-details-dialog/channel-details-dialog.component.ts +++ b/libs/ui/components/src/lib/channel-list-container/channel-details-dialog/channel-details-dialog.component.ts @@ -4,8 +4,8 @@ import { MatButtonModule } from '@angular/material/button'; import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog'; import { MatIconModule } from '@angular/material/icon'; import { TranslatePipe } from '@ngx-translate/core'; -import { getM3uArchiveDays, isM3uCatchupPlaybackSupported } from 'm3u-utils'; -import { Channel } from 'shared-interfaces'; +import { getM3uArchiveDays, isM3uCatchupPlaybackSupported } from '@iptvnator/shared/m3u-utils'; +import { Channel } from '@iptvnator/shared/interfaces'; interface ChannelDetailField { readonly empty?: boolean; diff --git a/libs/ui/components/src/lib/channel-list-container/channel-list-container.component.spec.ts b/libs/ui/components/src/lib/channel-list-container/channel-list-container.component.spec.ts index 08189c6ce..b7bc00147 100644 --- a/libs/ui/components/src/lib/channel-list-container/channel-list-container.component.spec.ts +++ b/libs/ui/components/src/lib/channel-list-container/channel-list-container.component.spec.ts @@ -11,9 +11,9 @@ import { StorageMap } from '@ngx-pwa/local-storage'; import { BehaviorSubject, firstValueFrom, of, Subject } from 'rxjs'; import { EpgService } from '@iptvnator/epg/data-access'; import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; -import { ChannelActions, PlaylistActions } from 'm3u-state'; -import { PlaylistsService, SettingsStore } from 'services'; -import { Channel, PlaylistMeta } from 'shared-interfaces'; +import { ChannelActions, PlaylistActions } from '@iptvnator/m3u-state'; +import { PlaylistsService, SettingsStore } from '@iptvnator/services'; +import { Channel, PlaylistMeta } from '@iptvnator/shared/interfaces'; import { ChannelListContainerComponent } from './channel-list-container.component'; function createChannel(id: string, url: string): Channel { diff --git a/libs/ui/components/src/lib/channel-list-container/channel-list-container.component.ts b/libs/ui/components/src/lib/channel-list-container/channel-list-container.component.ts index b6cedb397..0586b32f9 100644 --- a/libs/ui/components/src/lib/channel-list-container/channel-list-container.component.ts +++ b/libs/ui/components/src/lib/channel-list-container/channel-list-container.component.ts @@ -31,7 +31,7 @@ import { resolveChannelEpgLookupKey, selectActive, selectFavorites, -} from 'm3u-state'; +} from '@iptvnator/m3u-state'; import { BehaviorSubject, combineLatest, @@ -40,7 +40,7 @@ import { firstValueFrom, map, } from 'rxjs'; -import { PlaylistsService, SettingsStore } from 'services'; +import { PlaylistsService, SettingsStore } from '@iptvnator/services'; import { Channel, EpgProgram, @@ -50,7 +50,7 @@ import { PlaylistRecentlyViewedItem, Settings, STORE_KEY, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { AllChannelsViewComponent } from './all-channels-view/all-channels-view.component'; import { FavoritesViewComponent } from './favorites-view/favorites-view.component'; import { GroupsViewComponent } from './groups-view/groups-view.component'; diff --git a/libs/ui/components/src/lib/channel-list-container/channel-list-item/channel-list-item.component.spec.ts b/libs/ui/components/src/lib/channel-list-container/channel-list-item/channel-list-item.component.spec.ts index 247ee2813..e101df100 100644 --- a/libs/ui/components/src/lib/channel-list-container/channel-list-item/channel-list-item.component.spec.ts +++ b/libs/ui/components/src/lib/channel-list-container/channel-list-item/channel-list-item.component.spec.ts @@ -3,7 +3,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { MatDialog } from '@angular/material/dialog'; import { TranslateModule } from '@ngx-translate/core'; -import { EpgProgram } from 'shared-interfaces'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; import { ChannelListItemComponent } from './channel-list-item.component'; describe('ChannelListItemComponent', () => { diff --git a/libs/ui/components/src/lib/channel-list-container/channel-list-item/channel-list-item.component.ts b/libs/ui/components/src/lib/channel-list-container/channel-list-item/channel-list-item.component.ts index a752e5202..06400bc0a 100644 --- a/libs/ui/components/src/lib/channel-list-container/channel-list-item/channel-list-item.component.ts +++ b/libs/ui/components/src/lib/channel-list-container/channel-list-item/channel-list-item.component.ts @@ -15,7 +15,7 @@ import { MatIcon } from '@angular/material/icon'; import { MatTooltip } from '@angular/material/tooltip'; import { TranslatePipe } from '@ngx-translate/core'; import { EpgItemDescriptionComponent } from '@iptvnator/ui/epg'; -import { EpgProgram } from 'shared-interfaces'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; @Component({ selector: 'app-channel-list-item', diff --git a/libs/ui/components/src/lib/channel-list-container/channel-logo-fallback.util.ts b/libs/ui/components/src/lib/channel-list-container/channel-logo-fallback.util.ts index 5b375b702..4857fc821 100644 --- a/libs/ui/components/src/lib/channel-list-container/channel-logo-fallback.util.ts +++ b/libs/ui/components/src/lib/channel-list-container/channel-logo-fallback.util.ts @@ -1,5 +1,5 @@ -import { resolveChannelEpgLookupKey } from 'm3u-state'; -import { Channel } from 'shared-interfaces'; +import { resolveChannelEpgLookupKey } from '@iptvnator/m3u-state'; +import { Channel } from '@iptvnator/shared/interfaces'; export function resolveChannelLogo( channel: Channel | null | undefined, diff --git a/libs/ui/components/src/lib/channel-list-container/favorites-view/favorites-view.component.spec.ts b/libs/ui/components/src/lib/channel-list-container/favorites-view/favorites-view.component.spec.ts index f22825ae7..847f82808 100644 --- a/libs/ui/components/src/lib/channel-list-container/favorites-view/favorites-view.component.spec.ts +++ b/libs/ui/components/src/lib/channel-list-container/favorites-view/favorites-view.component.spec.ts @@ -2,7 +2,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { MatDialog } from '@angular/material/dialog'; import { TranslateModule } from '@ngx-translate/core'; -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { ChannelDetailsDialogComponent } from '../channel-details-dialog/channel-details-dialog.component'; import { FavoritesViewComponent } from './favorites-view.component'; diff --git a/libs/ui/components/src/lib/channel-list-container/favorites-view/favorites-view.component.ts b/libs/ui/components/src/lib/channel-list-container/favorites-view/favorites-view.component.ts index 7c52459c0..69c2f5059 100644 --- a/libs/ui/components/src/lib/channel-list-container/favorites-view/favorites-view.component.ts +++ b/libs/ui/components/src/lib/channel-list-container/favorites-view/favorites-view.component.ts @@ -17,8 +17,8 @@ import { MatDialog } from '@angular/material/dialog'; import { MatIconModule } from '@angular/material/icon'; import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu'; import { TranslatePipe } from '@ngx-translate/core'; -import { resolveChannelEpgLookupKey } from 'm3u-state'; -import { Channel, EpgProgram } from 'shared-interfaces'; +import { resolveChannelEpgLookupKey } from '@iptvnator/m3u-state'; +import { Channel, EpgProgram } from '@iptvnator/shared/interfaces'; import { ChannelEpgMetadata } from '../all-channels-view/all-channels-view.component'; import { ChannelDetailsDialogComponent } from '../channel-details-dialog/channel-details-dialog.component'; import { resolveChannelLogo } from '../channel-logo-fallback.util'; diff --git a/libs/ui/components/src/lib/channel-list-container/groups-view/groups-view.component.spec.ts b/libs/ui/components/src/lib/channel-list-container/groups-view/groups-view.component.spec.ts index 146204f3c..da7f066c9 100644 --- a/libs/ui/components/src/lib/channel-list-container/groups-view/groups-view.component.spec.ts +++ b/libs/ui/components/src/lib/channel-list-container/groups-view/groups-view.component.spec.ts @@ -3,7 +3,7 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { MatDialog } from '@angular/material/dialog'; import { TranslateModule } from '@ngx-translate/core'; import { of } from 'rxjs'; -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { ChannelDetailsDialogComponent } from '../channel-details-dialog/channel-details-dialog.component'; import { GroupManagementDialogComponent } from './group-management-dialog/group-management-dialog.component'; import { GroupsViewComponent } from './groups-view.component'; diff --git a/libs/ui/components/src/lib/channel-list-container/groups-view/groups-view.component.ts b/libs/ui/components/src/lib/channel-list-container/groups-view/groups-view.component.ts index f1d172605..53cfbf5f0 100644 --- a/libs/ui/components/src/lib/channel-list-container/groups-view/groups-view.component.ts +++ b/libs/ui/components/src/lib/channel-list-container/groups-view/groups-view.component.ts @@ -19,8 +19,8 @@ import { MatIconModule } from '@angular/material/icon'; import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu'; import { MatTooltipModule } from '@angular/material/tooltip'; import { TranslatePipe } from '@ngx-translate/core'; -import { resolveChannelEpgLookupKey } from 'm3u-state'; -import { Channel, EpgProgram } from 'shared-interfaces'; +import { resolveChannelEpgLookupKey } from '@iptvnator/m3u-state'; +import { Channel, EpgProgram } from '@iptvnator/shared/interfaces'; import { ChannelEpgMetadata } from '../all-channels-view/all-channels-view.component'; import { PlaylistChannelSortMode, diff --git a/libs/ui/components/src/lib/channel-list-container/recent-view/recent-view.component.spec.ts b/libs/ui/components/src/lib/channel-list-container/recent-view/recent-view.component.spec.ts index 1f5698038..fa186174c 100644 --- a/libs/ui/components/src/lib/channel-list-container/recent-view/recent-view.component.spec.ts +++ b/libs/ui/components/src/lib/channel-list-container/recent-view/recent-view.component.spec.ts @@ -2,7 +2,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { MatDialog } from '@angular/material/dialog'; import { TranslateModule } from '@ngx-translate/core'; -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { ChannelDetailsDialogComponent } from '../channel-details-dialog/channel-details-dialog.component'; import { RecentViewComponent, RecentViewItem } from './recent-view.component'; diff --git a/libs/ui/components/src/lib/channel-list-container/recent-view/recent-view.component.ts b/libs/ui/components/src/lib/channel-list-container/recent-view/recent-view.component.ts index 19622820d..b0c304ceb 100644 --- a/libs/ui/components/src/lib/channel-list-container/recent-view/recent-view.component.ts +++ b/libs/ui/components/src/lib/channel-list-container/recent-view/recent-view.component.ts @@ -12,8 +12,8 @@ import { MatDialog } from '@angular/material/dialog'; import { MatIconModule } from '@angular/material/icon'; import { MatMenuModule, MatMenuTrigger } from '@angular/material/menu'; import { TranslatePipe } from '@ngx-translate/core'; -import { resolveChannelEpgLookupKey } from 'm3u-state'; -import { Channel, EpgProgram } from 'shared-interfaces'; +import { resolveChannelEpgLookupKey } from '@iptvnator/m3u-state'; +import { Channel, EpgProgram } from '@iptvnator/shared/interfaces'; import { ChannelDetailsDialogComponent } from '../channel-details-dialog/channel-details-dialog.component'; import { resolveChannelLogo } from '../channel-logo-fallback.util'; import { ChannelListItemComponent } from '../channel-list-item/channel-list-item.component'; diff --git a/libs/ui/components/src/lib/external-playback-dock/external-playback-dock.component.spec.ts b/libs/ui/components/src/lib/external-playback-dock/external-playback-dock.component.spec.ts index 210ab28d5..008f059c3 100644 --- a/libs/ui/components/src/lib/external-playback-dock/external-playback-dock.component.spec.ts +++ b/libs/ui/components/src/lib/external-playback-dock/external-playback-dock.component.spec.ts @@ -6,7 +6,7 @@ import { TranslateService, } from '@ngx-translate/core'; import { Observable, of } from 'rxjs'; -import { ExternalPlayerSession } from 'shared-interfaces'; +import { ExternalPlayerSession } from '@iptvnator/shared/interfaces'; import { ExternalPlaybackDockComponent } from './external-playback-dock.component'; class FakeTranslateLoader implements TranslateLoader { diff --git a/libs/ui/components/src/lib/external-playback-dock/external-playback-dock.component.ts b/libs/ui/components/src/lib/external-playback-dock/external-playback-dock.component.ts index 4d4e6e6b5..af9e3d4a2 100644 --- a/libs/ui/components/src/lib/external-playback-dock/external-playback-dock.component.ts +++ b/libs/ui/components/src/lib/external-playback-dock/external-playback-dock.component.ts @@ -11,7 +11,7 @@ import { MatButtonModule } from '@angular/material/button'; import { MatIcon } from '@angular/material/icon'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { TranslatePipe } from '@ngx-translate/core'; -import { ExternalPlayerSession } from 'shared-interfaces'; +import { ExternalPlayerSession } from '@iptvnator/shared/interfaces'; @Component({ selector: 'app-external-playback-dock', diff --git a/libs/ui/components/src/lib/season-container/season-container.component.spec.ts b/libs/ui/components/src/lib/season-container/season-container.component.spec.ts index 5f5e8d61e..3788fbb4d 100644 --- a/libs/ui/components/src/lib/season-container/season-container.component.spec.ts +++ b/libs/ui/components/src/lib/season-container/season-container.component.spec.ts @@ -2,8 +2,8 @@ import { signal } from '@angular/core'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { TranslateModule } from '@ngx-translate/core'; -import { XtreamSerieEpisode } from 'shared-interfaces'; -import { DownloadsService } from 'services'; +import { XtreamSerieEpisode } from '@iptvnator/shared/interfaces'; +import { DownloadsService } from '@iptvnator/services'; import { SeasonContainerComponent } from './season-container.component'; const downloadsServiceStub = { diff --git a/libs/ui/components/src/lib/season-container/season-container.component.ts b/libs/ui/components/src/lib/season-container/season-container.component.ts index 475cc17a3..4c4a25fd0 100644 --- a/libs/ui/components/src/lib/season-container/season-container.component.ts +++ b/libs/ui/components/src/lib/season-container/season-container.component.ts @@ -25,8 +25,8 @@ import { PlaybackPositionData, XtreamSerieEpisode, XtreamSerieEpisodeInfo, -} from 'shared-interfaces'; -import { DownloadsService } from 'services'; +} from '@iptvnator/shared/interfaces'; +import { DownloadsService } from '@iptvnator/services'; import { ProgressCapsuleComponent } from '../progress-capsule/progress-capsule.component'; import { WatchedBadgeComponent } from '../watched-badge/watched-badge.component'; diff --git a/libs/ui/epg/src/lib/epg-list/epg-item-description/epg-item-description.component.spec.ts b/libs/ui/epg/src/lib/epg-list/epg-item-description/epg-item-description.component.spec.ts index 3c97f1575..3633ede4b 100644 --- a/libs/ui/epg/src/lib/epg-list/epg-item-description/epg-item-description.component.spec.ts +++ b/libs/ui/epg/src/lib/epg-list/epg-item-description/epg-item-description.component.spec.ts @@ -3,7 +3,7 @@ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog'; import { By } from '@angular/platform-browser'; import { TranslateModule } from '@ngx-translate/core'; import { MockModule } from 'ng-mocks'; -import { EpgProgram } from 'shared-interfaces'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; import { EpgItemDescriptionComponent } from './epg-item-description.component'; describe('EpgItemDescriptionComponent', () => { diff --git a/libs/ui/epg/src/lib/epg-list/epg-item-description/epg-item-description.component.ts b/libs/ui/epg/src/lib/epg-list/epg-item-description/epg-item-description.component.ts index 1bdfa1ce2..45bfcbddc 100644 --- a/libs/ui/epg/src/lib/epg-list/epg-item-description/epg-item-description.component.ts +++ b/libs/ui/epg/src/lib/epg-list/epg-item-description/epg-item-description.component.ts @@ -7,7 +7,7 @@ import { normalizeDateLocale } from '@iptvnator/pipes'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; import { differenceInMinutes } from 'date-fns'; import { startWith } from 'rxjs'; -import { EpgProgram } from 'shared-interfaces'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; type EpgItemDialogData = EpgProgram & { channelName?: string | null; diff --git a/libs/ui/epg/src/lib/epg-list/epg-list-item/epg-list-item.component.spec.ts b/libs/ui/epg/src/lib/epg-list/epg-list-item/epg-list-item.component.spec.ts index 50b3d55cc..6bc113f9d 100644 --- a/libs/ui/epg/src/lib/epg-list/epg-list-item/epg-list-item.component.spec.ts +++ b/libs/ui/epg/src/lib/epg-list/epg-list-item/epg-list-item.component.spec.ts @@ -5,7 +5,7 @@ import { MatListModule } from '@angular/material/list'; import { MatTooltipModule } from '@angular/material/tooltip'; import { TranslateModule, TranslateService } from '@ngx-translate/core'; import { MockModule } from 'ng-mocks'; -import { EpgProgram } from 'shared-interfaces'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; import { EpgItemDescriptionComponent } from '../epg-item-description/epg-item-description.component'; import { EpgListItemComponent } from './epg-list-item.component'; diff --git a/libs/ui/epg/src/lib/epg-list/epg-list-item/epg-list-item.component.ts b/libs/ui/epg/src/lib/epg-list/epg-list-item/epg-list-item.component.ts index eb83149c3..f08fefe30 100644 --- a/libs/ui/epg/src/lib/epg-list/epg-list-item/epg-list-item.component.ts +++ b/libs/ui/epg/src/lib/epg-list/epg-list-item/epg-list-item.component.ts @@ -4,7 +4,7 @@ import { MatDialog } from '@angular/material/dialog'; import { MatIcon } from '@angular/material/icon'; import { MatTooltip } from '@angular/material/tooltip'; import { TranslatePipe } from '@ngx-translate/core'; -import { EpgProgram } from 'shared-interfaces'; +import { EpgProgram } from '@iptvnator/shared/interfaces'; import { EpgItemDescriptionComponent } from '../epg-item-description/epg-item-description.component'; @Component({ diff --git a/libs/ui/epg/src/lib/epg-list/epg-list.component.spec.ts b/libs/ui/epg/src/lib/epg-list/epg-list.component.spec.ts index 5c2c1d71c..448e7ee5d 100644 --- a/libs/ui/epg/src/lib/epg-list/epg-list.component.spec.ts +++ b/libs/ui/epg/src/lib/epg-list/epg-list.component.spec.ts @@ -8,7 +8,7 @@ import { BehaviorSubject, of } from 'rxjs'; import { EpgService } from '@iptvnator/epg/data-access'; import { Store } from '@ngrx/store'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; -import { Channel, EpgProgram } from 'shared-interfaces'; +import { Channel, EpgProgram } from '@iptvnator/shared/interfaces'; import { EpgListItemComponent } from './epg-list-item/epg-list-item.component'; import { EpgListComponent } from './epg-list.component'; diff --git a/libs/ui/epg/src/lib/epg-list/epg-list.component.ts b/libs/ui/epg/src/lib/epg-list/epg-list.component.ts index b92072fbf..8849ba83c 100644 --- a/libs/ui/epg/src/lib/epg-list/epg-list.component.ts +++ b/libs/ui/epg/src/lib/epg-list/epg-list.component.ts @@ -19,10 +19,10 @@ import { EpgService } from '@iptvnator/epg/data-access'; import { normalizeDateLocale } from '@iptvnator/pipes'; import { Store } from '@ngrx/store'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; -import { EpgActions, selectActive } from 'm3u-state'; +import { EpgActions, selectActive } from '@iptvnator/m3u-state'; import { format, subDays } from 'date-fns'; import { startWith } from 'rxjs'; -import { Channel, EpgChannel, EpgProgram } from 'shared-interfaces'; +import { Channel, EpgChannel, EpgProgram } from '@iptvnator/shared/interfaces'; import { EPG_DATE_KEY_FORMAT, EpgDateNavigationDirection, diff --git a/libs/ui/epg/src/lib/multi-epg/multi-epg-container.component.ts b/libs/ui/epg/src/lib/multi-epg/multi-epg-container.component.ts index 82a69a28e..5e2d740c8 100644 --- a/libs/ui/epg/src/lib/multi-epg/multi-epg-container.component.ts +++ b/libs/ui/epg/src/lib/multi-epg/multi-epg-container.component.ts @@ -28,7 +28,7 @@ import { EpgChannel, EpgChannelWithPrograms, EpgProgram, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { EpgItemDescriptionComponent } from '../epg-list/epg-item-description/epg-item-description.component'; import { COMPONENT_OVERLAY_REF } from './overlay-ref.token'; diff --git a/libs/ui/playback/src/lib/art-player/art-player.component.spec.ts b/libs/ui/playback/src/lib/art-player/art-player.component.spec.ts index 76f62f4ea..0d94f05ca 100644 --- a/libs/ui/playback/src/lib/art-player/art-player.component.spec.ts +++ b/libs/ui/playback/src/lib/art-player/art-player.component.spec.ts @@ -1,5 +1,5 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import type { ArtPlayerComponent as ArtPlayerComponentInstance } from './art-player.component'; const artPlayerInstances: MockArtplayer[] = []; diff --git a/libs/ui/playback/src/lib/art-player/art-player.component.ts b/libs/ui/playback/src/lib/art-player/art-player.component.ts index 5168e27b4..403cf984e 100644 --- a/libs/ui/playback/src/lib/art-player/art-player.component.ts +++ b/libs/ui/playback/src/lib/art-player/art-player.component.ts @@ -13,7 +13,7 @@ import { import Artplayer from 'artplayer'; import Hls, { type ErrorData, type ManifestParsedData } from 'hls.js'; import mpegts from 'mpegts.js'; -import { Channel } from 'shared-interfaces'; +import { Channel } from '@iptvnator/shared/interfaces'; import { InlinePlaybackPlayer, PlaybackDiagnostic, diff --git a/libs/ui/playback/src/lib/audio-player/audio-player.component.ts b/libs/ui/playback/src/lib/audio-player/audio-player.component.ts index 2945fc54d..916b03754 100644 --- a/libs/ui/playback/src/lib/audio-player/audio-player.component.ts +++ b/libs/ui/playback/src/lib/audio-player/audio-player.component.ts @@ -17,7 +17,7 @@ import { MatButtonModule } from '@angular/material/button'; import { MatIconModule } from '@angular/material/icon'; import { MatSliderModule } from '@angular/material/slider'; import { Store } from '@ngrx/store'; -import { ChannelActions } from 'm3u-state'; +import { ChannelActions } from '@iptvnator/m3u-state'; @Component({ selector: 'app-audio-player', diff --git a/libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-format.utils.ts b/libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-format.utils.ts index d583bdcf3..71d9c53c1 100644 --- a/libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-format.utils.ts +++ b/libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-format.utils.ts @@ -1,4 +1,4 @@ -import { EmbeddedMpvAudioTrack, EmbeddedMpvBounds } from 'shared-interfaces'; +import { EmbeddedMpvAudioTrack, EmbeddedMpvBounds } from '@iptvnator/shared/interfaces'; export const HIDDEN_BOUNDS: EmbeddedMpvBounds = Object.freeze({ x: -100000, diff --git a/libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-player.component.ts b/libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-player.component.ts index b4401d607..8fa93e344 100644 --- a/libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-player.component.ts +++ b/libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-player.component.ts @@ -20,7 +20,7 @@ import { MatTooltipModule } from '@angular/material/tooltip'; import { EmbeddedMpvAudioTrack, ResolvedPortalPlayback, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { EmbeddedMpvOverlayVisibilityService } from './embedded-mpv-overlay-visibility.service'; import { EmbeddedMpvSessionController } from './embedded-mpv-session-controller'; import { EmbeddedMpvShortcuts } from './embedded-mpv-shortcuts'; diff --git a/libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-session-controller.ts b/libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-session-controller.ts index f2ca3bacf..22caea71d 100644 --- a/libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-session-controller.ts +++ b/libs/ui/playback/src/lib/embedded-mpv-player/embedded-mpv-session-controller.ts @@ -12,7 +12,7 @@ import { EmbeddedMpvSession, EmbeddedMpvSupport, ResolvedPortalPlayback, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { measureBounds } from './embedded-mpv-format.utils'; export type EmbeddedMpvBoundsProvider = ( diff --git a/libs/ui/playback/src/lib/html-video-player/html-video-player.component.spec.ts b/libs/ui/playback/src/lib/html-video-player/html-video-player.component.spec.ts index da1d25328..827089d59 100644 --- a/libs/ui/playback/src/lib/html-video-player/html-video-player.component.spec.ts +++ b/libs/ui/playback/src/lib/html-video-player/html-video-player.component.spec.ts @@ -1,7 +1,7 @@ import { SimpleChange } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { TranslateModule } from '@ngx-translate/core'; -import { DataService } from 'services'; +import { DataService } from '@iptvnator/services'; import { HtmlVideoPlayerComponent } from './html-video-player.component'; describe('HtmlVideoPlayerComponent', () => { diff --git a/libs/ui/playback/src/lib/html-video-player/html-video-player.component.ts b/libs/ui/playback/src/lib/html-video-player/html-video-player.component.ts index 099bd8e1e..93b8ea720 100644 --- a/libs/ui/playback/src/lib/html-video-player/html-video-player.component.ts +++ b/libs/ui/playback/src/lib/html-video-player/html-video-player.component.ts @@ -13,8 +13,8 @@ import { } from '@angular/core'; import Hls, { type ErrorData, type ManifestParsedData } from 'hls.js'; import mpegts from 'mpegts.js'; -import { DataService } from 'services'; -import { Channel } from 'shared-interfaces'; +import { DataService } from '@iptvnator/services'; +import { Channel } from '@iptvnator/shared/interfaces'; import { InlinePlaybackPlayer, PlaybackDiagnostic, diff --git a/libs/ui/playback/src/lib/playback-diagnostics/playback-diagnostics.model.ts b/libs/ui/playback/src/lib/playback-diagnostics/playback-diagnostics.model.ts index bcbb2c9ed..4bc4f8195 100644 --- a/libs/ui/playback/src/lib/playback-diagnostics/playback-diagnostics.model.ts +++ b/libs/ui/playback/src/lib/playback-diagnostics/playback-diagnostics.model.ts @@ -1,7 +1,7 @@ import type { ExternalPlayerName, ResolvedPortalPlayback, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; export const PlaybackDiagnosticCode = { UnsupportedContainer: 'unsupported-container', diff --git a/libs/ui/playback/src/lib/playback-diagnostics/playback-media-source.util.ts b/libs/ui/playback/src/lib/playback-diagnostics/playback-media-source.util.ts index 3915ac822..ba3ab2000 100644 --- a/libs/ui/playback/src/lib/playback-diagnostics/playback-media-source.util.ts +++ b/libs/ui/playback/src/lib/playback-diagnostics/playback-media-source.util.ts @@ -1,4 +1,4 @@ -import { getExtensionFromUrl } from 'm3u-utils'; +import { getExtensionFromUrl } from '@iptvnator/shared/m3u-utils'; import type { PlaybackSourceMetadata, diff --git a/libs/ui/playback/src/lib/portal-inline-player/portal-inline-player.component.ts b/libs/ui/playback/src/lib/portal-inline-player/portal-inline-player.component.ts index d86b13e39..c7bfbe166 100644 --- a/libs/ui/playback/src/lib/portal-inline-player/portal-inline-player.component.ts +++ b/libs/ui/playback/src/lib/portal-inline-player/portal-inline-player.component.ts @@ -12,7 +12,7 @@ import { MatTooltipModule } from '@angular/material/tooltip'; import { PlayerContentInfo, ResolvedPortalPlayback, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import type { PlaybackFallbackRequest } from '../playback-diagnostics/playback-diagnostics.util'; import { WebPlayerViewComponent } from '../web-player-view/web-player-view.component'; diff --git a/libs/ui/playback/src/lib/video-player/sidebar/sidebar.component.ts b/libs/ui/playback/src/lib/video-player/sidebar/sidebar.component.ts index 2d4190bb7..24c79202c 100644 --- a/libs/ui/playback/src/lib/video-player/sidebar/sidebar.component.ts +++ b/libs/ui/playback/src/lib/video-player/sidebar/sidebar.component.ts @@ -6,8 +6,8 @@ import { RouterLink } from '@angular/router'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; import { PlaylistSwitcherComponent } from '@iptvnator/playlist/shared/ui'; import { PlaylistContextFacade } from '@iptvnator/playlist/shared/util'; -import { Channel } from 'shared-interfaces'; -import { ChannelListContainerComponent } from 'components'; +import { Channel } from '@iptvnator/shared/interfaces'; +import { ChannelListContainerComponent } from '@iptvnator/ui/components'; @Component({ selector: 'app-sidebar', diff --git a/libs/ui/playback/src/lib/video-player/toolbar/toolbar.component.ts b/libs/ui/playback/src/lib/video-player/toolbar/toolbar.component.ts index 102e073a2..4614afd37 100644 --- a/libs/ui/playback/src/lib/video-player/toolbar/toolbar.component.ts +++ b/libs/ui/playback/src/lib/video-player/toolbar/toolbar.component.ts @@ -11,8 +11,8 @@ import { FavoritesActions, selectFavorites, selectIsEpgAvailable, -} from 'm3u-state'; -import { Channel } from 'shared-interfaces'; +} from '@iptvnator/m3u-state'; +import { Channel } from '@iptvnator/shared/interfaces'; @Component({ imports: [ diff --git a/libs/ui/playback/src/lib/vod-details/vod-details.component.ts b/libs/ui/playback/src/lib/vod-details/vod-details.component.ts index 33e7e7620..7c579073f 100644 --- a/libs/ui/playback/src/lib/vod-details/vod-details.component.ts +++ b/libs/ui/playback/src/lib/vod-details/vod-details.component.ts @@ -9,15 +9,15 @@ import { MatIcon } from '@angular/material/icon'; import { TranslatePipe } from '@ngx-translate/core'; import { SafePipe } from '@iptvnator/pipes'; import { PORTAL_EXTERNAL_PLAYBACK } from '@iptvnator/portal/shared/util'; -import { ContentHeroComponent } from 'components'; +import { ContentHeroComponent } from '@iptvnator/ui/components'; import { ExternalPlayerSession, ResolvedPortalPlayback, VodDetailsItem, getVodNumericId, normalizeVodDetails, -} from 'shared-interfaces'; -import { DownloadsService } from 'services'; +} from '@iptvnator/shared/interfaces'; +import { DownloadsService } from '@iptvnator/services'; import type { PlaybackFallbackRequest } from '../playback-diagnostics/playback-diagnostics.util'; import { PortalInlinePlayerComponent } from '../portal-inline-player/portal-inline-player.component'; diff --git a/libs/ui/playback/src/lib/web-player-view/web-player-view.component.spec.ts b/libs/ui/playback/src/lib/web-player-view/web-player-view.component.spec.ts index ee6b1eab6..558016329 100644 --- a/libs/ui/playback/src/lib/web-player-view/web-player-view.component.spec.ts +++ b/libs/ui/playback/src/lib/web-player-view/web-player-view.component.spec.ts @@ -8,7 +8,7 @@ import { By } from '@angular/platform-browser'; import { StorageMap } from '@ngx-pwa/local-storage'; import { TranslateModule } from '@ngx-translate/core'; import { of } from 'rxjs'; -import { VideoPlayer } from 'shared-interfaces'; +import { VideoPlayer } from '@iptvnator/shared/interfaces'; import type { WebPlayerViewComponent as WebPlayerViewComponentInstance } from './web-player-view.component'; import { PlaybackDiagnostic, diff --git a/libs/ui/playback/src/lib/web-player-view/web-player-view.component.ts b/libs/ui/playback/src/lib/web-player-view/web-player-view.component.ts index dd13e6c4f..f216de195 100644 --- a/libs/ui/playback/src/lib/web-player-view/web-player-view.component.ts +++ b/libs/ui/playback/src/lib/web-player-view/web-player-view.component.ts @@ -21,8 +21,8 @@ import { Settings, STORE_KEY, VideoPlayer, -} from 'shared-interfaces'; -import type { ExternalPlayerName } from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; +import type { ExternalPlayerName } from '@iptvnator/shared/interfaces'; import { ArtPlayerComponent } from '../art-player/art-player.component'; import { EmbeddedMpvPlayerComponent } from '../embedded-mpv-player/embedded-mpv-player.component'; import { HtmlVideoPlayerComponent } from '../html-video-player/html-video-player.component'; diff --git a/libs/ui/remote-control/jest.config.ts b/libs/ui/remote-control/jest.config.ts index 395a66fa9..5542a6f6f 100644 --- a/libs/ui/remote-control/jest.config.ts +++ b/libs/ui/remote-control/jest.config.ts @@ -1,5 +1,5 @@ export default { - displayName: 'remote-control', + displayName: '@iptvnator/ui/remote-control', preset: '../../../jest.preset.js', setupFilesAfterEnv: ['/src/test-setup.ts'], coverageDirectory: '../../../coverage/libs/ui/remote-control', diff --git a/libs/ui/shared-portals/jest.config.ts b/libs/ui/shared-portals/jest.config.ts index 04e8f41f9..386d60f7e 100644 --- a/libs/ui/shared-portals/jest.config.ts +++ b/libs/ui/shared-portals/jest.config.ts @@ -1,5 +1,5 @@ export default { - displayName: 'shared-portals', + displayName: '@iptvnator/ui/shared-portals', preset: '../../../jest.preset.js', setupFilesAfterEnv: ['/src/test-setup.ts'], coverageDirectory: '../../../coverage/libs/ui/shared-portals', diff --git a/libs/ui/shared-portals/src/lib/epg-view/epg-view.component.ts b/libs/ui/shared-portals/src/lib/epg-view/epg-view.component.ts index c898796b4..d00b115e0 100644 --- a/libs/ui/shared-portals/src/lib/epg-view/epg-view.component.ts +++ b/libs/ui/shared-portals/src/lib/epg-view/epg-view.component.ts @@ -6,7 +6,7 @@ import { MatIcon } from '@angular/material/icon'; import { MatListModule } from '@angular/material/list'; import { TranslateModule } from '@ngx-translate/core'; import { EpgItemDescriptionComponent } from '@iptvnator/ui/epg'; -import { EpgItem } from 'shared-interfaces'; +import { EpgItem } from '@iptvnator/shared/interfaces'; @Component({ selector: 'app-epg-view', diff --git a/libs/ui/shared-portals/src/lib/live-stream-layout/live-stream-layout.component.ts b/libs/ui/shared-portals/src/lib/live-stream-layout/live-stream-layout.component.ts index a861e3ecc..a4d08d749 100644 --- a/libs/ui/shared-portals/src/lib/live-stream-layout/live-stream-layout.component.ts +++ b/libs/ui/shared-portals/src/lib/live-stream-layout/live-stream-layout.component.ts @@ -22,8 +22,8 @@ import { restoreLiveEpgPanelState, } from '@iptvnator/portal/shared/util'; import { WebPlayerViewComponent } from '@iptvnator/ui/playback'; -import { ResizableDirective } from 'components'; -import { EpgItem, VideoPlayer, XtreamItem } from 'shared-interfaces'; +import { ResizableDirective } from '@iptvnator/ui/components'; +import { EpgItem, VideoPlayer, XtreamItem } from '@iptvnator/shared/interfaces'; import { EpgViewComponent } from '../epg-view/epg-view.component'; import { LiveEpgPanelComponent, diff --git a/libs/workspace/dashboard/data-access/jest.config.ts b/libs/workspace/dashboard/data-access/jest.config.ts index 58d893656..89fef5732 100644 --- a/libs/workspace/dashboard/data-access/jest.config.ts +++ b/libs/workspace/dashboard/data-access/jest.config.ts @@ -1,5 +1,5 @@ export default { - displayName: 'workspace-dashboard-data-access', + displayName: '@iptvnator/workspace/dashboard/data-access', preset: '../../../../jest.preset.js', setupFilesAfterEnv: ['/src/test-setup.ts'], coverageDirectory: '../../../../coverage/libs/workspace/dashboard/data-access', diff --git a/libs/workspace/dashboard/data-access/src/lib/dashboard-data.service.spec.ts b/libs/workspace/dashboard/data-access/src/lib/dashboard-data.service.spec.ts index d1cf685de..350f89d1e 100644 --- a/libs/workspace/dashboard/data-access/src/lib/dashboard-data.service.spec.ts +++ b/libs/workspace/dashboard/data-access/src/lib/dashboard-data.service.spec.ts @@ -2,10 +2,10 @@ import { signal } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; -import { selectAllPlaylistsMeta, selectPlaylistsLoadingFlag } from 'm3u-state'; +import { selectAllPlaylistsMeta, selectPlaylistsLoadingFlag } from '@iptvnator/m3u-state'; import { of } from 'rxjs'; -import { DatabaseService, PlaylistsService } from 'services'; -import { Playlist, PlaylistMeta } from 'shared-interfaces'; +import { DatabaseService, PlaylistsService } from '@iptvnator/services'; +import { Playlist, PlaylistMeta } from '@iptvnator/shared/interfaces'; import { DashboardDataService } from './dashboard-data.service'; describe('DashboardDataService', () => { diff --git a/libs/workspace/dashboard/data-access/src/lib/dashboard-data.service.ts b/libs/workspace/dashboard/data-access/src/lib/dashboard-data.service.ts index 06e197b79..c06a46ca8 100644 --- a/libs/workspace/dashboard/data-access/src/lib/dashboard-data.service.ts +++ b/libs/workspace/dashboard/data-access/src/lib/dashboard-data.service.ts @@ -13,13 +13,13 @@ import { PlaylistActions, selectAllPlaylistsMeta, selectPlaylistsLoadingFlag, -} from 'm3u-state'; +} from '@iptvnator/m3u-state'; import { firstValueFrom, startWith } from 'rxjs'; import { DatabaseService, GlobalRecentlyAddedKind, PlaylistsService, -} from 'services'; +} from '@iptvnator/services'; import { buildPlaylistRecentItems, Channel, @@ -31,7 +31,7 @@ import { PortalFavoriteItem, PortalRecentItem, stalkerItemMatchesId, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { buildStalkerFavoriteItems, getActivityTypeLabelKey, @@ -52,11 +52,11 @@ import { export type DashboardContentKind = 'all' | 'channels' | 'vod' | 'series'; -/** @deprecated Use {@link PortalRecentItem} from `shared-interfaces` instead. */ +/** @deprecated Use {@link PortalRecentItem} from `@iptvnator/shared/interfaces` instead. */ export type GlobalRecentItem = PortalRecentItem; -/** @deprecated Use {@link PortalFavoriteItem} from `shared-interfaces` instead. */ +/** @deprecated Use {@link PortalFavoriteItem} from `@iptvnator/shared/interfaces` instead. */ export type DashboardFavoriteItem = PortalFavoriteItem; -/** @deprecated Use {@link PortalAddedItem} from `shared-interfaces` instead. */ +/** @deprecated Use {@link PortalAddedItem} from `@iptvnator/shared/interfaces` instead. */ export type DashboardRecentlyAddedItem = PortalAddedItem; export type DashboardRecentlyAddedFilterKind = GlobalRecentlyAddedKind; diff --git a/libs/workspace/dashboard/data-access/src/lib/dashboard-mappers.ts b/libs/workspace/dashboard/data-access/src/lib/dashboard-mappers.ts index 86e2ead60..0dd42f007 100644 --- a/libs/workspace/dashboard/data-access/src/lib/dashboard-mappers.ts +++ b/libs/workspace/dashboard/data-access/src/lib/dashboard-mappers.ts @@ -2,7 +2,7 @@ import { GlobalFavoriteItem as DbGlobalFavoriteItem, GlobalRecentlyAddedItem as DbGlobalRecentlyAddedItem, GlobalRecentItem as DbGlobalRecentItem, -} from 'services'; +} from '@iptvnator/services'; import { PortalAddedItem, PlaylistMeta, @@ -14,7 +14,7 @@ import { extractStalkerItemTitle, extractStalkerItemType, normalizeStalkerDate, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; // ────── Type / label helpers ────── diff --git a/libs/workspace/dashboard/feature/jest.config.ts b/libs/workspace/dashboard/feature/jest.config.ts index 91c85f3f3..1eb855fba 100644 --- a/libs/workspace/dashboard/feature/jest.config.ts +++ b/libs/workspace/dashboard/feature/jest.config.ts @@ -1,5 +1,5 @@ export default { - displayName: 'workspace-dashboard-feature', + displayName: '@iptvnator/workspace/dashboard/feature', preset: '../../../../jest.preset.js', setupFilesAfterEnv: ['/src/test-setup.ts'], coverageDirectory: '../../../../coverage/libs/workspace/dashboard/feature', diff --git a/libs/workspace/dashboard/feature/src/lib/rails/workspace-dashboard-rails.component.spec.ts b/libs/workspace/dashboard/feature/src/lib/rails/workspace-dashboard-rails.component.spec.ts index 24eefd192..abc3f0d0e 100644 --- a/libs/workspace/dashboard/feature/src/lib/rails/workspace-dashboard-rails.component.spec.ts +++ b/libs/workspace/dashboard/feature/src/lib/rails/workspace-dashboard-rails.component.spec.ts @@ -1,4 +1,4 @@ -import type { PlaylistMeta } from 'shared-interfaces'; +import type { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { buildDashboardSourceActions, resolveDashboardHeroArtwork, diff --git a/libs/workspace/dashboard/feature/src/lib/rails/workspace-dashboard-rails.component.ts b/libs/workspace/dashboard/feature/src/lib/rails/workspace-dashboard-rails.component.ts index 84e7163a9..247caf20b 100644 --- a/libs/workspace/dashboard/feature/src/lib/rails/workspace-dashboard-rails.component.ts +++ b/libs/workspace/dashboard/feature/src/lib/rails/workspace-dashboard-rails.component.ts @@ -22,22 +22,22 @@ import { WORKSPACE_SHELL_ACTIONS, WorkspacePlaylistType, } from '@iptvnator/workspace/shell/util'; -import { DialogService } from 'components'; -import { PlaylistActions } from 'm3u-state'; -import { DatabaseService } from 'services'; +import { DialogService } from '@iptvnator/ui/components'; +import { PlaylistActions } from '@iptvnator/m3u-state'; +import { DatabaseService } from '@iptvnator/services'; import { DashboardDataService, DashboardFavoriteItem, DashboardRecentlyAddedItem, GlobalRecentItem, -} from 'workspace-dashboard-data-access'; +} from '@iptvnator/workspace/dashboard/data-access'; import { DashboardRailComponent } from './dashboard-rail.component'; import type { DashboardRailAction, DashboardRailCard, DashboardRailActionSelection, } from './dashboard-rail.component'; -import type { PlaylistMeta } from 'shared-interfaces'; +import type { PlaylistMeta } from '@iptvnator/shared/interfaces'; // Cap dashboard rails at 20 items. Users get ~3× what's visible at once, // the DOM stays cheap, and the "Manage all" link is one click away for the diff --git a/libs/workspace/shell/feature/src/lib/global-favorites/global-favorites.service.ts b/libs/workspace/shell/feature/src/lib/global-favorites/global-favorites.service.ts index aeb7e348d..bfea67259 100644 --- a/libs/workspace/shell/feature/src/lib/global-favorites/global-favorites.service.ts +++ b/libs/workspace/shell/feature/src/lib/global-favorites/global-favorites.service.ts @@ -14,15 +14,15 @@ import { inject, Injectable } from '@angular/core'; import { Store } from '@ngrx/store'; import { TranslateService } from '@ngx-translate/core'; -import { selectAllPlaylistsMeta } from 'm3u-state'; +import { selectAllPlaylistsMeta } from '@iptvnator/m3u-state'; import { firstValueFrom, map } from 'rxjs'; -import { DatabaseService, PlaylistsService } from 'services'; +import { DatabaseService, PlaylistsService } from '@iptvnator/services'; import { Channel, Playlist, PlaylistMeta, StalkerPortalItem, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { buildFavoriteUid, UnifiedFavoriteChannel, diff --git a/libs/workspace/shell/feature/src/lib/recent-commands/recent-commands.service.ts b/libs/workspace/shell/feature/src/lib/recent-commands/recent-commands.service.ts index 8c2e8e0f1..f2de4d99b 100644 --- a/libs/workspace/shell/feature/src/lib/recent-commands/recent-commands.service.ts +++ b/libs/workspace/shell/feature/src/lib/recent-commands/recent-commands.service.ts @@ -1,7 +1,7 @@ import { Injectable, computed, inject, signal } from '@angular/core'; import { StorageMap } from '@ngx-pwa/local-storage'; import { firstValueFrom } from 'rxjs'; -import { STORE_KEY } from 'shared-interfaces'; +import { STORE_KEY } from '@iptvnator/shared/interfaces'; export interface RecentCommandEntry { id: string; diff --git a/libs/workspace/shell/feature/src/lib/workspace-player-commands/workspace-player-commands.contributor.spec.ts b/libs/workspace/shell/feature/src/lib/workspace-player-commands/workspace-player-commands.contributor.spec.ts index fc8d19236..e545e28e1 100644 --- a/libs/workspace/shell/feature/src/lib/workspace-player-commands/workspace-player-commands.contributor.spec.ts +++ b/libs/workspace/shell/feature/src/lib/workspace-player-commands/workspace-player-commands.contributor.spec.ts @@ -7,8 +7,8 @@ import { WorkspaceCommandContribution, WorkspaceViewCommandService, } from '@iptvnator/portal/shared/util'; -import { SettingsStore } from 'services'; -import { VideoPlayer } from 'shared-interfaces'; +import { SettingsStore } from '@iptvnator/services'; +import { VideoPlayer } from '@iptvnator/shared/interfaces'; import { WorkspacePlayerCommandsContributor } from './workspace-player-commands.contributor'; interface ViewCommandsMock { diff --git a/libs/workspace/shell/feature/src/lib/workspace-player-commands/workspace-player-commands.contributor.ts b/libs/workspace/shell/feature/src/lib/workspace-player-commands/workspace-player-commands.contributor.ts index 9702c7389..85e435d0c 100644 --- a/libs/workspace/shell/feature/src/lib/workspace-player-commands/workspace-player-commands.contributor.ts +++ b/libs/workspace/shell/feature/src/lib/workspace-player-commands/workspace-player-commands.contributor.ts @@ -5,8 +5,8 @@ import { WorkspaceCommandContribution, WorkspaceViewCommandService, } from '@iptvnator/portal/shared/util'; -import { SettingsStore } from 'services'; -import { VideoPlayer } from 'shared-interfaces'; +import { SettingsStore } from '@iptvnator/services'; +import { VideoPlayer } from '@iptvnator/shared/interfaces'; interface PlayerCommandDefinition { id: string; diff --git a/libs/workspace/shell/feature/src/lib/workspace-shell/components/workspace-shell-context-sidebar/workspace-shell-context-sidebar.component.ts b/libs/workspace/shell/feature/src/lib/workspace-shell/components/workspace-shell-context-sidebar/workspace-shell-context-sidebar.component.ts index 03732ef0c..37d2c414d 100644 --- a/libs/workspace/shell/feature/src/lib/workspace-shell/components/workspace-shell-context-sidebar/workspace-shell-context-sidebar.component.ts +++ b/libs/workspace/shell/feature/src/lib/workspace-shell/components/workspace-shell-context-sidebar/workspace-shell-context-sidebar.component.ts @@ -5,7 +5,7 @@ import { inject, input, } from '@angular/core'; -import { ResizableDirective } from 'components'; +import { ResizableDirective } from '@iptvnator/ui/components'; import { LiveLayoutSidebarStateService, PortalRailSection, diff --git a/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.spec.ts b/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.spec.ts index 4d5b8a0e1..d2020bdaa 100644 --- a/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.spec.ts +++ b/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.spec.ts @@ -17,8 +17,8 @@ import { } from '@iptvnator/portal/shared/util'; import { StalkerStore } from '@iptvnator/portal/stalker/data-access'; import { XtreamStore } from '@iptvnator/portal/xtream/data-access'; -import { PlaylistsService, SettingsStore } from 'services'; -import { PlaylistMeta } from 'shared-interfaces'; +import { PlaylistsService, SettingsStore } from '@iptvnator/services'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { WorkspaceStartupPreferencesService, WORKSPACE_SHELL_ACTIONS, diff --git a/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.ts b/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.ts index 1c3a288fe..100a35141 100644 --- a/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.ts +++ b/libs/workspace/shell/feature/src/lib/workspace-shell/services/workspace-shell.facade.ts @@ -33,9 +33,9 @@ import { WorkspaceSearchCapability, WorkspaceStartupPreferencesService, } from '@iptvnator/workspace/shell/util'; -import { DownloadsService, PlaylistsService, SettingsStore } from 'services'; -import { PlaylistActions, selectAllPlaylistsMeta } from 'm3u-state'; -import { PlaylistMeta } from 'shared-interfaces'; +import { DownloadsService, PlaylistsService, SettingsStore } from '@iptvnator/services'; +import { PlaylistActions, selectAllPlaylistsMeta } from '@iptvnator/m3u-state'; +import { PlaylistMeta } from '@iptvnator/shared/interfaces'; import { WorkspaceAccountInfoData, WORKSPACE_SHELL_ACTIONS, diff --git a/libs/workspace/shell/feature/src/lib/workspace-shell/workspace-shell.component.ts b/libs/workspace/shell/feature/src/lib/workspace-shell/workspace-shell.component.ts index 856b6c7be..e672a6ae0 100644 --- a/libs/workspace/shell/feature/src/lib/workspace-shell/workspace-shell.component.ts +++ b/libs/workspace/shell/feature/src/lib/workspace-shell/workspace-shell.component.ts @@ -1,6 +1,6 @@ import { Component, inject } from '@angular/core'; import { RouterOutlet } from '@angular/router'; -import { ExternalPlaybackDockComponent } from 'components'; +import { ExternalPlaybackDockComponent } from '@iptvnator/ui/components'; import { PlaylistDropOverlayComponent, PlaylistDropZoneDirective, diff --git a/libs/workspace/shell/feature/src/lib/workspace-sources-filters-panel/workspace-sources-filters-panel.component.ts b/libs/workspace/shell/feature/src/lib/workspace-sources-filters-panel/workspace-sources-filters-panel.component.ts index 97e3a7531..a68443222 100644 --- a/libs/workspace/shell/feature/src/lib/workspace-sources-filters-panel/workspace-sources-filters-panel.component.ts +++ b/libs/workspace/shell/feature/src/lib/workspace-sources-filters-panel/workspace-sources-filters-panel.component.ts @@ -11,7 +11,7 @@ import { FilterActions, selectActiveTypeFilters, selectAllPlaylistsMeta, -} from 'm3u-state'; +} from '@iptvnator/m3u-state'; import { TranslatePipe } from '@ngx-translate/core'; type PlaylistFilterId = 'all' | 'm3u' | 'xtream' | 'stalker'; diff --git a/libs/workspace/shell/feature/src/lib/workspace-sources/workspace-sources.component.ts b/libs/workspace/shell/feature/src/lib/workspace-sources/workspace-sources.component.ts index 121ed9946..67b3de996 100644 --- a/libs/workspace/shell/feature/src/lib/workspace-sources/workspace-sources.component.ts +++ b/libs/workspace/shell/feature/src/lib/workspace-sources/workspace-sources.component.ts @@ -7,9 +7,9 @@ import { ActivatedRoute } from '@angular/router'; import { Store } from '@ngrx/store'; import { RecentPlaylistsComponent } from '@iptvnator/playlist/shared/ui'; import { TranslatePipe, TranslateService } from '@ngx-translate/core'; -import { selectActiveTypeFilters, selectAllPlaylistsMeta } from 'm3u-state'; +import { selectActiveTypeFilters, selectAllPlaylistsMeta } from '@iptvnator/m3u-state'; import { map, startWith } from 'rxjs'; -import { SortBy, SortOrder, SortService } from 'services'; +import { SortBy, SortOrder, SortService } from '@iptvnator/services'; import { WORKSPACE_SHELL_ACTIONS, WorkspacePlaylistType, diff --git a/libs/workspace/shell/util/src/lib/workspace-shell-actions.ts b/libs/workspace/shell/util/src/lib/workspace-shell-actions.ts index 4c3a7ea8c..56f03e965 100644 --- a/libs/workspace/shell/util/src/lib/workspace-shell-actions.ts +++ b/libs/workspace/shell/util/src/lib/workspace-shell-actions.ts @@ -1,5 +1,5 @@ import { InjectionToken } from '@angular/core'; -import type { XtreamAccountInfoDialogData } from 'shared-interfaces'; +import type { XtreamAccountInfoDialogData } from '@iptvnator/shared/interfaces'; export type WorkspacePlaylistType = | 'xtream' diff --git a/libs/workspace/shell/util/src/lib/workspace-startup-preferences.service.spec.ts b/libs/workspace/shell/util/src/lib/workspace-startup-preferences.service.spec.ts index 76484f700..9c28b4015 100644 --- a/libs/workspace/shell/util/src/lib/workspace-startup-preferences.service.spec.ts +++ b/libs/workspace/shell/util/src/lib/workspace-startup-preferences.service.spec.ts @@ -1,8 +1,8 @@ import { signal } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { of } from 'rxjs'; -import { PlaylistsService, SettingsStore } from 'services'; -import { StartupBehavior } from 'shared-interfaces'; +import { PlaylistsService, SettingsStore } from '@iptvnator/services'; +import { StartupBehavior } from '@iptvnator/shared/interfaces'; import { WorkspaceStartupPreferencesService } from './workspace-startup-preferences.service'; describe('WorkspaceStartupPreferencesService', () => { diff --git a/libs/workspace/shell/util/src/lib/workspace-startup-preferences.service.ts b/libs/workspace/shell/util/src/lib/workspace-startup-preferences.service.ts index 4fe4ed3a0..215ece15d 100644 --- a/libs/workspace/shell/util/src/lib/workspace-startup-preferences.service.ts +++ b/libs/workspace/shell/util/src/lib/workspace-startup-preferences.service.ts @@ -1,9 +1,9 @@ import { Injectable, inject } from '@angular/core'; import { firstValueFrom } from 'rxjs'; -import { PlaylistsService, SettingsStore } from 'services'; +import { PlaylistsService, SettingsStore } from '@iptvnator/services'; import { StartupBehavior, -} from 'shared-interfaces'; +} from '@iptvnator/shared/interfaces'; import { parseWorkspaceShellRoute } from './navigation/workspace-shell-route.utils'; const LAST_RESTORABLE_ROUTE_STORAGE_KEY = 'workspace-last-restorable-route-v1'; diff --git a/tools/packaging/project.json b/tools/packaging/project.json index b12d400c3..2a56b3a75 100644 --- a/tools/packaging/project.json +++ b/tools/packaging/project.json @@ -21,5 +21,5 @@ } } }, - "tags": ["scope:tools", "type:tool"] + "tags": ["scope:tools", "domain:packaging", "type:tool"] } diff --git a/tsconfig.base.json b/tsconfig.base.json index 7e89c5805..57a4047ec 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -68,25 +68,35 @@ "libs/workspace/shell/util/src/index.ts" ], "@iptvnator/pipes": ["libs/ui/pipes/src/index.ts"], - "@package": ["./package.json"], - "components": ["libs/ui/components/src/index.ts"], - "m3u-state": ["libs/m3u-state/src/index.ts"], - "m3u-utils": ["libs/shared/m3u-utils/src/index.ts"], - "services": ["libs/services/src/index.ts"], - "shared-interfaces": ["libs/shared/interfaces/src/index.ts"], - "shared-portals": ["libs/ui/shared-portals/src/index.ts"], - "remote-control": ["libs/ui/remote-control/src/index.ts"], - "database": ["libs/shared/database/src/index.ts"], - "database-schema": ["libs/shared/database/src/lib/schema.ts"], - "database-path-utils": [ + "@iptvnator/ui/components": ["libs/ui/components/src/index.ts"], + "@iptvnator/m3u-state": ["libs/m3u-state/src/index.ts"], + "@iptvnator/shared/m3u-utils": [ + "libs/shared/m3u-utils/src/index.ts" + ], + "@iptvnator/services": ["libs/services/src/index.ts"], + "@iptvnator/shared/interfaces": [ + "libs/shared/interfaces/src/index.ts" + ], + "@iptvnator/ui/shared-portals": [ + "libs/ui/shared-portals/src/index.ts" + ], + "@iptvnator/ui/remote-control": [ + "libs/ui/remote-control/src/index.ts" + ], + "@iptvnator/shared/database": ["libs/shared/database/src/index.ts"], + "@iptvnator/shared/database/schema": [ + "libs/shared/database/src/lib/schema.ts" + ], + "@iptvnator/shared/database/path-utils": [ "libs/shared/database/src/lib/path-utils.ts" ], - "workspace-dashboard-feature": [ + "@iptvnator/workspace/dashboard/feature": [ "libs/workspace/dashboard/feature/src/index.ts" ], - "workspace-dashboard-data-access": [ + "@iptvnator/workspace/dashboard/data-access": [ "libs/workspace/dashboard/data-access/src/index.ts" - ] + ], + "@package": ["./package.json"] } }, "exclude": ["node_modules", "tmp"],