refactor: Break apart monolithic configuration schema (#1977)

[skip ci]
This commit is contained in:
Dermot Duffy
2025-03-22 15:06:11 -07:00
committed by GitHub
parent 92fc8dd844
commit d6225fefda
266 changed files with 2789 additions and 2562 deletions
@@ -1,5 +1,5 @@
import { StateWatcherSubscriptionInterface } from '../../card-controller/hass/state-watcher';
import { CameraConfig } from '../../config/types';
import { CameraConfig } from '../../config/schema/cameras';
import { HomeAssistant } from '../../ha/types';
import { canonicalizeHAURL } from '../../utils/ha';
import { BrowseMediaManager } from '../../utils/ha/browse-media/browse-media-manager';
+1 -1
View File
@@ -1,5 +1,5 @@
import { StateWatcherSubscriptionInterface } from '../card-controller/hass/state-watcher';
import { CameraConfig } from '../config/types';
import { CameraConfig } from '../config/schema/cameras';
import { localize } from '../localize/localize';
import { HassStateDifference, isTriggeredState } from '../utils/ha';
import { Capabilities } from './capabilities';
+1 -1
View File
@@ -1,5 +1,5 @@
import { StateWatcherSubscriptionInterface } from '../card-controller/hass/state-watcher';
import { CameraConfig } from '../config/types';
import { CameraConfig } from '../config/schema/cameras';
import { HomeAssistant } from '../ha/types';
import { localize } from '../localize/localize';
import { BrowseMediaManager } from '../utils/ha/browse-media/browse-media-manager';
+3 -3
View File
@@ -1,5 +1,5 @@
import { PTZAction } from '../config/ptz';
import { ActionPhase, CameraConfig } from '../config/types';
import { PTZAction, PTZActionPhase } from '../config/schema/actions/custom/ptz';
import { CameraConfig } from '../config/schema/cameras';
import { HomeAssistant } from '../ha/types';
import { ViewMedia } from '../view/media';
import { Camera } from './camera';
@@ -134,7 +134,7 @@ export interface CameraManagerEngine {
cameraConfig: CameraConfig,
action: PTZAction,
options?: {
phase?: ActionPhase;
phase?: PTZActionPhase;
preset?: string;
},
): Promise<void>;
+1 -1
View File
@@ -1,6 +1,6 @@
import uniq from 'lodash-es/uniq';
import { StateWatcherSubscriptionInterface } from '../../card-controller/hass/state-watcher';
import { CameraConfig } from '../../config/types';
import { CameraConfig } from '../../config/schema/cameras';
import { HomeAssistant } from '../../ha/types';
import { localize } from '../../localize/localize';
import { PTZCapabilities, PTZMovementType } from '../../types';
+3 -3
View File
@@ -4,8 +4,8 @@ import orderBy from 'lodash-es/orderBy';
import throttle from 'lodash-es/throttle';
import uniqWith from 'lodash-es/uniqWith';
import { StateWatcherSubscriptionInterface } from '../../card-controller/hass/state-watcher';
import { PTZAction } from '../../config/ptz';
import { ActionPhase, CameraConfig } from '../../config/types';
import { PTZAction, PTZActionPhase } from '../../config/schema/actions/custom/ptz';
import { CameraConfig } from '../../config/schema/cameras';
import { HomeAssistant } from '../../ha/types';
import {
allPromises,
@@ -1011,7 +1011,7 @@ export class FrigateCameraManagerEngine
cameraConfig: CameraConfig,
action: PTZAction,
options?: {
phase?: ActionPhase;
phase?: PTZActionPhase;
preset?: string;
},
): Promise<void> {
+1 -1
View File
@@ -1,6 +1,6 @@
import { fromUnixTime } from 'date-fns';
import isEqual from 'lodash-es/isEqual';
import { CameraConfig } from '../../config/types';
import { CameraConfig } from '../../config/schema/cameras';
import {
EventViewMedia,
RecordingViewMedia,
+1 -1
View File
@@ -1,5 +1,5 @@
import { toZonedTime } from 'date-fns-tz';
import { CameraConfig } from '../../config/types';
import { CameraConfig } from '../../config/schema/cameras';
import { ClipsOrSnapshots } from '../../types';
import { formatDateAndTime, prettifyTitle } from '../../utils/basic';
import { FrigateEvent, FrigateRecording } from './types';
+3 -3
View File
@@ -1,8 +1,8 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
import { StateWatcherSubscriptionInterface } from '../../card-controller/hass/state-watcher';
import { PTZAction } from '../../config/ptz';
import { ActionPhase, CameraConfig } from '../../config/types';
import { PTZAction, PTZActionPhase } from '../../config/schema/actions/custom/ptz';
import { CameraConfig } from '../../config/schema/cameras';
import { HomeAssistant } from '../../ha/types';
import { getEntityTitle } from '../../utils/ha';
import { ViewMedia } from '../../view/media';
@@ -241,7 +241,7 @@ export class GenericCameraManagerEngine implements CameraManagerEngine {
_cameraConfig: CameraConfig,
_action: PTZAction,
_options?: {
phase?: ActionPhase;
phase?: PTZActionPhase;
preset?: string;
},
): Promise<void> {
+4 -4
View File
@@ -3,8 +3,8 @@ import cloneDeep from 'lodash-es/cloneDeep';
import sum from 'lodash-es/sum';
import PQueue from 'p-queue';
import { CardCameraAPI } from '../card-controller/types.js';
import { PTZAction } from '../config/ptz.js';
import { ActionPhase, CameraConfig, CamerasConfig } from '../config/types.js';
import { PTZAction, PTZActionPhase } from '../config/schema/actions/custom/ptz.js';
import { CameraConfig, CamerasConfig } from '../config/schema/cameras.js';
import { MEDIA_CHUNK_SIZE_DEFAULT } from '../const.js';
import { localize } from '../localize/localize.js';
import {
@@ -16,7 +16,6 @@ import {
} from '../utils/basic.js';
import { getCameraID } from '../utils/camera.js';
import { log } from '../utils/debug.js';
import { getConfiguredPTZAction } from './utils/ptz.js';
import { ViewMedia } from '../view/media.js';
import { Capabilities } from './capabilities.js';
import { CameraManagerEngineFactory } from './engine-factory.js';
@@ -56,6 +55,7 @@ import {
RecordingSegmentsQueryResultsMap,
ResultsMap,
} from './types.js';
import { getConfiguredPTZAction } from './utils/ptz.js';
import { sortMedia } from './utils/sort-media.js';
export class QueryClassifier {
@@ -785,7 +785,7 @@ export class CameraManager {
cameraID: string,
action: PTZAction,
options?: {
phase?: ActionPhase;
phase?: PTZActionPhase;
preset?: string;
},
): Promise<void> {
@@ -1,6 +1,6 @@
import { add, endOfDay, parse, startOfDay } from 'date-fns';
import orderBy from 'lodash-es/orderBy';
import { CameraConfig } from '../../config/types';
import { CameraConfig } from '../../config/schema/cameras';
import { HomeAssistant } from '../../ha/types';
import { allPromises, formatDate, isValidDate } from '../../utils/basic';
import {
+1 -1
View File
@@ -1,6 +1,6 @@
import { add, endOfDay, parse, startOfDay } from 'date-fns';
import { orderBy } from 'lodash-es';
import { CameraConfig } from '../../config/types';
import { CameraConfig } from '../../config/schema/cameras';
import { HomeAssistant } from '../../ha/types';
import { allPromises, formatDate, isValidDate } from '../../utils/basic';
import { sortMediaByStartDate } from '../../utils/ha/browse-media/browse-media-manager';
+1 -1
View File
@@ -1,4 +1,4 @@
import { CameraConfig } from '../config/types';
import { CameraConfig } from '../config/schema/cameras';
import { CapabilityKey } from '../types';
import { allPromises } from '../utils/basic';
import { ViewMedia } from '../view/media';
+2 -1
View File
@@ -1,4 +1,5 @@
import { AdvancedCameraCardView, SSLCiphers } from '../config/types';
import { SSLCiphers } from '../config/schema/cameras';
import { AdvancedCameraCardView } from '../config/schema/common/const';
import { CapabilityKey, Icon } from '../types';
import { ViewMedia } from '../view/media';
@@ -1,4 +1,4 @@
import { CameraConfig } from '../../config/types';
import { CameraConfig } from '../../config/schema/cameras';
export const getCameraEntityFromConfig = (
cameraConfig?: CameraConfig,
+1 -1
View File
@@ -1,4 +1,4 @@
import { CameraConfig } from '../../config/types';
import { CameraConfig } from '../../config/schema/cameras';
import { CameraEndpoint } from '../types';
export const getDefaultGo2RTCEndpoint = (
+9 -4
View File
@@ -1,12 +1,17 @@
import { PTZAction, PTZBaseAction } from '../../config/ptz';
import { ActionConfig, ActionPhase, CameraConfig } from '../../config/types';
import {
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';
export const getConfiguredPTZAction = (
cameraConfig: CameraConfig,
action: PTZAction,
options?: {
phase?: ActionPhase;
phase?: PTZActionPhase;
preset?: string;
},
): ActionConfig | ActionConfig[] | null => {
@@ -25,7 +30,7 @@ const hasConfiguredPTZAction = (
cameraConfig: CameraConfig,
action: PTZBaseAction,
options?: {
phase?: ActionPhase;
phase?: PTZActionPhase;
preset?: string;
},
): boolean => {