diff --git a/src/browse-media-util.ts b/src/browse-media-util.ts index 381053a8..0e8dbd19 100644 --- a/src/browse-media-util.ts +++ b/src/browse-media-util.ts @@ -5,7 +5,6 @@ import type { BrowseMediaQueryParameters, FrigateBrowseMediaSource, CameraConfig, - ExtendedHomeAssistant, } from './types.js'; import { View } from './view.js'; import { frigateBrowseMediaSourceSchema } from './types.js'; @@ -67,7 +66,7 @@ export class BrowseMediaUtil { * @returns A FrigateBrowseMediaSource object or null on malformed. */ static async browseMedia( - hass: HomeAssistant & ExtendedHomeAssistant, + hass: HomeAssistant, media_content_id: string, ): Promise { const request = { @@ -86,7 +85,7 @@ export class BrowseMediaUtil { * @returns A FrigateBrowseMediaSource object or null on malformed. */ static async browseMediaQuery( - hass: HomeAssistant & ExtendedHomeAssistant, + hass: HomeAssistant, params: BrowseMediaQueryParameters, ): Promise { return this.browseMedia( @@ -183,7 +182,7 @@ export class BrowseMediaUtil { */ static async fetchLatestMediaAndDispatchViewChange( node: HTMLElement, - hass: HomeAssistant & ExtendedHomeAssistant, + hass: HomeAssistant, view: Readonly, browseMediaQueryParameters: BrowseMediaQueryParameters, ): Promise { @@ -225,7 +224,7 @@ export class BrowseMediaUtil { */ static async fetchChildMediaAndDispatchViewChange( node: HTMLElement, - hass: HomeAssistant & ExtendedHomeAssistant, + hass: HomeAssistant, view: Readonly, child: Readonly, ): Promise { diff --git a/src/card.ts b/src/card.ts index 6c589271..7117b263 100644 --- a/src/card.ts +++ b/src/card.ts @@ -132,7 +132,7 @@ console.info( @customElement('frigate-card') export class FrigateCard extends LitElement { @property({ attribute: false }) - protected _hass?: HomeAssistant & ExtendedHomeAssistant; + protected _hass?: ExtendedHomeAssistant; // The main base configuration object. For most usecases use getConfig() to // get the correct configuration (which will return overrides as appropriate). @@ -188,7 +188,7 @@ export class FrigateCard extends LitElement { /** * Set the Home Assistant object. */ - set hass(hass: HomeAssistant & ExtendedHomeAssistant) { + set hass(hass: ExtendedHomeAssistant) { this._hass = hass; // Manually set hass in the menu, elements and image. This is to allow these diff --git a/src/common.ts b/src/common.ts index 4bf4301c..68a27adb 100644 --- a/src/common.ts +++ b/src/common.ts @@ -54,7 +54,7 @@ export function getParseErrorKeys(error: z.ZodError): string[] { * @returns The parsed valid response or null on malformed. */ export async function homeAssistantWSRequest( - hass: HomeAssistant & ExtendedHomeAssistant, + hass: HomeAssistant, schema: ZodSchema, request: MessageBase, ): Promise { @@ -88,7 +88,7 @@ export async function homeAssistantWSRequest( * @returns The signed URL, or null if the response was malformed. */ export async function homeAssistantSignPath( - hass: HomeAssistant & ExtendedHomeAssistant, + hass: ExtendedHomeAssistant, path: string, expires?: number, ): Promise { diff --git a/src/components/elements.ts b/src/components/elements.ts index 9915a931..19f118b7 100644 --- a/src/components/elements.ts +++ b/src/components/elements.ts @@ -3,7 +3,6 @@ import { HomeAssistant } from 'custom-card-helpers'; import { customElement, property, query } from 'lit/decorators.js'; import { - ExtendedHomeAssistant, FrigateConditional, MenuButton, MenuIcon, @@ -68,12 +67,12 @@ class FrigateCardElementsCore extends LitElement { protected conditionState?: ConditionState; protected _root: HTMLElement | null = null; - protected _hass?: HomeAssistant & ExtendedHomeAssistant; + protected _hass?: HomeAssistant; /** * Set Home Assistant object. */ - set hass(hass: HomeAssistant & ExtendedHomeAssistant) { + set hass(hass: HomeAssistant) { if (this._root) { // eslint-disable-next-line @typescript-eslint/no-explicit-any (this._root as any).hass = hass; @@ -137,7 +136,7 @@ class FrigateCardElementsCore extends LitElement { @customElement('frigate-card-elements') export class FrigateCardElements extends LitElement { @property({ attribute: false }) - public hass?: HomeAssistant & ExtendedHomeAssistant; + public hass?: HomeAssistant; @property({ attribute: false }) protected elements: PictureElements; @@ -235,7 +234,7 @@ export class FrigateCardElements extends LitElement { @customElement('frigate-card-conditional') export class FrigateCardElementsConditional extends LitElement { protected _config?: FrigateConditional; - protected _hass?: HomeAssistant & ExtendedHomeAssistant; + protected _hass?: HomeAssistant; @query('frigate-card-elements-core') _core?: FrigateCardElementsCore; @@ -243,7 +242,7 @@ export class FrigateCardElementsConditional extends LitElement { /** * Set the Home Assistant object. */ - set hass(hass: HomeAssistant & ExtendedHomeAssistant) { + set hass(hass: HomeAssistant) { if (this._core) { this._core.hass = hass; } diff --git a/src/components/gallery.ts b/src/components/gallery.ts index 3ab4f931..9bbc476d 100644 --- a/src/components/gallery.ts +++ b/src/components/gallery.ts @@ -13,7 +13,6 @@ import { customElement, property } from 'lit/decorators.js'; import { CameraConfig, - ExtendedHomeAssistant, GalleryConfig, frigateCardConfigDefaults, } from '../types.js'; @@ -30,7 +29,7 @@ import galleryStyle from '../scss/gallery.scss'; @customElement('frigate-card-gallery') export class FrigateCardGallery extends LitElement { @property({ attribute: false }) - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: HomeAssistant; @property({ attribute: false }) protected view?: Readonly; @@ -98,7 +97,7 @@ export class FrigateCardGallery extends LitElement { @customElement('frigate-card-gallery-core') export class FrigateCardGalleryCore extends LitElement { @property({ attribute: false }) - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: HomeAssistant; @property({ attribute: false }) protected view?: Readonly; diff --git a/src/components/live.ts b/src/components/live.ts index f4612078..b3d1593b 100644 --- a/src/components/live.ts +++ b/src/components/live.ts @@ -66,7 +66,7 @@ const URL_SIGN_REFRESH_THRESHOLD_SECONDS = 1 * 60 * 60; @customElement('frigate-card-live') export class FrigateCardLive extends LitElement { @property({ attribute: false }) - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: ExtendedHomeAssistant; @property({ attribute: false }) protected view?: Readonly; @@ -182,7 +182,7 @@ export class FrigateCardLive extends LitElement { @customElement('frigate-card-live-carousel') export class FrigateCardLiveCarousel extends FrigateCardMediaCarousel { @property({ attribute: false }) - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: ExtendedHomeAssistant; @property({ attribute: false }) protected view?: Readonly; @@ -531,7 +531,7 @@ export class FrigateCardLiveCarousel extends FrigateCardMediaCarousel { @customElement('frigate-card-live-provider') export class FrigateCardLiveProvider extends LitElement { @property({ attribute: false }) - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: ExtendedHomeAssistant; @property({ attribute: false }) protected cameraConfig?: CameraConfig; @@ -642,7 +642,7 @@ export class FrigateCardLiveProvider extends LitElement { @customElement('frigate-card-live-ha') export class FrigateCardLiveFrigate extends LitElement { @property({ attribute: false }) - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: HomeAssistant; @property({ attribute: false }) protected cameraConfig?: CameraConfig; @@ -731,7 +731,7 @@ export class FrigateCardLiveWebRTCCard extends LitElement { @property({ attribute: false }) protected cameraConfig?: CameraConfig; - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: HomeAssistant; // A task to await the load of the WebRTC component. protected _webrtcTask = new Task(this, this._getWebRTCCardElement, () => [1]); @@ -888,7 +888,7 @@ export class FrigateCardLiveJSMPEG extends LitElement { @property({ attribute: false, hasChanged: contentsChanged }) protected jsmpegConfig?: JSMPEGConfig; - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: ExtendedHomeAssistant; protected _jsmpegCanvasElement?: HTMLCanvasElement; protected _jsmpegVideoPlayer?: JSMpeg.VideoElement; diff --git a/src/components/menu.ts b/src/components/menu.ts index b253c47c..37964c27 100644 --- a/src/components/menu.ts +++ b/src/components/menu.ts @@ -12,7 +12,6 @@ import './submenu.js'; import type { ActionsConfig, ActionType, - ExtendedHomeAssistant, MenuButton, MenuConfig, StateParameters, @@ -55,7 +54,7 @@ export const FRIGATE_ICON_FILLED = @customElement('frigate-card-menu') export class FrigateCardMenu extends LitElement { @property({ attribute: false }) - public hass?: HomeAssistant & ExtendedHomeAssistant; + public hass?: HomeAssistant; set menuConfig(menuConfig: MenuConfig) { this._menuConfig = menuConfig; diff --git a/src/components/submenu.ts b/src/components/submenu.ts index 97a1d835..2d1cf9c0 100644 --- a/src/components/submenu.ts +++ b/src/components/submenu.ts @@ -10,7 +10,7 @@ import { import { ifDefined } from 'lit/directives/if-defined.js'; import { styleMap } from 'lit/directives/style-map.js'; -import { ExtendedHomeAssistant, MenuSubmenu, MenuSubmenuItem } from '../types.js'; +import { MenuSubmenu, MenuSubmenuItem } from '../types.js'; import { actionHandler } from '../action-handler-directive.js'; import submenuStyle from '../scss/submenu.scss'; @@ -18,7 +18,7 @@ import submenuStyle from '../scss/submenu.scss'; @customElement('frigate-card-submenu') export class FrigateCardSubmenu extends LitElement { @property({ attribute: false }) - public hass?: HomeAssistant & ExtendedHomeAssistant; + public hass?: HomeAssistant; @property({ attribute: false }) public submenu?: MenuSubmenu; diff --git a/src/components/surround-thumbnails.ts b/src/components/surround-thumbnails.ts index 835bde6d..60eb18c6 100644 --- a/src/components/surround-thumbnails.ts +++ b/src/components/surround-thumbnails.ts @@ -6,7 +6,6 @@ import { customElement, property } from 'lit/decorators.js'; import { BrowseMediaUtil } from '../browse-media-util.js'; import { BrowseMediaQueryParameters, - ExtendedHomeAssistant, FrigateBrowseMediaSource, FrigateCardView, ThumbnailsControlConfig, @@ -23,7 +22,7 @@ import surroundThumbnailsStyle from '../scss/surround.scss'; @customElement('frigate-card-surround-thumbnails') export class FrigateCardSurround extends LitElement { @property({ attribute: false }) - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: HomeAssistant; @property({ attribute: false }) protected view?: Readonly; @@ -51,12 +50,12 @@ export class FrigateCardSurround extends LitElement { * @returns */ protected async _fetchMedia([hass, view, browseMediaParams]: ( - | (HomeAssistant & ExtendedHomeAssistant) + | HomeAssistant | Readonly | BrowseMediaQueryParameters | undefined )[]): Promise { - hass = hass as HomeAssistant & ExtendedHomeAssistant; + hass = hass as HomeAssistant; view = view as Readonly; browseMediaParams = browseMediaParams as BrowseMediaQueryParameters; diff --git a/src/components/timeline.ts b/src/components/timeline.ts index ebce82ae..1721b68d 100644 --- a/src/components/timeline.ts +++ b/src/components/timeline.ts @@ -26,7 +26,6 @@ import { isEqual } from 'lodash-es'; import { BrowseMediaUtil } from '../browse-media-util'; import { CameraConfig, - ExtendedHomeAssistant, FrigateBrowseMediaSource, MEDIA_CLASS_PLAYLIST, MEDIA_TYPE_PLAYLIST, @@ -239,7 +238,7 @@ class TimelineEventManager { */ public async fetchEventsIfNecessary( element: HTMLElement, - hass: HomeAssistant & ExtendedHomeAssistant, + hass: HomeAssistant, cameras: Map, media: TimelineMediaType, start: Date, @@ -262,7 +261,7 @@ class TimelineEventManager { */ protected async _fetchEvents( element: HTMLElement, - hass: HomeAssistant & ExtendedHomeAssistant, + hass: HomeAssistant, cameras: Map, media: TimelineMediaType, start?: Date, @@ -328,7 +327,7 @@ class TimelineEventManager { @customElement('frigate-card-timeline') export class FrigateCardTimeline extends LitElement { @property({ attribute: false }) - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: HomeAssistant; @property({ attribute: false }) protected view?: Readonly; @@ -374,7 +373,7 @@ export class FrigateCardTimeline extends LitElement { @customElement('frigate-card-timeline-core') export class FrigateCardTimelineCore extends LitElement { @property({ attribute: false }) - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: HomeAssistant; @property({ attribute: false }) protected view?: Readonly; diff --git a/src/components/viewer.ts b/src/components/viewer.ts index ba4e83c7..c11d65e9 100644 --- a/src/components/viewer.ts +++ b/src/components/viewer.ts @@ -20,7 +20,6 @@ import type { BrowseMediaQueryParametersBase, FrigateBrowseMediaSource, CameraConfig, - ExtendedHomeAssistant, MediaShowInfo, TransitionEffect, ViewerConfig, @@ -46,7 +45,7 @@ import viewerStyle from '../scss/viewer.scss'; @customElement('frigate-card-viewer') export class FrigateCardViewer extends LitElement { @property({ attribute: false }) - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: HomeAssistant; @property({ attribute: false }) protected view?: Readonly; @@ -120,7 +119,7 @@ export class FrigateCardViewer extends LitElement { @customElement('frigate-card-viewer-carousel') export class FrigateCardViewerCarousel extends FrigateCardMediaCarousel { @property({ attribute: false }) - protected hass?: HomeAssistant & ExtendedHomeAssistant; + protected hass?: HomeAssistant; @property({ attribute: false }) protected view?: Readonly; diff --git a/src/resolved-media.ts b/src/resolved-media.ts index 6b7bd0e6..afd3e2ac 100644 --- a/src/resolved-media.ts +++ b/src/resolved-media.ts @@ -1,7 +1,6 @@ import { HomeAssistant } from 'custom-card-helpers'; import { homeAssistantWSRequest } from './common.js'; import { - ExtendedHomeAssistant, FrigateBrowseMediaSource, ResolvedMedia, resolvedMediaSchema, @@ -38,7 +37,7 @@ export class ResolvedMediaCache { export class ResolvedMediaUtil { static async resolveMedia( - hass: HomeAssistant & ExtendedHomeAssistant, + hass: HomeAssistant, mediaSource?: FrigateBrowseMediaSource, cache?: ResolvedMediaCache, ): Promise { diff --git a/src/types.ts b/src/types.ts index ad4a12e4..e87e198a 100644 --- a/src/types.ts +++ b/src/types.ts @@ -2,6 +2,7 @@ import { StyleInfo } from 'lit/directives/style-map.js'; import { CallServiceActionConfig, CustomActionConfig, + HomeAssistant, LovelaceCard, LovelaceCardEditor, MoreInfoActionConfig, @@ -932,7 +933,7 @@ const menuButtonSchema = z.discriminatedUnion('type', [ menuSubmenuSchema, ]); export type MenuButton = z.infer; -export interface ExtendedHomeAssistant { +export interface ExtendedHomeAssistant extends HomeAssistant { hassUrl(path?): string; themes: Themes & { darkMode?: boolean