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
@@ -6,7 +6,7 @@ import {
Actions,
ActionsConfig,
AuxillaryActionConfig,
} from '../../config/types.js';
} from '../../config/schema/actions/types.js';
import { forwardHaptic } from '../../ha/haptic.js';
import { getActionConfigGivenAction } from '../../utils/action.js';
import { allPromises } from '../../utils/basic.js';
+4 -1
View File
@@ -1,5 +1,8 @@
import { ActionContext } from 'action';
import { ActionConfig, AuxillaryActionConfig } from '../../../config/types';
import {
ActionConfig,
AuxillaryActionConfig,
} from '../../../config/schema/actions/types.js';
import { localize } from '../../../localize/localize.js';
import { isAdvancedCameraCardCustomAction } from '../../../utils/action';
import { CardActionsAPI } from '../../types';
@@ -1,4 +1,4 @@
import { CallServiceActionConfig } from '../../../config/types';
import { CallServiceActionConfig } from '../../../config/schema/actions/stock/call-service';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { CameraSelectActionConfig } from '../../../config/types';
import { CameraSelectActionConfig } from '../../../config/schema/actions/custom/camera-select';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { CustomActionConfig } from '../../../config/types';
import { CustomActionConfig } from '../../../config/schema/actions/stock/custom';
import { fireHASSEvent } from '../../../ha/fire-hass-event';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { DisplayModeActionConfig } from '../../../config/types';
import { DisplayModeActionConfig } from '../../../config/schema/actions/custom/display-mode';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { InternalCallbackActionConfig } from '../../../config/types';
import { InternalCallbackActionConfig } from '../../../config/schema/actions/custom/internal';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
+1 -1
View File
@@ -1,4 +1,4 @@
import { LogActionConfig } from '../../../config/types';
import { LogActionConfig } from '../../../config/schema/actions/custom/log';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { MediaPlayerActionConfig } from '../../../config/types';
import { MediaPlayerActionConfig } from '../../../config/schema/actions/custom/media-player';
import { getStreamCameraID } from '../../../utils/substream';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { MoreInfoActionConfig } from '../../../config/types';
import { MoreInfoActionConfig } from '../../../config/schema/actions/stock/more-info';
import { fireHASSEvent } from '../../../ha/fire-hass-event';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
+1 -1
View File
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { NavigateActionConfig } from '../../../config/types';
import { NavigateActionConfig } from '../../../config/schema/actions/stock/navigate';
import { fireHASSEvent } from '../../../ha/fire-hass-event';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
+1 -1
View File
@@ -1,4 +1,4 @@
import { NoneActionConfig } from '../../../config/types';
import { NoneActionConfig } from '../../../config/schema/actions/stock/none';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
+1 -1
View File
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { PerformActionActionConfig } from '../../../config/types';
import { PerformActionActionConfig } from '../../../config/schema/actions/stock/perform-action';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
+1 -1
View File
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { PTZControlsActionConfig } from '../../../config/types';
import { PTZControlsActionConfig } from '../../../config/schema/actions/custom/ptz-controls';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -6,7 +6,8 @@ import {
ZOOM_DEFAULT_SCALE,
} from '../../../components-lib/zoom/types';
import { generateViewContextForZoom } from '../../../components-lib/zoom/zoom-view-context';
import { PTZDigitialActionConfig, ZOOM_MAX, ZOOM_MIN } from '../../../config/types';
import { PTZDigitialActionConfig } from '../../../config/schema/actions/custom/ptz-digital';
import { ZOOM_MAX, ZOOM_MIN } from '../../../config/schema/common/zoom';
import { getPTZTarget } from '../../../utils/ptz';
import { Timer } from '../../../utils/timer';
import { CardActionsAPI } from '../../types';
@@ -1,4 +1,4 @@
import { PTZMultiActionConfig } from '../../../config/types';
import { PTZMultiActionConfig } from '../../../config/schema/actions/custom/ptz-multi';
import { createPTZAction, createPTZDigitalAction } from '../../../utils/action';
import { PTZType, getPTZTarget, hasCameraTruePTZ } from '../../../utils/ptz';
import { CardActionsAPI } from '../../types';
+1 -1
View File
@@ -1,4 +1,4 @@
import { PTZActionConfig } from '../../../config/types';
import { PTZActionConfig } from '../../../config/schema/actions/custom/ptz';
import { getPTZTarget, ptzActionToCapabilityKey } from '../../../utils/ptz';
import { Timer } from '../../../utils/timer';
import { CardActionsAPI } from '../../types';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
+4 -1
View File
@@ -1,5 +1,8 @@
import { ActionContext } from 'action';
import { ActionConfig, AuxillaryActionConfig } from '../../../config/types';
import {
ActionConfig,
AuxillaryActionConfig,
} from '../../../config/schema/actions/types';
import { arrayify } from '../../../utils/basic';
import { CardActionsAPI } from '../../types';
import { ActionFactory } from '../factory';
+1 -1
View File
@@ -1,4 +1,4 @@
import { SleepActionConfig } from '../../../config/types';
import { SleepActionConfig } from '../../../config/schema/actions/custom/sleep';
import { sleep } from '../../../utils/basic';
import { CardActionsAPI } from '../../types';
import { timeDeltaToSeconds } from '../utils/time-delta';
@@ -1,4 +1,4 @@
import { StatusBarActionConfig } from '../../../config/types';
import { StatusBarActionConfig } from '../../../config/schema/actions/types';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { SubstreamOffViewModifier } from '../../view/modifiers/substream-off';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { SubstreamOnViewModifier } from '../../view/modifiers/substream-on';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { SubstreamSelectActionConfig } from '../../../config/types';
import { SubstreamSelectActionConfig } from '../../../config/schema/actions/custom/substream-select';
import { CardActionsAPI } from '../../types';
import { SubstreamSelectViewModifier } from '../../view/modifiers/substream-select';
import { AdvancedCameraCardAction } from './base';
@@ -1,4 +1,4 @@
import { ToggleActionConfig } from '../../../config/types';
import { ToggleActionConfig } from '../../../config/schema/actions/stock/toggle';
import { computeDomain } from '../../../ha/compute-domain';
import { STATES_OFF } from '../../../ha/const';
import { CardActionsAPI } from '../../types';
@@ -1,4 +1,4 @@
import { GeneralActionConfig } from '../../../config/types';
import { GeneralActionConfig } from '../../../config/schema/actions/custom/general';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
+1 -1
View File
@@ -1,4 +1,4 @@
import { URLActionConfig } from '../../../config/types';
import { URLActionConfig } from '../../../config/schema/actions/stock/url';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
+1 -1
View File
@@ -1,4 +1,4 @@
import { ViewActionConfig } from '../../../config/types';
import { ViewActionConfig } from '../../../config/schema/actions/custom/view';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
+2 -5
View File
@@ -1,9 +1,6 @@
import { ActionContext } from 'action';
import {
ActionConfig,
AuxillaryActionConfig,
INTERNAL_CALLBACK_ACTION,
} from '../../config/types';
import { INTERNAL_CALLBACK_ACTION } from '../../config/schema/actions/custom/internal';
import { ActionConfig, AuxillaryActionConfig } from '../../config/schema/actions/types';
import { isAdvancedCameraCardCustomAction } from '../../utils/action';
import { CallServiceAction } from './actions/call-service';
import { CameraSelectAction } from './actions/camera-select';
+4 -1
View File
@@ -1,5 +1,8 @@
import {
ActionConfig,
AuxillaryActionConfig,
} from '../../config/schema/actions/types.js';
import { AdvancedCameraCardError } from '../../types.js';
import { ActionConfig, AuxillaryActionConfig } from '../../config/types';
import { CardActionsAPI } from '../types';
export interface Action {
@@ -1,4 +1,4 @@
import { TimeDelta } from '../../../config/types';
import { TimeDelta } from '../../../config/schema/actions/custom/sleep';
export const timeDeltaToSeconds = (timeDelta: TimeDelta): number => {
return (
+1 -1
View File
@@ -1,6 +1,6 @@
import { ConditionsManager } from '../conditions/conditions-manager.js';
import { ConditionsEvaluationResult } from '../conditions/types.js';
import { Automation, AutomationActions } from '../config/types.js';
import { Automation, AutomationActions } from '../config/schema/automations.js';
import { localize } from '../localize/localize.js';
import { CardAutomationsAPI, TaggedAutomation } from './types.js';
+4 -4
View File
@@ -1,13 +1,13 @@
import isEqual from 'lodash-es/isEqual';
import { ConditionsManager } from '../../conditions/conditions-manager.js';
import { isConfigUpgradeable } from '../../config/management.js';
import { setProfiles } from '../../config/profiles/index.js';
import { setProfiles } from '../../config/profiles/set-profiles.js';
import {
AdvancedCameraCardConfig,
advancedCameraCardConfigSchema,
CardWideConfig,
RawAdvancedCameraCardConfig,
} from '../../config/types.js';
advancedCameraCardConfigSchema,
} from '../../config/schema/types.js';
import { RawAdvancedCameraCardConfig } from '../../config/types.js';
import { localize } from '../../localize/localize.js';
import { getParseErrorPaths } from '../../utils/zod.js';
import { InitializationAspect } from '../initialization-manager.js';
@@ -7,7 +7,8 @@ import {
getConfigValue,
setConfigValue,
} from '../../config/management';
import { Overrides, RawAdvancedCameraCardConfig } from '../../config/types';
import { Overrides } from '../../config/schema/overrides';
import { RawAdvancedCameraCardConfig } from '../../config/types';
import { localize } from '../../localize/localize';
import { AdvancedCameraCardError } from '../../types';
import { desparsifyArrays } from '../../utils/basic';
@@ -1,8 +1,5 @@
import {
KeyboardShortcuts,
PTZKeyboardShortcutName,
} from '../../config/keyboard-shortcuts';
import { PTZAction } from '../../config/ptz';
import { PTZAction } from '../../config/schema/actions/custom/ptz';
import { KeyboardShortcuts, PTZKeyboardShortcutName } from '../../config/schema/view';
import { createPTZMultiAction } from '../../utils/action';
import { CardConfigLoaderAPI, TaggedAutomation } from '../types';
+1 -1
View File
@@ -1,7 +1,7 @@
import { ReactiveController } from 'lit';
import { CameraManager } from '../camera-manager/manager';
import { ConditionStateManager } from '../conditions/state-manager';
import { AdvancedCameraCardConfig } from '../config/types';
import { AdvancedCameraCardConfig } from '../config/schema/types';
import { LovelaceCardEditor } from '../ha/types';
import {
createDeviceRegistryCache,
+1 -1
View File
@@ -1,5 +1,5 @@
import isEqual from 'lodash-es/isEqual';
import { AdvancedCameraCardConfig } from '../config/types';
import { AdvancedCameraCardConfig } from '../config/schema/types';
import { createGeneralAction } from '../utils/action';
import { isActionAllowedBasedOnInteractionState } from '../utils/interaction-mode';
import { Timer } from '../utils/timer';
+2 -1
View File
@@ -1,4 +1,5 @@
import { AdvancedCameraCardConfig, CameraConfig } from '../config/types';
import { CameraConfig } from '../config/schema/cameras';
import { AdvancedCameraCardConfig } from '../config/schema/types';
import {
MEDIA_PLAYER_SUPPORT_BROWSE_MEDIA,
MEDIA_PLAYER_SUPPORT_STOP,
+2 -1
View File
@@ -1,4 +1,5 @@
import { AdvancedCameraCardCustomActionConfig, ViewActionConfig } from '../config/types';
import { ViewActionConfig } from '../config/schema/actions/custom/view';
import { AdvancedCameraCardCustomActionConfig } from '../config/schema/actions/types';
import {
createCameraAction,
createGeneralAction,
@@ -1,6 +1,7 @@
import isEqual from 'lodash-es/isEqual';
import { CameraManager } from '../camera-manager/manager';
import { StatusBarConfig, StatusBarItem } from '../config/types';
import { StatusBarItem } from '../config/schema/actions/types';
import { StatusBarConfig } from '../config/schema/status-bar';
import { MediaLoadedInfo } from '../types';
import { View } from '../view/view';
import { CardStatusBarAPI } from './types';
+2 -6
View File
@@ -1,10 +1,6 @@
import { StyleInfo } from 'lit/directives/style-map';
import {
AdvancedCameraCardConfig,
configDefaults,
ThemeConfig,
ThemeName,
} from '../config/types';
import { AdvancedCameraCardConfig, configDefaults } from '../config/schema/types';
import { ThemeConfig, ThemeName } from '../config/schema/view';
import { aspectRatioToStyle, setOrRemoveAttribute } from '../utils/basic';
import { View } from '../view/view';
import { CardStyleAPI } from './types';
+1 -1
View File
@@ -1,6 +1,6 @@
import type { CameraManager } from '../camera-manager/manager';
import type { ConditionStateManager } from '../conditions/state-manager';
import type { Automation } from '../config/types';
import type { Automation } from '../config/schema/automations';
import type { EntityRegistryManager } from '../utils/ha/registry/entity';
import type { ResolvedMediaCache } from '../utils/ha/resolved-media';
import type { ActionsManager } from './actions/actions-manager';
+3 -6
View File
@@ -1,9 +1,6 @@
import {
VIEW_DEFAULT,
AdvancedCameraCardConfig,
AdvancedCameraCardView,
ViewDisplayMode,
} from '../../config/types';
import { AdvancedCameraCardView, VIEW_DEFAULT } from '../../config/schema/common/const';
import { ViewDisplayMode } from '../../config/schema/common/display';
import { AdvancedCameraCardConfig } from '../../config/schema/types';
import { localize } from '../../localize/localize';
import { View, ViewParameters } from '../../view/view';
import { getCameraIDsForViewName } from '../../view/view-to-cameras';
+1 -1
View File
@@ -1,5 +1,5 @@
import { ViewContext } from 'view';
import { AdvancedCameraCardView } from '../../config/types.js';
import { AdvancedCameraCardView } from '../../config/schema/common/const.js';
import { AdvancedCameraCardError } from '../../types.js';
import { MediaQueriesResults } from '../../view/media-queries-results.js';
import { MediaQueries } from '../../view/media-queries.js';
+2 -2
View File
@@ -1,5 +1,5 @@
import { ViewContext } from 'view';
import { AdvancedCameraCardView } from '../../config/types';
import { AdvancedCameraCardView } from '../../config/schema/common/const';
import { log } from '../../utils/debug';
import { getStreamCameraID } from '../../utils/substream';
import { MediaQueriesClassifier } from '../../view/media-queries-classifier';
@@ -7,6 +7,7 @@ import { View } from '../../view/view';
import { getCameraIDsForViewName } from '../../view/view-to-cameras';
import { CardViewAPI } from '../types';
import { ViewFactory } from './factory';
import { applyViewModifiers } from './modifiers';
import {
QueryExecutorOptions,
ViewFactoryOptions,
@@ -15,7 +16,6 @@ import {
ViewModifier,
} from './types';
import { ViewQueryExecutor } from './view-query-executor';
import { applyViewModifiers } from './modifiers';
export class ViewManager implements ViewManagerInterface {
protected _view: View | null = null;