diff --git a/src/browse-media-util.ts b/src/browse-media-util.ts index 381053a8..6582ff66 100644 --- a/src/browse-media-util.ts +++ b/src/browse-media-util.ts @@ -67,7 +67,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 +86,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 +183,7 @@ export class BrowseMediaUtil { */ static async fetchLatestMediaAndDispatchViewChange( node: HTMLElement, - hass: HomeAssistant & ExtendedHomeAssistant, + hass: HomeAssistant, view: Readonly, browseMediaQueryParameters: BrowseMediaQueryParameters, ): Promise { @@ -225,7 +225,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..1b348f39 100644 --- a/src/components/elements.ts +++ b/src/components/elements.ts @@ -68,12 +68,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 +137,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 +235,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 +243,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..e315a603 100644 --- a/src/components/gallery.ts +++ b/src/components/gallery.ts @@ -30,7 +30,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 +98,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..21590a37 100644 --- a/src/components/menu.ts +++ b/src/components/menu.ts @@ -55,7 +55,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..1e462b21 100644 --- a/src/components/submenu.ts +++ b/src/components/submenu.ts @@ -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..ae3acb4b 100644 --- a/src/components/surround-thumbnails.ts +++ b/src/components/surround-thumbnails.ts @@ -23,7 +23,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 +51,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..063de768 100644 --- a/src/components/timeline.ts +++ b/src/components/timeline.ts @@ -239,7 +239,7 @@ class TimelineEventManager { */ public async fetchEventsIfNecessary( element: HTMLElement, - hass: HomeAssistant & ExtendedHomeAssistant, + hass: HomeAssistant, cameras: Map, media: TimelineMediaType, start: Date, @@ -262,7 +262,7 @@ class TimelineEventManager { */ protected async _fetchEvents( element: HTMLElement, - hass: HomeAssistant & ExtendedHomeAssistant, + hass: HomeAssistant, cameras: Map, media: TimelineMediaType, start?: Date, @@ -328,7 +328,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 +374,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..dc8a66a2 100644 --- a/src/components/viewer.ts +++ b/src/components/viewer.ts @@ -46,7 +46,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 +120,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..3f1886b9 100644 --- a/src/resolved-media.ts +++ b/src/resolved-media.ts @@ -38,7 +38,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