From 7dc29865b89dcba5790377734234a451a6090913 Mon Sep 17 00:00:00 2001 From: Dermot Duffy Date: Tue, 23 Jun 2026 23:11:06 -0700 Subject: [PATCH] chore: Enforce consistent type imports via @typescript-eslint/consistent-type-imports (#2545) --- eslint.config.mjs | 4 + src/action-handler-directive.ts | 6 +- src/cache/base.ts | 2 +- src/cache/expiring-cache.ts | 2 +- .../browse-media/engine-browse-media.ts | 32 ++--- src/camera-manager/cache.ts | 4 +- src/camera-manager/camera.ts | 27 ++-- src/camera-manager/capabilities.ts | 8 +- src/camera-manager/engine-factory.ts | 16 +-- src/camera-manager/engine.ts | 16 +-- src/camera-manager/entity-camera.ts | 4 +- src/camera-manager/frigate/camera.ts | 31 +++-- src/camera-manager/frigate/engine-frigate.ts | 90 ++++++------- .../frigate/media-classifier.ts | 2 +- src/camera-manager/frigate/media.ts | 12 +- src/camera-manager/frigate/requests.ts | 18 +-- src/camera-manager/frigate/types.ts | 2 +- src/camera-manager/frigate/util.ts | 6 +- src/camera-manager/frigate/watcher.ts | 8 +- src/camera-manager/generic/engine-generic.ts | 60 ++++----- src/camera-manager/manager.ts | 78 +++++------ src/camera-manager/motioneye/camera.ts | 8 +- .../motioneye/engine-motioneye.ts | 40 +++--- src/camera-manager/motioneye/types.ts | 4 +- src/camera-manager/reolink/camera.ts | 20 +-- src/camera-manager/reolink/engine-reolink.ts | 55 ++++---- src/camera-manager/reolink/types.ts | 4 +- src/camera-manager/store.ts | 12 +- src/camera-manager/tplink/camera.ts | 16 ++- src/camera-manager/tplink/engine-tplink.ts | 16 ++- src/camera-manager/types.ts | 12 +- .../utils/camera-entity-from-config.ts | 2 +- src/camera-manager/utils/go2rtc/audio.ts | 8 +- src/camera-manager/utils/go2rtc/endpoint.ts | 4 +- src/camera-manager/utils/ptz.ts | 8 +- .../utils/range-to-cache-friendly.ts | 2 +- .../actions/actions-manager.ts | 12 +- src/card-controller/actions/actions/base.ts | 8 +- .../actions/actions/call-answer.ts | 4 +- .../actions/actions/call-end.ts | 4 +- .../actions/actions/call-service.ts | 4 +- .../actions/actions/call-start.ts | 4 +- .../actions/actions/camera-select.ts | 4 +- .../actions/actions/camera-ui.ts | 4 +- src/card-controller/actions/actions/custom.ts | 4 +- .../actions/actions/default.ts | 4 +- .../actions/actions/display-mode-select.ts | 4 +- .../actions/actions/download.ts | 4 +- src/card-controller/actions/actions/effect.ts | 4 +- src/card-controller/actions/actions/expand.ts | 4 +- .../actions/actions/fullscreen.ts | 4 +- src/card-controller/actions/actions/if.ts | 10 +- src/card-controller/actions/actions/info.ts | 4 +- .../actions/actions/internal-callback.ts | 4 +- src/card-controller/actions/actions/log.ts | 4 +- .../actions/actions/media-player.ts | 4 +- .../actions/actions/menu-toggle.ts | 4 +- .../actions/actions/microphone-connect.ts | 4 +- .../actions/actions/microphone-disconnect.ts | 4 +- .../actions/actions/microphone-mute.ts | 4 +- .../actions/actions/microphone-unmute.ts | 4 +- .../actions/actions/more-info.ts | 4 +- src/card-controller/actions/actions/mute.ts | 4 +- .../actions/actions/navigate.ts | 4 +- src/card-controller/actions/actions/none.ts | 4 +- .../actions/actions/notification.ts | 4 +- src/card-controller/actions/actions/pause.ts | 4 +- .../actions/actions/perform-action.ts | 4 +- src/card-controller/actions/actions/pip.ts | 4 +- src/card-controller/actions/actions/play.ts | 4 +- .../actions/actions/ptz-controls.ts | 4 +- .../actions/actions/ptz-digital.ts | 8 +- .../actions/actions/ptz-multi.ts | 6 +- src/card-controller/actions/actions/ptz.ts | 4 +- src/card-controller/actions/actions/reload.ts | 4 +- .../actions/actions/screenshot.ts | 4 +- .../actions/actions/set-review.ts | 4 +- src/card-controller/actions/actions/set.ts | 10 +- src/card-controller/actions/actions/sleep.ts | 4 +- .../actions/actions/status-bar.ts | 4 +- .../actions/actions/substream-off.ts | 4 +- .../actions/actions/substream-on.ts | 8 +- src/card-controller/actions/actions/toggle.ts | 4 +- src/card-controller/actions/actions/unmute.ts | 4 +- src/card-controller/actions/actions/url.ts | 4 +- src/card-controller/actions/actions/view.ts | 4 +- src/card-controller/actions/factory.ts | 11 +- src/card-controller/actions/types.ts | 6 +- .../actions/utils/action-state.ts | 4 +- .../actions/utils/execution-request.ts | 2 +- .../actions/utils/time-delta.ts | 2 +- src/card-controller/automations-manager.ts | 8 +- src/card-controller/call/manager.ts | 8 +- src/card-controller/call/ringtone.ts | 4 +- src/card-controller/call/tones/arpeggio.ts | 2 +- src/card-controller/call/tones/base.ts | 2 +- src/card-controller/call/tones/custom.ts | 2 +- src/card-controller/call/types.ts | 2 +- .../camera-triggers-manager.ts | 4 +- src/card-controller/camera-url-manager.ts | 2 +- src/card-controller/card-element-manager.ts | 14 +- src/card-controller/config/config-manager.ts | 8 +- .../config/load-automations.ts | 2 +- .../config/load-control-entities.ts | 4 +- src/card-controller/config/load-folders.ts | 2 +- .../config/load-keyboard-shortcuts.ts | 9 +- .../config/overrides-manager.ts | 6 +- src/card-controller/controller.ts | 18 +-- src/card-controller/default-manager.ts | 4 +- .../effects/effects-manager.ts | 4 +- src/card-controller/expand-manager.ts | 2 +- src/card-controller/folders/executor.ts | 23 +++- src/card-controller/folders/ha/engine.ts | 28 ++-- .../folders/ha/media-matcher.ts | 11 +- .../folders/ha/metadata-generator.ts | 4 +- src/card-controller/folders/manager.ts | 18 ++- src/card-controller/folders/types.ts | 18 +-- src/card-controller/fullscreen/factory.ts | 6 +- .../fullscreen/fullscreen-manager.ts | 4 +- src/card-controller/fullscreen/provider.ts | 4 +- .../fullscreen/screenfull/index.ts | 2 +- .../fullscreen/webkit/index.ts | 6 +- src/card-controller/hass/event-watcher.ts | 6 +- src/card-controller/hass/hass-manager.ts | 12 +- src/card-controller/hass/state-watcher.ts | 4 +- src/card-controller/hass/types.ts | 6 +- src/card-controller/initialization-manager.ts | 2 +- src/card-controller/interaction-manager.ts | 2 +- src/card-controller/issues/factory.ts | 4 +- src/card-controller/issues/issue-manager.ts | 11 +- .../issues/issues/abstract-error-issue.ts | 2 +- .../issues/issues/config-error.ts | 2 +- .../issues/issues/config-upgrade-failure.ts | 4 +- .../issues/issues/config-upgrade.ts | 4 +- .../issues/issues/connection.ts | 4 +- .../issues/issues/event-subscription.ts | 8 +- .../issues/issues/initialization.ts | 4 +- .../issues/issues/legacy-resource.ts | 6 +- .../issues/issues/media-load.ts | 8 +- .../issues/issues/media-query.ts | 6 +- .../issues/issues/view-incompatible.ts | 4 +- src/card-controller/issues/retry-control.ts | 4 +- src/card-controller/issues/state-manager.ts | 8 +- src/card-controller/issues/types.ts | 8 +- src/card-controller/keyboard-state-manager.ts | 2 +- src/card-controller/lock/call-policy.ts | 4 +- src/card-controller/lock/manager.ts | 4 +- src/card-controller/media-info-manager.ts | 4 +- src/card-controller/media-player-manager.ts | 10 +- src/card-controller/microphone-manager.ts | 2 +- src/card-controller/notification-manager.ts | 4 +- src/card-controller/pip-manager.ts | 6 +- src/card-controller/query-string-manager.ts | 8 +- .../status-bar-item-manager.ts | 14 +- src/card-controller/style-manager.ts | 10 +- src/card-controller/templates/index.ts | 10 +- src/card-controller/templates/types.ts | 2 +- src/card-controller/view/factory.ts | 12 +- src/card-controller/view/item-manager.ts | 6 +- src/card-controller/view/modifiers/index.ts | 4 +- .../view/modifiers/merge-context.ts | 6 +- .../view/modifiers/remove-context-property.ts | 6 +- .../view/modifiers/remove-context.ts | 6 +- .../view/modifiers/set-query.ts | 8 +- .../view/modifiers/substream.ts | 4 +- src/card-controller/view/sort.ts | 2 +- src/card-controller/view/types.ts | 10 +- src/card-controller/view/view-manager.ts | 8 +- .../view/view-query-executor.ts | 8 +- src/card.ts | 32 +++-- src/components-lib/auto-hide.ts | 2 +- src/components-lib/cached-value-controller.ts | 2 +- src/components-lib/gallery/controller.ts | 16 +-- .../gallery/gallery-core-controller.ts | 4 +- src/components-lib/icon-controller.ts | 6 +- src/components-lib/key-assigner-controller.ts | 4 +- src/components-lib/lazy-load-controller.ts | 4 +- .../live/microphone-actions-controller.ts | 4 +- .../utils/get-technology-for-video-rtc.ts | 4 +- .../media-actions-controller.ts | 6 +- .../media-dimensions-container-controller.ts | 6 +- src/components-lib/media-filter-controller.ts | 24 ++-- src/components-lib/media-grid-controller.ts | 2 +- .../media-loaded-info-sink-controller.ts | 4 +- .../media-loaded-info-source-controller.ts | 4 +- src/components-lib/media-player/image.ts | 4 +- src/components-lib/media-player/jsmpeg.ts | 6 +- .../media-player/updating-image.ts | 6 +- src/components-lib/media-player/video.ts | 4 +- .../media/notification-controller.ts | 16 +-- src/components-lib/menu-button-controller.ts | 30 ++--- src/components-lib/menu-controller.ts | 4 +- src/components-lib/navigation.ts | 12 +- src/components-lib/notification/action.ts | 2 +- src/components-lib/notification/factory.ts | 7 +- src/components-lib/notification/summarize.ts | 2 +- src/components-lib/ptz/drag-controller.ts | 4 +- src/components-lib/ptz/ptz-controller.ts | 16 +-- src/components-lib/ptz/types.ts | 6 +- src/components-lib/signed-url-controller.ts | 10 +- src/components-lib/status-bar-controller.ts | 8 +- .../thumbnail/feature/controller.ts | 6 +- src/components-lib/timeline/controller.ts | 50 +++---- src/components-lib/timeline/source.ts | 16 +-- src/components-lib/timeline/types.ts | 14 +- src/components-lib/zoom/types.ts | 2 +- src/components-lib/zoom/zoom-controller.ts | 9 +- src/components-lib/zoom/zoom-view-context.ts | 6 +- src/components/call-controls.ts | 10 +- src/components/carousel.ts | 17 ++- src/components/date-picker.ts | 10 +- src/components/diagnostics.ts | 16 ++- src/components/drawer.ts | 10 +- src/components/effects/base.ts | 2 +- src/components/effects/check.ts | 2 +- src/components/effects/effects.ts | 4 +- src/components/effects/firework-burst.ts | 8 +- src/components/effects/firework-particle.ts | 8 +- src/components/effects/fireworks.ts | 2 +- src/components/effects/ghost.ts | 2 +- src/components/effects/heart.ts | 8 +- src/components/effects/hearts.ts | 2 +- src/components/effects/shamrock.ts | 8 +- src/components/effects/shamrocks.ts | 2 +- src/components/effects/snow.ts | 2 +- src/components/effects/snowflake.ts | 8 +- src/components/elements.ts | 26 ++-- src/components/gallery/gallery-core.ts | 14 +- src/components/gallery/gallery.ts | 28 ++-- src/components/icon.ts | 10 +- src/components/image-player.ts | 12 +- src/components/image-updating-player.ts | 26 ++-- src/components/image.ts | 28 ++-- src/components/key-assigner.ts | 8 +- src/components/live/carousel.ts | 34 ++--- src/components/live/grid.ts | 22 +-- src/components/live/index.ts | 22 +-- src/components/live/provider.ts | 24 ++-- src/components/live/providers/go2rtc/index.ts | 14 +- .../live/providers/go2rtc/video-rtc.d.ts | 2 +- src/components/live/providers/ha.ts | 16 ++- src/components/live/providers/image.ts | 20 ++- src/components/live/providers/jsmpeg.ts | 16 +-- src/components/live/providers/webrtc-card.ts | 20 +-- src/components/loading.ts | 10 +- src/components/media-dimensions-container.ts | 10 +- src/components/media-filter.ts | 18 +-- src/components/media-grid.ts | 10 +- src/components/menu.ts | 8 +- src/components/next-prev-control.ts | 16 ++- src/components/notification/block.ts | 12 +- .../notification/common-rendering.ts | 4 +- src/components/notification/no-media.ts | 4 +- src/components/notification/popup.ts | 12 +- src/components/overlay.ts | 8 +- src/components/progress-indicator.ts | 14 +- src/components/ptz.ts | 20 +-- src/components/select.ts | 8 +- src/components/status-bar.ts | 10 +- src/components/submenu/index.ts | 8 +- src/components/submenu/select-button.ts | 6 +- src/components/submenu/submenu-button.ts | 8 +- src/components/submenu/types.ts | 4 +- src/components/surround-basic.ts | 12 +- src/components/surround.ts | 24 ++-- src/components/thumbnail-carousel.ts | 26 ++-- src/components/thumbnail/details.ts | 14 +- src/components/thumbnail/feature/feature.ts | 18 +-- src/components/thumbnail/feature/thumbnail.ts | 12 +- src/components/thumbnail/thumbnail.ts | 14 +- src/components/timeline-core.ts | 32 ++--- src/components/timeline.ts | 24 ++-- src/components/video-player.ts | 12 +- src/components/viewer/carousel.ts | 26 ++-- src/components/viewer/grid.ts | 22 +-- src/components/viewer/index.ts | 20 +-- src/components/viewer/provider.ts | 32 +++-- src/components/views.ts | 37 ++--- src/components/zoomer.ts | 8 +- src/condition-trigger/common/is-enabled.ts | 4 +- src/condition-trigger/common/numeric-state.ts | 6 +- src/condition-trigger/common/time-period.ts | 6 +- .../conditions/conditions-manager.ts | 6 +- .../conditions/conditions/and.ts | 2 +- .../conditions/conditions/call.ts | 6 +- .../conditions/conditions/camera.ts | 6 +- .../conditions/conditions/composite.ts | 4 +- .../conditions/conditions/display-mode.ts | 6 +- .../conditions/conditions/expand.ts | 6 +- .../conditions/conditions/fullscreen.ts | 6 +- .../conditions/conditions/initialized.ts | 4 +- .../conditions/conditions/interaction.ts | 6 +- .../conditions/conditions/key.ts | 6 +- .../conditions/conditions/media-loaded.ts | 6 +- .../conditions/conditions/microphone.ts | 6 +- .../conditions/conditions/not.ts | 2 +- .../conditions/conditions/numeric-state.ts | 4 +- .../conditions/conditions/or.ts | 2 +- .../conditions/conditions/screen.ts | 6 +- .../conditions/conditions/state.ts | 4 +- .../conditions/conditions/template.ts | 4 +- .../conditions/conditions/triggered.ts | 6 +- .../conditions/conditions/types.ts | 6 +- .../conditions/conditions/user-agent.ts | 4 +- .../conditions/conditions/user.ts | 4 +- .../conditions/conditions/view.ts | 6 +- src/condition-trigger/conditions/factory.ts | 6 +- .../conditions/state-manager-via-event.ts | 2 +- .../conditions/state-manager.ts | 2 +- src/condition-trigger/conditions/types.ts | 14 +- .../triggers/build-trigger-data.ts | 6 +- src/condition-trigger/triggers/factory.ts | 4 +- src/condition-trigger/triggers/manager.ts | 10 +- .../triggers/triggers/call.ts | 4 +- .../triggers/triggers/camera.ts | 4 +- .../triggers/triggers/condition-state-base.ts | 12 +- .../triggers/triggers/config.ts | 4 +- .../triggers/triggers/display-mode.ts | 4 +- .../triggers/triggers/entity-state-base.ts | 6 +- .../triggers/triggers/event.ts | 4 +- .../triggers/triggers/expand.ts | 4 +- .../triggers/triggers/fullscreen.ts | 4 +- .../triggers/triggers/initialized.ts | 4 +- .../triggers/triggers/interaction.ts | 4 +- .../triggers/triggers/key.ts | 4 +- .../triggers/triggers/media-loaded.ts | 4 +- .../triggers/triggers/microphone.ts | 4 +- .../triggers/triggers/numeric-state.ts | 6 +- .../triggers/triggers/screen.ts | 4 +- .../triggers/triggers/state.ts | 4 +- .../triggers/triggers/template.ts | 4 +- .../triggers/triggers/triggered.ts | 4 +- .../triggers/triggers/types.ts | 10 +- .../triggers/triggers/view.ts | 4 +- src/condition-trigger/triggers/types.ts | 4 +- src/config/management.ts | 7 +- src/config/profiles/set-profiles.ts | 4 +- src/config/schema/actions/custom/effect.ts | 2 +- src/config/schema/actions/stock/target.ts | 2 +- src/config/schema/actions/types.ts | 2 +- .../schema/elements/custom/menu/types.ts | 8 +- src/config/schema/folders.ts | 2 +- src/config/schema/types.ts | 4 +- src/editor.ts | 16 ++- .../browse-media-to-view-media.ts | 4 +- src/ha/browse-media/item-factory.ts | 10 +- src/ha/browse-media/item.ts | 12 +- src/ha/browse-media/sort.ts | 2 +- src/ha/browse-media/walker.ts | 8 +- src/ha/browse-media/within-dates.ts | 2 +- src/ha/canonical-url.ts | 2 +- .../connection/subscription-health-monitor.ts | 4 +- src/ha/connection/subscription-manager.ts | 10 +- src/ha/connection/types.ts | 2 +- src/ha/download.ts | 6 +- src/ha/entity-state-translation.ts | 6 +- src/ha/event-match.ts | 4 +- src/ha/fetch.ts | 6 +- src/ha/fire-hass-event.ts | 2 +- src/ha/get-entities.ts | 2 +- src/ha/get-entity-title.ts | 2 +- src/ha/get-hass-differences.ts | 4 +- src/ha/get-trigger-event-type.ts | 2 +- src/ha/integration/index.ts | 4 +- src/ha/is-hass-different.ts | 2 +- src/ha/is-hass-ready.ts | 2 +- src/ha/registry/device/index.ts | 9 +- src/ha/registry/entity/index.ts | 10 +- src/ha/registry/entity/types.ts | 2 +- src/ha/resolved-media.ts | 2 +- src/ha/side-load-ha-elements.ts | 6 +- src/ha/sign-path.ts | 4 +- src/ha/source.ts | 2 +- src/ha/supports-feature.ts | 2 +- src/ha/types.ts | 2 +- src/ha/web-proxy.ts | 9 +- src/ha/ws-request.ts | 6 +- src/localize/localize.ts | 2 +- src/patches/ha-camera-stream.ts | 11 +- src/patches/ha-hls-player.ts | 6 +- src/patches/ha-web-rtc-player.ts | 8 +- src/patches/types.ts | 2 +- src/query-source.ts | 2 +- src/utils/action.ts | 61 +++++---- src/utils/basic.ts | 2 +- src/utils/camera.ts | 4 +- src/utils/debug.ts | 2 +- src/utils/diagnostics.ts | 10 +- src/utils/embla/carousel-controller.ts | 11 +- src/utils/find-best-media-time-index.ts | 2 +- src/utils/folder.ts | 4 +- src/utils/interaction-mode.ts | 2 +- src/utils/live-provider.ts | 10 +- src/utils/media-actions.ts | 6 +- src/utils/media-info.ts | 2 +- src/utils/media-layout.ts | 2 +- src/utils/ptz.ts | 8 +- src/utils/retry-timer.ts | 5 +- src/utils/review.ts | 2 +- src/utils/screenshot.ts | 2 +- src/utils/scroll.ts | 2 +- src/utils/task.ts | 6 +- src/utils/thumbnail.ts | 4 +- src/view/item-classifier.ts | 8 +- src/view/item.ts | 6 +- src/view/query-results.ts | 2 +- src/view/substream.ts | 2 +- src/view/target-id.ts | 2 +- src/view/unified-query-builder.ts | 26 ++-- src/view/unified-query-runner.ts | 8 +- src/view/unified-query.ts | 6 +- src/view/utils/query-filter.ts | 6 +- src/view/utils/resolve-default.ts | 6 +- src/view/view-support.ts | 11 +- src/view/view.ts | 12 +- tests/action-handler-directive.test.ts | 7 +- .../browse-media/engine-browse-media.test.ts | 6 +- tests/camera-manager/cache.test.ts | 10 +- tests/camera-manager/camera.test.ts | 6 +- tests/camera-manager/capabilities.test.ts | 4 +- tests/camera-manager/engine-factory.test.ts | 8 +- tests/camera-manager/frigate/camera.test.ts | 19 +-- .../frigate/engine-frigate.test.ts | 8 +- .../frigate/media-classifier.test.ts | 2 +- tests/camera-manager/frigate/requests.test.ts | 8 +- tests/camera-manager/frigate/util.test.ts | 2 +- tests/camera-manager/frigate/watcher.test.ts | 6 +- .../generic/engine-generic.test.ts | 4 +- tests/camera-manager/manager.test.ts | 30 ++--- tests/camera-manager/motioneye/camera.test.ts | 2 +- .../motioneye/engine-motioneye.test.ts | 13 +- tests/camera-manager/range.test.ts | 4 +- tests/camera-manager/reolink/camera.test.ts | 10 +- .../reolink/engine-reolink.test.ts | 12 +- tests/camera-manager/store.test.ts | 6 +- tests/camera-manager/tplink/camera.test.ts | 4 +- .../utils/camera-entity-from-config.test.ts | 5 +- .../camera-manager/utils/go2rtc-audio.test.ts | 4 +- tests/camera-manager/utils/ptz.test.ts | 2 +- .../actions/actions-manager.test.ts | 6 +- .../actions/actions/mute.test.ts | 2 +- .../actions/actions/pause.test.ts | 2 +- .../actions/actions/play.test.ts | 2 +- .../actions/actions/ptz-controls.test.ts | 2 +- .../actions/actions/ptz-digital.test.ts | 4 +- .../actions/actions/screenshot.test.ts | 2 +- .../actions/actions/substream-off.test.ts | 2 +- .../actions/actions/substream-on.test.ts | 4 +- .../actions/actions/unmute.test.ts | 2 +- tests/card-controller/actions/factory.test.ts | 2 +- .../automations-manager.test.ts | 4 +- tests/card-controller/call/manager.test.ts | 12 +- tests/card-controller/call/ringtone.test.ts | 2 +- .../card-controller/call/tones/custom.test.ts | 2 +- .../card-controller/call/tones/test-utils.ts | 4 +- .../camera-triggers-manager.test.ts | 8 +- .../camera-url-manager.test.ts | 4 +- .../card-element-manager.test.ts | 2 +- .../config/config-manager.test.ts | 6 +- .../config/load-control-entities.test.ts | 2 +- .../config/load-folders.test.ts | 2 +- .../config/load-keyboard-shortcuts.test.ts | 4 +- .../config/overrides-manager.test.ts | 2 +- tests/card-controller/controller.test.ts | 8 +- tests/card-controller/default-manager.test.ts | 4 +- .../effects/effects-manager.test.ts | 4 +- .../card-controller/folders/executor.test.ts | 8 +- .../card-controller/folders/ha/engine.test.ts | 6 +- .../folders/ha/media-matcher.test.ts | 4 +- .../folders/ha/metadata-generator.test.ts | 2 +- tests/card-controller/folders/manager.test.ts | 13 +- .../fullscreen/factory.test.ts | 2 +- .../fullscreen/fullscreen-manager.test.ts | 2 +- .../fullscreen/webkit/index.test.ts | 5 +- .../hass/event-watcher.test.ts | 4 +- .../initialization-manager.test.ts | 2 +- .../issues/issue-manager.test.ts | 6 +- .../issues/config-upgrade-failure.test.ts | 2 +- .../issues/issues/config-upgrade.test.ts | 2 +- .../issues/issues/event-subscription.test.ts | 4 +- .../issues/issues/initialization.test.ts | 4 +- .../issues/issues/legacy-resource.test.ts | 2 +- .../issues/issues/media-load.test.ts | 4 +- .../issues/issues/media-query.test.ts | 4 +- .../issues/issues/view-incompatible.test.ts | 4 +- .../issues/retry-control.test.ts | 2 +- .../issues/state-manager.test.ts | 2 +- tests/card-controller/lock/manager.test.ts | 2 +- .../media-player-manager.test.ts | 4 +- .../microphone-manager.test.ts | 2 +- .../notification-manager.test.ts | 4 +- tests/card-controller/pip-manager.test.ts | 4 +- .../query-string-manager.test.ts | 2 +- .../status-bar-item-manager.test.ts | 2 +- tests/card-controller/style-manager.test.ts | 4 +- tests/card-controller/test-utils.ts | 4 +- tests/card-controller/view/factory.test.ts | 11 +- .../view/modifiers/merge-context.test.ts | 2 +- tests/card-controller/view/test-utils.ts | 4 +- .../card-controller/view/view-manager.test.ts | 14 +- .../view/view-query-executor.test.ts | 6 +- .../cached-value-controller.test.ts | 2 +- .../components-lib/gallery/controller.test.ts | 21 +-- .../gallery/gallery-core-controller.test.ts | 6 +- .../lazy-load-controller.test.ts | 2 +- .../microphone-actions-controller.test.ts | 2 +- .../get-technology-for-video-rts.test.ts | 2 +- .../media-actions-controller.test.ts | 6 +- ...ia-dimensions-container-controller.test.ts | 4 +- .../media-filter-controller.test.ts | 18 +-- .../media-grid-controller.test.ts | 4 +- ...edia-loaded-info-source-controller.test.ts | 2 +- .../media-player/jsmpeg.test.ts | 2 +- .../media-player/updating-image.test.ts | 2 +- .../media/notification-controller.test.ts | 12 +- .../menu-button-controller.test.ts | 36 ++--- tests/components-lib/menu-controller.test.ts | 4 +- tests/components-lib/navigation.test.ts | 19 +-- .../notification/action.test.ts | 2 +- .../notification/summarize.test.ts | 2 +- .../ptz/drag-controller.test.ts | 2 +- .../components-lib/ptz/ptz-controller.test.ts | 4 +- .../signed-url-controller.test.ts | 4 +- .../status-bar-controller.test.ts | 2 +- .../thumbnail/feature/controller.test.ts | 2 +- tests/components-lib/timeline/source.test.ts | 28 ++-- .../zoom/zoom-controller.test.ts | 5 +- .../zoom/zoom-view-context.test.ts | 2 +- .../conditions/conditions/microphone.test.ts | 2 +- .../conditions/conditions/test-utils.ts | 2 +- .../conditions/factory.test.ts | 4 +- .../state-manager-via-event.test.ts | 4 +- .../conditions/state-manager.test.ts | 2 +- .../triggers/factory.test.ts | 4 +- .../triggers/manager.test.ts | 4 +- .../triggers/triggers/call.test.ts | 4 +- .../triggers/triggers/camera.test.ts | 4 +- .../triggers/triggers/config.test.ts | 4 +- .../triggers/triggers/display-mode.test.ts | 4 +- .../triggers/triggers/event.test.ts | 6 +- .../triggers/triggers/expand.test.ts | 4 +- .../triggers/triggers/fullscreen.test.ts | 4 +- .../triggers/triggers/interaction.test.ts | 4 +- .../triggers/triggers/media-loaded.test.ts | 4 +- .../triggers/triggers/microphone.test.ts | 6 +- .../triggers/triggers/numeric-state.test.ts | 6 +- .../triggers/triggers/screen.test.ts | 4 +- .../triggers/triggers/state.test.ts | 6 +- .../triggers/triggers/template.test.ts | 4 +- .../triggers/triggers/test-utils.ts | 2 +- .../triggers/triggers/triggered.test.ts | 4 +- .../triggers/triggers/view.test.ts | 4 +- tests/config/management.test.ts | 10 +- tests/config/profiles/index.test.ts | 2 +- tests/config/schema/folders.test.ts | 4 +- .../browse-media-to-view-media.test.ts | 4 +- tests/ha/browse-media/sort.test.ts | 2 +- tests/ha/browse-media/walker.test.ts | 9 +- .../subscription-health-monitor.test.ts | 2 +- .../connection/subscription-manager.test.ts | 14 +- tests/ha/download.test.ts | 2 +- tests/ha/event-match.test.ts | 2 +- tests/ha/fetch.test.ts | 2 +- tests/ha/haptic.test.ts | 2 +- tests/ha/registry/entity/mock.ts | 6 +- tests/ha/resolved-media.test.ts | 2 +- tests/ha/web-proxy.test.ts | 2 +- tests/ha/ws-request.test.ts | 2 +- tests/templates/index.test.ts | 4 +- tests/test-utils.ts | 126 +++++++++--------- tests/utils/action.test.ts | 2 +- tests/utils/audio.test.ts | 2 +- tests/utils/controls.test.ts | 2 +- tests/utils/diagnostics.test.ts | 4 +- tests/utils/embla/carousel-controller.test.ts | 12 +- tests/utils/embla/test-utils.ts | 4 +- tests/utils/media-actions.test.ts | 12 +- tests/utils/media-info.test.ts | 2 +- tests/utils/ptz.test.ts | 2 +- tests/utils/task.test.ts | 4 +- tests/utils/thumbnail.test.ts | 2 +- tests/view/query-results.test.ts | 2 +- tests/view/unified-query-builder.test.ts | 10 +- tests/view/unified-query-runner.test.ts | 8 +- tests/view/unified-query-transformer.test.ts | 6 +- tests/view/utils/query-filter.test.ts | 2 +- tests/view/utils/resolve-default.test.ts | 4 +- tests/view/view-support.test.ts | 6 +- tsconfig.json | 1 + 589 files changed, 2419 insertions(+), 2103 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index b4582d57..bcb99f66 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -65,6 +65,10 @@ export default defineConfig([ curly: 'error', 'local/no-em-dash': 'error', '@typescript-eslint/consistent-type-definitions': ['error', 'interface'], + '@typescript-eslint/consistent-type-imports': [ + 'error', + { fixStyle: 'separate-type-imports' }, + ], '@typescript-eslint/no-explicit-any': 'error', '@typescript-eslint/no-non-null-assertion': 'error', '@typescript-eslint/parameter-properties': 'error', diff --git a/src/action-handler-directive.ts b/src/action-handler-directive.ts index e7aa8335..a9fd5008 100644 --- a/src/action-handler-directive.ts +++ b/src/action-handler-directive.ts @@ -1,13 +1,13 @@ import { noChange } from 'lit'; import { - AttributePart, Directive, directive, - DirectiveParameters, + type AttributePart, + type DirectiveParameters, } from 'lit/directive.js'; import { fireHASSEvent } from './ha/fire-hass-event.js'; -import { ActionHandlerDetail, ActionHandlerOptions } from './ha/types.js'; +import type { ActionHandlerDetail, ActionHandlerOptions } from './ha/types.js'; import { stopEventFromActivatingCardWideActions } from './utils/action.js'; import { Timer } from './utils/timer.js'; diff --git a/src/cache/base.ts b/src/cache/base.ts index 49c08cd4..3162f9e5 100644 --- a/src/cache/base.ts +++ b/src/cache/base.ts @@ -1,4 +1,4 @@ -import { CacheInterface } from './types.js'; +import type { CacheInterface } from './types.js'; export class CacheBase implements CacheInterface { private _cache: Map; diff --git a/src/cache/expiring-cache.ts b/src/cache/expiring-cache.ts index aa063e9e..4b8f363b 100644 --- a/src/cache/expiring-cache.ts +++ b/src/cache/expiring-cache.ts @@ -1,5 +1,5 @@ import { EqualityCache } from './equality-cache'; -import { CacheInterface } from './types'; +import type { CacheInterface } from './types'; interface ExpiringValue { value: Value; diff --git a/src/camera-manager/browse-media/engine-browse-media.ts b/src/camera-manager/browse-media/engine-browse-media.ts index f3f73758..e26f8194 100644 --- a/src/camera-manager/browse-media/engine-browse-media.ts +++ b/src/camera-manager/browse-media/engine-browse-media.ts @@ -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'; /** diff --git a/src/camera-manager/cache.ts b/src/camera-manager/cache.ts index 5710b356..c6402339 100644 --- a/src/camera-manager/cache.ts +++ b/src/camera-manager/cache.ts @@ -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 { private _ranges: MemoryRangeSet = new MemoryRangeSet(); diff --git a/src/camera-manager/camera.ts b/src/camera-manager/camera.ts index f4616907..c2c1831a 100644 --- a/src/camera-manager/camera.ts +++ b/src/camera-manager/camera.ts @@ -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, diff --git a/src/camera-manager/capabilities.ts b/src/camera-manager/capabilities.ts index 0dbce529..80f2ad75 100644 --- a/src/camera-manager/capabilities.ts +++ b/src/camera-manager/capabilities.ts @@ -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; diff --git a/src/camera-manager/engine-factory.ts b/src/camera-manager/engine-factory.ts index 8289ebb3..e1facd3d 100644 --- a/src/camera-manager/engine-factory.ts +++ b/src/camera-manager/engine-factory.ts @@ -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 { diff --git a/src/camera-manager/engine.ts b/src/camera-manager/engine.ts index 08791329..9f5ad6b8 100644 --- a/src/camera-manager/engine.ts +++ b/src/camera-manager/engine.ts @@ -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, diff --git a/src/camera-manager/entity-camera.ts b/src/camera-manager/entity-camera.ts index eb33a429..149501d2 100644 --- a/src/camera-manager/entity-camera.ts +++ b/src/camera-manager/entity-camera.ts @@ -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'; /** diff --git a/src/camera-manager/frigate/camera.ts b/src/camera-manager/frigate/camera.ts index d7c1901f..5d44b626 100644 --- a/src/camera-manager/frigate/camera.ts +++ b/src/camera-manager/frigate/camera.ts @@ -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; diff --git a/src/camera-manager/frigate/engine-frigate.ts b/src/camera-manager/frigate/engine-frigate.ts index 74bbba80..059db247 100644 --- a/src/camera-manager/frigate/engine-frigate.ts +++ b/src/camera-manager/frigate/engine-frigate.ts @@ -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'; diff --git a/src/camera-manager/frigate/media-classifier.ts b/src/camera-manager/frigate/media-classifier.ts index de909261..fd6f24ed 100644 --- a/src/camera-manager/frigate/media-classifier.ts +++ b/src/camera-manager/frigate/media-classifier.ts @@ -1,4 +1,4 @@ -import { ViewMedia } from '../../view/item'; +import type { ViewMedia } from '../../view/item'; import { FrigateEventViewMedia, FrigateRecordingViewMedia, diff --git a/src/camera-manager/frigate/media.ts b/src/camera-manager/frigate/media.ts index adb3d0cd..44085ae0 100644 --- a/src/camera-manager/frigate/media.ts +++ b/src/camera-manager/frigate/media.ts @@ -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, diff --git a/src/camera-manager/frigate/requests.ts b/src/camera-manager/frigate/requests.ts index 40efe299..46ec4068 100644 --- a/src/camera-manager/frigate/requests.ts +++ b/src/camera-manager/frigate/requests.ts @@ -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'; /** diff --git a/src/camera-manager/frigate/types.ts b/src/camera-manager/frigate/types.ts index c616b765..a9c3592b 100644 --- a/src/camera-manager/frigate/types.ts +++ b/src/camera-manager/frigate/types.ts @@ -1,7 +1,7 @@ import { z } from 'zod'; import { dayToDate } from '../../utils/basic'; -import { +import type { Engine, EventQueryResults, RecordingQueryResults, diff --git a/src/camera-manager/frigate/util.ts b/src/camera-manager/frigate/util.ts index 9ad80bce..463068ad 100644 --- a/src/camera-manager/frigate/util.ts +++ b/src/camera-manager/frigate/util.ts @@ -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, diff --git a/src/camera-manager/frigate/watcher.ts b/src/camera-manager/frigate/watcher.ts index c10faaaf..bb39086a 100644 --- a/src/camera-manager/frigate/watcher.ts +++ b/src/camera-manager/frigate/watcher.ts @@ -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 diff --git a/src/camera-manager/generic/engine-generic.ts b/src/camera-manager/generic/engine-generic.ts index 70b873fd..1583e907 100644 --- a/src/camera-manager/generic/engine-generic.ts +++ b/src/camera-manager/generic/engine-generic.ts @@ -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'; diff --git a/src/camera-manager/manager.ts b/src/camera-manager/manager.ts index 5b63d0e9..418456ca 100644 --- a/src/camera-manager/manager.ts +++ b/src/camera-manager/manager.ts @@ -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 { diff --git a/src/camera-manager/motioneye/camera.ts b/src/camera-manager/motioneye/camera.ts index 6929a41b..b79b8756 100644 --- a/src/camera-manager/motioneye/camera.ts +++ b/src/camera-manager/motioneye/camera.ts @@ -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 { diff --git a/src/camera-manager/motioneye/engine-motioneye.ts b/src/camera-manager/motioneye/engine-motioneye.ts index 56358dfa..626cbf5f 100644 --- a/src/camera-manager/motioneye/engine-motioneye.ts +++ b/src/camera-manager/motioneye/engine-motioneye.ts @@ -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( diff --git a/src/camera-manager/motioneye/types.ts b/src/camera-manager/motioneye/types.ts index 449f8ac9..f9f9518b 100644 --- a/src/camera-manager/motioneye/types.ts +++ b/src/camera-manager/motioneye/types.ts @@ -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 diff --git a/src/camera-manager/reolink/camera.ts b/src/camera-manager/reolink/camera.ts index 22e6b62a..77c25877 100644 --- a/src/camera-manager/reolink/camera.ts +++ b/src/camera-manager/reolink/camera.ts @@ -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. diff --git a/src/camera-manager/reolink/engine-reolink.ts b/src/camera-manager/reolink/engine-reolink.ts index 5130c0ce..26bb9f63 100644 --- a/src/camera-manager/reolink/engine-reolink.ts +++ b/src/camera-manager/reolink/engine-reolink.ts @@ -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( diff --git a/src/camera-manager/reolink/types.ts b/src/camera-manager/reolink/types.ts index 867cb821..7c69a0d0 100644 --- a/src/camera-manager/reolink/types.ts +++ b/src/camera-manager/reolink/types.ts @@ -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; diff --git a/src/camera-manager/store.ts b/src/camera-manager/store.ts index 3a9a471c..4edfcdba 100644 --- a/src/camera-manager/store.ts +++ b/src/camera-manager/store.ts @@ -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>; diff --git a/src/camera-manager/tplink/camera.ts b/src/camera-manager/tplink/camera.ts index 1c24136d..3e374933 100644 --- a/src/camera-manager/tplink/camera.ts +++ b/src/camera-manager/tplink/camera.ts @@ -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'; diff --git a/src/camera-manager/tplink/engine-tplink.ts b/src/camera-manager/tplink/engine-tplink.ts index 91e32bde..e816f599 100644 --- a/src/camera-manager/tplink/engine-tplink.ts +++ b/src/camera-manager/tplink/engine-tplink.ts @@ -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 { diff --git a/src/camera-manager/types.ts b/src/camera-manager/types.ts index 7a5c6b55..21b0e687 100644 --- a/src/camera-manager/types.ts +++ b/src/camera-manager/types.ts @@ -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 diff --git a/src/camera-manager/utils/camera-entity-from-config.ts b/src/camera-manager/utils/camera-entity-from-config.ts index 4e35b7a2..e7672ebc 100644 --- a/src/camera-manager/utils/camera-entity-from-config.ts +++ b/src/camera-manager/utils/camera-entity-from-config.ts @@ -1,4 +1,4 @@ -import { CameraConfig } from '../../config/schema/cameras'; +import type { CameraConfig } from '../../config/schema/cameras'; export const getCameraEntityFromConfig = ( cameraConfig?: CameraConfig, diff --git a/src/camera-manager/utils/go2rtc/audio.ts b/src/camera-manager/utils/go2rtc/audio.ts index 0089e354..d8370403 100644 --- a/src/camera-manager/utils/go2rtc/audio.ts +++ b/src/camera-manager/utils/go2rtc/audio.ts @@ -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, diff --git a/src/camera-manager/utils/go2rtc/endpoint.ts b/src/camera-manager/utils/go2rtc/endpoint.ts index fb211207..f1a24bc2 100644 --- a/src/camera-manager/utils/go2rtc/endpoint.ts +++ b/src/camera-manager/utils/go2rtc/endpoint.ts @@ -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; diff --git a/src/camera-manager/utils/ptz.ts b/src/camera-manager/utils/ptz.ts index b0764d93..b2540ef9 100644 --- a/src/camera-manager/utils/ptz.ts +++ b/src/camera-manager/utils/ptz.ts @@ -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, diff --git a/src/camera-manager/utils/range-to-cache-friendly.ts b/src/camera-manager/utils/range-to-cache-friendly.ts index 3e18f963..d5f8bbed 100644 --- a/src/camera-manager/utils/range-to-cache-friendly.ts +++ b/src/camera-manager/utils/range-to-cache-friendly.ts @@ -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 = ( diff --git a/src/card-controller/actions/actions-manager.ts b/src/card-controller/actions/actions-manager.ts index 120fc314..12c4c23b 100644 --- a/src/card-controller/actions/actions-manager.ts +++ b/src/card-controller/actions/actions-manager.ts @@ -1,8 +1,8 @@ -import { ActionContext } from 'action'; +import type { ActionContext } from 'action'; import { z } from 'zod'; -import { TriggerData } from '../../condition-trigger/triggers/types.js'; -import { +import type { TriggerData } from '../../condition-trigger/triggers/types.js'; +import type { ActionConfig, Actions, ActionsConfig, @@ -13,10 +13,10 @@ import { isAdvancedCameraCardCustomAction, } from '../../utils/action.js'; import { allPromises, errorToConsole } from '../../utils/basic.js'; -import { TemplateRenderer } from '../templates/index.js'; -import { CardActionsManagerAPI } from '../types.js'; +import type { TemplateRenderer } from '../templates/index.js'; +import type { CardActionsManagerAPI } from '../types.js'; import { ActionSet } from './actions/set.js'; -import { +import type { ActionPrepareCallback, ActionsExecutionRequest, ActionsExecutor, diff --git a/src/card-controller/actions/actions/base.ts b/src/card-controller/actions/actions/base.ts index 85ebf683..cac390fd 100644 --- a/src/card-controller/actions/actions/base.ts +++ b/src/card-controller/actions/actions/base.ts @@ -1,13 +1,13 @@ -import { ActionContext } from 'action'; +import type { ActionContext } from 'action'; -import { +import type { ActionConfig, AuxillaryActionConfig, } from '../../../config/schema/actions/types.js'; import { localize } from '../../../localize/localize.js'; import { getActionName } from '../../../utils/action'; -import { CardActionsAPI } from '../../types'; -import { Action, ActionAbortError, ActionPrepareCallback } from '../types'; +import type { CardActionsAPI } from '../../types'; +import { ActionAbortError, type Action, type ActionPrepareCallback } from '../types'; export class BaseAction implements Action { protected _context: ActionContext; diff --git a/src/card-controller/actions/actions/call-answer.ts b/src/card-controller/actions/actions/call-answer.ts index 399c6a04..572b584a 100644 --- a/src/card-controller/actions/actions/call-answer.ts +++ b/src/card-controller/actions/actions/call-answer.ts @@ -1,5 +1,5 @@ -import { CallAnswerActionConfig } from '../../../config/schema/actions/custom/call-answer'; -import { CardActionsAPI } from '../../types'; +import type { CallAnswerActionConfig } from '../../../config/schema/actions/custom/call-answer'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class CallAnswerAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/call-end.ts b/src/card-controller/actions/actions/call-end.ts index 954b71ad..5917c1ab 100644 --- a/src/card-controller/actions/actions/call-end.ts +++ b/src/card-controller/actions/actions/call-end.ts @@ -1,5 +1,5 @@ -import { CallEndActionConfig } from '../../../config/schema/actions/custom/call-end'; -import { CardActionsAPI } from '../../types'; +import type { CallEndActionConfig } from '../../../config/schema/actions/custom/call-end'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class CallEndAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/call-service.ts b/src/card-controller/actions/actions/call-service.ts index 53af0291..9d3ddad7 100644 --- a/src/card-controller/actions/actions/call-service.ts +++ b/src/card-controller/actions/actions/call-service.ts @@ -1,5 +1,5 @@ -import { CallServiceActionConfig } from '../../../config/schema/actions/stock/call-service'; -import { CardActionsAPI } from '../../types'; +import type { CallServiceActionConfig } from '../../../config/schema/actions/stock/call-service'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class CallServiceAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/call-start.ts b/src/card-controller/actions/actions/call-start.ts index a4d9c107..7266b3b0 100644 --- a/src/card-controller/actions/actions/call-start.ts +++ b/src/card-controller/actions/actions/call-start.ts @@ -1,5 +1,5 @@ -import { CallStartActionConfig } from '../../../config/schema/actions/custom/call-start'; -import { CardActionsAPI } from '../../types'; +import type { CallStartActionConfig } from '../../../config/schema/actions/custom/call-start'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class CallStartAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/camera-select.ts b/src/card-controller/actions/actions/camera-select.ts index b42c93b9..43bcd2bc 100644 --- a/src/card-controller/actions/actions/camera-select.ts +++ b/src/card-controller/actions/actions/camera-select.ts @@ -1,5 +1,5 @@ -import { CameraSelectActionConfig } from '../../../config/schema/actions/custom/camera-select'; -import { CardActionsAPI } from '../../types'; +import type { CameraSelectActionConfig } from '../../../config/schema/actions/custom/camera-select'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class CameraSelectAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/camera-ui.ts b/src/card-controller/actions/actions/camera-ui.ts index ebaaa9c5..4fc61f85 100644 --- a/src/card-controller/actions/actions/camera-ui.ts +++ b/src/card-controller/actions/actions/camera-ui.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class CameraUIAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/custom.ts b/src/card-controller/actions/actions/custom.ts index 8ba8aaf9..c7ac2af2 100644 --- a/src/card-controller/actions/actions/custom.ts +++ b/src/card-controller/actions/actions/custom.ts @@ -1,6 +1,6 @@ -import { CustomActionConfig } from '../../../config/schema/actions/stock/custom'; +import type { CustomActionConfig } from '../../../config/schema/actions/stock/custom'; import { fireHASSEvent } from '../../../ha/fire-hass-event'; -import { CardActionsAPI } from '../../types'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class CustomAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/default.ts b/src/card-controller/actions/actions/default.ts index 835c4122..5704c689 100644 --- a/src/card-controller/actions/actions/default.ts +++ b/src/card-controller/actions/actions/default.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class DefaultAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/display-mode-select.ts b/src/card-controller/actions/actions/display-mode-select.ts index 502b110a..d0928058 100644 --- a/src/card-controller/actions/actions/display-mode-select.ts +++ b/src/card-controller/actions/actions/display-mode-select.ts @@ -1,5 +1,5 @@ -import { DisplayModeActionConfig } from '../../../config/schema/actions/custom/display-mode'; -import { CardActionsAPI } from '../../types'; +import type { DisplayModeActionConfig } from '../../../config/schema/actions/custom/display-mode'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class DisplayModeSelectAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/download.ts b/src/card-controller/actions/actions/download.ts index 3d05f66d..dfebb437 100644 --- a/src/card-controller/actions/actions/download.ts +++ b/src/card-controller/actions/actions/download.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class DownloadAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/effect.ts b/src/card-controller/actions/actions/effect.ts index b5e36209..9e28a397 100644 --- a/src/card-controller/actions/actions/effect.ts +++ b/src/card-controller/actions/actions/effect.ts @@ -1,5 +1,5 @@ -import { EffectActionConfig } from '../../../config/schema/actions/custom/effect'; -import { CardActionsAPI } from '../../types'; +import type { EffectActionConfig } from '../../../config/schema/actions/custom/effect'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class EffectAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/expand.ts b/src/card-controller/actions/actions/expand.ts index b163baec..bd9c7102 100644 --- a/src/card-controller/actions/actions/expand.ts +++ b/src/card-controller/actions/actions/expand.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class ExpandAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/fullscreen.ts b/src/card-controller/actions/actions/fullscreen.ts index 75e68bfd..4c05e7c9 100644 --- a/src/card-controller/actions/actions/fullscreen.ts +++ b/src/card-controller/actions/actions/fullscreen.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class FullscreenAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/if.ts b/src/card-controller/actions/actions/if.ts index 6d53a821..3a73cea7 100644 --- a/src/card-controller/actions/actions/if.ts +++ b/src/card-controller/actions/actions/if.ts @@ -1,14 +1,14 @@ -import { ActionContext } from 'action'; +import type { ActionContext } from 'action'; import { createConditionEvaluator } from '../../../condition-trigger/conditions/factory'; -import { TriggerData } from '../../../condition-trigger/triggers/types'; -import { +import type { TriggerData } from '../../../condition-trigger/triggers/types'; +import type { AuxillaryActionConfig, IfActionConfig, } from '../../../config/schema/actions/types'; import { TemplateRenderer } from '../../templates/index'; -import { CardActionsAPI } from '../../types'; -import { ActionPrepareCallback } from '../types'; +import type { CardActionsAPI } from '../../types'; +import type { ActionPrepareCallback } from '../types'; import { BaseAction } from './base'; export class IfAction extends BaseAction { diff --git a/src/card-controller/actions/actions/info.ts b/src/card-controller/actions/actions/info.ts index c8f43056..9fc6ccec 100644 --- a/src/card-controller/actions/actions/info.ts +++ b/src/card-controller/actions/actions/info.ts @@ -1,7 +1,7 @@ import { MediaNotificationController } from '../../../components-lib/media/notification-controller'; -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; import { ViewItemClassifier } from '../../../view/item-classifier'; -import { CardActionsAPI } from '../../types'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class InfoAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/internal-callback.ts b/src/card-controller/actions/actions/internal-callback.ts index abd1dd10..70984a8d 100644 --- a/src/card-controller/actions/actions/internal-callback.ts +++ b/src/card-controller/actions/actions/internal-callback.ts @@ -1,5 +1,5 @@ -import { InternalCallbackActionConfig } from '../../../config/schema/actions/custom/internal'; -import { CardActionsAPI } from '../../types'; +import type { InternalCallbackActionConfig } from '../../../config/schema/actions/custom/internal'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class InternalCallbackAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/log.ts b/src/card-controller/actions/actions/log.ts index 3a8d3db5..4e91b59a 100644 --- a/src/card-controller/actions/actions/log.ts +++ b/src/card-controller/actions/actions/log.ts @@ -1,5 +1,5 @@ -import { LogActionConfig } from '../../../config/schema/actions/custom/log'; -import { CardActionsAPI } from '../../types'; +import type { LogActionConfig } from '../../../config/schema/actions/custom/log'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class LogAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/media-player.ts b/src/card-controller/actions/actions/media-player.ts index 7836ef20..dc817c40 100644 --- a/src/card-controller/actions/actions/media-player.ts +++ b/src/card-controller/actions/actions/media-player.ts @@ -1,7 +1,7 @@ -import { MediaPlayerActionConfig } from '../../../config/schema/actions/custom/media-player'; +import type { MediaPlayerActionConfig } from '../../../config/schema/actions/custom/media-player'; import { ViewItemClassifier } from '../../../view/item-classifier'; import { getStreamCameraID } from '../../../view/substream'; -import { CardActionsAPI } from '../../types'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class MediaPlayerAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/menu-toggle.ts b/src/card-controller/actions/actions/menu-toggle.ts index c8243e66..6c40d275 100644 --- a/src/card-controller/actions/actions/menu-toggle.ts +++ b/src/card-controller/actions/actions/menu-toggle.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class MenuToggleAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/microphone-connect.ts b/src/card-controller/actions/actions/microphone-connect.ts index 10313c08..d964a6fb 100644 --- a/src/card-controller/actions/actions/microphone-connect.ts +++ b/src/card-controller/actions/actions/microphone-connect.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class MicrophoneConnectAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/microphone-disconnect.ts b/src/card-controller/actions/actions/microphone-disconnect.ts index 2a11f0f4..f6a229a5 100644 --- a/src/card-controller/actions/actions/microphone-disconnect.ts +++ b/src/card-controller/actions/actions/microphone-disconnect.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class MicrophoneDisconnectAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/microphone-mute.ts b/src/card-controller/actions/actions/microphone-mute.ts index 36be6ea2..dcd44ac3 100644 --- a/src/card-controller/actions/actions/microphone-mute.ts +++ b/src/card-controller/actions/actions/microphone-mute.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class MicrophoneMuteAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/microphone-unmute.ts b/src/card-controller/actions/actions/microphone-unmute.ts index 14cc6f32..91c60c12 100644 --- a/src/card-controller/actions/actions/microphone-unmute.ts +++ b/src/card-controller/actions/actions/microphone-unmute.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class MicrophoneUnmuteAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/more-info.ts b/src/card-controller/actions/actions/more-info.ts index 25fd5f43..f226cc54 100644 --- a/src/card-controller/actions/actions/more-info.ts +++ b/src/card-controller/actions/actions/more-info.ts @@ -1,6 +1,6 @@ -import { MoreInfoActionConfig } from '../../../config/schema/actions/stock/more-info'; +import type { MoreInfoActionConfig } from '../../../config/schema/actions/stock/more-info'; import { fireHASSEvent } from '../../../ha/fire-hass-event'; -import { CardActionsAPI } from '../../types'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class MoreInfoAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/mute.ts b/src/card-controller/actions/actions/mute.ts index bd34f305..10a6a52c 100644 --- a/src/card-controller/actions/actions/mute.ts +++ b/src/card-controller/actions/actions/mute.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class MuteAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/navigate.ts b/src/card-controller/actions/actions/navigate.ts index 42826526..214f7897 100644 --- a/src/card-controller/actions/actions/navigate.ts +++ b/src/card-controller/actions/actions/navigate.ts @@ -1,6 +1,6 @@ -import { NavigateActionConfig } from '../../../config/schema/actions/stock/navigate'; +import type { NavigateActionConfig } from '../../../config/schema/actions/stock/navigate'; import { fireHASSEvent } from '../../../ha/fire-hass-event'; -import { CardActionsAPI } from '../../types'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class NavigateAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/none.ts b/src/card-controller/actions/actions/none.ts index c07f4033..1a68224d 100644 --- a/src/card-controller/actions/actions/none.ts +++ b/src/card-controller/actions/actions/none.ts @@ -1,5 +1,5 @@ -import { NoneActionConfig } from '../../../config/schema/actions/stock/none'; -import { CardActionsAPI } from '../../types'; +import type { NoneActionConfig } from '../../../config/schema/actions/stock/none'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class NoneAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/notification.ts b/src/card-controller/actions/actions/notification.ts index e11917af..ae6f39f6 100644 --- a/src/card-controller/actions/actions/notification.ts +++ b/src/card-controller/actions/actions/notification.ts @@ -1,5 +1,5 @@ -import { NotificationActionConfig } from '../../../config/schema/actions/types'; -import { CardActionsAPI } from '../../types'; +import type { NotificationActionConfig } from '../../../config/schema/actions/types'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class NotificationAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/pause.ts b/src/card-controller/actions/actions/pause.ts index e9f2368c..da50bb51 100644 --- a/src/card-controller/actions/actions/pause.ts +++ b/src/card-controller/actions/actions/pause.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class PauseAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/perform-action.ts b/src/card-controller/actions/actions/perform-action.ts index 77fc3d53..c06dc7d0 100644 --- a/src/card-controller/actions/actions/perform-action.ts +++ b/src/card-controller/actions/actions/perform-action.ts @@ -1,5 +1,5 @@ -import { PerformActionActionConfig } from '../../../config/schema/actions/stock/perform-action'; -import { CardActionsAPI } from '../../types'; +import type { PerformActionActionConfig } from '../../../config/schema/actions/stock/perform-action'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class PerformActionAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/pip.ts b/src/card-controller/actions/actions/pip.ts index b161e6e0..38688392 100644 --- a/src/card-controller/actions/actions/pip.ts +++ b/src/card-controller/actions/actions/pip.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class PIPAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/play.ts b/src/card-controller/actions/actions/play.ts index 7dcdb115..a45b85b5 100644 --- a/src/card-controller/actions/actions/play.ts +++ b/src/card-controller/actions/actions/play.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class PlayAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/ptz-controls.ts b/src/card-controller/actions/actions/ptz-controls.ts index eb86054e..ee2f866d 100644 --- a/src/card-controller/actions/actions/ptz-controls.ts +++ b/src/card-controller/actions/actions/ptz-controls.ts @@ -1,5 +1,5 @@ -import { PTZControlsActionConfig } from '../../../config/schema/actions/custom/ptz-controls'; -import { CardActionsAPI } from '../../types'; +import type { PTZControlsActionConfig } from '../../../config/schema/actions/custom/ptz-controls'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class PTZControlsAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/ptz-digital.ts b/src/card-controller/actions/actions/ptz-digital.ts index 6dd59945..10733065 100644 --- a/src/card-controller/actions/actions/ptz-digital.ts +++ b/src/card-controller/actions/actions/ptz-digital.ts @@ -1,18 +1,18 @@ import { clamp } from 'lodash-es'; import { - PartialZoomSettings, ZOOM_DEFAULT_PAN_X, ZOOM_DEFAULT_PAN_Y, ZOOM_DEFAULT_SCALE, + type PartialZoomSettings, } from '../../../components-lib/zoom/types'; import { generateViewContextForZoom } from '../../../components-lib/zoom/zoom-view-context'; -import { PTZDigitialActionConfig } from '../../../config/schema/actions/custom/ptz-digital'; +import type { 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'; -import { TargetedActionContext } from '../types'; +import type { CardActionsAPI } from '../../types'; +import type { TargetedActionContext } from '../types'; import { setInProgressForThisTarget, stopInProgressForThisTarget, diff --git a/src/card-controller/actions/actions/ptz-multi.ts b/src/card-controller/actions/actions/ptz-multi.ts index adbd0b7d..5c6d4a42 100644 --- a/src/card-controller/actions/actions/ptz-multi.ts +++ b/src/card-controller/actions/actions/ptz-multi.ts @@ -1,7 +1,7 @@ -import { PTZMultiActionConfig } from '../../../config/schema/actions/custom/ptz-multi'; +import type { PTZMultiActionConfig } from '../../../config/schema/actions/custom/ptz-multi'; import { createPTZAction, createPTZDigitalAction } from '../../../utils/action'; -import { getPTZTarget, hasCameraTruePTZ, PTZType } from '../../../utils/ptz'; -import { CardActionsAPI } from '../../types'; +import { getPTZTarget, hasCameraTruePTZ, type PTZType } from '../../../utils/ptz'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; import { PTZAction } from './ptz'; import { PTZDigitalAction } from './ptz-digital'; diff --git a/src/card-controller/actions/actions/ptz.ts b/src/card-controller/actions/actions/ptz.ts index 3de91423..d9f03e7a 100644 --- a/src/card-controller/actions/actions/ptz.ts +++ b/src/card-controller/actions/actions/ptz.ts @@ -1,8 +1,8 @@ -import { PTZActionConfig } from '../../../config/schema/actions/custom/ptz'; +import type { PTZActionConfig } from '../../../config/schema/actions/custom/ptz'; import { PTZMovementType } from '../../../types'; import { getPTZTarget, ptzActionToCapabilityKey } from '../../../utils/ptz'; import { Timer } from '../../../utils/timer'; -import { CardActionsAPI } from '../../types'; +import type { CardActionsAPI } from '../../types'; import { setInProgressForThisTarget, stopInProgressForThisTarget, diff --git a/src/card-controller/actions/actions/reload.ts b/src/card-controller/actions/actions/reload.ts index b66a8701..b249aaf9 100644 --- a/src/card-controller/actions/actions/reload.ts +++ b/src/card-controller/actions/actions/reload.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class ReloadAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/screenshot.ts b/src/card-controller/actions/actions/screenshot.ts index c37432eb..e0312ed2 100644 --- a/src/card-controller/actions/actions/screenshot.ts +++ b/src/card-controller/actions/actions/screenshot.ts @@ -1,7 +1,7 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; import { downloadURL } from '../../../utils/download'; import { generateScreenshotFilename } from '../../../utils/screenshot'; -import { CardActionsAPI } from '../../types'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class ScreenshotAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/set-review.ts b/src/card-controller/actions/actions/set-review.ts index 2b35fc74..604557e4 100644 --- a/src/card-controller/actions/actions/set-review.ts +++ b/src/card-controller/actions/actions/set-review.ts @@ -1,8 +1,8 @@ -import { SetReviewActionConfig } from '../../../config/schema/actions/custom/set-review'; +import type { SetReviewActionConfig } from '../../../config/schema/actions/custom/set-review'; import { toggleReviewed } from '../../../utils/media-actions'; import { ViewItemClassifier } from '../../../view/item-classifier'; import { getReviewedQueryFilterFromQuery } from '../../../view/utils/query-filter'; -import { CardActionsAPI } from '../../types'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class SetReviewAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/set.ts b/src/card-controller/actions/actions/set.ts index 78f76c73..3fe5bbe4 100644 --- a/src/card-controller/actions/actions/set.ts +++ b/src/card-controller/actions/actions/set.ts @@ -1,10 +1,10 @@ -import { ActionContext } from 'action'; +import type { ActionContext } from 'action'; -import { ActionConfig } from '../../../config/schema/actions/types'; +import type { ActionConfig } from '../../../config/schema/actions/types'; import { arrayify } from '../../../utils/basic'; -import { CardActionsAPI } from '../../types'; -import { ActionFactory, ActionFactoryOptions } from '../factory'; -import { ActionPrepareCallback } from '../types'; +import type { CardActionsAPI } from '../../types'; +import { ActionFactory, type ActionFactoryOptions } from '../factory'; +import type { ActionPrepareCallback } from '../types'; interface ActionSetOptions { factoryOptions?: ActionFactoryOptions; diff --git a/src/card-controller/actions/actions/sleep.ts b/src/card-controller/actions/actions/sleep.ts index 278c2707..c8b9954b 100644 --- a/src/card-controller/actions/actions/sleep.ts +++ b/src/card-controller/actions/actions/sleep.ts @@ -1,6 +1,6 @@ -import { SleepActionConfig } from '../../../config/schema/actions/custom/sleep'; +import type { SleepActionConfig } from '../../../config/schema/actions/custom/sleep'; import { sleep } from '../../../utils/sleep'; -import { CardActionsAPI } from '../../types'; +import type { CardActionsAPI } from '../../types'; import { timeDeltaToSeconds } from '../utils/time-delta'; import { AdvancedCameraCardAction } from './base'; diff --git a/src/card-controller/actions/actions/status-bar.ts b/src/card-controller/actions/actions/status-bar.ts index d1ce21f4..ac658de8 100644 --- a/src/card-controller/actions/actions/status-bar.ts +++ b/src/card-controller/actions/actions/status-bar.ts @@ -1,5 +1,5 @@ -import { StatusBarActionConfig } from '../../../config/schema/actions/types'; -import { CardActionsAPI } from '../../types'; +import type { StatusBarActionConfig } from '../../../config/schema/actions/types'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class StatusBarAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/substream-off.ts b/src/card-controller/actions/actions/substream-off.ts index 26491007..44b74c1a 100644 --- a/src/card-controller/actions/actions/substream-off.ts +++ b/src/card-controller/actions/actions/substream-off.ts @@ -1,5 +1,5 @@ -import { SubstreamOffActionConfig } from '../../../config/schema/actions/custom/substream-off'; -import { CardActionsAPI } from '../../types'; +import type { SubstreamOffActionConfig } from '../../../config/schema/actions/custom/substream-off'; +import type { CardActionsAPI } from '../../types'; import { SubstreamViewModifier } from '../../view/modifiers/substream'; import { AdvancedCameraCardAction } from './base'; diff --git a/src/card-controller/actions/actions/substream-on.ts b/src/card-controller/actions/actions/substream-on.ts index a3b15c31..82c5b739 100644 --- a/src/card-controller/actions/actions/substream-on.ts +++ b/src/card-controller/actions/actions/substream-on.ts @@ -1,7 +1,7 @@ -import { CameraManager } from '../../../camera-manager/manager'; -import { SubstreamOnActionConfig } from '../../../config/schema/actions/custom/substream-on'; -import { View } from '../../../view/view'; -import { CardActionsAPI } from '../../types'; +import type { CameraManager } from '../../../camera-manager/manager'; +import type { SubstreamOnActionConfig } from '../../../config/schema/actions/custom/substream-on'; +import type { View } from '../../../view/view'; +import type { CardActionsAPI } from '../../types'; import { SubstreamViewModifier } from '../../view/modifiers/substream'; import { AdvancedCameraCardAction } from './base'; diff --git a/src/card-controller/actions/actions/toggle.ts b/src/card-controller/actions/actions/toggle.ts index f41e857d..fb65ed9f 100644 --- a/src/card-controller/actions/actions/toggle.ts +++ b/src/card-controller/actions/actions/toggle.ts @@ -1,7 +1,7 @@ -import { ToggleActionConfig } from '../../../config/schema/actions/stock/toggle'; +import type { ToggleActionConfig } from '../../../config/schema/actions/stock/toggle'; import { computeDomain } from '../../../ha/compute-domain'; import { STATES_OFF } from '../../../ha/const'; -import { CardActionsAPI } from '../../types'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class ToggleAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/unmute.ts b/src/card-controller/actions/actions/unmute.ts index e193a7e4..ba9b2ef7 100644 --- a/src/card-controller/actions/actions/unmute.ts +++ b/src/card-controller/actions/actions/unmute.ts @@ -1,5 +1,5 @@ -import { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; -import { CardActionsAPI } from '../../types'; +import type { GeneralActionConfig } from '../../../config/schema/actions/custom/general'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class UnmuteAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/url.ts b/src/card-controller/actions/actions/url.ts index 19b6834d..22cb182c 100644 --- a/src/card-controller/actions/actions/url.ts +++ b/src/card-controller/actions/actions/url.ts @@ -1,5 +1,5 @@ -import { URLActionConfig } from '../../../config/schema/actions/stock/url'; -import { CardActionsAPI } from '../../types'; +import type { URLActionConfig } from '../../../config/schema/actions/stock/url'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class URLAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/actions/view.ts b/src/card-controller/actions/actions/view.ts index c686eb0b..863141b0 100644 --- a/src/card-controller/actions/actions/view.ts +++ b/src/card-controller/actions/actions/view.ts @@ -1,5 +1,5 @@ -import { ViewActionConfig } from '../../../config/schema/actions/custom/view'; -import { CardActionsAPI } from '../../types'; +import type { ViewActionConfig } from '../../../config/schema/actions/custom/view'; +import type { CardActionsAPI } from '../../types'; import { AdvancedCameraCardAction } from './base'; export class ViewAction extends AdvancedCameraCardAction { diff --git a/src/card-controller/actions/factory.ts b/src/card-controller/actions/factory.ts index e1e36f01..1b9df0d8 100644 --- a/src/card-controller/actions/factory.ts +++ b/src/card-controller/actions/factory.ts @@ -1,8 +1,11 @@ -import { ActionContext } from 'action'; +import type { ActionContext } from 'action'; -import { TriggerData } from '../../condition-trigger/triggers/types'; +import type { TriggerData } from '../../condition-trigger/triggers/types'; import { INTERNAL_CALLBACK_ACTION } from '../../config/schema/actions/custom/internal'; -import { ActionConfig, AuxillaryActionConfig } from '../../config/schema/actions/types'; +import type { + ActionConfig, + AuxillaryActionConfig, +} from '../../config/schema/actions/types'; import { isAdvancedCameraCardCustomAction, isIfAction } from '../../utils/action'; import { CallAnswerAction } from './actions/call-answer'; import { CallEndAction } from './actions/call-end'; @@ -51,7 +54,7 @@ import { ToggleAction } from './actions/toggle'; import { UnmuteAction } from './actions/unmute'; import { URLAction } from './actions/url'; import { ViewAction } from './actions/view'; -import { Action } from './types'; +import type { Action } from './types'; export interface ActionFactoryOptions { config?: AuxillaryActionConfig; diff --git a/src/card-controller/actions/types.ts b/src/card-controller/actions/types.ts index deb66a91..442ffaa5 100644 --- a/src/card-controller/actions/types.ts +++ b/src/card-controller/actions/types.ts @@ -1,10 +1,10 @@ -import { TriggerData } from '../../condition-trigger/triggers/types.js'; -import { +import type { TriggerData } from '../../condition-trigger/triggers/types.js'; +import type { ActionConfig, AuxillaryActionConfig, } from '../../config/schema/actions/types.js'; import { AdvancedCameraCardError } from '../../types.js'; -import { CardActionsAPI } from '../types'; +import type { CardActionsAPI } from '../types'; // Renders a value's templates, returning a rendered copy. Generic so it // preserves the value's type (the one cast lives in the renderer that supplies diff --git a/src/card-controller/actions/utils/action-state.ts b/src/card-controller/actions/utils/action-state.ts index 94223cb8..b44af2f1 100644 --- a/src/card-controller/actions/utils/action-state.ts +++ b/src/card-controller/actions/utils/action-state.ts @@ -1,7 +1,7 @@ -import { ActionContext } from 'action'; +import type { ActionContext } from 'action'; import { merge } from 'lodash-es'; -import { Action, TargetedActionContext } from '../types'; +import type { Action, TargetedActionContext } from '../types'; export const stopInProgressForThisTarget = async ( targetID: string, diff --git a/src/card-controller/actions/utils/execution-request.ts b/src/card-controller/actions/utils/execution-request.ts index 5caaba0d..c0e6cd42 100644 --- a/src/card-controller/actions/utils/execution-request.ts +++ b/src/card-controller/actions/utils/execution-request.ts @@ -1,5 +1,5 @@ import { fireAdvancedCameraCardEvent } from '../../../utils/fire-advanced-camera-card-event'; -import { ActionsExecutionRequest } from '../types'; +import type { ActionsExecutionRequest } from '../types'; export const dispatchActionExecutionRequest = ( element: HTMLElement, diff --git a/src/card-controller/actions/utils/time-delta.ts b/src/card-controller/actions/utils/time-delta.ts index c7ffd8c8..b697fbd9 100644 --- a/src/card-controller/actions/utils/time-delta.ts +++ b/src/card-controller/actions/utils/time-delta.ts @@ -1,4 +1,4 @@ -import { TimeDelta } from '../../../config/schema/actions/custom/sleep'; +import type { TimeDelta } from '../../../config/schema/actions/custom/sleep'; export const timeDeltaToSeconds = (timeDelta: TimeDelta): number => { return ( diff --git a/src/card-controller/automations-manager.ts b/src/card-controller/automations-manager.ts index bb437bbc..d95ba440 100644 --- a/src/card-controller/automations-manager.ts +++ b/src/card-controller/automations-manager.ts @@ -1,11 +1,11 @@ -import { ConditionEvaluator } from '../condition-trigger/conditions/conditions/types.js'; +import type { ConditionEvaluator } from '../condition-trigger/conditions/conditions/types.js'; import { createConditionEvaluator } from '../condition-trigger/conditions/factory.js'; import { TriggersManager } from '../condition-trigger/triggers/manager.js'; -import { TriggerData } from '../condition-trigger/triggers/types.js'; -import { Automation, AutomationActions } from '../config/schema/automations.js'; +import type { TriggerData } from '../condition-trigger/triggers/types.js'; +import type { Automation, AutomationActions } from '../config/schema/automations.js'; import { localize } from '../localize/localize.js'; import { TemplateRenderer } from './templates/index.js'; -import { CardAutomationsAPI, TaggedAutomation } from './types.js'; +import type { CardAutomationsAPI, TaggedAutomation } from './types.js'; const MAX_NESTED_AUTOMATION_EXECUTIONS = 10; diff --git a/src/card-controller/call/manager.ts b/src/card-controller/call/manager.ts index a6f9e57e..cd1a9bcf 100644 --- a/src/card-controller/call/manager.ts +++ b/src/card-controller/call/manager.ts @@ -1,13 +1,13 @@ import { createNotificationFromText } from '../../components-lib/notification/factory'; -import { ConditionStateChange } from '../../condition-trigger/conditions/types'; +import type { ConditionStateChange } from '../../condition-trigger/conditions/types'; import { localize } from '../../localize/localize'; import { Timer } from '../../utils/timer'; import { getStreamCameraID } from '../../view/substream'; -import { View } from '../../view/view'; -import { CardCallAPI } from '../types'; +import type { View } from '../../view/view'; +import type { CardCallAPI } from '../types'; import { SubstreamViewModifier } from '../view/modifiers/substream'; import { Ringtone } from './ringtone'; -import { CallSession } from './types'; +import type { CallSession } from './types'; export class CallManager { private _api: CardCallAPI; diff --git a/src/card-controller/call/ringtone.ts b/src/card-controller/call/ringtone.ts index bbd6c8f9..6a39d9b1 100644 --- a/src/card-controller/call/ringtone.ts +++ b/src/card-controller/call/ringtone.ts @@ -1,9 +1,9 @@ -import { RingtoneConfig } from '../../config/schema/live'; +import type { RingtoneConfig } from '../../config/schema/live'; import { ArpeggioTone } from './tones/arpeggio'; import { ChimeTone } from './tones/chime'; import { CustomTone } from './tones/custom'; import { MelodyTone } from './tones/melody'; -import { Tone } from './tones/types'; +import type { Tone } from './tones/types'; import { WestminsterTone } from './tones/westminster'; // Module-level singleton lock: only one `Ringtone` plays at a time across all diff --git a/src/card-controller/call/tones/arpeggio.ts b/src/card-controller/call/tones/arpeggio.ts index 032faad6..dd8027ec 100644 --- a/src/card-controller/call/tones/arpeggio.ts +++ b/src/card-controller/call/tones/arpeggio.ts @@ -1,4 +1,4 @@ -import { BellStrikeOptions, BellTone } from './bell'; +import { BellTone, type BellStrikeOptions } from './bell'; const PLUCK: BellStrikeOptions = { sparklePeak: 0.05, diff --git a/src/card-controller/call/tones/base.ts b/src/card-controller/call/tones/base.ts index fd9bc3cd..8b2647d6 100644 --- a/src/card-controller/call/tones/base.ts +++ b/src/card-controller/call/tones/base.ts @@ -1,5 +1,5 @@ import { Timer } from '../../../utils/timer'; -import { RingtoneFinishedHandler, Tone, ToneEnvelope } from './types'; +import type { RingtoneFinishedHandler, Tone, ToneEnvelope } from './types'; // Shared scaffolding for tones generated via the Web Audio API: owns the // AudioContext lifecycle, the repeat timer, and the bell-shaped note envelope. diff --git a/src/card-controller/call/tones/custom.ts b/src/card-controller/call/tones/custom.ts index 8db2faed..63970598 100644 --- a/src/card-controller/call/tones/custom.ts +++ b/src/card-controller/call/tones/custom.ts @@ -1,4 +1,4 @@ -import { RingtoneFinishedHandler, Tone } from './types'; +import type { RingtoneFinishedHandler, Tone } from './types'; export class CustomTone implements Tone { private _audio: HTMLAudioElement | null = null; diff --git a/src/card-controller/call/types.ts b/src/card-controller/call/types.ts index e859941e..3001be8e 100644 --- a/src/card-controller/call/types.ts +++ b/src/card-controller/call/types.ts @@ -1,4 +1,4 @@ -import { View } from '../../view/view'; +import type { View } from '../../view/view'; export interface CallSession { // The camera that owns the call. diff --git a/src/card-controller/camera-triggers-manager.ts b/src/card-controller/camera-triggers-manager.ts index 8101a24f..9545e5c7 100644 --- a/src/card-controller/camera-triggers-manager.ts +++ b/src/card-controller/camera-triggers-manager.ts @@ -1,9 +1,9 @@ import { maxBy, throttle } from 'lodash-es'; -import { CameraEvent } from '../camera-manager/types'; +import type { CameraEvent } from '../camera-manager/types'; import { isTriggeredState } from '../ha/is-triggered-state'; import { Timer } from '../utils/timer'; -import { CardCameraTriggersAPI } from './types'; +import type { CardCameraTriggersAPI } from './types'; interface CameraTriggerState { // The time of the most recent trigger event. Used to determine the most diff --git a/src/card-controller/camera-url-manager.ts b/src/card-controller/camera-url-manager.ts index ec923743..fdd9ece2 100644 --- a/src/card-controller/camera-url-manager.ts +++ b/src/card-controller/camera-url-manager.ts @@ -1,5 +1,5 @@ import { ViewItemClassifier } from '../view/item-classifier'; -import { CardCameraURLAPI } from './types'; +import type { CardCameraURLAPI } from './types'; export class CameraURLManager { private _api: CardCameraURLAPI; diff --git a/src/card-controller/card-element-manager.ts b/src/card-controller/card-element-manager.ts index 272f3002..88d7f2b5 100644 --- a/src/card-controller/card-element-manager.ts +++ b/src/card-controller/card-element-manager.ts @@ -1,15 +1,15 @@ -import { LitElement, ReactiveControllerHost } from 'lit'; +import type { LitElement, ReactiveControllerHost } from 'lit'; -import { ActionEventTarget } from '../action-handler-directive'; +import type { ActionEventTarget } from '../action-handler-directive'; import { isCardInPanel } from '../ha/panel'; -import { LovelaceCard } from '../ha/types'; +import type { LovelaceCard } from '../ha/types'; import { isBeingCasted } from '../utils/casting'; import { isAncestorInEventPath } from '../utils/event-ancestor'; -import { CardMediaReviewEventTarget } from '../utils/review'; -import { ViewItem } from '../view/item'; -import { ActionExecutionRequestEventTarget } from './actions/utils/execution-request'; +import type { CardMediaReviewEventTarget } from '../utils/review'; +import type { ViewItem } from '../view/item'; +import type { ActionExecutionRequestEventTarget } from './actions/utils/execution-request'; import { InitializationAspect } from './initialization-manager'; -import { CardElementAPI } from './types'; +import type { CardElementAPI } from './types'; export type ScrollCallback = () => void; export type MenuToggleCallback = () => void; diff --git a/src/card-controller/config/config-manager.ts b/src/card-controller/config/config-manager.ts index 05be939e..dbfb2af9 100644 --- a/src/card-controller/config/config-manager.ts +++ b/src/card-controller/config/config-manager.ts @@ -3,15 +3,15 @@ import { isEqual } from 'lodash-es'; import { copyConfig, isConfigUpgradeable } from '../../config/management.js'; import { setProfiles } from '../../config/profiles/set-profiles.js'; import { - AdvancedCameraCardConfig, advancedCameraCardConfigSchema, - CardWideConfig, + type AdvancedCameraCardConfig, + type CardWideConfig, } from '../../config/schema/types.js'; -import { RawAdvancedCameraCardConfig } from '../../config/types.js'; +import type { RawAdvancedCameraCardConfig } from '../../config/types.js'; import { localize } from '../../localize/localize.js'; import { getParseError } from '../../utils/zod/parse-errors.js'; import { InitializationAspect } from '../initialization-manager.js'; -import { CardConfigAPI } from '../types.js'; +import type { CardConfigAPI } from '../types.js'; import { ConfigParseError } from './error.js'; import { setAutomationsFromConfig } from './load-automations.js'; import { setRemoteControlEntityFromConfig } from './load-control-entities.js'; diff --git a/src/card-controller/config/load-automations.ts b/src/card-controller/config/load-automations.ts index 1fe2ab4d..cc0fc06c 100644 --- a/src/card-controller/config/load-automations.ts +++ b/src/card-controller/config/load-automations.ts @@ -1,4 +1,4 @@ -import { CardConfigLoaderAPI } from '../types'; +import type { CardConfigLoaderAPI } from '../types'; export const setAutomationsFromConfig = (api: CardConfigLoaderAPI): void => { api.getAutomationsManager().deleteAutomations(); diff --git a/src/card-controller/config/load-control-entities.ts b/src/card-controller/config/load-control-entities.ts index 3f771200..3f6d2a15 100644 --- a/src/card-controller/config/load-control-entities.ts +++ b/src/card-controller/config/load-control-entities.ts @@ -1,8 +1,8 @@ import { isEqual } from 'lodash-es'; -import { RemoteControlEntityPriority } from '../../config/schema/remote-control'; +import type { RemoteControlEntityPriority } from '../../config/schema/remote-control'; import { createCameraAction, createInternalCallbackAction } from '../../utils/action'; -import { CardActionsAPI, CardConfigLoaderAPI, TaggedAutomation } from '../types'; +import type { CardActionsAPI, CardConfigLoaderAPI, TaggedAutomation } from '../types'; export const setRemoteControlEntityFromConfig = (api: CardConfigLoaderAPI) => { const automationTag = setRemoteControlEntityFromConfig; diff --git a/src/card-controller/config/load-folders.ts b/src/card-controller/config/load-folders.ts index 0473d261..28b66166 100644 --- a/src/card-controller/config/load-folders.ts +++ b/src/card-controller/config/load-folders.ts @@ -1,4 +1,4 @@ -import { CardConfigLoaderAPI } from '../types'; +import type { CardConfigLoaderAPI } from '../types'; export const setFoldersFromConfig = (api: CardConfigLoaderAPI): void => { api.getFoldersManager().deleteFolders(); diff --git a/src/card-controller/config/load-keyboard-shortcuts.ts b/src/card-controller/config/load-keyboard-shortcuts.ts index f30e2f41..4cd4546c 100644 --- a/src/card-controller/config/load-keyboard-shortcuts.ts +++ b/src/card-controller/config/load-keyboard-shortcuts.ts @@ -1,7 +1,10 @@ -import { PTZAction } from '../../config/schema/actions/custom/ptz'; -import { KeyboardShortcuts, PTZKeyboardShortcutName } from '../../config/schema/view'; +import type { PTZAction } from '../../config/schema/actions/custom/ptz'; +import type { + KeyboardShortcuts, + PTZKeyboardShortcutName, +} from '../../config/schema/view'; import { createPTZMultiAction } from '../../utils/action'; -import { CardConfigLoaderAPI, TaggedAutomation } from '../types'; +import type { CardConfigLoaderAPI, TaggedAutomation } from '../types'; export const setKeyboardShortcutsFromConfig = (api: CardConfigLoaderAPI) => { const automationTag = setKeyboardShortcutsFromConfig; diff --git a/src/card-controller/config/overrides-manager.ts b/src/card-controller/config/overrides-manager.ts index eb39b300..5623c3c8 100644 --- a/src/card-controller/config/overrides-manager.ts +++ b/src/card-controller/config/overrides-manager.ts @@ -1,17 +1,17 @@ import { get, merge } from 'lodash-es'; import { ConditionsManager } from '../../condition-trigger/conditions/conditions-manager'; -import { ConditionStateManagerReadonlyInterface } from '../../condition-trigger/conditions/types'; +import type { ConditionStateManagerReadonlyInterface } from '../../condition-trigger/conditions/types'; import { copyConfig, deleteConfigValue, getConfigValue, setConfigValue, } from '../../config/management'; -import { Override } from '../../config/schema/overrides'; +import type { Override } from '../../config/schema/overrides'; import { - AdvancedCameraCardConfig, advancedCameraCardConfigSchema, + type AdvancedCameraCardConfig, } from '../../config/schema/types'; import { localize } from '../../localize/localize'; import { AdvancedCameraCardError } from '../../types'; diff --git a/src/card-controller/controller.ts b/src/card-controller/controller.ts index d3bc29ad..e9b3b3ea 100644 --- a/src/card-controller/controller.ts +++ b/src/card-controller/controller.ts @@ -1,14 +1,14 @@ -import { ReactiveController } from 'lit'; +import type { ReactiveController } from 'lit'; import { CameraManager } from '../camera-manager/manager'; import { ConditionStateManager } from '../condition-trigger/conditions/state-manager'; -import { AdvancedCameraCardConfig } from '../config/schema/types'; +import type { AdvancedCameraCardConfig } from '../config/schema/types'; import { DeviceRegistryManager } from '../ha/registry/device'; import { DeviceCache } from '../ha/registry/device/types'; import { EntityRegistryManagerLive } from '../ha/registry/entity'; -import { EntityCache, EntityRegistryManager } from '../ha/registry/entity/types'; +import { EntityCache, type EntityRegistryManager } from '../ha/registry/entity/types'; import { ResolvedMediaCache } from '../ha/resolved-media'; -import { LovelaceCardEditor } from '../ha/types'; +import type { LovelaceCardEditor } from '../ha/types'; import { ActionsManager } from './actions/actions-manager'; import { AutomationsManager } from './automations-manager'; import { CallManager } from './call/manager'; @@ -16,9 +16,9 @@ import { CameraTriggersManager } from './camera-triggers-manager'; import { CameraURLManager } from './camera-url-manager'; import { CardElementManager, - CardHTMLElement, - MenuToggleCallback, - ScrollCallback, + type CardHTMLElement, + type MenuToggleCallback, + type ScrollCallback, } from './card-element-manager'; import { ConfigManager } from './config/config-manager'; import { DefaultManager } from './default-manager'; @@ -30,7 +30,7 @@ import { HASSManager } from './hass/hass-manager'; import { InitializationManager } from './initialization-manager'; import { InteractionManager } from './interaction-manager'; import { createIssueManager } from './issues/factory'; -import { IssueManager } from './issues/issue-manager'; +import type { IssueManager } from './issues/issue-manager'; import { KeyboardStateManager } from './keyboard-state-manager'; import { LockManager } from './lock/manager'; import { MediaLoadedInfoManager } from './media-info-manager'; @@ -42,7 +42,7 @@ import { QueryStringManager } from './query-string-manager'; import { StatusBarItemManager } from './status-bar-item-manager'; import { StyleManager } from './style-manager'; import { TemplateRenderer } from './templates'; -import { +import type { CardActionsManagerAPI, CardAutomationsAPI, CardCameraAPI, diff --git a/src/card-controller/default-manager.ts b/src/card-controller/default-manager.ts index f709c711..0aafec0e 100644 --- a/src/card-controller/default-manager.ts +++ b/src/card-controller/default-manager.ts @@ -1,10 +1,10 @@ import { isEqual } from 'lodash-es'; -import { AdvancedCameraCardConfig } from '../config/schema/types'; +import type { AdvancedCameraCardConfig } from '../config/schema/types'; import { createGeneralAction } from '../utils/action'; import { isActionAllowedBasedOnInteractionState } from '../utils/interaction-mode'; import { Timer } from '../utils/timer'; -import { CardDefaultManagerAPI } from './types'; +import type { CardDefaultManagerAPI } from './types'; /** * Manages automated resetting to the default view. diff --git a/src/card-controller/effects/effects-manager.ts b/src/card-controller/effects/effects-manager.ts index 86800a9b..214d6df3 100644 --- a/src/card-controller/effects/effects-manager.ts +++ b/src/card-controller/effects/effects-manager.ts @@ -1,6 +1,6 @@ -import { EffectName, EffectsContainer, EffectsManagerInterface } from '../../types'; +import type { EffectName, EffectsContainer, EffectsManagerInterface } from '../../types'; import { Timer } from '../../utils/timer'; -import { EffectComponent, EffectModule, EffectOptions } from './types'; +import type { EffectComponent, EffectModule, EffectOptions } from './types'; const effectRegistry: Record Promise> = { check: async () => { diff --git a/src/card-controller/expand-manager.ts b/src/card-controller/expand-manager.ts index ce4591f3..90414046 100644 --- a/src/card-controller/expand-manager.ts +++ b/src/card-controller/expand-manager.ts @@ -1,4 +1,4 @@ -import { CardExpandAPI } from './types'; +import type { CardExpandAPI } from './types'; export class ExpandManager { private _expanded = false; diff --git a/src/card-controller/folders/executor.ts b/src/card-controller/folders/executor.ts index d01a81e8..d427cb38 100644 --- a/src/card-controller/folders/executor.ts +++ b/src/card-controller/folders/executor.ts @@ -1,12 +1,21 @@ -import { ConditionState } from '../../condition-trigger/conditions/types'; -import { FolderConfig, FolderType, folderTypeSchema } from '../../config/schema/folders'; -import { HomeAssistant } from '../../ha/types'; -import { Endpoint } from '../../types'; -import { ViewFolder, ViewItem } from '../../view/item'; -import { ViewItemCapabilities } from '../../view/types'; +import type { ConditionState } from '../../condition-trigger/conditions/types'; +import { + folderTypeSchema, + type FolderConfig, + type FolderType, +} from '../../config/schema/folders'; +import type { HomeAssistant } from '../../ha/types'; +import type { Endpoint } from '../../types'; +import type { ViewFolder, ViewItem } from '../../view/item'; +import type { ViewItemCapabilities } from '../../view/types'; import { sortItems } from '../view/sort'; import { HAFoldersEngine } from './ha/engine'; -import { DownloadHelpers, EngineOptions, FolderQuery, FoldersEngine } from './types'; +import type { + DownloadHelpers, + EngineOptions, + FolderQuery, + FoldersEngine, +} from './types'; export class FoldersExecutor { private _ha: FoldersEngine; diff --git a/src/card-controller/folders/ha/engine.ts b/src/card-controller/folders/ha/engine.ts index 1851e2d0..d4313706 100644 --- a/src/card-controller/folders/ha/engine.ts +++ b/src/card-controller/folders/ha/engine.ts @@ -1,35 +1,35 @@ import { sub } from 'date-fns'; -import { NonEmptyTuple } from 'type-fest'; +import type { NonEmptyTuple } from 'type-fest'; -import { ConditionState } from '../../../condition-trigger/conditions/types'; +import type { ConditionState } from '../../../condition-trigger/conditions/types'; import { - FolderConfig, folderTypeSchema, HA_MEDIA_SOURCE_ROOT, - HAFolderConfig, - HAFolderPathComponent, + type FolderConfig, + type HAFolderConfig, + type HAFolderPathComponent, } from '../../../config/schema/folders'; import { getViewItemsFromBrowseMediaArray } from '../../../ha/browse-media/browse-media-to-view-media'; import { BrowseMediaViewFolder } from '../../../ha/browse-media/item'; import { BROWSE_MEDIA_CACHE_SECONDS, BrowseMediaCache, - BrowseMediaMetadata, - RichBrowseMedia, + type BrowseMediaMetadata, + type RichBrowseMedia, } from '../../../ha/browse-media/types'; import { - BrowseMediaStep, - BrowseMediaTarget, BrowseMediaWalker, + type BrowseMediaStep, + type BrowseMediaTarget, } from '../../../ha/browse-media/walker'; import { getMediaDownloadPath } from '../../../ha/download'; -import { HomeAssistant } from '../../../ha/types'; +import type { HomeAssistant } from '../../../ha/types'; import { QuerySource } from '../../../query-source.js'; -import { Endpoint } from '../../../types'; -import { ViewFolder, ViewItem } from '../../../view/item'; +import type { Endpoint } from '../../../types'; +import type { ViewFolder, ViewItem } from '../../../view/item'; import { ViewItemClassifier } from '../../../view/item-classifier'; -import { ViewItemCapabilities } from '../../../view/types'; -import { +import type { ViewItemCapabilities } from '../../../view/types'; +import type { DownloadHelpers, EngineOptions, FolderPathComponent, diff --git a/src/card-controller/folders/ha/media-matcher.ts b/src/card-controller/folders/ha/media-matcher.ts index bf4056db..b6dfc049 100644 --- a/src/card-controller/folders/ha/media-matcher.ts +++ b/src/card-controller/folders/ha/media-matcher.ts @@ -1,15 +1,18 @@ import { sub } from 'date-fns'; -import { ConditionState } from '../../../condition-trigger/conditions/types'; -import { +import type { ConditionState } from '../../../condition-trigger/conditions/types'; +import type { DateMatcher, Matcher, StartDateMatcher, TemplateMatcher, TitleMatcher, } from '../../../config/schema/folders'; -import { BrowseMediaMetadata, RichBrowseMedia } from '../../../ha/browse-media/types'; -import { HomeAssistant } from '../../../ha/types'; +import type { + BrowseMediaMetadata, + RichBrowseMedia, +} from '../../../ha/browse-media/types'; +import type { HomeAssistant } from '../../../ha/types'; import { regexpExtract } from '../../../utils/regexp-extract'; import { TemplateRenderer } from '../../templates'; import { REGEXP_GROUP_VALUE_KEY } from './types'; diff --git a/src/card-controller/folders/ha/metadata-generator.ts b/src/card-controller/folders/ha/metadata-generator.ts index 45b0e5b3..6c449338 100644 --- a/src/card-controller/folders/ha/metadata-generator.ts +++ b/src/card-controller/folders/ha/metadata-generator.ts @@ -1,8 +1,8 @@ import type parser from 'any-date-parser'; import { parse } from 'date-fns'; -import { Parser } from '../../../config/schema/folders'; -import { +import type { Parser } from '../../../config/schema/folders'; +import type { BrowseMedia, BrowseMediaMetadata, RichBrowseMedia, diff --git a/src/card-controller/folders/manager.ts b/src/card-controller/folders/manager.ts index a160af30..4e0bfb9d 100644 --- a/src/card-controller/folders/manager.ts +++ b/src/card-controller/folders/manager.ts @@ -1,16 +1,20 @@ import { cloneDeep } from 'lodash-es'; -import { ConditionState } from '../../condition-trigger/conditions/types'; -import { FolderConfig, FolderConfigWithoutID } from '../../config/schema/folders'; +import type { ConditionState } from '../../condition-trigger/conditions/types'; +import type { FolderConfig, FolderConfigWithoutID } from '../../config/schema/folders'; import { localize } from '../../localize/localize'; import { hasUnsupportedFilters } from '../../query-source.js'; -import { Endpoint } from '../../types'; +import type { Endpoint } from '../../types'; import { getFolderID } from '../../utils/folder'; -import { ViewFolder, ViewItem } from '../../view/item'; -import { ViewItemCapabilities } from '../../view/types'; -import { CardFoldersAPI } from '../types'; +import type { ViewFolder, ViewItem } from '../../view/item'; +import type { ViewItemCapabilities } from '../../view/types'; +import type { CardFoldersAPI } from '../types'; import { FoldersExecutor } from './executor'; -import { EngineOptions, FolderInitializationError, FolderQuery } from './types'; +import { + FolderInitializationError, + type EngineOptions, + type FolderQuery, +} from './types'; export class FoldersManager { private _api: CardFoldersAPI; diff --git a/src/card-controller/folders/types.ts b/src/card-controller/folders/types.ts index 7bb045c5..0c48d59d 100644 --- a/src/card-controller/folders/types.ts +++ b/src/card-controller/folders/types.ts @@ -1,14 +1,14 @@ -import { NonEmptyTuple } from 'type-fest'; +import type { NonEmptyTuple } from 'type-fest'; -import { ConditionState } from '../../condition-trigger/conditions/types'; -import { FolderConfig, HAFolderPathComponent } from '../../config/schema/folders'; -import { ResolvedMediaCache } from '../../ha/resolved-media'; -import { HomeAssistant } from '../../ha/types'; -import { BaseQuery, QueryFilters, QuerySource } from '../../query-source'; -import { Endpoint } from '../../types'; +import type { ConditionState } from '../../condition-trigger/conditions/types'; +import type { FolderConfig, HAFolderPathComponent } from '../../config/schema/folders'; +import type { ResolvedMediaCache } from '../../ha/resolved-media'; +import type { HomeAssistant } from '../../ha/types'; +import type { BaseQuery, QueryFilters, QuerySource } from '../../query-source'; +import type { Endpoint } from '../../types'; import { AdvancedCameraCardError } from '../../types.js'; -import { ViewFolder, ViewItem } from '../../view/item'; -import { ViewItemCapabilities } from '../../view/types'; +import type { ViewFolder, ViewItem } from '../../view/item'; +import type { ViewItemCapabilities } from '../../view/types'; // ==== // Base diff --git a/src/card-controller/fullscreen/factory.ts b/src/card-controller/fullscreen/factory.ts index 755acacc..c6a28532 100644 --- a/src/card-controller/fullscreen/factory.ts +++ b/src/card-controller/fullscreen/factory.ts @@ -1,9 +1,9 @@ import screenfull from 'screenfull'; -import { WebkitHTMLVideoElement } from '../../types'; -import { CardFullscreenAPI } from '../types'; +import type { WebkitHTMLVideoElement } from '../../types'; +import type { CardFullscreenAPI } from '../types'; import { ScreenfullFullScreenProvider } from './screenfull'; -import { FullscreenHandler, FullscreenProvider } from './types'; +import type { FullscreenHandler, FullscreenProvider } from './types'; import { WebkitFullScreenProvider } from './webkit'; export class FullscreenProviderFactory { diff --git a/src/card-controller/fullscreen/fullscreen-manager.ts b/src/card-controller/fullscreen/fullscreen-manager.ts index 7b015e2b..42a0cc1a 100644 --- a/src/card-controller/fullscreen/fullscreen-manager.ts +++ b/src/card-controller/fullscreen/fullscreen-manager.ts @@ -1,7 +1,7 @@ import { isBeingCasted } from '../../utils/casting'; -import { CardFullscreenAPI } from '../types'; +import type { CardFullscreenAPI } from '../types'; import { FullscreenProviderFactory } from './factory'; -import { FullscreenProvider } from './types'; +import type { FullscreenProvider } from './types'; export class FullscreenManager { private _api: CardFullscreenAPI; diff --git a/src/card-controller/fullscreen/provider.ts b/src/card-controller/fullscreen/provider.ts index 5d508f73..869355c0 100644 --- a/src/card-controller/fullscreen/provider.ts +++ b/src/card-controller/fullscreen/provider.ts @@ -1,5 +1,5 @@ -import { CardFullscreenAPI } from '../types'; -import { FullscreenHandler } from './types'; +import type { CardFullscreenAPI } from '../types'; +import type { FullscreenHandler } from './types'; export class FullscreenProviderBase { protected _api: CardFullscreenAPI; diff --git a/src/card-controller/fullscreen/screenfull/index.ts b/src/card-controller/fullscreen/screenfull/index.ts index 8f07f5c2..52279409 100644 --- a/src/card-controller/fullscreen/screenfull/index.ts +++ b/src/card-controller/fullscreen/screenfull/index.ts @@ -1,7 +1,7 @@ import screenfull from 'screenfull'; import { FullscreenProviderBase } from '../provider'; -import { FullscreenProvider } from '../types'; +import type { FullscreenProvider } from '../types'; export class ScreenfullFullScreenProvider extends FullscreenProviderBase diff --git a/src/card-controller/fullscreen/webkit/index.ts b/src/card-controller/fullscreen/webkit/index.ts index a52a1a06..9980a8b3 100644 --- a/src/card-controller/fullscreen/webkit/index.ts +++ b/src/card-controller/fullscreen/webkit/index.ts @@ -1,8 +1,8 @@ -import { ConditionStateChange } from '../../../condition-trigger/conditions/types'; -import { WebkitHTMLVideoElement } from '../../../types'; +import type { ConditionStateChange } from '../../../condition-trigger/conditions/types'; +import type { WebkitHTMLVideoElement } from '../../../types'; import { Timer } from '../../../utils/timer'; import { FullscreenProviderBase } from '../provider'; -import { FullscreenProvider } from '../types'; +import type { FullscreenProvider } from '../types'; const WEBKIT_PLAY_SECONDS = 0.5; diff --git a/src/card-controller/hass/event-watcher.ts b/src/card-controller/hass/event-watcher.ts index c90318fd..d57ef4f9 100644 --- a/src/card-controller/hass/event-watcher.ts +++ b/src/card-controller/hass/event-watcher.ts @@ -1,11 +1,11 @@ -import { HassEvent } from 'home-assistant-js-websocket'; +import type { HassEvent } from 'home-assistant-js-websocket'; import { - SubscriptionHealthInterface, SubscriptionHealthMonitor, + type SubscriptionHealthInterface, } from '../../ha/connection/subscription-health-monitor'; import { HASSConnectionSubscriptionManager } from '../../ha/connection/subscription-manager'; -import { HASSSource } from '../../ha/source'; +import type { HASSSource } from '../../ha/source'; export interface EventSubscriptionRequest { event_type: string; diff --git a/src/card-controller/hass/hass-manager.ts b/src/card-controller/hass/hass-manager.ts index ced3a719..e13b1dc3 100644 --- a/src/card-controller/hass/hass-manager.ts +++ b/src/card-controller/hass/hass-manager.ts @@ -1,12 +1,12 @@ import { isHassReady } from '../../ha/is-hass-ready'; -import { HASSListener, HASSUnlistenCallback } from '../../ha/source'; -import { HomeAssistant } from '../../ha/types'; +import type { HASSListener, HASSUnlistenCallback } from '../../ha/source'; +import type { HomeAssistant } from '../../ha/types'; import { log } from '../../utils/debug'; import { InitializationAspect } from '../initialization-manager'; -import { CardHASSAPI } from '../types'; -import { EventWatcher, EventWatcherSubscriptionInterface } from './event-watcher'; -import { StateWatcher, StateWatcherSubscriptionInterface } from './state-watcher'; -import { HASSManagerReadonlyInterface } from './types'; +import type { CardHASSAPI } from '../types'; +import { EventWatcher, type EventWatcherSubscriptionInterface } from './event-watcher'; +import { StateWatcher, type StateWatcherSubscriptionInterface } from './state-watcher'; +import type { HASSManagerReadonlyInterface } from './types'; export class HASSManager implements HASSManagerReadonlyInterface { private _hass: HomeAssistant | null = null; diff --git a/src/card-controller/hass/state-watcher.ts b/src/card-controller/hass/state-watcher.ts index 4c3e895f..f6f42c58 100644 --- a/src/card-controller/hass/state-watcher.ts +++ b/src/card-controller/hass/state-watcher.ts @@ -1,6 +1,6 @@ import { getHassDifferences } from '../../ha/get-hass-differences'; -import { HASSSource, HASSUnlistenCallback } from '../../ha/source'; -import { HassStateDifference, HomeAssistant } from '../../ha/types'; +import type { HASSSource, HASSUnlistenCallback } from '../../ha/source'; +import type { HassStateDifference, HomeAssistant } from '../../ha/types'; type StateWatcherCallback = (difference: HassStateDifference) => void; diff --git a/src/card-controller/hass/types.ts b/src/card-controller/hass/types.ts index 5ff5f255..d9f5b042 100644 --- a/src/card-controller/hass/types.ts +++ b/src/card-controller/hass/types.ts @@ -1,6 +1,6 @@ -import { HASSSource } from '../../ha/source'; -import { EventWatcherSubscriptionInterface } from './event-watcher'; -import { StateWatcherSubscriptionInterface } from './state-watcher'; +import type { HASSSource } from '../../ha/source'; +import type { EventWatcherSubscriptionInterface } from './event-watcher'; +import type { StateWatcherSubscriptionInterface } from './state-watcher'; export interface HASSManagerReadonlyInterface extends HASSSource { getStateWatcher(): StateWatcherSubscriptionInterface; diff --git a/src/card-controller/initialization-manager.ts b/src/card-controller/initialization-manager.ts index 58581732..4070329b 100644 --- a/src/card-controller/initialization-manager.ts +++ b/src/card-controller/initialization-manager.ts @@ -6,7 +6,7 @@ import { sideLoadHomeAssistantElements } from '../ha/side-load-ha-elements'; import { loadLanguages } from '../localize/localize'; import { errorToConsole } from '../utils/basic'; import { Initializer } from '../utils/initializer/initializer'; -import { CardInitializerAPI } from './types'; +import type { CardInitializerAPI } from './types'; export enum InitializationAspect { LANGUAGES = 'languages', diff --git a/src/card-controller/interaction-manager.ts b/src/card-controller/interaction-manager.ts index 6abba0bb..9ccfa84a 100644 --- a/src/card-controller/interaction-manager.ts +++ b/src/card-controller/interaction-manager.ts @@ -1,7 +1,7 @@ import { throttle } from 'lodash-es'; import { Timer } from '../utils/timer'; -import { CardInteractionAPI } from './types'; +import type { CardInteractionAPI } from './types'; export class InteractionManager { private _timer = new Timer(); diff --git a/src/card-controller/issues/factory.ts b/src/card-controller/issues/factory.ts index 62d7754d..9f88cdf5 100644 --- a/src/card-controller/issues/factory.ts +++ b/src/card-controller/issues/factory.ts @@ -1,5 +1,5 @@ -import { SubscriptionHealthInterface } from '../../ha/connection/subscription-health-monitor'; -import { CardIssueManagerAPI } from '../types'; +import type { SubscriptionHealthInterface } from '../../ha/connection/subscription-health-monitor'; +import type { CardIssueManagerAPI } from '../types'; import { IssueManager } from './issue-manager'; import { ConfigErrorIssue } from './issues/config-error'; import { ConfigUpgradeIssue } from './issues/config-upgrade'; diff --git a/src/card-controller/issues/issue-manager.ts b/src/card-controller/issues/issue-manager.ts index 9be55ed5..8bad3826 100644 --- a/src/card-controller/issues/issue-manager.ts +++ b/src/card-controller/issues/issue-manager.ts @@ -1,11 +1,16 @@ import type { IssueTriggerContext } from 'issue'; -import { ConditionStateChange } from '../../condition-trigger/conditions/types'; +import type { ConditionStateChange } from '../../condition-trigger/conditions/types'; import { isActionAllowedBasedOnInteractionState } from '../../utils/interaction-mode'; import { RetryTimer } from '../../utils/retry-timer'; -import { CardIssueManagerAPI } from '../types'; +import type { CardIssueManagerAPI } from '../types'; import { IssueStateManager } from './state-manager'; -import { Issue, IssueKey, IssueReadOnlyState, IssueTriggerContextKey } from './types'; +import type { + Issue, + IssueKey, + IssueReadOnlyState, + IssueTriggerContextKey, +} from './types'; // Exponential backoff schedule for 'auto' retry. The base is set above the // per-media retry threshold (~10s) so the issue-level backoff kicks in *after* diff --git a/src/card-controller/issues/issues/abstract-error-issue.ts b/src/card-controller/issues/issues/abstract-error-issue.ts index 60bcfe61..7c3b29ef 100644 --- a/src/card-controller/issues/issues/abstract-error-issue.ts +++ b/src/card-controller/issues/issues/abstract-error-issue.ts @@ -1,4 +1,4 @@ -import { Issue, IssueDescription, IssueKey } from '../types.js'; +import type { Issue, IssueDescription, IssueKey } from '../types.js'; // Shared base for issues whose only state is a single triggered error. Subclasses // define the key and how an error renders; the base handles trigger/reset and diff --git a/src/card-controller/issues/issues/config-error.ts b/src/card-controller/issues/issues/config-error.ts index c3e1fe73..ca195215 100644 --- a/src/card-controller/issues/issues/config-error.ts +++ b/src/card-controller/issues/issues/config-error.ts @@ -1,6 +1,6 @@ import { createNotificationFromError } from '../../../components-lib/notification/factory.js'; import { localize } from '../../../localize/localize.js'; -import { IssueDescription } from '../types.js'; +import type { IssueDescription } from '../types.js'; import { AbstractErrorIssue } from './abstract-error-issue.js'; declare module 'issue' { diff --git a/src/card-controller/issues/issues/config-upgrade-failure.ts b/src/card-controller/issues/issues/config-upgrade-failure.ts index 66f173c7..4c005a45 100644 --- a/src/card-controller/issues/issues/config-upgrade-failure.ts +++ b/src/card-controller/issues/issues/config-upgrade-failure.ts @@ -1,8 +1,8 @@ import { hasConfigUpgradeFailures } from '../../../config/management.js'; import { TROUBLESHOOTING_CONFIG_UPGRADE_FAILURE_URL } from '../../../const.js'; import { localize } from '../../../localize/localize.js'; -import { CardIssueManagerAPI } from '../../types'; -import { Issue, IssueDescription } from '../types'; +import type { CardIssueManagerAPI } from '../../types'; +import type { Issue, IssueDescription } from '../types'; // Raised when the configuration upgrade could not faithfully upgrade part of // the config. diff --git a/src/card-controller/issues/issues/config-upgrade.ts b/src/card-controller/issues/issues/config-upgrade.ts index 9c188f3d..e523ae61 100644 --- a/src/card-controller/issues/issues/config-upgrade.ts +++ b/src/card-controller/issues/issues/config-upgrade.ts @@ -1,8 +1,8 @@ import { isConfigUpgradeable } from '../../../config/management.js'; import { TROUBLESHOOTING_CONFIG_UPGRADE_URL } from '../../../const.js'; import { localize } from '../../../localize/localize.js'; -import { CardIssueManagerAPI } from '../../types'; -import { Issue, IssueDescription } from '../types'; +import type { CardIssueManagerAPI } from '../../types'; +import type { Issue, IssueDescription } from '../types'; export class ConfigUpgradeIssue implements Issue { public readonly key = 'config_upgrade' as const; diff --git a/src/card-controller/issues/issues/connection.ts b/src/card-controller/issues/issues/connection.ts index 4321b6ae..d4f251fe 100644 --- a/src/card-controller/issues/issues/connection.ts +++ b/src/card-controller/issues/issues/connection.ts @@ -1,8 +1,8 @@ import { STATE_RUNNING } from 'home-assistant-js-websocket'; -import { ConditionState } from '../../../condition-trigger/conditions/types.js'; +import type { ConditionState } from '../../../condition-trigger/conditions/types.js'; import { localize } from '../../../localize/localize.js'; -import { Issue, IssueDescription } from '../types.js'; +import type { Issue, IssueDescription } from '../types.js'; // Tracks "is HA fully ready to talk to". Active in two sub-states: // - 'lost' : the WebSocket is disconnected diff --git a/src/card-controller/issues/issues/event-subscription.ts b/src/card-controller/issues/issues/event-subscription.ts index d3a5b8e6..867675b2 100644 --- a/src/card-controller/issues/issues/event-subscription.ts +++ b/src/card-controller/issues/issues/event-subscription.ts @@ -1,9 +1,9 @@ -import { Notification } from '../../../config/schema/actions/types'; -import { SubscriptionHealthInterface } from '../../../ha/connection/subscription-health-monitor'; -import { UnlistenCallback } from '../../../health'; +import type { Notification } from '../../../config/schema/actions/types'; +import type { SubscriptionHealthInterface } from '../../../ha/connection/subscription-health-monitor'; +import type { UnlistenCallback } from '../../../health'; import { localize } from '../../../localize/localize'; import { createRetryControl } from '../retry-control'; -import { Issue, IssueDescription } from '../types'; +import type { Issue, IssueDescription } from '../types'; const ISSUE_ICON = 'mdi:lan-disconnect'; diff --git a/src/card-controller/issues/issues/initialization.ts b/src/card-controller/issues/issues/initialization.ts index 0ed4ff8f..c81905f7 100644 --- a/src/card-controller/issues/issues/initialization.ts +++ b/src/card-controller/issues/issues/initialization.ts @@ -1,8 +1,8 @@ import { createNotificationFromError } from '../../../components-lib/notification/factory.js'; import { localize } from '../../../localize/localize.js'; -import { CardIssueManagerAPI } from '../../types'; +import type { CardIssueManagerAPI } from '../../types'; import { createRetryControl } from '../retry-control.js'; -import { IssueDescription } from '../types'; +import type { IssueDescription } from '../types'; import { AbstractErrorIssue } from './abstract-error-issue.js'; declare module 'issue' { diff --git a/src/card-controller/issues/issues/legacy-resource.ts b/src/card-controller/issues/issues/legacy-resource.ts index f84d1694..51cfa11b 100644 --- a/src/card-controller/issues/issues/legacy-resource.ts +++ b/src/card-controller/issues/issues/legacy-resource.ts @@ -1,11 +1,11 @@ import { z } from 'zod'; import { TROUBLESHOOTING_LEGACY_RESOURCE_URL } from '../../../const.js'; -import { HomeAssistant } from '../../../ha/types'; +import type { HomeAssistant } from '../../../ha/types'; import { localize } from '../../../localize/localize'; import { createInternalCallbackAction } from '../../../utils/action'; -import { CardActionsAPI } from '../../types'; -import { Issue, IssueDescription } from '../types'; +import type { CardActionsAPI } from '../../types'; +import type { Issue, IssueDescription } from '../types'; const LEGACY_RESOURCE_FILENAME = 'frigate-hass-card.js'; diff --git a/src/card-controller/issues/issues/media-load.ts b/src/card-controller/issues/issues/media-load.ts index ffb1c370..b3f4c88c 100644 --- a/src/card-controller/issues/issues/media-load.ts +++ b/src/card-controller/issues/issues/media-load.ts @@ -1,15 +1,15 @@ import type { IssueTriggerContext } from 'issue'; -import { ConditionState } from '../../../condition-trigger/conditions/types.js'; -import { Notification } from '../../../config/schema/actions/types.js'; +import type { ConditionState } from '../../../condition-trigger/conditions/types.js'; +import type { Notification } from '../../../config/schema/actions/types.js'; import { TROUBLESHOOTING_MEDIA_URL } from '../../../const.js'; import { localize } from '../../../localize/localize.js'; import { Timer } from '../../../utils/timer.js'; import { IMAGE_VIEW_TARGET_ID_SENTINEL } from '../../../view/target-id.js'; import { isAnyMediaViewName } from '../../../view/view.js'; -import { CardIssueManagerAPI } from '../../types.js'; +import type { CardIssueManagerAPI } from '../../types.js'; import { createRetryControl } from '../retry-control.js'; -import { Issue, IssueDescription } from '../types.js'; +import type { Issue, IssueDescription } from '../types.js'; declare module 'issue' { interface IssueTriggerContext { diff --git a/src/card-controller/issues/issues/media-query.ts b/src/card-controller/issues/issues/media-query.ts index 82cab767..fab05783 100644 --- a/src/card-controller/issues/issues/media-query.ts +++ b/src/card-controller/issues/issues/media-query.ts @@ -1,9 +1,9 @@ import { createNotificationFromError } from '../../../components-lib/notification/factory.js'; -import { Notification } from '../../../config/schema/actions/types.js'; +import type { Notification } from '../../../config/schema/actions/types.js'; import { localize } from '../../../localize/localize.js'; -import { CardIssueManagerAPI } from '../../types.js'; +import type { CardIssueManagerAPI } from '../../types.js'; import { createRetryControl } from '../retry-control.js'; -import { IssueDescription } from '../types.js'; +import type { IssueDescription } from '../types.js'; import { AbstractErrorIssue } from './abstract-error-issue.js'; declare module 'issue' { diff --git a/src/card-controller/issues/issues/view-incompatible.ts b/src/card-controller/issues/issues/view-incompatible.ts index 042c0307..525bec2f 100644 --- a/src/card-controller/issues/issues/view-incompatible.ts +++ b/src/card-controller/issues/issues/view-incompatible.ts @@ -1,8 +1,8 @@ import { createNotificationFromText } from '../../../components-lib/notification/factory.js'; import { localize } from '../../../localize/localize.js'; import { getContextFromError } from '../../../utils/error-context.js'; -import { CardIssueManagerAPI } from '../../types.js'; -import { IssueDescription } from '../types.js'; +import type { CardIssueManagerAPI } from '../../types.js'; +import type { IssueDescription } from '../types.js'; import { AbstractErrorIssue } from './abstract-error-issue.js'; declare module 'issue' { diff --git a/src/card-controller/issues/retry-control.ts b/src/card-controller/issues/retry-control.ts index e6d048ad..d5bdda8c 100644 --- a/src/card-controller/issues/retry-control.ts +++ b/src/card-controller/issues/retry-control.ts @@ -1,7 +1,7 @@ -import { NotificationControl } from '../../config/schema/actions/types.js'; +import type { NotificationControl } from '../../config/schema/actions/types.js'; import { localize } from '../../localize/localize.js'; import { createInternalCallbackAction } from '../../utils/action.js'; -import { IssueKey } from './types.js'; +import type { IssueKey } from './types.js'; export function createRetryControl(key: IssueKey): NotificationControl { return { diff --git a/src/card-controller/issues/state-manager.ts b/src/card-controller/issues/state-manager.ts index 28536f54..2afc3020 100644 --- a/src/card-controller/issues/state-manager.ts +++ b/src/card-controller/issues/state-manager.ts @@ -1,11 +1,11 @@ import type { IssueTriggerContext } from 'issue'; import { summarizeNotification } from '../../components-lib/notification/summarize'; -import { ConditionState } from '../../condition-trigger/conditions/types'; -import { Notification } from '../../config/schema/actions/types'; -import { HomeAssistant } from '../../ha/types'; +import type { ConditionState } from '../../condition-trigger/conditions/types'; +import type { Notification } from '../../config/schema/actions/types'; +import type { HomeAssistant } from '../../ha/types'; import { errorToConsole, isTruthy } from '../../utils/basic'; -import { +import type { Issue, IssueDescription, IssueKey, diff --git a/src/card-controller/issues/types.ts b/src/card-controller/issues/types.ts index 4bc225c5..b87cb1e4 100644 --- a/src/card-controller/issues/types.ts +++ b/src/card-controller/issues/types.ts @@ -1,9 +1,9 @@ import type { IssueTriggerContext } from 'issue'; -import { ConditionState } from '../../condition-trigger/conditions/types'; -import { Notification } from '../../config/schema/actions/types'; -import { HomeAssistant } from '../../ha/types'; -import { Severity } from '../../severity'; +import type { ConditionState } from '../../condition-trigger/conditions/types'; +import type { Notification } from '../../config/schema/actions/types'; +import type { HomeAssistant } from '../../ha/types'; +import type { Severity } from '../../severity'; export type IssueKey = | 'config_error' diff --git a/src/card-controller/keyboard-state-manager.ts b/src/card-controller/keyboard-state-manager.ts index 976504e5..ed8f7f44 100644 --- a/src/card-controller/keyboard-state-manager.ts +++ b/src/card-controller/keyboard-state-manager.ts @@ -1,6 +1,6 @@ import { isEqual } from 'lodash-es'; -import { CardKeyboardStateAPI, KeysState } from './types'; +import type { CardKeyboardStateAPI, KeysState } from './types'; export class KeyboardStateManager { private _api: CardKeyboardStateAPI; diff --git a/src/card-controller/lock/call-policy.ts b/src/card-controller/lock/call-policy.ts index a8d179aa..4c6e4e46 100644 --- a/src/card-controller/lock/call-policy.ts +++ b/src/card-controller/lock/call-policy.ts @@ -1,7 +1,7 @@ -import { ActionConfig } from '../../config/schema/actions/types'; +import type { ActionConfig } from '../../config/schema/actions/types'; import { VIEWS_USER_SPECIFIED } from '../../config/schema/common/const'; import { isAdvancedCameraCardCustomAction } from '../../utils/action'; -import { CardLockAPI } from '../types'; +import type { CardLockAPI } from '../types'; import type { LockPolicy } from './types'; // Actions that would disrupt an active call. Two categories: diff --git a/src/card-controller/lock/manager.ts b/src/card-controller/lock/manager.ts index 11d486ea..ff053515 100644 --- a/src/card-controller/lock/manager.ts +++ b/src/card-controller/lock/manager.ts @@ -1,6 +1,6 @@ -import { ActionConfig, Actions } from '../../config/schema/actions/types'; +import type { ActionConfig, Actions } from '../../config/schema/actions/types'; import { arrayify } from '../../utils/basic'; -import { CardLockAPI } from '../types'; +import type { CardLockAPI } from '../types'; import { CallLockPolicy } from './call-policy'; import type { LockManagerEpoch, LockPolicy } from './types'; diff --git a/src/card-controller/media-info-manager.ts b/src/card-controller/media-info-manager.ts index e62db082..6a93de43 100644 --- a/src/card-controller/media-info-manager.ts +++ b/src/card-controller/media-info-manager.ts @@ -1,4 +1,4 @@ -import { +import type { MediaLoadedInfo, MediaLoadedInfoEventDetail, MediaLoadedInfoOwner, @@ -6,7 +6,7 @@ import { import { onAbort } from '../utils/abort-signal'; import { log } from '../utils/debug'; import { isValidMediaLoadedInfo } from '../utils/media-info'; -import { CardMediaLoadedAPI } from './types'; +import type { CardMediaLoadedAPI } from './types'; interface ActiveEntry { info: MediaLoadedInfo; diff --git a/src/card-controller/media-player-manager.ts b/src/card-controller/media-player-manager.ts index 5e40a4ea..96ae8ae7 100644 --- a/src/card-controller/media-player-manager.ts +++ b/src/card-controller/media-player-manager.ts @@ -1,16 +1,16 @@ -import { CameraConfig } from '../config/schema/cameras'; -import { AdvancedCameraCardConfig } from '../config/schema/types'; +import type { CameraConfig } from '../config/schema/cameras'; +import type { AdvancedCameraCardConfig } from '../config/schema/types'; import { MEDIA_PLAYER_SUPPORT_BROWSE_MEDIA, MEDIA_PLAYER_SUPPORT_STOP, MEDIA_PLAYER_SUPPORT_TURN_OFF, } from '../const'; -import { Entity } from '../ha/registry/entity/types'; +import type { Entity } from '../ha/registry/entity/types'; import { supportsFeature } from '../ha/supports-feature'; import { errorToConsole } from '../utils/basic'; -import { ViewMedia } from '../view/item'; +import type { ViewMedia } from '../view/item'; import { ViewItemClassifier } from '../view/item-classifier'; -import { CardMediaPlayerAPI } from './types'; +import type { CardMediaPlayerAPI } from './types'; export class MediaPlayerManager { private _mediaPlayers: string[] = []; diff --git a/src/card-controller/microphone-manager.ts b/src/card-controller/microphone-manager.ts index 5b8845dd..c76a8b51 100644 --- a/src/card-controller/microphone-manager.ts +++ b/src/card-controller/microphone-manager.ts @@ -1,7 +1,7 @@ import { localize } from '../localize/localize'; import { AdvancedCameraCardError } from '../types'; import { Timer } from '../utils/timer'; -import { CardMicrophoneAPI, MicrophoneState } from './types'; +import type { CardMicrophoneAPI, MicrophoneState } from './types'; export class MicrophoneNotSupportedError extends AdvancedCameraCardError { constructor() { diff --git a/src/card-controller/notification-manager.ts b/src/card-controller/notification-manager.ts index c6f1b8b0..231a6ffd 100644 --- a/src/card-controller/notification-manager.ts +++ b/src/card-controller/notification-manager.ts @@ -1,5 +1,5 @@ -import { Notification } from '../config/schema/actions/types'; -import { CardNotificationAPI } from './types'; +import type { Notification } from '../config/schema/actions/types'; +import type { CardNotificationAPI } from './types'; export class NotificationManager { private _notification: Notification | null = null; diff --git a/src/card-controller/pip-manager.ts b/src/card-controller/pip-manager.ts index fc7b056e..3eede9c4 100644 --- a/src/card-controller/pip-manager.ts +++ b/src/card-controller/pip-manager.ts @@ -1,6 +1,6 @@ -import { ConditionStateChange } from '../condition-trigger/conditions/types'; -import { PIPElement } from '../types'; -import { CardPIPAPI } from './types'; +import type { ConditionStateChange } from '../condition-trigger/conditions/types'; +import type { PIPElement } from '../types'; +import type { CardPIPAPI } from './types'; export class PIPManager { private _api: CardPIPAPI; diff --git a/src/card-controller/query-string-manager.ts b/src/card-controller/query-string-manager.ts index 1ab069a5..b5717820 100644 --- a/src/card-controller/query-string-manager.ts +++ b/src/card-controller/query-string-manager.ts @@ -1,5 +1,5 @@ -import { ViewActionConfig } from '../config/schema/actions/custom/view'; -import { AdvancedCameraCardCustomActionConfig } from '../config/schema/actions/types'; +import type { ViewActionConfig } from '../config/schema/actions/custom/view'; +import type { AdvancedCameraCardCustomActionConfig } from '../config/schema/actions/types'; import { createCameraAction, createGeneralAction, @@ -7,9 +7,9 @@ import { createSubstreamOnAction, createViewAction, } from '../utils/action.js'; -import { CardQueryStringAPI } from './types'; +import type { CardQueryStringAPI } from './types'; import { SubstreamViewModifier } from './view/modifiers/substream'; -import { ViewParametersUserSpecified } from './view/types.js'; +import type { ViewParametersUserSpecified } from './view/types.js'; interface QueryStringViewIntent { view?: ViewParametersUserSpecified & { diff --git a/src/card-controller/status-bar-item-manager.ts b/src/card-controller/status-bar-item-manager.ts index 8f704534..cb9dee98 100644 --- a/src/card-controller/status-bar-item-manager.ts +++ b/src/card-controller/status-bar-item-manager.ts @@ -1,13 +1,13 @@ import { isEqual } from 'lodash-es'; -import { CameraManager } from '../camera-manager/manager'; -import { StatusBarItem } from '../config/schema/actions/types'; -import { StatusBarConfig } from '../config/schema/status-bar'; -import { MediaLoadedInfo } from '../types'; +import type { CameraManager } from '../camera-manager/manager'; +import type { StatusBarItem } from '../config/schema/actions/types'; +import type { StatusBarConfig } from '../config/schema/status-bar'; +import type { MediaLoadedInfo } from '../types'; import { createNotificationAction } from '../utils/action'; -import { View } from '../view/view'; -import { KeyedIssueDescription } from './issues/types'; -import { CardStatusBarAPI } from './types'; +import type { View } from '../view/view'; +import type { KeyedIssueDescription } from './issues/types'; +import type { CardStatusBarAPI } from './types'; const RESOLUTION_TOLERANCE_PCT = 0.01; diff --git a/src/card-controller/style-manager.ts b/src/card-controller/style-manager.ts index d5a49b1a..eaf39c81 100644 --- a/src/card-controller/style-manager.ts +++ b/src/card-controller/style-manager.ts @@ -1,14 +1,14 @@ -import { StyleInfo } from 'lit/directives/style-map'; +import type { StyleInfo } from 'lit/directives/style-map'; -import { AdvancedCameraCardConfig, configDefaults } from '../config/schema/types'; -import { ThemeConfig, ThemeName } from '../config/schema/view'; +import { configDefaults, type AdvancedCameraCardConfig } from '../config/schema/types'; +import type { ThemeConfig, ThemeName } from '../config/schema/view'; import { aspectRatioToStyle, setOrRemoveAttribute, setOrRemoveStyleProperty, } from '../utils/basic'; -import { View } from '../view/view'; -import { CardStyleAPI } from './types'; +import type { View } from '../view/view'; +import type { CardStyleAPI } from './types'; export class StyleManager { private _api: CardStyleAPI; diff --git a/src/card-controller/templates/index.ts b/src/card-controller/templates/index.ts index f5987b41..8261bbd5 100644 --- a/src/card-controller/templates/index.ts +++ b/src/card-controller/templates/index.ts @@ -1,10 +1,10 @@ -import { HASS, renderTemplate } from 'ha-nunjucks/dist'; +import { renderTemplate, type HASS } from 'ha-nunjucks/dist'; -import { ConditionState } from '../../condition-trigger/conditions/types'; -import { TriggerData } from '../../condition-trigger/triggers/types'; -import { HomeAssistant } from '../../ha/types'; +import type { ConditionState } from '../../condition-trigger/conditions/types'; +import type { TriggerData } from '../../condition-trigger/triggers/types'; +import type { HomeAssistant } from '../../ha/types'; import { isRecord } from '../../utils/basic'; -import { TemplateACCNamespace, TemplateMediaData } from './types'; +import type { TemplateACCNamespace, TemplateMediaData } from './types'; interface TemplateContext { acc: TemplateACCNamespace; diff --git a/src/card-controller/templates/types.ts b/src/card-controller/templates/types.ts index 2fed778a..654c34e6 100644 --- a/src/card-controller/templates/types.ts +++ b/src/card-controller/templates/types.ts @@ -1,4 +1,4 @@ -import { AdvancedCameraCardConfig } from '../../config/schema/types'; +import type { AdvancedCameraCardConfig } from '../../config/schema/types'; // The card state exposed via the `acc` namespace AND as the // `trigger.from_acc`/`to_acc` before/after snapshots (the card analogue of HA's diff --git a/src/card-controller/view/factory.ts b/src/card-controller/view/factory.ts index de279b4d..cac69b12 100644 --- a/src/card-controller/view/factory.ts +++ b/src/card-controller/view/factory.ts @@ -1,16 +1,16 @@ -import { AdvancedCameraCardView } from '../../config/schema/common/const'; -import { ViewDisplayMode } from '../../config/schema/common/display'; -import { AdvancedCameraCardConfig } from '../../config/schema/types'; +import type { AdvancedCameraCardView } from '../../config/schema/common/const'; +import type { ViewDisplayMode } from '../../config/schema/common/display'; +import type { AdvancedCameraCardConfig } from '../../config/schema/types'; import { resolveViewName } from '../../view/utils/resolve-default'; -import { View, ViewParameters } from '../../view/view'; +import { View, type ViewParameters } from '../../view/view'; import { doesViewRequireCamera, getCameraIDsWithCapabilityForView, isViewSupportedByCamera, } from '../../view/view-support'; -import { CardViewAPI } from '../types'; +import type { CardViewAPI } from '../types'; import { applyViewModifiers } from './modifiers'; -import { ViewFactoryOptions, ViewIncompatible } from './types'; +import { ViewIncompatible, type ViewFactoryOptions } from './types'; interface ResolvedViewTarget { viewName: AdvancedCameraCardView; diff --git a/src/card-controller/view/item-manager.ts b/src/card-controller/view/item-manager.ts index 963558e2..3fb3e99d 100644 --- a/src/card-controller/view/item-manager.ts +++ b/src/card-controller/view/item-manager.ts @@ -6,10 +6,10 @@ import { localize } from '../../localize/localize'; import { AdvancedCameraCardError } from '../../types'; import { errorToConsole } from '../../utils/basic'; import { downloadURL } from '../../utils/download'; -import { ViewItem } from '../../view/item'; +import type { ViewItem } from '../../view/item'; import { ViewItemClassifier } from '../../view/item-classifier'; -import { ViewItemCapabilities } from '../../view/types'; -import { CardViewAPI } from '../types'; +import type { ViewItemCapabilities } from '../../view/types'; +import type { CardViewAPI } from '../types'; enum ViewMediaSource { Camera = 'camera', diff --git a/src/card-controller/view/modifiers/index.ts b/src/card-controller/view/modifiers/index.ts index cba86f3d..945ee357 100644 --- a/src/card-controller/view/modifiers/index.ts +++ b/src/card-controller/view/modifiers/index.ts @@ -1,5 +1,5 @@ -import { View } from '../../../view/view'; -import { ViewModifier } from '../types'; +import type { View } from '../../../view/view'; +import type { ViewModifier } from '../types'; export const applyViewModifiers = ( view: View, diff --git a/src/card-controller/view/modifiers/merge-context.ts b/src/card-controller/view/modifiers/merge-context.ts index 885a265f..bbf182a2 100644 --- a/src/card-controller/view/modifiers/merge-context.ts +++ b/src/card-controller/view/modifiers/merge-context.ts @@ -1,7 +1,7 @@ -import { ViewContext } from 'view'; +import type { ViewContext } from 'view'; -import { View } from '../../../view/view'; -import { ViewModifier } from '../types'; +import type { View } from '../../../view/view'; +import type { ViewModifier } from '../types'; export class MergeContextViewModifier implements ViewModifier { private _context?: ViewContext | null; diff --git a/src/card-controller/view/modifiers/remove-context-property.ts b/src/card-controller/view/modifiers/remove-context-property.ts index 3dad622e..e75b501d 100644 --- a/src/card-controller/view/modifiers/remove-context-property.ts +++ b/src/card-controller/view/modifiers/remove-context-property.ts @@ -1,7 +1,7 @@ -import { ViewContext } from 'view'; +import type { ViewContext } from 'view'; -import { View } from '../../../view/view'; -import { ViewModifier } from '../types'; +import type { View } from '../../../view/view'; +import type { ViewModifier } from '../types'; export class RemoveContextPropertyViewModifier implements ViewModifier { private _key: keyof ViewContext; diff --git a/src/card-controller/view/modifiers/remove-context.ts b/src/card-controller/view/modifiers/remove-context.ts index 368fae7c..2653275c 100644 --- a/src/card-controller/view/modifiers/remove-context.ts +++ b/src/card-controller/view/modifiers/remove-context.ts @@ -1,7 +1,7 @@ -import { ViewContext } from 'view'; +import type { ViewContext } from 'view'; -import { View } from '../../../view/view'; -import { ViewModifier } from '../types'; +import type { View } from '../../../view/view'; +import type { ViewModifier } from '../types'; export class RemoveContextViewModifier implements ViewModifier { private _keys: (keyof ViewContext)[]; diff --git a/src/card-controller/view/modifiers/set-query.ts b/src/card-controller/view/modifiers/set-query.ts index 5b3d0431..ed7a402e 100644 --- a/src/card-controller/view/modifiers/set-query.ts +++ b/src/card-controller/view/modifiers/set-query.ts @@ -1,7 +1,7 @@ -import { QueryResults } from '../../../view/query-results'; -import { UnifiedQuery } from '../../../view/unified-query'; -import { View } from '../../../view/view'; -import { ViewModifier } from '../types'; +import type { QueryResults } from '../../../view/query-results'; +import type { UnifiedQuery } from '../../../view/unified-query'; +import type { View } from '../../../view/view'; +import type { ViewModifier } from '../types'; export class SetQueryViewModifier implements ViewModifier { private _query?: UnifiedQuery | null; diff --git a/src/card-controller/view/modifiers/substream.ts b/src/card-controller/view/modifiers/substream.ts index d503126d..5cfdccec 100644 --- a/src/card-controller/view/modifiers/substream.ts +++ b/src/card-controller/view/modifiers/substream.ts @@ -1,5 +1,5 @@ -import { View } from '../../../view/view'; -import { ViewModifier } from '../types'; +import type { View } from '../../../view/view'; +import type { ViewModifier } from '../types'; interface SubstreamViewModifierOptions { // The substream to engage. When absent, the override is cleared so the diff --git a/src/card-controller/view/sort.ts b/src/card-controller/view/sort.ts index 2aa9b0c4..ba63c276 100644 --- a/src/card-controller/view/sort.ts +++ b/src/card-controller/view/sort.ts @@ -1,6 +1,6 @@ import { orderBy, uniqBy } from 'lodash-es'; -import { ViewItem } from '../../view/item'; +import type { ViewItem } from '../../view/item'; import { ViewItemClassifier } from '../../view/item-classifier'; export const sortItems = (itemArray: T[]): T[] => { diff --git a/src/card-controller/view/types.ts b/src/card-controller/view/types.ts index 2e768fab..e3a8d5d4 100644 --- a/src/card-controller/view/types.ts +++ b/src/card-controller/view/types.ts @@ -1,10 +1,10 @@ -import { ViewContext } from 'view'; +import type { ViewContext } from 'view'; -import { AdvancedCameraCardUserSpecifiedView } from '../../config/schema/common/const.js'; +import type { AdvancedCameraCardUserSpecifiedView } from '../../config/schema/common/const.js'; import { AdvancedCameraCardError } from '../../types.js'; -import { ViewItem } from '../../view/item.js'; -import { QueryResults } from '../../view/query-results.js'; -import { View, ViewParameters } from '../../view/view.js'; +import type { ViewItem } from '../../view/item.js'; +import type { QueryResults } from '../../view/query-results.js'; +import type { View, ViewParameters } from '../../view/view.js'; export interface ViewModifier { modify(view: View): void; diff --git a/src/card-controller/view/view-manager.ts b/src/card-controller/view/view-manager.ts index e3066b86..73a1ee8a 100644 --- a/src/card-controller/view/view-manager.ts +++ b/src/card-controller/view/view-manager.ts @@ -1,14 +1,14 @@ -import { ViewContext } from 'view'; +import type { ViewContext } from 'view'; import { log } from '../../utils/debug'; import { getStreamCameraID } from '../../view/substream'; import { getViewTargetID } from '../../view/target-id'; -import { View } from '../../view/view'; +import type { View } from '../../view/view'; import { InitializationAspect } from '../initialization-manager'; -import { CardViewAPI } from '../types'; +import type { CardViewAPI } from '../types'; import { ViewFactory } from './factory'; import { applyViewModifiers } from './modifiers'; -import { +import type { QueryExecutorOptions, ViewFactoryOptions, ViewManagerEpoch, diff --git a/src/card-controller/view/view-query-executor.ts b/src/card-controller/view/view-query-executor.ts index 4d059133..93f69b37 100644 --- a/src/card-controller/view/view-query-executor.ts +++ b/src/card-controller/view/view-query-executor.ts @@ -3,16 +3,16 @@ import { sub } from 'date-fns'; import { MEDIA_CHUNK_SIZE_DEFAULT } from '../../const'; import { findBestMediaTimeIndex } from '../../utils/find-best-media-time-index'; import { QueryResults } from '../../view/query-results'; -import { UnifiedQuery } from '../../view/unified-query'; +import type { UnifiedQuery } from '../../view/unified-query'; import { UnifiedQueryBuilder } from '../../view/unified-query-builder'; import { UnifiedQueryRunner } from '../../view/unified-query-runner'; -import { View } from '../../view/view'; +import type { View } from '../../view/view'; import { doesViewRequireCamera, isViewSupported } from '../../view/view-support'; -import { CardViewAPI } from '../types'; +import type { CardViewAPI } from '../types'; import { MergeContextViewModifier } from './modifiers/merge-context'; import { RemoveContextPropertyViewModifier } from './modifiers/remove-context-property'; import { SetQueryViewModifier } from './modifiers/set-query'; -import { QueryExecutorOptions, ViewModifier } from './types'; +import type { QueryExecutorOptions, ViewModifier } from './types'; /** * This class executes media queries and returns an array of ViewModifiers that diff --git a/src/card.ts b/src/card.ts index 5c03f090..eeafe07d 100644 --- a/src/card.ts +++ b/src/card.ts @@ -1,8 +1,14 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { ifDefined } from 'lit/directives/if-defined.js'; -import { createRef, Ref, ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import { styleMap } from 'lit/directives/style-map.js'; import 'web-dialog'; @@ -16,12 +22,12 @@ import { MenuButtonController } from './components-lib/menu-button-controller'; import './components/effects/effects'; import './components/elements.js'; -import { AdvancedCameraCardElements } from './components/elements.js'; +import type { AdvancedCameraCardElements } from './components/elements.js'; import './components/loading.js'; import './components/menu.js'; -import { AdvancedCameraCardMenu } from './components/menu.js'; +import type { AdvancedCameraCardMenu } from './components/menu.js'; import './components/notification/block.js'; @@ -30,23 +36,23 @@ import { renderNotificationBlock } from './components/notification/block.js'; import './components/notification/popup.js'; import './components/overlay.js'; -import { AdvancedCameraCardOverlay } from './components/overlay.js'; +import type { AdvancedCameraCardOverlay } from './components/overlay.js'; import './components/status-bar'; import './components/thumbnail-carousel.js'; import './components/views.js'; -import { AdvancedCameraCardViews } from './components/views.js'; -import { ConditionStateManagerGetEvent } from './condition-trigger/conditions/state-manager-via-event.js'; -import { StatusBarItem } from './config/schema/actions/types.js'; -import { MenuItem } from './config/schema/elements/custom/menu/types.js'; -import { AdvancedCameraCardConfig } from './config/schema/types.js'; -import { RawAdvancedCameraCardConfig } from './config/types.js'; +import type { AdvancedCameraCardViews } from './components/views.js'; +import type { ConditionStateManagerGetEvent } from './condition-trigger/conditions/state-manager-via-event.js'; +import type { StatusBarItem } from './config/schema/actions/types.js'; +import type { MenuItem } from './config/schema/elements/custom/menu/types.js'; +import type { AdvancedCameraCardConfig } from './config/schema/types.js'; +import type { RawAdvancedCameraCardConfig } from './config/types.js'; import { REPO_URL } from './const.js'; -import { HomeAssistant, LovelaceCardEditor } from './ha/types.js'; +import type { HomeAssistant, LovelaceCardEditor } from './ha/types.js'; import { localize } from './localize/localize.js'; import cardStyle from './scss/card.scss'; -import { MediaLoadedInfoEventDetail } from './types.js'; +import type { MediaLoadedInfoEventDetail } from './types.js'; import { hasAction } from './utils/action.js'; import { getReleaseVersion } from './utils/diagnostics'; diff --git a/src/components-lib/auto-hide.ts b/src/components-lib/auto-hide.ts index d610c8e6..a9546d73 100644 --- a/src/components-lib/auto-hide.ts +++ b/src/components-lib/auto-hide.ts @@ -1,4 +1,4 @@ -import { AutoHideCondition } from '../config/schema/common/auto-hide'; +import type { AutoHideCondition } from '../config/schema/common/auto-hide'; import { isBeingCasted } from '../utils/casting'; // Whether each auto-hide condition is currently active. diff --git a/src/components-lib/cached-value-controller.ts b/src/components-lib/cached-value-controller.ts index 72ff8104..5fc76cc3 100644 --- a/src/components-lib/cached-value-controller.ts +++ b/src/components-lib/cached-value-controller.ts @@ -1,4 +1,4 @@ -import { ReactiveController, ReactiveControllerHost } from 'lit'; +import type { ReactiveController, ReactiveControllerHost } from 'lit'; import { Timer } from '../utils/timer'; diff --git a/src/components-lib/gallery/controller.ts b/src/components-lib/gallery/controller.ts index 5d8d185c..f843b02d 100644 --- a/src/components-lib/gallery/controller.ts +++ b/src/components-lib/gallery/controller.ts @@ -1,15 +1,15 @@ -import { ViewManagerEpoch } from '../../card-controller/view/types'; -import { AdvancedCameraCardView } from '../../config/schema/common/const'; +import type { ViewManagerEpoch } from '../../card-controller/view/types'; +import type { AdvancedCameraCardView } from '../../config/schema/common/const'; import { THUMBNAIL_WIDTH_DEFAULT } from '../../config/schema/common/controls/thumbnails'; -import { MediaGalleryThumbnailsConfig } from '../../config/schema/media-gallery'; +import type { MediaGalleryThumbnailsConfig } from '../../config/schema/media-gallery'; import { errorToConsole } from '../../utils/basic'; -import { ViewItem } from '../../view/item'; +import type { ViewItem } from '../../view/item'; import { ViewItemClassifier } from '../../view/item-classifier'; import { QueryResults } from '../../view/query-results'; -import { UnifiedQuery } from '../../view/unified-query'; -import { UnifiedQueryRunner } from '../../view/unified-query-runner'; -import { View } from '../../view/view'; -import { GalleryColumnCountRoundMethod } from './gallery-core-controller'; +import type { UnifiedQuery } from '../../view/unified-query'; +import type { UnifiedQueryRunner } from '../../view/unified-query-runner'; +import type { View } from '../../view/view'; +import type { GalleryColumnCountRoundMethod } from './gallery-core-controller'; interface GalleryViewContext { // The gallery view type the user navigated from (when in viewer). Used to diff --git a/src/components-lib/gallery/gallery-core-controller.ts b/src/components-lib/gallery/gallery-core-controller.ts index 4b3bd66c..1b2d5f3b 100644 --- a/src/components-lib/gallery/gallery-core-controller.ts +++ b/src/components-lib/gallery/gallery-core-controller.ts @@ -1,7 +1,7 @@ -import { LitElement, ReactiveController } from 'lit'; +import type { LitElement, ReactiveController } from 'lit'; import { throttle } from 'lodash-es'; -import { GalleryExtendEvent } from '../../components/gallery/types'; +import type { GalleryExtendEvent } from '../../components/gallery/types'; import { fireAdvancedCameraCardEvent } from '../../utils/fire-advanced-camera-card-event'; import { scrollIntoView } from '../../utils/scroll'; import { sleep } from '../../utils/sleep'; diff --git a/src/components-lib/icon-controller.ts b/src/components-lib/icon-controller.ts index 3fd4103a..893134cd 100644 --- a/src/components-lib/icon-controller.ts +++ b/src/components-lib/icon-controller.ts @@ -1,11 +1,11 @@ -import { HassEntity } from 'home-assistant-js-websocket'; +import type { HassEntity } from 'home-assistant-js-websocket'; import frigateSVG from '../camera-manager/frigate/assets/frigate.svg'; import motioneyeSVG from '../camera-manager/motioneye/assets/motioneye.svg'; import reolinkSVG from '../camera-manager/reolink/assets/reolink.svg'; import tplinkSVG from '../camera-manager/tplink/assets/tplink.svg'; -import { Icon } from '../config/schema/common/icon'; -import { HomeAssistant } from '../ha/types'; +import type { Icon } from '../config/schema/common/icon'; +import type { HomeAssistant } from '../ha/types'; import irisSVG from '../images/iris.svg'; export class IconController { diff --git a/src/components-lib/key-assigner-controller.ts b/src/components-lib/key-assigner-controller.ts index 52214335..341ecee6 100644 --- a/src/components-lib/key-assigner-controller.ts +++ b/src/components-lib/key-assigner-controller.ts @@ -1,7 +1,7 @@ -import { LitElement, ReactiveController } from 'lit'; +import type { LitElement, ReactiveController } from 'lit'; import { isEqual } from 'lodash-es'; -import { KeyboardShortcut } from '../config/schema/view'; +import type { KeyboardShortcut } from '../config/schema/view'; export class KeyAssignerController implements ReactiveController { private _host: LitElement; diff --git a/src/components-lib/lazy-load-controller.ts b/src/components-lib/lazy-load-controller.ts index 5aba190c..64b07ce1 100644 --- a/src/components-lib/lazy-load-controller.ts +++ b/src/components-lib/lazy-load-controller.ts @@ -1,6 +1,6 @@ -import { ReactiveController, ReactiveControllerHost } from 'lit'; +import type { ReactiveController, ReactiveControllerHost } from 'lit'; -import { LazyUnloadCondition } from '../config/schema/common/media-actions'; +import type { LazyUnloadCondition } from '../config/schema/common/media-actions'; type LazyLoadListener = (loaded: boolean) => void; diff --git a/src/components-lib/live/microphone-actions-controller.ts b/src/components-lib/live/microphone-actions-controller.ts index 6c6f9e7f..8366fcbc 100644 --- a/src/components-lib/live/microphone-actions-controller.ts +++ b/src/components-lib/live/microphone-actions-controller.ts @@ -1,5 +1,5 @@ -import { MicrophoneManager } from '../../card-controller/microphone-manager.js'; -import { +import type { MicrophoneManager } from '../../card-controller/microphone-manager.js'; +import type { MicrophoneAutoMuteCondition, MicrophoneAutoUnmuteCondition, } from '../../config/schema/common/media-actions.js'; diff --git a/src/components-lib/live/utils/get-technology-for-video-rtc.ts b/src/components-lib/live/utils/get-technology-for-video-rtc.ts index fac82602..22142631 100644 --- a/src/components-lib/live/utils/get-technology-for-video-rtc.ts +++ b/src/components-lib/live/utils/get-technology-for-video-rtc.ts @@ -1,5 +1,5 @@ -import { VideoRTC } from '../../../components/live/providers/go2rtc/video-rtc'; -import { MediaTechnology } from '../../../types'; +import type { VideoRTC } from '../../../components/live/providers/go2rtc/video-rtc'; +import type { MediaTechnology } from '../../../types'; export const getTechnologyForVideoRTC = ( element: VideoRTC, diff --git a/src/components-lib/media-actions-controller.ts b/src/components-lib/media-actions-controller.ts index cf134986..6189a310 100644 --- a/src/components-lib/media-actions-controller.ts +++ b/src/components-lib/media-actions-controller.ts @@ -1,11 +1,11 @@ -import { MicrophoneState } from '../card-controller/types.js'; -import { +import type { MicrophoneState } from '../card-controller/types.js'; +import type { AutoMuteCondition, AutoPauseCondition, AutoPlayCondition, AutoUnmuteCondition, } from '../config/schema/common/media-actions.js'; -import { MediaPlayerElement } from '../types.js'; +import type { MediaPlayerElement } from '../types.js'; import { Timer } from '../utils/timer.js'; import { VisibilityObserver } from './visibility-observer.js'; diff --git a/src/components-lib/media-dimensions-container-controller.ts b/src/components-lib/media-dimensions-container-controller.ts index 13b2808e..1430c440 100644 --- a/src/components-lib/media-dimensions-container-controller.ts +++ b/src/components-lib/media-dimensions-container-controller.ts @@ -1,8 +1,8 @@ -import { ReactiveController, ReactiveControllerHost } from 'lit'; +import type { ReactiveController, ReactiveControllerHost } from 'lit'; import { debounce } from 'lodash-es'; -import { CameraDimensionsConfig } from '../config/schema/cameras'; -import { MediaLoadedInfoEventDetail } from '../types'; +import type { CameraDimensionsConfig } from '../config/schema/cameras'; +import type { MediaLoadedInfoEventDetail } from '../types'; import { aspectRatioToString, setOrRemoveStyleProperty } from '../utils/basic'; import { updateElementStyleFromMediaLayoutConfig } from '../utils/media-layout'; diff --git a/src/components-lib/media-filter-controller.ts b/src/components-lib/media-filter-controller.ts index 6404bfd1..9603b3cb 100644 --- a/src/components-lib/media-filter-controller.ts +++ b/src/components-lib/media-filter-controller.ts @@ -10,24 +10,24 @@ import { startOfYesterday, sub, } from 'date-fns'; -import { LitElement } from 'lit'; +import type { LitElement } from 'lit'; import { isEqual, orderBy } from 'lodash-es'; -import { CameraManager, CameraQueryClassifier } from '../camera-manager/manager'; -import { DateRange, PartialDateRange } from '../camera-manager/range'; +import { CameraQueryClassifier, type CameraManager } from '../camera-manager/manager'; +import type { DateRange, PartialDateRange } from '../camera-manager/range'; import { - EventQuery, - MediaMetadata, QueryType, - ReviewQuery, + type EventQuery, + type MediaMetadata, + type ReviewQuery, } from '../camera-manager/types'; -import { FoldersManager } from '../card-controller/folders/manager'; -import { ViewManagerInterface } from '../card-controller/view/types'; -import { SelectOption, SelectValues } from '../components/select'; -import { CardWideConfig } from '../config/schema/types'; +import type { FoldersManager } from '../card-controller/folders/manager'; +import type { ViewManagerInterface } from '../card-controller/view/types'; +import type { SelectOption, SelectValues } from '../components/select'; +import type { CardWideConfig } from '../config/schema/types'; import { localize } from '../localize/localize'; -import { SEVERITIES, Severity } from '../severity'; -import { ViewMediaType } from '../types'; +import { SEVERITIES, type Severity } from '../severity'; +import type { ViewMediaType } from '../types'; import { errorToConsole, formatDate, prettifyTitle } from '../utils/basic'; import { UnifiedQueryBuilder } from '../view/unified-query-builder'; diff --git a/src/components-lib/media-grid-controller.ts b/src/components-lib/media-grid-controller.ts index 75214d40..5c1f9155 100644 --- a/src/components-lib/media-grid-controller.ts +++ b/src/components-lib/media-grid-controller.ts @@ -1,7 +1,7 @@ import { isEqual, throttle } from 'lodash-es'; import Masonry from 'masonry-layout'; -import { ViewDisplayConfig } from '../config/schema/common/display'; +import type { ViewDisplayConfig } from '../config/schema/common/display'; import { forceReflow, getChildrenFromElement, diff --git a/src/components-lib/media-loaded-info-sink-controller.ts b/src/components-lib/media-loaded-info-sink-controller.ts index f411c1d8..8427dca2 100644 --- a/src/components-lib/media-loaded-info-sink-controller.ts +++ b/src/components-lib/media-loaded-info-sink-controller.ts @@ -1,6 +1,6 @@ -import { ReactiveController, ReactiveControllerHost } from 'lit'; +import type { ReactiveController, ReactiveControllerHost } from 'lit'; -import { MediaLoadedInfo, MediaLoadedInfoEventDetail } from '../types'; +import type { MediaLoadedInfo, MediaLoadedInfoEventDetail } from '../types'; import { onAbort } from '../utils/abort-signal'; interface MediaLoadedInfoSinkConfig { diff --git a/src/components-lib/media-loaded-info-source-controller.ts b/src/components-lib/media-loaded-info-source-controller.ts index 76bb9324..201881e9 100644 --- a/src/components-lib/media-loaded-info-source-controller.ts +++ b/src/components-lib/media-loaded-info-source-controller.ts @@ -1,7 +1,7 @@ -import { ReactiveController, ReactiveControllerHost } from 'lit'; +import type { ReactiveController, ReactiveControllerHost } from 'lit'; import { isEqual, omit } from 'lodash-es'; -import { +import type { MediaLoadedInfo, MediaLoadedInfoEventDetail, UntargetedMediaLoadedInfo, diff --git a/src/components-lib/media-player/image.ts b/src/components-lib/media-player/image.ts index 55d1dffe..246948f2 100644 --- a/src/components-lib/media-player/image.ts +++ b/src/components-lib/media-player/image.ts @@ -1,6 +1,6 @@ -import { LitElement } from 'lit'; +import type { LitElement } from 'lit'; -import { FullscreenElement, MediaPlayerController, PIPElement } from '../../types'; +import type { FullscreenElement, MediaPlayerController, PIPElement } from '../../types'; import { screenshotImage } from '../../utils/screenshot'; export class ImageMediaPlayerController implements MediaPlayerController { diff --git a/src/components-lib/media-player/jsmpeg.ts b/src/components-lib/media-player/jsmpeg.ts index 8bf9f5e6..fdb10c77 100644 --- a/src/components-lib/media-player/jsmpeg.ts +++ b/src/components-lib/media-player/jsmpeg.ts @@ -1,7 +1,7 @@ -import JSMpeg from '@cycjimmy/jsmpeg-player'; -import { LitElement } from 'lit'; +import type JSMpeg from '@cycjimmy/jsmpeg-player'; +import type { LitElement } from 'lit'; -import { FullscreenElement, MediaPlayerController, PIPElement } from '../../types'; +import type { FullscreenElement, MediaPlayerController, PIPElement } from '../../types'; export class JSMPEGMediaPlayerController implements MediaPlayerController { private _host: LitElement; diff --git a/src/components-lib/media-player/updating-image.ts b/src/components-lib/media-player/updating-image.ts index ab728ad3..888b8c0b 100644 --- a/src/components-lib/media-player/updating-image.ts +++ b/src/components-lib/media-player/updating-image.ts @@ -1,7 +1,7 @@ -import { LitElement } from 'lit'; +import type { LitElement } from 'lit'; -import { FullscreenElement, MediaPlayerController, PIPElement } from '../../types'; -import { CachedValueController } from '../cached-value-controller'; +import type { FullscreenElement, MediaPlayerController, PIPElement } from '../../types'; +import type { CachedValueController } from '../cached-value-controller'; export class UpdatingImageMediaPlayerController implements MediaPlayerController { private _host: LitElement; diff --git a/src/components-lib/media-player/video.ts b/src/components-lib/media-player/video.ts index 59979eb9..1082918a 100644 --- a/src/components-lib/media-player/video.ts +++ b/src/components-lib/media-player/video.ts @@ -1,6 +1,6 @@ -import { LitElement } from 'lit'; +import type { LitElement } from 'lit'; -import { FullscreenElement, MediaPlayerController, PIPElement } from '../../types'; +import type { FullscreenElement, MediaPlayerController, PIPElement } from '../../types'; import { hideMediaControlsTemporarily, setControlsOnVideo } from '../../utils/controls'; import { screenshotVideo } from '../../utils/screenshot'; diff --git a/src/components-lib/media/notification-controller.ts b/src/components-lib/media/notification-controller.ts index 7b713399..dfdf0f70 100644 --- a/src/components-lib/media/notification-controller.ts +++ b/src/components-lib/media/notification-controller.ts @@ -1,15 +1,15 @@ import { format } from 'date-fns'; -import { CameraManager } from '../../camera-manager/manager'; -import { CameraManagerCameraMetadata } from '../../camera-manager/types'; -import { ViewItemManager } from '../../card-controller/view/item-manager'; -import { ViewManagerEpoch } from '../../card-controller/view/types'; -import { +import type { CameraManager } from '../../camera-manager/manager'; +import type { CameraManagerCameraMetadata } from '../../camera-manager/types'; +import type { ViewItemManager } from '../../card-controller/view/item-manager'; +import type { ViewManagerEpoch } from '../../card-controller/view/types'; +import type { Notification, NotificationControl, NotificationDetail, } from '../../config/schema/actions/types'; -import { HomeAssistant } from '../../ha/types'; +import type { HomeAssistant } from '../../ha/types'; import { localize } from '../../localize/localize'; import { createInternalCallbackAction } from '../../utils/action'; import { getDurationString, prettifyTitle } from '../../utils/basic'; @@ -19,9 +19,9 @@ import { toggleFavorite, toggleReviewed, } from '../../utils/media-actions'; -import { ViewItem } from '../../view/item'; +import type { ViewItem } from '../../view/item'; import { ViewItemClassifier } from '../../view/item-classifier'; -import { ViewItemCapabilities } from '../../view/types'; +import type { ViewItemCapabilities } from '../../view/types'; export interface NotificationControlsContext { hass?: HomeAssistant; diff --git a/src/components-lib/menu-button-controller.ts b/src/components-lib/menu-button-controller.ts index 57a1a974..568a709e 100644 --- a/src/components-lib/menu-button-controller.ts +++ b/src/components-lib/menu-button-controller.ts @@ -1,23 +1,23 @@ -import { StyleInfo } from 'lit/directives/style-map'; +import type { StyleInfo } from 'lit/directives/style-map'; -import { CameraManager } from '../camera-manager/manager'; -import { CallManager } from '../card-controller/call/manager'; -import { FoldersManager } from '../card-controller/folders/manager'; -import { FullscreenManager } from '../card-controller/fullscreen/fullscreen-manager'; -import { MediaPlayerManager } from '../card-controller/media-player-manager'; -import { MicrophoneManager } from '../card-controller/microphone-manager'; -import { PIPManager } from '../card-controller/pip-manager'; -import { ViewManager } from '../card-controller/view/view-manager'; +import type { CameraManager } from '../camera-manager/manager'; +import type { CallManager } from '../card-controller/call/manager'; +import type { FoldersManager } from '../card-controller/folders/manager'; +import type { FullscreenManager } from '../card-controller/fullscreen/fullscreen-manager'; +import type { MediaPlayerManager } from '../card-controller/media-player-manager'; +import type { MicrophoneManager } from '../card-controller/microphone-manager'; +import type { PIPManager } from '../card-controller/pip-manager'; +import type { ViewManager } from '../card-controller/view/view-manager'; import { - AdvancedCameraCardView, VIEWS_USER_SPECIFIED, + type AdvancedCameraCardView, } from '../config/schema/common/const'; -import { MenuItem } from '../config/schema/elements/custom/menu/types'; -import { AdvancedCameraCardConfig } from '../config/schema/types'; +import type { MenuItem } from '../config/schema/elements/custom/menu/types'; +import type { AdvancedCameraCardConfig } from '../config/schema/types'; import { getEntityTitle } from '../ha/get-entity-title'; -import { HomeAssistant } from '../ha/types'; +import type { HomeAssistant } from '../ha/types'; import { localize } from '../localize/localize.js'; -import { MediaLoadedInfo } from '../types'; +import type { MediaLoadedInfo } from '../types'; import { createCallEndAction, createCallStartAction, @@ -39,7 +39,7 @@ import { getPTZTarget } from '../utils/ptz'; import { ViewItemClassifier } from '../view/item-classifier'; import { getStreamCameraID, hasSubstream } from '../view/substream'; import { resolveViewName } from '../view/utils/resolve-default'; -import { View } from '../view/view'; +import type { View } from '../view/view'; import { getCameraIDsWithCapabilityForView, isViewSupported, diff --git a/src/components-lib/menu-controller.ts b/src/components-lib/menu-controller.ts index a9b00553..5d0346b1 100644 --- a/src/components-lib/menu-controller.ts +++ b/src/components-lib/menu-controller.ts @@ -1,4 +1,4 @@ -import { LitElement } from 'lit'; +import type { LitElement } from 'lit'; import { isEqual, orderBy } from 'lodash-es'; import { dispatchActionExecutionRequest } from '../card-controller/actions/utils/execution-request.js'; @@ -11,7 +11,7 @@ import type { MenuConfig } from '../config/schema/menu.js'; import type { Interaction } from '../types.js'; import { getActionConfigGivenAction, isStandardAction } from '../utils/action'; import { arrayify, isTruthy } from '../utils/basic.js'; -import { AutoHideState, isAutoHidden as evaluateAutoHidden } from './auto-hide.js'; +import { isAutoHidden as evaluateAutoHidden, type AutoHideState } from './auto-hide.js'; export class MenuController { private _host: LitElement; diff --git a/src/components-lib/navigation.ts b/src/components-lib/navigation.ts index ad9efb15..5e9ee85d 100644 --- a/src/components-lib/navigation.ts +++ b/src/components-lib/navigation.ts @@ -1,11 +1,11 @@ -import { NonEmptyTuple } from 'type-fest'; +import type { NonEmptyTuple } from 'type-fest'; -import { FolderPathComponent, FolderQuery } from '../card-controller/folders/types'; -import { ViewManagerEpoch, ViewModifier } from '../card-controller/view/types'; +import type { FolderPathComponent, FolderQuery } from '../card-controller/folders/types'; +import type { ViewManagerEpoch, ViewModifier } from '../card-controller/view/types'; import { localize } from '../localize/localize'; -import { ViewFolder, ViewMedia } from '../view/item'; -import { UnifiedQuery } from '../view/unified-query'; -import { UnifiedQueryBuilder } from '../view/unified-query-builder'; +import { ViewFolder, type ViewMedia } from '../view/item'; +import type { UnifiedQuery } from '../view/unified-query'; +import type { UnifiedQueryBuilder } from '../view/unified-query-builder'; export interface FolderNavigationParamaters { viewManagerEpoch: ViewManagerEpoch; diff --git a/src/components-lib/notification/action.ts b/src/components-lib/notification/action.ts index 5f8df195..142b3c9f 100644 --- a/src/components-lib/notification/action.ts +++ b/src/components-lib/notification/action.ts @@ -1,5 +1,5 @@ import { dispatchActionExecutionRequest } from '../../card-controller/actions/utils/execution-request.js'; -import { NotificationControl } from '../../config/schema/actions/types.js'; +import type { NotificationControl } from '../../config/schema/actions/types.js'; import { getActionConfigGivenAction, stopEventFromActivatingCardWideActions, diff --git a/src/components-lib/notification/factory.ts b/src/components-lib/notification/factory.ts index 3acb32d0..9e64b14f 100644 --- a/src/components-lib/notification/factory.ts +++ b/src/components-lib/notification/factory.ts @@ -1,5 +1,8 @@ -import { Notification, NotificationDetail } from '../../config/schema/actions/types.js'; -import { Link } from '../../config/schema/common/link.js'; +import type { + Notification, + NotificationDetail, +} from '../../config/schema/actions/types.js'; +import type { Link } from '../../config/schema/common/link.js'; import { getContextFromError } from '../../utils/error-context.js'; import { dataToContext } from './data-to-context.js'; diff --git a/src/components-lib/notification/summarize.ts b/src/components-lib/notification/summarize.ts index bbfb020f..b25cecc8 100644 --- a/src/components-lib/notification/summarize.ts +++ b/src/components-lib/notification/summarize.ts @@ -1,4 +1,4 @@ -import { Notification } from '../../config/schema/actions/types.js'; +import type { Notification } from '../../config/schema/actions/types.js'; export const summarizeNotification = (notification: Notification): string | null => { const text = notification.body?.text ?? notification.heading?.text ?? null; diff --git a/src/components-lib/ptz/drag-controller.ts b/src/components-lib/ptz/drag-controller.ts index bc13a2c4..2fe34a51 100644 --- a/src/components-lib/ptz/drag-controller.ts +++ b/src/components-lib/ptz/drag-controller.ts @@ -5,10 +5,10 @@ import { wheelAction, type Handler, } from '@use-gesture/vanilla'; -import { ReactiveController, ReactiveControllerHost } from 'lit'; +import type { ReactiveController, ReactiveControllerHost } from 'lit'; import { dispatchActionExecutionRequest } from '../../card-controller/actions/utils/execution-request.js'; -import { +import type { PTZAction, PTZActionPhase, PTZPanAction, diff --git a/src/components-lib/ptz/ptz-controller.ts b/src/components-lib/ptz/ptz-controller.ts index 18d71f2c..ab2496fd 100644 --- a/src/components-lib/ptz/ptz-controller.ts +++ b/src/components-lib/ptz/ptz-controller.ts @@ -1,20 +1,20 @@ -import { CameraManager } from '../../camera-manager/manager.js'; +import type { CameraManager } from '../../camera-manager/manager.js'; import { dispatchActionExecutionRequest } from '../../card-controller/actions/utils/execution-request.js'; -import { SubmenuInteraction } from '../../components/submenu/types.js'; -import { PTZAction } from '../../config/schema/actions/custom/ptz.js'; -import { Actions, ActionsConfig } from '../../config/schema/actions/types.js'; -import { +import type { SubmenuInteraction } from '../../components/submenu/types.js'; +import type { PTZAction } from '../../config/schema/actions/custom/ptz.js'; +import type { Actions, ActionsConfig } from '../../config/schema/actions/types.js'; +import type { PTZControlsConfig, PTZControlType, } from '../../config/schema/common/controls/ptz.js'; -import { HomeAssistant } from '../../ha/types.js'; -import { Interaction } from '../../types.js'; +import type { HomeAssistant } from '../../ha/types.js'; +import type { Interaction } from '../../types.js'; import { createPTZControlsAction, createPTZMultiAction, getActionConfigGivenAction, } from '../../utils/action.js'; -import { PTZControllerActions } from './types'; +import type { PTZControllerActions } from './types'; export class PTZController { private _host: HTMLElement; diff --git a/src/components-lib/ptz/types.ts b/src/components-lib/ptz/types.ts index 96ee4ea4..5e4f26bf 100644 --- a/src/components-lib/ptz/types.ts +++ b/src/components-lib/ptz/types.ts @@ -1,6 +1,6 @@ -import { PTZControlAction } from '../../config/schema/actions/custom/ptz'; -import { Actions } from '../../config/schema/actions/types'; -import { PTZControlType } from '../../config/schema/common/controls/ptz'; +import type { PTZControlAction } from '../../config/schema/actions/custom/ptz'; +import type { Actions } from '../../config/schema/actions/types'; +import type { PTZControlType } from '../../config/schema/common/controls/ptz'; interface PTZControlsViewContext { enabled?: boolean; diff --git a/src/components-lib/signed-url-controller.ts b/src/components-lib/signed-url-controller.ts index d5c6a686..2fcd50a1 100644 --- a/src/components-lib/signed-url-controller.ts +++ b/src/components-lib/signed-url-controller.ts @@ -1,14 +1,14 @@ -import { ReactiveController, ReactiveControllerHost } from 'lit'; +import type { ReactiveController, ReactiveControllerHost } from 'lit'; import { isEqual } from 'lodash-es'; -import { EnabledProxyConfig } from '../config/schema/common/proxy.js'; +import type { EnabledProxyConfig } from '../config/schema/common/proxy.js'; import { homeAssistantGetSignedURLIfNecessary } from '../ha/sign-path.js'; -import { HomeAssistant } from '../ha/types.js'; +import type { HomeAssistant } from '../ha/types.js'; import { createProxiedEndpointIfNecessary, - CreateProxiedEndpointOptions, + type CreateProxiedEndpointOptions, } from '../ha/web-proxy.js'; -import { Endpoint } from '../types.js'; +import type { Endpoint } from '../types.js'; import { errorToConsole } from '../utils/basic.js'; const PROXY_URL_SIGN_EXPIRY_SECONDS = 24 * 60 * 60; diff --git a/src/components-lib/status-bar-controller.ts b/src/components-lib/status-bar-controller.ts index f30137a5..7d5c0a62 100644 --- a/src/components-lib/status-bar-controller.ts +++ b/src/components-lib/status-bar-controller.ts @@ -1,14 +1,14 @@ -import { LitElement } from 'lit'; +import type { LitElement } from 'lit'; import { isEqual, orderBy } from 'lodash-es'; import { dispatchActionExecutionRequest } from '../card-controller/actions/utils/execution-request'; -import { ActionsConfig, StatusBarItem } from '../config/schema/actions/types'; +import type { ActionsConfig, StatusBarItem } from '../config/schema/actions/types'; import { STATUS_BAR_PRIORITY_DEFAULT } from '../config/schema/common/const'; -import { StatusBarConfig } from '../config/schema/status-bar'; +import type { StatusBarConfig } from '../config/schema/status-bar'; import { getActionConfigGivenAction } from '../utils/action'; import { arrayify } from '../utils/basic'; import { Timer } from '../utils/timer'; -import { AutoHideState, isAutoHidden as evaluateAutoHidden } from './auto-hide'; +import { isAutoHidden as evaluateAutoHidden, type AutoHideState } from './auto-hide'; export class StatusBarController { private _host: LitElement; diff --git a/src/components-lib/thumbnail/feature/controller.ts b/src/components-lib/thumbnail/feature/controller.ts index 261deb26..3fcc3e9a 100644 --- a/src/components-lib/thumbnail/feature/controller.ts +++ b/src/components-lib/thumbnail/feature/controller.ts @@ -1,13 +1,13 @@ import { format } from 'date-fns'; -import { CameraManager } from '../../../camera-manager/manager'; -import { CameraManagerCameraMetadata } from '../../../camera-manager/types'; +import type { CameraManager } from '../../../camera-manager/manager'; +import type { CameraManagerCameraMetadata } from '../../../camera-manager/types'; import { brandsUrl, extractDomainFromBrandUrl, isBrandUrl, } from '../../../ha/brands-url'; -import { ViewItem } from '../../../view/item'; +import type { ViewItem } from '../../../view/item'; import { ViewItemClassifier } from '../../../view/item-classifier'; export class ThumbnailFeatureController { diff --git a/src/components-lib/timeline/controller.ts b/src/components-lib/timeline/controller.ts index 55f7d314..c4d5d75a 100644 --- a/src/components-lib/timeline/controller.ts +++ b/src/components-lib/timeline/controller.ts @@ -1,47 +1,51 @@ import { add, differenceInSeconds, sub } from 'date-fns'; -import { LitElement } from 'lit'; +import type { LitElement } from 'lit'; import { isEqual, throttle } from 'lodash-es'; -import { ViewContext } from 'view'; +import type { ViewContext } from 'view'; import { - IdType, Timeline, - TimelineEventPropertiesResult, - TimelineFormatOption, - TimelineItem, - TimelineOptions, - TimelineOptionsCluster, - TimelineWindow, + type IdType, + type TimelineEventPropertiesResult, + type TimelineFormatOption, + type TimelineItem, + type TimelineOptions, + type TimelineOptionsCluster, + type TimelineWindow, } from 'vis-timeline'; -import { CameraManager } from '../../camera-manager/manager'; +import type { CameraManager } from '../../camera-manager/manager'; import { rangesOverlap } from '../../camera-manager/range'; import { convertRangeToCacheFriendlyTimes } from '../../camera-manager/utils/range-to-cache-friendly'; -import { FoldersManager } from '../../card-controller/folders/manager'; -import { ViewItemManager } from '../../card-controller/view/item-manager'; +import type { FoldersManager } from '../../card-controller/folders/manager'; +import type { ViewItemManager } from '../../card-controller/view/item-manager'; import { MergeContextViewModifier } from '../../card-controller/view/modifiers/merge-context'; -import { ViewManagerEpoch } from '../../card-controller/view/types'; -import { ConditionStateManagerReadonlyInterface } from '../../condition-trigger/conditions/types'; -import { CameraConfig } from '../../config/schema/cameras'; -import { AdvancedCameraCardView } from '../../config/schema/common/const'; -import { ThumbnailsControlBaseConfig } from '../../config/schema/common/controls/thumbnails'; -import { +import type { ViewManagerEpoch } from '../../card-controller/view/types'; +import type { ConditionStateManagerReadonlyInterface } from '../../condition-trigger/conditions/types'; +import type { CameraConfig } from '../../config/schema/cameras'; +import type { AdvancedCameraCardView } from '../../config/schema/common/const'; +import type { ThumbnailsControlBaseConfig } from '../../config/schema/common/controls/thumbnails'; +import type { TimelineCoreConfig, TimelinePanMode, } from '../../config/schema/common/controls/timeline'; import { configDefaults } from '../../config/schema/types'; -import { HomeAssistant } from '../../ha/types'; +import type { HomeAssistant } from '../../ha/types'; import { stopEventFromActivatingCardWideActions } from '../../utils/action'; import { formatDateAndTime, isHoverableDevice, isTruthy } from '../../utils/basic'; import { findBestMediaTimeIndex } from '../../utils/find-best-media-time-index'; import { fireAdvancedCameraCardEvent } from '../../utils/fire-advanced-camera-card-event'; -import { ViewMedia } from '../../view/item'; +import type { ViewMedia } from '../../view/item'; import { ViewItemClassifier } from '../../view/item-classifier'; import { QueryResults } from '../../view/query-results'; -import { UnifiedQuery } from '../../view/unified-query'; +import type { UnifiedQuery } from '../../view/unified-query'; import { UnifiedQueryTransformer } from '../../view/unified-query-transformer'; import { mergeViewContext } from '../../view/view'; -import { AdvancedCameraCardTimelineItem, TimelineDataSource } from './source'; -import { ExtendedTimeline, TimelineItemClickAction, TimelineRangeChange } from './types'; +import { TimelineDataSource, type AdvancedCameraCardTimelineItem } from './source'; +import type { + ExtendedTimeline, + TimelineItemClickAction, + TimelineRangeChange, +} from './types'; // An event used to fetch data required for thumbnail rendering. See special // note below on why this is necessary. diff --git a/src/components-lib/timeline/source.ts b/src/components-lib/timeline/source.ts index 7e7b003a..e717df2d 100644 --- a/src/components-lib/timeline/source.ts +++ b/src/components-lib/timeline/source.ts @@ -1,23 +1,23 @@ import { add, sub } from 'date-fns'; import { DataSet } from 'vis-data'; -import { IdType, TimelineItem, TimelineWindow } from 'vis-timeline/esnext'; +import type { IdType, TimelineItem, TimelineWindow } from 'vis-timeline/esnext'; -import { CameraManager } from '../../camera-manager/manager'; +import type { CameraManager } from '../../camera-manager/manager'; import { compressRanges, ExpiringMemoryRangeSet, MemoryRangeSet, } from '../../camera-manager/range'; -import { RecordingSegment } from '../../camera-manager/types'; +import type { RecordingSegment } from '../../camera-manager/types'; import { capEndDate } from '../../camera-manager/utils/cap-end-date'; import { convertRangeToCacheFriendlyTimes } from '../../camera-manager/utils/range-to-cache-friendly'; -import { FoldersManager } from '../../card-controller/folders/manager'; -import { ConditionStateManagerReadonlyInterface } from '../../condition-trigger/conditions/types'; -import { FolderConfig } from '../../config/schema/folders'; +import type { FoldersManager } from '../../card-controller/folders/manager'; +import type { ConditionStateManagerReadonlyInterface } from '../../condition-trigger/conditions/types'; +import type { FolderConfig } from '../../config/schema/folders'; import { errorToConsole } from '../../utils/basic.js'; -import { ViewItem, ViewMedia } from '../../view/item'; +import type { ViewItem, ViewMedia } from '../../view/item'; import { ViewItemClassifier } from '../../view/item-classifier'; -import { UnifiedQuery } from '../../view/unified-query'; +import type { UnifiedQuery } from '../../view/unified-query'; import { UnifiedQueryBuilder } from '../../view/unified-query-builder'; import { UnifiedQueryRunner } from '../../view/unified-query-runner'; import { UnifiedQueryTransformer } from '../../view/unified-query-transformer'; diff --git a/src/components-lib/timeline/types.ts b/src/components-lib/timeline/types.ts index 7f8af736..bacc0a1c 100644 --- a/src/components-lib/timeline/types.ts +++ b/src/components-lib/timeline/types.ts @@ -1,11 +1,11 @@ -import { DateType, IdType, Timeline, TimelineWindow } from 'vis-timeline'; +import type { DateType, IdType, Timeline, TimelineWindow } from 'vis-timeline'; -import { CameraManager } from '../../camera-manager/manager'; -import { ViewItemManager } from '../../card-controller/view/item-manager'; -import { ViewManagerEpoch } from '../../card-controller/view/types'; -import { CameraConfig } from '../../config/schema/cameras'; -import { HomeAssistant } from '../../ha/types'; -import { ViewMedia } from '../../view/item'; +import type { CameraManager } from '../../camera-manager/manager'; +import type { ViewItemManager } from '../../card-controller/view/item-manager'; +import type { ViewManagerEpoch } from '../../card-controller/view/types'; +import type { CameraConfig } from '../../config/schema/cameras'; +import type { HomeAssistant } from '../../ha/types'; +import type { ViewMedia } from '../../view/item'; // An event used to fetch data required for thumbnail rendering. See special // note in AdvancedCameraCardTimelineThumbnail on why this is necessary. diff --git a/src/components-lib/zoom/types.ts b/src/components-lib/zoom/types.ts index 533c8209..971e7ee0 100644 --- a/src/components-lib/zoom/types.ts +++ b/src/components-lib/zoom/types.ts @@ -1,4 +1,4 @@ -import { PartialDeep } from 'type-fest'; +import type { PartialDeep } from 'type-fest'; export const ZOOM_DEFAULT_PAN_X = 50; export const ZOOM_DEFAULT_PAN_Y = 50; diff --git a/src/components-lib/zoom/zoom-controller.ts b/src/components-lib/zoom/zoom-controller.ts index 0a538549..5115d5f3 100644 --- a/src/components-lib/zoom/zoom-controller.ts +++ b/src/components-lib/zoom/zoom-controller.ts @@ -1,16 +1,19 @@ -import Panzoom, { PanzoomEventDetail, PanzoomObject } from '@dermotduffy/panzoom'; +import Panzoom, { + type PanzoomEventDetail, + type PanzoomObject, +} from '@dermotduffy/panzoom'; import { round, throttle } from 'lodash-es'; import { arefloatsApproximatelyEqual, isHoverableDevice } from '../../utils/basic'; import { fireAdvancedCameraCardEvent } from '../../utils/fire-advanced-camera-card-event'; import { isZoomEmpty, - PartialZoomSettings, ZOOM_DEFAULT_PAN_X, ZOOM_DEFAULT_PAN_Y, ZOOM_DEFAULT_SCALE, ZOOM_PRECISION, - ZoomSettingsObserved, + type PartialZoomSettings, + type ZoomSettingsObserved, } from './types'; export class ZoomController { diff --git a/src/components-lib/zoom/zoom-view-context.ts b/src/components-lib/zoom/zoom-view-context.ts index 12be654e..70b3f316 100644 --- a/src/components-lib/zoom/zoom-view-context.ts +++ b/src/components-lib/zoom/zoom-view-context.ts @@ -1,8 +1,8 @@ -import { ViewContext } from 'view'; +import type { ViewContext } from 'view'; import { MergeContextViewModifier } from '../../card-controller/view/modifiers/merge-context.js'; -import { ViewManagerInterface } from '../../card-controller/view/types.js'; -import { PartialZoomSettings, ZoomSettingsObserved } from './types.js'; +import type { ViewManagerInterface } from '../../card-controller/view/types.js'; +import type { PartialZoomSettings, ZoomSettingsObserved } from './types.js'; interface ZoomViewContext { observed?: ZoomSettingsObserved; diff --git a/src/components/call-controls.ts b/src/components/call-controls.ts index 43b28fdb..51e94be0 100644 --- a/src/components/call-controls.ts +++ b/src/components/call-controls.ts @@ -1,17 +1,17 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { dispatchActionExecutionRequest } from '../card-controller/actions/utils/execution-request.js'; -import { MicrophoneState } from '../card-controller/types.js'; -import { ActionConfig } from '../config/schema/actions/types.js'; +import type { MicrophoneState } from '../card-controller/types.js'; +import type { ActionConfig } from '../config/schema/actions/types.js'; import { localize } from '../localize/localize.js'; import callControlsStyle from '../scss/call-controls.scss'; import { diff --git a/src/components/carousel.ts b/src/components/carousel.ts index 99f92c31..21a29c25 100644 --- a/src/components/carousel.ts +++ b/src/components/carousel.ts @@ -1,20 +1,23 @@ -import { CreatePluginType, LoosePluginType } from 'embla-carousel/components/Plugins'; +import type { + CreatePluginType, + LoosePluginType, +} from 'embla-carousel/components/Plugins'; import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { createRef, Ref, ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; -import { TransitionEffect } from '../config/schema/common/transition-effect'; +import type { TransitionEffect } from '../config/schema/common/transition-effect'; import carouselStyle from '../scss/carousel.scss'; import { CarouselController, - CarouselDirection, + type CarouselDirection, } from '../utils/embla/carousel-controller'; import { getTextDirection } from '../utils/text-direction'; diff --git a/src/components/date-picker.ts b/src/components/date-picker.ts index 2a67bf65..b667292d 100644 --- a/src/components/date-picker.ts +++ b/src/components/date-picker.ts @@ -1,6 +1,12 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import { localize } from '../localize/localize'; import datePickerStyle from '../scss/date-picker.scss'; diff --git a/src/components/diagnostics.ts b/src/components/diagnostics.ts index 1d5986b6..fe22af75 100644 --- a/src/components/diagnostics.ts +++ b/src/components/diagnostics.ts @@ -1,11 +1,17 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { until } from 'lit/directives/until.js'; -import { IssuePresence } from '../card-controller/issues/types'; -import { RawAdvancedCameraCardConfig } from '../config/types'; -import { DeviceRegistryManager } from '../ha/registry/device'; -import { HomeAssistant } from '../ha/types'; +import type { IssuePresence } from '../card-controller/issues/types'; +import type { RawAdvancedCameraCardConfig } from '../config/types'; +import type { DeviceRegistryManager } from '../ha/registry/device'; +import type { HomeAssistant } from '../ha/types'; import { localize } from '../localize/localize'; import basicBlockStyle from '../scss/basic-block.scss'; import { getDiagnostics } from '../utils/diagnostics'; diff --git a/src/components/drawer.ts b/src/components/drawer.ts index b56f626d..638e61ad 100644 --- a/src/components/drawer.ts +++ b/src/components/drawer.ts @@ -1,17 +1,17 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import 'side-drawer'; -import { SideDrawer } from 'side-drawer'; +import type { SideDrawer } from 'side-drawer'; import drawerInjectStyle from '../scss/drawer-inject.scss'; import drawerStyle from '../scss/drawer.scss'; diff --git a/src/components/effects/base.ts b/src/components/effects/base.ts index 8905d21e..cfbc55f5 100644 --- a/src/components/effects/base.ts +++ b/src/components/effects/base.ts @@ -1,4 +1,4 @@ -import { CSSResultGroup, LitElement, PropertyValues, unsafeCSS } from 'lit'; +import { LitElement, unsafeCSS, type CSSResultGroup, type PropertyValues } from 'lit'; import { property } from 'lit/decorators.js'; import effectBaseStyle from '../../scss/effect-base.scss'; diff --git a/src/components/effects/check.ts b/src/components/effects/check.ts index e913248e..ea066424 100644 --- a/src/components/effects/check.ts +++ b/src/components/effects/check.ts @@ -1,4 +1,4 @@ -import { CSSResultGroup, html, TemplateResult, unsafeCSS } from 'lit'; +import { html, unsafeCSS, type CSSResultGroup, type TemplateResult } from 'lit'; import { customElement } from 'lit/decorators.js'; import { unsafeHTML } from 'lit/directives/unsafe-html.js'; diff --git a/src/components/effects/effects.ts b/src/components/effects/effects.ts index e5d27059..19989df4 100644 --- a/src/components/effects/effects.ts +++ b/src/components/effects/effects.ts @@ -1,7 +1,7 @@ -import { LitElement, PropertyValues, unsafeCSS } from 'lit'; +import { LitElement, unsafeCSS, type PropertyValues } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { EffectsManager } from '../../card-controller/effects/effects-manager'; +import type { EffectsManager } from '../../card-controller/effects/effects-manager'; import effectsStyle from '../../scss/effects.scss'; @customElement('advanced-camera-card-effects') diff --git a/src/components/effects/firework-burst.ts b/src/components/effects/firework-burst.ts index 3ab403d8..630decb0 100644 --- a/src/components/effects/firework-burst.ts +++ b/src/components/effects/firework-burst.ts @@ -1,4 +1,10 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; diff --git a/src/components/effects/firework-particle.ts b/src/components/effects/firework-particle.ts index e88d82d7..947146a6 100644 --- a/src/components/effects/firework-particle.ts +++ b/src/components/effects/firework-particle.ts @@ -1,4 +1,10 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import fireworkParticleStyle from '../../scss/firework-particle.scss'; diff --git a/src/components/effects/fireworks.ts b/src/components/effects/fireworks.ts index 59f8b487..d899f86a 100644 --- a/src/components/effects/fireworks.ts +++ b/src/components/effects/fireworks.ts @@ -1,4 +1,4 @@ -import { html, TemplateResult } from 'lit'; +import { html, type TemplateResult } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; diff --git a/src/components/effects/ghost.ts b/src/components/effects/ghost.ts index 9ee5b338..197e09b2 100644 --- a/src/components/effects/ghost.ts +++ b/src/components/effects/ghost.ts @@ -1,4 +1,4 @@ -import { CSSResultGroup, html, TemplateResult, unsafeCSS } from 'lit'; +import { html, unsafeCSS, type CSSResultGroup, type TemplateResult } from 'lit'; import { customElement } from 'lit/decorators.js'; import ghostStyle from '../../scss/ghost.scss'; diff --git a/src/components/effects/heart.ts b/src/components/effects/heart.ts index 5d550120..6d89b8b4 100644 --- a/src/components/effects/heart.ts +++ b/src/components/effects/heart.ts @@ -1,4 +1,10 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import heartStyle from '../../scss/heart.scss'; diff --git a/src/components/effects/hearts.ts b/src/components/effects/hearts.ts index 1e4cf5dd..f739659b 100644 --- a/src/components/effects/hearts.ts +++ b/src/components/effects/hearts.ts @@ -1,4 +1,4 @@ -import { html, TemplateResult } from 'lit'; +import { html, type TemplateResult } from 'lit'; import { customElement } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; diff --git a/src/components/effects/shamrock.ts b/src/components/effects/shamrock.ts index 4a62893f..80206936 100644 --- a/src/components/effects/shamrock.ts +++ b/src/components/effects/shamrock.ts @@ -1,4 +1,10 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import shamrockStyle from '../../scss/shamrock.scss'; diff --git a/src/components/effects/shamrocks.ts b/src/components/effects/shamrocks.ts index 92d9676b..e72b41b0 100644 --- a/src/components/effects/shamrocks.ts +++ b/src/components/effects/shamrocks.ts @@ -1,4 +1,4 @@ -import { html, TemplateResult } from 'lit'; +import { html, type TemplateResult } from 'lit'; import { customElement } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; diff --git a/src/components/effects/snow.ts b/src/components/effects/snow.ts index e6abcfb4..e3ead3b5 100644 --- a/src/components/effects/snow.ts +++ b/src/components/effects/snow.ts @@ -1,4 +1,4 @@ -import { html, TemplateResult } from 'lit'; +import { html, type TemplateResult } from 'lit'; import { customElement } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; diff --git a/src/components/effects/snowflake.ts b/src/components/effects/snowflake.ts index ec95d5dd..64c067de 100644 --- a/src/components/effects/snowflake.ts +++ b/src/components/effects/snowflake.ts @@ -1,4 +1,10 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import snowflakeStyle from '../../scss/snowflake.scss'; diff --git a/src/components/elements.ts b/src/components/elements.ts index a1db284f..f8ce9a85 100644 --- a/src/components/elements.ts +++ b/src/components/elements.ts @@ -1,35 +1,35 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { isEqual } from 'lodash-es'; -import { IssueTriggerEventData } from '../card-controller/issues/types.js'; +import type { IssueTriggerEventData } from '../card-controller/issues/types.js'; import { TemplateRenderer } from '../card-controller/templates/index.js'; import { ConditionsManager } from '../condition-trigger/conditions/conditions-manager.js'; import { getConditionStateManagerViaEvent } from '../condition-trigger/conditions/state-manager-via-event.js'; -import { ConditionStateManager } from '../condition-trigger/conditions/state-manager.js'; -import { +import type { ConditionStateManager } from '../condition-trigger/conditions/state-manager.js'; +import type { StatusBarIcon, StatusBarImage, StatusBarItem, StatusBarString, } from '../config/schema/actions/types.js'; -import { MenuIcon } from '../config/schema/elements/custom/menu/icon.js'; -import { MenuStateIcon } from '../config/schema/elements/custom/menu/state-icon.js'; -import { MenuSubmenuSelect } from '../config/schema/elements/custom/menu/submenu-select.js'; -import { MenuSubmenu } from '../config/schema/elements/custom/menu/submenu.js'; -import { MenuItem } from '../config/schema/elements/custom/menu/types.js'; -import { +import type { MenuIcon } from '../config/schema/elements/custom/menu/icon.js'; +import type { MenuStateIcon } from '../config/schema/elements/custom/menu/state-icon.js'; +import type { MenuSubmenuSelect } from '../config/schema/elements/custom/menu/submenu-select.js'; +import type { MenuSubmenu } from '../config/schema/elements/custom/menu/submenu.js'; +import type { MenuItem } from '../config/schema/elements/custom/menu/types.js'; +import type { AdvancedCameraCardConditional, PictureElements, } from '../config/schema/elements/types.js'; -import { HomeAssistant } from '../ha/types.js'; +import type { HomeAssistant } from '../ha/types.js'; import { localize } from '../localize/localize.js'; import elementsStyle from '../scss/elements.scss'; import { AdvancedCameraCardError } from '../types.js'; diff --git a/src/components/gallery/gallery-core.ts b/src/components/gallery/gallery-core.ts index ddc7ddfc..dcca96b0 100644 --- a/src/components/gallery/gallery-core.ts +++ b/src/components/gallery/gallery-core.ts @@ -1,21 +1,21 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import { - GalleryColumnCountRoundMethod, GalleryCoreController, + type GalleryColumnCountRoundMethod, } from '../../components-lib/gallery/gallery-core-controller.js'; import { THUMBNAIL_WIDTH_DEFAULT } from '../../config/schema/common/controls/thumbnails.js'; -import { CardWideConfig } from '../../config/schema/types.js'; -import { HomeAssistant } from '../../ha/types.js'; +import type { CardWideConfig } from '../../config/schema/types.js'; +import type { HomeAssistant } from '../../ha/types.js'; import galleryCoreStyle from '../../scss/gallery-core.scss'; import '../progress-indicator.js'; diff --git a/src/components/gallery/gallery.ts b/src/components/gallery/gallery.ts index db5914e8..e9fb477c 100644 --- a/src/components/gallery/gallery.ts +++ b/src/components/gallery/gallery.ts @@ -1,37 +1,37 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; -import { CameraManager } from '../../camera-manager/manager.js'; -import { FoldersManager } from '../../card-controller/folders/manager.js'; -import { ViewItemManager } from '../../card-controller/view/item-manager.js'; +import type { CameraManager } from '../../camera-manager/manager.js'; +import type { FoldersManager } from '../../card-controller/folders/manager.js'; +import type { ViewItemManager } from '../../card-controller/view/item-manager.js'; import { MergeContextViewModifier } from '../../card-controller/view/modifiers/merge-context.js'; import { RemoveContextViewModifier } from '../../card-controller/view/modifiers/remove-context.js'; -import { ViewManagerEpoch } from '../../card-controller/view/types.js'; +import type { ViewManagerEpoch } from '../../card-controller/view/types.js'; import { GalleryController } from '../../components-lib/gallery/controller.js'; import { - FolderNavigationParamaters, getUpFolderItem, navigateToFolder, navigateToMedia, navigateUp, + type FolderNavigationParamaters, } from '../../components-lib/navigation.js'; -import { ConditionStateManagerReadonlyInterface } from '../../condition-trigger/conditions/types.js'; -import { MediaGalleryConfig } from '../../config/schema/media-gallery.js'; -import { CardWideConfig } from '../../config/schema/types.js'; +import type { ConditionStateManagerReadonlyInterface } from '../../condition-trigger/conditions/types.js'; +import type { MediaGalleryConfig } from '../../config/schema/media-gallery.js'; +import type { CardWideConfig } from '../../config/schema/types.js'; import { MEDIA_CHUNK_SIZE_DEFAULT } from '../../const.js'; -import { HomeAssistant } from '../../ha/types.js'; +import type { HomeAssistant } from '../../ha/types.js'; import galleryStyle from '../../scss/gallery.scss'; import { stopEventFromActivatingCardWideActions } from '../../utils/action.js'; import { ViewItemClassifier } from '../../view/item-classifier.js'; -import { ViewFolder, ViewItem } from '../../view/item.js'; +import type { ViewFolder, ViewItem } from '../../view/item.js'; import { UnifiedQueryBuilder } from '../../view/unified-query-builder.js'; import { UnifiedQueryRunner } from '../../view/unified-query-runner.js'; import { getReviewedQueryFilterFromQuery } from '../../view/utils/query-filter.js'; @@ -44,7 +44,7 @@ import '../surround-basic.js'; import '../thumbnail/thumbnail.js'; import './gallery-core.js'; -import { GalleryExtendEvent } from './types.js'; +import type { GalleryExtendEvent } from './types.js'; const GALLERY_FILTER_MENU_ICONS = { closed: 'mdi:filter-cog-outline', diff --git a/src/components/icon.ts b/src/components/icon.ts index ff198838..5803d911 100644 --- a/src/components/icon.ts +++ b/src/components/icon.ts @@ -1,16 +1,16 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { IconController } from '../components-lib/icon-controller'; -import { InternalIcon } from '../config/schema/common/icon.js'; -import { HomeAssistant } from '../ha/types'; +import type { InternalIcon } from '../config/schema/common/icon.js'; +import type { HomeAssistant } from '../ha/types'; import iconStyle from '../scss/icon.scss'; import { contentsChanged } from '../utils/basic.js'; diff --git a/src/components/image-player.ts b/src/components/image-player.ts index ab770479..2abf6f20 100644 --- a/src/components/image-player.ts +++ b/src/components/image-player.ts @@ -1,12 +1,18 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { ifDefined } from 'lit/directives/if-defined.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import { MediaLoadedInfoSourceController } from '../components-lib/media-loaded-info-source-controller.js'; import { ImageMediaPlayerController } from '../components-lib/media-player/image'; import imagePlayerStyle from '../scss/image-player.scss'; -import { +import type { MediaPlayer, MediaPlayerController, MediaPlayerElement, diff --git a/src/components/image-updating-player.ts b/src/components/image-updating-player.ts index 351a0954..1c48ea36 100644 --- a/src/components/image-updating-player.ts +++ b/src/components/image-updating-player.ts @@ -1,34 +1,34 @@ -import { HassEntity } from 'home-assistant-js-websocket'; +import type { HassEntity } from 'home-assistant-js-websocket'; import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { live } from 'lit/directives/live.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import { getCameraEntityFromConfig } from '../camera-manager/utils/camera-entity-from-config.js'; -import { IssueTriggerEventData } from '../card-controller/issues/types.js'; +import type { IssueTriggerEventData } from '../card-controller/issues/types.js'; import { CachedValueController } from '../components-lib/cached-value-controller.js'; import { MediaLoadedInfoSourceController } from '../components-lib/media-loaded-info-source-controller.js'; import { UpdatingImageMediaPlayerController } from '../components-lib/media-player/updating-image.js'; import { dataToContext } from '../components-lib/notification/data-to-context.js'; import { SignedURLController } from '../components-lib/signed-url-controller.js'; -import { Notification } from '../config/schema/actions/types.js'; -import { CameraConfig } from '../config/schema/cameras.js'; -import { ImageMode, type ImageBaseConfig } from '../config/schema/common/image.js'; -import { EnabledProxyConfig } from '../config/schema/common/proxy.js'; +import type { Notification } from '../config/schema/actions/types.js'; +import type { CameraConfig } from '../config/schema/cameras.js'; +import { type ImageBaseConfig, type ImageMode } from '../config/schema/common/image.js'; +import type { EnabledProxyConfig } from '../config/schema/common/proxy.js'; import { TROUBLESHOOTING_URL } from '../const.js'; import { isHassDifferent } from '../ha/is-hass-different.js'; -import { HomeAssistant } from '../ha/types.js'; +import type { HomeAssistant } from '../ha/types.js'; import defaultImage from '../images/iris-screensaver.jpg'; import { localize } from '../localize/localize.js'; import imageUpdatingPlayerStyle from '../scss/image-updating-player.scss'; -import { MediaPlayer, MediaPlayerController } from '../types.js'; +import type { MediaPlayer, MediaPlayerController } from '../types.js'; import { contentsChanged } from '../utils/basic.js'; import { fireAdvancedCameraCardEvent } from '../utils/fire-advanced-camera-card-event.js'; import { @@ -36,7 +36,7 @@ import { dispatchMediaPauseEvent, dispatchMediaPlayEvent, } from '../utils/media-info.js'; -import { View } from '../view/view.js'; +import type { View } from '../view/view.js'; import { renderNotificationBlock } from './notification/block.js'; // See TOKEN_CHANGE_INTERVAL in https://github.com/home-assistant/core/blob/dev/homeassistant/components/camera/__init__.py . diff --git a/src/components/image.ts b/src/components/image.ts index 6a2174d3..089f7a70 100644 --- a/src/components/image.ts +++ b/src/components/image.ts @@ -1,23 +1,33 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { guard } from 'lit/directives/guard.js'; import { keyed } from 'lit/directives/keyed.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; -import { CameraManager } from '../camera-manager/manager'; -import { ViewManagerEpoch } from '../card-controller/view/types'; -import { ZoomSettingsObserved } from '../components-lib/zoom/types'; +import type { CameraManager } from '../camera-manager/manager'; +import type { ViewManagerEpoch } from '../card-controller/view/types'; +import type { ZoomSettingsObserved } from '../components-lib/zoom/types'; import { handleZoomSettingsObservedEvent } from '../components-lib/zoom/zoom-view-context'; -import { CameraConfig } from '../config/schema/cameras'; +import type { CameraConfig } from '../config/schema/cameras'; import { resolveProxyConfig, type EnabledProxyConfig, } from '../config/schema/common/proxy'; -import { ImageViewConfig, type ImageViewProxyConfig } from '../config/schema/image'; -import { HomeAssistant } from '../ha/types'; +import { type ImageViewConfig, type ImageViewProxyConfig } from '../config/schema/image'; +import type { HomeAssistant } from '../ha/types'; import { localize } from '../localize/localize.js'; import imageStyle from '../scss/image.scss'; -import { MediaPlayer, MediaPlayerController, MediaPlayerElement } from '../types.js'; +import type { + MediaPlayer, + MediaPlayerController, + MediaPlayerElement, +} from '../types.js'; import { IMAGE_VIEW_TARGET_ID_SENTINEL } from '../view/target-id.js'; import './image-updating-player'; diff --git a/src/components/key-assigner.ts b/src/components/key-assigner.ts index 5512ab13..7b3c7364 100644 --- a/src/components/key-assigner.ts +++ b/src/components/key-assigner.ts @@ -1,15 +1,15 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { KeyAssignerController } from '../components-lib/key-assigner-controller'; -import { KeyboardShortcut } from '../config/schema/view'; +import type { KeyboardShortcut } from '../config/schema/view'; import { localize } from '../localize/localize'; import keyAssignerStyle from '../scss/key-assigner.scss'; diff --git a/src/components/live/carousel.ts b/src/components/live/carousel.ts index c0d900d8..effac32c 100644 --- a/src/components/live/carousel.ts +++ b/src/components/live/carousel.ts @@ -1,41 +1,41 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { keyed } from 'lit/directives/keyed.js'; -import { createRef, Ref, ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; -import { CameraManager } from '../../camera-manager/manager.js'; -import { CameraManagerCameraMetadata } from '../../camera-manager/types.js'; -import { CallSession } from '../../card-controller/call/types.js'; -import { MicrophoneState } from '../../card-controller/types.js'; -import { ViewManagerEpoch } from '../../card-controller/view/types.js'; +import type { CameraManager } from '../../camera-manager/manager.js'; +import type { CameraManagerCameraMetadata } from '../../camera-manager/types.js'; +import type { CallSession } from '../../card-controller/call/types.js'; +import type { MicrophoneState } from '../../card-controller/types.js'; +import type { ViewManagerEpoch } from '../../card-controller/view/types.js'; import { resolveAutoHideState } from '../../components-lib/auto-hide.js'; import { MediaActionsController } from '../../components-lib/media-actions-controller.js'; import { MediaHeightController } from '../../components-lib/media-height-controller.js'; import { MediaLoadedInfoSinkController } from '../../components-lib/media-loaded-info-sink-controller.js'; import { PTZDragController } from '../../components-lib/ptz/drag-controller.js'; -import { ZoomSettingsObserved } from '../../components-lib/zoom/types.js'; +import type { ZoomSettingsObserved } from '../../components-lib/zoom/types.js'; import { handleZoomSettingsObservedEvent } from '../../components-lib/zoom/zoom-view-context.js'; import { ptzControlsDefaults, - PTZControlType, + type PTZControlType, } from '../../config/schema/common/controls/ptz.js'; -import { TransitionEffect } from '../../config/schema/common/transition-effect.js'; -import { LiveConfig } from '../../config/schema/live.js'; -import { CardWideConfig, configDefaults } from '../../config/schema/types.js'; -import { HomeAssistant } from '../../ha/types.js'; +import type { TransitionEffect } from '../../config/schema/common/transition-effect.js'; +import type { LiveConfig } from '../../config/schema/live.js'; +import { configDefaults, type CardWideConfig } from '../../config/schema/types.js'; +import type { HomeAssistant } from '../../ha/types.js'; import liveCarouselStyle from '../../scss/live-carousel.scss'; import { stopEventFromActivatingCardWideActions } from '../../utils/action.js'; -import { CarouselSelected } from '../../utils/embla/carousel-controller.js'; +import type { CarouselSelected } from '../../utils/embla/carousel-controller.js'; import { getTextDirection } from '../../utils/text-direction.js'; import { getStreamCameraID } from '../../view/substream.js'; -import { View } from '../../view/view.js'; +import type { View } from '../../view/view.js'; import '../call-controls.js'; import '../carousel'; diff --git a/src/components/live/grid.ts b/src/components/live/grid.ts index a29a21d1..9d2f578f 100644 --- a/src/components/live/grid.ts +++ b/src/components/live/grid.ts @@ -1,22 +1,22 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { ifDefined } from 'lit/directives/if-defined.js'; -import { CameraManager } from '../../camera-manager/manager.js'; -import { CallSession } from '../../card-controller/call/types.js'; -import { MicrophoneState } from '../../card-controller/types.js'; -import { ViewManagerEpoch } from '../../card-controller/view/types.js'; -import { MediaGridSelected } from '../../components-lib/media-grid-controller.js'; -import { LiveConfig } from '../../config/schema/live.js'; -import { CardWideConfig } from '../../config/schema/types.js'; -import { HomeAssistant } from '../../ha/types.js'; +import type { CameraManager } from '../../camera-manager/manager.js'; +import type { CallSession } from '../../card-controller/call/types.js'; +import type { MicrophoneState } from '../../card-controller/types.js'; +import type { ViewManagerEpoch } from '../../card-controller/view/types.js'; +import type { MediaGridSelected } from '../../components-lib/media-grid-controller.js'; +import type { LiveConfig } from '../../config/schema/live.js'; +import type { CardWideConfig } from '../../config/schema/types.js'; +import type { HomeAssistant } from '../../ha/types.js'; import liveGridStyle from '../../scss/live-grid.scss'; import { contentsChanged } from '../../utils/basic.js'; diff --git a/src/components/live/index.ts b/src/components/live/index.ts index 970e8775..8b63c793 100644 --- a/src/components/live/index.ts +++ b/src/components/live/index.ts @@ -1,25 +1,25 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { CameraManager } from '../../camera-manager/manager.js'; -import { CallSession } from '../../card-controller/call/types.js'; -import { MicrophoneManager } from '../../card-controller/microphone-manager.js'; -import { MicrophoneState } from '../../card-controller/types.js'; -import { ViewManagerEpoch } from '../../card-controller/view/types.js'; +import type { CameraManager } from '../../camera-manager/manager.js'; +import type { CallSession } from '../../card-controller/call/types.js'; +import type { MicrophoneManager } from '../../card-controller/microphone-manager.js'; +import type { MicrophoneState } from '../../card-controller/types.js'; +import type { ViewManagerEpoch } from '../../card-controller/view/types.js'; import { MicrophoneActionsController } from '../../components-lib/live/microphone-actions-controller.js'; import '../../components-lib/live/types.js'; -import { LiveConfig } from '../../config/schema/live.js'; -import { CardWideConfig } from '../../config/schema/types.js'; -import { HomeAssistant } from '../../ha/types.js'; +import type { LiveConfig } from '../../config/schema/live.js'; +import type { CardWideConfig } from '../../config/schema/types.js'; +import type { HomeAssistant } from '../../ha/types.js'; import basicBlockStyle from '../../scss/basic-block.scss'; import { contentsChanged } from '../../utils/basic.js'; diff --git a/src/components/live/provider.ts b/src/components/live/provider.ts index 22ff0e97..43afd69b 100644 --- a/src/components/live/provider.ts +++ b/src/components/live/provider.ts @@ -1,27 +1,31 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { guard } from 'lit/directives/guard.js'; -import { createRef, Ref, ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; -import { Camera } from '../../camera-manager/camera.js'; +import type { Camera } from '../../camera-manager/camera.js'; import { LazyLoadController } from '../../components-lib/lazy-load-controller.js'; import { dispatchLiveErrorEvent } from '../../components-lib/live/utils/dispatch-live-error.js'; import { MediaLoadedInfoSinkController } from '../../components-lib/media-loaded-info-sink-controller.js'; -import { PartialZoomSettings } from '../../components-lib/zoom/types.js'; -import { LiveConfig } from '../../config/schema/live.js'; -import { CardWideConfig } from '../../config/schema/types.js'; -import { HomeAssistant } from '../../ha/types.js'; +import type { PartialZoomSettings } from '../../components-lib/zoom/types.js'; +import type { LiveConfig } from '../../config/schema/live.js'; +import type { CardWideConfig } from '../../config/schema/types.js'; +import type { HomeAssistant } from '../../ha/types.js'; import { localize } from '../../localize/localize.js'; import liveProviderStyle from '../../scss/live-provider.scss'; -import { MediaPlayer, MediaPlayerController, MediaPlayerElement } from '../../types.js'; +import type { + MediaPlayer, + MediaPlayerController, + MediaPlayerElement, +} from '../../types.js'; import { fireAdvancedCameraCardEvent } from '../../utils/fire-advanced-camera-card-event.js'; import { getResolvedLiveProvider } from '../../utils/live-provider.js'; diff --git a/src/components/live/providers/go2rtc/index.ts b/src/components/live/providers/go2rtc/index.ts index 839089b6..83fd1598 100644 --- a/src/components/live/providers/go2rtc/index.ts +++ b/src/components/live/providers/go2rtc/index.ts @@ -1,22 +1,22 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { Camera } from '../../../../camera-manager/camera.js'; +import type { Camera } from '../../../../camera-manager/camera.js'; import { dispatchLiveErrorEvent } from '../../../../components-lib/live/utils/dispatch-live-error.js'; import { VideoMediaPlayerController } from '../../../../components-lib/media-player/video.js'; import { SignedURLController } from '../../../../components-lib/signed-url-controller.js'; -import { MicrophoneConfig } from '../../../../config/schema/live.js'; -import { HomeAssistant } from '../../../../ha/types.js'; +import type { MicrophoneConfig } from '../../../../config/schema/live.js'; +import type { HomeAssistant } from '../../../../ha/types.js'; import { localize } from '../../../../localize/localize.js'; import liveGo2RTCStyle from '../../../../scss/live-go2rtc.scss'; -import { MediaPlayer, MediaPlayerController } from '../../../../types.js'; +import type { MediaPlayer, MediaPlayerController } from '../../../../types.js'; import { renderNotificationBlockFromText } from '../../../notification/block.js'; import { VideoRTC } from './video-rtc.js'; diff --git a/src/components/live/providers/go2rtc/video-rtc.d.ts b/src/components/live/providers/go2rtc/video-rtc.d.ts index 9b0dc57b..4fc6a012 100644 --- a/src/components/live/providers/go2rtc/video-rtc.d.ts +++ b/src/components/live/providers/go2rtc/video-rtc.d.ts @@ -1,4 +1,4 @@ -import { MediaPlayerController } from '../../../../types'; +import type { MediaPlayerController } from '../../../../types'; export class VideoRTC extends HTMLElement { DISCONNECT_TIMEOUT: number; diff --git a/src/components/live/providers/ha.ts b/src/components/live/providers/ha.ts index 5c5dda58..018701ab 100644 --- a/src/components/live/providers/ha.ts +++ b/src/components/live/providers/ha.ts @@ -1,16 +1,22 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { createRef, Ref, ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; -import { Camera } from '../../../camera-manager/camera.js'; -import { HomeAssistant } from '../../../ha/types'; +import type { Camera } from '../../../camera-manager/camera.js'; +import type { HomeAssistant } from '../../../ha/types'; import '../../../patches/ha-camera-stream'; import '../../../patches/ha-hls-player.js'; import '../../../patches/ha-web-rtc-player.js'; import liveHAStyle from '../../../scss/live-ha.scss'; -import { +import type { MediaPlayer, MediaPlayerController, MediaPlayerElement, diff --git a/src/components/live/providers/image.ts b/src/components/live/providers/image.ts index 42de3cac..cab1d169 100644 --- a/src/components/live/providers/image.ts +++ b/src/components/live/providers/image.ts @@ -1,11 +1,17 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; - -import { Camera } from '../../../camera-manager/camera.js'; -import { HomeAssistant } from '../../../ha/types'; -import basicBlockStyle from '../../../scss/basic-block.scss'; import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; +import { customElement, property } from 'lit/decorators.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; + +import type { Camera } from '../../../camera-manager/camera.js'; +import type { HomeAssistant } from '../../../ha/types'; +import basicBlockStyle from '../../../scss/basic-block.scss'; +import type { MediaPlayer, MediaPlayerController, MediaPlayerElement, diff --git a/src/components/live/providers/jsmpeg.ts b/src/components/live/providers/jsmpeg.ts index 132bb253..ce580b76 100644 --- a/src/components/live/providers/jsmpeg.ts +++ b/src/components/live/providers/jsmpeg.ts @@ -1,27 +1,27 @@ import JSMpeg from '@cycjimmy/jsmpeg-player'; import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { until } from 'lit/directives/until.js'; -import { Camera } from '../../../camera-manager/camera.js'; +import type { Camera } from '../../../camera-manager/camera.js'; import { dispatchLiveErrorEvent } from '../../../components-lib/live/utils/dispatch-live-error.js'; import { MediaLoadedInfoSourceController } from '../../../components-lib/media-loaded-info-source-controller.js'; import { JSMPEGMediaPlayerController } from '../../../components-lib/media-player/jsmpeg.js'; import { createNotificationFromText } from '../../../components-lib/notification/factory.js'; -import { Notification } from '../../../config/schema/actions/types.js'; -import { CardWideConfig } from '../../../config/schema/types.js'; +import type { Notification } from '../../../config/schema/actions/types.js'; +import type { CardWideConfig } from '../../../config/schema/types.js'; import { homeAssistantGetSignedURLIfNecessary } from '../../../ha/sign-path.js'; -import { HomeAssistant } from '../../../ha/types.js'; +import type { HomeAssistant } from '../../../ha/types.js'; import { localize } from '../../../localize/localize.js'; import liveJSMPEGStyle from '../../../scss/live-jsmpeg.scss'; -import { MediaPlayer, MediaPlayerController } from '../../../types.js'; +import type { MediaPlayer, MediaPlayerController } from '../../../types.js'; import { convertHTTPAdressToWebsocket, errorToConsole } from '../../../utils/basic.js'; import { createMediaLoadedInfo, diff --git a/src/components/live/providers/webrtc-card.ts b/src/components/live/providers/webrtc-card.ts index 6c1df8d6..c46b6198 100644 --- a/src/components/live/providers/webrtc-card.ts +++ b/src/components/live/providers/webrtc-card.ts @@ -1,29 +1,29 @@ import { Task } from '@lit-labs/task'; import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { Camera } from '../../../camera-manager/camera.js'; +import type { Camera } from '../../../camera-manager/camera.js'; import { dispatchLiveErrorEvent } from '../../../components-lib/live/utils/dispatch-live-error.js'; import { getTechnologyForVideoRTC } from '../../../components-lib/live/utils/get-technology-for-video-rtc.js'; import { MediaLoadedInfoSourceController } from '../../../components-lib/media-loaded-info-source-controller.js'; import { VideoMediaPlayerController } from '../../../components-lib/media-player/video.js'; import { createNotificationFromText } from '../../../components-lib/notification/factory.js'; -import { Notification } from '../../../config/schema/actions/types.js'; -import { CardWideConfig } from '../../../config/schema/types.js'; -import { HomeAssistant } from '../../../ha/types.js'; +import type { Notification } from '../../../config/schema/actions/types.js'; +import type { CardWideConfig } from '../../../config/schema/types.js'; +import type { HomeAssistant } from '../../../ha/types.js'; import { localize } from '../../../localize/localize.js'; import liveWebRTCCardStyle from '../../../scss/live-webrtc-card.scss'; import { AdvancedCameraCardError, - MediaPlayer, - MediaPlayerController, + type MediaPlayer, + type MediaPlayerController, } from '../../../types.js'; import { mayHaveAudio } from '../../../utils/audio.js'; import { @@ -47,7 +47,7 @@ import { renderNotificationBlock } from '../../notification/block.js'; import '../../progress-indicator.js'; import { renderProgressIndicator } from '../../progress-indicator.js'; -import { VideoRTC } from './go2rtc/video-rtc.js'; +import type { VideoRTC } from './go2rtc/video-rtc.js'; // Create a wrapper for AlexxIT's WebRTC card // - https://github.com/AlexxIT/WebRTC diff --git a/src/components/loading.ts b/src/components/loading.ts index 427ab385..06883cce 100644 --- a/src/components/loading.ts +++ b/src/components/loading.ts @@ -1,8 +1,14 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import loadingStyle from '../scss/loading.scss'; -import { EffectName, EffectsManagerInterface } from '../types'; +import type { EffectName, EffectsManagerInterface } from '../types'; import { getReleaseVersion } from '../utils/diagnostics'; import './icon'; diff --git a/src/components/media-dimensions-container.ts b/src/components/media-dimensions-container.ts index bab8a3ef..4e9c056e 100644 --- a/src/components/media-dimensions-container.ts +++ b/src/components/media-dimensions-container.ts @@ -1,16 +1,16 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import { MediaDimensionsContainerController } from '../components-lib/media-dimensions-container-controller.js'; -import { CameraDimensionsConfig } from '../config/schema/cameras'; +import type { CameraDimensionsConfig } from '../config/schema/cameras'; import mediaDimensionsContainerStyle from '../scss/media-dimensions-container.scss'; @customElement('advanced-camera-card-media-dimensions-container') diff --git a/src/components/media-filter.ts b/src/components/media-filter.ts index a52b62e1..28190b56 100644 --- a/src/components/media-filter.ts +++ b/src/components/media-filter.ts @@ -1,25 +1,25 @@ import { ScopedRegistryHost } from '@lit-labs/scoped-registry-mixin'; import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; -import { CameraManager } from '../camera-manager/manager'; -import { FoldersManager } from '../card-controller/folders/manager'; -import { ViewManagerEpoch } from '../card-controller/view/types'; +import type { CameraManager } from '../camera-manager/manager'; +import type { FoldersManager } from '../card-controller/folders/manager'; +import type { ViewManagerEpoch } from '../card-controller/view/types'; import { MediaFilterController, MediaFilterCoreWhen, } from '../components-lib/media-filter-controller'; -import { CardWideConfig } from '../config/schema/types'; -import { HomeAssistant } from '../ha/types'; +import type { CardWideConfig } from '../config/schema/types'; +import type { HomeAssistant } from '../ha/types'; import { localize } from '../localize/localize'; import mediaFilterStyle from '../scss/media-filter.scss'; import { AdvancedCameraCardDatePicker } from './date-picker'; diff --git a/src/components/media-grid.ts b/src/components/media-grid.ts index 6708b2e3..ad1997e6 100644 --- a/src/components/media-grid.ts +++ b/src/components/media-grid.ts @@ -1,16 +1,16 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import { MediaGridController } from '../components-lib/media-grid-controller.js'; -import { ViewDisplayConfig } from '../config/schema/common/display.js'; +import type { ViewDisplayConfig } from '../config/schema/common/display.js'; import mediaGridStyle from '../scss/media-grid.scss'; @customElement('advanced-camera-card-media-grid') diff --git a/src/components/menu.ts b/src/components/menu.ts index b7ee317c..314a8e9b 100644 --- a/src/components/menu.ts +++ b/src/components/menu.ts @@ -1,4 +1,10 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; diff --git a/src/components/next-prev-control.ts b/src/components/next-prev-control.ts index 231f0478..437c7ecc 100644 --- a/src/components/next-prev-control.ts +++ b/src/components/next-prev-control.ts @@ -1,11 +1,17 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; -import { AutoHideState, isAutoHidden } from '../components-lib/auto-hide.js'; -import { NextPreviousControlConfig } from '../config/schema/common/controls/next-previous.js'; -import { Icon } from '../config/schema/common/icon.js'; -import { HomeAssistant } from '../ha/types.js'; +import { isAutoHidden, type AutoHideState } from '../components-lib/auto-hide.js'; +import type { NextPreviousControlConfig } from '../config/schema/common/controls/next-previous.js'; +import type { Icon } from '../config/schema/common/icon.js'; +import type { HomeAssistant } from '../ha/types.js'; import controlStyle from '../scss/next-previous-control.scss'; import { contentsChanged } from '../utils/basic.js'; import { renderTask } from '../utils/task.js'; diff --git a/src/components/notification/block.ts b/src/components/notification/block.ts index 1c252131..b32f10ba 100644 --- a/src/components/notification/block.ts +++ b/src/components/notification/block.ts @@ -1,12 +1,18 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { handleControlAction } from '../../components-lib/notification/action.js'; import { createNotificationFromText, - NotificationOptions, + type NotificationOptions, } from '../../components-lib/notification/factory.js'; -import { Notification } from '../../config/schema/actions/types.js'; +import type { Notification } from '../../config/schema/actions/types.js'; import { localize } from '../../localize/localize.js'; import notificationBlockStyle from '../../scss/notification-block.scss'; import { diff --git a/src/components/notification/common-rendering.ts b/src/components/notification/common-rendering.ts index 582351e5..f4b0e5a6 100644 --- a/src/components/notification/common-rendering.ts +++ b/src/components/notification/common-rendering.ts @@ -1,8 +1,8 @@ -import { html, TemplateResult } from 'lit'; +import { html, type TemplateResult } from 'lit'; import { classMap } from 'lit/directives/class-map.js'; import { actionHandler } from '../../action-handler-directive.js'; -import { +import type { Notification, NotificationControl, NotificationDetail, diff --git a/src/components/notification/no-media.ts b/src/components/notification/no-media.ts index b446b81a..eaa81277 100644 --- a/src/components/notification/no-media.ts +++ b/src/components/notification/no-media.ts @@ -1,6 +1,6 @@ -import { TemplateResult } from 'lit'; +import type { TemplateResult } from 'lit'; -import { CameraManager } from '../../camera-manager/manager.js'; +import type { CameraManager } from '../../camera-manager/manager.js'; import { localize } from '../../localize/localize.js'; import { renderNotificationBlock } from './block.js'; diff --git a/src/components/notification/popup.ts b/src/components/notification/popup.ts index 3b0d7fa0..5d67cb34 100644 --- a/src/components/notification/popup.ts +++ b/src/components/notification/popup.ts @@ -1,9 +1,15 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { createRef, Ref, ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import { handleControlAction } from '../../components-lib/notification/action.js'; -import { Notification } from '../../config/schema/actions/types.js'; +import type { Notification } from '../../config/schema/actions/types.js'; import { localize } from '../../localize/localize.js'; import notificationPopupStyle from '../../scss/notification-popup.scss'; import { hasPopOutAnimationEnded } from '../../utils/animation.js'; diff --git a/src/components/overlay.ts b/src/components/overlay.ts index 9b343eb4..f5ed85d3 100644 --- a/src/components/overlay.ts +++ b/src/components/overlay.ts @@ -1,4 +1,10 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement } from 'lit/decorators.js'; import overlayStyle from '../scss/overlay.scss'; diff --git a/src/components/progress-indicator.ts b/src/components/progress-indicator.ts index 6e8d2e47..14d241a5 100644 --- a/src/components/progress-indicator.ts +++ b/src/components/progress-indicator.ts @@ -1,9 +1,15 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { ClassInfo, classMap } from 'lit/directives/class-map.js'; -import { ref, Ref } from 'lit/directives/ref.js'; +import { classMap, type ClassInfo } from 'lit/directives/class-map.js'; +import { ref, type Ref } from 'lit/directives/ref.js'; -import { CardWideConfig } from '../config/schema/types'; +import type { CardWideConfig } from '../config/schema/types'; import progressIndicatorStyle from '../scss/progress-indicator.scss'; import './icon.js'; diff --git a/src/components/ptz.ts b/src/components/ptz.ts index 635c3f1f..17b7f4c1 100644 --- a/src/components/ptz.ts +++ b/src/components/ptz.ts @@ -1,34 +1,34 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { actionHandler } from '../action-handler-directive.js'; -import { CameraManager } from '../camera-manager/manager.js'; +import type { CameraManager } from '../camera-manager/manager.js'; import { PTZController } from '../components-lib/ptz/ptz-controller.js'; -import { PTZControllerActions } from '../components-lib/ptz/types.js'; -import { Actions } from '../config/schema/actions/types.js'; -import { +import type { PTZControllerActions } from '../components-lib/ptz/types.js'; +import type { Actions } from '../config/schema/actions/types.js'; +import type { PTZControlsConfig, PTZControlType, } from '../config/schema/common/controls/ptz.js'; -import { HomeAssistant } from '../ha/types.js'; +import type { HomeAssistant } from '../ha/types.js'; import { localize } from '../localize/localize.js'; import ptzStyle from '../scss/ptz.scss'; -import { Interaction } from '../types.js'; +import type { Interaction } from '../types.js'; import { hasAction } from '../utils/action.js'; import { prettifyTitle } from '../utils/basic.js'; import './icon.js'; import './submenu'; -import { SubmenuInteraction, SubmenuItem } from './submenu/types.js'; +import type { SubmenuInteraction, SubmenuItem } from './submenu/types.js'; @customElement('advanced-camera-card-ptz') export class AdvancedCameraCardPTZ extends LitElement { diff --git a/src/components/select.ts b/src/components/select.ts index c9d5caf8..b6e3b37a 100644 --- a/src/components/select.ts +++ b/src/components/select.ts @@ -1,14 +1,14 @@ import { ScopedRegistryHost } from '@lit-labs/scoped-registry-mixin'; import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { property } from 'lit/decorators.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import { isEqual } from 'lodash-es'; import { grSelectElements } from '../scoped-elements/gr-select'; diff --git a/src/components/status-bar.ts b/src/components/status-bar.ts index f37e2051..c970b28c 100644 --- a/src/components/status-bar.ts +++ b/src/components/status-bar.ts @@ -1,11 +1,11 @@ import { - CSSResultGroup, html, LitElement, nothing, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; @@ -13,8 +13,8 @@ import { classMap } from 'lit/directives/class-map.js'; import { actionHandler } from '../action-handler-directive.js'; import type { AutoHideState } from '../components-lib/auto-hide.js'; import { StatusBarController } from '../components-lib/status-bar-controller'; -import { StatusBarItem } from '../config/schema/actions/types.js'; -import { StatusBarConfig } from '../config/schema/status-bar.js'; +import type { StatusBarItem } from '../config/schema/actions/types.js'; +import type { StatusBarConfig } from '../config/schema/status-bar.js'; import statusStyle from '../scss/status.scss'; import { hasAction } from '../utils/action'; import { contentsChanged } from '../utils/basic.js'; diff --git a/src/components/submenu/index.ts b/src/components/submenu/index.ts index 10115ffb..76b9184f 100644 --- a/src/components/submenu/index.ts +++ b/src/components/submenu/index.ts @@ -1,4 +1,10 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; diff --git a/src/components/submenu/select-button.ts b/src/components/submenu/select-button.ts index 8b17c57c..890124fb 100644 --- a/src/components/submenu/select-button.ts +++ b/src/components/submenu/select-button.ts @@ -1,10 +1,10 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; diff --git a/src/components/submenu/submenu-button.ts b/src/components/submenu/submenu-button.ts index 064e999d..a344edff 100644 --- a/src/components/submenu/submenu-button.ts +++ b/src/components/submenu/submenu-button.ts @@ -1,4 +1,10 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; diff --git a/src/components/submenu/types.ts b/src/components/submenu/types.ts index 32bbfa14..0b121fd7 100644 --- a/src/components/submenu/types.ts +++ b/src/components/submenu/types.ts @@ -1,5 +1,5 @@ -import { Actions } from '../../config/schema/actions/types'; -import { Interaction } from '../../types'; +import type { Actions } from '../../config/schema/actions/types'; +import type { Interaction } from '../../types'; export interface SubmenuItem extends Actions { title?: string; diff --git a/src/components/surround-basic.ts b/src/components/surround-basic.ts index 407f1f1f..b8ab9a49 100644 --- a/src/components/surround-basic.ts +++ b/src/components/surround-basic.ts @@ -1,13 +1,19 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import surroundBasicStyle from '../scss/surround-basic.scss'; import { contentsChanged } from '../utils/basic.js'; import './drawer.js'; -import { AdvancedCameraCardDrawer, DrawerIcons } from './drawer.js'; +import type { AdvancedCameraCardDrawer, DrawerIcons } from './drawer.js'; interface AdvancedCameraCardDrawerOpen { drawer: 'left' | 'right'; diff --git a/src/components/surround.ts b/src/components/surround.ts index e86fc06e..863d7b55 100644 --- a/src/components/surround.ts +++ b/src/components/surround.ts @@ -1,22 +1,22 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { CameraManager } from '../camera-manager/manager.js'; -import { FoldersManager } from '../card-controller/folders/manager.js'; -import { ViewItemManager } from '../card-controller/view/item-manager.js'; -import { ViewManagerEpoch } from '../card-controller/view/types.js'; -import { ConditionStateManagerReadonlyInterface } from '../condition-trigger/conditions/types.js'; -import { ThumbnailsControlConfig } from '../config/schema/common/controls/thumbnails.js'; -import { MiniTimelineControlConfig } from '../config/schema/common/controls/timeline.js'; -import { CardWideConfig } from '../config/schema/types.js'; -import { HomeAssistant } from '../ha/types.js'; +import type { CameraManager } from '../camera-manager/manager.js'; +import type { FoldersManager } from '../card-controller/folders/manager.js'; +import type { ViewItemManager } from '../card-controller/view/item-manager.js'; +import type { ViewManagerEpoch } from '../card-controller/view/types.js'; +import type { ConditionStateManagerReadonlyInterface } from '../condition-trigger/conditions/types.js'; +import type { ThumbnailsControlConfig } from '../config/schema/common/controls/thumbnails.js'; +import type { MiniTimelineControlConfig } from '../config/schema/common/controls/timeline.js'; +import type { CardWideConfig } from '../config/schema/types.js'; +import type { HomeAssistant } from '../ha/types.js'; import basicBlockStyle from '../scss/basic-block.scss'; import { contentsChanged } from '../utils/basic.js'; import { fireAdvancedCameraCardEvent } from '../utils/fire-advanced-camera-card-event.js'; diff --git a/src/components/thumbnail-carousel.ts b/src/components/thumbnail-carousel.ts index 4d4a4472..38fb16da 100644 --- a/src/components/thumbnail-carousel.ts +++ b/src/components/thumbnail-carousel.ts @@ -1,36 +1,36 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; -import { CameraManager } from '../camera-manager/manager.js'; -import { FoldersManager } from '../card-controller/folders/manager.js'; -import { ViewItemManager } from '../card-controller/view/item-manager.js'; +import type { CameraManager } from '../camera-manager/manager.js'; +import type { FoldersManager } from '../card-controller/folders/manager.js'; +import type { ViewItemManager } from '../card-controller/view/item-manager.js'; import { RemoveContextViewModifier } from '../card-controller/view/modifiers/remove-context.js'; -import { ViewManagerEpoch } from '../card-controller/view/types.js'; +import type { ViewManagerEpoch } from '../card-controller/view/types.js'; import { - FolderNavigationParamaters, getUpFolderItem, navigateToFolder, navigateToMedia, navigateUp, + type FolderNavigationParamaters, } from '../components-lib/navigation.js'; -import { ThumbnailsControlConfig } from '../config/schema/common/controls/thumbnails.js'; -import { CardWideConfig } from '../config/schema/types.js'; +import type { ThumbnailsControlConfig } from '../config/schema/common/controls/thumbnails.js'; +import type { CardWideConfig } from '../config/schema/types.js'; import { MEDIA_CHUNK_SIZE_DEFAULT } from '../const.js'; -import { HomeAssistant } from '../ha/types.js'; +import type { HomeAssistant } from '../ha/types.js'; import thumbnailCarouselStyle from '../scss/thumbnail-carousel.scss'; import { stopEventFromActivatingCardWideActions } from '../utils/action.js'; -import { CarouselDirection } from '../utils/embla/carousel-controller.js'; +import type { CarouselDirection } from '../utils/embla/carousel-controller.js'; import { fireAdvancedCameraCardEvent } from '../utils/fire-advanced-camera-card-event.js'; import { ViewItemClassifier } from '../view/item-classifier.js'; -import { ViewItem, ViewMedia } from '../view/item.js'; +import type { ViewItem, ViewMedia } from '../view/item.js'; import { UnifiedQueryBuilder } from '../view/unified-query-builder.js'; import { getReviewedQueryFilterFromQuery } from '../view/utils/query-filter.js'; diff --git a/src/components/thumbnail/details.ts b/src/components/thumbnail/details.ts index f016707d..5f36e0d8 100644 --- a/src/components/thumbnail/details.ts +++ b/src/components/thumbnail/details.ts @@ -1,21 +1,21 @@ import { - CSSResult, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResult, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { ifDefined } from 'lit/directives/if-defined.js'; -import { CameraManager } from '../../camera-manager/manager'; +import type { CameraManager } from '../../camera-manager/manager'; import { MediaNotificationController } from '../../components-lib/media/notification-controller'; -import { NotificationDetail } from '../../config/schema/actions/types'; -import { HomeAssistant } from '../../ha/types'; +import type { NotificationDetail } from '../../config/schema/actions/types'; +import type { HomeAssistant } from '../../ha/types'; import thumbnailDetailsStyle from '../../scss/thumbnail-details.scss'; -import { ViewItem } from '../../view/item'; +import type { ViewItem } from '../../view/item'; import '../icon'; diff --git a/src/components/thumbnail/feature/feature.ts b/src/components/thumbnail/feature/feature.ts index a1069fed..824a0c1f 100644 --- a/src/components/thumbnail/feature/feature.ts +++ b/src/components/thumbnail/feature/feature.ts @@ -1,24 +1,24 @@ import { - CSSResult, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResult, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; -import { CameraManager } from '../../../camera-manager/manager'; +import type { CameraManager } from '../../../camera-manager/manager'; import { dispatchActionExecutionRequest } from '../../../card-controller/actions/utils/execution-request'; -import { ViewItemManager } from '../../../card-controller/view/item-manager'; -import { ViewManagerEpoch } from '../../../card-controller/view/types'; +import type { ViewItemManager } from '../../../card-controller/view/item-manager'; +import type { ViewManagerEpoch } from '../../../card-controller/view/types'; import { MediaNotificationController, - NotificationControlsContext, + type NotificationControlsContext, } from '../../../components-lib/media/notification-controller'; import { ThumbnailFeatureController } from '../../../components-lib/thumbnail/feature/controller'; -import { HomeAssistant } from '../../../ha/types'; +import type { HomeAssistant } from '../../../ha/types'; import { localize } from '../../../localize/localize'; import thumbnailFeatureStyle from '../../../scss/thumbnail-feature.scss'; import { @@ -31,7 +31,7 @@ import { toggleFavorite, toggleReviewed, } from '../../../utils/media-actions'; -import { ViewItem } from '../../../view/item'; +import type { ViewItem } from '../../../view/item'; import { ViewItemClassifier } from '../../../view/item-classifier'; import '../../icon.js'; diff --git a/src/components/thumbnail/feature/thumbnail.ts b/src/components/thumbnail/feature/thumbnail.ts index 198522cc..54ac2baf 100644 --- a/src/components/thumbnail/feature/thumbnail.ts +++ b/src/components/thumbnail/feature/thumbnail.ts @@ -1,21 +1,21 @@ -import { Task, TaskStatus } from '@lit-labs/task'; +import { TaskStatus, type Task } from '@lit-labs/task'; import { - CSSResult, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResult, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { HomeAssistant } from '../../../ha/types'; +import type { HomeAssistant } from '../../../ha/types'; import { localize } from '../../../localize/localize'; import thumbnailFeatureThumbnailStyle from '../../../scss/thumbnail-feature-thumbnail.scss'; import { renderTask } from '../../../utils/task'; import { createFetchThumbnailTask, - FetchThumbnailTaskArgs, + type FetchThumbnailTaskArgs, } from '../../../utils/thumbnail'; @customElement('advanced-camera-card-thumbnail-feature-thumbnail') diff --git a/src/components/thumbnail/thumbnail.ts b/src/components/thumbnail/thumbnail.ts index 528a83ad..03a4c4bb 100644 --- a/src/components/thumbnail/thumbnail.ts +++ b/src/components/thumbnail/thumbnail.ts @@ -1,13 +1,13 @@ -import { CSSResult, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { html, LitElement, unsafeCSS, type CSSResult, type TemplateResult } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { CameraManager } from '../../camera-manager/manager.js'; -import { FoldersManager } from '../../card-controller/folders/manager.js'; -import { ViewItemManager } from '../../card-controller/view/item-manager.js'; -import { ViewManagerEpoch } from '../../card-controller/view/types.js'; -import { HomeAssistant } from '../../ha/types.js'; +import type { CameraManager } from '../../camera-manager/manager.js'; +import type { FoldersManager } from '../../card-controller/folders/manager.js'; +import type { ViewItemManager } from '../../card-controller/view/item-manager.js'; +import type { ViewManagerEpoch } from '../../card-controller/view/types.js'; +import type { HomeAssistant } from '../../ha/types.js'; import thumbnailStyle from '../../scss/thumbnail.scss'; -import { ViewItem } from '../../view/item.js'; +import type { ViewItem } from '../../view/item.js'; import './details.js'; import './feature/feature.js'; diff --git a/src/components/timeline-core.ts b/src/components/timeline-core.ts index 4cc25d26..1f4aa7f4 100644 --- a/src/components/timeline-core.ts +++ b/src/components/timeline-core.ts @@ -1,37 +1,37 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { createRef, Ref, ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import type { IdType } from 'vis-timeline/esnext'; -import { CameraManager } from '../camera-manager/manager'; -import { FoldersManager } from '../card-controller/folders/manager'; -import { ViewItemManager } from '../card-controller/view/item-manager'; -import { ViewManagerEpoch } from '../card-controller/view/types'; +import type { CameraManager } from '../camera-manager/manager'; +import type { FoldersManager } from '../card-controller/folders/manager'; +import type { ViewItemManager } from '../card-controller/view/item-manager'; +import type { ViewManagerEpoch } from '../card-controller/view/types'; import { TimelineController } from '../components-lib/timeline/controller'; import { - ThumbnailDataRequest, ThumbnailDataRequestEvent, - TimelineItemClickAction, + type ThumbnailDataRequest, + type TimelineItemClickAction, } from '../components-lib/timeline/types'; -import { ConditionStateManagerReadonlyInterface } from '../condition-trigger/conditions/types'; -import { ThumbnailsControlBaseConfig } from '../config/schema/common/controls/thumbnails'; -import { TimelineCoreConfig } from '../config/schema/common/controls/timeline'; -import { CardWideConfig } from '../config/schema/types'; -import { HomeAssistant } from '../ha/types'; +import type { ConditionStateManagerReadonlyInterface } from '../condition-trigger/conditions/types'; +import type { ThumbnailsControlBaseConfig } from '../config/schema/common/controls/thumbnails'; +import type { TimelineCoreConfig } from '../config/schema/common/controls/timeline'; +import type { CardWideConfig } from '../config/schema/types'; +import type { HomeAssistant } from '../ha/types'; import { localize } from '../localize/localize'; import timelineCoreStyle from '../scss/timeline-core.scss'; import { contentsChanged } from '../utils/basic'; import './date-picker.js'; -import { AdvancedCameraCardDatePicker, DatePickerEvent } from './date-picker.js'; +import type { AdvancedCameraCardDatePicker, DatePickerEvent } from './date-picker.js'; import './icon'; diff --git a/src/components/timeline.ts b/src/components/timeline.ts index c86e406d..656d1dd1 100644 --- a/src/components/timeline.ts +++ b/src/components/timeline.ts @@ -1,14 +1,20 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { CameraManager } from '../camera-manager/manager'; -import { FoldersManager } from '../card-controller/folders/manager'; -import { ViewItemManager } from '../card-controller/view/item-manager'; -import { ViewManagerEpoch } from '../card-controller/view/types'; -import { ConditionStateManagerReadonlyInterface } from '../condition-trigger/conditions/types'; -import { TimelineConfig } from '../config/schema/timeline'; -import { CardWideConfig } from '../config/schema/types'; -import { HomeAssistant } from '../ha/types'; +import type { CameraManager } from '../camera-manager/manager'; +import type { FoldersManager } from '../card-controller/folders/manager'; +import type { ViewItemManager } from '../card-controller/view/item-manager'; +import type { ViewManagerEpoch } from '../card-controller/view/types'; +import type { ConditionStateManagerReadonlyInterface } from '../condition-trigger/conditions/types'; +import type { TimelineConfig } from '../config/schema/timeline'; +import type { CardWideConfig } from '../config/schema/types'; +import type { HomeAssistant } from '../ha/types'; import basicBlockStyle from '../scss/basic-block.scss'; import './surround.js'; diff --git a/src/components/video-player.ts b/src/components/video-player.ts index c1af0bad..f82c585f 100644 --- a/src/components/video-player.ts +++ b/src/components/video-player.ts @@ -1,12 +1,18 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { ifDefined } from 'lit/directives/if-defined.js'; -import { createRef, ref, Ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; import { MediaLoadedInfoSourceController } from '../components-lib/media-loaded-info-source-controller.js'; import { VideoMediaPlayerController } from '../components-lib/media-player/video'; import videoPlayerStyle from '../scss/video-player.scss'; -import { MediaPlayer, MediaPlayerController, MediaPlayerElement } from '../types'; +import type { MediaPlayer, MediaPlayerController, MediaPlayerElement } from '../types'; import { mayHaveAudio } from '../utils/audio'; import { hideMediaControlsTemporarily, diff --git a/src/components/viewer/carousel.ts b/src/components/viewer/carousel.ts index 42a11cd9..1b1a561f 100644 --- a/src/components/viewer/carousel.ts +++ b/src/components/viewer/carousel.ts @@ -1,28 +1,28 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { guard } from 'lit/directives/guard.js'; import { keyed } from 'lit/directives/keyed.js'; -import { createRef, Ref, ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; -import { CameraManager } from '../../camera-manager/manager.js'; +import type { CameraManager } from '../../camera-manager/manager.js'; import { RemoveContextPropertyViewModifier } from '../../card-controller/view/modifiers/remove-context-property.js'; -import { ViewManagerEpoch } from '../../card-controller/view/types.js'; +import type { ViewManagerEpoch } from '../../card-controller/view/types.js'; import { resolveAutoHideState } from '../../components-lib/auto-hide.js'; import { MediaActionsController } from '../../components-lib/media-actions-controller.js'; import { MediaHeightController } from '../../components-lib/media-height-controller.js'; import { MediaLoadedInfoSinkController } from '../../components-lib/media-loaded-info-sink-controller.js'; -import { TransitionEffect } from '../../config/schema/common/transition-effect.js'; -import { CardWideConfig, configDefaults } from '../../config/schema/types.js'; -import { ViewerConfig } from '../../config/schema/viewer.js'; -import { ResolvedMediaCache } from '../../ha/resolved-media.js'; -import { HomeAssistant } from '../../ha/types.js'; +import type { TransitionEffect } from '../../config/schema/common/transition-effect.js'; +import { configDefaults, type CardWideConfig } from '../../config/schema/types.js'; +import type { ViewerConfig } from '../../config/schema/viewer.js'; +import type { ResolvedMediaCache } from '../../ha/resolved-media.js'; +import type { HomeAssistant } from '../../ha/types.js'; import { localize } from '../../localize/localize.js'; import '../../patches/ha-hls-player.js'; @@ -30,10 +30,10 @@ import '../../patches/ha-hls-player.js'; import viewerCarouselStyle from '../../scss/viewer-carousel.scss'; import { stopEventFromActivatingCardWideActions } from '../../utils/action.js'; import { contentsChanged } from '../../utils/basic.js'; -import { CarouselSelected } from '../../utils/embla/carousel-controller.js'; +import type { CarouselSelected } from '../../utils/embla/carousel-controller.js'; import { getTextDirection } from '../../utils/text-direction.js'; import { ViewItemClassifier } from '../../view/item-classifier.js'; -import { ViewMedia } from '../../view/item.js'; +import type { ViewMedia } from '../../view/item.js'; import '../carousel'; import '../next-prev-control.js'; diff --git a/src/components/viewer/grid.ts b/src/components/viewer/grid.ts index 49333dea..807f3c87 100644 --- a/src/components/viewer/grid.ts +++ b/src/components/viewer/grid.ts @@ -1,22 +1,22 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { ifDefined } from 'lit/directives/if-defined.js'; -import { CameraManager } from '../../camera-manager/manager.js'; -import { ViewItemManager } from '../../card-controller/view/item-manager.js'; -import { ViewManagerEpoch } from '../../card-controller/view/types.js'; -import { MediaGridSelected } from '../../components-lib/media-grid-controller.js'; -import { CardWideConfig } from '../../config/schema/types.js'; -import { ViewerConfig } from '../../config/schema/viewer.js'; -import { ResolvedMediaCache } from '../../ha/resolved-media.js'; -import { HomeAssistant } from '../../ha/types.js'; +import type { CameraManager } from '../../camera-manager/manager.js'; +import type { ViewItemManager } from '../../card-controller/view/item-manager.js'; +import type { ViewManagerEpoch } from '../../card-controller/view/types.js'; +import type { MediaGridSelected } from '../../components-lib/media-grid-controller.js'; +import type { CardWideConfig } from '../../config/schema/types.js'; +import type { ViewerConfig } from '../../config/schema/viewer.js'; +import type { ResolvedMediaCache } from '../../ha/resolved-media.js'; +import type { HomeAssistant } from '../../ha/types.js'; import '../../patches/ha-hls-player.js'; diff --git a/src/components/viewer/index.ts b/src/components/viewer/index.ts index ce343049..992b3415 100644 --- a/src/components/viewer/index.ts +++ b/src/components/viewer/index.ts @@ -1,20 +1,20 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import { CameraManager } from '../../camera-manager/manager.js'; -import { ViewItemManager } from '../../card-controller/view/item-manager.js'; -import { ViewManagerEpoch } from '../../card-controller/view/types.js'; -import { CardWideConfig } from '../../config/schema/types.js'; -import { ViewerConfig } from '../../config/schema/viewer.js'; -import { ResolvedMediaCache } from '../../ha/resolved-media.js'; -import { HomeAssistant } from '../../ha/types.js'; +import type { CameraManager } from '../../camera-manager/manager.js'; +import type { ViewItemManager } from '../../card-controller/view/item-manager.js'; +import type { ViewManagerEpoch } from '../../card-controller/view/types.js'; +import type { CardWideConfig } from '../../config/schema/types.js'; +import type { ViewerConfig } from '../../config/schema/viewer.js'; +import type { ResolvedMediaCache } from '../../ha/resolved-media.js'; +import type { HomeAssistant } from '../../ha/types.js'; import '../../patches/ha-hls-player.js'; diff --git a/src/components/viewer/provider.ts b/src/components/viewer/provider.ts index cdd7d689..22b01b6e 100644 --- a/src/components/viewer/provider.ts +++ b/src/components/viewer/provider.ts @@ -1,38 +1,42 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { guard } from 'lit/directives/guard.js'; -import { createRef, Ref, ref } from 'lit/directives/ref.js'; +import { createRef, ref, type Ref } from 'lit/directives/ref.js'; -import { CameraManager } from '../../camera-manager/manager.js'; +import type { CameraManager } from '../../camera-manager/manager.js'; import { QueryType } from '../../camera-manager/types.js'; -import { ViewManagerEpoch } from '../../card-controller/view/types.js'; +import type { ViewManagerEpoch } from '../../card-controller/view/types.js'; import { LazyLoadController } from '../../components-lib/lazy-load-controller.js'; import { SignedURLController } from '../../components-lib/signed-url-controller.js'; -import { ZoomSettingsObserved } from '../../components-lib/zoom/types.js'; +import type { ZoomSettingsObserved } from '../../components-lib/zoom/types.js'; import { handleZoomSettingsObservedEvent } from '../../components-lib/zoom/zoom-view-context.js'; -import { CameraConfig } from '../../config/schema/cameras.js'; -import { CardWideConfig } from '../../config/schema/types.js'; -import { ViewerConfig } from '../../config/schema/viewer.js'; +import type { CameraConfig } from '../../config/schema/cameras.js'; +import type { CardWideConfig } from '../../config/schema/types.js'; +import type { ViewerConfig } from '../../config/schema/viewer.js'; import { canonicalizeHAURL } from '../../ha/canonical-url.js'; import { isHARelativeURL } from '../../ha/is-ha-relative-url.js'; -import { ResolvedMediaCache, resolveMedia } from '../../ha/resolved-media.js'; -import { HomeAssistant, ResolvedMedia } from '../../ha/types.js'; +import { resolveMedia, type ResolvedMediaCache } from '../../ha/resolved-media.js'; +import type { HomeAssistant, ResolvedMedia } from '../../ha/types.js'; import { localize } from '../../localize/localize.js'; import '../../patches/ha-hls-player.js'; import viewerProviderStyle from '../../scss/viewer-provider.scss'; -import { MediaPlayer, MediaPlayerController, MediaPlayerElement } from '../../types.js'; +import type { + MediaPlayer, + MediaPlayerController, + MediaPlayerElement, +} from '../../types.js'; import { classifyMimeType } from '../../utils/mime-type.js'; import { ViewItemClassifier } from '../../view/item-classifier.js'; -import { ViewMedia } from '../../view/item.js'; +import type { ViewMedia } from '../../view/item.js'; import { UnifiedQueryTransformer } from '../../view/unified-query-transformer.js'; import '../image-player.js'; diff --git a/src/components/views.ts b/src/components/views.ts index c5d8d62c..5c2a85c6 100644 --- a/src/components/views.ts +++ b/src/components/views.ts @@ -1,28 +1,31 @@ import { - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, unsafeCSS, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; -import { CameraManager } from '../camera-manager/manager.js'; -import { CallSession } from '../card-controller/call/types.js'; -import { FoldersManager } from '../card-controller/folders/manager.js'; -import { IssuePresence } from '../card-controller/issues/types.js'; -import { MicrophoneManager } from '../card-controller/microphone-manager.js'; -import { MicrophoneState } from '../card-controller/types.js'; -import { ViewItemManager } from '../card-controller/view/item-manager.js'; -import { ViewManagerEpoch } from '../card-controller/view/types.js'; -import { ConditionStateManagerReadonlyInterface } from '../condition-trigger/conditions/types.js'; -import { AdvancedCameraCardConfig, CardWideConfig } from '../config/schema/types.js'; -import { RawAdvancedCameraCardConfig } from '../config/types.js'; -import { DeviceRegistryManager } from '../ha/registry/device/index.js'; -import { ResolvedMediaCache } from '../ha/resolved-media.js'; -import { HomeAssistant } from '../ha/types.js'; +import type { CameraManager } from '../camera-manager/manager.js'; +import type { CallSession } from '../card-controller/call/types.js'; +import type { FoldersManager } from '../card-controller/folders/manager.js'; +import type { IssuePresence } from '../card-controller/issues/types.js'; +import type { MicrophoneManager } from '../card-controller/microphone-manager.js'; +import type { MicrophoneState } from '../card-controller/types.js'; +import type { ViewItemManager } from '../card-controller/view/item-manager.js'; +import type { ViewManagerEpoch } from '../card-controller/view/types.js'; +import type { ConditionStateManagerReadonlyInterface } from '../condition-trigger/conditions/types.js'; +import type { + AdvancedCameraCardConfig, + CardWideConfig, +} from '../config/schema/types.js'; +import type { RawAdvancedCameraCardConfig } from '../config/types.js'; +import type { DeviceRegistryManager } from '../ha/registry/device/index.js'; +import type { ResolvedMediaCache } from '../ha/resolved-media.js'; +import type { HomeAssistant } from '../ha/types.js'; import viewsStyle from '../scss/views.scss'; import { contentsChanged } from '../utils/basic.js'; diff --git a/src/components/zoomer.ts b/src/components/zoomer.ts index 00557ab1..096869e7 100644 --- a/src/components/zoomer.ts +++ b/src/components/zoomer.ts @@ -1,14 +1,14 @@ import { css, - CSSResultGroup, html, LitElement, - PropertyValues, - TemplateResult, + type CSSResultGroup, + type PropertyValues, + type TemplateResult, } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; -import { PartialZoomSettings } from '../components-lib/zoom/types.js'; +import type { PartialZoomSettings } from '../components-lib/zoom/types.js'; import { ZoomController } from '../components-lib/zoom/zoom-controller.js'; @customElement('advanced-camera-card-zoomer') diff --git a/src/condition-trigger/common/is-enabled.ts b/src/condition-trigger/common/is-enabled.ts index a81a1125..f346d8b4 100644 --- a/src/condition-trigger/common/is-enabled.ts +++ b/src/condition-trigger/common/is-enabled.ts @@ -1,5 +1,5 @@ -import { TemplateRenderer } from '../../card-controller/templates'; -import { ConditionState } from '../conditions/types'; +import type { TemplateRenderer } from '../../card-controller/templates'; +import type { ConditionState } from '../conditions/types'; // The shared `enabled` gate for triggers and conditions (equivalent to HA's // `vol.Any(boolean, template)`): a boolean, or a template rendered against the diff --git a/src/condition-trigger/common/numeric-state.ts b/src/condition-trigger/common/numeric-state.ts index 9ac34eb0..899c2f77 100644 --- a/src/condition-trigger/common/numeric-state.ts +++ b/src/condition-trigger/common/numeric-state.ts @@ -1,6 +1,6 @@ -import { TemplateRenderer } from '../../card-controller/templates'; -import { NumericStateBase } from '../../config/schema/condition-trigger/common/numeric-state'; -import { ConditionState } from '../conditions/types'; +import type { TemplateRenderer } from '../../card-controller/templates'; +import type { NumericStateBase } from '../../config/schema/condition-trigger/common/numeric-state'; +import type { ConditionState } from '../conditions/types'; // The numeric value of `entityID` to compare: the rendered `value_template`, // else the `attribute`, else the state. Returns null when the entity is absent diff --git a/src/condition-trigger/common/time-period.ts b/src/condition-trigger/common/time-period.ts index 210e5cc7..c44f1abb 100644 --- a/src/condition-trigger/common/time-period.ts +++ b/src/condition-trigger/common/time-period.ts @@ -1,7 +1,7 @@ -import { TemplateRenderer } from '../../card-controller/templates'; -import { TimePeriod } from '../../config/schema/common/time-period'; +import type { TemplateRenderer } from '../../card-controller/templates'; +import type { TimePeriod } from '../../config/schema/common/time-period'; import { isRecord } from '../../utils/basic'; -import { ConditionState } from '../conditions/types'; +import type { ConditionState } from '../conditions/types'; // Parses a Home Assistant time-period value (a condition/trigger `for:`) to // seconds, matching HA's `cv.time_period`: diff --git a/src/condition-trigger/conditions/conditions-manager.ts b/src/condition-trigger/conditions/conditions-manager.ts index a0c0e334..b4e9fc85 100644 --- a/src/condition-trigger/conditions/conditions-manager.ts +++ b/src/condition-trigger/conditions/conditions-manager.ts @@ -1,12 +1,12 @@ import { TemplateRenderer } from '../../card-controller/templates'; -import { Condition } from '../../config/schema/condition-trigger/conditions/types'; +import type { Condition } from '../../config/schema/condition-trigger/conditions/types'; import { isEnabled } from '../common/is-enabled'; -import { +import type { ConditionEvaluator, ExternalInvalidationUnsubscribeCallback, } from './conditions/types'; import { createConditionEvaluator } from './factory'; -import { +import type { ConditionsEvaluationResult, ConditionsListener, ConditionsManagerReadonlyInterface, diff --git a/src/condition-trigger/conditions/conditions/and.ts b/src/condition-trigger/conditions/conditions/and.ts index 77d1a6f8..cb218139 100644 --- a/src/condition-trigger/conditions/conditions/and.ts +++ b/src/condition-trigger/conditions/conditions/and.ts @@ -1,4 +1,4 @@ -import { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; import { CompositeConditionEvaluator } from './composite'; export class AndConditionEvaluator extends CompositeConditionEvaluator { diff --git a/src/condition-trigger/conditions/conditions/call.ts b/src/condition-trigger/conditions/conditions/call.ts index 88828660..d937adb2 100644 --- a/src/condition-trigger/conditions/conditions/call.ts +++ b/src/condition-trigger/conditions/conditions/call.ts @@ -1,6 +1,6 @@ -import { CallBase } from '../../../config/schema/condition-trigger/common/call'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator } from './types'; +import type { CallBase } from '../../../config/schema/condition-trigger/common/call'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator } from './types'; export class CallConditionEvaluator implements ConditionEvaluator { private _condition: CallBase; diff --git a/src/condition-trigger/conditions/conditions/camera.ts b/src/condition-trigger/conditions/conditions/camera.ts index 1a141636..57c1c7b7 100644 --- a/src/condition-trigger/conditions/conditions/camera.ts +++ b/src/condition-trigger/conditions/conditions/camera.ts @@ -1,6 +1,6 @@ -import { CameraBase } from '../../../config/schema/condition-trigger/common/camera'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator } from './types'; +import type { CameraBase } from '../../../config/schema/condition-trigger/common/camera'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator } from './types'; export class CameraConditionEvaluator implements ConditionEvaluator { private _condition: CameraBase; diff --git a/src/condition-trigger/conditions/conditions/composite.ts b/src/condition-trigger/conditions/conditions/composite.ts index 4a22202d..5e63c52c 100644 --- a/src/condition-trigger/conditions/conditions/composite.ts +++ b/src/condition-trigger/conditions/conditions/composite.ts @@ -1,5 +1,5 @@ -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator, ExternalInvalidationSource } from './types'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator, ExternalInvalidationSource } from './types'; /** * Base class for the `or`/`and`/`not` composites: each holds child evaluators diff --git a/src/condition-trigger/conditions/conditions/display-mode.ts b/src/condition-trigger/conditions/conditions/display-mode.ts index 30321810..00ea3bbc 100644 --- a/src/condition-trigger/conditions/conditions/display-mode.ts +++ b/src/condition-trigger/conditions/conditions/display-mode.ts @@ -1,6 +1,6 @@ -import { DisplayModeBase } from '../../../config/schema/condition-trigger/common/display-mode'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator } from './types'; +import type { DisplayModeBase } from '../../../config/schema/condition-trigger/common/display-mode'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator } from './types'; export class DisplayModeConditionEvaluator implements ConditionEvaluator { private _condition: DisplayModeBase; diff --git a/src/condition-trigger/conditions/conditions/expand.ts b/src/condition-trigger/conditions/conditions/expand.ts index 9fb9e52f..ca2f7a28 100644 --- a/src/condition-trigger/conditions/conditions/expand.ts +++ b/src/condition-trigger/conditions/conditions/expand.ts @@ -1,6 +1,6 @@ -import { ExpandBase } from '../../../config/schema/condition-trigger/common/expand'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator } from './types'; +import type { ExpandBase } from '../../../config/schema/condition-trigger/common/expand'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator } from './types'; export class ExpandConditionEvaluator implements ConditionEvaluator { private _condition: ExpandBase; diff --git a/src/condition-trigger/conditions/conditions/fullscreen.ts b/src/condition-trigger/conditions/conditions/fullscreen.ts index 97bc79e8..83aacf40 100644 --- a/src/condition-trigger/conditions/conditions/fullscreen.ts +++ b/src/condition-trigger/conditions/conditions/fullscreen.ts @@ -1,6 +1,6 @@ -import { FullscreenBase } from '../../../config/schema/condition-trigger/common/fullscreen'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator } from './types'; +import type { FullscreenBase } from '../../../config/schema/condition-trigger/common/fullscreen'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator } from './types'; export class FullscreenConditionEvaluator implements ConditionEvaluator { private _condition: FullscreenBase; diff --git a/src/condition-trigger/conditions/conditions/initialized.ts b/src/condition-trigger/conditions/conditions/initialized.ts index fb81c1a0..4b221e25 100644 --- a/src/condition-trigger/conditions/conditions/initialized.ts +++ b/src/condition-trigger/conditions/conditions/initialized.ts @@ -1,5 +1,5 @@ -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator } from './types'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator } from './types'; export class InitializedConditionEvaluator implements ConditionEvaluator { public evaluate(newState?: ConditionState): ConditionsEvaluationResult { diff --git a/src/condition-trigger/conditions/conditions/interaction.ts b/src/condition-trigger/conditions/conditions/interaction.ts index 385d675c..2111dc79 100644 --- a/src/condition-trigger/conditions/conditions/interaction.ts +++ b/src/condition-trigger/conditions/conditions/interaction.ts @@ -1,6 +1,6 @@ -import { InteractionBase } from '../../../config/schema/condition-trigger/common/interaction'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator } from './types'; +import type { InteractionBase } from '../../../config/schema/condition-trigger/common/interaction'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator } from './types'; export class InteractionConditionEvaluator implements ConditionEvaluator { private _condition: InteractionBase; diff --git a/src/condition-trigger/conditions/conditions/key.ts b/src/condition-trigger/conditions/conditions/key.ts index 7b6500b1..bdcc70d1 100644 --- a/src/condition-trigger/conditions/conditions/key.ts +++ b/src/condition-trigger/conditions/conditions/key.ts @@ -1,6 +1,6 @@ -import { KeyBase } from '../../../config/schema/condition-trigger/common/key'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator } from './types'; +import type { KeyBase } from '../../../config/schema/condition-trigger/common/key'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator } from './types'; export class KeyConditionEvaluator implements ConditionEvaluator { private _condition: KeyBase; diff --git a/src/condition-trigger/conditions/conditions/media-loaded.ts b/src/condition-trigger/conditions/conditions/media-loaded.ts index f4a0453e..f326b7fb 100644 --- a/src/condition-trigger/conditions/conditions/media-loaded.ts +++ b/src/condition-trigger/conditions/conditions/media-loaded.ts @@ -1,6 +1,6 @@ -import { MediaLoadedBase } from '../../../config/schema/condition-trigger/common/media-loaded'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator } from './types'; +import type { MediaLoadedBase } from '../../../config/schema/condition-trigger/common/media-loaded'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator } from './types'; export class MediaLoadedConditionEvaluator implements ConditionEvaluator { private _condition: MediaLoadedBase; diff --git a/src/condition-trigger/conditions/conditions/microphone.ts b/src/condition-trigger/conditions/conditions/microphone.ts index 0b98c476..a200e54a 100644 --- a/src/condition-trigger/conditions/conditions/microphone.ts +++ b/src/condition-trigger/conditions/conditions/microphone.ts @@ -1,6 +1,6 @@ -import { MicrophoneBase } from '../../../config/schema/condition-trigger/common/microphone'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator } from './types'; +import type { MicrophoneBase } from '../../../config/schema/condition-trigger/common/microphone'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator } from './types'; export class MicrophoneConditionEvaluator implements ConditionEvaluator { private _condition: MicrophoneBase; diff --git a/src/condition-trigger/conditions/conditions/not.ts b/src/condition-trigger/conditions/conditions/not.ts index 437c0641..18deaaec 100644 --- a/src/condition-trigger/conditions/conditions/not.ts +++ b/src/condition-trigger/conditions/conditions/not.ts @@ -1,4 +1,4 @@ -import { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; import { CompositeConditionEvaluator } from './composite'; export class NotConditionEvaluator extends CompositeConditionEvaluator { diff --git a/src/condition-trigger/conditions/conditions/numeric-state.ts b/src/condition-trigger/conditions/conditions/numeric-state.ts index c2840140..44a5df5f 100644 --- a/src/condition-trigger/conditions/conditions/numeric-state.ts +++ b/src/condition-trigger/conditions/conditions/numeric-state.ts @@ -1,7 +1,7 @@ import { arrayify } from '../../../utils/basic'; import { matchesNumericState } from '../../common/numeric-state'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator, ConditionOfType, EvaluatorContext } from './types'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator, ConditionOfType, EvaluatorContext } from './types'; export class NumericStateConditionEvaluator implements ConditionEvaluator { private _condition: ConditionOfType<'numeric_state'>; diff --git a/src/condition-trigger/conditions/conditions/or.ts b/src/condition-trigger/conditions/conditions/or.ts index 55fe0660..73dc43ce 100644 --- a/src/condition-trigger/conditions/conditions/or.ts +++ b/src/condition-trigger/conditions/conditions/or.ts @@ -1,4 +1,4 @@ -import { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; import { CompositeConditionEvaluator } from './composite'; export class OrConditionEvaluator extends CompositeConditionEvaluator { diff --git a/src/condition-trigger/conditions/conditions/screen.ts b/src/condition-trigger/conditions/conditions/screen.ts index fa00c0ea..aad03081 100644 --- a/src/condition-trigger/conditions/conditions/screen.ts +++ b/src/condition-trigger/conditions/conditions/screen.ts @@ -1,7 +1,7 @@ -import { ScreenBase } from '../../../config/schema/condition-trigger/common/screen'; +import type { ScreenBase } from '../../../config/schema/condition-trigger/common/screen'; import { MediaQueryWatcher } from '../../common/media-query-watcher'; -import { ConditionsEvaluationResult } from '../types'; -import { ConditionEvaluator, ExternalInvalidationSource } from './types'; +import type { ConditionsEvaluationResult } from '../types'; +import type { ConditionEvaluator, ExternalInvalidationSource } from './types'; export class ScreenConditionEvaluator implements ConditionEvaluator { private _watcher: MediaQueryWatcher | null; diff --git a/src/condition-trigger/conditions/conditions/state.ts b/src/condition-trigger/conditions/conditions/state.ts index cc7aa707..7a336a1c 100644 --- a/src/condition-trigger/conditions/conditions/state.ts +++ b/src/condition-trigger/conditions/conditions/state.ts @@ -1,7 +1,7 @@ import { arrayify } from '../../../utils/basic'; import { renderTimePeriodToSeconds } from '../../common/time-period'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator, ConditionOfType, EvaluatorContext } from './types'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator, ConditionOfType, EvaluatorContext } from './types'; // Resolve each expected value that names an entity present in `hass` to that // entity's current state, accepting either the literal or the resolved value diff --git a/src/condition-trigger/conditions/conditions/template.ts b/src/condition-trigger/conditions/conditions/template.ts index c137b2f8..0cff15a3 100644 --- a/src/condition-trigger/conditions/conditions/template.ts +++ b/src/condition-trigger/conditions/conditions/template.ts @@ -1,6 +1,6 @@ -import { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; import { isTemplateTrue } from './is-template-true'; -import { ConditionEvaluator, ConditionOfType, EvaluatorContext } from './types'; +import type { ConditionEvaluator, ConditionOfType, EvaluatorContext } from './types'; export class TemplateConditionEvaluator implements ConditionEvaluator { private _condition: ConditionOfType<'template'>; diff --git a/src/condition-trigger/conditions/conditions/triggered.ts b/src/condition-trigger/conditions/conditions/triggered.ts index fbfb7f5f..99da0d47 100644 --- a/src/condition-trigger/conditions/conditions/triggered.ts +++ b/src/condition-trigger/conditions/conditions/triggered.ts @@ -1,6 +1,6 @@ -import { TriggeredBase } from '../../../config/schema/condition-trigger/common/triggered'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator } from './types'; +import type { TriggeredBase } from '../../../config/schema/condition-trigger/common/triggered'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator } from './types'; export class TriggeredConditionEvaluator implements ConditionEvaluator { private _condition: TriggeredBase; diff --git a/src/condition-trigger/conditions/conditions/types.ts b/src/condition-trigger/conditions/conditions/types.ts index 4e382dec..74a7dce6 100644 --- a/src/condition-trigger/conditions/conditions/types.ts +++ b/src/condition-trigger/conditions/conditions/types.ts @@ -1,6 +1,6 @@ -import { TemplateRenderer } from '../../../card-controller/templates'; -import { Condition } from '../../../config/schema/condition-trigger/conditions/types'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { TemplateRenderer } from '../../../card-controller/templates'; +import type { Condition } from '../../../config/schema/condition-trigger/conditions/types'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; export type ExternalInvalidationUnsubscribeCallback = () => void; diff --git a/src/condition-trigger/conditions/conditions/user-agent.ts b/src/condition-trigger/conditions/conditions/user-agent.ts index 532ce30e..8ad50778 100644 --- a/src/condition-trigger/conditions/conditions/user-agent.ts +++ b/src/condition-trigger/conditions/conditions/user-agent.ts @@ -1,7 +1,7 @@ import { isBeingCasted } from '../../../utils/casting'; import { isCompanionApp } from '../../../utils/companion'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator, ConditionOfType } from './types'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator, ConditionOfType } from './types'; export class UserAgentConditionEvaluator implements ConditionEvaluator { private _condition: ConditionOfType<'user_agent'>; diff --git a/src/condition-trigger/conditions/conditions/user.ts b/src/condition-trigger/conditions/conditions/user.ts index 7bc3b232..7ed354cc 100644 --- a/src/condition-trigger/conditions/conditions/user.ts +++ b/src/condition-trigger/conditions/conditions/user.ts @@ -1,5 +1,5 @@ -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator, ConditionOfType } from './types'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator, ConditionOfType } from './types'; export class UserConditionEvaluator implements ConditionEvaluator { private _condition: ConditionOfType<'user'>; diff --git a/src/condition-trigger/conditions/conditions/view.ts b/src/condition-trigger/conditions/conditions/view.ts index 88e69f8f..ca0b0961 100644 --- a/src/condition-trigger/conditions/conditions/view.ts +++ b/src/condition-trigger/conditions/conditions/view.ts @@ -1,6 +1,6 @@ -import { ViewBase } from '../../../config/schema/condition-trigger/common/view'; -import { ConditionsEvaluationResult, ConditionState } from '../types'; -import { ConditionEvaluator } from './types'; +import type { ViewBase } from '../../../config/schema/condition-trigger/common/view'; +import type { ConditionsEvaluationResult, ConditionState } from '../types'; +import type { ConditionEvaluator } from './types'; export class ViewConditionEvaluator implements ConditionEvaluator { private _condition: ViewBase; diff --git a/src/condition-trigger/conditions/factory.ts b/src/condition-trigger/conditions/factory.ts index db5925cb..fe073c94 100644 --- a/src/condition-trigger/conditions/factory.ts +++ b/src/condition-trigger/conditions/factory.ts @@ -1,5 +1,5 @@ -import { Condition } from '../../config/schema/condition-trigger/conditions/types'; -import { Trigger } from '../../config/schema/condition-trigger/triggers/types'; +import type { Condition } from '../../config/schema/condition-trigger/conditions/types'; +import type { Trigger } from '../../config/schema/condition-trigger/triggers/types'; import { AndConditionEvaluator } from './conditions/and'; import { CallConditionEvaluator } from './conditions/call'; import { CameraConditionEvaluator } from './conditions/camera'; @@ -18,7 +18,7 @@ import { ScreenConditionEvaluator } from './conditions/screen'; import { StateConditionEvaluator } from './conditions/state'; import { TemplateConditionEvaluator } from './conditions/template'; import { TriggeredConditionEvaluator } from './conditions/triggered'; -import { ConditionEvaluator, EvaluatorContext } from './conditions/types'; +import type { ConditionEvaluator, EvaluatorContext } from './conditions/types'; import { UserConditionEvaluator } from './conditions/user'; import { UserAgentConditionEvaluator } from './conditions/user-agent'; import { ViewConditionEvaluator } from './conditions/view'; diff --git a/src/condition-trigger/conditions/state-manager-via-event.ts b/src/condition-trigger/conditions/state-manager-via-event.ts index 4d3ed63a..ed157511 100644 --- a/src/condition-trigger/conditions/state-manager-via-event.ts +++ b/src/condition-trigger/conditions/state-manager-via-event.ts @@ -1,4 +1,4 @@ -import { ConditionStateManager } from './state-manager'; +import type { ConditionStateManager } from './state-manager'; export class ConditionStateManagerGetEvent extends Event { public conditionStateManager?: ConditionStateManager; diff --git a/src/condition-trigger/conditions/state-manager.ts b/src/condition-trigger/conditions/state-manager.ts index 1140548a..1178579d 100644 --- a/src/condition-trigger/conditions/state-manager.ts +++ b/src/condition-trigger/conditions/state-manager.ts @@ -1,7 +1,7 @@ import { isEqual } from 'lodash-es'; import { SerialRunner } from '../../utils/concurrency/serial-runner'; -import { +import type { ConditionState, ConditionStateChange, ConditionStateListener, diff --git a/src/condition-trigger/conditions/types.ts b/src/condition-trigger/conditions/types.ts index 963a858e..408e02d5 100644 --- a/src/condition-trigger/conditions/types.ts +++ b/src/condition-trigger/conditions/types.ts @@ -1,10 +1,10 @@ -import { IssuePresence } from '../../card-controller/issues/types'; -import { KeysState, MicrophoneState } from '../../card-controller/types'; -import { AdvancedCameraCardView } from '../../config/schema/common/const'; -import { ViewDisplayMode } from '../../config/schema/common/display'; -import { AdvancedCameraCardConfig } from '../../config/schema/types'; -import { HomeAssistant } from '../../ha/types'; -import { MediaLoadedInfo } from '../../types'; +import type { IssuePresence } from '../../card-controller/issues/types'; +import type { KeysState, MicrophoneState } from '../../card-controller/types'; +import type { AdvancedCameraCardView } from '../../config/schema/common/const'; +import type { ViewDisplayMode } from '../../config/schema/common/display'; +import type { AdvancedCameraCardConfig } from '../../config/schema/types'; +import type { HomeAssistant } from '../../ha/types'; +import type { MediaLoadedInfo } from '../../types'; export interface ConditionState { call?: boolean; diff --git a/src/condition-trigger/triggers/build-trigger-data.ts b/src/condition-trigger/triggers/build-trigger-data.ts index f28b0efe..e2281256 100644 --- a/src/condition-trigger/triggers/build-trigger-data.ts +++ b/src/condition-trigger/triggers/build-trigger-data.ts @@ -1,6 +1,6 @@ -import { TemplateAdvancedCameraCardState } from '../../card-controller/templates/types'; -import { ConditionState, ConditionStateChange } from '../conditions/types'; -import { TriggerData } from './types'; +import type { TemplateAdvancedCameraCardState } from '../../card-controller/templates/types'; +import type { ConditionState, ConditionStateChange } from '../conditions/types'; +import type { TriggerData } from './types'; // The card-state snapshot (`from_acc`/`to_acc`) surfaced by card triggers: the // card's own camera/view/config at a point in time. diff --git a/src/condition-trigger/triggers/factory.ts b/src/condition-trigger/triggers/factory.ts index c3554b8e..f0df4405 100644 --- a/src/condition-trigger/triggers/factory.ts +++ b/src/condition-trigger/triggers/factory.ts @@ -1,4 +1,4 @@ -import { Trigger } from '../../config/schema/condition-trigger/triggers/types'; +import type { Trigger } from '../../config/schema/condition-trigger/triggers/types'; import { CallTrigger } from './triggers/call'; import { CameraTrigger } from './triggers/camera'; import { ConfigTrigger } from './triggers/config'; @@ -16,7 +16,7 @@ import { ScreenTrigger } from './triggers/screen'; import { StateTrigger } from './triggers/state'; import { TemplateTrigger } from './triggers/template'; import { TriggeredTrigger } from './triggers/triggered'; -import { TriggerEvaluator, TriggerEvaluatorContext } from './triggers/types'; +import type { TriggerEvaluator, TriggerEvaluatorContext } from './triggers/types'; import { ViewTrigger } from './triggers/view'; export const createTriggerEvaluator = ( diff --git a/src/condition-trigger/triggers/manager.ts b/src/condition-trigger/triggers/manager.ts index cb1e4422..dc02db53 100644 --- a/src/condition-trigger/triggers/manager.ts +++ b/src/condition-trigger/triggers/manager.ts @@ -1,15 +1,15 @@ -import { HASSManagerReadonlyInterface } from '../../card-controller/hass/types'; +import type { HASSManagerReadonlyInterface } from '../../card-controller/hass/types'; import { TemplateRenderer } from '../../card-controller/templates'; -import { Trigger } from '../../config/schema/condition-trigger/triggers/types'; +import type { Trigger } from '../../config/schema/condition-trigger/triggers/types'; import { isEnabled } from '../common/is-enabled'; -import { ConditionStateManagerReadonlyInterface } from '../conditions/types'; +import type { ConditionStateManagerReadonlyInterface } from '../conditions/types'; import { createTriggerEvaluator } from './factory'; -import { +import type { TriggerCallback, TriggerEvaluator, TriggerEvaluatorContext, } from './triggers/types'; -import { TriggerData } from './types'; +import type { TriggerData } from './types'; // A trigger evaluator paired with its config, so `enabled` can be re-checked // against the config each time the evaluator triggers. diff --git a/src/condition-trigger/triggers/triggers/call.ts b/src/condition-trigger/triggers/triggers/call.ts index 1ddfaca3..ebe0f5c2 100644 --- a/src/condition-trigger/triggers/triggers/call.ts +++ b/src/condition-trigger/triggers/triggers/call.ts @@ -1,6 +1,6 @@ -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; export class CallTrigger extends ConditionStateTriggerBase> { protected _getValue(state: ConditionState): unknown { diff --git a/src/condition-trigger/triggers/triggers/camera.ts b/src/condition-trigger/triggers/triggers/camera.ts index 863faba6..5fbc7980 100644 --- a/src/condition-trigger/triggers/triggers/camera.ts +++ b/src/condition-trigger/triggers/triggers/camera.ts @@ -1,6 +1,6 @@ -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; // Triggers when the selected camera changes: to one of `cameras` if listed, to // no camera if `cameras` is `[]`, or on any change if `cameras` is omitted. diff --git a/src/condition-trigger/triggers/triggers/condition-state-base.ts b/src/condition-trigger/triggers/triggers/condition-state-base.ts index 37197a8e..3597ca47 100644 --- a/src/condition-trigger/triggers/triggers/condition-state-base.ts +++ b/src/condition-trigger/triggers/triggers/condition-state-base.ts @@ -1,11 +1,15 @@ import { isEqual } from 'lodash-es'; -import { Trigger } from '../../../config/schema/condition-trigger/triggers/types'; -import { ConditionEvaluator } from '../../conditions/conditions/types'; +import type { Trigger } from '../../../config/schema/condition-trigger/triggers/types'; +import type { ConditionEvaluator } from '../../conditions/conditions/types'; import { createConditionEvaluatorForTrigger } from '../../conditions/factory'; -import { ConditionState, ConditionStateChange } from '../../conditions/types'; +import type { ConditionState, ConditionStateChange } from '../../conditions/types'; import { buildCardTriggerData } from '../build-trigger-data'; -import { TriggerCallback, TriggerEvaluator, TriggerEvaluatorContext } from './types'; +import type { + TriggerCallback, + TriggerEvaluator, + TriggerEvaluatorContext, +} from './types'; // A trigger driven by `ConditionState` changes: subscribe to the state manager, // fire when the watched value (`_getValue`) changes and the new state passes diff --git a/src/condition-trigger/triggers/triggers/config.ts b/src/condition-trigger/triggers/triggers/config.ts index cfe05d27..d1b081d9 100644 --- a/src/condition-trigger/triggers/triggers/config.ts +++ b/src/condition-trigger/triggers/triggers/config.ts @@ -1,7 +1,7 @@ import { getConfigValue } from '../../../config/management'; -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; // Triggers when the card configuration changes. With `paths`, only a change to // one of those config paths triggers; without `paths`, any config change does. diff --git a/src/condition-trigger/triggers/triggers/display-mode.ts b/src/condition-trigger/triggers/triggers/display-mode.ts index 193cc101..7f2c345c 100644 --- a/src/condition-trigger/triggers/triggers/display-mode.ts +++ b/src/condition-trigger/triggers/triggers/display-mode.ts @@ -1,6 +1,6 @@ -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; export class DisplayModeTrigger extends ConditionStateTriggerBase< TriggerOfType<'display_mode'> diff --git a/src/condition-trigger/triggers/triggers/entity-state-base.ts b/src/condition-trigger/triggers/triggers/entity-state-base.ts index 9dd37f06..3c3e1a21 100644 --- a/src/condition-trigger/triggers/triggers/entity-state-base.ts +++ b/src/condition-trigger/triggers/triggers/entity-state-base.ts @@ -1,11 +1,11 @@ -import { HassEntity } from 'home-assistant-js-websocket'; +import type { HassEntity } from 'home-assistant-js-websocket'; import { isEqual } from 'lodash-es'; import { arrayify } from '../../../utils/basic'; import { Timer } from '../../../utils/timer'; import { renderTimePeriodToSeconds } from '../../common/time-period'; -import { ConditionStateChange } from '../../conditions/types'; -import { +import type { ConditionStateChange } from '../../conditions/types'; +import type { TriggerCallback, TriggerEvaluator, TriggerEvaluatorContext, diff --git a/src/condition-trigger/triggers/triggers/event.ts b/src/condition-trigger/triggers/triggers/event.ts index 92f8cd31..37707207 100644 --- a/src/condition-trigger/triggers/triggers/event.ts +++ b/src/condition-trigger/triggers/triggers/event.ts @@ -1,12 +1,12 @@ import { uniq } from 'lodash-es'; -import { +import type { EventSubscriptionRequest, EventWatcherSubscriptionInterface, } from '../../../card-controller/hass/event-watcher'; import { matchesEventContext, matchesEventData } from '../../../ha/event-match'; import { arrayify } from '../../../utils/basic'; -import { +import type { TriggerCallback, TriggerEvaluator, TriggerEvaluatorContext, diff --git a/src/condition-trigger/triggers/triggers/expand.ts b/src/condition-trigger/triggers/triggers/expand.ts index e8d6086f..37bbfef1 100644 --- a/src/condition-trigger/triggers/triggers/expand.ts +++ b/src/condition-trigger/triggers/triggers/expand.ts @@ -1,6 +1,6 @@ -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; export class ExpandTrigger extends ConditionStateTriggerBase> { protected _getValue(state: ConditionState): unknown { diff --git a/src/condition-trigger/triggers/triggers/fullscreen.ts b/src/condition-trigger/triggers/triggers/fullscreen.ts index 425d0847..ea6a6f33 100644 --- a/src/condition-trigger/triggers/triggers/fullscreen.ts +++ b/src/condition-trigger/triggers/triggers/fullscreen.ts @@ -1,6 +1,6 @@ -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; export class FullscreenTrigger extends ConditionStateTriggerBase< TriggerOfType<'fullscreen'> diff --git a/src/condition-trigger/triggers/triggers/initialized.ts b/src/condition-trigger/triggers/triggers/initialized.ts index 94e23b29..d05726db 100644 --- a/src/condition-trigger/triggers/triggers/initialized.ts +++ b/src/condition-trigger/triggers/triggers/initialized.ts @@ -1,6 +1,6 @@ -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; export class InitializedTrigger extends ConditionStateTriggerBase< TriggerOfType<'initialized'> diff --git a/src/condition-trigger/triggers/triggers/interaction.ts b/src/condition-trigger/triggers/triggers/interaction.ts index 5301efc0..3f3c7a26 100644 --- a/src/condition-trigger/triggers/triggers/interaction.ts +++ b/src/condition-trigger/triggers/triggers/interaction.ts @@ -1,6 +1,6 @@ -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; export class InteractionTrigger extends ConditionStateTriggerBase< TriggerOfType<'interaction'> diff --git a/src/condition-trigger/triggers/triggers/key.ts b/src/condition-trigger/triggers/triggers/key.ts index 66b39e15..c7d121b8 100644 --- a/src/condition-trigger/triggers/triggers/key.ts +++ b/src/condition-trigger/triggers/triggers/key.ts @@ -1,6 +1,6 @@ -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; export class KeyTrigger extends ConditionStateTriggerBase> { protected _getValue(state: ConditionState): unknown { diff --git a/src/condition-trigger/triggers/triggers/media-loaded.ts b/src/condition-trigger/triggers/triggers/media-loaded.ts index a62c0681..c685a479 100644 --- a/src/condition-trigger/triggers/triggers/media-loaded.ts +++ b/src/condition-trigger/triggers/triggers/media-loaded.ts @@ -1,6 +1,6 @@ -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; export class MediaLoadedTrigger extends ConditionStateTriggerBase< TriggerOfType<'media_loaded'> diff --git a/src/condition-trigger/triggers/triggers/microphone.ts b/src/condition-trigger/triggers/triggers/microphone.ts index bb7a5d03..8a6df46f 100644 --- a/src/condition-trigger/triggers/triggers/microphone.ts +++ b/src/condition-trigger/triggers/triggers/microphone.ts @@ -1,6 +1,6 @@ -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; // Triggers when the microphone mute state changes: to the given value if `muted` // is set, or on any change if it is omitted. diff --git a/src/condition-trigger/triggers/triggers/numeric-state.ts b/src/condition-trigger/triggers/triggers/numeric-state.ts index 9d1a3caa..2aff0fa9 100644 --- a/src/condition-trigger/triggers/triggers/numeric-state.ts +++ b/src/condition-trigger/triggers/triggers/numeric-state.ts @@ -1,9 +1,9 @@ -import { HassEntity } from 'home-assistant-js-websocket'; +import type { HassEntity } from 'home-assistant-js-websocket'; import { matchesNumericState, readNumericStateValue } from '../../common/numeric-state'; -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { EntityStateTriggerBase } from './entity-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; // https://www.home-assistant.io/docs/automation/trigger/#numeric-state-trigger // Faithful to HA's numeric_state trigger diff --git a/src/condition-trigger/triggers/triggers/screen.ts b/src/condition-trigger/triggers/triggers/screen.ts index 59c1f22a..f04cdd9a 100644 --- a/src/condition-trigger/triggers/triggers/screen.ts +++ b/src/condition-trigger/triggers/triggers/screen.ts @@ -1,9 +1,9 @@ import { MediaQueryWatcher, - MediaQueryWatcherUnsubscribeCallback, + type MediaQueryWatcherUnsubscribeCallback, } from '../../common/media-query-watcher'; import { buildCardTriggerData } from '../build-trigger-data'; -import { TriggerCallback, TriggerEvaluator, TriggerOfType } from './types'; +import type { TriggerCallback, TriggerEvaluator, TriggerOfType } from './types'; // `screen` watches a matchMedia query, whose state lives outside the card's // `ConditionState`, so it owns a `MediaQueryWatcher` (the same watcher the diff --git a/src/condition-trigger/triggers/triggers/state.ts b/src/condition-trigger/triggers/triggers/state.ts index fb5f87dd..96562581 100644 --- a/src/condition-trigger/triggers/triggers/state.ts +++ b/src/condition-trigger/triggers/triggers/state.ts @@ -1,8 +1,8 @@ -import { HassEntity } from 'home-assistant-js-websocket'; +import type { HassEntity } from 'home-assistant-js-websocket'; import { arrayify } from '../../../utils/basic'; import { EntityStateTriggerBase } from './entity-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; // https://www.home-assistant.io/docs/automation/trigger/#state-trigger Faithful // to HA's state trigger diff --git a/src/condition-trigger/triggers/triggers/template.ts b/src/condition-trigger/triggers/triggers/template.ts index 3b61f076..4e87ba5d 100644 --- a/src/condition-trigger/triggers/triggers/template.ts +++ b/src/condition-trigger/triggers/triggers/template.ts @@ -1,8 +1,8 @@ import { Timer } from '../../../utils/timer'; import { renderTimePeriodToSeconds } from '../../common/time-period'; -import { ConditionState, ConditionStateChange } from '../../conditions/types'; +import type { ConditionState, ConditionStateChange } from '../../conditions/types'; import { isTemplateTrue } from './is-template-true'; -import { +import type { TriggerCallback, TriggerEvaluator, TriggerEvaluatorContext, diff --git a/src/condition-trigger/triggers/triggers/triggered.ts b/src/condition-trigger/triggers/triggers/triggered.ts index 42fd5925..083eda05 100644 --- a/src/condition-trigger/triggers/triggers/triggered.ts +++ b/src/condition-trigger/triggers/triggers/triggered.ts @@ -1,6 +1,6 @@ -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; export class TriggeredTrigger extends ConditionStateTriggerBase< TriggerOfType<'triggered'> diff --git a/src/condition-trigger/triggers/triggers/types.ts b/src/condition-trigger/triggers/triggers/types.ts index 8a11d0d3..f277584f 100644 --- a/src/condition-trigger/triggers/triggers/types.ts +++ b/src/condition-trigger/triggers/triggers/types.ts @@ -1,8 +1,8 @@ -import { HASSManagerReadonlyInterface } from '../../../card-controller/hass/types'; -import { TemplateRenderer } from '../../../card-controller/templates'; -import { Trigger } from '../../../config/schema/condition-trigger/triggers/types'; -import { ConditionStateManagerReadonlyInterface } from '../../conditions/types'; -import { TriggerData } from '../types'; +import type { HASSManagerReadonlyInterface } from '../../../card-controller/hass/types'; +import type { TemplateRenderer } from '../../../card-controller/templates'; +import type { Trigger } from '../../../config/schema/condition-trigger/triggers/types'; +import type { ConditionStateManagerReadonlyInterface } from '../../conditions/types'; +import type { TriggerData } from '../types'; export type TriggerCallback = (data: TriggerData) => void; diff --git a/src/condition-trigger/triggers/triggers/view.ts b/src/condition-trigger/triggers/triggers/view.ts index 8ce54bab..839d41b9 100644 --- a/src/condition-trigger/triggers/triggers/view.ts +++ b/src/condition-trigger/triggers/triggers/view.ts @@ -1,6 +1,6 @@ -import { ConditionState } from '../../conditions/types'; +import type { ConditionState } from '../../conditions/types'; import { ConditionStateTriggerBase } from './condition-state-base'; -import { TriggerOfType } from './types'; +import type { TriggerOfType } from './types'; // Triggers when the selected view changes: to one of `views` if listed, or on // any change if `views` is omitted. diff --git a/src/condition-trigger/triggers/types.ts b/src/condition-trigger/triggers/types.ts index 0177c82e..0c62c493 100644 --- a/src/condition-trigger/triggers/types.ts +++ b/src/condition-trigger/triggers/types.ts @@ -1,6 +1,6 @@ -import { HassEntity, HassEvent } from 'home-assistant-js-websocket'; +import type { HassEntity, HassEvent } from 'home-assistant-js-websocket'; -import { TemplateAdvancedCameraCardState } from '../../card-controller/templates/types'; +import type { TemplateAdvancedCameraCardState } from '../../card-controller/templates/types'; // The top-level `trigger` template variable produced each time an evaluator // triggers. `platform` is the provider -- a real HA platform for stock diff --git a/src/config/management.ts b/src/config/management.ts index a46f26a9..a515719e 100644 --- a/src/config/management.ts +++ b/src/config/management.ts @@ -24,8 +24,11 @@ import { CONF_VIEW_TRIGGERS_UNTRIGGER_DELAY_SECONDS, } from '../const'; import { arrayify, isRecord } from '../utils/basic'; -import { Condition } from './schema/condition-trigger/conditions/types'; -import { RawAdvancedCameraCardConfig, RawAdvancedCameraCardConfigArray } from './types'; +import type { Condition } from './schema/condition-trigger/conditions/types'; +import type { + RawAdvancedCameraCardConfig, + RawAdvancedCameraCardConfigArray, +} from './types'; // ************************************************************************* // General Config Management Functions diff --git a/src/config/profiles/set-profiles.ts b/src/config/profiles/set-profiles.ts index caedef1a..0e48c258 100644 --- a/src/config/profiles/set-profiles.ts +++ b/src/config/profiles/set-profiles.ts @@ -1,8 +1,8 @@ import { deepRemoveDefaults } from '../../utils/zod/deep-remove-defaults.js'; import { getConfigValue, setConfigValue } from '../management.js'; -import { ProfileType } from '../schema/profiles.js'; +import type { ProfileType } from '../schema/profiles.js'; import { advancedCameraCardConfigSchema } from '../schema/types.js'; -import { RawAdvancedCameraCardConfig } from '../types.js'; +import type { RawAdvancedCameraCardConfig } from '../types.js'; import { CASTING_PROFILE } from './casting.js'; import { DOORBELL_PROFILE } from './doorbell.js'; import { LOW_PERFORMANCE_PROFILE } from './low-performance.js'; diff --git a/src/config/schema/actions/custom/effect.ts b/src/config/schema/actions/custom/effect.ts index acea5dec..3f3649bb 100644 --- a/src/config/schema/actions/custom/effect.ts +++ b/src/config/schema/actions/custom/effect.ts @@ -1,6 +1,6 @@ import { z } from 'zod'; -import { EffectName } from '../../../../types'; +import type { EffectName } from '../../../../types'; import { advancedCameraCardCustomActionsBaseSchema } from './base'; const effectNameSchema = z.enum([ diff --git a/src/config/schema/actions/stock/target.ts b/src/config/schema/actions/stock/target.ts index 0d64427f..4410857b 100644 --- a/src/config/schema/actions/stock/target.ts +++ b/src/config/schema/actions/stock/target.ts @@ -1,4 +1,4 @@ -import { HassServiceTarget } from 'home-assistant-js-websocket'; +import type { HassServiceTarget } from 'home-assistant-js-websocket'; import { z } from 'zod'; export const targetSchema: z.ZodSchema = z.object({ diff --git a/src/config/schema/actions/types.ts b/src/config/schema/actions/types.ts index 73b306f5..7bb285b5 100644 --- a/src/config/schema/actions/types.ts +++ b/src/config/schema/actions/types.ts @@ -4,7 +4,7 @@ import { linkSchema } from '../common/link'; import { preprocessToArray } from '../common/preprocess-to-array'; import { severitySchema } from '../common/severity'; import { statusBarItemBaseSchema } from '../common/status-bar'; -import { Condition, conditionSchema } from '../condition-trigger/conditions/types'; +import { conditionSchema, type Condition } from '../condition-trigger/conditions/types'; import { actionBaseSchema } from './base'; import { advancedCameraCardCustomActionsBaseSchema } from './custom/base'; import { callAnswerActionConfigSchema } from './custom/call-answer'; diff --git a/src/config/schema/elements/custom/menu/types.ts b/src/config/schema/elements/custom/menu/types.ts index fd7ef6c5..f56e5f58 100644 --- a/src/config/schema/elements/custom/menu/types.ts +++ b/src/config/schema/elements/custom/menu/types.ts @@ -1,6 +1,6 @@ -import { MenuIcon } from './icon'; -import { MenuStateIcon } from './state-icon'; -import { MenuSubmenu } from './submenu'; -import { MenuSubmenuSelect } from './submenu-select'; +import type { MenuIcon } from './icon'; +import type { MenuStateIcon } from './state-icon'; +import type { MenuSubmenu } from './submenu'; +import type { MenuSubmenuSelect } from './submenu-select'; export type MenuItem = MenuIcon | MenuStateIcon | MenuSubmenu | MenuSubmenuSelect; diff --git a/src/config/schema/folders.ts b/src/config/schema/folders.ts index 47f7ccaf..4034b506 100644 --- a/src/config/schema/folders.ts +++ b/src/config/schema/folders.ts @@ -1,4 +1,4 @@ -import { NonEmptyTuple } from 'type-fest'; +import type { NonEmptyTuple } from 'type-fest'; import { z } from 'zod'; import { AdvancedCameraCardError } from '../../types'; diff --git a/src/config/schema/types.ts b/src/config/schema/types.ts index 7fd610fd..151711f5 100644 --- a/src/config/schema/types.ts +++ b/src/config/schema/types.ts @@ -4,7 +4,7 @@ import { deepRemoveDefaults } from '../../utils/zod/deep-remove-defaults'; import { automationsSchema } from './automations'; import { cameraConfigDefault, cameraConfigSchema, camerasConfigSchema } from './cameras'; import { cardIDRegex } from './common/const'; -import { DebugConfig, debugConfigDefault, debugConfigSchema } from './debug'; +import { debugConfigDefault, debugConfigSchema, type DebugConfig } from './debug'; import { dimensionsConfigSchema } from './dimensions'; import { pictureElementsSchema } from './elements/types'; import { foldersConfigSchema } from './folders'; @@ -14,9 +14,9 @@ import { mediaGalleryConfigDefault, mediaGalleryConfigSchema } from './media-gal import { menuConfigDefault, menuConfigSchema } from './menu'; import { overridesSchema } from './overrides'; import { - PerformanceConfig, performanceConfigDefault, performanceConfigSchema, + type PerformanceConfig, } from './performance'; import { profilesSchema } from './profiles'; import { remoteControlConfigDefault, remoteControlConfigSchema } from './remote-control'; diff --git a/src/editor.ts b/src/editor.ts index 22601083..0cd54e50 100644 --- a/src/editor.ts +++ b/src/editor.ts @@ -1,4 +1,10 @@ -import { CSSResultGroup, html, LitElement, TemplateResult, unsafeCSS } from 'lit'; +import { + html, + LitElement, + unsafeCSS, + type CSSResultGroup, + type TemplateResult, +} from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; @@ -28,9 +34,9 @@ import { import { ZOOM_MAX, ZOOM_MIN } from './config/schema/common/zoom.js'; import { profilesSchema } from './config/schema/profiles.js'; import { STATUS_BAR_HEIGHT_MIN } from './config/schema/status-bar.js'; -import { AdvancedCameraCardConfig, configDefaults } from './config/schema/types.js'; -import { KeyboardShortcut } from './config/schema/view.js'; -import { +import { configDefaults, type AdvancedCameraCardConfig } from './config/schema/types.js'; +import type { KeyboardShortcut } from './config/schema/view.js'; +import type { RawAdvancedCameraCardConfig, RawAdvancedCameraCardConfigArray, } from './config/types.js'; @@ -292,7 +298,7 @@ import { fireHASSEvent } from './ha/fire-hass-event.js'; import { getEntitiesFromHASS } from './ha/get-entities.js'; import { getEntityTitle } from './ha/get-entity-title.js'; import { sideLoadHomeAssistantElements } from './ha/side-load-ha-elements.js'; -import { HomeAssistant, LovelaceCardEditor } from './ha/types.js'; +import type { HomeAssistant, LovelaceCardEditor } from './ha/types.js'; import { localize } from './localize/localize.js'; import editorStyle from './scss/editor.scss'; import type { CapabilityKey } from './types.js'; diff --git a/src/ha/browse-media/browse-media-to-view-media.ts b/src/ha/browse-media/browse-media-to-view-media.ts index fbd3e5d1..4cd69908 100644 --- a/src/ha/browse-media/browse-media-to-view-media.ts +++ b/src/ha/browse-media/browse-media-to-view-media.ts @@ -1,8 +1,8 @@ import { isTruthy } from '../../utils/basic'; -import { ViewItem, ViewMedia, ViewMediaSourceOptions } from '../../view/item'; +import type { ViewItem, ViewMedia, ViewMediaSourceOptions } from '../../view/item'; import { ViewItemClassifier } from '../../view/item-classifier'; import { BrowseMediaViewItemFactory } from './item-factory'; -import { BrowseMediaMetadata, RichBrowseMedia } from './types'; +import type { BrowseMediaMetadata, RichBrowseMedia } from './types'; export const getViewMediaFromBrowseMediaArray = ( browseMedia: RichBrowseMedia[], diff --git a/src/ha/browse-media/item-factory.ts b/src/ha/browse-media/item-factory.ts index a20322ed..6831fa81 100644 --- a/src/ha/browse-media/item-factory.ts +++ b/src/ha/browse-media/item-factory.ts @@ -1,10 +1,14 @@ -import { ViewItem, ViewMediaSourceOptions, ViewMediaType } from '../../view/item'; +import { + ViewMediaType, + type ViewItem, + type ViewMediaSourceOptions, +} from '../../view/item'; import { BrowseMediaEventViewMedia, BrowseMediaViewFolder } from './item'; import { - BrowseMediaMetadata, MEDIA_CLASS_IMAGE, MEDIA_CLASS_VIDEO, - RichBrowseMedia, + type BrowseMediaMetadata, + type RichBrowseMedia, } from './types'; export class BrowseMediaViewItemFactory { diff --git a/src/ha/browse-media/item.ts b/src/ha/browse-media/item.ts index cf4b1a1f..084632c2 100644 --- a/src/ha/browse-media/item.ts +++ b/src/ha/browse-media/item.ts @@ -1,17 +1,17 @@ import { format } from 'date-fns'; import { isEqual } from 'lodash-es'; -import { FolderPathComponent } from '../../card-controller/folders/types'; -import { FolderConfig } from '../../config/schema/folders'; +import type { FolderPathComponent } from '../../card-controller/folders/types'; +import type { FolderConfig } from '../../config/schema/folders'; import { formatDateAndTime } from '../../utils/basic'; import { - EventViewMedia, ViewFolder, ViewMedia, - ViewMediaSourceOptions, - ViewMediaType, + type EventViewMedia, + type ViewMediaSourceOptions, + type ViewMediaType, } from '../../view/item'; -import { BrowseMediaMetadata, RichBrowseMedia } from './types'; +import type { BrowseMediaMetadata, RichBrowseMedia } from './types'; interface MediaClassBrowserSetting { icon: string; diff --git a/src/ha/browse-media/sort.ts b/src/ha/browse-media/sort.ts index c465c91a..5e101679 100644 --- a/src/ha/browse-media/sort.ts +++ b/src/ha/browse-media/sort.ts @@ -1,6 +1,6 @@ import { orderBy } from 'lodash-es'; -import { BrowseMediaMetadata, RichBrowseMedia } from './types'; +import type { BrowseMediaMetadata, RichBrowseMedia } from './types'; // Unlike sorting of view items (see card-controller/view/sort.ts), for browse // media we often need to sort by most recent first to apply an item count diff --git a/src/ha/browse-media/walker.ts b/src/ha/browse-media/walker.ts index 278397b1..fa2acaae 100644 --- a/src/ha/browse-media/walker.ts +++ b/src/ha/browse-media/walker.ts @@ -2,14 +2,14 @@ import { add } from 'date-fns'; import { chunk } from 'lodash-es'; import { allPromises } from '../../utils/basic'; -import { HomeAssistant } from '../types'; +import type { HomeAssistant } from '../types'; import { homeAssistantWSRequest } from '../ws-request'; import { BROWSE_MEDIA_CACHE_SECONDS, - BrowseMedia, - BrowseMediaCache, browseMediaSchema, - RichBrowseMedia, + type BrowseMedia, + type BrowseMediaCache, + type RichBrowseMedia, } from './types'; type RichMetadataGenerator = ( diff --git a/src/ha/browse-media/within-dates.ts b/src/ha/browse-media/within-dates.ts index febec2dd..be8d2108 100644 --- a/src/ha/browse-media/within-dates.ts +++ b/src/ha/browse-media/within-dates.ts @@ -1,5 +1,5 @@ import { rangesOverlap } from '../../camera-manager/range'; -import { BrowseMediaMetadata, RichBrowseMedia } from './types'; +import type { BrowseMediaMetadata, RichBrowseMedia } from './types'; /** * A utility method to determine if a browse media object matches against a diff --git a/src/ha/canonical-url.ts b/src/ha/canonical-url.ts index bb9c42d8..3c6d78ba 100644 --- a/src/ha/canonical-url.ts +++ b/src/ha/canonical-url.ts @@ -1,5 +1,5 @@ import { isHARelativeURL } from './is-ha-relative-url'; -import { HomeAssistant } from './types'; +import type { HomeAssistant } from './types'; /** * Ensure URLs use the correct HA URL (relevant for Chromecast where the default diff --git a/src/ha/connection/subscription-health-monitor.ts b/src/ha/connection/subscription-health-monitor.ts index c6b25557..81fa0e6f 100644 --- a/src/ha/connection/subscription-health-monitor.ts +++ b/src/ha/connection/subscription-health-monitor.ts @@ -1,5 +1,5 @@ -import { RecoverableHealthInterface, UnlistenCallback } from '../../health'; -import { HASSWebSocketSubscriptionStatus } from './subscription-manager'; +import type { RecoverableHealthInterface, UnlistenCallback } from '../../health'; +import type { HASSWebSocketSubscriptionStatus } from './subscription-manager'; // One keyed subscription that is currently failing, with the most recent // rejection reason and attempt count. diff --git a/src/ha/connection/subscription-manager.ts b/src/ha/connection/subscription-manager.ts index 6d0fd725..4388b262 100644 --- a/src/ha/connection/subscription-manager.ts +++ b/src/ha/connection/subscription-manager.ts @@ -1,14 +1,14 @@ -import { Connection } from 'home-assistant-js-websocket'; +import type { Connection } from 'home-assistant-js-websocket'; import { - GetKeyCallback, KeyedSubscriptionManager, + type GetKeyCallback, } from '../../utils/concurrency/keyed-subscription-manager'; import { RetryTimer } from '../../utils/retry-timer'; import { isHassReady } from '../is-hass-ready'; -import { HASSSource, HASSUnlistenCallback } from '../source'; -import { HomeAssistant } from '../types'; -import { HASSWebSocketLiveness, HASSWebSocketOpenCallback } from './types'; +import type { HASSSource, HASSUnlistenCallback } from '../source'; +import type { HomeAssistant } from '../types'; +import type { HASSWebSocketLiveness, HASSWebSocketOpenCallback } from './types'; const RETRY_BASE_SECONDS = 1; const RETRY_MAX_SECONDS = 300; diff --git a/src/ha/connection/types.ts b/src/ha/connection/types.ts index 295136b9..630a6aea 100644 --- a/src/ha/connection/types.ts +++ b/src/ha/connection/types.ts @@ -1,4 +1,4 @@ -import { Connection } from 'home-assistant-js-websocket'; +import type { Connection } from 'home-assistant-js-websocket'; /** * Types describing the caller-supplied callbacks for opening and closing a diff --git a/src/ha/download.ts b/src/ha/download.ts index cd45d1b8..48a4979f 100644 --- a/src/ha/download.ts +++ b/src/ha/download.ts @@ -1,7 +1,7 @@ -import { Endpoint } from '../types'; +import type { Endpoint } from '../types'; import { canonicalizeHAURL } from './canonical-url'; -import { ResolvedMediaCache, resolveMedia } from './resolved-media'; -import { HomeAssistant } from './types'; +import { resolveMedia, type ResolvedMediaCache } from './resolved-media'; +import type { HomeAssistant } from './types'; export const getMediaDownloadPath = async ( hass: HomeAssistant, diff --git a/src/ha/entity-state-translation.ts b/src/ha/entity-state-translation.ts index 1602f516..6a70aef2 100644 --- a/src/ha/entity-state-translation.ts +++ b/src/ha/entity-state-translation.ts @@ -1,8 +1,8 @@ -import { HassEntity } from 'home-assistant-js-websocket'; +import type { HassEntity } from 'home-assistant-js-websocket'; import { computeDomain } from './compute-domain.js'; -import { Entity } from './registry/entity/types.js'; -import { HomeAssistant } from './types.js'; +import type { Entity } from './registry/entity/types.js'; +import type { HomeAssistant } from './types.js'; /** * Get the translation of an entity state. Inspired by: diff --git a/src/ha/event-match.ts b/src/ha/event-match.ts index 18682ce1..17c8004a 100644 --- a/src/ha/event-match.ts +++ b/src/ha/event-match.ts @@ -1,7 +1,7 @@ -import { HassEventBase } from 'home-assistant-js-websocket'; +import type { HassEventBase } from 'home-assistant-js-websocket'; import { isEqualWith } from 'lodash-es'; -import { HAEventContextFilter } from '../config/schema/common/ha-event'; +import type { HAEventContextFilter } from '../config/schema/common/ha-event'; import { isRecord } from '../utils/basic'; // A plain object (HA/Python `dict`), excluding arrays -- the distinction HA's diff --git a/src/ha/fetch.ts b/src/ha/fetch.ts index c5d567cc..d1cb611f 100644 --- a/src/ha/fetch.ts +++ b/src/ha/fetch.ts @@ -1,9 +1,9 @@ -import { ZodSchema } from 'zod'; +import type { ZodSchema } from 'zod'; import { localize } from '../localize/localize'; -import { AdvancedCameraCardError, Endpoint } from '../types'; +import { AdvancedCameraCardError, type Endpoint } from '../types'; import { homeAssistantGetSignedURLIfNecessary } from './sign-path'; -import { HomeAssistant } from './types'; +import type { HomeAssistant } from './types'; /** * Fetch a JSON response from a signed or unsigned endpoint and validate it diff --git a/src/ha/fire-hass-event.ts b/src/ha/fire-hass-event.ts index cb082436..55c95e5e 100644 --- a/src/ha/fire-hass-event.ts +++ b/src/ha/fire-hass-event.ts @@ -1,4 +1,4 @@ -import { ValidHassDomEvent } from './types'; +import type { ValidHassDomEvent } from './types'; /** * Fire an event has per Home Assistant frontend specifications. All events diff --git a/src/ha/get-entities.ts b/src/ha/get-entities.ts index ca8e4899..a0e92c2e 100644 --- a/src/ha/get-entities.ts +++ b/src/ha/get-entities.ts @@ -1,4 +1,4 @@ -import { HomeAssistant } from './types'; +import type { HomeAssistant } from './types'; /** * Get entities from the HASS object. diff --git a/src/ha/get-entity-title.ts b/src/ha/get-entity-title.ts index f6afd1a4..f9311d7b 100644 --- a/src/ha/get-entity-title.ts +++ b/src/ha/get-entity-title.ts @@ -1,4 +1,4 @@ -import { HomeAssistant } from './types'; +import type { HomeAssistant } from './types'; /** * Get the title of an entity. diff --git a/src/ha/get-hass-differences.ts b/src/ha/get-hass-differences.ts index f4663ead..66682832 100644 --- a/src/ha/get-hass-differences.ts +++ b/src/ha/get-hass-differences.ts @@ -1,6 +1,6 @@ -import { HassEntity } from 'home-assistant-js-websocket'; +import type { HassEntity } from 'home-assistant-js-websocket'; -import { HassStateDifference, HomeAssistant } from './types'; +import type { HassStateDifference, HomeAssistant } from './types'; /** * Get the difference between two hass objects. diff --git a/src/ha/get-trigger-event-type.ts b/src/ha/get-trigger-event-type.ts index 7818d4be..c8b2af13 100644 --- a/src/ha/get-trigger-event-type.ts +++ b/src/ha/get-trigger-event-type.ts @@ -1,6 +1,6 @@ import { computeDomain } from './compute-domain'; import { isTriggeredState } from './is-triggered-state'; -import { HassStateDifference } from './types'; +import type { HassStateDifference } from './types'; // New state must be a real timestamp: `unavailable` means the entity went // offline, `unknown` means it has no recorded fire -- neither is a fresh fire. diff --git a/src/ha/integration/index.ts b/src/ha/integration/index.ts index 248b0290..b6a5d015 100644 --- a/src/ha/integration/index.ts +++ b/src/ha/integration/index.ts @@ -1,6 +1,6 @@ -import { HomeAssistant } from '../types.js'; +import type { HomeAssistant } from '../types.js'; import { homeAssistantWSRequest } from '../ws-request.js'; -import { IntegrationManifest, integrationManifestSchema } from './types.js'; +import { integrationManifestSchema, type IntegrationManifest } from './types.js'; export const getIntegrationManifest = async ( hass: HomeAssistant, diff --git a/src/ha/is-hass-different.ts b/src/ha/is-hass-different.ts index 27d8ae54..af2f9b32 100644 --- a/src/ha/is-hass-different.ts +++ b/src/ha/is-hass-different.ts @@ -1,5 +1,5 @@ import { getHassDifferences } from './get-hass-differences'; -import { HomeAssistant } from './types'; +import type { HomeAssistant } from './types'; /** * Determine if two hass objects are different for a list of entities. diff --git a/src/ha/is-hass-ready.ts b/src/ha/is-hass-ready.ts index 301f942b..a20e5fa7 100644 --- a/src/ha/is-hass-ready.ts +++ b/src/ha/is-hass-ready.ts @@ -1,6 +1,6 @@ import { STATE_RUNNING } from 'home-assistant-js-websocket'; -import { HomeAssistant } from './types'; +import type { HomeAssistant } from './types'; // HA is "ready" when the WebSocket is connected AND integrations have finished // loading (`config.state === STATE_RUNNING`). HA exposes the WebSocket before diff --git a/src/ha/registry/device/index.ts b/src/ha/registry/device/index.ts index 5ba1198b..eb790d66 100644 --- a/src/ha/registry/device/index.ts +++ b/src/ha/registry/device/index.ts @@ -1,7 +1,12 @@ import { errorToConsole } from '../../../utils/basic'; -import { HomeAssistant } from '../../types'; +import type { HomeAssistant } from '../../types'; import { homeAssistantWSRequest } from '../../ws-request'; -import { Device, DeviceCache, DeviceList, deviceListSchema } from './types'; +import { + deviceListSchema, + type Device, + type DeviceCache, + type DeviceList, +} from './types'; export class DeviceRegistryManager { private _cache: DeviceCache; diff --git a/src/ha/registry/entity/index.ts b/src/ha/registry/entity/index.ts index 9b869f7b..a4101dca 100644 --- a/src/ha/registry/entity/index.ts +++ b/src/ha/registry/entity/index.ts @@ -1,13 +1,13 @@ import { errorToConsole } from '../../../utils/basic.js'; -import { HomeAssistant } from '../../types.js'; +import type { HomeAssistant } from '../../types.js'; import { homeAssistantWSRequest } from '../../ws-request.js'; import { - Entity, - EntityCache, - EntityList, entityListSchema, - EntityRegistryManager, entitySchema, + type Entity, + type EntityCache, + type EntityList, + type EntityRegistryManager, } from './types.js'; // This class manages interactions with entities, caching results and fetching diff --git a/src/ha/registry/entity/types.ts b/src/ha/registry/entity/types.ts index 55a142c5..9634b36d 100644 --- a/src/ha/registry/entity/types.ts +++ b/src/ha/registry/entity/types.ts @@ -1,7 +1,7 @@ import { z } from 'zod'; import { Cache } from '../../../cache/cache'; -import { HomeAssistant } from '../../types'; +import type { HomeAssistant } from '../../types'; export const entitySchema = z.object({ config_entry_id: z.string().nullable(), diff --git a/src/ha/resolved-media.ts b/src/ha/resolved-media.ts index 94821a6a..e2498638 100644 --- a/src/ha/resolved-media.ts +++ b/src/ha/resolved-media.ts @@ -1,6 +1,6 @@ import { LRUCache } from '../cache/lru'; import { errorToConsole } from '../utils/basic'; -import { HomeAssistant, ResolvedMedia, resolvedMediaSchema } from './types'; +import { resolvedMediaSchema, type HomeAssistant, type ResolvedMedia } from './types'; import { homeAssistantWSRequest } from './ws-request'; // It's important the cache size be at least as large as the largest likely diff --git a/src/ha/side-load-ha-elements.ts b/src/ha/side-load-ha-elements.ts index 03460532..cd6dfcae 100644 --- a/src/ha/side-load-ha-elements.ts +++ b/src/ha/side-load-ha-elements.ts @@ -1,5 +1,9 @@ import { localize } from '../localize/localize'; -import { AdvancedCameraCardError, CardHelpers, LovelaceCardWithEditor } from '../types'; +import { + AdvancedCameraCardError, + type CardHelpers, + type LovelaceCardWithEditor, +} from '../types'; class HomeAssistantElementsLoadError extends AdvancedCameraCardError { constructor() { diff --git a/src/ha/sign-path.ts b/src/ha/sign-path.ts index ea55b2cf..001af1f3 100644 --- a/src/ha/sign-path.ts +++ b/src/ha/sign-path.ts @@ -1,5 +1,5 @@ -import { SignedPath, signedPathSchema, type Endpoint } from '../types'; -import { HomeAssistant } from './types'; +import { signedPathSchema, type Endpoint, type SignedPath } from '../types'; +import type { HomeAssistant } from './types'; import { homeAssistantWSRequest } from './ws-request'; /** diff --git a/src/ha/source.ts b/src/ha/source.ts index a04f5364..8add4744 100644 --- a/src/ha/source.ts +++ b/src/ha/source.ts @@ -1,4 +1,4 @@ -import { HomeAssistant } from './types'; +import type { HomeAssistant } from './types'; /** * `HASSSource` is the observer-pattern API that `HASSManager` exposes for any diff --git a/src/ha/supports-feature.ts b/src/ha/supports-feature.ts index a79ee961..429167de 100644 --- a/src/ha/supports-feature.ts +++ b/src/ha/supports-feature.ts @@ -1,4 +1,4 @@ -import { HassEntity } from 'home-assistant-js-websocket'; +import type { HassEntity } from 'home-assistant-js-websocket'; /** * Determine if a state object supports a given feature. diff --git a/src/ha/types.ts b/src/ha/types.ts index 98e0317b..a85c4f5e 100644 --- a/src/ha/types.ts +++ b/src/ha/types.ts @@ -1,4 +1,4 @@ -import { +import type { Auth, Connection, HassConfig, diff --git a/src/ha/web-proxy.ts b/src/ha/web-proxy.ts index 1e2c696b..117066d3 100644 --- a/src/ha/web-proxy.ts +++ b/src/ha/web-proxy.ts @@ -1,6 +1,9 @@ -import { EnabledProxyConfig, ResolvedProxyConfig } from '../config/schema/common/proxy'; -import { Endpoint } from '../types'; -import { HomeAssistant } from './types'; +import type { + EnabledProxyConfig, + ResolvedProxyConfig, +} from '../config/schema/common/proxy'; +import type { Endpoint } from '../types'; +import type { HomeAssistant } from './types'; export const HASS_WEB_PROXY_DOMAIN = 'hass_web_proxy'; diff --git a/src/ha/ws-request.ts b/src/ha/ws-request.ts index 0243f905..def91898 100644 --- a/src/ha/ws-request.ts +++ b/src/ha/ws-request.ts @@ -1,9 +1,9 @@ -import { MessageBase } from 'home-assistant-js-websocket'; -import { ZodSchema } from 'zod'; +import type { MessageBase } from 'home-assistant-js-websocket'; +import type { ZodSchema } from 'zod'; import { localize } from '../localize/localize'; import { AdvancedCameraCardError } from '../types'; -import { HomeAssistant } from './types'; +import type { HomeAssistant } from './types'; /** * Make a HomeAssistant websocket request. May throw. diff --git a/src/localize/localize.ts b/src/localize/localize.ts index 4e793646..93c5c946 100644 --- a/src/localize/localize.ts +++ b/src/localize/localize.ts @@ -1,4 +1,4 @@ -import { HomeAssistant } from '../ha/types'; +import type { HomeAssistant } from '../ha/types'; import * as en from './languages/en.json'; const DEFAULT_LANG = 'en' as const; diff --git a/src/patches/ha-camera-stream.ts b/src/patches/ha-camera-stream.ts index 3358cc85..b888a48c 100644 --- a/src/patches/ha-camera-stream.ts +++ b/src/patches/ha-camera-stream.ts @@ -9,7 +9,14 @@ // available as compilation time. // ==================================================================== -import { css, CSSResultGroup, html, nothing, PropertyValues, unsafeCSS } from 'lit'; +import { + css, + html, + nothing, + unsafeCSS, + type CSSResultGroup, + type PropertyValues, +} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { query } from 'lit/decorators/query.js'; @@ -18,7 +25,7 @@ import { MediaLoadedInfoSourceController } from '../components-lib/media-loaded- import '../components/image-player.js'; import liveHAComponentsStyle from '../scss/live-ha-components.scss'; -import { +import type { MediaLoadedInfo, MediaLoadedInfoEventDetail, MediaPlayer, diff --git a/src/patches/ha-hls-player.ts b/src/patches/ha-hls-player.ts index 25d72d6d..7f7c9a14 100644 --- a/src/patches/ha-hls-player.ts +++ b/src/patches/ha-hls-player.ts @@ -9,7 +9,7 @@ // available as compilation time. // ==================================================================== -import { css, CSSResultGroup, html, TemplateResult, unsafeCSS } from 'lit'; +import { css, html, unsafeCSS, type CSSResultGroup, type TemplateResult } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { query } from 'lit/decorators/query.js'; @@ -18,7 +18,7 @@ import { MediaLoadedInfoSourceController } from '../components-lib/media-loaded- import { VideoMediaPlayerController } from '../components-lib/media-player/video.js'; import { renderNotificationBlockFromText } from '../components/notification/block.js'; import liveHAComponentsStyle from '../scss/live-ha-components.scss'; -import { MediaPlayer, MediaPlayerController } from '../types.js'; +import type { MediaPlayer, MediaPlayerController } from '../types.js'; import { mayHaveAudio } from '../utils/audio.js'; import { errorToConsole } from '../utils/basic.js'; import { @@ -31,7 +31,7 @@ import { dispatchMediaPlayEvent, dispatchMediaVolumeChangeEvent, } from '../utils/media-info.js'; -import { ConstructableLitElement } from './types.js'; +import type { ConstructableLitElement } from './types.js'; void customElements.whenDefined('ha-hls-player').then(() => { const HaHlsPlayer = customElements.get('ha-hls-player') as ConstructableLitElement; diff --git a/src/patches/ha-web-rtc-player.ts b/src/patches/ha-web-rtc-player.ts index ad707d01..481951f6 100644 --- a/src/patches/ha-web-rtc-player.ts +++ b/src/patches/ha-web-rtc-player.ts @@ -9,7 +9,7 @@ // available as compilation time. // ==================================================================== -import { css, CSSResultGroup, html, TemplateResult, unsafeCSS } from 'lit'; +import { css, html, unsafeCSS, type CSSResultGroup, type TemplateResult } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { ifDefined } from 'lit/directives/if-defined.js'; @@ -18,11 +18,11 @@ import { MediaLoadedInfoSourceController } from '../components-lib/media-loaded- import { VideoMediaPlayerController } from '../components-lib/media-player/video.js'; import { renderNotificationBlockFromText } from '../components/notification/block.js'; import liveHAComponentsStyle from '../scss/live-ha-components.scss'; -import { MediaPlayer, MediaPlayerController } from '../types.js'; +import type { MediaPlayer, MediaPlayerController } from '../types.js'; import { addAudioTracksMuteStateListener, - AudioTracksMuteStateCleanup, hasAudio, + type AudioTracksMuteStateCleanup, } from '../utils/audio.js'; import { hideMediaControlsTemporarily, @@ -34,7 +34,7 @@ import { dispatchMediaPlayEvent, dispatchMediaVolumeChangeEvent, } from '../utils/media-info.js'; -import { ConstructableLitElement } from './types.js'; +import type { ConstructableLitElement } from './types.js'; void customElements.whenDefined('ha-web-rtc-player').then(() => { const HaWebRtcPlayer = customElements.get( diff --git a/src/patches/types.ts b/src/patches/types.ts index 802d29c4..f4fb28ae 100644 --- a/src/patches/types.ts +++ b/src/patches/types.ts @@ -1,4 +1,4 @@ -import { LitElement } from 'lit'; +import type { LitElement } from 'lit'; export interface ConstructableLitElement { new (...args: unknown[]): LitElement; diff --git a/src/query-source.ts b/src/query-source.ts index 5c2215ae..dd991ed7 100644 --- a/src/query-source.ts +++ b/src/query-source.ts @@ -1,4 +1,4 @@ -import { Severity } from './severity'; +import type { Severity } from './severity'; export enum QuerySource { // Camera queries are handled by CameraManager. diff --git a/src/utils/action.ts b/src/utils/action.ts index 75392777..799168b4 100644 --- a/src/utils/action.ts +++ b/src/utils/action.ts @@ -1,48 +1,51 @@ -import { CardActionsAPI } from '../card-controller/types.js'; -import { ZoomSettingsBase } from '../components-lib/zoom/types.js'; -import { CallAnswerActionConfig } from '../config/schema/actions/custom/call-answer.js'; -import { CallEndActionConfig } from '../config/schema/actions/custom/call-end.js'; -import { CallStartActionConfig } from '../config/schema/actions/custom/call-start.js'; -import { CameraSelectActionConfig } from '../config/schema/actions/custom/camera-select.js'; -import { DisplayModeActionConfig } from '../config/schema/actions/custom/display-mode.js'; -import { +import type { CardActionsAPI } from '../card-controller/types.js'; +import type { ZoomSettingsBase } from '../components-lib/zoom/types.js'; +import type { CallAnswerActionConfig } from '../config/schema/actions/custom/call-answer.js'; +import type { CallEndActionConfig } from '../config/schema/actions/custom/call-end.js'; +import type { CallStartActionConfig } from '../config/schema/actions/custom/call-start.js'; +import type { CameraSelectActionConfig } from '../config/schema/actions/custom/camera-select.js'; +import type { DisplayModeActionConfig } from '../config/schema/actions/custom/display-mode.js'; +import type { EffectAction, EffectActionConfig, } from '../config/schema/actions/custom/effect.js'; -import { +import type { AdvancedCameraCardGeneralAction, GeneralActionConfig, } from '../config/schema/actions/custom/general.js'; import { INTERNAL_CALLBACK_ACTION, - InternalCallbackActionConfig, + type InternalCallbackActionConfig, } from '../config/schema/actions/custom/internal.js'; -import { LogActionConfig, LogActionLevel } from '../config/schema/actions/custom/log.js'; -import { MediaPlayerActionConfig } from '../config/schema/actions/custom/media-player.js'; -import { PTZControlsActionConfig } from '../config/schema/actions/custom/ptz-controls.js'; -import { PTZDigitialActionConfig } from '../config/schema/actions/custom/ptz-digital.js'; -import { PTZMultiActionConfig } from '../config/schema/actions/custom/ptz-multi.js'; -import { +import type { + LogActionConfig, + LogActionLevel, +} from '../config/schema/actions/custom/log.js'; +import type { MediaPlayerActionConfig } from '../config/schema/actions/custom/media-player.js'; +import type { PTZControlsActionConfig } from '../config/schema/actions/custom/ptz-controls.js'; +import type { PTZDigitialActionConfig } from '../config/schema/actions/custom/ptz-digital.js'; +import type { PTZMultiActionConfig } from '../config/schema/actions/custom/ptz-multi.js'; +import type { PTZAction, PTZActionConfig, PTZActionPhase, } from '../config/schema/actions/custom/ptz.js'; -import { SetReviewActionConfig } from '../config/schema/actions/custom/set-review.js'; -import { SubstreamOffActionConfig } from '../config/schema/actions/custom/substream-off.js'; -import { SubstreamOnActionConfig } from '../config/schema/actions/custom/substream-on.js'; -import { ViewActionConfig } from '../config/schema/actions/custom/view.js'; -import { PerformActionActionConfig } from '../config/schema/actions/stock/perform-action.js'; +import type { SetReviewActionConfig } from '../config/schema/actions/custom/set-review.js'; +import type { SubstreamOffActionConfig } from '../config/schema/actions/custom/substream-off.js'; +import type { SubstreamOnActionConfig } from '../config/schema/actions/custom/substream-on.js'; +import type { ViewActionConfig } from '../config/schema/actions/custom/view.js'; +import type { PerformActionActionConfig } from '../config/schema/actions/stock/perform-action.js'; import { - ActionConfig, - Actions, - AdvancedCameraCardCustomActionConfig, - IfActionConfig, - NotificationActionConfig, + type ActionConfig, + type Actions, + type AdvancedCameraCardCustomActionConfig, + type IfActionConfig, type Notification, + type NotificationActionConfig, } from '../config/schema/actions/types.js'; -import { AdvancedCameraCardUserSpecifiedView } from '../config/schema/common/const.js'; -import { PTZControlType } from '../config/schema/common/controls/ptz.js'; -import { ServiceCallRequest } from '../ha/types.js'; +import type { AdvancedCameraCardUserSpecifiedView } from '../config/schema/common/const.js'; +import type { PTZControlType } from '../config/schema/common/controls/ptz.js'; +import type { ServiceCallRequest } from '../ha/types.js'; import type { EffectName } from '../types.js'; import { arrayify } from './basic.js'; diff --git a/src/utils/basic.ts b/src/utils/basic.ts index 1897ca2e..2c63ceb7 100644 --- a/src/utils/basic.ts +++ b/src/utils/basic.ts @@ -4,7 +4,7 @@ import { differenceInSeconds, format, } from 'date-fns'; -import { StyleInfo } from 'lit/directives/style-map'; +import type { StyleInfo } from 'lit/directives/style-map'; import { isEqualWith, mergeWith, round, uniq } from 'lodash-es'; import { AdvancedCameraCardError } from '../types'; diff --git a/src/utils/camera.ts b/src/utils/camera.ts index 8190b797..f17b2285 100644 --- a/src/utils/camera.ts +++ b/src/utils/camera.ts @@ -1,5 +1,5 @@ -import { CameraConfig } from '../config/schema/cameras'; -import { RawAdvancedCameraCardConfig } from '../config/types'; +import type { CameraConfig } from '../config/schema/cameras'; +import type { RawAdvancedCameraCardConfig } from '../config/types'; /** * Get a camera id. diff --git a/src/utils/debug.ts b/src/utils/debug.ts index 692238d1..225da425 100644 --- a/src/utils/debug.ts +++ b/src/utils/debug.ts @@ -1,4 +1,4 @@ -import { CardWideConfig } from '../config/schema/types'; +import type { CardWideConfig } from '../config/schema/types'; export const log = (cardWideConfig?: CardWideConfig | null, ...args: unknown[]) => { if (cardWideConfig?.debug?.logging) { diff --git a/src/utils/diagnostics.ts b/src/utils/diagnostics.ts index c350dd3c..8fd7470b 100644 --- a/src/utils/diagnostics.ts +++ b/src/utils/diagnostics.ts @@ -1,10 +1,10 @@ import pkg from '../../package.json'; -import { IssueKey, IssuePresence } from '../card-controller/issues/types'; -import { RawAdvancedCameraCardConfig } from '../config/types'; +import type { IssueKey, IssuePresence } from '../card-controller/issues/types'; +import type { RawAdvancedCameraCardConfig } from '../config/types'; import { getIntegrationManifest } from '../ha/integration'; -import { IntegrationManifest } from '../ha/integration/types'; -import { DeviceRegistryManager } from '../ha/registry/device'; -import { HomeAssistant } from '../ha/types'; +import type { IntegrationManifest } from '../ha/integration/types'; +import type { DeviceRegistryManager } from '../ha/registry/device'; +import type { HomeAssistant } from '../ha/types'; import { HASS_WEB_PROXY_DOMAIN } from '../ha/web-proxy'; import { getLanguage } from '../localize/localize'; diff --git a/src/utils/embla/carousel-controller.ts b/src/utils/embla/carousel-controller.ts index 88ac0006..168f9728 100644 --- a/src/utils/embla/carousel-controller.ts +++ b/src/utils/embla/carousel-controller.ts @@ -1,12 +1,15 @@ -import EmblaCarousel, { EmblaCarouselType } from 'embla-carousel'; +import EmblaCarousel, { type EmblaCarouselType } from 'embla-carousel'; import { WheelGesturesPlugin } from 'embla-carousel-wheel-gestures'; -import { CreatePluginType, LoosePluginType } from 'embla-carousel/components/Plugins'; +import type { + CreatePluginType, + LoosePluginType, +} from 'embla-carousel/components/Plugins'; import { isEqual } from 'lodash-es'; -import { TransitionEffect } from '../../config/schema/common/transition-effect.js'; +import type { TransitionEffect } from '../../config/schema/common/transition-effect.js'; import { getChildrenFromElement } from '../basic.js'; import { fireAdvancedCameraCardEvent } from '../fire-advanced-camera-card-event'; -import { TextDirection } from '../text-direction'; +import type { TextDirection } from '../text-direction'; export interface CarouselSelected { index: number; diff --git a/src/utils/find-best-media-time-index.ts b/src/utils/find-best-media-time-index.ts index a0ff942b..216384f9 100644 --- a/src/utils/find-best-media-time-index.ts +++ b/src/utils/find-best-media-time-index.ts @@ -1,4 +1,4 @@ -import { ViewItem } from '../view/item'; +import type { ViewItem } from '../view/item'; import { ViewItemClassifier } from '../view/item-classifier'; /** diff --git a/src/utils/folder.ts b/src/utils/folder.ts index 46adff7f..433de878 100644 --- a/src/utils/folder.ts +++ b/src/utils/folder.ts @@ -1,5 +1,5 @@ -import { FolderConfig } from '../config/schema/folders'; -import { RawAdvancedCameraCardConfig } from '../config/types'; +import type { FolderConfig } from '../config/schema/folders'; +import type { RawAdvancedCameraCardConfig } from '../config/types'; /** * Get a folder id. diff --git a/src/utils/interaction-mode.ts b/src/utils/interaction-mode.ts index 4d27ee05..bdfe71fd 100644 --- a/src/utils/interaction-mode.ts +++ b/src/utils/interaction-mode.ts @@ -1,4 +1,4 @@ -import { InteractionMode } from '../config/schema/view'; +import type { InteractionMode } from '../config/schema/view'; export const isActionAllowedBasedOnInteractionState = ( interactionMode: InteractionMode, diff --git a/src/utils/live-provider.ts b/src/utils/live-provider.ts index 13ec43d8..bbd638e7 100644 --- a/src/utils/live-provider.ts +++ b/src/utils/live-provider.ts @@ -1,9 +1,9 @@ import { supports2WayAudio as gortcSupports2WayAudio } from '../camera-manager/utils/go2rtc/audio'; -import { CameraConfig } from '../config/schema/cameras'; -import { LiveProvider } from '../config/schema/cameras.js'; -import { EnabledProxyConfig } from '../config/schema/common/proxy'; -import { HomeAssistant } from '../ha/types'; -import { Endpoint } from '../types'; +import type { CameraConfig } from '../config/schema/cameras'; +import type { LiveProvider } from '../config/schema/cameras.js'; +import type { EnabledProxyConfig } from '../config/schema/common/proxy'; +import type { HomeAssistant } from '../ha/types'; +import type { Endpoint } from '../types'; export const getResolvedLiveProvider = ( config: CameraConfig | undefined, diff --git a/src/utils/media-actions.ts b/src/utils/media-actions.ts index d1f11a67..c097dd59 100644 --- a/src/utils/media-actions.ts +++ b/src/utils/media-actions.ts @@ -1,7 +1,7 @@ -import { ViewItemManager } from '../card-controller/view/item-manager'; +import type { ViewItemManager } from '../card-controller/view/item-manager'; import { RemoveContextViewModifier } from '../card-controller/view/modifiers/remove-context'; -import { ViewManagerEpoch } from '../card-controller/view/types'; -import { ViewItem } from '../view/item'; +import type { ViewManagerEpoch } from '../card-controller/view/types'; +import type { ViewItem } from '../view/item'; import { ViewItemClassifier } from '../view/item-classifier'; import { errorToConsole } from './basic'; diff --git a/src/utils/media-info.ts b/src/utils/media-info.ts index e7382206..ef48706b 100644 --- a/src/utils/media-info.ts +++ b/src/utils/media-info.ts @@ -1,4 +1,4 @@ -import { +import type { MediaLoadedCapabilities, MediaLoadedInfo, MediaPlayerController, diff --git a/src/utils/media-layout.ts b/src/utils/media-layout.ts index 2adde991..e53c1896 100644 --- a/src/utils/media-layout.ts +++ b/src/utils/media-layout.ts @@ -1,4 +1,4 @@ -import { MediaLayoutConfig } from '../config/schema/camera/media-layout'; +import type { MediaLayoutConfig } from '../config/schema/camera/media-layout'; import { setOrRemoveStyleProperty } from './basic'; /** diff --git a/src/utils/ptz.ts b/src/utils/ptz.ts index 0b4c83ff..d0644307 100644 --- a/src/utils/ptz.ts +++ b/src/utils/ptz.ts @@ -1,9 +1,9 @@ -import { CameraManager } from '../camera-manager/manager'; -import { PTZAction } from '../config/schema/actions/custom/ptz'; -import { PTZCapabilities } from '../types'; +import type { CameraManager } from '../camera-manager/manager'; +import type { PTZAction } from '../config/schema/actions/custom/ptz'; +import type { PTZCapabilities } from '../types'; import { getStreamCameraID } from '../view/substream'; import { getViewTargetID } from '../view/target-id'; -import { View } from '../view/view'; +import type { View } from '../view/view'; export type PTZType = 'digital' | 'ptz'; interface PTZTarget { diff --git a/src/utils/retry-timer.ts b/src/utils/retry-timer.ts index 5d815baa..0ae83c03 100644 --- a/src/utils/retry-timer.ts +++ b/src/utils/retry-timer.ts @@ -1,4 +1,7 @@ -import { ExponentialBackoff, ExponentialBackoffOptions } from './exponential-backoff'; +import { + ExponentialBackoff, + type ExponentialBackoffOptions, +} from './exponential-backoff'; import { Timer } from './timer'; // Expand a plain `number` (fixed delay in seconds) into the equivalent diff --git a/src/utils/review.ts b/src/utils/review.ts index 344396ce..186b13ae 100644 --- a/src/utils/review.ts +++ b/src/utils/review.ts @@ -1,4 +1,4 @@ -import { ViewItem } from '../view/item'; +import type { ViewItem } from '../view/item'; export interface CardMediaReviewEventTarget extends EventTarget { addEventListener( diff --git a/src/utils/screenshot.ts b/src/utils/screenshot.ts index dbc55728..0f187cc6 100644 --- a/src/utils/screenshot.ts +++ b/src/utils/screenshot.ts @@ -1,6 +1,6 @@ import { format } from 'date-fns'; -import { View } from '../view/view'; +import type { View } from '../view/view'; export const screenshotImage = (image: HTMLImageElement): string | null => { return screenshotElement(image, image.naturalWidth, image.naturalHeight); diff --git a/src/utils/scroll.ts b/src/utils/scroll.ts index 6c6623bc..9271526c 100644 --- a/src/utils/scroll.ts +++ b/src/utils/scroll.ts @@ -1,4 +1,4 @@ -import { compute as computeScroll, Options } from 'compute-scroll-into-view'; +import { compute as computeScroll, type Options } from 'compute-scroll-into-view'; // Alternative to the stock element.scrollIntoView that suppports limiting // scrolling to a boundary, rather than the entire browser root. diff --git a/src/utils/task.ts b/src/utils/task.ts index aa82af34..7cd8703d 100644 --- a/src/utils/task.ts +++ b/src/utils/task.ts @@ -1,8 +1,8 @@ -import { Task } from '@lit-labs/task'; -import { html, TemplateResult } from 'lit'; +import type { Task } from '@lit-labs/task'; +import { html, type TemplateResult } from 'lit'; import { renderProgressIndicator } from '../components/progress-indicator'; -import { CardWideConfig } from '../config/schema/types'; +import type { CardWideConfig } from '../config/schema/types'; import { errorToConsole } from './basic'; /** diff --git a/src/utils/thumbnail.ts b/src/utils/thumbnail.ts index 84332e69..f0aaa008 100644 --- a/src/utils/thumbnail.ts +++ b/src/utils/thumbnail.ts @@ -1,7 +1,7 @@ import { Task } from '@lit-labs/task'; -import { ReactiveControllerHost } from '@lit/reactive-element'; +import type { ReactiveControllerHost } from '@lit/reactive-element'; -import { HomeAssistant } from '../ha/types'; +import type { HomeAssistant } from '../ha/types'; // See: https://github.com/sindresorhus/is-absolute-url // Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 diff --git a/src/view/item-classifier.ts b/src/view/item-classifier.ts index 558edc73..1cf21e5d 100644 --- a/src/view/item-classifier.ts +++ b/src/view/item-classifier.ts @@ -1,10 +1,10 @@ import { - EventViewMedia, - RecordingViewMedia, - ReviewViewMedia, ViewFolder, - ViewItem, ViewMedia, + type EventViewMedia, + type RecordingViewMedia, + type ReviewViewMedia, + type ViewItem, } from './item'; export class ViewItemClassifier { diff --git a/src/view/item.ts b/src/view/item.ts index ad793c3e..b9a42346 100644 --- a/src/view/item.ts +++ b/src/view/item.ts @@ -1,8 +1,8 @@ import { clone } from 'lodash-es'; -import { FolderPathComponent } from '../card-controller/folders/types'; -import { FolderConfig } from '../config/schema/folders'; -import { Severity } from '../severity'; +import type { FolderPathComponent } from '../card-controller/folders/types'; +import type { FolderConfig } from '../config/schema/folders'; +import type { Severity } from '../severity'; export enum ViewMediaType { Clip = 'clip', diff --git a/src/view/query-results.ts b/src/view/query-results.ts index ccc87ca5..3ee1193a 100644 --- a/src/view/query-results.ts +++ b/src/view/query-results.ts @@ -1,6 +1,6 @@ import { isSuperset } from '../utils/basic.js'; import { ViewItemClassifier } from './item-classifier.js'; -import { ViewItem } from './item.js'; +import type { ViewItem } from './item.js'; type CameraResultSlices = Map; type SelectApproach = 'first' | 'last'; diff --git a/src/view/substream.ts b/src/view/substream.ts index 72b9b65a..5344d019 100644 --- a/src/view/substream.ts +++ b/src/view/substream.ts @@ -1,4 +1,4 @@ -import { View } from './view'; +import type { View } from './view'; // Resolves the engaged stream for a camera: its substream override if one is // set in `live.overrides`, otherwise the camera itself. `cameraID` defaults to diff --git a/src/view/target-id.ts b/src/view/target-id.ts index 1c0874a5..f415438a 100644 --- a/src/view/target-id.ts +++ b/src/view/target-id.ts @@ -1,4 +1,4 @@ -import { View } from './view'; +import type { View } from './view'; // Synthetic target ID used for the image view. The image view has no natural // per-display identifier (unlike live, which has a camera ID, or the viewer, diff --git a/src/view/unified-query-builder.ts b/src/view/unified-query-builder.ts index d7d738ba..3474043a 100644 --- a/src/view/unified-query-builder.ts +++ b/src/view/unified-query-builder.ts @@ -1,21 +1,21 @@ -import { NonEmptyTuple } from 'type-fest'; +import type { NonEmptyTuple } from 'type-fest'; -import { CameraManager } from '../camera-manager/manager'; +import type { CameraManager } from '../camera-manager/manager'; import { - CapabilitySearchKeys, - EventQuery, QueryType, - RecordingQuery, - ReviewQuery, + type CapabilitySearchKeys, + type EventQuery, + type RecordingQuery, + type ReviewQuery, } from '../camera-manager/types'; -import { FoldersManager } from '../card-controller/folders/manager'; -import { FolderPathComponent, FolderQuery } from '../card-controller/folders/types'; -import { CameraMediaType } from '../config/schema/cameras'; -import { FolderConfig } from '../config/schema/folders'; -import { QueryFilters, QuerySource } from '../query-source.js'; -import { VIEW_MEDIA_TYPES, ViewMediaType } from '../types'; +import type { FoldersManager } from '../card-controller/folders/manager'; +import type { FolderPathComponent, FolderQuery } from '../card-controller/folders/types'; +import type { CameraMediaType } from '../config/schema/cameras'; +import type { FolderConfig } from '../config/schema/folders'; +import { QuerySource, type QueryFilters } from '../query-source.js'; +import { VIEW_MEDIA_TYPES, type ViewMediaType } from '../types'; import { arrayify } from '../utils/basic'; -import { QueryNode, UnifiedQuery } from '../view/unified-query'; +import { UnifiedQuery, type QueryNode } from '../view/unified-query'; import { getReviewedQueryFilterFromConfig } from './utils/query-filter'; interface MediaQueryBuildOptions extends QueryFilters { diff --git a/src/view/unified-query-runner.ts b/src/view/unified-query-runner.ts index 1fca8e5a..c59d50b9 100644 --- a/src/view/unified-query-runner.ts +++ b/src/view/unified-query-runner.ts @@ -1,7 +1,7 @@ -import { CameraManager } from '../camera-manager/manager'; -import { FoldersManager } from '../card-controller/folders/manager'; -import { ConditionStateManagerReadonlyInterface } from '../condition-trigger/conditions/types'; -import { ViewItem } from '../view/item'; +import type { CameraManager } from '../camera-manager/manager'; +import type { FoldersManager } from '../card-controller/folders/manager'; +import type { ConditionStateManagerReadonlyInterface } from '../condition-trigger/conditions/types'; +import type { ViewItem } from '../view/item'; import { UnifiedQuery } from '../view/unified-query'; interface QueryRunnerOptions { diff --git a/src/view/unified-query.ts b/src/view/unified-query.ts index b04e2658..f673cb79 100644 --- a/src/view/unified-query.ts +++ b/src/view/unified-query.ts @@ -2,10 +2,10 @@ import cloneDeep from 'lodash-es/cloneDeep.js'; import isEqual from 'lodash-es/isEqual.js'; import omit from 'lodash-es/omit.js'; -import { EventQuery, MediaQuery, QueryType } from '../camera-manager/types.js'; -import { FolderQuery } from '../card-controller/folders/types.js'; +import { QueryType, type EventQuery, type MediaQuery } from '../camera-manager/types.js'; +import type { FolderQuery } from '../card-controller/folders/types.js'; import { QuerySource } from '../query-source.js'; -import { ViewMediaType } from '../types.js'; +import type { ViewMediaType } from '../types.js'; export type QueryNode = MediaQuery | FolderQuery; diff --git a/src/view/utils/query-filter.ts b/src/view/utils/query-filter.ts index 4bfb7012..bcad8b94 100644 --- a/src/view/utils/query-filter.ts +++ b/src/view/utils/query-filter.ts @@ -1,7 +1,7 @@ -import { CameraMediaReviewedFilter } from '../../config/schema/cameras'; -import { ViewItem } from '../item'; +import type { CameraMediaReviewedFilter } from '../../config/schema/cameras'; +import type { ViewItem } from '../item'; import { ViewItemClassifier } from '../item-classifier'; -import { UnifiedQuery } from '../unified-query'; +import type { UnifiedQuery } from '../unified-query'; /** * Get the reviewed filter from a query for a specific item. diff --git a/src/view/utils/resolve-default.ts b/src/view/utils/resolve-default.ts index f047a3b4..a047d089 100644 --- a/src/view/utils/resolve-default.ts +++ b/src/view/utils/resolve-default.ts @@ -1,6 +1,6 @@ -import { CameraManager } from '../../camera-manager/manager'; -import { FoldersManager } from '../../card-controller/folders/manager'; -import { +import type { CameraManager } from '../../camera-manager/manager'; +import type { FoldersManager } from '../../card-controller/folders/manager'; +import type { AdvancedCameraCardUserSpecifiedView, AdvancedCameraCardView, } from '../../config/schema/common/const'; diff --git a/src/view/view-support.ts b/src/view/view-support.ts index b5f5ee64..2c008994 100644 --- a/src/view/view-support.ts +++ b/src/view/view-support.ts @@ -1,7 +1,10 @@ -import { CameraManager } from '../camera-manager/manager'; -import { CapabilitySearchKeys, CapabilitySearchOptions } from '../camera-manager/types'; -import { FoldersManager } from '../card-controller/folders/manager'; -import { AdvancedCameraCardView } from '../config/schema/common/const'; +import type { CameraManager } from '../camera-manager/manager'; +import type { + CapabilitySearchKeys, + CapabilitySearchOptions, +} from '../camera-manager/types'; +import type { FoldersManager } from '../card-controller/folders/manager'; +import type { AdvancedCameraCardView } from '../config/schema/common/const'; type ViewSource = 'camera' | 'folder' | 'any'; diff --git a/src/view/view.ts b/src/view/view.ts index 11a28e65..68094ea2 100644 --- a/src/view/view.ts +++ b/src/view/view.ts @@ -1,11 +1,11 @@ import { cloneDeep, merge } from 'lodash-es'; -import { ViewContext } from 'view'; +import type { ViewContext } from 'view'; -import { AdvancedCameraCardView } from '../config/schema/common/const'; -import { ViewDisplayMode } from '../config/schema/common/display'; -import { ViewMediaType } from '../types'; -import { QueryResults } from './query-results'; -import { UnifiedQuery } from './unified-query'; +import type { AdvancedCameraCardView } from '../config/schema/common/const'; +import type { ViewDisplayMode } from '../config/schema/common/display'; +import type { ViewMediaType } from '../types'; +import type { QueryResults } from './query-results'; +import type { UnifiedQuery } from './unified-query'; declare module 'view' { interface ViewContext { diff --git a/tests/action-handler-directive.test.ts b/tests/action-handler-directive.test.ts index ff168042..84c0c6a8 100644 --- a/tests/action-handler-directive.test.ts +++ b/tests/action-handler-directive.test.ts @@ -1,9 +1,12 @@ import { html, render } from 'lit'; import { afterEach, describe, expect, it, vi } from 'vitest'; -import { actionHandler, ActionHandlerInterface } from '../src/action-handler-directive'; +import { + actionHandler, + type ActionHandlerInterface, +} from '../src/action-handler-directive'; import { fireHASSEvent } from '../src/ha/fire-hass-event'; -import { ActionHandlerDetail } from '../src/ha/types'; +import type { ActionHandlerDetail } from '../src/ha/types'; import { stopEventFromActivatingCardWideActions } from '../src/utils/action'; vi.mock('../src/ha/fire-hass-event.js'); diff --git a/tests/camera-manager/browse-media/engine-browse-media.test.ts b/tests/camera-manager/browse-media/engine-browse-media.test.ts index 0f97fbc1..3ab8822d 100644 --- a/tests/camera-manager/browse-media/engine-browse-media.test.ts +++ b/tests/camera-manager/browse-media/engine-browse-media.test.ts @@ -2,17 +2,17 @@ import { describe, expect, it } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { BrowseMediaCameraManagerEngine } from '../../../src/camera-manager/browse-media/engine-browse-media'; -import { CameraManagerReadOnlyConfigStore } from '../../../src/camera-manager/store'; +import type { CameraManagerReadOnlyConfigStore } from '../../../src/camera-manager/store'; import { CameraManagerRequestCache, - CameraQuery, QueryType, + type CameraQuery, } from '../../../src/camera-manager/types'; import { BROWSE_MEDIA_CACHE_SECONDS } from '../../../src/ha/browse-media/types'; import { BrowseMediaWalker } from '../../../src/ha/browse-media/walker'; import { ResolvedMediaCache } from '../../../src/ha/resolved-media'; import { QuerySource } from '../../../src/query-source'; -import { ViewMedia } from '../../../src/view/item'; +import type { ViewMedia } from '../../../src/view/item'; import { EntityRegistryManagerMock } from '../../ha/registry/entity/mock'; import { createCameraConfig, createHASS, createHASSManager } from '../../test-utils'; diff --git a/tests/camera-manager/cache.test.ts b/tests/camera-manager/cache.test.ts index 290e6f5a..28dfd868 100644 --- a/tests/camera-manager/cache.test.ts +++ b/tests/camera-manager/cache.test.ts @@ -3,16 +3,16 @@ import { sortBy } from 'lodash-es'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import { RecordingSegmentsCache } from '../../src/camera-manager/cache.js'; -import { DateRange } from '../../src/camera-manager/range.js'; +import type { DateRange } from '../../src/camera-manager/range.js'; import { CameraManagerRequestCache, - CameraQuery, Engine, - EventQuery, QueryResultsType, - QueryReturnType, QueryType, - RecordingSegment, + type CameraQuery, + type EventQuery, + type QueryReturnType, + type RecordingSegment, } from '../../src/camera-manager/types.js'; describe('MemoryRequestCache', () => { diff --git a/tests/camera-manager/camera.test.ts b/tests/camera-manager/camera.test.ts index 45e0ffb6..a6d5edbf 100644 --- a/tests/camera-manager/camera.test.ts +++ b/tests/camera-manager/camera.test.ts @@ -3,9 +3,9 @@ import { mock } from 'vitest-mock-extended'; import { Camera } from '../../src/camera-manager/camera.js'; import { GenericCameraManagerEngine } from '../../src/camera-manager/generic/engine-generic.js'; -import { CameraProxyConfig } from '../../src/camera-manager/types.js'; -import { EventWatcherSubscriptionInterface } from '../../src/card-controller/hass/event-watcher.js'; -import { StateWatcherSubscriptionInterface } from '../../src/card-controller/hass/state-watcher.js'; +import type { CameraProxyConfig } from '../../src/camera-manager/types.js'; +import type { EventWatcherSubscriptionInterface } from '../../src/card-controller/hass/event-watcher.js'; +import type { StateWatcherSubscriptionInterface } from '../../src/card-controller/hass/state-watcher.js'; import { liveProviderSupports2WayAudio } from '../../src/utils/live-provider.js'; import { EntityRegistryManagerMock } from '../ha/registry/entity/mock.js'; import { diff --git a/tests/camera-manager/capabilities.test.ts b/tests/camera-manager/capabilities.test.ts index 5aa50d3d..35cb93f0 100644 --- a/tests/camera-manager/capabilities.test.ts +++ b/tests/camera-manager/capabilities.test.ts @@ -2,10 +2,10 @@ import { describe, expect, it } from 'vitest'; import { Capabilities } from '../../src/camera-manager/capabilities'; import { - CapabilityKey, capabilityKeys, - PTZCapabilities, PTZMovementType, + type CapabilityKey, + type PTZCapabilities, } from '../../src/types'; describe('Capabilities', () => { diff --git a/tests/camera-manager/engine-factory.test.ts b/tests/camera-manager/engine-factory.test.ts index 50d35abe..c20587b8 100644 --- a/tests/camera-manager/engine-factory.test.ts +++ b/tests/camera-manager/engine-factory.test.ts @@ -8,10 +8,10 @@ import { MotionEyeCameraManagerEngine } from '../../src/camera-manager/motioneye import { ReolinkCameraManagerEngine } from '../../src/camera-manager/reolink/engine-reolink.js'; import { TPLinkCameraManagerEngine } from '../../src/camera-manager/tplink/engine-tplink.js'; import { Engine } from '../../src/camera-manager/types.js'; -import { CardWideConfig } from '../../src/config/schema/types.js'; -import { DeviceRegistryManager } from '../../src/ha/registry/device'; -import { EntityRegistryManager } from '../../src/ha/registry/entity/types.js'; -import { ResolvedMediaCache } from '../../src/ha/resolved-media.js'; +import type { CardWideConfig } from '../../src/config/schema/types.js'; +import type { DeviceRegistryManager } from '../../src/ha/registry/device'; +import type { EntityRegistryManager } from '../../src/ha/registry/entity/types.js'; +import type { ResolvedMediaCache } from '../../src/ha/resolved-media.js'; import { EntityRegistryManagerMock } from '../ha/registry/entity/mock.js'; import { createCameraConfig, diff --git a/tests/camera-manager/frigate/camera.test.ts b/tests/camera-manager/frigate/camera.test.ts index 453f695e..69cc374b 100644 --- a/tests/camera-manager/frigate/camera.test.ts +++ b/tests/camera-manager/frigate/camera.test.ts @@ -2,7 +2,7 @@ import { format } from 'date-fns'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManagerEngine } from '../../../src/camera-manager/engine'; +import type { CameraManagerEngine } from '../../../src/camera-manager/engine'; import { FrigateCamera } from '../../../src/camera-manager/frigate/camera'; import { FrigateEventViewMedia, @@ -11,17 +11,20 @@ import { import { getPTZInfo } from '../../../src/camera-manager/frigate/requests'; import { eventSchema, - FrigateEventChange, - FrigateReviewChange, + type FrigateEventChange, + type FrigateReviewChange, } from '../../../src/camera-manager/frigate/types'; -import { +import type { FrigateEventWatcher, FrigateReviewWatcher, } from '../../../src/camera-manager/frigate/watcher'; -import { ActionsExecutor } from '../../../src/card-controller/actions/types'; -import { PTZAction } from '../../../src/config/schema/actions/custom/ptz'; -import { CameraTriggerMediaEventType } from '../../../src/config/schema/cameras'; -import { Entity, EntityRegistryManager } from '../../../src/ha/registry/entity/types'; +import type { ActionsExecutor } from '../../../src/card-controller/actions/types'; +import type { PTZAction } from '../../../src/config/schema/actions/custom/ptz'; +import type { CameraTriggerMediaEventType } from '../../../src/config/schema/cameras'; +import type { + Entity, + EntityRegistryManager, +} from '../../../src/ha/registry/entity/types'; import { ViewMediaType } from '../../../src/view/item'; import { EntityRegistryManagerMock } from '../../ha/registry/entity/mock'; import { diff --git a/tests/camera-manager/frigate/engine-frigate.test.ts b/tests/camera-manager/frigate/engine-frigate.test.ts index b709637a..d697b7a1 100644 --- a/tests/camera-manager/frigate/engine-frigate.test.ts +++ b/tests/camera-manager/frigate/engine-frigate.test.ts @@ -22,7 +22,7 @@ import { retainEvent, setReviewsReviewed, } from '../../../src/camera-manager/frigate/requests'; -import { +import type { FrigateEventQueryResults, FrigateRecordingQueryResults, FrigateReviewQueryResults, @@ -33,10 +33,10 @@ import { QueryResultsType, QueryType, } from '../../../src/camera-manager/types'; -import { CameraConfig } from '../../../src/config/schema/cameras'; -import { RawAdvancedCameraCardConfig } from '../../../src/config/types'; +import type { CameraConfig } from '../../../src/config/schema/cameras'; +import type { RawAdvancedCameraCardConfig } from '../../../src/config/types'; import { QuerySource } from '../../../src/query-source'; -import { Severity } from '../../../src/severity'; +import type { Severity } from '../../../src/severity'; import { ViewMedia, ViewMediaType } from '../../../src/view/item'; import { EntityRegistryManagerMock } from '../../ha/registry/entity/mock'; import { diff --git a/tests/camera-manager/frigate/media-classifier.test.ts b/tests/camera-manager/frigate/media-classifier.test.ts index 0a5899ee..49fd7b4b 100644 --- a/tests/camera-manager/frigate/media-classifier.test.ts +++ b/tests/camera-manager/frigate/media-classifier.test.ts @@ -7,7 +7,7 @@ import { FrigateReviewViewMedia, } from '../../../src/camera-manager/frigate/media'; import { FrigateViewMediaClassifier } from '../../../src/camera-manager/frigate/media-classifier'; -import { ViewMedia, ViewMediaType } from '../../../src/view/item'; +import { ViewMediaType, type ViewMedia } from '../../../src/view/item'; import { createFrigateEvent, createFrigateRecording, diff --git a/tests/camera-manager/frigate/requests.test.ts b/tests/camera-manager/frigate/requests.test.ts index 17c66e4c..3cf60473 100644 --- a/tests/camera-manager/frigate/requests.test.ts +++ b/tests/camera-manager/frigate/requests.test.ts @@ -11,19 +11,19 @@ import { setReviewsReviewed, } from '../../../src/camera-manager/frigate/requests'; import { - EventSummary, eventSummarySchema, - FrigateEvent, frigateEventsSchema, - FrigateReview, frigateReviewsSchema, ptzInfoSchema, recordingSegmentsSchema, recordingSummarySchema, retainResultSchema, reviewResultSchema, + type EventSummary, + type FrigateEvent, + type FrigateReview, } from '../../../src/camera-manager/frigate/types'; -import { RecordingSegment } from '../../../src/camera-manager/types'; +import type { RecordingSegment } from '../../../src/camera-manager/types'; import { homeAssistantWSRequest } from '../../../src/ha/ws-request'; import { createFrigateEvent, createHASS } from '../../test-utils'; diff --git a/tests/camera-manager/frigate/util.test.ts b/tests/camera-manager/frigate/util.test.ts index cc291405..a6894b3d 100644 --- a/tests/camera-manager/frigate/util.test.ts +++ b/tests/camera-manager/frigate/util.test.ts @@ -14,7 +14,7 @@ import { getReviewThumbnailURL, getReviewTitle, } from '../../../src/camera-manager/frigate/util'; -import { CameraConfig } from '../../../src/config/schema/cameras'; +import type { CameraConfig } from '../../../src/config/schema/cameras'; import { createCameraConfig, createFrigateEvent, diff --git a/tests/camera-manager/frigate/watcher.test.ts b/tests/camera-manager/frigate/watcher.test.ts index 6a4eab19..7da07a30 100644 --- a/tests/camera-manager/frigate/watcher.test.ts +++ b/tests/camera-manager/frigate/watcher.test.ts @@ -1,8 +1,8 @@ -import { Connection } from 'home-assistant-js-websocket'; +import type { Connection } from 'home-assistant-js-websocket'; import { afterEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { +import type { FrigateEventChange, FrigateReviewChange, } from '../../../src/camera-manager/frigate/types.js'; @@ -10,7 +10,7 @@ import { FrigateEventWatcher, FrigateReviewWatcher, } from '../../../src/camera-manager/frigate/watcher.js'; -import { HomeAssistant } from '../../../src/ha/types.js'; +import type { HomeAssistant } from '../../../src/ha/types.js'; import { createHASS, createHASSSource, flushPromises } from '../../test-utils.js'; const createEventChange = (): FrigateEventChange => { diff --git a/tests/camera-manager/generic/engine-generic.test.ts b/tests/camera-manager/generic/engine-generic.test.ts index 7699fb91..4ebcb89a 100644 --- a/tests/camera-manager/generic/engine-generic.test.ts +++ b/tests/camera-manager/generic/engine-generic.test.ts @@ -2,8 +2,8 @@ import { describe, expect, it } from 'vitest'; import { GenericCameraManagerEngine } from '../../../src/camera-manager/generic/engine-generic'; import { Engine, QueryResultsType, QueryType } from '../../../src/camera-manager/types'; -import { CameraConfig } from '../../../src/config/schema/cameras'; -import { RawAdvancedCameraCardConfig } from '../../../src/config/types'; +import type { CameraConfig } from '../../../src/config/schema/cameras'; +import type { RawAdvancedCameraCardConfig } from '../../../src/config/types'; import { QuerySource } from '../../../src/query-source'; import { createCameraConfig, diff --git a/tests/camera-manager/manager.test.ts b/tests/camera-manager/manager.test.ts index 6cf17342..0595d7c2 100644 --- a/tests/camera-manager/manager.test.ts +++ b/tests/camera-manager/manager.test.ts @@ -2,10 +2,10 @@ import { add } from 'date-fns'; import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { Camera } from '../../src/camera-manager/camera.js'; +import type { Camera } from '../../src/camera-manager/camera.js'; import { Capabilities } from '../../src/camera-manager/capabilities.js'; -import { CameraManagerEngineFactory } from '../../src/camera-manager/engine-factory.js'; -import { CameraManagerEngine } from '../../src/camera-manager/engine.js'; +import type { CameraManagerEngineFactory } from '../../src/camera-manager/engine-factory.js'; +import type { CameraManagerEngine } from '../../src/camera-manager/engine.js'; import { CameraDuplicateIDError, CameraNoEngineError, @@ -17,25 +17,25 @@ import { QueryResultClassifier, } from '../../src/camera-manager/manager.js'; import { - CameraEvent, - CameraManagerCameraMetadata, Engine, - EventQuery, - EventQueryResults, - MediaMetadata, - QueryResults, QueryResultsType, QueryType, + type CameraEvent, + type CameraManagerCameraMetadata, + type EventQuery, + type EventQueryResults, + type MediaMetadata, + type QueryResults, } from '../../src/camera-manager/types.js'; -import { CardController } from '../../src/card-controller/controller.js'; -import { StateWatcherSubscriptionInterface } from '../../src/card-controller/hass/state-watcher.js'; +import type { CardController } from '../../src/card-controller/controller.js'; +import type { StateWatcherSubscriptionInterface } from '../../src/card-controller/hass/state-watcher.js'; import { sortItems } from '../../src/card-controller/view/sort.js'; -import { CameraConfig } from '../../src/config/schema/cameras.js'; +import type { CameraConfig } from '../../src/config/schema/cameras.js'; import { advancedCameraCardConfigSchema } from '../../src/config/schema/types.js'; import { QuerySource } from '../../src/query-source.js'; -import { Endpoint, PTZMovementType } from '../../src/types.js'; -import { ViewFolder, ViewItem, ViewMedia } from '../../src/view/item.js'; -import { ViewItemCapabilities } from '../../src/view/types.js'; +import { PTZMovementType, type Endpoint } from '../../src/types.js'; +import { ViewFolder, type ViewItem, type ViewMedia } from '../../src/view/item.js'; +import type { ViewItemCapabilities } from '../../src/view/types.js'; import { createCameraConfig, createCapabilities, diff --git a/tests/camera-manager/motioneye/camera.test.ts b/tests/camera-manager/motioneye/camera.test.ts index ef54d7fe..fa005485 100644 --- a/tests/camera-manager/motioneye/camera.test.ts +++ b/tests/camera-manager/motioneye/camera.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManagerEngine } from '../../../src/camera-manager/engine'; +import type { CameraManagerEngine } from '../../../src/camera-manager/engine'; import { MotionEyeCamera } from '../../../src/camera-manager/motioneye/camera'; import { EntityRegistryManagerMock } from '../../ha/registry/entity/mock'; import { diff --git a/tests/camera-manager/motioneye/engine-motioneye.test.ts b/tests/camera-manager/motioneye/engine-motioneye.test.ts index 2e78107f..a4828c77 100644 --- a/tests/camera-manager/motioneye/engine-motioneye.test.ts +++ b/tests/camera-manager/motioneye/engine-motioneye.test.ts @@ -6,18 +6,21 @@ import { mock, type MockProxy } from 'vitest-mock-extended'; import { Camera } from '../../../src/camera-manager/camera'; import { MotionEyeCamera } from '../../../src/camera-manager/motioneye/camera'; import { MotionEyeCameraManagerEngine } from '../../../src/camera-manager/motioneye/engine-motioneye'; -import { MotionEyeEventQueryResults } from '../../../src/camera-manager/motioneye/types'; +import type { MotionEyeEventQueryResults } from '../../../src/camera-manager/motioneye/types'; import { CameraManagerStore } from '../../../src/camera-manager/store'; import { CameraManagerRequestCache, Engine, - EventQueryResults, QueryResultsType, QueryType, + type EventQueryResults, } from '../../../src/camera-manager/types'; -import { BrowseMediaMetadata } from '../../../src/ha/browse-media/types'; -import { BrowseMediaStep, BrowseMediaWalker } from '../../../src/ha/browse-media/walker'; -import { Entity } from '../../../src/ha/registry/entity/types'; +import type { BrowseMediaMetadata } from '../../../src/ha/browse-media/types'; +import { + BrowseMediaWalker, + type BrowseMediaStep, +} from '../../../src/ha/browse-media/walker'; +import type { Entity } from '../../../src/ha/registry/entity/types'; import { ResolvedMediaCache } from '../../../src/ha/resolved-media'; import { QuerySource } from '../../../src/query-source'; import { EntityRegistryManagerMock } from '../../ha/registry/entity/mock'; diff --git a/tests/camera-manager/range.test.ts b/tests/camera-manager/range.test.ts index 267df100..a3c3c722 100644 --- a/tests/camera-manager/range.test.ts +++ b/tests/camera-manager/range.test.ts @@ -3,11 +3,11 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { compressRanges, - DateRange, ExpiringMemoryRangeSet, - ExpiringRange, MemoryRangeSet, rangesOverlap, + type DateRange, + type ExpiringRange, } from '../../src/camera-manager/range.js'; describe('MemoryRangeSet', () => { diff --git a/tests/camera-manager/reolink/camera.test.ts b/tests/camera-manager/reolink/camera.test.ts index 453cf0fa..9fd4195f 100644 --- a/tests/camera-manager/reolink/camera.test.ts +++ b/tests/camera-manager/reolink/camera.test.ts @@ -1,12 +1,12 @@ import { describe, expect, it } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManagerEngine } from '../../../src/camera-manager/engine'; +import type { CameraManagerEngine } from '../../../src/camera-manager/engine'; import { ReolinkCamera } from '../../../src/camera-manager/reolink/camera'; -import { CameraProxyConfig } from '../../../src/camera-manager/types'; -import { ActionsExecutor } from '../../../src/card-controller/actions/types'; -import { DeviceRegistryManager } from '../../../src/ha/registry/device'; -import { EntityRegistryManagerLive } from '../../../src/ha/registry/entity'; +import type { CameraProxyConfig } from '../../../src/camera-manager/types'; +import type { ActionsExecutor } from '../../../src/card-controller/actions/types'; +import type { DeviceRegistryManager } from '../../../src/ha/registry/device'; +import type { EntityRegistryManagerLive } from '../../../src/ha/registry/entity'; import { EntityRegistryManagerMock } from '../../ha/registry/entity/mock'; import { createCameraConfig, diff --git a/tests/camera-manager/reolink/engine-reolink.test.ts b/tests/camera-manager/reolink/engine-reolink.test.ts index 8c056a9b..c7fed090 100644 --- a/tests/camera-manager/reolink/engine-reolink.test.ts +++ b/tests/camera-manager/reolink/engine-reolink.test.ts @@ -14,20 +14,20 @@ import { ReolinkCameraManagerEngine, ReolinkQueryResultsClassifier, } from '../../../src/camera-manager/reolink/engine-reolink'; -import { ReolinkEventQueryResults } from '../../../src/camera-manager/reolink/types'; +import type { ReolinkEventQueryResults } from '../../../src/camera-manager/reolink/types'; import { CameraManagerStore } from '../../../src/camera-manager/store'; import { CameraManagerRequestCache, Engine, - EventQuery, QueryResultsType, - QueryReturnType, QueryType, + type EventQuery, + type QueryReturnType, } from '../../../src/camera-manager/types'; -import { BrowseMedia, browseMediaSchema } from '../../../src/ha/browse-media/types'; +import { browseMediaSchema, type BrowseMedia } from '../../../src/ha/browse-media/types'; import { BrowseMediaWalker } from '../../../src/ha/browse-media/walker'; -import { DeviceRegistryManager } from '../../../src/ha/registry/device'; -import { EntityRegistryManager } from '../../../src/ha/registry/entity/types'; +import type { DeviceRegistryManager } from '../../../src/ha/registry/device'; +import type { EntityRegistryManager } from '../../../src/ha/registry/entity/types'; import { ResolvedMediaCache } from '../../../src/ha/resolved-media'; import { homeAssistantWSRequest } from '../../../src/ha/ws-request'; import { QuerySource } from '../../../src/query-source'; diff --git a/tests/camera-manager/store.test.ts b/tests/camera-manager/store.test.ts index 1f8abffa..bbc7a61f 100644 --- a/tests/camera-manager/store.test.ts +++ b/tests/camera-manager/store.test.ts @@ -6,9 +6,9 @@ import { Capabilities } from '../../src/camera-manager/capabilities.js'; import { CameraManagerEngineFactory } from '../../src/camera-manager/engine-factory.js'; import { CameraManagerStore } from '../../src/camera-manager/store.js'; import { Engine } from '../../src/camera-manager/types.js'; -import { DeviceRegistryManager } from '../../src/ha/registry/device/index.js'; -import { EntityRegistryManager } from '../../src/ha/registry/entity/types.js'; -import { ResolvedMediaCache } from '../../src/ha/resolved-media.js'; +import type { DeviceRegistryManager } from '../../src/ha/registry/device/index.js'; +import type { EntityRegistryManager } from '../../src/ha/registry/entity/types.js'; +import type { ResolvedMediaCache } from '../../src/ha/resolved-media.js'; import { createCameraConfig, createHASSManager, diff --git a/tests/camera-manager/tplink/camera.test.ts b/tests/camera-manager/tplink/camera.test.ts index 3c4316ce..bcd90e97 100644 --- a/tests/camera-manager/tplink/camera.test.ts +++ b/tests/camera-manager/tplink/camera.test.ts @@ -1,9 +1,9 @@ import { describe, expect, it } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManagerEngine } from '../../../src/camera-manager/engine'; +import type { CameraManagerEngine } from '../../../src/camera-manager/engine'; import { TPLinkCamera } from '../../../src/camera-manager/tplink/camera'; -import { ActionsExecutor } from '../../../src/card-controller/actions/types'; +import type { ActionsExecutor } from '../../../src/card-controller/actions/types'; import { EntityRegistryManagerMock } from '../../ha/registry/entity/mock'; import { createCameraConfig, diff --git a/tests/camera-manager/utils/camera-entity-from-config.test.ts b/tests/camera-manager/utils/camera-entity-from-config.test.ts index 565482ee..865e0e64 100644 --- a/tests/camera-manager/utils/camera-entity-from-config.test.ts +++ b/tests/camera-manager/utils/camera-entity-from-config.test.ts @@ -1,7 +1,10 @@ import { describe, expect, it } from 'vitest'; import { getCameraEntityFromConfig } from '../../../src/camera-manager/utils/camera-entity-from-config.js'; -import { CameraConfig, cameraConfigSchema } from '../../../src/config/schema/cameras.js'; +import { + cameraConfigSchema, + type CameraConfig, +} from '../../../src/config/schema/cameras.js'; describe('getCameraEntityFromConfig', () => { const createCameraConfig = (config: Partial): CameraConfig => { diff --git a/tests/camera-manager/utils/go2rtc-audio.test.ts b/tests/camera-manager/utils/go2rtc-audio.test.ts index d5fbd026..3adbf87d 100644 --- a/tests/camera-manager/utils/go2rtc-audio.test.ts +++ b/tests/camera-manager/utils/go2rtc-audio.test.ts @@ -3,9 +3,9 @@ import { mock } from 'vitest-mock-extended'; import { supports2WayAudio } from '../../../src/camera-manager/utils/go2rtc/audio'; import { homeAssistantSignAndFetch } from '../../../src/ha/fetch'; -import { HomeAssistant } from '../../../src/ha/types'; +import type { HomeAssistant } from '../../../src/ha/types'; import { createProxiedEndpointIfNecessary } from '../../../src/ha/web-proxy'; -import { Endpoint } from '../../../src/types'; +import type { Endpoint } from '../../../src/types'; vi.mock('../../../src/ha/fetch'); vi.mock('../../../src/ha/web-proxy'); diff --git a/tests/camera-manager/utils/ptz.test.ts b/tests/camera-manager/utils/ptz.test.ts index a3175fc4..2205614c 100644 --- a/tests/camera-manager/utils/ptz.test.ts +++ b/tests/camera-manager/utils/ptz.test.ts @@ -5,7 +5,7 @@ import { getConfiguredPTZMovementType, getPTZCapabilitiesFromCameraConfig, } from '../../../src/camera-manager/utils/ptz'; -import { PTZAction } from '../../../src/config/schema/actions/custom/ptz'; +import type { PTZAction } from '../../../src/config/schema/actions/custom/ptz'; import { createCameraConfig } from '../../test-utils'; const action = { diff --git a/tests/card-controller/actions/actions-manager.test.ts b/tests/card-controller/actions/actions-manager.test.ts index 4125d036..3fde1226 100644 --- a/tests/card-controller/actions/actions-manager.test.ts +++ b/tests/card-controller/actions/actions-manager.test.ts @@ -12,12 +12,12 @@ import { mock } from 'vitest-mock-extended'; import { ActionsManager, - Interaction, - InteractionName, + type Interaction, + type InteractionName, } from '../../../src/card-controller/actions/actions-manager'; import type { CardController } from '../../../src/card-controller/controller'; import { TemplateRenderer } from '../../../src/card-controller/templates'; -import { AdvancedCameraCardView } from '../../../src/config/schema/common/const'; +import type { AdvancedCameraCardView } from '../../../src/config/schema/common/const'; import { createInternalCallbackAction, createLogAction, diff --git a/tests/card-controller/actions/actions/mute.test.ts b/tests/card-controller/actions/actions/mute.test.ts index 89421ad6..fe022565 100644 --- a/tests/card-controller/actions/actions/mute.test.ts +++ b/tests/card-controller/actions/actions/mute.test.ts @@ -2,7 +2,7 @@ import { expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { MuteAction } from '../../../../src/card-controller/actions/actions/mute'; -import { MediaPlayerController } from '../../../../src/types'; +import type { MediaPlayerController } from '../../../../src/types'; import { createCardAPI, createMediaLoadedInfo } from '../../../test-utils'; it('should handle mute action', async () => { diff --git a/tests/card-controller/actions/actions/pause.test.ts b/tests/card-controller/actions/actions/pause.test.ts index d2d55798..892dbe8b 100644 --- a/tests/card-controller/actions/actions/pause.test.ts +++ b/tests/card-controller/actions/actions/pause.test.ts @@ -2,7 +2,7 @@ import { expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { PauseAction } from '../../../../src/card-controller/actions/actions/pause'; -import { MediaPlayerController } from '../../../../src/types'; +import type { MediaPlayerController } from '../../../../src/types'; import { createCardAPI, createMediaLoadedInfo } from '../../../test-utils'; it('should handle pause action', async () => { diff --git a/tests/card-controller/actions/actions/play.test.ts b/tests/card-controller/actions/actions/play.test.ts index a68b9a39..66aac0d3 100644 --- a/tests/card-controller/actions/actions/play.test.ts +++ b/tests/card-controller/actions/actions/play.test.ts @@ -2,7 +2,7 @@ import { expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { PlayAction } from '../../../../src/card-controller/actions/actions/play'; -import { MediaPlayerController } from '../../../../src/types'; +import type { MediaPlayerController } from '../../../../src/types'; import { createCardAPI, createMediaLoadedInfo } from '../../../test-utils'; it('should handle play action', async () => { diff --git a/tests/card-controller/actions/actions/ptz-controls.test.ts b/tests/card-controller/actions/actions/ptz-controls.test.ts index 6b7d686b..915aa7be 100644 --- a/tests/card-controller/actions/actions/ptz-controls.test.ts +++ b/tests/card-controller/actions/actions/ptz-controls.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { PTZControlsAction } from '../../../../src/card-controller/actions/actions/ptz-controls'; -import { View } from '../../../../src/view/view'; +import type { View } from '../../../../src/view/view'; import { createCardAPI } from '../../../test-utils'; describe('PTZControlsAction', () => { diff --git a/tests/card-controller/actions/actions/ptz-digital.test.ts b/tests/card-controller/actions/actions/ptz-digital.test.ts index 48f42279..2b8e3d3e 100644 --- a/tests/card-controller/actions/actions/ptz-digital.test.ts +++ b/tests/card-controller/actions/actions/ptz-digital.test.ts @@ -1,11 +1,11 @@ import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; import { PTZDigitalAction } from '../../../../src/card-controller/actions/actions/ptz-digital'; -import { +import type { PartialZoomSettings, ZoomSettingsObserved, } from '../../../../src/components-lib/zoom/types'; -import { PTZAction } from '../../../../src/config/schema/actions/custom/ptz'; +import type { PTZAction } from '../../../../src/config/schema/actions/custom/ptz'; import { createCardAPI, createView } from '../../../test-utils'; describe('should handle ptz digital action', () => { diff --git a/tests/card-controller/actions/actions/screenshot.test.ts b/tests/card-controller/actions/actions/screenshot.test.ts index 197bfb8c..be3d84f2 100644 --- a/tests/card-controller/actions/actions/screenshot.test.ts +++ b/tests/card-controller/actions/actions/screenshot.test.ts @@ -2,7 +2,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { ScreenshotAction } from '../../../../src/card-controller/actions/actions/screenshot'; -import { MediaPlayerController } from '../../../../src/types'; +import type { MediaPlayerController } from '../../../../src/types'; import { downloadURL } from '../../../../src/utils/download'; import { createCardAPI, createMediaLoadedInfo } from '../../../test-utils'; diff --git a/tests/card-controller/actions/actions/substream-off.test.ts b/tests/card-controller/actions/actions/substream-off.test.ts index 33738281..c3d88e58 100644 --- a/tests/card-controller/actions/actions/substream-off.test.ts +++ b/tests/card-controller/actions/actions/substream-off.test.ts @@ -3,7 +3,7 @@ import { describe, expect, it, vi } from 'vitest'; import { SubstreamOffAction } from '../../../../src/card-controller/actions/actions/substream-off'; import { applyViewModifiers } from '../../../../src/card-controller/view/modifiers'; import { createSubstreamOffAction } from '../../../../src/utils/action'; -import { View } from '../../../../src/view/view'; +import type { View } from '../../../../src/view/view'; import { createCardAPI, createView } from '../../../test-utils'; // Runs the off-action for `view` and applies the modifier it produces. diff --git a/tests/card-controller/actions/actions/substream-on.test.ts b/tests/card-controller/actions/actions/substream-on.test.ts index 1a929395..56ab2c73 100644 --- a/tests/card-controller/actions/actions/substream-on.test.ts +++ b/tests/card-controller/actions/actions/substream-on.test.ts @@ -1,11 +1,11 @@ import { describe, expect, it, vi } from 'vitest'; -import { CameraManagerStore } from '../../../../src/camera-manager/store'; +import type { CameraManagerStore } from '../../../../src/camera-manager/store'; import { SubstreamOnAction } from '../../../../src/card-controller/actions/actions/substream-on'; import { applyViewModifiers } from '../../../../src/card-controller/view/modifiers'; import { createSubstreamOnAction } from '../../../../src/utils/action'; import { getStreamCameraID } from '../../../../src/view/substream'; -import { View } from '../../../../src/view/view'; +import type { View } from '../../../../src/view/view'; import { createCameraConfig, createCameraManager, diff --git a/tests/card-controller/actions/actions/unmute.test.ts b/tests/card-controller/actions/actions/unmute.test.ts index 63d53ef3..0ab6de01 100644 --- a/tests/card-controller/actions/actions/unmute.test.ts +++ b/tests/card-controller/actions/actions/unmute.test.ts @@ -2,7 +2,7 @@ import { expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { UnmuteAction } from '../../../../src/card-controller/actions/actions/unmute'; -import { MediaPlayerController } from '../../../../src/types'; +import type { MediaPlayerController } from '../../../../src/types'; import { createCardAPI, createMediaLoadedInfo } from '../../../test-utils'; it('should handle unmute action', async () => { diff --git a/tests/card-controller/actions/factory.test.ts b/tests/card-controller/actions/factory.test.ts index 974a74ea..7e79cd8c 100644 --- a/tests/card-controller/actions/factory.test.ts +++ b/tests/card-controller/actions/factory.test.ts @@ -49,7 +49,7 @@ import { URLAction } from '../../../src/card-controller/actions/actions/url'; import { ViewAction } from '../../../src/card-controller/actions/actions/view'; import { ActionFactory } from '../../../src/card-controller/actions/factory'; import { INTERNAL_CALLBACK_ACTION } from '../../../src/config/schema/actions/custom/internal'; -import { ActionConfig } from '../../../src/config/schema/actions/types'; +import type { ActionConfig } from '../../../src/config/schema/actions/types'; // @vitest-environment jsdom describe('ActionFactory', () => { diff --git a/tests/card-controller/automations-manager.test.ts b/tests/card-controller/automations-manager.test.ts index 9550bc3e..5e2a79ac 100644 --- a/tests/card-controller/automations-manager.test.ts +++ b/tests/card-controller/automations-manager.test.ts @@ -1,9 +1,9 @@ import { afterEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { ActionsExecutionRequest } from '../../src/card-controller/actions/types.js'; +import type { ActionsExecutionRequest } from '../../src/card-controller/actions/types.js'; import { AutomationsManager } from '../../src/card-controller/automations-manager.js'; -import { EventWatcherSubscriptionInterface } from '../../src/card-controller/hass/event-watcher.js'; +import type { EventWatcherSubscriptionInterface } from '../../src/card-controller/hass/event-watcher.js'; import { ConditionStateManager } from '../../src/condition-trigger/conditions/state-manager.js'; import { createCardAPI, diff --git a/tests/card-controller/call/manager.test.ts b/tests/card-controller/call/manager.test.ts index a032f156..84c83368 100644 --- a/tests/card-controller/call/manager.test.ts +++ b/tests/card-controller/call/manager.test.ts @@ -1,17 +1,17 @@ // @vitest-environment jsdom -import { PartialDeep } from 'type-fest'; +import type { PartialDeep } from 'type-fest'; import { assert, beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManagerStore } from '../../../src/camera-manager/store'; +import type { CameraManagerStore } from '../../../src/camera-manager/store'; import { CallManager } from '../../../src/card-controller/call/manager'; import { Ringtone } from '../../../src/card-controller/call/ringtone'; -import { CardController } from '../../../src/card-controller/controller'; +import type { CardController } from '../../../src/card-controller/controller'; import { SubstreamViewModifier } from '../../../src/card-controller/view/modifiers/substream'; -import { ConditionStateChange } from '../../../src/condition-trigger/conditions/types'; -import { RingtoneConfig } from '../../../src/config/schema/live'; -import { AdvancedCameraCardConfig } from '../../../src/config/schema/types'; +import type { ConditionStateChange } from '../../../src/condition-trigger/conditions/types'; +import type { RingtoneConfig } from '../../../src/config/schema/live'; +import type { AdvancedCameraCardConfig } from '../../../src/config/schema/types'; import { View } from '../../../src/view/view'; import { createCameraConfig, diff --git a/tests/card-controller/call/ringtone.test.ts b/tests/card-controller/call/ringtone.test.ts index e37e1d9e..f5567f0b 100644 --- a/tests/card-controller/call/ringtone.test.ts +++ b/tests/card-controller/call/ringtone.test.ts @@ -9,7 +9,7 @@ import { ChimeTone } from '../../../src/card-controller/call/tones/chime'; import { CustomTone } from '../../../src/card-controller/call/tones/custom'; import { MelodyTone } from '../../../src/card-controller/call/tones/melody'; import { WestminsterTone } from '../../../src/card-controller/call/tones/westminster'; -import { RingtoneConfig } from '../../../src/config/schema/live'; +import type { RingtoneConfig } from '../../../src/config/schema/live'; // Each tone constructor returns a fresh `mock<>()` per `new` call; the mock // implementation persists across `vi.clearAllMocks()` (which only clears call diff --git a/tests/card-controller/call/tones/custom.test.ts b/tests/card-controller/call/tones/custom.test.ts index 54d662d8..5c97c582 100644 --- a/tests/card-controller/call/tones/custom.test.ts +++ b/tests/card-controller/call/tones/custom.test.ts @@ -1,4 +1,4 @@ -import { afterEach, beforeEach, describe, expect, it, Mock, vi } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import { CustomTone } from '../../../../src/card-controller/call/tones/custom'; diff --git a/tests/card-controller/call/tones/test-utils.ts b/tests/card-controller/call/tones/test-utils.ts index c0d808db..2b28d50e 100644 --- a/tests/card-controller/call/tones/test-utils.ts +++ b/tests/card-controller/call/tones/test-utils.ts @@ -1,5 +1,5 @@ -import { afterEach, beforeEach, Mock, vi } from 'vitest'; -import { mock, MockProxy } from 'vitest-mock-extended'; +import { afterEach, beforeEach, vi, type Mock } from 'vitest'; +import { mock, type MockProxy } from 'vitest-mock-extended'; // Type-safe Web Audio API mocks for tone tests. The real `GeneratedTone` // constructs an AudioContext directly; here we stub the global `AudioContext` diff --git a/tests/card-controller/camera-triggers-manager.test.ts b/tests/card-controller/camera-triggers-manager.test.ts index 4f11a33b..d340afd0 100644 --- a/tests/card-controller/camera-triggers-manager.test.ts +++ b/tests/card-controller/camera-triggers-manager.test.ts @@ -1,11 +1,11 @@ import { add } from 'date-fns'; -import { PartialDeep } from 'type-fest'; +import type { PartialDeep } from 'type-fest'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import { CameraTriggersManager } from '../../src/card-controller/camera-triggers-manager'; -import { CardController } from '../../src/card-controller/controller'; -import { AdvancedCameraCardView } from '../../src/config/schema/common/const'; -import { TriggersOptions, triggersSchema } from '../../src/config/schema/view'; +import type { CardController } from '../../src/card-controller/controller'; +import type { AdvancedCameraCardView } from '../../src/config/schema/common/const'; +import { triggersSchema, type TriggersOptions } from '../../src/config/schema/view'; import { createCameraConfig, createCameraManager, diff --git a/tests/card-controller/camera-url-manager.test.ts b/tests/card-controller/camera-url-manager.test.ts index 69268dc4..891ba269 100644 --- a/tests/card-controller/camera-url-manager.test.ts +++ b/tests/card-controller/camera-url-manager.test.ts @@ -1,8 +1,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { CameraURLManager } from '../../src/card-controller/camera-url-manager'; -import { CardCameraURLAPI } from '../../src/card-controller/types'; -import { Endpoint } from '../../src/types'; +import type { CardCameraURLAPI } from '../../src/card-controller/types'; +import type { Endpoint } from '../../src/types'; import { createCardAPI, createViewWithMedia } from '../test-utils'; const createAPIWithMedia = (): CardCameraURLAPI => { diff --git a/tests/card-controller/card-element-manager.test.ts b/tests/card-controller/card-element-manager.test.ts index e3ea3b01..89a4fc57 100644 --- a/tests/card-controller/card-element-manager.test.ts +++ b/tests/card-controller/card-element-manager.test.ts @@ -2,7 +2,7 @@ import { afterEach, assert, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { CardElementManager } from '../../src/card-controller/card-element-manager'; -import { StateWatcher } from '../../src/card-controller/hass/state-watcher'; +import type { StateWatcher } from '../../src/card-controller/hass/state-watcher'; import { QueryResults } from '../../src/view/query-results'; import { View } from '../../src/view/view'; import { diff --git a/tests/card-controller/config/config-manager.test.ts b/tests/card-controller/config/config-manager.test.ts index 47ceaa42..41b50ac0 100644 --- a/tests/card-controller/config/config-manager.test.ts +++ b/tests/card-controller/config/config-manager.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import { z, ZodError } from 'zod'; +import { ZodError, type z } from 'zod'; import { AutomationsManager } from '../../../src/card-controller/automations-manager'; import { ConfigManager } from '../../../src/card-controller/config/config-manager'; @@ -7,8 +7,8 @@ import { setRemoteControlEntityFromConfig } from '../../../src/card-controller/c import { setKeyboardShortcutsFromConfig } from '../../../src/card-controller/config/load-keyboard-shortcuts'; import { InitializationAspect } from '../../../src/card-controller/initialization-manager'; import { ConditionStateManager } from '../../../src/condition-trigger/conditions/state-manager'; -import { Automation } from '../../../src/config/schema/automations'; -import { Trigger } from '../../../src/config/schema/condition-trigger/triggers/types'; +import type { Automation } from '../../../src/config/schema/automations'; +import type { Trigger } from '../../../src/config/schema/condition-trigger/triggers/types'; import { advancedCameraCardConfigSchema } from '../../../src/config/schema/types'; import { createGeneralAction } from '../../../src/utils/action'; import { createCardAPI, createConfig, flushPromises } from '../../test-utils'; diff --git a/tests/card-controller/config/load-control-entities.test.ts b/tests/card-controller/config/load-control-entities.test.ts index b028706e..859165f5 100644 --- a/tests/card-controller/config/load-control-entities.test.ts +++ b/tests/card-controller/config/load-control-entities.test.ts @@ -6,7 +6,7 @@ import { TemplateRenderer } from '../../../src/card-controller/templates/index'; import { ConditionStateManager } from '../../../src/condition-trigger/conditions/state-manager'; import { INTERNAL_CALLBACK_ACTION, - InternalCallbackActionConfig, + type InternalCallbackActionConfig, } from '../../../src/config/schema/actions/custom/internal'; import { isAdvancedCameraCardCustomAction } from '../../../src/utils/action'; import { diff --git a/tests/card-controller/config/load-folders.test.ts b/tests/card-controller/config/load-folders.test.ts index 738410e0..6d5ec312 100644 --- a/tests/card-controller/config/load-folders.test.ts +++ b/tests/card-controller/config/load-folders.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { setFoldersFromConfig } from '../../../src/card-controller/config/load-folders'; -import { FoldersManager } from '../../../src/card-controller/folders/manager'; +import type { FoldersManager } from '../../../src/card-controller/folders/manager'; import { createCardAPI, createConfig, createFolder } from '../../test-utils'; describe('setFoldersFromConfig', () => { diff --git a/tests/card-controller/config/load-keyboard-shortcuts.test.ts b/tests/card-controller/config/load-keyboard-shortcuts.test.ts index a55ac7af..0b0c409a 100644 --- a/tests/card-controller/config/load-keyboard-shortcuts.test.ts +++ b/tests/card-controller/config/load-keyboard-shortcuts.test.ts @@ -1,8 +1,8 @@ import { describe, expect, it, vi } from 'vitest'; import { setKeyboardShortcutsFromConfig } from '../../../src/card-controller/config/load-keyboard-shortcuts'; -import { PTZAction } from '../../../src/config/schema/actions/custom/ptz'; -import { PTZKeyboardShortcutName } from '../../../src/config/schema/view'; +import type { PTZAction } from '../../../src/config/schema/actions/custom/ptz'; +import type { PTZKeyboardShortcutName } from '../../../src/config/schema/view'; import { createCardAPI, createConfig } from '../../test-utils'; describe('setKeyboardShortcutsFromConfig', () => { diff --git a/tests/card-controller/config/overrides-manager.test.ts b/tests/card-controller/config/overrides-manager.test.ts index 68e8450f..b18eb678 100644 --- a/tests/card-controller/config/overrides-manager.test.ts +++ b/tests/card-controller/config/overrides-manager.test.ts @@ -2,7 +2,7 @@ import { assert, describe, expect, it, vi } from 'vitest'; import { OverridesManager } from '../../../src/card-controller/config/overrides-manager'; import { ConditionStateManager } from '../../../src/condition-trigger/conditions/state-manager'; -import { AdvancedCameraCardConfig } from '../../../src/config/schema/types'; +import type { AdvancedCameraCardConfig } from '../../../src/config/schema/types'; import { AdvancedCameraCardError } from '../../../src/types'; import { createConfig } from '../../test-utils'; diff --git a/tests/card-controller/controller.test.ts b/tests/card-controller/controller.test.ts index 7243db75..854ec6be 100644 --- a/tests/card-controller/controller.test.ts +++ b/tests/card-controller/controller.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import { mock, MockProxy } from 'vitest-mock-extended'; +import { mock, type MockProxy } from 'vitest-mock-extended'; import { CameraManager } from '../../src/camera-manager/manager'; import { ActionsManager } from '../../src/card-controller/actions/actions-manager'; @@ -9,7 +9,7 @@ import { CameraTriggersManager } from '../../src/card-controller/camera-triggers import { CameraURLManager } from '../../src/card-controller/camera-url-manager'; import { CardElementManager, - CardHTMLElement, + type CardHTMLElement, } from '../../src/card-controller/card-element-manager'; import { ConfigManager } from '../../src/card-controller/config/config-manager'; import { CardController } from '../../src/card-controller/controller'; @@ -17,8 +17,8 @@ import { DefaultManager } from '../../src/card-controller/default-manager'; import { ExpandManager } from '../../src/card-controller/expand-manager'; import { FoldersManager } from '../../src/card-controller/folders/manager'; import { FullscreenManager } from '../../src/card-controller/fullscreen/fullscreen-manager'; -import { EventWatcherSubscriptionInterface } from '../../src/card-controller/hass/event-watcher'; -import { HASSManager } from '../../src/card-controller/hass/hass-manager'; +import type { EventWatcherSubscriptionInterface } from '../../src/card-controller/hass/event-watcher'; +import type { HASSManager } from '../../src/card-controller/hass/hass-manager'; import { InitializationManager } from '../../src/card-controller/initialization-manager'; import { InteractionManager } from '../../src/card-controller/interaction-manager'; import { IssueManager } from '../../src/card-controller/issues/issue-manager'; diff --git a/tests/card-controller/default-manager.test.ts b/tests/card-controller/default-manager.test.ts index f55cdd2b..5e324c6c 100644 --- a/tests/card-controller/default-manager.test.ts +++ b/tests/card-controller/default-manager.test.ts @@ -1,9 +1,9 @@ import { afterEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CardController } from '../../src/card-controller/controller'; +import type { CardController } from '../../src/card-controller/controller'; import { DefaultManager } from '../../src/card-controller/default-manager'; -import { StateWatcherSubscriptionInterface } from '../../src/card-controller/hass/state-watcher'; +import type { StateWatcherSubscriptionInterface } from '../../src/card-controller/hass/state-watcher'; import { callStateWatcherCallback, createCardAPI, diff --git a/tests/card-controller/effects/effects-manager.test.ts b/tests/card-controller/effects/effects-manager.test.ts index 714a1de9..b697cb36 100644 --- a/tests/card-controller/effects/effects-manager.test.ts +++ b/tests/card-controller/effects/effects-manager.test.ts @@ -1,8 +1,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { EffectsManager } from '../../../src/card-controller/effects/effects-manager'; -import { EffectComponent } from '../../../src/card-controller/effects/types'; -import { EffectName } from '../../../src/types'; +import type { EffectComponent } from '../../../src/card-controller/effects/types'; +import type { EffectName } from '../../../src/types'; import { flushPromises } from '../../test-utils'; vi.mock('../../../src/components/effects/fireworks', () => ({ diff --git a/tests/card-controller/folders/executor.test.ts b/tests/card-controller/folders/executor.test.ts index 1f4419e9..58db3fc0 100644 --- a/tests/card-controller/folders/executor.test.ts +++ b/tests/card-controller/folders/executor.test.ts @@ -2,11 +2,11 @@ import { afterEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { FoldersExecutor } from '../../../src/card-controller/folders/executor'; -import { HAFoldersEngine } from '../../../src/card-controller/folders/ha/engine'; -import { FolderQuery } from '../../../src/card-controller/folders/types'; -import { FolderConfig } from '../../../src/config/schema/folders'; +import type { HAFoldersEngine } from '../../../src/card-controller/folders/ha/engine'; +import type { FolderQuery } from '../../../src/card-controller/folders/types'; +import type { FolderConfig } from '../../../src/config/schema/folders'; import { QuerySource } from '../../../src/query-source'; -import { Endpoint } from '../../../src/types'; +import type { Endpoint } from '../../../src/types'; import { ViewFolder } from '../../../src/view/item'; import { createFolder, createHASS, TestViewMedia } from '../../test-utils'; diff --git a/tests/card-controller/folders/ha/engine.test.ts b/tests/card-controller/folders/ha/engine.test.ts index 7d7b7501..9dc61c79 100644 --- a/tests/card-controller/folders/ha/engine.test.ts +++ b/tests/card-controller/folders/ha/engine.test.ts @@ -1,14 +1,14 @@ import { afterAll, afterEach, beforeAll, describe, expect, it, vi } from 'vitest'; import { HAFoldersEngine } from '../../../../src/card-controller/folders/ha/engine'; -import { FolderQuery } from '../../../../src/card-controller/folders/types'; -import { FolderConfig, Matcher } from '../../../../src/config/schema/folders'; +import type { FolderQuery } from '../../../../src/card-controller/folders/types'; +import type { FolderConfig, Matcher } from '../../../../src/config/schema/folders'; import { BrowseMediaViewFolder } from '../../../../src/ha/browse-media/item'; import { browseMediaSchema } from '../../../../src/ha/browse-media/types'; import { getMediaDownloadPath } from '../../../../src/ha/download'; import { homeAssistantWSRequest } from '../../../../src/ha/ws-request'; import { QuerySource } from '../../../../src/query-source'; -import { Endpoint } from '../../../../src/types'; +import type { Endpoint } from '../../../../src/types'; import { ViewFolder, ViewMedia } from '../../../../src/view/item'; import { createBrowseMedia, diff --git a/tests/card-controller/folders/ha/media-matcher.test.ts b/tests/card-controller/folders/ha/media-matcher.test.ts index be6263f2..07ac6182 100644 --- a/tests/card-controller/folders/ha/media-matcher.test.ts +++ b/tests/card-controller/folders/ha/media-matcher.test.ts @@ -3,8 +3,8 @@ import { renderTemplate } from 'ha-nunjucks'; import { describe, expect, it, vi } from 'vitest'; import { MediaMatcher } from '../../../../src/card-controller/folders/ha/media-matcher'; -import { Matcher } from '../../../../src/config/schema/folders'; -import { +import type { Matcher } from '../../../../src/config/schema/folders'; +import type { BrowseMediaMetadata, RichBrowseMedia, } from '../../../../src/ha/browse-media/types'; diff --git a/tests/card-controller/folders/ha/metadata-generator.test.ts b/tests/card-controller/folders/ha/metadata-generator.test.ts index e9bd9c0a..a2f37eca 100644 --- a/tests/card-controller/folders/ha/metadata-generator.test.ts +++ b/tests/card-controller/folders/ha/metadata-generator.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest'; import { MetadataGenerator } from '../../../../src/card-controller/folders/ha/metadata-generator'; -import { Parser } from '../../../../src/config/schema/folders'; +import type { Parser } from '../../../../src/config/schema/folders'; import { createBrowseMedia, createRichBrowseMedia } from '../../../test-utils'; describe('MetadataGenerator', () => { diff --git a/tests/card-controller/folders/manager.test.ts b/tests/card-controller/folders/manager.test.ts index baff71a3..99b0174c 100644 --- a/tests/card-controller/folders/manager.test.ts +++ b/tests/card-controller/folders/manager.test.ts @@ -1,15 +1,18 @@ import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { FoldersExecutor } from '../../../src/card-controller/folders/executor'; +import type { FoldersExecutor } from '../../../src/card-controller/folders/executor'; import { FoldersManager } from '../../../src/card-controller/folders/manager'; -import { FolderQuery } from '../../../src/card-controller/folders/types'; -import { FolderConfig, FolderConfigWithoutID } from '../../../src/config/schema/folders'; +import type { FolderQuery } from '../../../src/card-controller/folders/types'; +import type { + FolderConfig, + FolderConfigWithoutID, +} from '../../../src/config/schema/folders'; import { ResolvedMediaCache } from '../../../src/ha/resolved-media'; import { QuerySource } from '../../../src/query-source'; -import { Endpoint } from '../../../src/types'; +import type { Endpoint } from '../../../src/types'; import { ViewFolder } from '../../../src/view/item'; -import { ViewItemCapabilities } from '../../../src/view/types'; +import type { ViewItemCapabilities } from '../../../src/view/types'; import { createCardAPI, createFolder, diff --git a/tests/card-controller/fullscreen/factory.test.ts b/tests/card-controller/fullscreen/factory.test.ts index 201fac9c..3c45fb0b 100644 --- a/tests/card-controller/fullscreen/factory.test.ts +++ b/tests/card-controller/fullscreen/factory.test.ts @@ -4,7 +4,7 @@ import { mock } from 'vitest-mock-extended'; import { FullscreenProviderFactory } from '../../../src/card-controller/fullscreen/factory'; import { ScreenfullFullScreenProvider } from '../../../src/card-controller/fullscreen/screenfull'; import { WebkitFullScreenProvider } from '../../../src/card-controller/fullscreen/webkit'; -import { WebkitHTMLVideoElement } from '../../../src/types'; +import type { WebkitHTMLVideoElement } from '../../../src/types'; import { createCardAPI, setScreenfulEnabled } from '../../test-utils'; // @vitest-environment jsdom diff --git a/tests/card-controller/fullscreen/fullscreen-manager.test.ts b/tests/card-controller/fullscreen/fullscreen-manager.test.ts index 90d37cfd..8355cf9c 100644 --- a/tests/card-controller/fullscreen/fullscreen-manager.test.ts +++ b/tests/card-controller/fullscreen/fullscreen-manager.test.ts @@ -3,7 +3,7 @@ import { mock } from 'vitest-mock-extended'; import { FullscreenProviderFactory } from '../../../src/card-controller/fullscreen/factory'; import { FullscreenManager } from '../../../src/card-controller/fullscreen/fullscreen-manager'; -import { FullscreenProvider } from '../../../src/card-controller/fullscreen/types'; +import type { FullscreenProvider } from '../../../src/card-controller/fullscreen/types'; import { createCardAPI } from '../../test-utils'; vi.mock('../../../src/card-controller/fullscreen/factory'); diff --git a/tests/card-controller/fullscreen/webkit/index.test.ts b/tests/card-controller/fullscreen/webkit/index.test.ts index e966f614..41b36971 100644 --- a/tests/card-controller/fullscreen/webkit/index.test.ts +++ b/tests/card-controller/fullscreen/webkit/index.test.ts @@ -3,7 +3,10 @@ import { mock } from 'vitest-mock-extended'; import { WebkitFullScreenProvider } from '../../../../src/card-controller/fullscreen/webkit'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; -import { MediaPlayerController, WebkitHTMLVideoElement } from '../../../../src/types'; +import type { + MediaPlayerController, + WebkitHTMLVideoElement, +} from '../../../../src/types'; import { createCardAPI, createMediaLoadedInfo, diff --git a/tests/card-controller/hass/event-watcher.test.ts b/tests/card-controller/hass/event-watcher.test.ts index 04b74b63..dc2d58fd 100644 --- a/tests/card-controller/hass/event-watcher.test.ts +++ b/tests/card-controller/hass/event-watcher.test.ts @@ -1,9 +1,9 @@ -import { Connection, HassEvent } from 'home-assistant-js-websocket'; +import type { Connection, HassEvent } from 'home-assistant-js-websocket'; import { afterEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { EventWatcher } from '../../../src/card-controller/hass/event-watcher'; -import { HomeAssistant } from '../../../src/ha/types'; +import type { HomeAssistant } from '../../../src/ha/types'; import { createHASS, createHASSEvent, diff --git a/tests/card-controller/initialization-manager.test.ts b/tests/card-controller/initialization-manager.test.ts index 96771ec1..dfa9ceb9 100644 --- a/tests/card-controller/initialization-manager.test.ts +++ b/tests/card-controller/initialization-manager.test.ts @@ -9,7 +9,7 @@ import { import { ConditionStateManager } from '../../src/condition-trigger/conditions/state-manager'; import { sideLoadHomeAssistantElements } from '../../src/ha/side-load-ha-elements.js'; import { loadLanguages } from '../../src/localize/localize'; -import { Initializer } from '../../src/utils/initializer/initializer'; +import type { Initializer } from '../../src/utils/initializer/initializer'; import { createCardAPI, createConfig, createHASS } from '../test-utils'; vi.mock('../../src/localize/localize.js'); diff --git a/tests/card-controller/issues/issue-manager.test.ts b/tests/card-controller/issues/issue-manager.test.ts index cfc3ed73..33331086 100644 --- a/tests/card-controller/issues/issue-manager.test.ts +++ b/tests/card-controller/issues/issue-manager.test.ts @@ -2,19 +2,19 @@ import { afterEach, assert, beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CardController } from '../../../src/card-controller/controller'; +import type { CardController } from '../../../src/card-controller/controller'; import { IssueManager, RETRY_EXPONENTIAL_BASE_SECONDS, RETRY_EXPONENTIAL_MAX_SECONDS, } from '../../../src/card-controller/issues/issue-manager'; -import { +import type { Issue, IssueDescription, IssueKey, } from '../../../src/card-controller/issues/types'; import { ConditionStateManager } from '../../../src/condition-trigger/conditions/state-manager'; -import { InteractionMode } from '../../../src/config/schema/view'; +import type { InteractionMode } from '../../../src/config/schema/view'; import { createCardAPI, createConfig, diff --git a/tests/card-controller/issues/issues/config-upgrade-failure.test.ts b/tests/card-controller/issues/issues/config-upgrade-failure.test.ts index 73abe665..b7937ab3 100644 --- a/tests/card-controller/issues/issues/config-upgrade-failure.test.ts +++ b/tests/card-controller/issues/issues/config-upgrade-failure.test.ts @@ -2,7 +2,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { ConfigUpgradeFailureIssue } from '../../../../src/card-controller/issues/issues/config-upgrade-failure'; import { hasConfigUpgradeFailures } from '../../../../src/config/management'; -import { RawAdvancedCameraCardConfig } from '../../../../src/config/types'; +import type { RawAdvancedCameraCardConfig } from '../../../../src/config/types'; import { createCardAPI } from '../../../test-utils'; vi.mock('../../../../src/config/management.js'); diff --git a/tests/card-controller/issues/issues/config-upgrade.test.ts b/tests/card-controller/issues/issues/config-upgrade.test.ts index 4bee7494..87033a62 100644 --- a/tests/card-controller/issues/issues/config-upgrade.test.ts +++ b/tests/card-controller/issues/issues/config-upgrade.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it, vi } from 'vitest'; import { ConfigUpgradeIssue } from '../../../../src/card-controller/issues/issues/config-upgrade'; import { isConfigUpgradeable } from '../../../../src/config/management'; -import { RawAdvancedCameraCardConfig } from '../../../../src/config/types'; +import type { RawAdvancedCameraCardConfig } from '../../../../src/config/types'; import { createCardAPI } from '../../../test-utils'; vi.mock('../../../../src/config/management.js'); diff --git a/tests/card-controller/issues/issues/event-subscription.test.ts b/tests/card-controller/issues/issues/event-subscription.test.ts index 9ddfb56f..9f2f02cd 100644 --- a/tests/card-controller/issues/issues/event-subscription.test.ts +++ b/tests/card-controller/issues/issues/event-subscription.test.ts @@ -1,8 +1,8 @@ import { describe, expect, it, vi } from 'vitest'; import { EventSubscriptionIssue } from '../../../../src/card-controller/issues/issues/event-subscription'; -import { Issue } from '../../../../src/card-controller/issues/types'; -import { SubscriptionFailure } from '../../../../src/ha/connection/subscription-health-monitor'; +import type { Issue } from '../../../../src/card-controller/issues/types'; +import type { SubscriptionFailure } from '../../../../src/ha/connection/subscription-health-monitor'; import { localize } from '../../../../src/localize/localize'; import { createSubscriptionHealth } from '../../test-utils'; diff --git a/tests/card-controller/issues/issues/initialization.test.ts b/tests/card-controller/issues/issues/initialization.test.ts index 8d97206e..b603786c 100644 --- a/tests/card-controller/issues/issues/initialization.test.ts +++ b/tests/card-controller/issues/issues/initialization.test.ts @@ -1,8 +1,8 @@ import { assert, describe, expect, it, vi } from 'vitest'; -import { CardController } from '../../../../src/card-controller/controller'; +import type { CardController } from '../../../../src/card-controller/controller'; import { InitializationIssue } from '../../../../src/card-controller/issues/issues/initialization'; -import { InternalCallbackActionConfig } from '../../../../src/config/schema/actions/custom/internal'; +import type { InternalCallbackActionConfig } from '../../../../src/config/schema/actions/custom/internal'; import { createCardAPI } from '../../../test-utils'; describe('InitializationIssue', () => { diff --git a/tests/card-controller/issues/issues/legacy-resource.test.ts b/tests/card-controller/issues/issues/legacy-resource.test.ts index 582963b0..56de1571 100644 --- a/tests/card-controller/issues/issues/legacy-resource.test.ts +++ b/tests/card-controller/issues/issues/legacy-resource.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { LegacyResourceIssue } from '../../../../src/card-controller/issues/issues/legacy-resource'; -import { HomeAssistant } from '../../../../src/ha/types'; +import type { HomeAssistant } from '../../../../src/ha/types'; import { createCardAPI, createHASS, createUser } from '../../../test-utils'; const setupHASSResources = ( diff --git a/tests/card-controller/issues/issues/media-load.test.ts b/tests/card-controller/issues/issues/media-load.test.ts index 582f64d8..4dc0b22f 100644 --- a/tests/card-controller/issues/issues/media-load.test.ts +++ b/tests/card-controller/issues/issues/media-load.test.ts @@ -2,9 +2,9 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { MediaLoadIssue } from '../../../../src/card-controller/issues/issues/media-load'; -import { InternalCallbackActionConfig } from '../../../../src/config/schema/actions/custom/internal'; +import type { InternalCallbackActionConfig } from '../../../../src/config/schema/actions/custom/internal'; import { IMAGE_VIEW_TARGET_ID_SENTINEL } from '../../../../src/view/target-id'; -import { View } from '../../../../src/view/view'; +import type { View } from '../../../../src/view/view'; import { createCardAPI, createMediaLoadedInfo } from '../../../test-utils'; const createAPI = () => createCardAPI(); diff --git a/tests/card-controller/issues/issues/media-query.test.ts b/tests/card-controller/issues/issues/media-query.test.ts index fd9171b5..bbb97775 100644 --- a/tests/card-controller/issues/issues/media-query.test.ts +++ b/tests/card-controller/issues/issues/media-query.test.ts @@ -1,8 +1,8 @@ import { describe, expect, it } from 'vitest'; -import { CardController } from '../../../../src/card-controller/controller'; +import type { CardController } from '../../../../src/card-controller/controller'; import { MediaQueryIssue } from '../../../../src/card-controller/issues/issues/media-query'; -import { InternalCallbackActionConfig } from '../../../../src/config/schema/actions/custom/internal'; +import type { InternalCallbackActionConfig } from '../../../../src/config/schema/actions/custom/internal'; import { createCardAPI } from '../../../test-utils'; const createIssue = (): { diff --git a/tests/card-controller/issues/issues/view-incompatible.test.ts b/tests/card-controller/issues/issues/view-incompatible.test.ts index 5dec9425..cc5d9a85 100644 --- a/tests/card-controller/issues/issues/view-incompatible.test.ts +++ b/tests/card-controller/issues/issues/view-incompatible.test.ts @@ -1,10 +1,10 @@ import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CardController } from '../../../../src/card-controller/controller'; +import type { CardController } from '../../../../src/card-controller/controller'; import { ViewIncompatibleIssue } from '../../../../src/card-controller/issues/issues/view-incompatible'; import { AdvancedCameraCardError } from '../../../../src/types'; -import { View } from '../../../../src/view/view'; +import type { View } from '../../../../src/view/view'; import { createCardAPI } from '../../../test-utils'; describe('ViewIncompatibleIssue', () => { diff --git a/tests/card-controller/issues/retry-control.test.ts b/tests/card-controller/issues/retry-control.test.ts index 2f6db226..fa04fe03 100644 --- a/tests/card-controller/issues/retry-control.test.ts +++ b/tests/card-controller/issues/retry-control.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest'; import { createRetryControl } from '../../../src/card-controller/issues/retry-control'; -import { InternalCallbackActionConfig } from '../../../src/config/schema/actions/custom/internal'; +import type { InternalCallbackActionConfig } from '../../../src/config/schema/actions/custom/internal'; import { createCardAPI } from '../../test-utils'; describe('createRetryControl', () => { diff --git a/tests/card-controller/issues/state-manager.test.ts b/tests/card-controller/issues/state-manager.test.ts index d65f0e03..805c53bc 100644 --- a/tests/card-controller/issues/state-manager.test.ts +++ b/tests/card-controller/issues/state-manager.test.ts @@ -2,7 +2,7 @@ import { assert, beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { IssueStateManager } from '../../../src/card-controller/issues/state-manager'; -import { Issue, IssueDescription } from '../../../src/card-controller/issues/types'; +import type { Issue, IssueDescription } from '../../../src/card-controller/issues/types'; import { createHASS } from '../../test-utils'; const createIssueDescription = ( diff --git a/tests/card-controller/lock/manager.test.ts b/tests/card-controller/lock/manager.test.ts index d28f06af..0ef3cadd 100644 --- a/tests/card-controller/lock/manager.test.ts +++ b/tests/card-controller/lock/manager.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest'; -import { CardController } from '../../../src/card-controller/controller'; +import type { CardController } from '../../../src/card-controller/controller'; import { LockManager } from '../../../src/card-controller/lock/manager'; import { createCameraAction, diff --git a/tests/card-controller/media-player-manager.test.ts b/tests/card-controller/media-player-manager.test.ts index ac7bd20b..1c753b7e 100644 --- a/tests/card-controller/media-player-manager.test.ts +++ b/tests/card-controller/media-player-manager.test.ts @@ -7,8 +7,8 @@ import { MEDIA_PLAYER_SUPPORT_STOP, MEDIA_PLAYER_SUPPORT_TURN_OFF, } from '../../src/const'; -import { EntityRegistryManager } from '../../src/ha/registry/entity/types.js'; -import { HomeAssistant } from '../../src/ha/types.js'; +import type { EntityRegistryManager } from '../../src/ha/registry/entity/types.js'; +import type { HomeAssistant } from '../../src/ha/types.js'; import { ViewMediaType } from '../../src/view/item.js'; import { EntityRegistryManagerMock } from '../ha/registry/entity/mock.js'; import { diff --git a/tests/card-controller/microphone-manager.test.ts b/tests/card-controller/microphone-manager.test.ts index 93788c65..4d5b2718 100644 --- a/tests/card-controller/microphone-manager.test.ts +++ b/tests/card-controller/microphone-manager.test.ts @@ -5,7 +5,7 @@ import { MicrophoneManager, MicrophoneNotSupportedError, } from '../../src/card-controller/microphone-manager'; -import { MicrophoneState } from '../../src/card-controller/types'; +import type { MicrophoneState } from '../../src/card-controller/types'; import { createCardAPI, createConfig } from '../test-utils'; const navigatorMock: Navigator = { diff --git a/tests/card-controller/notification-manager.test.ts b/tests/card-controller/notification-manager.test.ts index d63dd597..797cd418 100644 --- a/tests/card-controller/notification-manager.test.ts +++ b/tests/card-controller/notification-manager.test.ts @@ -1,9 +1,9 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CardElementManager } from '../../src/card-controller/card-element-manager'; +import type { CardElementManager } from '../../src/card-controller/card-element-manager'; import { NotificationManager } from '../../src/card-controller/notification-manager'; -import { CardNotificationAPI } from '../../src/card-controller/types'; +import type { CardNotificationAPI } from '../../src/card-controller/types'; describe('NotificationManager', () => { const cardElementManager = mock(); diff --git a/tests/card-controller/pip-manager.test.ts b/tests/card-controller/pip-manager.test.ts index bd067041..336176b5 100644 --- a/tests/card-controller/pip-manager.test.ts +++ b/tests/card-controller/pip-manager.test.ts @@ -1,10 +1,10 @@ import { afterEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CardController } from '../../src/card-controller/controller'; +import type { CardController } from '../../src/card-controller/controller'; import { PIPManager } from '../../src/card-controller/pip-manager'; import { ConditionStateManager } from '../../src/condition-trigger/conditions/state-manager'; -import { MediaPlayerController } from '../../src/types'; +import type { MediaPlayerController } from '../../src/types'; import { createCardAPI, createMediaLoadedInfo, flushPromises } from '../test-utils'; const stubPIPSupported = (enabled = true): void => { diff --git a/tests/card-controller/query-string-manager.test.ts b/tests/card-controller/query-string-manager.test.ts index f42c769e..37cf54ed 100644 --- a/tests/card-controller/query-string-manager.test.ts +++ b/tests/card-controller/query-string-manager.test.ts @@ -1,7 +1,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CardController } from '../../src/card-controller/controller'; +import type { CardController } from '../../src/card-controller/controller'; import { QueryStringManager } from '../../src/card-controller/query-string-manager'; import { SubstreamViewModifier } from '../../src/card-controller/view/modifiers/substream'; import { createCardAPI, createConfig } from '../test-utils'; diff --git a/tests/card-controller/status-bar-item-manager.test.ts b/tests/card-controller/status-bar-item-manager.test.ts index c81f9a8d..95fd4d20 100644 --- a/tests/card-controller/status-bar-item-manager.test.ts +++ b/tests/card-controller/status-bar-item-manager.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest'; import { StatusBarItemManager } from '../../src/card-controller/status-bar-item-manager'; -import { StatusBarString } from '../../src/config/schema/actions/types'; +import type { StatusBarString } from '../../src/config/schema/actions/types'; import { QueryResults } from '../../src/view/query-results'; import { createCameraManager, diff --git a/tests/card-controller/style-manager.test.ts b/tests/card-controller/style-manager.test.ts index 37eace28..469cbc2e 100644 --- a/tests/card-controller/style-manager.test.ts +++ b/tests/card-controller/style-manager.test.ts @@ -1,8 +1,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { StyleManager } from '../../src/card-controller/style-manager'; -import { AdvancedCameraCardView } from '../../src/config/schema/common/const'; -import { ThemeName } from '../../src/config/schema/view'; +import type { AdvancedCameraCardView } from '../../src/config/schema/common/const'; +import type { ThemeName } from '../../src/config/schema/view'; import { createCardAPI, createConfig, createView } from '../test-utils'; // @vitest-environment jsdom diff --git a/tests/card-controller/test-utils.ts b/tests/card-controller/test-utils.ts index 7d6fc480..cc0723e0 100644 --- a/tests/card-controller/test-utils.ts +++ b/tests/card-controller/test-utils.ts @@ -1,7 +1,7 @@ import { vi } from 'vitest'; -import { mock, MockProxy } from 'vitest-mock-extended'; +import { mock, type MockProxy } from 'vitest-mock-extended'; -import { SubscriptionHealthInterface } from '../../src/ha/connection/subscription-health-monitor'; +import type { SubscriptionHealthInterface } from '../../src/ha/connection/subscription-health-monitor'; // A benign mocked event-subscription health surface: no failures, listeners // return a no-op unsubscribe. Tests configure `getFailures`/`retry` as needed. diff --git a/tests/card-controller/view/factory.test.ts b/tests/card-controller/view/factory.test.ts index f100387c..a73c575a 100644 --- a/tests/card-controller/view/factory.test.ts +++ b/tests/card-controller/view/factory.test.ts @@ -1,11 +1,14 @@ import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { FoldersManager } from '../../../src/card-controller/folders/manager'; +import type { FoldersManager } from '../../../src/card-controller/folders/manager'; import { ViewFactory } from '../../../src/card-controller/view/factory'; -import { ViewIncompatible, ViewModifier } from '../../../src/card-controller/view/types'; -import { AdvancedCameraCardView } from '../../../src/config/schema/common/const'; -import { ViewDisplayMode } from '../../../src/config/schema/common/display'; +import { + ViewIncompatible, + type ViewModifier, +} from '../../../src/card-controller/view/types'; +import type { AdvancedCameraCardView } from '../../../src/config/schema/common/const'; +import type { ViewDisplayMode } from '../../../src/config/schema/common/display'; import { View } from '../../../src/view/view'; import { createCameraManager, diff --git a/tests/card-controller/view/modifiers/merge-context.test.ts b/tests/card-controller/view/modifiers/merge-context.test.ts index ade22669..412c70e8 100644 --- a/tests/card-controller/view/modifiers/merge-context.test.ts +++ b/tests/card-controller/view/modifiers/merge-context.test.ts @@ -1,4 +1,4 @@ -import { ViewContext } from 'view'; +import type { ViewContext } from 'view'; import { expect, it } from 'vitest'; import { MergeContextViewModifier } from '../../../../src/card-controller/view/modifiers/merge-context'; diff --git a/tests/card-controller/view/test-utils.ts b/tests/card-controller/view/test-utils.ts index c56dd165..4dd30bfa 100644 --- a/tests/card-controller/view/test-utils.ts +++ b/tests/card-controller/view/test-utils.ts @@ -1,7 +1,7 @@ import { vi } from 'vitest'; -import { CardController } from '../../../src/card-controller/controller'; -import { RawAdvancedCameraCardConfig } from '../../../src/config/types'; +import type { CardController } from '../../../src/card-controller/controller'; +import type { RawAdvancedCameraCardConfig } from '../../../src/config/types'; import { createCameraManager, createCapabilities, diff --git a/tests/card-controller/view/view-manager.test.ts b/tests/card-controller/view/view-manager.test.ts index 1c55365a..aac65aa0 100644 --- a/tests/card-controller/view/view-manager.test.ts +++ b/tests/card-controller/view/view-manager.test.ts @@ -1,21 +1,21 @@ -import { ViewContext } from 'view'; +import type { ViewContext } from 'view'; import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CardController } from '../../../src/card-controller/controller'; -import { ViewFactory } from '../../../src/card-controller/view/factory'; +import type { CardController } from '../../../src/card-controller/controller'; +import type { ViewFactory } from '../../../src/card-controller/view/factory'; import { SetQueryViewModifier } from '../../../src/card-controller/view/modifiers/set-query'; -import { +import type { QueryExecutorOptions, ViewModifier, } from '../../../src/card-controller/view/types'; import { ViewManager } from '../../../src/card-controller/view/view-manager'; -import { ViewQueryExecutor } from '../../../src/card-controller/view/view-query-executor'; -import { AdvancedCameraCardView } from '../../../src/config/schema/common/const'; +import type { ViewQueryExecutor } from '../../../src/card-controller/view/view-query-executor'; +import type { AdvancedCameraCardView } from '../../../src/config/schema/common/const'; import { ViewMedia, ViewMediaType } from '../../../src/view/item'; import { QueryResults } from '../../../src/view/query-results'; import { UnifiedQuery } from '../../../src/view/unified-query'; -import { View } from '../../../src/view/view'; +import type { View } from '../../../src/view/view'; import { createCardAPI, createEventQuery, createView } from '../../test-utils'; const createInitializedCardAPI = (initialized?: boolean): CardController => { diff --git a/tests/card-controller/view/view-query-executor.test.ts b/tests/card-controller/view/view-query-executor.test.ts index fa13d83a..7d766fd8 100644 --- a/tests/card-controller/view/view-query-executor.test.ts +++ b/tests/card-controller/view/view-query-executor.test.ts @@ -1,11 +1,11 @@ import { afterAll, assert, beforeAll, describe, expect, it, vi } from 'vitest'; import { Capabilities } from '../../../src/camera-manager/capabilities'; -import { EventQuery, QueryType } from '../../../src/camera-manager/types'; +import { QueryType, type EventQuery } from '../../../src/camera-manager/types'; import { applyViewModifiers } from '../../../src/card-controller/view/modifiers'; import { ViewQueryExecutor } from '../../../src/card-controller/view/view-query-executor'; -import { AdvancedCameraCardView } from '../../../src/config/schema/common/const'; -import { PerformanceConfig } from '../../../src/config/schema/performance'; +import type { AdvancedCameraCardView } from '../../../src/config/schema/common/const'; +import type { PerformanceConfig } from '../../../src/config/schema/performance'; import { QuerySource } from '../../../src/query-source'; import { UnifiedQuery } from '../../../src/view/unified-query'; import { View } from '../../../src/view/view'; diff --git a/tests/components-lib/cached-value-controller.test.ts b/tests/components-lib/cached-value-controller.test.ts index 60124376..3830bcf9 100644 --- a/tests/components-lib/cached-value-controller.test.ts +++ b/tests/components-lib/cached-value-controller.test.ts @@ -1,4 +1,4 @@ -import { ReactiveControllerHost } from 'lit'; +import type { ReactiveControllerHost } from 'lit'; import { afterEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; diff --git a/tests/components-lib/gallery/controller.test.ts b/tests/components-lib/gallery/controller.test.ts index 0172f294..4052aac6 100644 --- a/tests/components-lib/gallery/controller.test.ts +++ b/tests/components-lib/gallery/controller.test.ts @@ -1,19 +1,24 @@ import { assert, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { +import type { ViewManagerEpoch, ViewManagerInterface, } from '../../../src/card-controller/view/types'; import { GalleryController } from '../../../src/components-lib/gallery/controller'; import { THUMBNAIL_WIDTH_DEFAULT } from '../../../src/config/schema/common/controls/thumbnails'; -import { FolderConfig } from '../../../src/config/schema/folders'; -import { MediaGalleryThumbnailsConfig } from '../../../src/config/schema/media-gallery'; -import { ViewFolder, ViewItem, ViewMedia, ViewMediaType } from '../../../src/view/item'; -import { QueryResults } from '../../../src/view/query-results'; -import { UnifiedQuery } from '../../../src/view/unified-query'; -import { UnifiedQueryRunner } from '../../../src/view/unified-query-runner'; -import { View } from '../../../src/view/view'; +import type { FolderConfig } from '../../../src/config/schema/folders'; +import type { MediaGalleryThumbnailsConfig } from '../../../src/config/schema/media-gallery'; +import { + ViewFolder, + ViewMedia, + ViewMediaType, + type ViewItem, +} from '../../../src/view/item'; +import type { QueryResults } from '../../../src/view/query-results'; +import type { UnifiedQuery } from '../../../src/view/unified-query'; +import type { UnifiedQueryRunner } from '../../../src/view/unified-query-runner'; +import type { View } from '../../../src/view/view'; // @vitest-environment jsdom const createThumbnailConfig = ( diff --git a/tests/components-lib/gallery/gallery-core-controller.test.ts b/tests/components-lib/gallery/gallery-core-controller.test.ts index 09bfcc71..35907f98 100644 --- a/tests/components-lib/gallery/gallery-core-controller.test.ts +++ b/tests/components-lib/gallery/gallery-core-controller.test.ts @@ -1,11 +1,11 @@ -import { LitElement } from 'lit'; +import type { LitElement } from 'lit'; import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { - GalleryColumnCountRoundMethod, GalleryCoreController, + type GalleryColumnCountRoundMethod, } from '../../../src/components-lib/gallery/gallery-core-controller'; -import { GalleryExtendEvent } from '../../../src/components/gallery/types'; +import type { GalleryExtendEvent } from '../../../src/components/gallery/types'; import { scrollIntoView } from '../../../src/utils/scroll'; import { sleep } from '../../../src/utils/sleep'; import { diff --git a/tests/components-lib/lazy-load-controller.test.ts b/tests/components-lib/lazy-load-controller.test.ts index 28dd9aa6..b150324a 100644 --- a/tests/components-lib/lazy-load-controller.test.ts +++ b/tests/components-lib/lazy-load-controller.test.ts @@ -10,7 +10,7 @@ import { } from 'vitest'; import { LazyLoadController } from '../../src/components-lib/lazy-load-controller'; -import { LazyUnloadCondition } from '../../src/config/schema/common/media-actions'; +import type { LazyUnloadCondition } from '../../src/config/schema/common/media-actions'; import { callIntersectionHandler, callVisibilityHandler, diff --git a/tests/components-lib/live/microphone-actions-controller.test.ts b/tests/components-lib/live/microphone-actions-controller.test.ts index de63a16a..ad751fd2 100644 --- a/tests/components-lib/live/microphone-actions-controller.test.ts +++ b/tests/components-lib/live/microphone-actions-controller.test.ts @@ -1,7 +1,7 @@ import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { MicrophoneManager } from '../../../src/card-controller/microphone-manager'; +import type { MicrophoneManager } from '../../../src/card-controller/microphone-manager'; import { MicrophoneActionsController } from '../../../src/components-lib/live/microphone-actions-controller'; import { callIntersectionHandler, diff --git a/tests/components-lib/live/utils/get-technology-for-video-rts.test.ts b/tests/components-lib/live/utils/get-technology-for-video-rts.test.ts index a72060a0..04e41095 100644 --- a/tests/components-lib/live/utils/get-technology-for-video-rts.test.ts +++ b/tests/components-lib/live/utils/get-technology-for-video-rts.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest'; import { getTechnologyForVideoRTC } from '../../../../src/components-lib/live/utils/get-technology-for-video-rtc'; -import { VideoRTC } from '../../../../src/components/live/providers/go2rtc/video-rtc'; +import type { VideoRTC } from '../../../../src/components/live/providers/go2rtc/video-rtc'; import { createLitElement } from '../../../test-utils'; // @vitest-environment jsdom diff --git a/tests/components-lib/media-actions-controller.test.ts b/tests/components-lib/media-actions-controller.test.ts index 5180df76..dbc41bec 100644 --- a/tests/components-lib/media-actions-controller.test.ts +++ b/tests/components-lib/media-actions-controller.test.ts @@ -1,12 +1,12 @@ import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { MicrophoneState } from '../../src/card-controller/types'; +import type { MicrophoneState } from '../../src/card-controller/types'; import { MediaActionsController, - MediaActionsControllerOptions, + type MediaActionsControllerOptions, } from '../../src/components-lib/media-actions-controller'; -import { MediaPlayerController, MediaPlayerElement } from '../../src/types'; +import type { MediaPlayerController, MediaPlayerElement } from '../../src/types'; import { callIntersectionHandler, callMutationHandler, diff --git a/tests/components-lib/media-dimensions-container-controller.test.ts b/tests/components-lib/media-dimensions-container-controller.test.ts index a66be7a4..8b0e1958 100644 --- a/tests/components-lib/media-dimensions-container-controller.test.ts +++ b/tests/components-lib/media-dimensions-container-controller.test.ts @@ -1,8 +1,8 @@ import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { MediaDimensionsContainerController } from '../../src/components-lib/media-dimensions-container-controller'; -import { CameraDimensionsConfig, Rotation } from '../../src/config/schema/cameras'; -import { MediaLoadedInfo } from '../../src/types'; +import type { CameraDimensionsConfig, Rotation } from '../../src/config/schema/cameras'; +import type { MediaLoadedInfo } from '../../src/types'; import { callResizeHandler, createLitElement, diff --git a/tests/components-lib/media-filter-controller.test.ts b/tests/components-lib/media-filter-controller.test.ts index af52e5b3..93150f5a 100644 --- a/tests/components-lib/media-filter-controller.test.ts +++ b/tests/components-lib/media-filter-controller.test.ts @@ -9,28 +9,28 @@ import { it, vi, } from 'vitest'; -import { mock, MockProxy } from 'vitest-mock-extended'; +import { mock, type MockProxy } from 'vitest-mock-extended'; import { Capabilities } from '../../src/camera-manager/capabilities'; import { - EventQuery, - MediaQuery, QueryType, - RecordingQuery, - ReviewQuery, + type EventQuery, + type MediaQuery, + type RecordingQuery, + type ReviewQuery, } from '../../src/camera-manager/types'; -import { FoldersManager } from '../../src/card-controller/folders/manager'; -import { ViewManager } from '../../src/card-controller/view/view-manager'; +import type { FoldersManager } from '../../src/card-controller/folders/manager'; +import type { ViewManager } from '../../src/card-controller/view/view-manager'; import { MediaFilterController, - MediaFilterCoreDefaults, MediaFilterCoreFavoriteSelection, MediaFilterCoreReviewedSelection, MediaFilterCoreWhen, MediaFilterMediaType, + type MediaFilterCoreDefaults, } from '../../src/components-lib/media-filter-controller'; import { QuerySource } from '../../src/query-source'; -import { Severity } from '../../src/severity'; +import type { Severity } from '../../src/severity'; import { UnifiedQuery } from '../../src/view/unified-query'; import { createCameraConfig, diff --git a/tests/components-lib/media-grid-controller.test.ts b/tests/components-lib/media-grid-controller.test.ts index db279951..f6c47d0a 100644 --- a/tests/components-lib/media-grid-controller.test.ts +++ b/tests/components-lib/media-grid-controller.test.ts @@ -3,9 +3,9 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { - ExtendedMasonry, - MediaGridConstructorOptions, MediaGridController, + type ExtendedMasonry, + type MediaGridConstructorOptions, } from '../../src/components-lib/media-grid-controller'; import { createSlot, diff --git a/tests/components-lib/media-loaded-info-source-controller.test.ts b/tests/components-lib/media-loaded-info-source-controller.test.ts index 19d850ce..37462511 100644 --- a/tests/components-lib/media-loaded-info-source-controller.test.ts +++ b/tests/components-lib/media-loaded-info-source-controller.test.ts @@ -2,7 +2,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { MediaLoadedInfoSourceController } from '../../src/components-lib/media-loaded-info-source-controller'; -import { MediaPlayerController } from '../../src/types'; +import type { MediaPlayerController } from '../../src/types'; import { createLitElement, createMediaLoadedInfo } from '../test-utils'; // @vitest-environment jsdom diff --git a/tests/components-lib/media-player/jsmpeg.test.ts b/tests/components-lib/media-player/jsmpeg.test.ts index cc01ca2e..b5046f64 100644 --- a/tests/components-lib/media-player/jsmpeg.test.ts +++ b/tests/components-lib/media-player/jsmpeg.test.ts @@ -1,4 +1,4 @@ -import JSMpeg from '@cycjimmy/jsmpeg-player'; +import type JSMpeg from '@cycjimmy/jsmpeg-player'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; diff --git a/tests/components-lib/media-player/updating-image.test.ts b/tests/components-lib/media-player/updating-image.test.ts index 88ae6ce2..ea8c51bb 100644 --- a/tests/components-lib/media-player/updating-image.test.ts +++ b/tests/components-lib/media-player/updating-image.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CachedValueController } from '../../../src/components-lib/cached-value-controller'; +import type { CachedValueController } from '../../../src/components-lib/cached-value-controller'; import { ImageMediaPlayerController } from '../../../src/components-lib/media-player/image'; import { UpdatingImageMediaPlayerController } from '../../../src/components-lib/media-player/updating-image'; import { createLitElement } from '../../test-utils'; diff --git a/tests/components-lib/media/notification-controller.test.ts b/tests/components-lib/media/notification-controller.test.ts index a326690e..3c68da9c 100644 --- a/tests/components-lib/media/notification-controller.test.ts +++ b/tests/components-lib/media/notification-controller.test.ts @@ -2,16 +2,16 @@ import { format } from 'date-fns'; import { afterEach, assert, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManager } from '../../../src/camera-manager/manager'; +import type { CameraManager } from '../../../src/camera-manager/manager'; import { ActionFactory } from '../../../src/card-controller/actions/factory'; -import { CardController } from '../../../src/card-controller/controller'; -import { ViewItemManager } from '../../../src/card-controller/view/item-manager'; -import { ViewManagerEpoch } from '../../../src/card-controller/view/types'; +import type { CardController } from '../../../src/card-controller/controller'; +import type { ViewItemManager } from '../../../src/card-controller/view/item-manager'; +import type { ViewManagerEpoch } from '../../../src/card-controller/view/types'; import { MediaNotificationController, - NotificationControlsContext, + type NotificationControlsContext, } from '../../../src/components-lib/media/notification-controller'; -import { NotificationControl } from '../../../src/config/schema/actions/types'; +import type { NotificationControl } from '../../../src/config/schema/actions/types'; import { formatDateAndTime } from '../../../src/utils/basic'; import { downloadMedia, navigateToTimeline } from '../../../src/utils/media-actions'; import { ViewFolder, ViewMediaType } from '../../../src/view/item'; diff --git a/tests/components-lib/menu-button-controller.test.ts b/tests/components-lib/menu-button-controller.test.ts index 94c6c7f9..b03b493c 100644 --- a/tests/components-lib/menu-button-controller.test.ts +++ b/tests/components-lib/menu-button-controller.test.ts @@ -3,27 +3,27 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { Capabilities } from '../../src/camera-manager/capabilities.js'; -import { CameraManager } from '../../src/camera-manager/manager.js'; -import { CameraManagerCameraMetadata } from '../../src/camera-manager/types.js'; -import { CallManager } from '../../src/card-controller/call/manager.js'; -import { FoldersManager } from '../../src/card-controller/folders/manager.js'; -import { FolderQuery } from '../../src/card-controller/folders/types'; -import { FullscreenManager } from '../../src/card-controller/fullscreen/fullscreen-manager.js'; -import { MediaPlayerManager } from '../../src/card-controller/media-player-manager.js'; -import { MicrophoneManager } from '../../src/card-controller/microphone-manager.js'; -import { PIPManager } from '../../src/card-controller/pip-manager.js'; -import { ViewManager } from '../../src/card-controller/view/view-manager.js'; +import type { CameraManager } from '../../src/camera-manager/manager.js'; +import type { CameraManagerCameraMetadata } from '../../src/camera-manager/types.js'; +import type { CallManager } from '../../src/card-controller/call/manager.js'; +import type { FoldersManager } from '../../src/card-controller/folders/manager.js'; +import type { FolderQuery } from '../../src/card-controller/folders/types'; +import type { FullscreenManager } from '../../src/card-controller/fullscreen/fullscreen-manager.js'; +import type { MediaPlayerManager } from '../../src/card-controller/media-player-manager.js'; +import type { MicrophoneManager } from '../../src/card-controller/microphone-manager.js'; +import type { PIPManager } from '../../src/card-controller/pip-manager.js'; +import type { ViewManager } from '../../src/card-controller/view/view-manager.js'; import { MenuButtonController, - MenuButtonControllerOptions, + type MenuButtonControllerOptions, } from '../../src/components-lib/menu-button-controller.js'; -import { AdvancedCameraCardView } from '../../src/config/schema/common/const.js'; -import { ViewDisplayMode } from '../../src/config/schema/common/display.js'; -import { MenuItem } from '../../src/config/schema/elements/custom/menu/types.js'; -import { AdvancedCameraCardConfig } from '../../src/config/schema/types.js'; -import { HomeAssistant } from '../../src/ha/types.js'; +import type { AdvancedCameraCardView } from '../../src/config/schema/common/const.js'; +import type { ViewDisplayMode } from '../../src/config/schema/common/display.js'; +import type { MenuItem } from '../../src/config/schema/elements/custom/menu/types.js'; +import type { AdvancedCameraCardConfig } from '../../src/config/schema/types.js'; +import type { HomeAssistant } from '../../src/ha/types.js'; import { QuerySource } from '../../src/query-source'; -import { MediaPlayerController, PTZMovementType } from '../../src/types.js'; +import { PTZMovementType, type MediaPlayerController } from '../../src/types.js'; import { createGeneralAction, createViewAction } from '../../src/utils/action.js'; import { ViewMedia, ViewMediaType } from '../../src/view/item.js'; import { QueryResults } from '../../src/view/query-results.js'; @@ -32,7 +32,7 @@ import { getCameraIDsWithCapabilityForView, isViewSupported, } from '../../src/view/view-support.js'; -import { View } from '../../src/view/view.js'; +import type { View } from '../../src/view/view.js'; import { createCameraConfig, createCameraManager, diff --git a/tests/components-lib/menu-controller.test.ts b/tests/components-lib/menu-controller.test.ts index 949de396..08e59e3a 100644 --- a/tests/components-lib/menu-controller.test.ts +++ b/tests/components-lib/menu-controller.test.ts @@ -4,8 +4,8 @@ import { mock } from 'vitest-mock-extended'; import type { LockManager } from '../../src/card-controller/lock/manager'; import type { LockManagerEpoch } from '../../src/card-controller/lock/types'; import { MenuController } from '../../src/components-lib/menu-controller.js'; -import { SubmenuItem } from '../../src/components/submenu/types.js'; -import { MenuConfig, menuConfigSchema } from '../../src/config/schema/menu.js'; +import type { SubmenuItem } from '../../src/components/submenu/types.js'; +import { menuConfigSchema, type MenuConfig } from '../../src/config/schema/menu.js'; import { createInteractionActionEvent, createLitElement, diff --git a/tests/components-lib/navigation.test.ts b/tests/components-lib/navigation.test.ts index fe346593..a3c18de4 100644 --- a/tests/components-lib/navigation.test.ts +++ b/tests/components-lib/navigation.test.ts @@ -1,19 +1,22 @@ -import { NonEmptyTuple } from 'type-fest'; +import type { NonEmptyTuple } from 'type-fest'; import { assert, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManager } from '../../src/camera-manager/manager'; -import { EventQuery, QueryType } from '../../src/camera-manager/types'; -import { FoldersManager } from '../../src/card-controller/folders/manager'; -import { FolderPathComponent } from '../../src/card-controller/folders/types'; -import { ViewManagerEpoch, ViewModifier } from '../../src/card-controller/view/types'; +import type { CameraManager } from '../../src/camera-manager/manager'; +import { QueryType, type EventQuery } from '../../src/camera-manager/types'; +import type { FoldersManager } from '../../src/card-controller/folders/manager'; +import type { FolderPathComponent } from '../../src/card-controller/folders/types'; +import type { + ViewManagerEpoch, + ViewModifier, +} from '../../src/card-controller/view/types'; import { - FolderNavigationParamaters, getUpFolderItem, - MediaNavigationParamaters, navigateToFolder, navigateToMedia, navigateUp, + type FolderNavigationParamaters, + type MediaNavigationParamaters, } from '../../src/components-lib/navigation'; import { QuerySource } from '../../src/query-source'; import { ViewFolder, ViewMedia } from '../../src/view/item'; diff --git a/tests/components-lib/notification/action.test.ts b/tests/components-lib/notification/action.test.ts index a3bf4978..1049c1ff 100644 --- a/tests/components-lib/notification/action.test.ts +++ b/tests/components-lib/notification/action.test.ts @@ -3,7 +3,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { dispatchActionExecutionRequest } from '../../../src/card-controller/actions/utils/execution-request'; import { handleControlAction } from '../../../src/components-lib/notification/action'; -import { NotificationControl } from '../../../src/config/schema/actions/types'; +import type { NotificationControl } from '../../../src/config/schema/actions/types'; import { getActionConfigGivenAction, stopEventFromActivatingCardWideActions, diff --git a/tests/components-lib/notification/summarize.test.ts b/tests/components-lib/notification/summarize.test.ts index f5c56168..f8481bc7 100644 --- a/tests/components-lib/notification/summarize.test.ts +++ b/tests/components-lib/notification/summarize.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest'; import { summarizeNotification } from '../../../src/components-lib/notification/summarize'; -import { Notification } from '../../../src/config/schema/actions/types'; +import type { Notification } from '../../../src/config/schema/actions/types'; describe('summarizeNotification', () => { it('should return the body text when present', () => { diff --git a/tests/components-lib/ptz/drag-controller.test.ts b/tests/components-lib/ptz/drag-controller.test.ts index 16f15c0c..7b0f8fa5 100644 --- a/tests/components-lib/ptz/drag-controller.test.ts +++ b/tests/components-lib/ptz/drag-controller.test.ts @@ -3,7 +3,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { dispatchActionExecutionRequest } from '../../../src/card-controller/actions/utils/execution-request.js'; import { PTZDragController } from '../../../src/components-lib/ptz/drag-controller'; -import { +import type { PTZAction, PTZActionPhase, } from '../../../src/config/schema/actions/custom/ptz'; diff --git a/tests/components-lib/ptz/ptz-controller.test.ts b/tests/components-lib/ptz/ptz-controller.test.ts index 70e6b8ec..05770b6c 100644 --- a/tests/components-lib/ptz/ptz-controller.test.ts +++ b/tests/components-lib/ptz/ptz-controller.test.ts @@ -2,10 +2,10 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { Capabilities } from '../../../src/camera-manager/capabilities'; import { PTZController } from '../../../src/components-lib/ptz/ptz-controller'; -import { PTZControlAction } from '../../../src/config/schema/actions/custom/ptz'; +import type { PTZControlAction } from '../../../src/config/schema/actions/custom/ptz'; import { - PTZControlsConfig, ptzControlsConfigSchema, + type PTZControlsConfig, } from '../../../src/config/schema/common/controls/ptz'; import { PTZMovementType } from '../../../src/types'; import { createCameraManager, createCapabilities, createStore } from '../../test-utils'; diff --git a/tests/components-lib/signed-url-controller.test.ts b/tests/components-lib/signed-url-controller.test.ts index 6990b71e..fec31004 100644 --- a/tests/components-lib/signed-url-controller.test.ts +++ b/tests/components-lib/signed-url-controller.test.ts @@ -1,11 +1,11 @@ -import { ReactiveControllerHost } from 'lit'; +import type { ReactiveControllerHost } from 'lit'; import { afterEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { SignedURLController } from '../../src/components-lib/signed-url-controller'; import { homeAssistantGetSignedURLIfNecessary } from '../../src/ha/sign-path'; import { createProxiedEndpointIfNecessary } from '../../src/ha/web-proxy'; -import { Endpoint } from '../../src/types'; +import type { Endpoint } from '../../src/types'; import { createHASS, flushPromises } from '../test-utils'; vi.mock('../../src/ha/sign-path'); diff --git a/tests/components-lib/status-bar-controller.test.ts b/tests/components-lib/status-bar-controller.test.ts index 32f05306..149f5bf2 100644 --- a/tests/components-lib/status-bar-controller.test.ts +++ b/tests/components-lib/status-bar-controller.test.ts @@ -2,8 +2,8 @@ import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; import { StatusBarController } from '../../src/components-lib/status-bar-controller'; import { - StatusBarConfig, statusBarConfigSchema, + type StatusBarConfig, } from '../../src/config/schema/status-bar'; import { createInteractionActionEvent, createLitElement } from '../test-utils'; diff --git a/tests/components-lib/thumbnail/feature/controller.test.ts b/tests/components-lib/thumbnail/feature/controller.test.ts index 0faa0f96..e9e8327c 100644 --- a/tests/components-lib/thumbnail/feature/controller.test.ts +++ b/tests/components-lib/thumbnail/feature/controller.test.ts @@ -2,7 +2,7 @@ import { format } from 'date-fns'; import { assert, describe, expect, it } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManager } from '../../../../src/camera-manager/manager'; +import type { CameraManager } from '../../../../src/camera-manager/manager'; import { ThumbnailFeatureController } from '../../../../src/components-lib/thumbnail/feature/controller'; import { ViewFolder } from '../../../../src/view/item'; import { createFolder, TestViewMedia } from '../../../test-utils'; diff --git a/tests/components-lib/timeline/source.test.ts b/tests/components-lib/timeline/source.test.ts index 207078f2..e8ef18dd 100644 --- a/tests/components-lib/timeline/source.test.ts +++ b/tests/components-lib/timeline/source.test.ts @@ -1,7 +1,7 @@ import { add } from 'date-fns'; -import { NonEmptyTuple } from 'type-fest'; -import { DataSet } from 'vis-data'; -import { TimelineWindow } from 'vis-timeline'; +import type { NonEmptyTuple } from 'type-fest'; +import type { DataSet } from 'vis-data'; +import type { TimelineWindow } from 'vis-timeline'; import { afterAll, assert, @@ -14,30 +14,30 @@ import { } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManager } from '../../../src/camera-manager/manager'; +import type { CameraManager } from '../../../src/camera-manager/manager'; import { Engine, - EventQuery, QueryResultsType, QueryType, - RecordingSegment, - RecordingSegmentsQuery, - RecordingSegmentsQueryResults, - ReviewQuery, + type EventQuery, + type RecordingSegment, + type RecordingSegmentsQuery, + type RecordingSegmentsQueryResults, + type ReviewQuery, } from '../../../src/camera-manager/types'; -import { FoldersManager } from '../../../src/card-controller/folders/manager'; -import { +import type { FoldersManager } from '../../../src/card-controller/folders/manager'; +import type { FolderPathComponent, FolderQuery, } from '../../../src/card-controller/folders/types'; import { - AdvancedCameraCardTimelineItem, TimelineDataSource, + type AdvancedCameraCardTimelineItem, } from '../../../src/components-lib/timeline/source'; -import { ConditionStateManagerReadonlyInterface } from '../../../src/condition-trigger/conditions/types'; +import type { ConditionStateManagerReadonlyInterface } from '../../../src/condition-trigger/conditions/types'; import { QuerySource } from '../../../src/query-source'; import { ViewMediaType } from '../../../src/view/item'; -import { QueryNode, UnifiedQuery } from '../../../src/view/unified-query'; +import { UnifiedQuery, type QueryNode } from '../../../src/view/unified-query'; import { createCameraManager, createFolder, diff --git a/tests/components-lib/zoom/zoom-controller.test.ts b/tests/components-lib/zoom/zoom-controller.test.ts index e06be781..0807273a 100644 --- a/tests/components-lib/zoom/zoom-controller.test.ts +++ b/tests/components-lib/zoom/zoom-controller.test.ts @@ -1,4 +1,7 @@ -import Panzoom, { PanzoomEventDetail, PanzoomObject } from '@dermotduffy/panzoom'; +import Panzoom, { + type PanzoomEventDetail, + type PanzoomObject, +} from '@dermotduffy/panzoom'; import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import { mock, mockClear } from 'vitest-mock-extended'; diff --git a/tests/components-lib/zoom/zoom-view-context.test.ts b/tests/components-lib/zoom/zoom-view-context.test.ts index d946a18e..15b8beb3 100644 --- a/tests/components-lib/zoom/zoom-view-context.test.ts +++ b/tests/components-lib/zoom/zoom-view-context.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { MergeContextViewModifier } from '../../../src/card-controller/view/modifiers/merge-context'; -import { ViewManager } from '../../../src/card-controller/view/view-manager'; +import type { ViewManager } from '../../../src/card-controller/view/view-manager'; import { generateViewContextForZoom, handleZoomSettingsObservedEvent, diff --git a/tests/condition-trigger/conditions/conditions/microphone.test.ts b/tests/condition-trigger/conditions/conditions/microphone.test.ts index 84306ba8..1e6259c1 100644 --- a/tests/condition-trigger/conditions/conditions/microphone.test.ts +++ b/tests/condition-trigger/conditions/conditions/microphone.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; -import { MicrophoneState } from '../../../../src/card-controller/types'; +import type { MicrophoneState } from '../../../../src/card-controller/types'; import { createConditionEvaluator } from '../../../../src/condition-trigger/conditions/factory'; import { createEvaluatorContext } from './test-utils'; diff --git a/tests/condition-trigger/conditions/conditions/test-utils.ts b/tests/condition-trigger/conditions/conditions/test-utils.ts index ff685e08..5a67f71f 100644 --- a/tests/condition-trigger/conditions/conditions/test-utils.ts +++ b/tests/condition-trigger/conditions/conditions/test-utils.ts @@ -1,5 +1,5 @@ import { TemplateRenderer } from '../../../../src/card-controller/templates'; -import { EvaluatorContext } from '../../../../src/condition-trigger/conditions/conditions/types'; +import type { EvaluatorContext } from '../../../../src/condition-trigger/conditions/conditions/types'; export const createEvaluatorContext = (): EvaluatorContext => ({ templateRenderer: new TemplateRenderer(), diff --git a/tests/condition-trigger/conditions/factory.test.ts b/tests/condition-trigger/conditions/factory.test.ts index 726daa7b..49e70a84 100644 --- a/tests/condition-trigger/conditions/factory.test.ts +++ b/tests/condition-trigger/conditions/factory.test.ts @@ -10,10 +10,10 @@ import { KeyConditionEvaluator } from '../../../src/condition-trigger/conditions import { MediaLoadedConditionEvaluator } from '../../../src/condition-trigger/conditions/conditions/media-loaded'; import { MicrophoneConditionEvaluator } from '../../../src/condition-trigger/conditions/conditions/microphone'; import { TriggeredConditionEvaluator } from '../../../src/condition-trigger/conditions/conditions/triggered'; -import { ConditionEvaluator } from '../../../src/condition-trigger/conditions/conditions/types'; +import type { ConditionEvaluator } from '../../../src/condition-trigger/conditions/conditions/types'; import { ViewConditionEvaluator } from '../../../src/condition-trigger/conditions/conditions/view'; import { createConditionEvaluatorForTrigger } from '../../../src/condition-trigger/conditions/factory'; -import { Trigger } from '../../../src/config/schema/condition-trigger/triggers/types'; +import type { Trigger } from '../../../src/config/schema/condition-trigger/triggers/types'; type ConditionEvaluatorConstructor = new (...args: never[]) => ConditionEvaluator; diff --git a/tests/condition-trigger/conditions/state-manager-via-event.test.ts b/tests/condition-trigger/conditions/state-manager-via-event.test.ts index 63eeba47..3bc4898b 100644 --- a/tests/condition-trigger/conditions/state-manager-via-event.test.ts +++ b/tests/condition-trigger/conditions/state-manager-via-event.test.ts @@ -1,10 +1,10 @@ import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { ConditionStateManager } from '../../../src/condition-trigger/conditions/state-manager'; +import type { ConditionStateManager } from '../../../src/condition-trigger/conditions/state-manager'; import { - ConditionStateManagerGetEvent, getConditionStateManagerViaEvent, + type ConditionStateManagerGetEvent, } from '../../../src/condition-trigger/conditions/state-manager-via-event'; // @vitest-environment jsdom diff --git a/tests/condition-trigger/conditions/state-manager.test.ts b/tests/condition-trigger/conditions/state-manager.test.ts index 908bf791..e89d5126 100644 --- a/tests/condition-trigger/conditions/state-manager.test.ts +++ b/tests/condition-trigger/conditions/state-manager.test.ts @@ -1,7 +1,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest'; import { ConditionStateManager } from '../../../src/condition-trigger/conditions/state-manager'; -import { +import type { ConditionState, ConditionStateChange, } from '../../../src/condition-trigger/conditions/types'; diff --git a/tests/condition-trigger/triggers/factory.test.ts b/tests/condition-trigger/triggers/factory.test.ts index d497b2c8..066f91cd 100644 --- a/tests/condition-trigger/triggers/factory.test.ts +++ b/tests/condition-trigger/triggers/factory.test.ts @@ -20,12 +20,12 @@ import { ScreenTrigger } from '../../../src/condition-trigger/triggers/triggers/ import { StateTrigger } from '../../../src/condition-trigger/triggers/triggers/state'; import { TemplateTrigger } from '../../../src/condition-trigger/triggers/triggers/template'; import { TriggeredTrigger } from '../../../src/condition-trigger/triggers/triggers/triggered'; -import { +import type { TriggerEvaluator, TriggerEvaluatorContext, } from '../../../src/condition-trigger/triggers/triggers/types'; import { ViewTrigger } from '../../../src/condition-trigger/triggers/triggers/view'; -import { Trigger } from '../../../src/config/schema/condition-trigger/triggers/types'; +import type { Trigger } from '../../../src/config/schema/condition-trigger/triggers/types'; import { createHASSManager } from '../../test-utils'; type TriggerEvaluatorConstructor = new (...args: never[]) => TriggerEvaluator; diff --git a/tests/condition-trigger/triggers/manager.test.ts b/tests/condition-trigger/triggers/manager.test.ts index ad993cb8..50166a41 100644 --- a/tests/condition-trigger/triggers/manager.test.ts +++ b/tests/condition-trigger/triggers/manager.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../src/condition-trigger/conditions/state-manager'; import { TriggersManager } from '../../../src/condition-trigger/triggers/manager'; -import { Trigger } from '../../../src/config/schema/condition-trigger/triggers/types'; +import type { Trigger } from '../../../src/config/schema/condition-trigger/triggers/types'; import { createHASS, createHASSManager, createStateEntity } from '../../test-utils'; // @vitest-environment jsdom diff --git a/tests/condition-trigger/triggers/triggers/call.test.ts b/tests/condition-trigger/triggers/triggers/call.test.ts index 894c0881..3eba8455 100644 --- a/tests/condition-trigger/triggers/triggers/call.test.ts +++ b/tests/condition-trigger/triggers/triggers/call.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { CallTrigger } from '../../../../src/condition-trigger/triggers/triggers/call'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createTriggerEvaluatorContext } from './test-utils'; // @vitest-environment jsdom diff --git a/tests/condition-trigger/triggers/triggers/camera.test.ts b/tests/condition-trigger/triggers/triggers/camera.test.ts index a2ac050f..ab44722c 100644 --- a/tests/condition-trigger/triggers/triggers/camera.test.ts +++ b/tests/condition-trigger/triggers/triggers/camera.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { CameraTrigger } from '../../../../src/condition-trigger/triggers/triggers/camera'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createConfig } from '../../../test-utils'; import { createTriggerEvaluatorContext } from './test-utils'; diff --git a/tests/condition-trigger/triggers/triggers/config.test.ts b/tests/condition-trigger/triggers/triggers/config.test.ts index b6ff7272..b6d03fe3 100644 --- a/tests/condition-trigger/triggers/triggers/config.test.ts +++ b/tests/condition-trigger/triggers/triggers/config.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { ConfigTrigger } from '../../../../src/condition-trigger/triggers/triggers/config'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createConfig } from '../../../test-utils'; import { createTriggerEvaluatorContext } from './test-utils'; diff --git a/tests/condition-trigger/triggers/triggers/display-mode.test.ts b/tests/condition-trigger/triggers/triggers/display-mode.test.ts index 71573dc2..1cee3567 100644 --- a/tests/condition-trigger/triggers/triggers/display-mode.test.ts +++ b/tests/condition-trigger/triggers/triggers/display-mode.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { DisplayModeTrigger } from '../../../../src/condition-trigger/triggers/triggers/display-mode'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createTriggerEvaluatorContext } from './test-utils'; // @vitest-environment jsdom diff --git a/tests/condition-trigger/triggers/triggers/event.test.ts b/tests/condition-trigger/triggers/triggers/event.test.ts index a77c96c1..215e6aec 100644 --- a/tests/condition-trigger/triggers/triggers/event.test.ts +++ b/tests/condition-trigger/triggers/triggers/event.test.ts @@ -1,12 +1,12 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { +import type { EventSubscriptionRequest, EventWatcherSubscriptionInterface, } from '../../../../src/card-controller/hass/event-watcher'; import { EventTrigger } from '../../../../src/condition-trigger/triggers/triggers/event'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createHASSEvent, createHASSManager } from '../../../test-utils'; import { createTriggerEvaluatorContext } from './test-utils'; diff --git a/tests/condition-trigger/triggers/triggers/expand.test.ts b/tests/condition-trigger/triggers/triggers/expand.test.ts index 99963084..2dee18f6 100644 --- a/tests/condition-trigger/triggers/triggers/expand.test.ts +++ b/tests/condition-trigger/triggers/triggers/expand.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { ExpandTrigger } from '../../../../src/condition-trigger/triggers/triggers/expand'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createTriggerEvaluatorContext } from './test-utils'; // @vitest-environment jsdom diff --git a/tests/condition-trigger/triggers/triggers/fullscreen.test.ts b/tests/condition-trigger/triggers/triggers/fullscreen.test.ts index 6c373449..95d398fd 100644 --- a/tests/condition-trigger/triggers/triggers/fullscreen.test.ts +++ b/tests/condition-trigger/triggers/triggers/fullscreen.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { FullscreenTrigger } from '../../../../src/condition-trigger/triggers/triggers/fullscreen'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createTriggerEvaluatorContext } from './test-utils'; // @vitest-environment jsdom diff --git a/tests/condition-trigger/triggers/triggers/interaction.test.ts b/tests/condition-trigger/triggers/triggers/interaction.test.ts index 622dc53e..2be55236 100644 --- a/tests/condition-trigger/triggers/triggers/interaction.test.ts +++ b/tests/condition-trigger/triggers/triggers/interaction.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { InteractionTrigger } from '../../../../src/condition-trigger/triggers/triggers/interaction'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createTriggerEvaluatorContext } from './test-utils'; // @vitest-environment jsdom diff --git a/tests/condition-trigger/triggers/triggers/media-loaded.test.ts b/tests/condition-trigger/triggers/triggers/media-loaded.test.ts index 27d8537b..5bb3707f 100644 --- a/tests/condition-trigger/triggers/triggers/media-loaded.test.ts +++ b/tests/condition-trigger/triggers/triggers/media-loaded.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { MediaLoadedTrigger } from '../../../../src/condition-trigger/triggers/triggers/media-loaded'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createMediaLoadedInfo } from '../../../test-utils'; import { createTriggerEvaluatorContext } from './test-utils'; diff --git a/tests/condition-trigger/triggers/triggers/microphone.test.ts b/tests/condition-trigger/triggers/triggers/microphone.test.ts index 1eb2ca83..9c8b23c0 100644 --- a/tests/condition-trigger/triggers/triggers/microphone.test.ts +++ b/tests/condition-trigger/triggers/triggers/microphone.test.ts @@ -1,9 +1,9 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; -import { MicrophoneState } from '../../../../src/card-controller/types'; +import type { MicrophoneState } from '../../../../src/card-controller/types'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { MicrophoneTrigger } from '../../../../src/condition-trigger/triggers/triggers/microphone'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createTriggerEvaluatorContext } from './test-utils'; // @vitest-environment jsdom diff --git a/tests/condition-trigger/triggers/triggers/numeric-state.test.ts b/tests/condition-trigger/triggers/triggers/numeric-state.test.ts index a3a0c4d3..ca2708dd 100644 --- a/tests/condition-trigger/triggers/triggers/numeric-state.test.ts +++ b/tests/condition-trigger/triggers/triggers/numeric-state.test.ts @@ -1,9 +1,9 @@ -import { HassEntities, HassEntity } from 'home-assistant-js-websocket'; -import { afterEach, beforeEach, describe, expect, it, Mock, vi } from 'vitest'; +import type { HassEntities, HassEntity } from 'home-assistant-js-websocket'; +import { afterEach, beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { NumericStateTrigger } from '../../../../src/condition-trigger/triggers/triggers/numeric-state'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createHASS, createStateEntity } from '../../../test-utils'; import { createTriggerEvaluatorContext } from './test-utils'; diff --git a/tests/condition-trigger/triggers/triggers/screen.test.ts b/tests/condition-trigger/triggers/triggers/screen.test.ts index acfb9c50..ab2c730e 100644 --- a/tests/condition-trigger/triggers/triggers/screen.test.ts +++ b/tests/condition-trigger/triggers/triggers/screen.test.ts @@ -1,7 +1,7 @@ -import { afterEach, describe, expect, it, Mock, vi } from 'vitest'; +import { afterEach, describe, expect, it, vi, type Mock } from 'vitest'; import { ScreenTrigger } from '../../../../src/condition-trigger/triggers/triggers/screen'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; // @vitest-environment jsdom describe('ScreenTrigger', () => { diff --git a/tests/condition-trigger/triggers/triggers/state.test.ts b/tests/condition-trigger/triggers/triggers/state.test.ts index c85e4544..8659af69 100644 --- a/tests/condition-trigger/triggers/triggers/state.test.ts +++ b/tests/condition-trigger/triggers/triggers/state.test.ts @@ -1,9 +1,9 @@ -import { HassEntities, HassEntity } from 'home-assistant-js-websocket'; -import { afterEach, beforeEach, describe, expect, it, Mock, vi } from 'vitest'; +import type { HassEntities, HassEntity } from 'home-assistant-js-websocket'; +import { afterEach, beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { StateTrigger } from '../../../../src/condition-trigger/triggers/triggers/state'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createHASS, createStateEntity } from '../../../test-utils'; import { createTriggerEvaluatorContext } from './test-utils'; diff --git a/tests/condition-trigger/triggers/triggers/template.test.ts b/tests/condition-trigger/triggers/triggers/template.test.ts index ca99dfbe..4f255b31 100644 --- a/tests/condition-trigger/triggers/triggers/template.test.ts +++ b/tests/condition-trigger/triggers/triggers/template.test.ts @@ -1,8 +1,8 @@ -import { afterEach, beforeEach, describe, expect, it, Mock, vi } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { TemplateTrigger } from '../../../../src/condition-trigger/triggers/triggers/template'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createHASS, createStateEntity } from '../../../test-utils'; import { createTriggerEvaluatorContext } from './test-utils'; diff --git a/tests/condition-trigger/triggers/triggers/test-utils.ts b/tests/condition-trigger/triggers/triggers/test-utils.ts index 899c2285..67b9b507 100644 --- a/tests/condition-trigger/triggers/triggers/test-utils.ts +++ b/tests/condition-trigger/triggers/triggers/test-utils.ts @@ -1,6 +1,6 @@ import { TemplateRenderer } from '../../../../src/card-controller/templates'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; -import { TriggerEvaluatorContext } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerEvaluatorContext } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createHASSManager } from '../../../test-utils'; export const createTriggerEvaluatorContext = ( diff --git a/tests/condition-trigger/triggers/triggers/triggered.test.ts b/tests/condition-trigger/triggers/triggers/triggered.test.ts index e75f2585..b6019f4c 100644 --- a/tests/condition-trigger/triggers/triggers/triggered.test.ts +++ b/tests/condition-trigger/triggers/triggers/triggered.test.ts @@ -1,8 +1,8 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; import { TriggeredTrigger } from '../../../../src/condition-trigger/triggers/triggers/triggered'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { createTriggerEvaluatorContext } from './test-utils'; // @vitest-environment jsdom diff --git a/tests/condition-trigger/triggers/triggers/view.test.ts b/tests/condition-trigger/triggers/triggers/view.test.ts index 72c6d96b..4cf64980 100644 --- a/tests/condition-trigger/triggers/triggers/view.test.ts +++ b/tests/condition-trigger/triggers/triggers/view.test.ts @@ -1,7 +1,7 @@ -import { describe, expect, it, Mock, vi } from 'vitest'; +import { describe, expect, it, vi, type Mock } from 'vitest'; import { ConditionStateManager } from '../../../../src/condition-trigger/conditions/state-manager'; -import { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; +import type { TriggerOfType } from '../../../../src/condition-trigger/triggers/triggers/types'; import { ViewTrigger } from '../../../../src/condition-trigger/triggers/triggers/view'; import { createTriggerEvaluatorContext } from './test-utils'; diff --git a/tests/config/management.test.ts b/tests/config/management.test.ts index 3a241076..0b4d8646 100644 --- a/tests/config/management.test.ts +++ b/tests/config/management.test.ts @@ -19,12 +19,12 @@ import { upgradeObjectRecursively, upgradeWithOverrides, } from '../../src/config/management.js'; -import { PTZControlAction } from '../../src/config/schema/actions/custom/ptz.js'; -import { CallServiceActionConfig } from '../../src/config/schema/actions/stock/call-service.js'; -import { PerformActionActionConfig } from '../../src/config/schema/actions/stock/perform-action.js'; -import { Actions } from '../../src/config/schema/actions/types.js'; +import type { PTZControlAction } from '../../src/config/schema/actions/custom/ptz.js'; +import type { CallServiceActionConfig } from '../../src/config/schema/actions/stock/call-service.js'; +import type { PerformActionActionConfig } from '../../src/config/schema/actions/stock/perform-action.js'; +import type { Actions } from '../../src/config/schema/actions/types.js'; import { advancedCameraCardConfigSchema } from '../../src/config/schema/types.js'; -import { RawAdvancedCameraCardConfig } from '../../src/config/types.js'; +import type { RawAdvancedCameraCardConfig } from '../../src/config/types.js'; import { getParseErrorPaths } from '../../src/utils/zod/parse-errors.js'; describe('general functions', () => { diff --git a/tests/config/profiles/index.test.ts b/tests/config/profiles/index.test.ts index 43f26d89..96e97bd1 100644 --- a/tests/config/profiles/index.test.ts +++ b/tests/config/profiles/index.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest'; import { setProfiles } from '../../../src/config/profiles/set-profiles'; -import { ProfileType } from '../../../src/config/schema/profiles'; +import type { ProfileType } from '../../../src/config/schema/profiles'; import { createConfig } from '../../test-utils'; describe('setProfiles', () => { diff --git a/tests/config/schema/folders.test.ts b/tests/config/schema/folders.test.ts index d11140bf..f3038d99 100644 --- a/tests/config/schema/folders.test.ts +++ b/tests/config/schema/folders.test.ts @@ -1,11 +1,11 @@ -import { NonEmptyTuple } from 'type-fest'; +import type { NonEmptyTuple } from 'type-fest'; import { describe, expect, it } from 'vitest'; import { - FolderConfigWithoutID, foldersConfigSchema, matcherSchema, transformPathURLToPathArray, + type FolderConfigWithoutID, } from '../../../src/config/schema/folders'; describe('transformPathURLToPathArray', () => { diff --git a/tests/ha/browse-media/browse-media-to-view-media.test.ts b/tests/ha/browse-media/browse-media-to-view-media.test.ts index d4c610ae..5062aed4 100644 --- a/tests/ha/browse-media/browse-media-to-view-media.test.ts +++ b/tests/ha/browse-media/browse-media-to-view-media.test.ts @@ -2,10 +2,10 @@ import { describe, expect, it } from 'vitest'; import { getViewMediaFromBrowseMediaArray } from '../../../src/ha/browse-media/browse-media-to-view-media'; import { - BrowseMediaMetadata, MEDIA_CLASS_IMAGE, MEDIA_CLASS_VIDEO, - RichBrowseMedia, + type BrowseMediaMetadata, + type RichBrowseMedia, } from '../../../src/ha/browse-media/types'; import { createBrowseMedia, createRichBrowseMedia } from '../../test-utils'; diff --git a/tests/ha/browse-media/sort.test.ts b/tests/ha/browse-media/sort.test.ts index 5875c044..e7811dac 100644 --- a/tests/ha/browse-media/sort.test.ts +++ b/tests/ha/browse-media/sort.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from 'vitest'; import { sortMostRecentFirst } from '../../../src/ha/browse-media/sort'; -import { +import type { BrowseMediaMetadata, RichBrowseMedia, } from '../../../src/ha/browse-media/types'; diff --git a/tests/ha/browse-media/walker.test.ts b/tests/ha/browse-media/walker.test.ts index 175a69dc..2a427742 100644 --- a/tests/ha/browse-media/walker.test.ts +++ b/tests/ha/browse-media/walker.test.ts @@ -1,12 +1,15 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { - BrowseMedia, BrowseMediaCache, browseMediaSchema, - RichBrowseMedia, + type BrowseMedia, + type RichBrowseMedia, } from '../../../src/ha/browse-media/types'; -import { BrowseMediaStep, BrowseMediaWalker } from '../../../src/ha/browse-media/walker'; +import { + BrowseMediaWalker, + type BrowseMediaStep, +} from '../../../src/ha/browse-media/walker'; import { homeAssistantWSRequest } from '../../../src/ha/ws-request'; import { createBrowseMedia, createHASS } from '../../test-utils'; diff --git a/tests/ha/connection/subscription-health-monitor.test.ts b/tests/ha/connection/subscription-health-monitor.test.ts index f9aefc30..3a4d8a07 100644 --- a/tests/ha/connection/subscription-health-monitor.test.ts +++ b/tests/ha/connection/subscription-health-monitor.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest'; import { SubscriptionHealthMonitor } from '../../../src/ha/connection/subscription-health-monitor'; -import { HASSWebSocketSubscriptionStatus } from '../../../src/ha/connection/subscription-manager'; +import type { HASSWebSocketSubscriptionStatus } from '../../../src/ha/connection/subscription-manager'; interface TestRequest { id: string; diff --git a/tests/ha/connection/subscription-manager.test.ts b/tests/ha/connection/subscription-manager.test.ts index 4296aa7d..4c37d8db 100644 --- a/tests/ha/connection/subscription-manager.test.ts +++ b/tests/ha/connection/subscription-manager.test.ts @@ -1,17 +1,21 @@ -import { Connection, STATE_RUNNING, STATE_STARTING } from 'home-assistant-js-websocket'; +import { + STATE_RUNNING, + STATE_STARTING, + type Connection, +} from 'home-assistant-js-websocket'; import { afterEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { HASSConnectionSubscriptionManager, - HASSWebSocketStatusCallback, - HASSWebSocketSubscriptionStatus, + type HASSWebSocketStatusCallback, + type HASSWebSocketSubscriptionStatus, } from '../../../src/ha/connection/subscription-manager'; -import { +import type { HASSWebSocketLiveness, HASSWebSocketOpenCallback, } from '../../../src/ha/connection/types'; -import { HASSSource } from '../../../src/ha/source'; +import type { HASSSource } from '../../../src/ha/source'; import { createHASS, createHASSSource, diff --git a/tests/ha/download.test.ts b/tests/ha/download.test.ts index 07ecf911..f580b7c3 100644 --- a/tests/ha/download.test.ts +++ b/tests/ha/download.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { getMediaDownloadPath } from '../../src/ha/download'; -import { ResolvedMediaCache, resolveMedia } from '../../src/ha/resolved-media.js'; +import { resolveMedia, type ResolvedMediaCache } from '../../src/ha/resolved-media.js'; import { createHASS } from '../test-utils'; vi.mock('../../src/ha/canonical-url.js', () => ({ diff --git a/tests/ha/event-match.test.ts b/tests/ha/event-match.test.ts index 40ae37cd..cacd87e4 100644 --- a/tests/ha/event-match.test.ts +++ b/tests/ha/event-match.test.ts @@ -1,4 +1,4 @@ -import { HassEventBase } from 'home-assistant-js-websocket'; +import type { HassEventBase } from 'home-assistant-js-websocket'; import { describe, expect, it } from 'vitest'; import { matchesEventContext, matchesEventData } from '../../src/ha/event-match'; diff --git a/tests/ha/fetch.test.ts b/tests/ha/fetch.test.ts index 07692028..ca4be0b1 100644 --- a/tests/ha/fetch.test.ts +++ b/tests/ha/fetch.test.ts @@ -3,7 +3,7 @@ import { z } from 'zod'; import { homeAssistantSignAndFetch } from '../../src/ha/fetch'; import { homeAssistantGetSignedURLIfNecessary } from '../../src/ha/sign-path'; -import { AdvancedCameraCardError, Endpoint } from '../../src/types'; +import type { AdvancedCameraCardError, Endpoint } from '../../src/types'; import { createHASS } from '../test-utils'; vi.mock('../../src/ha/sign-path'); diff --git a/tests/ha/haptic.test.ts b/tests/ha/haptic.test.ts index a8b02611..917f081c 100644 --- a/tests/ha/haptic.test.ts +++ b/tests/ha/haptic.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest'; import { fireHASSEvent } from '../../src/ha/fire-hass-event.js'; -import { forwardHaptic, HapticType } from '../../src/ha/haptic.js'; +import { forwardHaptic, type HapticType } from '../../src/ha/haptic.js'; vi.mock('../../src/ha/fire-hass-event.js', () => ({ fireHASSEvent: vi.fn(), diff --git a/tests/ha/registry/entity/mock.ts b/tests/ha/registry/entity/mock.ts index 02cbc30c..973ad926 100644 --- a/tests/ha/registry/entity/mock.ts +++ b/tests/ha/registry/entity/mock.ts @@ -1,9 +1,9 @@ import { - Entity, EntityCache, - EntityRegistryManager, + type Entity, + type EntityRegistryManager, } from '../../../../src/ha/registry/entity/types'; -import { HomeAssistant } from '../../../../src/ha/types'; +import type { HomeAssistant } from '../../../../src/ha/types'; export class EntityRegistryManagerMock implements EntityRegistryManager { private _cache = new EntityCache(); diff --git a/tests/ha/resolved-media.test.ts b/tests/ha/resolved-media.test.ts index 440d8149..41f06e68 100644 --- a/tests/ha/resolved-media.test.ts +++ b/tests/ha/resolved-media.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; import { ResolvedMediaCache, resolveMedia } from '../../src/ha/resolved-media'; -import { ResolvedMedia, resolvedMediaSchema } from '../../src/ha/types'; +import { resolvedMediaSchema, type ResolvedMedia } from '../../src/ha/types'; import { homeAssistantWSRequest } from '../../src/ha/ws-request'; import { errorToConsole } from '../../src/utils/basic'; import { createHASS } from '../test-utils'; diff --git a/tests/ha/web-proxy.test.ts b/tests/ha/web-proxy.test.ts index 66d5fb36..2f96ca78 100644 --- a/tests/ha/web-proxy.test.ts +++ b/tests/ha/web-proxy.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; -import { EnabledProxyConfig } from '../../src/config/schema/common/proxy.js'; +import type { EnabledProxyConfig } from '../../src/config/schema/common/proxy.js'; import { addDynamicProxyURL, createProxiedEndpointIfNecessary, diff --git a/tests/ha/ws-request.test.ts b/tests/ha/ws-request.test.ts index 123022ac..52d63e71 100644 --- a/tests/ha/ws-request.test.ts +++ b/tests/ha/ws-request.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it, vi } from 'vitest'; -import { ResolvedMedia, resolvedMediaSchema } from '../../src/ha/types'; +import { resolvedMediaSchema, type ResolvedMedia } from '../../src/ha/types'; import { homeAssistantWSRequest } from '../../src/ha/ws-request'; import { createHASS } from '../test-utils'; diff --git a/tests/templates/index.test.ts b/tests/templates/index.test.ts index 17219e3c..88f55c79 100644 --- a/tests/templates/index.test.ts +++ b/tests/templates/index.test.ts @@ -2,8 +2,8 @@ import { renderTemplate } from 'ha-nunjucks'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import { TemplateRenderer } from '../../src/card-controller/templates'; -import { ConditionState } from '../../src/condition-trigger/conditions/types'; -import { TriggerData } from '../../src/condition-trigger/triggers/types'; +import type { ConditionState } from '../../src/condition-trigger/conditions/types'; +import type { TriggerData } from '../../src/condition-trigger/triggers/types'; import { createHASS } from '../test-utils'; // ha-nunjucks attempts to make websocket calls initially so mock it out. diff --git a/tests/test-utils.ts b/tests/test-utils.ts index b049c6e3..fe29596a 100644 --- a/tests/test-utils.ts +++ b/tests/test-utils.ts @@ -1,108 +1,108 @@ import { - HassEntities, - HassEntity, - HassEvent, STATE_RUNNING, + type HassEntities, + type HassEntity, + type HassEvent, } from 'home-assistant-js-websocket'; -import { LitElement } from 'lit'; +import type { LitElement } from 'lit'; import screenfull from 'screenfull'; import { expect, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { Camera } from '../src/camera-manager/camera'; import { Capabilities } from '../src/camera-manager/capabilities'; -import { CameraManagerEngine } from '../src/camera-manager/engine'; -import { +import type { CameraManagerEngine } from '../src/camera-manager/engine'; +import type { FrigateEvent, FrigateRecording, FrigateReview, } from '../src/camera-manager/frigate/types'; import { GenericCameraManagerEngine } from '../src/camera-manager/generic/engine-generic'; -import { CameraManager } from '../src/camera-manager/manager'; +import type { CameraManager } from '../src/camera-manager/manager'; import { CameraManagerStore } from '../src/camera-manager/store'; import { - CameraEventCallback, - EventQuery, QueryType, - RecordingQuery, - ReviewQuery, + type CameraEventCallback, + type EventQuery, + type RecordingQuery, + type ReviewQuery, } from '../src/camera-manager/types'; -import { ActionsManager } from '../src/card-controller/actions/actions-manager'; -import { AutomationsManager } from '../src/card-controller/automations-manager'; -import { CallManager } from '../src/card-controller/call/manager'; -import { CameraTriggersManager } from '../src/card-controller/camera-triggers-manager'; -import { CameraURLManager } from '../src/card-controller/camera-url-manager'; -import { +import type { ActionsManager } from '../src/card-controller/actions/actions-manager'; +import type { AutomationsManager } from '../src/card-controller/automations-manager'; +import type { CallManager } from '../src/card-controller/call/manager'; +import type { CameraTriggersManager } from '../src/card-controller/camera-triggers-manager'; +import type { CameraURLManager } from '../src/card-controller/camera-url-manager'; +import type { CardElementManager, CardHTMLElement, } from '../src/card-controller/card-element-manager'; -import { ConfigManager } from '../src/card-controller/config/config-manager'; -import { CardController } from '../src/card-controller/controller'; -import { DefaultManager } from '../src/card-controller/default-manager'; -import { EffectsManager } from '../src/card-controller/effects/effects-manager'; -import { ExpandManager } from '../src/card-controller/expand-manager'; -import { FoldersManager } from '../src/card-controller/folders/manager'; -import { FolderQuery } from '../src/card-controller/folders/types'; -import { FullscreenManager } from '../src/card-controller/fullscreen/fullscreen-manager'; -import { EventWatcherSubscriptionInterface } from '../src/card-controller/hass/event-watcher'; -import { HASSManager } from '../src/card-controller/hass/hass-manager'; -import { StateWatcherSubscriptionInterface } from '../src/card-controller/hass/state-watcher'; -import { HASSManagerReadonlyInterface } from '../src/card-controller/hass/types'; -import { InitializationManager } from '../src/card-controller/initialization-manager'; -import { InteractionManager } from '../src/card-controller/interaction-manager'; -import { IssueManager } from '../src/card-controller/issues/issue-manager'; -import { IssueStateManager } from '../src/card-controller/issues/state-manager'; -import { KeyboardStateManager } from '../src/card-controller/keyboard-state-manager'; -import { LockManager } from '../src/card-controller/lock/manager'; -import { MediaLoadedInfoManager } from '../src/card-controller/media-info-manager'; -import { MediaPlayerManager } from '../src/card-controller/media-player-manager'; -import { MicrophoneManager } from '../src/card-controller/microphone-manager'; -import { NotificationManager } from '../src/card-controller/notification-manager'; -import { PIPManager } from '../src/card-controller/pip-manager'; -import { QueryStringManager } from '../src/card-controller/query-string-manager'; -import { StatusBarItemManager } from '../src/card-controller/status-bar-item-manager'; -import { StyleManager } from '../src/card-controller/style-manager'; -import { ViewItemManager } from '../src/card-controller/view/item-manager'; -import { ViewManager } from '../src/card-controller/view/view-manager'; -import { SubmenuInteraction, SubmenuItem } from '../src/components/submenu/types'; -import { ConditionStateManager } from '../src/condition-trigger/conditions/state-manager'; -import { CameraConfig, cameraConfigSchema } from '../src/config/schema/cameras'; -import { FolderConfig } from '../src/config/schema/folders'; +import type { ConfigManager } from '../src/card-controller/config/config-manager'; +import type { CardController } from '../src/card-controller/controller'; +import type { DefaultManager } from '../src/card-controller/default-manager'; +import type { EffectsManager } from '../src/card-controller/effects/effects-manager'; +import type { ExpandManager } from '../src/card-controller/expand-manager'; +import type { FoldersManager } from '../src/card-controller/folders/manager'; +import type { FolderQuery } from '../src/card-controller/folders/types'; +import type { FullscreenManager } from '../src/card-controller/fullscreen/fullscreen-manager'; +import type { EventWatcherSubscriptionInterface } from '../src/card-controller/hass/event-watcher'; +import type { HASSManager } from '../src/card-controller/hass/hass-manager'; +import type { StateWatcherSubscriptionInterface } from '../src/card-controller/hass/state-watcher'; +import type { HASSManagerReadonlyInterface } from '../src/card-controller/hass/types'; +import type { InitializationManager } from '../src/card-controller/initialization-manager'; +import type { InteractionManager } from '../src/card-controller/interaction-manager'; +import type { IssueManager } from '../src/card-controller/issues/issue-manager'; +import type { IssueStateManager } from '../src/card-controller/issues/state-manager'; +import type { KeyboardStateManager } from '../src/card-controller/keyboard-state-manager'; +import type { LockManager } from '../src/card-controller/lock/manager'; +import type { MediaLoadedInfoManager } from '../src/card-controller/media-info-manager'; +import type { MediaPlayerManager } from '../src/card-controller/media-player-manager'; +import type { MicrophoneManager } from '../src/card-controller/microphone-manager'; +import type { NotificationManager } from '../src/card-controller/notification-manager'; +import type { PIPManager } from '../src/card-controller/pip-manager'; +import type { QueryStringManager } from '../src/card-controller/query-string-manager'; +import type { StatusBarItemManager } from '../src/card-controller/status-bar-item-manager'; +import type { StyleManager } from '../src/card-controller/style-manager'; +import type { ViewItemManager } from '../src/card-controller/view/item-manager'; +import type { ViewManager } from '../src/card-controller/view/view-manager'; +import type { SubmenuInteraction, SubmenuItem } from '../src/components/submenu/types'; +import type { ConditionStateManager } from '../src/condition-trigger/conditions/state-manager'; +import { cameraConfigSchema, type CameraConfig } from '../src/config/schema/cameras'; +import type { FolderConfig } from '../src/config/schema/folders'; import { - PerformanceConfig, performanceConfigSchema, + type PerformanceConfig, } from '../src/config/schema/performance'; import { - AdvancedCameraCardConfig, advancedCameraCardConfigSchema, + type AdvancedCameraCardConfig, } from '../src/config/schema/types'; -import { RawAdvancedCameraCardConfig } from '../src/config/types'; -import { +import type { RawAdvancedCameraCardConfig } from '../src/config/types'; +import type { BrowseMedia, BrowseMediaMetadata, RichBrowseMedia, } from '../src/ha/browse-media/types'; -import { Device } from '../src/ha/registry/device/types'; -import { Entity, EntityRegistryManager } from '../src/ha/registry/entity/types'; -import { HASSListener, HASSSource } from '../src/ha/source'; -import { CurrentUser, HassStateDifference, HomeAssistant } from '../src/ha/types'; +import type { Device } from '../src/ha/registry/device/types'; +import type { Entity, EntityRegistryManager } from '../src/ha/registry/entity/types'; +import type { HASSListener, HASSSource } from '../src/ha/source'; +import type { CurrentUser, HassStateDifference, HomeAssistant } from '../src/ha/types'; import { QuerySource } from '../src/query-source'; -import { Severity } from '../src/severity'; -import { +import type { Severity } from '../src/severity'; +import type { CapabilitiesRaw, Interaction, MediaLoadedInfo, MediaLoadedInfoEventDetail, } from '../src/types'; import { - EventViewMedia, - ReviewViewMedia, ViewMedia, ViewMediaType, + type EventViewMedia, + type ReviewViewMedia, } from '../src/view/item'; import { QueryResults } from '../src/view/query-results'; -import { ViewItemCapabilities } from '../src/view/types'; -import { View, ViewParameters } from '../src/view/view'; +import type { ViewItemCapabilities } from '../src/view/types'; +import { View, type ViewParameters } from '../src/view/view'; export const createCameraConfig = (config?: unknown): CameraConfig => { return cameraConfigSchema.parse(config ?? {}); diff --git a/tests/utils/action.test.ts b/tests/utils/action.test.ts index b10e1ef6..80d742cb 100644 --- a/tests/utils/action.test.ts +++ b/tests/utils/action.test.ts @@ -2,7 +2,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { INTERNAL_CALLBACK_ACTION } from '../../src/config/schema/actions/custom/internal.js'; -import { ActionConfig } from '../../src/config/schema/actions/types.js'; +import type { ActionConfig } from '../../src/config/schema/actions/types.js'; import { createCallAnswerAction, createCallEndAction, diff --git a/tests/utils/audio.test.ts b/tests/utils/audio.test.ts index bfa5f2c0..4225f2d1 100644 --- a/tests/utils/audio.test.ts +++ b/tests/utils/audio.test.ts @@ -2,10 +2,10 @@ import { describe, expect, it, vi } from 'vitest'; import { addAudioTracksMuteStateListener, - AudioProperties, has2WayAudio, hasAudio, mayHaveAudio, + type AudioProperties, } from '../../src/utils/audio'; // @vitest-environment jsdom diff --git a/tests/utils/controls.test.ts b/tests/utils/controls.test.ts index f6158807..8415e520 100644 --- a/tests/utils/controls.test.ts +++ b/tests/utils/controls.test.ts @@ -1,10 +1,10 @@ import { afterAll, beforeAll, describe, expect, it, vi } from 'vitest'; import { - AdvancedCameraCardHTMLVideoElement, hideMediaControlsTemporarily, MEDIA_LOAD_CONTROLS_HIDE_SECONDS, setControlsOnVideo, + type AdvancedCameraCardHTMLVideoElement, } from '../../src/utils/controls.js'; // @vitest-environment jsdom diff --git a/tests/utils/diagnostics.test.ts b/tests/utils/diagnostics.test.ts index 09095278..39a68ca0 100644 --- a/tests/utils/diagnostics.test.ts +++ b/tests/utils/diagnostics.test.ts @@ -1,8 +1,8 @@ -import { HassConfig } from 'home-assistant-js-websocket'; +import type { HassConfig } from 'home-assistant-js-websocket'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { DeviceRegistryManager } from '../../src/ha/registry/device'; +import type { DeviceRegistryManager } from '../../src/ha/registry/device'; import { homeAssistantWSRequest } from '../../src/ha/ws-request'; import { getLanguage } from '../../src/localize/localize'; import { getDiagnostics, getReleaseVersion } from '../../src/utils/diagnostics.js'; diff --git a/tests/utils/embla/carousel-controller.test.ts b/tests/utils/embla/carousel-controller.test.ts index 3ede8a14..5bb712db 100644 --- a/tests/utils/embla/carousel-controller.test.ts +++ b/tests/utils/embla/carousel-controller.test.ts @@ -1,5 +1,13 @@ -import EmblaCarousel, { EmblaCarouselType } from 'embla-carousel'; -import { beforeAll, beforeEach, describe, expect, it, MockedObject, vi } from 'vitest'; +import EmblaCarousel, { type EmblaCarouselType } from 'embla-carousel'; +import { + beforeAll, + beforeEach, + describe, + expect, + it, + vi, + type MockedObject, +} from 'vitest'; import { CarouselController } from '../../../src/utils/embla/carousel-controller'; import { diff --git a/tests/utils/embla/test-utils.ts b/tests/utils/embla/test-utils.ts index f3d3b609..52e15735 100644 --- a/tests/utils/embla/test-utils.ts +++ b/tests/utils/embla/test-utils.ts @@ -1,5 +1,5 @@ -import { EmblaCarouselType, EmblaEventType } from 'embla-carousel'; -import { EngineType } from 'embla-carousel/components/Engine'; +import type { EmblaCarouselType, EmblaEventType } from 'embla-carousel'; +import type { EngineType } from 'embla-carousel/components/Engine'; import { vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; diff --git a/tests/utils/media-actions.test.ts b/tests/utils/media-actions.test.ts index bf511f50..3613e68d 100644 --- a/tests/utils/media-actions.test.ts +++ b/tests/utils/media-actions.test.ts @@ -1,19 +1,19 @@ import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { ViewItemManager } from '../../src/card-controller/view/item-manager'; +import type { ViewItemManager } from '../../src/card-controller/view/item-manager'; import { RemoveContextViewModifier } from '../../src/card-controller/view/modifiers/remove-context'; -import { ViewManagerEpoch } from '../../src/card-controller/view/types'; -import { ViewManager } from '../../src/card-controller/view/view-manager'; +import type { ViewManagerEpoch } from '../../src/card-controller/view/types'; +import type { ViewManager } from '../../src/card-controller/view/view-manager'; import { downloadMedia, navigateToTimeline, toggleFavorite, toggleReviewed, } from '../../src/utils/media-actions'; -import { ViewItem, ViewMediaType } from '../../src/view/item'; -import { QueryResults } from '../../src/view/query-results'; -import { View } from '../../src/view/view'; +import { ViewMediaType, type ViewItem } from '../../src/view/item'; +import type { QueryResults } from '../../src/view/query-results'; +import type { View } from '../../src/view/view'; import { TestViewMedia } from '../test-utils'; describe('MediaActions', () => { diff --git a/tests/utils/media-info.test.ts b/tests/utils/media-info.test.ts index 5d92199c..10750b0a 100644 --- a/tests/utils/media-info.test.ts +++ b/tests/utils/media-info.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { MediaLoadedCapabilities, MediaPlayer } from '../../src/types'; +import type { MediaLoadedCapabilities, MediaPlayer } from '../../src/types'; import { createMediaLoadedInfo, dispatchMediaPauseEvent, diff --git a/tests/utils/ptz.test.ts b/tests/utils/ptz.test.ts index 28244cb9..c0d3607c 100644 --- a/tests/utils/ptz.test.ts +++ b/tests/utils/ptz.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it, vi } from 'vitest'; import { Capabilities } from '../../src/camera-manager/capabilities'; -import { AdvancedCameraCardView } from '../../src/config/schema/common/const'; +import type { AdvancedCameraCardView } from '../../src/config/schema/common/const'; import { PTZMovementType } from '../../src/types'; import { getPTZTarget, diff --git a/tests/utils/task.test.ts b/tests/utils/task.test.ts index 0852f724..616b76c4 100644 --- a/tests/utils/task.test.ts +++ b/tests/utils/task.test.ts @@ -1,5 +1,5 @@ -import { Task } from '@lit-labs/task'; -import { html, render, TemplateResult } from 'lit'; +import type { Task } from '@lit-labs/task'; +import { html, render, type TemplateResult } from 'lit'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; diff --git a/tests/utils/thumbnail.test.ts b/tests/utils/thumbnail.test.ts index 173eca3a..bc0148af 100644 --- a/tests/utils/thumbnail.test.ts +++ b/tests/utils/thumbnail.test.ts @@ -1,5 +1,5 @@ import { Task } from '@lit-labs/task'; -import { ReactiveControllerHost } from '@lit/reactive-element'; +import type { ReactiveControllerHost } from '@lit/reactive-element'; import { afterEach, assert, describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; diff --git a/tests/view/query-results.test.ts b/tests/view/query-results.test.ts index 71a6575a..02edba66 100644 --- a/tests/view/query-results.test.ts +++ b/tests/view/query-results.test.ts @@ -1,6 +1,6 @@ import { assert, beforeEach, describe, expect, it, vi } from 'vitest'; -import { ViewFolder, ViewItem } from '../../src/view/item'; +import { ViewFolder, type ViewItem } from '../../src/view/item'; import { QueryResults } from '../../src/view/query-results'; import { createFolder, generateViewMediaArray, TestViewMedia } from '../test-utils'; diff --git a/tests/view/unified-query-builder.test.ts b/tests/view/unified-query-builder.test.ts index 0e499d6d..739f5dde 100644 --- a/tests/view/unified-query-builder.test.ts +++ b/tests/view/unified-query-builder.test.ts @@ -1,15 +1,15 @@ import { assert, describe, expect, it } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManager } from '../../src/camera-manager/manager'; -import { CameraManagerStore } from '../../src/camera-manager/store'; +import type { CameraManager } from '../../src/camera-manager/manager'; +import type { CameraManagerStore } from '../../src/camera-manager/store'; import { QueryType } from '../../src/camera-manager/types'; -import { FoldersManager } from '../../src/card-controller/folders/manager'; -import { +import type { FoldersManager } from '../../src/card-controller/folders/manager'; +import type { FolderPathComponent, FolderQuery, } from '../../src/card-controller/folders/types'; -import { FolderConfig } from '../../src/config/schema/folders'; +import type { FolderConfig } from '../../src/config/schema/folders'; import { QuerySource } from '../../src/query-source'; import { MediaTypeSpec, diff --git a/tests/view/unified-query-runner.test.ts b/tests/view/unified-query-runner.test.ts index 22e3a4e5..886fe556 100644 --- a/tests/view/unified-query-runner.test.ts +++ b/tests/view/unified-query-runner.test.ts @@ -1,11 +1,11 @@ import { assert, describe, expect, it } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManager } from '../../src/camera-manager/manager'; -import { FoldersManager } from '../../src/card-controller/folders/manager'; -import { ConditionStateManagerReadonlyInterface } from '../../src/condition-trigger/conditions/types'; +import type { CameraManager } from '../../src/camera-manager/manager'; +import type { FoldersManager } from '../../src/card-controller/folders/manager'; +import type { ConditionStateManagerReadonlyInterface } from '../../src/condition-trigger/conditions/types'; import { QuerySource } from '../../src/query-source'; -import { ViewMedia } from '../../src/view/item'; +import type { ViewMedia } from '../../src/view/item'; import { UnifiedQuery } from '../../src/view/unified-query'; import { UnifiedQueryRunner } from '../../src/view/unified-query-runner'; import { createEventQuery, createFolderQuery } from '../test-utils'; diff --git a/tests/view/unified-query-transformer.test.ts b/tests/view/unified-query-transformer.test.ts index 3c2aadef..09589878 100644 --- a/tests/view/unified-query-transformer.test.ts +++ b/tests/view/unified-query-transformer.test.ts @@ -1,9 +1,9 @@ import { assert, describe, expect, it } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManager } from '../../src/camera-manager/manager'; -import { CameraManagerStore } from '../../src/camera-manager/store'; -import { FoldersManager } from '../../src/card-controller/folders/manager'; +import type { CameraManager } from '../../src/camera-manager/manager'; +import type { CameraManagerStore } from '../../src/camera-manager/store'; +import type { FoldersManager } from '../../src/card-controller/folders/manager'; import { UnifiedQueryBuilder } from '../../src/view/unified-query-builder'; import { UnifiedQueryTransformer } from '../../src/view/unified-query-transformer'; import { diff --git a/tests/view/utils/query-filter.test.ts b/tests/view/utils/query-filter.test.ts index 422ae91f..951349af 100644 --- a/tests/view/utils/query-filter.test.ts +++ b/tests/view/utils/query-filter.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest'; import { mock } from 'vitest-mock-extended'; import { ViewFolder } from '../../../src/view/item'; -import { UnifiedQuery } from '../../../src/view/unified-query'; +import type { UnifiedQuery } from '../../../src/view/unified-query'; import { getReviewedQueryFilterFromConfig, getReviewedQueryFilterFromQuery, diff --git a/tests/view/utils/resolve-default.test.ts b/tests/view/utils/resolve-default.test.ts index b388c48b..1a26515c 100644 --- a/tests/view/utils/resolve-default.test.ts +++ b/tests/view/utils/resolve-default.test.ts @@ -1,8 +1,8 @@ import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { CameraManager } from '../../../src/camera-manager/manager'; -import { FoldersManager } from '../../../src/card-controller/folders/manager'; +import type { CameraManager } from '../../../src/camera-manager/manager'; +import type { FoldersManager } from '../../../src/card-controller/folders/manager'; import { resolveViewName } from '../../../src/view/utils/resolve-default'; import { createStore } from '../../test-utils'; diff --git a/tests/view/view-support.test.ts b/tests/view/view-support.test.ts index d1056c3f..d027aaaf 100644 --- a/tests/view/view-support.test.ts +++ b/tests/view/view-support.test.ts @@ -1,9 +1,9 @@ import { describe, expect, it, vi } from 'vitest'; import { mock } from 'vitest-mock-extended'; -import { FoldersManager } from '../../src/card-controller/folders/manager'; -import { AdvancedCameraCardView } from '../../src/config/schema/common/const'; -import { CapabilityKey } from '../../src/types'; +import type { FoldersManager } from '../../src/card-controller/folders/manager'; +import type { AdvancedCameraCardView } from '../../src/config/schema/common/const'; +import type { CapabilityKey } from '../../src/types'; import { getCameraIDsWithCapabilityForView, isViewAvailable, diff --git a/tsconfig.json b/tsconfig.json index de9c8d39..06b87214 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,6 +3,7 @@ "target": "es2021", "module": "es2020", "moduleResolution": "node", + "verbatimModuleSyntax": true, "lib": ["es2021", "dom", "dom.iterable"], "noEmit": true, "noErrorTruncation": false,