chore: Enforce consistent type imports via @typescript-eslint/consistent-type-imports (#2545)

This commit is contained in:
Dermot Duffy
2026-06-30 17:45:13 -07:00
committed by dermotduffy
parent 8f4ebcc0de
commit 7dc29865b8
589 changed files with 2419 additions and 2103 deletions
@@ -1,25 +1,25 @@
import { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import { CameraConfig } from '../../config/schema/cameras';
import type { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import type { CameraConfig } from '../../config/schema/cameras';
import { BROWSE_MEDIA_CACHE_SECONDS } from '../../ha/browse-media/types';
import { BrowseMediaWalker } from '../../ha/browse-media/walker';
import type { BrowseMediaWalker } from '../../ha/browse-media/walker';
import { getMediaDownloadPath } from '../../ha/download';
import { EntityRegistryManager } from '../../ha/registry/entity/types';
import { ResolvedMediaCache } from '../../ha/resolved-media';
import { HomeAssistant } from '../../ha/types';
import type { EntityRegistryManager } from '../../ha/registry/entity/types';
import type { ResolvedMediaCache } from '../../ha/resolved-media';
import type { HomeAssistant } from '../../ha/types';
import { QuerySource } from '../../query-source.js';
import { Endpoint } from '../../types';
import { ViewMedia } from '../../view/item';
import { ViewItemCapabilities } from '../../view/types';
import { CameraManagerEngine } from '../engine';
import type { Endpoint } from '../../types';
import type { ViewMedia } from '../../view/item';
import type { ViewItemCapabilities } from '../../view/types';
import type { CameraManagerEngine } from '../engine';
import { GenericCameraManagerEngine } from '../generic/engine-generic';
import { CameraManagerReadOnlyConfigStore } from '../store';
import type { CameraManagerReadOnlyConfigStore } from '../store';
import {
CameraEventCallback,
CameraManagerRequestCache,
CameraQuery,
EventQuery,
PartialEventQuery,
QueryType,
type CameraEventCallback,
type CameraManagerRequestCache,
type CameraQuery,
type EventQuery,
type PartialEventQuery,
} from '../types';
/**
+2 -2
View File
@@ -1,7 +1,7 @@
import { orderBy, sortedUniqBy } from 'lodash-es';
import { DateRange, MemoryRangeSet } from './range';
import { RecordingSegment } from './types';
import { MemoryRangeSet, type DateRange } from './range';
import type { RecordingSegment } from './types';
class MemoryRangedCache<Data> {
private _ranges: MemoryRangeSet = new MemoryRangeSet();
+15 -12
View File
@@ -1,25 +1,28 @@
import { uniq } from 'lodash-es';
import { ActionsExecutor } from '../card-controller/actions/types';
import { EventSubscriptionRequest } from '../card-controller/hass/event-watcher';
import { HASSManagerReadonlyInterface } from '../card-controller/hass/types';
import { PTZAction, PTZActionPhase } from '../config/schema/actions/custom/ptz';
import { CameraConfig } from '../config/schema/cameras';
import { HAEvent } from '../config/schema/common/ha-event';
import { EnabledProxyConfig, resolveProxyConfig } from '../config/schema/common/proxy';
import type { ActionsExecutor } from '../card-controller/actions/types';
import type { EventSubscriptionRequest } from '../card-controller/hass/event-watcher';
import type { HASSManagerReadonlyInterface } from '../card-controller/hass/types';
import type { PTZAction, PTZActionPhase } from '../config/schema/actions/custom/ptz';
import type { CameraConfig } from '../config/schema/cameras';
import type { HAEvent } from '../config/schema/common/ha-event';
import {
resolveProxyConfig,
type EnabledProxyConfig,
} from '../config/schema/common/proxy';
import { computeDomain } from '../ha/compute-domain';
import { matchesEventContext, matchesEventData } from '../ha/event-match';
import { getTriggerEventType } from '../ha/get-trigger-event-type';
import { Entity, EntityRegistryManager } from '../ha/registry/entity/types';
import { HassStateDifference, HomeAssistant } from '../ha/types';
import type { Entity, EntityRegistryManager } from '../ha/registry/entity/types';
import type { HassStateDifference, HomeAssistant } from '../ha/types';
import { localize } from '../localize/localize';
import { CapabilitiesRaw, CapabilityKey, Endpoint } from '../types';
import type { CapabilitiesRaw, CapabilityKey, Endpoint } from '../types';
import { arrayify } from '../utils/basic';
import { liveProviderSupports2WayAudio } from '../utils/live-provider';
import { Capabilities } from './capabilities';
import { CameraManagerEngine } from './engine';
import type { CameraManagerEngine } from './engine';
import { CameraNoIDError } from './error';
import {
import type {
CameraEndpoints,
CameraEndpointsContext,
CameraEventCallback,
+4 -4
View File
@@ -1,10 +1,10 @@
import {
CapabilitiesRaw,
CapabilityKey,
capabilityKeys,
PTZCapabilities,
type CapabilitiesRaw,
type CapabilityKey,
type PTZCapabilities,
} from '../types';
import { CapabilitySearchKeys } from './types';
import type { CapabilitySearchKeys } from './types';
export class Capabilities {
private _capabilities: CapabilitiesRaw;
+8 -8
View File
@@ -1,14 +1,14 @@
import { HASSManagerReadonlyInterface } from '../card-controller/hass/types';
import { CameraConfig } from '../config/schema/cameras';
import type { HASSManagerReadonlyInterface } from '../card-controller/hass/types';
import type { CameraConfig } from '../config/schema/cameras';
import { BrowseMediaWalker } from '../ha/browse-media/walker';
import { DeviceRegistryManager } from '../ha/registry/device';
import { EntityRegistryManager } from '../ha/registry/entity/types';
import { ResolvedMediaCache } from '../ha/resolved-media';
import { HomeAssistant } from '../ha/types';
import type { DeviceRegistryManager } from '../ha/registry/device';
import type { EntityRegistryManager } from '../ha/registry/entity/types';
import type { ResolvedMediaCache } from '../ha/resolved-media';
import type { HomeAssistant } from '../ha/types';
import { RecordingSegmentsCache } from './cache';
import { CameraManagerEngine } from './engine';
import type { CameraManagerEngine } from './engine';
import { CameraNoEntityError } from './error';
import { CameraEventCallback, CameraManagerRequestCache, Engine } from './types';
import { CameraManagerRequestCache, Engine, type CameraEventCallback } from './types';
import { getCameraEntityFromConfig } from './utils/camera-entity-from-config';
interface CameraManagerEngineFactoryOptions {
+8 -8
View File
@@ -1,11 +1,11 @@
import { CameraConfig } from '../config/schema/cameras';
import { HomeAssistant } from '../ha/types';
import { Endpoint } from '../types';
import { ViewMedia } from '../view/item';
import { ViewItemCapabilities } from '../view/types';
import { Camera } from './camera';
import { CameraManagerReadOnlyConfigStore } from './store';
import {
import type { CameraConfig } from '../config/schema/cameras';
import type { HomeAssistant } from '../ha/types';
import type { Endpoint } from '../types';
import type { ViewMedia } from '../view/item';
import type { ViewItemCapabilities } from '../view/types';
import type { Camera } from './camera';
import type { CameraManagerReadOnlyConfigStore } from './store';
import type {
CameraManagerCameraMetadata,
CameraQuery,
DefaultQueryParameters,
+2 -2
View File
@@ -1,5 +1,5 @@
import { HomeAssistant } from '../ha/types';
import { Camera, CameraInitializationOptions } from './camera';
import type { HomeAssistant } from '../ha/types';
import { Camera, type CameraInitializationOptions } from './camera';
import { CameraNoEntityError } from './error';
/**
+17 -14
View File
@@ -1,21 +1,21 @@
import { format } from 'date-fns';
import { ActionsExecutor } from '../../card-controller/actions/types';
import { PTZAction, PTZActionPhase } from '../../config/schema/actions/custom/ptz';
import { CameraConfig } from '../../config/schema/cameras';
import { Entity, EntityRegistryManager } from '../../ha/registry/entity/types';
import { HomeAssistant } from '../../ha/types';
import type { ActionsExecutor } from '../../card-controller/actions/types';
import type { PTZAction, PTZActionPhase } from '../../config/schema/actions/custom/ptz';
import type { CameraConfig } from '../../config/schema/cameras';
import type { Entity, EntityRegistryManager } from '../../ha/registry/entity/types';
import type { HomeAssistant } from '../../ha/types';
import { SEVERITIES } from '../../severity';
import {
CapabilitiesRaw,
Endpoint,
PTZCapabilities,
PTZMovementType,
type CapabilitiesRaw,
type Endpoint,
type PTZCapabilities,
} from '../../types';
import { errorToConsole } from '../../utils/basic';
import { Camera, CameraInitializationOptions } from '../camera';
import { Camera, type CameraInitializationOptions } from '../camera';
import { CameraNoEntityError } from '../error';
import { CameraEndpoints, CameraEndpointsContext } from '../types';
import type { CameraEndpoints, CameraEndpointsContext } from '../types';
import { getCameraEntityFromConfig } from '../utils/camera-entity-from-config';
import {
getGo2RTCMetadataEndpoint,
@@ -25,11 +25,14 @@ import { getPTZCapabilitiesFromCameraConfig } from '../utils/ptz';
import { getPTZInfo } from './requests';
import {
FRIGATE_SEVERITY_MAP,
FrigateEventChange,
FrigateReviewChange,
PTZInfo,
type FrigateEventChange,
type FrigateReviewChange,
type PTZInfo,
} from './types';
import { FrigateWatcherRequest, FrigateWatcherSubscriptionInterface } from './watcher';
import type {
FrigateWatcherRequest,
FrigateWatcherSubscriptionInterface,
} from './watcher';
const CAMERA_BIRDSEYE = 'birdseye' as const;
+45 -45
View File
@@ -1,61 +1,61 @@
import { add, endOfHour, fromUnixTime, startOfHour } from 'date-fns';
import { isEqual, orderBy, throttle, uniqWith } from 'lodash-es';
import { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import { CameraConfig } from '../../config/schema/cameras';
import type { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import type { CameraConfig } from '../../config/schema/cameras';
import { getEntityTitle } from '../../ha/get-entity-title';
import { EntityRegistryManager } from '../../ha/registry/entity/types';
import { HomeAssistant } from '../../ha/types';
import type { EntityRegistryManager } from '../../ha/registry/entity/types';
import type { HomeAssistant } from '../../ha/types';
import { hasUnsupportedFilters, QuerySource } from '../../query-source.js';
import { Endpoint } from '../../types';
import type { Endpoint } from '../../types';
import {
allPromises,
formatDate,
prettifyTitle,
runWhenIdleIfSupported,
} from '../../utils/basic';
import { ViewMedia, ViewMediaType } from '../../view/item';
import { ViewMediaType, type ViewMedia } from '../../view/item';
import { ViewItemClassifier } from '../../view/item-classifier';
import { ViewItemCapabilities } from '../../view/types';
import { RecordingSegmentsCache } from '../cache';
import { Camera } from '../camera';
import type { ViewItemCapabilities } from '../../view/types';
import type { RecordingSegmentsCache } from '../cache';
import type { Camera } from '../camera';
import {
CAMERA_MANAGER_ENGINE_EVENT_LIMIT_DEFAULT,
CameraManagerEngine,
type CameraManagerEngine,
} from '../engine';
import { GenericCameraManagerEngine } from '../generic/engine-generic';
import { DateRange } from '../range';
import { CameraManagerReadOnlyConfigStore } from '../store';
import type { DateRange } from '../range';
import type { CameraManagerReadOnlyConfigStore } from '../store';
import {
CameraEventCallback,
CameraManagerCameraMetadata,
CameraManagerRequestCache,
CameraQuery,
DefaultQueryParameters,
Engine,
EngineOptions,
EventQuery,
EventQueryResults,
EventQueryResultsMap,
MediaMetadataQuery,
MediaMetadataQueryResults,
MediaMetadataQueryResultsMap,
PartialEventQuery,
PartialRecordingQuery,
PartialRecordingSegmentsQuery,
PartialReviewQuery,
QueryResults,
QueryResultsType,
QueryReturnType,
QueryType,
RecordingQuery,
RecordingQueryResults,
RecordingQueryResultsMap,
RecordingSegment,
RecordingSegmentsQuery,
RecordingSegmentsQueryResultsMap,
ReviewQuery,
ReviewQueryResultsMap,
type CameraEventCallback,
type CameraManagerCameraMetadata,
type CameraManagerRequestCache,
type CameraQuery,
type DefaultQueryParameters,
type EngineOptions,
type EventQuery,
type EventQueryResults,
type EventQueryResultsMap,
type MediaMetadataQuery,
type MediaMetadataQueryResults,
type MediaMetadataQueryResultsMap,
type PartialEventQuery,
type PartialRecordingQuery,
type PartialRecordingSegmentsQuery,
type PartialReviewQuery,
type QueryResults,
type QueryReturnType,
type RecordingQuery,
type RecordingQueryResults,
type RecordingQueryResultsMap,
type RecordingSegment,
type RecordingSegmentsQuery,
type RecordingSegmentsQueryResultsMap,
type ReviewQuery,
type ReviewQueryResultsMap,
} from '../types';
import { FrigateCamera, isBirdseye } from './camera';
import { FrigateViewMediaFactory } from './media';
@@ -66,18 +66,18 @@ import {
getRecordingSegments,
getRecordingsSummary,
getReviews,
NativeFrigateEventQuery,
NativeFrigateRecordingSegmentsQuery,
retainEvent,
setReviewsReviewed,
type NativeFrigateEventQuery,
type NativeFrigateRecordingSegmentsQuery,
} from './requests';
import {
FRIGATE_SEVERITY_MAP,
FrigateEventQueryResults,
FrigateRecording,
FrigateRecordingQueryResults,
FrigateRecordingSegmentsQueryResults,
FrigateReviewQueryResults,
type FrigateEventQueryResults,
type FrigateRecording,
type FrigateRecordingQueryResults,
type FrigateRecordingSegmentsQueryResults,
type FrigateReviewQueryResults,
} from './types';
import { FrigateEventWatcher, FrigateReviewWatcher } from './watcher';
@@ -1,4 +1,4 @@
import { ViewMedia } from '../../view/item';
import type { ViewMedia } from '../../view/item';
import {
FrigateEventViewMedia,
FrigateRecordingViewMedia,
+6 -6
View File
@@ -1,16 +1,16 @@
import { fromUnixTime } from 'date-fns';
import { isEqual } from 'lodash-es';
import { CameraConfig } from '../../config/schema/cameras';
import { Severity } from '../../severity';
import type { CameraConfig } from '../../config/schema/cameras';
import type { Severity } from '../../severity';
import {
EventViewMedia,
RecordingViewMedia,
ReviewViewMedia,
ViewMedia,
ViewMediaType,
type EventViewMedia,
type RecordingViewMedia,
type ReviewViewMedia,
} from '../../view/item';
import { FrigateEvent, FrigateRecording, FrigateReview } from './types';
import type { FrigateEvent, FrigateRecording, FrigateReview } from './types';
import {
getEventMediaContentID,
getEventThumbnailURL,
+9 -9
View File
@@ -1,24 +1,24 @@
import { HomeAssistant } from '../../ha/types';
import type { HomeAssistant } from '../../ha/types';
import { homeAssistantWSRequest } from '../../ha/ws-request';
import { localize } from '../../localize/localize';
import { AdvancedCameraCardError } from '../../types';
import { RecordingSegment } from '../types';
import type { RecordingSegment } from '../types';
import {
EventSummary,
eventSummarySchema,
FrigateEvent,
frigateEventsSchema,
FrigateReview,
frigateReviewsSchema,
PTZInfo,
ptzInfoSchema,
recordingSegmentsSchema,
RecordingSummary,
recordingSummarySchema,
RetainResult,
retainResultSchema,
ReviewResult,
reviewResultSchema,
type EventSummary,
type FrigateEvent,
type FrigateReview,
type PTZInfo,
type RecordingSummary,
type RetainResult,
type ReviewResult,
} from './types';
/**
+1 -1
View File
@@ -1,7 +1,7 @@
import { z } from 'zod';
import { dayToDate } from '../../utils/basic';
import {
import type {
Engine,
EventQueryResults,
RecordingQueryResults,
+3 -3
View File
@@ -1,7 +1,7 @@
import { CameraConfig } from '../../config/schema/cameras';
import { Severity } from '../../severity';
import type { CameraConfig } from '../../config/schema/cameras';
import type { Severity } from '../../severity';
import { formatDateAndTime, prettifyTitle } from '../../utils/basic';
import {
import type {
FrigateEvent,
FrigateRecording,
FrigateReview,
+4 -4
View File
@@ -1,12 +1,12 @@
import { z } from 'zod';
import type { z } from 'zod';
import { HASSConnectionSubscriptionManager } from '../../ha/connection/subscription-manager';
import { HASSSource } from '../../ha/source';
import type { HASSSource } from '../../ha/source';
import {
FrigateEventChange,
frigateEventChangeSchema,
FrigateReviewChange,
frigateReviewChangeSchema,
type FrigateEventChange,
type FrigateReviewChange,
} from './types';
// Generic request interface for Frigate watchers
+30 -30
View File
@@ -1,39 +1,39 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
import { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import { CameraConfig } from '../../config/schema/cameras';
import type { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import type { CameraConfig } from '../../config/schema/cameras';
import { getEntityTitle } from '../../ha/get-entity-title';
import { EntityRegistryManager } from '../../ha/registry/entity/types';
import { HomeAssistant } from '../../ha/types';
import { Endpoint } from '../../types';
import { ViewMedia } from '../../view/item';
import { ViewItemCapabilities } from '../../view/types';
import type { EntityRegistryManager } from '../../ha/registry/entity/types';
import type { HomeAssistant } from '../../ha/types';
import type { Endpoint } from '../../types';
import type { ViewMedia } from '../../view/item';
import type { ViewItemCapabilities } from '../../view/types';
import { Camera } from '../camera';
import { CameraManagerEngine } from '../engine';
import { CameraManagerReadOnlyConfigStore } from '../store';
import type { CameraManagerEngine } from '../engine';
import type { CameraManagerReadOnlyConfigStore } from '../store';
import {
CameraEventCallback,
CameraManagerCameraMetadata,
CameraQuery,
DefaultQueryParameters,
Engine,
EngineOptions,
EventQuery,
EventQueryResultsMap,
MediaMetadataQuery,
MediaMetadataQueryResultsMap,
PartialEventQuery,
PartialRecordingQuery,
PartialRecordingSegmentsQuery,
PartialReviewQuery,
QueryReturnType,
QueryType,
RecordingQuery,
RecordingQueryResultsMap,
RecordingSegmentsQuery,
RecordingSegmentsQueryResultsMap,
ReviewQuery,
ReviewQueryResultsMap,
type CameraEventCallback,
type CameraManagerCameraMetadata,
type CameraQuery,
type DefaultQueryParameters,
type EngineOptions,
type EventQuery,
type EventQueryResultsMap,
type MediaMetadataQuery,
type MediaMetadataQueryResultsMap,
type PartialEventQuery,
type PartialRecordingQuery,
type PartialRecordingSegmentsQuery,
type PartialReviewQuery,
type QueryReturnType,
type QueryType,
type RecordingQuery,
type RecordingQueryResultsMap,
type RecordingSegmentsQuery,
type RecordingSegmentsQueryResultsMap,
type ReviewQuery,
type ReviewQueryResultsMap,
} from '../types';
import { getCameraEntityFromConfig } from '../utils/camera-entity-from-config';
import { getPTZCapabilitiesFromCameraConfig } from '../utils/ptz';
+39 -39
View File
@@ -3,16 +3,16 @@ import { cloneDeep, omit, sum } from 'lodash-es';
import PQueue from 'p-queue';
import { EqualityMap } from '../cache/equality-map.js';
import { CardCameraAPI } from '../card-controller/types.js';
import type { CardCameraAPI } from '../card-controller/types.js';
import { sortItems } from '../card-controller/view/sort.js';
import {
import type {
PTZAction,
PTZActionPhase,
PTZPanTiltAction,
} from '../config/schema/actions/custom/ptz.js';
import { CameraConfig, Rotation } from '../config/schema/cameras.js';
import type { CameraConfig, Rotation } from '../config/schema/cameras.js';
import { MEDIA_CHUNK_SIZE_DEFAULT } from '../const.js';
import { Endpoint } from '../types.js';
import type { Endpoint } from '../types.js';
import {
allPromises,
arrayify,
@@ -23,51 +23,51 @@ import {
import { getCameraID } from '../utils/camera.js';
import { log } from '../utils/debug.js';
import { ViewItemClassifier } from '../view/item-classifier.js';
import { ViewItem, ViewMedia } from '../view/item.js';
import { ViewItemCapabilities } from '../view/types.js';
import type { ViewItem, ViewMedia } from '../view/item.js';
import type { ViewItemCapabilities } from '../view/types.js';
import { Capabilities } from './capabilities.js';
import { CameraManagerEngineFactory } from './engine-factory.js';
import { CameraManagerEngine } from './engine.js';
import type { CameraManagerEngine } from './engine.js';
import {
CameraDuplicateIDError,
CameraNoEngineError,
CameraNoIDError,
} from './error.js';
import { CameraManagerReadOnlyConfigStore, CameraManagerStore } from './store.js';
import { CameraManagerStore, type CameraManagerReadOnlyConfigStore } from './store.js';
import {
CameraEndpoints,
CameraEndpointsContext,
CameraManagerCameraMetadata,
CameraQuery,
DefaultQueryParameters,
Engine,
EngineOptions,
EventQuery,
EventQueryResults,
EventQueryResultsMap,
MediaMetadata,
MediaMetadataQuery,
MediaMetadataQueryResults,
MediaQuery,
PartialCameraQuery,
PartialEventQuery,
PartialQueryConcreteType,
PartialRecordingQuery,
PartialRecordingSegmentsQuery,
PartialReviewQuery,
QueryResults,
QueryResultsType,
QueryReturnType,
QueryType,
RecordingQuery,
RecordingQueryResults,
RecordingQueryResultsMap,
RecordingSegmentsQuery,
RecordingSegmentsQueryResults,
RecordingSegmentsQueryResultsMap,
ResultsMap,
ReviewQuery,
ReviewQueryResults,
type CameraEndpoints,
type CameraEndpointsContext,
type CameraManagerCameraMetadata,
type CameraQuery,
type DefaultQueryParameters,
type Engine,
type EngineOptions,
type EventQuery,
type EventQueryResults,
type EventQueryResultsMap,
type MediaMetadata,
type MediaMetadataQuery,
type MediaMetadataQueryResults,
type MediaQuery,
type PartialCameraQuery,
type PartialEventQuery,
type PartialQueryConcreteType,
type PartialRecordingQuery,
type PartialRecordingSegmentsQuery,
type PartialReviewQuery,
type QueryResults,
type QueryReturnType,
type RecordingQuery,
type RecordingQueryResults,
type RecordingQueryResultsMap,
type RecordingSegmentsQuery,
type RecordingSegmentsQueryResults,
type RecordingSegmentsQueryResultsMap,
type ResultsMap,
type ReviewQuery,
type ReviewQueryResults,
} from './types.js';
export class CameraQueryClassifier {
+4 -4
View File
@@ -1,8 +1,8 @@
import { HomeAssistant } from '../../ha/types';
import { CapabilitiesRaw, Endpoint } from '../../types';
import { CameraInitializationOptions } from '../camera';
import type { HomeAssistant } from '../../ha/types';
import type { CapabilitiesRaw, Endpoint } from '../../types';
import type { CameraInitializationOptions } from '../camera';
import { EntityCamera } from '../entity-camera';
import { CameraEndpointsContext, CameraProxyConfig } from '../types';
import type { CameraEndpointsContext, CameraProxyConfig } from '../types';
import { getPTZCapabilitiesFromCameraConfig } from '../utils/ptz';
export class MotionEyeCamera extends EntityCamera {
@@ -1,44 +1,44 @@
import { add, endOfDay, parse, startOfDay } from 'date-fns';
import { orderBy } from 'lodash-es';
import { CameraConfig } from '../../config/schema/cameras';
import type { CameraConfig } from '../../config/schema/cameras';
import { getViewMediaFromBrowseMediaArray } from '../../ha/browse-media/browse-media-to-view-media';
import {
BROWSE_MEDIA_CACHE_SECONDS,
BrowseMedia,
BrowseMediaCache,
BrowseMediaMetadata,
MEDIA_CLASS_IMAGE,
MEDIA_CLASS_VIDEO,
RichBrowseMedia,
type BrowseMedia,
type BrowseMediaMetadata,
type RichBrowseMedia,
} from '../../ha/browse-media/types';
import { BrowseMediaStep, BrowseMediaTarget } from '../../ha/browse-media/walker';
import type { BrowseMediaStep, BrowseMediaTarget } from '../../ha/browse-media/walker';
import { isMediaWithinDates } from '../../ha/browse-media/within-dates';
import { HomeAssistant } from '../../ha/types';
import type { HomeAssistant } from '../../ha/types';
import { hasUnsupportedFilters } from '../../query-source.js';
import { allPromises, formatDate, isValidDate } from '../../utils/basic';
import { ViewMedia } from '../../view/item';
import type { ViewMedia } from '../../view/item';
import { BrowseMediaCameraManagerEngine } from '../browse-media/engine-browse-media';
import { Camera } from '../camera';
import type { Camera } from '../camera';
import { CAMERA_MANAGER_ENGINE_EVENT_LIMIT_DEFAULT } from '../engine';
import { EntityCamera } from '../entity-camera';
import { CameraManagerReadOnlyConfigStore } from '../store';
import type { CameraManagerReadOnlyConfigStore } from '../store';
import {
CameraManagerCameraMetadata,
Engine,
EngineOptions,
EventQuery,
EventQueryResults,
EventQueryResultsMap,
MediaMetadataQuery,
MediaMetadataQueryResults,
MediaMetadataQueryResultsMap,
QueryResults,
QueryResultsType,
QueryReturnType,
type CameraManagerCameraMetadata,
type EngineOptions,
type EventQuery,
type EventQueryResults,
type EventQueryResultsMap,
type MediaMetadataQuery,
type MediaMetadataQueryResults,
type MediaMetadataQueryResultsMap,
type QueryResults,
type QueryReturnType,
} from '../types';
import { MotionEyeCamera } from './camera';
import { MotionEyeEventQueryResults } from './types';
import type { MotionEyeEventQueryResults } from './types';
class MotionEyeQueryResultsClassifier {
public static isMotionEyeEventQueryResults(
+2 -2
View File
@@ -1,5 +1,5 @@
import { BrowseMediaMetadata, RichBrowseMedia } from '../../ha/browse-media/types';
import { Engine, EventQueryResults } from '../types';
import type { BrowseMediaMetadata, RichBrowseMedia } from '../../ha/browse-media/types';
import type { Engine, EventQueryResults } from '../types';
// ================================
// MotionEye concrete query results
+10 -10
View File
@@ -1,23 +1,23 @@
import { ActionsExecutor } from '../../card-controller/actions/types';
import {
import type { ActionsExecutor } from '../../card-controller/actions/types';
import type {
PTZAction,
PTZActionPhase,
PTZBaseAction,
} from '../../config/schema/actions/custom/ptz';
import { DeviceRegistryManager } from '../../ha/registry/device/index';
import { Entity, EntityRegistryManager } from '../../ha/registry/entity/types';
import { HomeAssistant } from '../../ha/types';
import type { DeviceRegistryManager } from '../../ha/registry/device/index';
import type { Entity, EntityRegistryManager } from '../../ha/registry/entity/types';
import type { HomeAssistant } from '../../ha/types';
import {
CapabilitiesRaw,
Endpoint,
PTZCapabilities,
PTZMovementType,
type CapabilitiesRaw,
type Endpoint,
type PTZCapabilities,
} from '../../types';
import { createSelectOptionAction } from '../../utils/action.js';
import { Camera, CameraInitializationOptions } from '../camera';
import type { Camera, CameraInitializationOptions } from '../camera';
import { EntityCamera } from '../entity-camera';
import { ReolinkInitializationError } from '../error';
import { CameraEndpointsContext, CameraProxyConfig } from '../types';
import type { CameraEndpointsContext, CameraProxyConfig } from '../types';
import { getPTZCapabilitiesFromCameraConfig } from '../utils/ptz';
// Reolink channels are zero indexed.
+29 -26
View File
@@ -1,49 +1,52 @@
import { add, endOfDay, parse, startOfDay } from 'date-fns';
import { orderBy } from 'lodash-es';
import { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import { CameraConfig } from '../../config/schema/cameras';
import type { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import type { CameraConfig } from '../../config/schema/cameras';
import { getViewMediaFromBrowseMediaArray } from '../../ha/browse-media/browse-media-to-view-media';
import { sortMostRecentFirst } from '../../ha/browse-media/sort';
import {
BROWSE_MEDIA_CACHE_SECONDS,
BrowseMedia,
BrowseMediaCache,
BrowseMediaMetadata,
MEDIA_CLASS_VIDEO,
RichBrowseMedia,
type BrowseMedia,
type BrowseMediaMetadata,
type RichBrowseMedia,
} from '../../ha/browse-media/types';
import { BrowseMediaWalker } from '../../ha/browse-media/walker';
import type { BrowseMediaWalker } from '../../ha/browse-media/walker';
import { isMediaWithinDates } from '../../ha/browse-media/within-dates';
import { DeviceRegistryManager } from '../../ha/registry/device';
import { EntityRegistryManager } from '../../ha/registry/entity/types';
import { ResolvedMediaCache } from '../../ha/resolved-media';
import { HomeAssistant } from '../../ha/types';
import type { DeviceRegistryManager } from '../../ha/registry/device';
import type { EntityRegistryManager } from '../../ha/registry/entity/types';
import type { ResolvedMediaCache } from '../../ha/resolved-media';
import type { HomeAssistant } from '../../ha/types';
import { hasUnsupportedFilters } from '../../query-source.js';
import { allPromises, formatDate, isValidDate } from '../../utils/basic';
import { ViewMedia } from '../../view/item';
import type { ViewMedia } from '../../view/item';
import { BrowseMediaCameraManagerEngine } from '../browse-media/engine-browse-media';
import { Camera } from '../camera';
import type { Camera } from '../camera';
import { CAMERA_MANAGER_ENGINE_EVENT_LIMIT_DEFAULT } from '../engine';
import { CameraManagerReadOnlyConfigStore } from '../store';
import type { CameraManagerReadOnlyConfigStore } from '../store';
import {
CameraEventCallback,
CameraManagerCameraMetadata,
CameraManagerRequestCache,
Engine,
EngineOptions,
EventQuery,
EventQueryResults,
EventQueryResultsMap,
MediaMetadataQuery,
MediaMetadataQueryResults,
MediaMetadataQueryResultsMap,
QueryResults,
QueryResultsType,
QueryReturnType,
type CameraEventCallback,
type CameraManagerCameraMetadata,
type CameraManagerRequestCache,
type EngineOptions,
type EventQuery,
type EventQueryResults,
type EventQueryResultsMap,
type MediaMetadataQuery,
type MediaMetadataQueryResults,
type MediaMetadataQueryResultsMap,
type QueryResults,
type QueryReturnType,
} from '../types';
import { ReolinkCamera } from './camera';
import { BrowseMediaReolinkCameraMetadata, ReolinkEventQueryResults } from './types';
import type {
BrowseMediaReolinkCameraMetadata,
ReolinkEventQueryResults,
} from './types';
export class ReolinkQueryResultsClassifier {
public static isReolinkEventQueryResults(
+2 -2
View File
@@ -1,5 +1,5 @@
import { BrowseMediaMetadata, RichBrowseMedia } from '../../ha/browse-media/types';
import { Engine, EventQueryResults } from '../types';
import type { BrowseMediaMetadata, RichBrowseMedia } from '../../ha/browse-media/types';
import type { Engine, EventQueryResults } from '../types';
export interface BrowseMediaReolinkCameraMetadata {
configEntryID: string;
+6 -6
View File
@@ -1,10 +1,10 @@
import { CameraConfig } from '../config/schema/cameras';
import { CapabilityKey } from '../types';
import type { CameraConfig } from '../config/schema/cameras';
import type { CapabilityKey } from '../types';
import { allPromises } from '../utils/basic';
import { ViewMedia } from '../view/item';
import { Camera } from './camera';
import { CameraManagerEngine } from './engine';
import { CapabilitySearchKeys, CapabilitySearchOptions, Engine } from './types';
import type { ViewMedia } from '../view/item';
import type { Camera } from './camera';
import type { CameraManagerEngine } from './engine';
import type { CapabilitySearchKeys, CapabilitySearchOptions, Engine } from './types';
type CameraManagerEngineCameraIDMap = Map<CameraManagerEngine, Set<string>>;
+10 -6
View File
@@ -1,9 +1,13 @@
import { ActionsExecutor } from '../../card-controller/actions/types';
import { PTZAction, PTZActionPhase } from '../../config/schema/actions/custom/ptz';
import { Entity, EntityRegistryManager } from '../../ha/registry/entity/types';
import { HomeAssistant } from '../../ha/types';
import { CapabilitiesRaw, PTZCapabilities, PTZMovementType } from '../../types';
import { CameraInitializationOptions } from '../camera';
import type { ActionsExecutor } from '../../card-controller/actions/types';
import type { PTZAction, PTZActionPhase } from '../../config/schema/actions/custom/ptz';
import type { Entity, EntityRegistryManager } from '../../ha/registry/entity/types';
import type { HomeAssistant } from '../../ha/types';
import {
PTZMovementType,
type CapabilitiesRaw,
type PTZCapabilities,
} from '../../types';
import type { CameraInitializationOptions } from '../camera';
import { EntityCamera } from '../entity-camera';
import { getPTZCapabilitiesFromCameraConfig } from '../utils/ptz';
+10 -6
View File
@@ -1,10 +1,14 @@
import { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import { CameraConfig } from '../../config/schema/cameras';
import { EntityRegistryManager } from '../../ha/registry/entity/types';
import { HomeAssistant } from '../../ha/types';
import { Camera } from '../camera';
import type { HASSManagerReadonlyInterface } from '../../card-controller/hass/types';
import type { CameraConfig } from '../../config/schema/cameras';
import type { EntityRegistryManager } from '../../ha/registry/entity/types';
import type { HomeAssistant } from '../../ha/types';
import type { Camera } from '../camera';
import { GenericCameraManagerEngine } from '../generic/engine-generic';
import { CameraEventCallback, CameraManagerCameraMetadata, Engine } from '../types';
import {
Engine,
type CameraEventCallback,
type CameraManagerCameraMetadata,
} from '../types';
import { TPLinkCamera } from './camera';
export class TPLinkCameraManagerEngine extends GenericCameraManagerEngine {
+6 -6
View File
@@ -1,10 +1,10 @@
import { ExpiringEqualityCache } from '../cache/expiring-cache';
import { AdvancedCameraCardView } from '../config/schema/common/const';
import { InternalIcon } from '../config/schema/common/icon';
import { ResolvedProxyConfig } from '../config/schema/common/proxy';
import { BaseQuery, QueryFilters, QuerySource } from '../query-source';
import { CapabilityKey, Endpoint } from '../types';
import { ViewMedia } from '../view/item';
import type { AdvancedCameraCardView } from '../config/schema/common/const';
import type { InternalIcon } from '../config/schema/common/icon';
import type { ResolvedProxyConfig } from '../config/schema/common/proxy';
import type { BaseQuery, QueryFilters, QuerySource } from '../query-source';
import type { CapabilityKey, Endpoint } from '../types';
import type { ViewMedia } from '../view/item';
// ====
// Base
@@ -1,4 +1,4 @@
import { CameraConfig } from '../../config/schema/cameras';
import type { CameraConfig } from '../../config/schema/cameras';
export const getCameraEntityFromConfig = (
cameraConfig?: CameraConfig,
+4 -4
View File
@@ -1,10 +1,10 @@
import { EnabledProxyConfig } from '../../../config/schema/common/proxy';
import type { EnabledProxyConfig } from '../../../config/schema/common/proxy';
import { homeAssistantSignAndFetch } from '../../../ha/fetch';
import { HomeAssistant } from '../../../ha/types';
import type { HomeAssistant } from '../../../ha/types';
import { createProxiedEndpointIfNecessary } from '../../../ha/web-proxy';
import { Endpoint } from '../../../types';
import type { Endpoint } from '../../../types';
import { errorToConsole } from '../../../utils/basic';
import { Go2RTCStreamInfo, go2RTCStreamInfoSchema } from './types';
import { go2RTCStreamInfoSchema, type Go2RTCStreamInfo } from './types';
const getGo2RTCStreamMetadata = async (
hass: HomeAssistant,
+2 -2
View File
@@ -1,5 +1,5 @@
import { CameraConfig } from '../../../config/schema/cameras';
import { Endpoint } from '../../../types';
import type { CameraConfig } from '../../../config/schema/cameras';
import type { Endpoint } from '../../../types';
interface EndpointOptions {
url?: string;
+4 -4
View File
@@ -1,11 +1,11 @@
import {
import type {
PTZAction,
PTZActionPhase,
PTZBaseAction,
} from '../../config/schema/actions/custom/ptz';
import { ActionConfig } from '../../config/schema/actions/types';
import { CameraConfig } from '../../config/schema/cameras';
import { PTZCapabilities, PTZMovementType } from '../../types';
import type { ActionConfig } from '../../config/schema/actions/types';
import type { CameraConfig } from '../../config/schema/cameras';
import { PTZMovementType, type PTZCapabilities } from '../../types';
export const getConfiguredPTZAction = (
cameraConfig: CameraConfig,
@@ -1,6 +1,6 @@
import { endOfDay, endOfHour, endOfMinute, startOfDay, startOfHour } from 'date-fns';
import { DateRange } from '../range';
import type { DateRange } from '../range';
import { capEndDate } from './cap-end-date';
export const convertRangeToCacheFriendlyTimes = (