Compare commits

...

94 Commits

Author SHA1 Message Date
dependabot[bot]
17cb18a371 Bump coverage from 7.10.6 to 7.10.7 (#6200)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-22 13:17:59 +02:00
Mike Degatano
9f5bebd0eb Mount falls back on restart if reload fails (#6197) 2025-09-19 17:59:50 +02:00
Stefan Agner
c712d3cc53 Check Core version and raise unsupported if older than 2 years (#6148)
* Check Core version and raise unsupported if older than 2 years

Check the currently installed Core version relative to the current
date, and if its older than 2 years, mark the system unsupported.
Also add a Job condition to prevent automatic refreshing of the update
information in this case.

* Handle landing page correctly

* Handle non-parseable versions gracefully

Also align handling between OS and Core version evaluations.

* Extend and fix test coverage

* Improve Job condition error

* Fix pytest

* Block execution of fetch_data and store reload jobs

Block execution of fetch_data and store reload jobs if the core version
is unsupported. This essentially freezes the installation until the
user takes action and updates the Core version to a supported one.

* Use latest known Core version as reference

Instead of using current date to determine if Core version is more than
2 years old, use the latest known Core version as reference point and
check if current version is more than 24 releases behind.

This is crucial because when update information refresh is disabled due to
unsupported Core version, using date would create a permanent unsupported
state. Even if users update to the last known version in 4+ years, the
system would remain unsupported. By using latest known version as reference,
updating Core to the last known version makes the system supported again,
allowing update information refresh to resume.

This ensures users can always escape the unsupported state by updating
to the last known Core version, maintaining the update refresh cycle.

* Improve version comparision logic

* Use Home Assistant Core instead of just Core

Avoid any ambiguity in what is exactly outdated/unsupported by using
Home Assistant Core instead of just Core.

* Sort const alphabetically

* Update tests/resolution/evaluation/test_evaluate_home_assistant_core_version.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-19 17:58:37 +02:00
dependabot[bot]
46fc5c8aa1 Bump ruff from 0.13.0 to 0.13.1 (#6199)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.13.0 to 0.13.1.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.13.0...0.13.1)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 13:01:34 +02:00
dependabot[bot]
8b23383e26 Bump mypy from 1.18.1 to 1.18.2 (#6198)
Bumps [mypy](https://github.com/python/mypy) from 1.18.1 to 1.18.2.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.18.1...v1.18.2)

---
updated-dependencies:
- dependency-name: mypy
  dependency-version: 1.18.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-19 13:01:19 +02:00
dependabot[bot]
c1ccb00946 Bump debugpy from 1.8.16 to 1.8.17 (#6196)
Bumps [debugpy](https://github.com/microsoft/debugpy) from 1.8.16 to 1.8.17.
- [Release notes](https://github.com/microsoft/debugpy/releases)
- [Commits](https://github.com/microsoft/debugpy/compare/v1.8.16...v1.8.17)

---
updated-dependencies:
- dependency-name: debugpy
  dependency-version: 1.8.17
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-18 10:40:31 +02:00
dependabot[bot]
5693a5be0d Bump cryptography from 45.0.7 to 46.0.1 (#6194)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-17 09:32:47 +02:00
Mike Degatano
01911a44cd Persistent notifications to repairs and fix free_space check (#6179)
* Persistent notifications to repairs and fix free_space check

* Fix tests mocking too little free space
2025-09-16 11:22:59 -04:00
Lukas Waslowski
857dae7736 Allow adding translations for nested fields to support home-assistant/frontend#26997 (#6180) 2025-09-16 11:36:45 +02:00
Stefan Agner
d2ddd9579c Cancel Supervisor startup task on early shutdown signal (#6175)
When receiving a shutdown signal during startup, the Supervisor should
cancel its startup task to ensure a graceful shutdown. This prevents
Supervisor accidentally accessing the Event loop after it has been
closed by the stop procedure:

RuntimeError: Event loop stopped before Future completed.
2025-09-16 11:32:43 +02:00
Lukas Waslowski
ac9947d599 Allow deeply nested dicts and lists in addon config schemas (#6171)
* Allow arbitrarily nested addon config schemas

* Disallow lists directly nested in another list in addon schema

* Handle arbitrarily nested addon schemas in UiOptions class

* Handle arbitrarily nested addon schemas in AddonOptions class

* Add tests for addon config schemas

* Add tests for addon option validation
2025-09-16 11:32:28 +02:00
Jan Čermák
2e22e1e884 Add endpoint for complete logs of the latest container startup (#6163)
* Add endpoint for complete logs of the latest container startup

Add endpoint that returns complete logs of the latest startup of
container, which can be used for downloading Core logs in the frontend.

Realtime filtering header is used for the Journal API and StartedAt
parameter from the Docker API is used as the reference point. This means
that any other Range header is ignored for this parameter, yet the
"lines" query argument can be used to limit the number of lines. By
default "infinite" number of lines is returned.

Closes #6147

* Implement fallback for latest logs for OS older than 16.0

Implement fallback which uses the internal CONTAINER_LOG_EPOCH metadata
added to logs created by the Docker logger. Still prefer the time-based
method, as it has lower overhead and using public APIs.

* Address review comments

* Only use CONTAINER_LOG_EPOCH for latest logs

As pointed out in the review comments, we might not be able to get the
StartedAt for add-ons that are not running. Thus we need to use the only
reliable mechanism available now, which is the container log epoch.

* Remove dead code for 'Range: realtime' header handling
2025-09-16 11:29:28 +02:00
dependabot[bot]
e7f3573e32 Bump sentry-sdk from 2.37.1 to 2.38.0 (#6192)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-16 10:00:50 +02:00
dependabot[bot]
b26451a59a Bump types-docker from 7.1.0.20250907 to 7.1.0.20250916 (#6191)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-16 09:57:24 +02:00
dependabot[bot]
4e882f7c76 Bump home-assistant/builder from 2025.03.0 to 2025.09.0 (#6190) 2025-09-16 09:06:10 +02:00
dependabot[bot]
5fa50ccf05 Bump types-pyyaml from 6.0.12.20250822 to 6.0.12.20250915 (#6189)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 11:36:09 +02:00
dependabot[bot]
3891df5266 Bump sigstore/cosign-installer from 3.9.2 to 3.10.0 (#6188)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 09:44:35 +02:00
dependabot[bot]
5aad32c15b Bump types-requests from 2.32.4.20250809 to 2.32.4.20250913 (#6187) 2025-09-15 08:36:51 +02:00
Simon Lamon
4a40490af7 Pin SHA for all Github Actions (#6186) 2025-09-14 17:54:02 +02:00
Stefan Agner
0a46e030f5 Bump minimal Docker to 24.0.0 (#6178)
* Bump minimal Docker to 23.0.0

Home Assistant OS 10.0 update to Docker 23.0.3, lets make this
Docker version the minimum we support. This will allow us to use
zstd compression for layers (see https://github.com/home-assistant/builder/pull/245).

* Bump minimal Docker version to 24.0.0
2025-09-12 15:00:59 +02:00
dependabot[bot]
bd00f90304 Bump mypy from 1.17.1 to 1.18.1 (#6184)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-12 09:39:13 +02:00
dependabot[bot]
819f097f01 Bump ruff from 0.12.12 to 0.13.0 (#6181)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.12 to 0.13.0.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.12.12...0.13.0)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-11 09:08:07 +02:00
dependabot[bot]
4513592993 Bump sentry-sdk from 2.37.0 to 2.37.1 (#6177)
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 2.37.0 to 2.37.1.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/2.37.0...2.37.1)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-version: 2.37.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-10 09:00:16 +02:00
dependabot[bot]
7e526a26af Bump pytest-cov from 6.3.0 to 7.0.0 (#6176)
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 6.3.0 to 7.0.0.
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v6.3.0...v7.0.0)

---
updated-dependencies:
- dependency-name: pytest-cov
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-10 09:00:09 +02:00
Petar Petrov
b3af22f048 Ignore missing files when counting used space (#6174) 2025-09-09 13:39:06 +02:00
Jan Čermák
bbb9469c1c Write cidfiles of Docker containers and mount them individually to /run/cid (#6154)
* Write cidfiles of Docker containers and mount them individually to /run/cid

There is no standard way to get the container ID in the container
itself, which can be needed for instance for #6006. The usual pattern is
to use the --cidfile argument of Docker CLI and mount the generated file
to the container. However, this is feature of Docker CLI and we can't
use it when creating the containers via API. To get container ID to
implement native logging in e.g. Core as well, we need the help of the
Supervisor.

This change implements similar feature fully in Supervisor's DockerAPI
class that orchestrates lifetime of all containers managed by
Supervisor. The files are created in the SUPERVISOR_DATA directory, as
it needs to be persisted between reboots, just as the instances of
Docker containers are.

Supervisor's cidfile must be created when starting the Supervisor
itself, for that see home-assistant/operating-system#4276.

* Address review comments, fix mounting of the cidfile
2025-09-09 13:38:31 +02:00
Stefan Agner
859c32a706 Drop unused coud backup dir constant (#6172)
The constant PATH_CLOUD_BACKUP is not used anywhere in the codebase.
Remove it to clean up the code. This is a leftover from a removed
initial cloud backup support implementation and got missed in #5464.
2025-09-08 15:04:24 -04:00
Stefan Agner
87fc84c65c Avoid setup failure on missing timedatectl (#6169)
When timedatectl is not available (e.g. in minimal devcontainers),
the code currently fails to setup due to missing timedate service on
D-Bus. This change makes the code more robust by checking only checking
for the presence of the service if we actually going to use it.
2025-09-08 11:29:44 +02:00
dependabot[bot]
e38ca5acb4 Bump pytest-cov from 6.2.1 to 6.3.0 (#6167)
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 6.2.1 to 6.3.0.
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v6.2.1...v6.3.0)

---
updated-dependencies:
- dependency-name: pytest-cov
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 09:28:31 +02:00
dependabot[bot]
09cd8eede2 Bump types-docker from 7.1.0.20250822 to 7.1.0.20250907 (#6166)
Bumps [types-docker](https://github.com/typeshed-internal/stub_uploader) from 7.1.0.20250822 to 7.1.0.20250907.
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

---
updated-dependencies:
- dependency-name: types-docker
  dependency-version: 7.1.0.20250907
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 09:28:24 +02:00
dependabot[bot]
d1c537b280 Bump sentry-sdk from 2.36.0 to 2.37.0 (#6168)
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 2.36.0 to 2.37.0.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/2.36.0...2.37.0)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-version: 2.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 09:28:15 +02:00
dependabot[bot]
e6785d6a89 Bump ruff from 0.12.11 to 0.12.12 (#6161)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.11 to 0.12.12.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.12.11...0.12.12)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.12.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 10:31:12 +02:00
Stefan Agner
59e051ad93 Avoid duplicate evaluate_system() calls during resolution manager setup (#6133)
* Avoid duplicate evaluate_system() calls during resolution manager setup

During resolution manager initialization, both the initial healthcheck call
and the subsequent setup() call would trigger evaluate_system(), causing
redundant system evaluation. All following calls in healthcheck() are
already suppressed during the setup stage, we can optimize this by
calling check_system() directly during load() instead of the full
healthcheck().

This reduces unnecessary processing during supervisor startup while
maintaining the same functional behavior.

* Call full healthcheck on setup and move diagnostics to core start

The OS Agent diagnostics if statement accesses OS Agent through D-Bus
already. This makes the exception handling inside the if statement
not really useful.

Move OS Agent diagnostics setting to core start so we can leverage
the existing global Exception handling in start() instead of
having to add another try/except block in setup(). It also covers the
if statement itself.
2025-09-05 10:16:06 +02:00
dependabot[bot]
3397def8b9 Bump actions/github-script from 7 to 8 (#6158)
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 09:55:13 +02:00
dependabot[bot]
b832edc10d Bump codecov/codecov-action from 5.5.0 to 5.5.1 (#6159)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.5.0 to 5.5.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v5.5.0...v5.5.1)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: 5.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 09:54:33 +02:00
dependabot[bot]
f69071878c Bump sentry-sdk from 2.35.2 to 2.36.0 (#6162)
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 2.35.2 to 2.36.0.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/2.35.2...2.36.0)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-version: 2.36.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 09:54:09 +02:00
dependabot[bot]
e065ba6081 Bump pytest from 8.4.1 to 8.4.2 (#6160)
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.4.1 to 8.4.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.4.1...8.4.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 8.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-05 09:52:53 +02:00
dependabot[bot]
38611ad12f Bump actions/stale from 9.1.0 to 10.0.0 (#6155)
Bumps [actions/stale](https://github.com/actions/stale) from 9.1.0 to 10.0.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v9.1.0...v10.0.0)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-04 14:40:56 +02:00
dependabot[bot]
8beb66d46c Bump actions/setup-python from 5.6.0 to 6.0.0 (#6156)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.6.0 to 6.0.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5.6.0...v6.0.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-04 14:40:42 +02:00
Stefan Agner
c277f3cad6 Store and persist OS upgrade map to fix update path evaluation (#6152)
* Store and persist OS upgrade map to fix update path evaluation

The existing logic calculated OS upgrade paths inline during fetch_data,
which will not get reevaluted when the current OS is unsupported
(JobCondition.OS_SUPPORTED). E.g. after updating from 11.4 to 11.5, the
system wouldn't offer the next available update (15.2) because the
upgrade path calculation relied on fresh data from the blocked fetch
operation.

Changes:
- Add ATTR_HASSOS_UPGRADE constant and schema validation
- Store hassos-upgrade map from version JSON in updater data
- Refactor version_hassos property to use stored upgrade map instead of
  inline calculation during fetch_data
- Maintain upgrade path logic: upgrade within major version first, then
  jump to next major version when at the latest in current major
- Add type safety checks for version.major access

This ensures upgrade paths work correctly even when update data refresh
is blocked due to unsupported OS versions, fixing the scenario where
HAOS 11.5 wouldn't show 15.2 as the next available update.

* Update supervisor/updater.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Address mypy issue

* Fix pytest

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-04 13:19:31 +02:00
Igor Yamolov
236c39cbb0 Add network interface settings for mDNS/LLMNR (#5520) 2025-09-04 13:18:11 +02:00
Mike Degatano
7ed83a15fe Add availability API for addons (#6140)
* Add availability API for addons

* Add cast back and test for latest version of installed addon

* Make error responses more translation/client library friendly

* Add test cases for install/update APIs
2025-09-04 11:14:42 +02:00
Felipe Santos
a3a5f6ba98 Fix WebSocket proxy for add-ons not forwarding ping/pong frame data (#6144)
* Fix proxied add-on WebSocket connections closing after 40 seconds

* Undo autoping=True

* Add debug logging for ping/pong frames

* Foward ping and pong msg.data too

* Add temporary workaround for devcontainer issue

* Forward 8000 through docker devcontainer

* Remove debug code
2025-09-04 11:12:42 +02:00
Stefan Agner
8d3ededf2f Update NM developer page URL (#6151)
* Update NM developer page URL

* Update remaining NetworkManager URLs to new location
2025-09-04 11:02:34 +02:00
Jan Čermák
3d62c9afb1 Make test_job_decorator tests timezone agnostic (#6153)
Running tests in UTC+2 timezone makes some of the tests fail because the
mocked time in the future is actually in the past, as UTC is used as the
new reference point. Adjust the tests to mock also the time when the
first execution of function happens.

Instances where the second execution happened "immediately" were mocked
to happen 1ms later. The 1ms delta is also needed to be added when
mocking time 1h in the future, otherwise it will be throttled too.
2025-09-03 17:55:28 +02:00
dependabot[bot]
ef313d1fb5 Bump sentry-sdk from 2.35.1 to 2.35.2 (#6150)
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 2.35.1 to 2.35.2.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/2.35.1...2.35.2)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-version: 2.35.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-03 13:50:48 +02:00
dependabot[bot]
cae31637ae Bump cryptography from 45.0.6 to 45.0.7 (#6149)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-03 11:21:12 +02:00
Mike Degatano
9392d10625 Add background option to update/install APIs (#6134)
* Add background option to update/install APIs

* Refactor to use common background_task utility in backups too

* Use a validation_complete event rather then looking for bus events
2025-09-03 08:33:00 +02:00
dependabot[bot]
5ce62f324f Bump coverage from 7.10.5 to 7.10.6 (#6145)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-01 14:05:57 +02:00
dependabot[bot]
f84d514958 Bump ruff from 0.12.10 to 0.12.11 (#6141)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-29 11:15:52 +02:00
dependabot[bot]
3c39f2f785 Bump sentry-sdk from 2.35.0 to 2.35.1 (#6139)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-28 10:31:03 +02:00
Stefan Agner
30db72df78 Add WebSocket proxy timeout handling (#6138)
Add TimeoutError handling for WebSocket connections to add-ons. Also
log debug information for WebSocket proxy connections.
2025-08-28 10:18:46 +02:00
Stefan Agner
00a78f372b Fix ConnectionResetError during ingress proxing (#6137)
Under certain (timing) conditions ConnectionResetError can be raised
when the client closes the connection while we are still writing to it.
Make sure to handle the appropriate exceptions to avoid flooding the
logs with stack traces.
2025-08-28 10:15:32 +02:00
dependabot[bot]
b69546f2c1 Bump orjson from 3.11.2 to 3.11.3 (#6135)
Bumps [orjson](https://github.com/ijl/orjson) from 3.11.2 to 3.11.3.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.11.2...3.11.3)

---
updated-dependencies:
- dependency-name: orjson
  dependency-version: 3.11.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-27 16:13:52 +02:00
Mike Degatano
78be155b94 Handle download retart in pull progres log (#6131) 2025-08-25 23:20:00 +02:00
Mike Degatano
9900dfc8ca Do not skip messages in pull progress log due to rounding (#6129) 2025-08-25 22:25:38 +02:00
Stefan Agner
3a1ebc9d37 Handle malformed addon map entries gracefully (#6126)
* Handle missing type attribute in add-on map config

Handle missing type attribute in the add-on `map` configuration key.

* Make sure wrong volumes are cleared in any case

Also add warning when string mapping is rejected.

* Add unit tests

* Improve test coverage
2025-08-25 22:24:46 +02:00
Jan Čermák
580c3273dc Fix guarding of timezone setting for older OS 16.2 dev builds (#6127)
As some 16.2 dev versions did not support setting of the timezone yet,
if they were not updated before the Supervisor #6099 was merged, the
system could end up unhealthy as setting of the timezone during setup
fails there. This would prevent such systems from being updated to the
new OS version.

Now that we know an exact OS version with TZ setting support, only
attempt doing it if it's supported.
2025-08-25 19:47:47 +02:00
dependabot[bot]
b889f94ca4 Bump coverage from 7.10.4 to 7.10.5 (#6125)
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.10.4 to 7.10.5.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.10.4...7.10.5)

---
updated-dependencies:
- dependency-name: coverage
  dependency-version: 7.10.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 14:13:13 +02:00
Stefan Agner
2d12920b35 Stop refreshing the update information on outdated OS versions (#6098)
* Stop refreshing the update information on outdated OS versions

Add `JobCondition.OS_SUPPORTED` to the updater job to avoid
refreshing update information when the OS version is unsupported.

This effectively freezes installations on unsupported OS versions
and blocks Supervisor updates. Once deployed, this ensures that any
Supervisor will always run on at least the minimum supported OS
version.

This requires to move the OS version check before Supervisor updater
initialization to allow the `JobCondition.OS_SUPPORTED` to work
correctly.

* Run only OS version check in setup loads

Instead of running a full system evaluation, only run the OS version
check right after the OS manager is loaded. This allows the
updater job condition to work correctly without running the full
system evaluation, which is not needed at this point.

* Prevent Core and Add-on updates on unsupported OS versions

Also prevent Home Assistant Core and Add-on updates on unsupported OS
versions. We could imply `JobCondition.SUPERVISOR_UPDATED` whenever
OS is outdated, but this would also prevent the OS update itself. So
we need this separate condition everywhere where
`JobCondition.SUPERVISOR_UPDATED` is used except for OS updates.

It should also be safe to let the add-on store update, we simply
don't allow the add-on to be installed or updated if the OS is
outdated.

* Remove unnecessary Host info update

It seems that the CPE information are already loaded in the HostInfo
object. Remove the unnecessary update call.

* Fix pytest

* Delay refreshing of update data

Delay refreshing of update data until after setup phase. This allows to
use the JobCondition.OS_SUPPORTED safely. We still have to fetch the
updater data in case OS information is outdated. This typically happens
on device wipe.

Note also that plug-ins will automatically refresh updater data in case
it is missing the latest version information.

This will reverse the order of updates when there are new plug-in and
Supervisor update information available (e.g. on first startup):
Previously the updater data got refreshed before the plug-in started,
which caused them to update first. Then the Supervisor got update in
startup phase. Now the updater data gets refreshed in startup phase,
which then causes the Supervisor to update first before the plug-ins
get updated after Supervisor restart.

* Fix pytest

* Fix updater tests

* Add new tests to verify that updater reload is skipped

* Fix pylint

* Apply suggestions from code review

Co-authored-by: Mike Degatano <michael.degatano@gmail.com>

* Add debug message when we delay version fetch

---------

Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
2025-08-22 11:09:56 +02:00
Stefan Agner
8a95113ebd Improve VLAN configuration (#6094)
* Fix NetworkManager connection name for VLANs

The connection name for VLANs should include the parent interface name
for better identification. This was originally the intention, but the
interface object's name property was used which appears empty at that
point.

* Disallow creating multiple connections for the same VLAN id

Only allow a single connection per interface and VLAN id. The regular
network commands can be used to alter the configuration.

* Fix pytest

* Simply connection id name generation

Always rely on the Supervisor interface representation's name attribute
to generate the NetworkManager connection id. Make sure that the name
is correctly set when creating VLAN interfaces as well.

* Special case VLAN configuration

We can't use the match information when comparing Supervisor interface
representation with D-Bus representations. Special case VLAN and
compare using VLAN ID and parent interface.

Note that this currently compares connection UUID of the parent
interface.

* Fix pytest

* Separate VLAN creation logic from apply_changes

Apply changes is really all about updating the NetworkManager settings
of a particular network interface. The base in apply_changes() is
NetworkInterface class, which is the NetworkManager Device abstraction.
All physical interfaces have such a Device hence it is always present.

The only exception is when creating a VLAN: Since it is a virtual
device, there is no device when creating a VLAN.

This separate the two cases. This makes it much easier to reason if
a VLAN already exists or not, and to handle the case where a VLAN
needs to be created.

For all other network interfaces, the apply_changes() method can
now rely on the presence of the NetworkInterface Device abstraction.

* Add VLAN test interface and VLAN exists test

Add a test which checks that an error gets raised when a VLAN for a
particular interface/id combination already exists.

* Address pylint

* Fix test_ignore_veth_only_changes pytest

* Make VLAN interface disabled to avoid test issues

* Reference setting 38 in mocked connection

* Make sure interface type matches

Require a interface type match before doing any comparision.

* Add Supervisor host network configuration tests

* Fix device type checking

* Fix pytest

* Fix tests by taking VLAN interface into account

* Fix test_load_with_network_connection_issues

This seems like a hack, but it turns out that the additional active
connection caused coresys.host.network.update() to be called, which
implicitly "fake" activated the connection. Now it seems that our
mocking causes IPv4 gateway to be set.

So in a way, the test checked a particular mock behavior instead of
actual intention.

The crucial part of this test is that we make sure the settings remain
unchanged. This is done by ensuring that the the method is still auto.

* Fix test_check_network_interface_ipv4.py

Now that we have the VLAN interface active too it will raise an issue
as well.

* Apply suggestions from code review

Co-authored-by: Mike Degatano <michael.degatano@gmail.com>

* Fix ruff check issue

---------

Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
2025-08-22 11:09:39 +02:00
dependabot[bot]
3fc1abf661 Bump types-pyyaml from 6.0.12.20250809 to 6.0.12.20250822 (#6121)
Bumps [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) from 6.0.12.20250809 to 6.0.12.20250822.
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

---
updated-dependencies:
- dependency-name: types-pyyaml
  dependency-version: 6.0.12.20250822
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-22 10:54:17 +02:00
Mike Degatano
207b665e1d Send progress updates during image pull for install/update (#6102)
* Send progress updates during image pull for install/update

* Add extra to tests about job APIs

* Sent out of date progress to sentry and combine done event

* Pulling container image layer
2025-08-22 10:41:10 +02:00
Stefan Agner
1fb15772d7 Fix docker_config check for add-ons (#6119)
* Fix docker_config check to ignore Docker VOLUME mounts

Only validate /media and /share mounts that are explicitly configured
in add-on map_volumes, not those created by Docker VOLUME statements.

* Check and test with custom map targets
2025-08-22 10:38:41 +02:00
dependabot[bot]
9740de7a83 Bump ruff from 0.12.9 to 0.12.10 (#6122)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.9 to 0.12.10.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.12.9...0.12.10)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.12.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-22 10:37:56 +02:00
dependabot[bot]
8e8d77d90c Bump types-docker from 7.1.0.20250809 to 7.1.0.20250822 (#6123)
Bumps [types-docker](https://github.com/typeshed-internal/stub_uploader) from 7.1.0.20250809 to 7.1.0.20250822.
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

---
updated-dependencies:
- dependency-name: types-docker
  dependency-version: 7.1.0.20250822
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-22 10:37:41 +02:00
dependabot[bot]
dbce22bd08 Bump codecov/codecov-action from 5.4.3 to 5.5.0 (#6117)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.4.3 to 5.5.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v5.4.3...v5.5.0)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: 5.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-21 10:01:52 +02:00
dependabot[bot]
192d446888 Bump ciso8601 from 2.3.2 to 2.3.3 (#6118)
Bumps [ciso8601](https://github.com/closeio/ciso8601) from 2.3.2 to 2.3.3.
- [Release notes](https://github.com/closeio/ciso8601/releases)
- [Changelog](https://github.com/closeio/ciso8601/blob/master/CHANGELOG.md)
- [Commits](https://github.com/closeio/ciso8601/compare/v2.3.2...v2.3.3)

---
updated-dependencies:
- dependency-name: ciso8601
  dependency-version: 2.3.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-21 10:01:33 +02:00
Stefan Agner
d95ca401ec Fix git path missing or empty (#6116)
* Optimize directory_missing_or_empty function

Replace inefficient os.listdir() with os.scandir() and next() to check
if directory is empty. This avoids reading entire directory contents
into memory when we only need to know if any entry exists.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add unit tests for directory_missing_or_empty function

Add comprehensive test coverage for the optimized directory_missing_or_empty
function, testing empty directories, directories with content, non-existent
paths, and files (non-directories).

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Apply suggestions from code review

Co-authored-by: Mike Degatano <michael.degatano@gmail.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
2025-08-20 17:53:30 +02:00
dependabot[bot]
07d8fd006a Bump time-machine from 2.17.0 to 2.18.0 (#6113)
* Bump time-machine from 2.17.0 to 2.18.0

Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.17.0 to 2.18.0.
- [Changelog](https://github.com/adamchainz/time-machine/blob/main/docs/changelog.rst)
- [Commits](https://github.com/adamchainz/time-machine/compare/2.17.0...2.18.0)

---
updated-dependencies:
- dependency-name: time-machine
  dependency-version: 2.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix time_machine usage

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Stefan Agner <stefan@agner.ch>
2025-08-20 10:37:29 +02:00
Jan Čermák
b49ce96df8 Propagate timezone setting to host in OS 16.2 and newer (#6099)
* Propagate timezone setting to host in OS 16.2 and newer

With home-assistant/operating-system#4224, timezone setting in OS can be
peristently set in HAOS as well. Propagate the timezone configured in
Supervisor config (which can be changed through general system settings
in HA Core) through the DBus API for setting the timezone.

* Persist timezone also when it's been obtained from Whoami

* Suppress pylint fixme error
2025-08-20 01:30:57 +02:00
Mike Degatano
4109c15a36 Revert .git missing check in store git (#6114) 2025-08-19 23:39:01 +02:00
dependabot[bot]
d0e2778255 Bump requests from 2.32.4 to 2.32.5 (#6112)
Bumps [requests](https://github.com/psf/requests) from 2.32.4 to 2.32.5.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.4...v2.32.5)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.32.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-19 22:15:16 +02:00
Copilot
014082eda8 Create repair issue when user has deprecated add-on installed (#6110)
* Initial plan

* Add deprecated addon repair issue check

Co-authored-by: agners <34061+agners@users.noreply.github.com>

* Apply ruff format

* Add remove suggestion

Co-authored-by: Mike Degatano <michael.degatano@gmail.com>

* Update tests/resolution/check/test_check_deprecated_addon.py

Co-authored-by: Mike Degatano <michael.degatano@gmail.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: agners <34061+agners@users.noreply.github.com>
Co-authored-by: Stefan Agner <stefan@agner.ch>
Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
2025-08-19 22:02:36 +02:00
Petar Petrov
2324b70084 Storage space usage API (#6046)
* Storage space usage API

* Move to host API

* add tests

* fix test url

* more tests

* fix tests

* fix test

* PR comments

* update test

* tweak format and url

* add .DS_Store to .gitignore

* update tests

* test coverage

* update to new struct

* update test
2025-08-19 10:54:53 +02:00
dependabot[bot]
43f20fe24f Bump coverage from 7.10.3 to 7.10.4 (#6108)
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.10.3 to 7.10.4.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.10.3...7.10.4)

---
updated-dependencies:
- dependency-name: coverage
  dependency-version: 7.10.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-18 13:14:43 +02:00
TheJulianJES
8ef5eae22a Fix restrict-task-creation workflow (#6105) 2025-08-18 11:45:13 +02:00
dependabot[bot]
e5dd09ab6b Bump ruff from 0.12.8 to 0.12.9 (#6101)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-15 13:31:10 +02:00
dependabot[bot]
3f2db956cb Bump sentry-sdk from 2.34.1 to 2.35.0 (#6100)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-15 13:30:53 +02:00
Stefan Agner
603df92618 Sort DNS servers by NetworkManager priority (#6093)
Sort DNS servers by NetworkManager priority and make sure the order
is stable even if the priorities are equal. This avoids unnecessary
DNS plug-in restarts.
2025-08-14 15:14:32 +02:00
Mike Degatano
8a82b98e5b Improved error handling for docker image pulls (#6095)
* Improved error handling for docker image pulls

* Fix mocking in tests due to api use change
2025-08-13 18:05:27 +02:00
Jan Čermák
07dd0b7394 Bump uv to 0.8.9 (#6097) 2025-08-13 16:27:56 +02:00
dependabot[bot]
cf0a85a4b1 Bump orjson from 3.11.1 to 3.11.2 (#6096)
Bumps [orjson](https://github.com/ijl/orjson) from 3.11.1 to 3.11.2.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.11.1...3.11.2)

---
updated-dependencies:
- dependency-name: orjson
  dependency-version: 3.11.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-13 10:01:23 +02:00
dependabot[bot]
9924165cd3 Bump actions/checkout from 4 to 5.0.0 (#6092)
* Bump actions/checkout from 4 to 5

Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Use full version number

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Stefan Agner <stefan@agner.ch>
2025-08-12 23:20:44 +02:00
github-actions[bot]
91392a5443 Update frontend to version 20250811.0 (#6091)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-12 09:51:46 +02:00
Copilot
fd205ce2ef Add Docker MTU configuration support for networks with non-standard MTU (#6079)
* Initial plan

* Implement Docker MTU support - core functionality

Co-authored-by: agners <34061+agners@users.noreply.github.com>

* Add comprehensive MTU tests and documentation

Co-authored-by: agners <34061+agners@users.noreply.github.com>

* Fix final linting issue in test file

Co-authored-by: agners <34061+agners@users.noreply.github.com>

* Apply suggestions from code review

* Implement reboot_required flag pattern and fix MyPy typing issue

Co-authored-by: agners <34061+agners@users.noreply.github.com>

* Update supervisor/api/docker.py

* Update supervisor/docker/manager.py

Co-authored-by: Mike Degatano <michael.degatano@gmail.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: agners <34061+agners@users.noreply.github.com>
Co-authored-by: Stefan Agner <stefan@agner.ch>
Co-authored-by: Mike Degatano <michael.degatano@gmail.com>
2025-08-12 09:19:12 +02:00
dependabot[bot]
9ec56d9266 Bump pre-commit from 4.2.0 to 4.3.0 (#6084)
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.3.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 14:17:05 +02:00
dependabot[bot]
886b1bd281 Bump types-docker from 7.1.0.20250705 to 7.1.0.20250809 (#6085)
Bumps [types-docker](https://github.com/typeshed-internal/stub_uploader) from 7.1.0.20250705 to 7.1.0.20250809.
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

---
updated-dependencies:
- dependency-name: types-docker
  dependency-version: 7.1.0.20250809
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 14:16:50 +02:00
dependabot[bot]
ee0474edf5 Bump types-pyyaml from 6.0.12.20250516 to 6.0.12.20250809 (#6090)
Bumps [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) from 6.0.12.20250516 to 6.0.12.20250809.
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

---
updated-dependencies:
- dependency-name: types-pyyaml
  dependency-version: 6.0.12.20250809
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 13:58:00 +02:00
dependabot[bot]
f173489e69 Bump coverage from 7.10.2 to 7.10.3 (#6087)
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.10.2 to 7.10.3.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.10.2...7.10.3)

---
updated-dependencies:
- dependency-name: coverage
  dependency-version: 7.10.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 13:57:50 +02:00
dependabot[bot]
cee495bde3 Bump types-requests from 2.32.4.20250611 to 2.32.4.20250809 (#6089)
Bumps [types-requests](https://github.com/typeshed-internal/stub_uploader) from 2.32.4.20250611 to 2.32.4.20250809.
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-version: 2.32.4.20250809
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 13:40:21 +02:00
dependabot[bot]
59104a4438 Bump pylint from 3.3.7 to 3.3.8 (#6088)
Bumps [pylint](https://github.com/pylint-dev/pylint) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/pylint-dev/pylint/releases)
- [Commits](https://github.com/pylint-dev/pylint/compare/v3.3.7...v3.3.8)

---
updated-dependencies:
- dependency-name: pylint
  dependency-version: 3.3.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-11 13:40:08 +02:00
dependabot[bot]
e4eaeb91cd Bump actions/cache from 4.2.3 to 4.2.4 (#6082)
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.3 to 4.2.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4.2.3...v4.2.4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 4.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-08 12:23:07 +02:00
dependabot[bot]
e61d88779d Bump ruff from 0.12.7 to 0.12.8 (#6081)
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.7 to 0.12.8.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.12.7...0.12.8)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.12.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-08 12:22:55 +02:00
849 changed files with 6363 additions and 1158 deletions

View File

@@ -53,7 +53,7 @@ jobs:
requirements: ${{ steps.requirements.outputs.changed }}
steps:
- name: Checkout the repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
@@ -70,7 +70,7 @@ jobs:
- name: Get changed files
id: changed_files
if: steps.version.outputs.publish == 'false'
uses: masesgroup/retrieve-changed-files@v3.0.0
uses: masesgroup/retrieve-changed-files@491e80760c0e28d36ca6240a27b1ccb8e1402c13 # v3.0.0
- name: Check if requirements files changed
id: requirements
@@ -92,7 +92,7 @@ jobs:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
@@ -104,6 +104,7 @@ jobs:
echo "CARGO_NET_GIT_FETCH_WITH_CLI=true"
) > .env_file
# home-assistant/wheels doesn't support sha pinning
- name: Build wheels
if: needs.init.outputs.requirements == 'true'
uses: home-assistant/wheels@2025.07.0
@@ -125,13 +126,13 @@ jobs:
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.publish == 'true'
uses: actions/setup-python@v5.6.0
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Install Cosign
if: needs.init.outputs.publish == 'true'
uses: sigstore/cosign-installer@v3.9.2
uses: sigstore/cosign-installer@d7543c93d881b35a8faa02e8e3605f69b7a1ce62 # v3.10.0
with:
cosign-release: "v2.4.3"
@@ -149,7 +150,7 @@ jobs:
- name: Login to GitHub Container Registry
if: needs.init.outputs.publish == 'true'
uses: docker/login-action@v3.5.0
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
@@ -159,8 +160,9 @@ jobs:
if: needs.init.outputs.publish == 'false'
run: echo "BUILD_ARGS=--test" >> $GITHUB_ENV
# home-assistant/builder doesn't support sha pinning
- name: Build supervisor
uses: home-assistant/builder@2025.03.0
uses: home-assistant/builder@2025.09.0
with:
args: |
$BUILD_ARGS \
@@ -178,7 +180,7 @@ jobs:
steps:
- name: Checkout the repository
if: needs.init.outputs.publish == 'true'
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Initialize git
if: needs.init.outputs.publish == 'true'
@@ -203,11 +205,12 @@ jobs:
timeout-minutes: 60
steps:
- name: Checkout the repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
# home-assistant/builder doesn't support sha pinning
- name: Build the Supervisor
if: needs.init.outputs.publish != 'true'
uses: home-assistant/builder@2025.03.0
uses: home-assistant/builder@2025.09.0
with:
args: |
--test \

View File

@@ -26,15 +26,15 @@ jobs:
name: Prepare Python dependencies
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up Python
id: python
uses: actions/setup-python@v5.6.0
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore Python virtual environment
id: cache-venv
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: venv
key: |
@@ -48,7 +48,7 @@ jobs:
pip install -r requirements.txt -r requirements_tests.txt
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: ${{ env.PRE_COMMIT_CACHE }}
lookup-only: true
@@ -68,15 +68,15 @@ jobs:
needs: prepare
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up Python ${{ needs.prepare.outputs.python-version }}
uses: actions/setup-python@v5.6.0
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
id: python
with:
python-version: ${{ needs.prepare.outputs.python-version }}
- name: Restore Python virtual environment
id: cache-venv
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: venv
key: |
@@ -88,7 +88,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: |
@@ -111,15 +111,15 @@ jobs:
needs: prepare
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up Python ${{ needs.prepare.outputs.python-version }}
uses: actions/setup-python@v5.6.0
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
id: python
with:
python-version: ${{ needs.prepare.outputs.python-version }}
- name: Restore Python virtual environment
id: cache-venv
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: venv
key: |
@@ -131,7 +131,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: |
@@ -154,7 +154,7 @@ jobs:
needs: prepare
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Register hadolint problem matcher
run: |
echo "::add-matcher::.github/workflows/matchers/hadolint.json"
@@ -169,15 +169,15 @@ jobs:
needs: prepare
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up Python ${{ needs.prepare.outputs.python-version }}
uses: actions/setup-python@v5.6.0
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
id: python
with:
python-version: ${{ needs.prepare.outputs.python-version }}
- name: Restore Python virtual environment
id: cache-venv
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: venv
key: |
@@ -189,7 +189,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: |
@@ -213,15 +213,15 @@ jobs:
needs: prepare
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up Python ${{ needs.prepare.outputs.python-version }}
uses: actions/setup-python@v5.6.0
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
id: python
with:
python-version: ${{ needs.prepare.outputs.python-version }}
- name: Restore Python virtual environment
id: cache-venv
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: venv
key: |
@@ -233,7 +233,7 @@ jobs:
exit 1
- name: Restore pre-commit environment from cache
id: cache-precommit
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: ${{ env.PRE_COMMIT_CACHE }}
key: |
@@ -257,15 +257,15 @@ jobs:
needs: prepare
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up Python ${{ needs.prepare.outputs.python-version }}
uses: actions/setup-python@v5.6.0
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
id: python
with:
python-version: ${{ needs.prepare.outputs.python-version }}
- name: Restore Python virtual environment
id: cache-venv
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: venv
key: |
@@ -293,9 +293,9 @@ jobs:
needs: prepare
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up Python ${{ needs.prepare.outputs.python-version }}
uses: actions/setup-python@v5.6.0
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
id: python
with:
python-version: ${{ needs.prepare.outputs.python-version }}
@@ -307,7 +307,7 @@ jobs:
echo "key=mypy-${{ env.MYPY_CACHE_VERSION }}-$mypy_version-$(date -u '+%Y-%m-%dT%H:%M:%s')" >> $GITHUB_OUTPUT
- name: Restore Python virtual environment
id: cache-venv
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: venv
key: >-
@@ -318,7 +318,7 @@ jobs:
echo "Failed to restore Python virtual environment from cache"
exit 1
- name: Restore mypy cache
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: .mypy_cache
key: >-
@@ -339,19 +339,19 @@ jobs:
name: Run tests Python ${{ needs.prepare.outputs.python-version }}
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up Python ${{ needs.prepare.outputs.python-version }}
uses: actions/setup-python@v5.6.0
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
id: python
with:
python-version: ${{ needs.prepare.outputs.python-version }}
- name: Install Cosign
uses: sigstore/cosign-installer@v3.9.2
uses: sigstore/cosign-installer@d7543c93d881b35a8faa02e8e3605f69b7a1ce62 # v3.10.0
with:
cosign-release: "v2.4.3"
- name: Restore Python virtual environment
id: cache-venv
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: venv
key: |
@@ -386,7 +386,7 @@ jobs:
-o console_output_style=count \
tests
- name: Upload coverage artifact
uses: actions/upload-artifact@v4.6.2
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: coverage
path: .coverage
@@ -398,15 +398,15 @@ jobs:
needs: ["pytest", "prepare"]
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up Python ${{ needs.prepare.outputs.python-version }}
uses: actions/setup-python@v5.6.0
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
id: python
with:
python-version: ${{ needs.prepare.outputs.python-version }}
- name: Restore Python virtual environment
id: cache-venv
uses: actions/cache@v4.2.3
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: venv
key: |
@@ -417,7 +417,7 @@ jobs:
echo "Failed to restore Python virtual environment from cache"
exit 1
- name: Download all coverage artifacts
uses: actions/download-artifact@v5.0.0
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
with:
name: coverage
path: coverage/
@@ -428,4 +428,4 @@ jobs:
coverage report
coverage xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5.4.3
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1

View File

@@ -9,7 +9,7 @@ jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v5.0.1
- uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v5.0.1
with:
github-token: ${{ github.token }}
issue-inactive-days: "30"

View File

@@ -11,7 +11,7 @@ jobs:
name: Release Drafter
steps:
- name: Checkout the repository
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
@@ -36,7 +36,7 @@ jobs:
echo "version=$datepre.$newpost" >> "$GITHUB_OUTPUT"
- name: Run Release Drafter
uses: release-drafter/release-drafter@v6.1.0
uses: release-drafter/release-drafter@b1476f6e6eb133afa41ed8589daba6dc69b4d3f5 # v6.1.0
with:
tag: ${{ steps.version.outputs.version }}
name: ${{ steps.version.outputs.version }}

View File

@@ -9,10 +9,10 @@ jobs:
check-authorization:
runs-on: ubuntu-latest
# Only run if this is a Task issue type (from the issue form)
if: github.event.issue.issue_type == 'Task'
if: github.event.issue.type.name == 'Task'
steps:
- name: Check if user is authorized
uses: actions/github-script@v7
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: |
const issueAuthor = context.payload.issue.user.login;

View File

@@ -10,9 +10,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out code from GitHub
uses: actions/checkout@v4.2.2
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Sentry Release
uses: getsentry/action-release@v3.2.0
uses: getsentry/action-release@526942b68292201ac6bbb99b9a0747d4abee354c # v3.2.0
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}

View File

@@ -9,7 +9,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9.1.0
- uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v10.0.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 30

View File

@@ -14,10 +14,10 @@ jobs:
latest_version: ${{ steps.latest_frontend_version.outputs.latest_tag }}
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Get latest frontend release
id: latest_frontend_version
uses: abatilo/release-info-action@v1.3.3
uses: abatilo/release-info-action@32cb932219f1cee3fc4f4a298fd65ead5d35b661 # v1.3.3
with:
owner: home-assistant
repo: frontend
@@ -49,7 +49,7 @@ jobs:
if: needs.check-version.outputs.skip != 'true'
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Clear www folder
run: |
rm -rf supervisor/api/panel/*
@@ -57,7 +57,7 @@ jobs:
run: |
echo "${{ needs.check-version.outputs.latest_version }}" > .ha-frontend-version
- name: Download release assets
uses: robinraju/release-downloader@v1
uses: robinraju/release-downloader@daf26c55d821e836577a15f77d86ddc078948b05 # v1.12
with:
repository: 'home-assistant/frontend'
tag: ${{ needs.check-version.outputs.latest_version }}
@@ -68,7 +68,7 @@ jobs:
run: |
rm -f supervisor/api/panel/home_assistant_frontend_supervisor-*.tar.gz
- name: Create PR
uses: peter-evans/create-pull-request@v7
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
with:
commit-message: "Update frontend to version ${{ needs.check-version.outputs.latest_version }}"
branch: autoupdate-frontend

3
.gitignore vendored
View File

@@ -100,3 +100,6 @@ ENV/
# mypy
/.mypy_cache/*
/.dmypy.json
# Mac
.DS_Store

View File

@@ -1 +1 @@
20250806.0
20250811.0

View File

@@ -29,7 +29,7 @@ RUN \
\
&& curl -Lso /usr/bin/cosign "https://github.com/home-assistant/cosign/releases/download/${COSIGN_VERSION}/cosign_${BUILD_ARCH}" \
&& chmod a+x /usr/bin/cosign \
&& pip3 install uv==0.6.17
&& pip3 install uv==0.8.9
# Install requirements
COPY requirements.txt .

View File

@@ -5,11 +5,11 @@ attrs==25.3.0
awesomeversion==25.8.0
blockbuster==1.5.25
brotli==1.1.0
ciso8601==2.3.2
ciso8601==2.3.3
colorlog==6.9.0
cpe==1.3.1
cryptography==45.0.6
debugpy==1.8.16
cryptography==46.0.1
debugpy==1.8.17
deepmerge==2.0
dirhash==0.5.0
docker==7.1.0
@@ -17,13 +17,13 @@ faust-cchardet==2.1.19
gitpython==3.1.45
jinja2==3.1.6
log-rate-limit==1.4.2
orjson==3.11.1
orjson==3.11.3
pulsectl==24.12.0
pyudev==0.24.3
PyYAML==6.0.2
requests==2.32.4
requests==2.32.5
securetar==2025.2.1
sentry-sdk==2.34.1
sentry-sdk==2.38.0
setuptools==80.9.0
voluptuous==0.15.2
dbus-fast==2.44.3

View File

@@ -1,16 +1,16 @@
astroid==3.3.11
coverage==7.10.2
mypy==1.17.1
pre-commit==4.2.0
pylint==3.3.7
coverage==7.10.7
mypy==1.18.2
pre-commit==4.3.0
pylint==3.3.8
pytest-aiohttp==1.1.0
pytest-asyncio==0.25.2
pytest-cov==6.2.1
pytest-cov==7.0.0
pytest-timeout==2.4.0
pytest==8.4.1
ruff==0.12.7
time-machine==2.17.0
types-docker==7.1.0.20250705
types-pyyaml==6.0.12.20250516
types-requests==2.32.4.20250611
pytest==8.4.2
ruff==0.13.1
time-machine==2.19.0
types-docker==7.1.0.20250916
types-pyyaml==6.0.12.20250915
types-requests==2.32.4.20250913
urllib3==2.5.0

View File

@@ -66,10 +66,23 @@ if __name__ == "__main__":
_LOGGER.info("Setting up Supervisor")
loop.run_until_complete(coresys.core.setup())
bootstrap.register_signal_handlers(loop, coresys)
# Create startup task that can be cancelled gracefully
startup_task = loop.create_task(coresys.core.start())
def shutdown_handler() -> None:
"""Handle shutdown signals gracefully during startup."""
if not startup_task.done():
_LOGGER.warning("Supervisor startup interrupted by shutdown signal")
startup_task.cancel()
coresys.create_task(coresys.core.stop())
bootstrap.register_signal_handlers(loop, shutdown_handler)
try:
loop.run_until_complete(coresys.core.start())
loop.run_until_complete(startup_task)
except asyncio.CancelledError:
_LOGGER.warning("Supervisor startup cancelled")
except Exception as err: # pylint: disable=broad-except
# Supervisor itself is running at this point, just something didn't
# start as expected. Log with traceback to get more insights for

View File

@@ -67,9 +67,9 @@ from ..docker.monitor import DockerContainerStateEvent
from ..docker.stats import DockerStats
from ..exceptions import (
AddonConfigurationError,
AddonNotSupportedError,
AddonsError,
AddonsJobError,
AddonsNotSupportedError,
ConfigurationFileError,
DockerError,
HomeAssistantAPIError,
@@ -1172,7 +1172,7 @@ class Addon(AddonModel):
async def write_stdin(self, data) -> None:
"""Write data to add-on stdin."""
if not self.with_stdin:
raise AddonsNotSupportedError(
raise AddonNotSupportedError(
f"Add-on {self.slug} does not support writing to stdin!", _LOGGER.error
)
@@ -1419,7 +1419,7 @@ class Addon(AddonModel):
# If available
if not self._available(data[ATTR_SYSTEM]):
raise AddonsNotSupportedError(
raise AddonNotSupportedError(
f"Add-on {self.slug} is not available for this platform",
_LOGGER.error,
)

View File

@@ -14,9 +14,9 @@ from supervisor.jobs.const import JobConcurrency
from ..const import AddonBoot, AddonStartup, AddonState
from ..coresys import CoreSys, CoreSysAttributes
from ..exceptions import (
AddonNotSupportedError,
AddonsError,
AddonsJobError,
AddonsNotSupportedError,
CoreDNSError,
DockerError,
HassioError,
@@ -184,7 +184,9 @@ class AddonManager(CoreSysAttributes):
on_condition=AddonsJobError,
concurrency=JobConcurrency.QUEUE,
)
async def install(self, slug: str) -> None:
async def install(
self, slug: str, *, validation_complete: asyncio.Event | None = None
) -> None:
"""Install an add-on."""
self.sys_jobs.current.reference = slug
@@ -197,6 +199,10 @@ class AddonManager(CoreSysAttributes):
store.validate_availability()
# If being run in the background, notify caller that validation has completed
if validation_complete:
validation_complete.set()
await Addon(self.coresys, slug).install()
_LOGGER.info("Add-on '%s' successfully installed", slug)
@@ -226,7 +232,11 @@ class AddonManager(CoreSysAttributes):
on_condition=AddonsJobError,
)
async def update(
self, slug: str, backup: bool | None = False
self,
slug: str,
backup: bool | None = False,
*,
validation_complete: asyncio.Event | None = None,
) -> asyncio.Task | None:
"""Update add-on.
@@ -251,6 +261,10 @@ class AddonManager(CoreSysAttributes):
# Check if available, Maybe something have changed
store.validate_availability()
# If being run in the background, notify caller that validation has completed
if validation_complete:
validation_complete.set()
if backup:
await self.sys_backups.do_backup_partial(
name=f"addon_{addon.slug}_{addon.version}",
@@ -293,7 +307,7 @@ class AddonManager(CoreSysAttributes):
"Version changed, use Update instead Rebuild", _LOGGER.error
)
if not force and not addon.need_build:
raise AddonsNotSupportedError(
raise AddonNotSupportedError(
"Can't rebuild a image based add-on", _LOGGER.error
)

View File

@@ -89,7 +89,12 @@ from ..const import (
)
from ..coresys import CoreSys
from ..docker.const import Capabilities
from ..exceptions import AddonsNotSupportedError
from ..exceptions import (
AddonNotSupportedArchitectureError,
AddonNotSupportedError,
AddonNotSupportedHomeAssistantVersionError,
AddonNotSupportedMachineTypeError,
)
from ..jobs.const import JOB_GROUP_ADDON
from ..jobs.job_group import JobGroup
from ..utils import version_is_new_enough
@@ -680,9 +685,8 @@ class AddonModel(JobGroup, ABC):
"""Validate if addon is available for current system."""
# Architecture
if not self.sys_arch.is_supported(config[ATTR_ARCH]):
raise AddonsNotSupportedError(
f"Add-on {self.slug} not supported on this platform, supported architectures: {', '.join(config[ATTR_ARCH])}",
logger,
raise AddonNotSupportedArchitectureError(
logger, slug=self.slug, architectures=config[ATTR_ARCH]
)
# Machine / Hardware
@@ -690,9 +694,8 @@ class AddonModel(JobGroup, ABC):
if machine and (
f"!{self.sys_machine}" in machine or self.sys_machine not in machine
):
raise AddonsNotSupportedError(
f"Add-on {self.slug} not supported on this machine, supported machine types: {', '.join(machine)}",
logger,
raise AddonNotSupportedMachineTypeError(
logger, slug=self.slug, machine_types=machine
)
# Home Assistant
@@ -701,16 +704,15 @@ class AddonModel(JobGroup, ABC):
if version and not version_is_new_enough(
self.sys_homeassistant.version, version
):
raise AddonsNotSupportedError(
f"Add-on {self.slug} not supported on this system, requires Home Assistant version {version} or greater",
logger,
raise AddonNotSupportedHomeAssistantVersionError(
logger, slug=self.slug, version=str(version)
)
def _available(self, config) -> bool:
"""Return True if this add-on is available on this platform."""
try:
self._validate_availability(config)
except AddonsNotSupportedError:
except AddonNotSupportedError:
return False
return True

View File

@@ -93,15 +93,7 @@ class AddonOptions(CoreSysAttributes):
typ = self.raw_schema[key]
try:
if isinstance(typ, list):
# nested value list
options[key] = self._nested_validate_list(typ[0], value, key)
elif isinstance(typ, dict):
# nested value dict
options[key] = self._nested_validate_dict(typ, value, key)
else:
# normal value
options[key] = self._single_validate(typ, value, key)
options[key] = self._validate_element(typ, value, key)
except (IndexError, KeyError):
raise vol.Invalid(
f"Type error for option '{key}' in {self._name} ({self._slug})"
@@ -111,7 +103,20 @@ class AddonOptions(CoreSysAttributes):
return options
# pylint: disable=no-value-for-parameter
def _single_validate(self, typ: str, value: Any, key: str):
def _validate_element(self, typ: Any, value: Any, key: str) -> Any:
"""Validate a value against a type specification."""
if isinstance(typ, list):
# nested value list
return self._nested_validate_list(typ[0], value, key)
elif isinstance(typ, dict):
# nested value dict
return self._nested_validate_dict(typ, value, key)
else:
# normal value
return self._single_validate(typ, value, key)
# pylint: disable=no-value-for-parameter
def _single_validate(self, typ: str, value: Any, key: str) -> Any:
"""Validate a single element."""
# if required argument
if value is None:
@@ -188,7 +193,9 @@ class AddonOptions(CoreSysAttributes):
f"Fatal error for option '{key}' with type '{typ}' in {self._name} ({self._slug})"
) from None
def _nested_validate_list(self, typ: Any, data_list: list[Any], key: str):
def _nested_validate_list(
self, typ: Any, data_list: list[Any], key: str
) -> list[Any]:
"""Validate nested items."""
options = []
@@ -201,17 +208,13 @@ class AddonOptions(CoreSysAttributes):
# Process list
for element in data_list:
# Nested?
if isinstance(typ, dict):
c_options = self._nested_validate_dict(typ, element, key)
options.append(c_options)
else:
options.append(self._single_validate(typ, element, key))
options.append(self._validate_element(typ, element, key))
return options
def _nested_validate_dict(
self, typ: dict[Any, Any], data_dict: dict[Any, Any], key: str
):
) -> dict[Any, Any]:
"""Validate nested items."""
options = {}
@@ -231,12 +234,7 @@ class AddonOptions(CoreSysAttributes):
continue
# Nested?
if isinstance(typ[c_key], list):
options[c_key] = self._nested_validate_list(
typ[c_key][0], c_value, c_key
)
else:
options[c_key] = self._single_validate(typ[c_key], c_value, c_key)
options[c_key] = self._validate_element(typ[c_key], c_value, c_key)
self._check_missing_options(typ, options, key)
return options
@@ -274,18 +272,28 @@ class UiOptions(CoreSysAttributes):
# read options
for key, value in raw_schema.items():
if isinstance(value, list):
# nested value list
self._nested_ui_list(ui_schema, value, key)
elif isinstance(value, dict):
# nested value dict
self._nested_ui_dict(ui_schema, value, key)
else:
# normal value
self._single_ui_option(ui_schema, value, key)
self._ui_schema_element(ui_schema, value, key)
return ui_schema
def _ui_schema_element(
self,
ui_schema: list[dict[str, Any]],
value: str,
key: str,
multiple: bool = False,
):
if isinstance(value, list):
# nested value list
assert not multiple
self._nested_ui_list(ui_schema, value, key)
elif isinstance(value, dict):
# nested value dict
self._nested_ui_dict(ui_schema, value, key, multiple)
else:
# normal value
self._single_ui_option(ui_schema, value, key, multiple)
def _single_ui_option(
self,
ui_schema: list[dict[str, Any]],
@@ -377,10 +385,7 @@ class UiOptions(CoreSysAttributes):
_LOGGER.error("Invalid schema %s", key)
return
if isinstance(element, dict):
self._nested_ui_dict(ui_schema, element, key, multiple=True)
else:
self._single_ui_option(ui_schema, element, key, multiple=True)
self._ui_schema_element(ui_schema, element, key, multiple=True)
def _nested_ui_dict(
self,
@@ -399,11 +404,7 @@ class UiOptions(CoreSysAttributes):
nested_schema: list[dict[str, Any]] = []
for c_key, c_value in option_dict.items():
# Nested?
if isinstance(c_value, list):
self._nested_ui_list(nested_schema, c_value, c_key)
else:
self._single_ui_option(nested_schema, c_value, c_key)
self._ui_schema_element(nested_schema, c_value, c_key)
ui_node["schema"] = nested_schema
ui_schema.append(ui_node)

View File

@@ -32,6 +32,7 @@ from ..const import (
ATTR_DISCOVERY,
ATTR_DOCKER_API,
ATTR_ENVIRONMENT,
ATTR_FIELDS,
ATTR_FULL_ACCESS,
ATTR_GPIO,
ATTR_HASSIO_API,
@@ -137,7 +138,19 @@ RE_DOCKER_IMAGE_BUILD = re.compile(
r"^([a-zA-Z\-\.:\d{}]+/)*?([\-\w{}]+)/([\-\w{}]+)(:[\.\-\w{}]+)?$"
)
SCHEMA_ELEMENT = vol.Match(RE_SCHEMA_ELEMENT)
SCHEMA_ELEMENT = vol.Schema(
vol.Any(
vol.Match(RE_SCHEMA_ELEMENT),
[
# A list may not directly contain another list
vol.Any(
vol.Match(RE_SCHEMA_ELEMENT),
{str: vol.Self},
)
],
{str: vol.Self},
)
)
RE_MACHINE = re.compile(
r"^!?(?:"
@@ -266,10 +279,23 @@ def _migrate_addon_config(protocol=False):
volumes = []
for entry in config.get(ATTR_MAP, []):
if isinstance(entry, dict):
# Validate that dict entries have required 'type' field
if ATTR_TYPE not in entry:
_LOGGER.warning(
"Add-on config has invalid map entry missing 'type' field: %s. Skipping invalid entry for %s",
entry,
name,
)
continue
volumes.append(entry)
if isinstance(entry, str):
result = RE_VOLUME.match(entry)
if not result:
_LOGGER.warning(
"Add-on config has invalid map entry: %s. Skipping invalid entry for %s",
entry,
name,
)
continue
volumes.append(
{
@@ -278,8 +304,8 @@ def _migrate_addon_config(protocol=False):
}
)
if volumes:
config[ATTR_MAP] = volumes
# Always update config to clear potentially malformed ones
config[ATTR_MAP] = volumes
# 2023-10 "config" became "homeassistant" so /config can be used for addon's public config
if any(volume[ATTR_TYPE] == MappingType.CONFIG for volume in volumes):
@@ -393,20 +419,7 @@ _SCHEMA_ADDON_CONFIG = vol.Schema(
vol.Optional(ATTR_CODENOTARY): vol.Email(),
vol.Optional(ATTR_OPTIONS, default={}): dict,
vol.Optional(ATTR_SCHEMA, default={}): vol.Any(
vol.Schema(
{
str: vol.Any(
SCHEMA_ELEMENT,
[
vol.Any(
SCHEMA_ELEMENT,
{str: vol.Any(SCHEMA_ELEMENT, [SCHEMA_ELEMENT])},
)
],
vol.Schema({str: vol.Any(SCHEMA_ELEMENT, [SCHEMA_ELEMENT])}),
)
}
),
vol.Schema({str: SCHEMA_ELEMENT}),
False,
),
vol.Optional(ATTR_IMAGE): docker_image,
@@ -442,6 +455,7 @@ SCHEMA_TRANSLATION_CONFIGURATION = vol.Schema(
{
vol.Required(ATTR_NAME): str,
vol.Optional(ATTR_DESCRIPTON): vol.Maybe(str),
vol.Optional(ATTR_FIELDS): {str: vol.Self},
},
extra=vol.REMOVE_EXTRA,
)

View File

@@ -146,6 +146,14 @@ class RestAPI(CoreSysAttributes):
follow=True,
),
),
web.get(
f"{path}/logs/latest",
partial(
self._api_host.advanced_logs,
identifier=syslog_identifier,
latest=True,
),
),
web.get(
f"{path}/logs/boots/{{bootid}}",
partial(self._api_host.advanced_logs, identifier=syslog_identifier),
@@ -198,6 +206,7 @@ class RestAPI(CoreSysAttributes):
web.post("/host/reload", api_host.reload),
web.post("/host/options", api_host.options),
web.get("/host/services", api_host.services),
web.get("/host/disks/default/usage", api_host.disk_usage),
]
)
@@ -439,6 +448,7 @@ class RestAPI(CoreSysAttributes):
# is known and reported to the user using the resolution center.
await async_capture_exception(err)
kwargs.pop("follow", None) # Follow is not supported for Docker logs
kwargs.pop("latest", None) # Latest is not supported for Docker logs
return await api_supervisor.logs(*args, **kwargs)
self.webapp.add_routes(
@@ -448,6 +458,10 @@ class RestAPI(CoreSysAttributes):
"/supervisor/logs/follow",
partial(get_supervisor_logs, follow=True),
),
web.get(
"/supervisor/logs/latest",
partial(get_supervisor_logs, latest=True),
),
web.get("/supervisor/logs/boots/{bootid}", get_supervisor_logs),
web.get(
"/supervisor/logs/boots/{bootid}/follow",
@@ -560,6 +574,10 @@ class RestAPI(CoreSysAttributes):
"/addons/{addon}/logs/follow",
partial(get_addon_logs, follow=True),
),
web.get(
"/addons/{addon}/logs/latest",
partial(get_addon_logs, latest=True),
),
web.get("/addons/{addon}/logs/boots/{bootid}", get_addon_logs),
web.get(
"/addons/{addon}/logs/boots/{bootid}/follow",
@@ -734,6 +752,10 @@ class RestAPI(CoreSysAttributes):
"/store/addons/{addon}/documentation",
api_store.addons_addon_documentation,
),
web.get(
"/store/addons/{addon}/availability",
api_store.addons_addon_availability,
),
web.post(
"/store/addons/{addon}/install", api_store.addons_addon_install
),

View File

@@ -3,7 +3,6 @@
from __future__ import annotations
import asyncio
from collections.abc import Callable
import errno
from io import IOBase
import logging
@@ -46,12 +45,9 @@ from ..const import (
ATTR_TYPE,
ATTR_VERSION,
REQUEST_FROM,
BusEvent,
CoreState,
)
from ..coresys import CoreSysAttributes
from ..exceptions import APIError, APIForbidden, APINotFound
from ..jobs import JobSchedulerOptions, SupervisorJob
from ..mounts.const import MountUsage
from ..resolution.const import UnhealthyReason
from .const import (
@@ -61,7 +57,7 @@ from .const import (
ATTR_LOCATIONS,
CONTENT_TYPE_TAR,
)
from .utils import api_process, api_validate
from .utils import api_process, api_validate, background_task
_LOGGER: logging.Logger = logging.getLogger(__name__)
@@ -289,41 +285,6 @@ class APIBackups(CoreSysAttributes):
f"Location {LOCATION_CLOUD_BACKUP} is only available for Home Assistant"
)
async def _background_backup_task(
self, backup_method: Callable, *args, **kwargs
) -> tuple[asyncio.Task, str]:
"""Start backup task in background and return task and job ID."""
event = asyncio.Event()
job, backup_task = cast(
tuple[SupervisorJob, asyncio.Task],
self.sys_jobs.schedule_job(
backup_method, JobSchedulerOptions(), *args, **kwargs
),
)
async def release_on_freeze(new_state: CoreState):
if new_state == CoreState.FREEZE:
event.set()
# Wait for system to get into freeze state before returning
# If the backup fails validation it will raise before getting there
listener = self.sys_bus.register_event(
BusEvent.SUPERVISOR_STATE_CHANGE, release_on_freeze
)
try:
event_task = self.sys_create_task(event.wait())
_, pending = await asyncio.wait(
(backup_task, event_task),
return_when=asyncio.FIRST_COMPLETED,
)
# It seems backup returned early (error or something), make sure to cancel
# the event task to avoid "Task was destroyed but it is pending!" errors.
if event_task in pending:
event_task.cancel()
return (backup_task, job.uuid)
finally:
self.sys_bus.remove_listener(listener)
@api_process
async def backup_full(self, request: web.Request):
"""Create full backup."""
@@ -342,8 +303,8 @@ class APIBackups(CoreSysAttributes):
body[ATTR_ADDITIONAL_LOCATIONS] = locations
background = body.pop(ATTR_BACKGROUND)
backup_task, job_id = await self._background_backup_task(
self.sys_backups.do_backup_full, **body
backup_task, job_id = await background_task(
self, self.sys_backups.do_backup_full, **body
)
if background and not backup_task.done():
@@ -378,8 +339,8 @@ class APIBackups(CoreSysAttributes):
body[ATTR_ADDONS] = list(self.sys_addons.local)
background = body.pop(ATTR_BACKGROUND)
backup_task, job_id = await self._background_backup_task(
self.sys_backups.do_backup_partial, **body
backup_task, job_id = await background_task(
self, self.sys_backups.do_backup_partial, **body
)
if background and not backup_task.done():
@@ -402,8 +363,8 @@ class APIBackups(CoreSysAttributes):
request, body.get(ATTR_LOCATION, backup.location)
)
background = body.pop(ATTR_BACKGROUND)
restore_task, job_id = await self._background_backup_task(
self.sys_backups.do_restore_full, backup, **body
restore_task, job_id = await background_task(
self, self.sys_backups.do_restore_full, backup, **body
)
if background and not restore_task.done() or await restore_task:
@@ -422,8 +383,8 @@ class APIBackups(CoreSysAttributes):
request, body.get(ATTR_LOCATION, backup.location)
)
background = body.pop(ATTR_BACKGROUND)
restore_task, job_id = await self._background_backup_task(
self.sys_backups.do_restore_partial, backup, **body
restore_task, job_id = await background_task(
self, self.sys_backups.do_restore_partial, backup, **body
)
if background and not restore_task.done() or await restore_task:

View File

@@ -49,6 +49,7 @@ ATTR_LLMNR_HOSTNAME = "llmnr_hostname"
ATTR_LOCAL_ONLY = "local_only"
ATTR_LOCATION_ATTRIBUTES = "location_attributes"
ATTR_LOCATIONS = "locations"
ATTR_MAX_DEPTH = "max_depth"
ATTR_MDNS = "mdns"
ATTR_MODEL = "model"
ATTR_MOUNTS = "mounts"

View File

@@ -12,6 +12,7 @@ from ..const import (
ATTR_ENABLE_IPV6,
ATTR_HOSTNAME,
ATTR_LOGGING,
ATTR_MTU,
ATTR_PASSWORD,
ATTR_REGISTRIES,
ATTR_STORAGE,
@@ -34,7 +35,12 @@ SCHEMA_DOCKER_REGISTRY = vol.Schema(
)
# pylint: disable=no-value-for-parameter
SCHEMA_OPTIONS = vol.Schema({vol.Optional(ATTR_ENABLE_IPV6): vol.Maybe(vol.Boolean())})
SCHEMA_OPTIONS = vol.Schema(
{
vol.Optional(ATTR_ENABLE_IPV6): vol.Maybe(vol.Boolean()),
vol.Optional(ATTR_MTU): vol.Maybe(vol.All(int, vol.Range(min=68, max=65535))),
}
)
class APIDocker(CoreSysAttributes):
@@ -51,6 +57,7 @@ class APIDocker(CoreSysAttributes):
return {
ATTR_VERSION: self.sys_docker.info.version,
ATTR_ENABLE_IPV6: self.sys_docker.config.enable_ipv6,
ATTR_MTU: self.sys_docker.config.mtu,
ATTR_STORAGE: self.sys_docker.info.storage,
ATTR_LOGGING: self.sys_docker.info.logging,
ATTR_REGISTRIES: data_registries,
@@ -61,12 +68,23 @@ class APIDocker(CoreSysAttributes):
"""Set docker options."""
body = await api_validate(SCHEMA_OPTIONS, request)
reboot_required = False
if (
ATTR_ENABLE_IPV6 in body
and self.sys_docker.config.enable_ipv6 != body[ATTR_ENABLE_IPV6]
):
self.sys_docker.config.enable_ipv6 = body[ATTR_ENABLE_IPV6]
_LOGGER.info("Host system reboot required to apply new IPv6 configuration")
reboot_required = True
if ATTR_MTU in body and self.sys_docker.config.mtu != body[ATTR_MTU]:
self.sys_docker.config.mtu = body[ATTR_MTU]
reboot_required = True
if reboot_required:
_LOGGER.info(
"Host system reboot required to apply Docker configuration changes"
)
self.sys_resolution.create_issue(
IssueType.REBOOT_REQUIRED,
ContextType.SYSTEM,

View File

@@ -20,6 +20,7 @@ from ..const import (
ATTR_CPU_PERCENT,
ATTR_IMAGE,
ATTR_IP_ADDRESS,
ATTR_JOB_ID,
ATTR_MACHINE,
ATTR_MEMORY_LIMIT,
ATTR_MEMORY_PERCENT,
@@ -37,8 +38,8 @@ from ..const import (
from ..coresys import CoreSysAttributes
from ..exceptions import APIDBMigrationInProgress, APIError
from ..validate import docker_image, network_port, version_tag
from .const import ATTR_FORCE, ATTR_SAFE_MODE
from .utils import api_process, api_validate
from .const import ATTR_BACKGROUND, ATTR_FORCE, ATTR_SAFE_MODE
from .utils import api_process, api_validate, background_task
_LOGGER: logging.Logger = logging.getLogger(__name__)
@@ -61,6 +62,7 @@ SCHEMA_UPDATE = vol.Schema(
{
vol.Optional(ATTR_VERSION): version_tag,
vol.Optional(ATTR_BACKUP): bool,
vol.Optional(ATTR_BACKGROUND, default=False): bool,
}
)
@@ -170,18 +172,24 @@ class APIHomeAssistant(CoreSysAttributes):
}
@api_process
async def update(self, request: web.Request) -> None:
async def update(self, request: web.Request) -> dict[str, str] | None:
"""Update Home Assistant."""
body = await api_validate(SCHEMA_UPDATE, request)
await self._check_offline_migration()
await asyncio.shield(
self.sys_homeassistant.core.update(
version=body.get(ATTR_VERSION, self.sys_homeassistant.latest_version),
backup=body.get(ATTR_BACKUP),
)
background = body[ATTR_BACKGROUND]
update_task, job_id = await background_task(
self,
self.sys_homeassistant.core.update,
version=body.get(ATTR_VERSION, self.sys_homeassistant.latest_version),
backup=body.get(ATTR_BACKUP),
)
if background and not update_task.done():
return {ATTR_JOB_ID: job_id}
return await update_task
@api_process
async def stop(self, request: web.Request) -> Awaitable[None]:
"""Stop Home Assistant."""

View File

@@ -2,10 +2,17 @@
import asyncio
from contextlib import suppress
import json
import logging
from typing import Any
from aiohttp import ClientConnectionResetError, ClientPayloadError, web
from aiohttp import (
ClientConnectionResetError,
ClientError,
ClientPayloadError,
ClientTimeout,
web,
)
from aiohttp.hdrs import ACCEPT, RANGE
import voluptuous as vol
from voluptuous.error import CoerceInvalid
@@ -51,6 +58,7 @@ from .const import (
ATTR_FORCE,
ATTR_IDENTIFIERS,
ATTR_LLMNR_HOSTNAME,
ATTR_MAX_DEPTH,
ATTR_STARTUP_TIME,
ATTR_USE_NTP,
ATTR_VIRTUALIZATION,
@@ -193,7 +201,11 @@ class APIHost(CoreSysAttributes):
return possible_offset
async def advanced_logs_handler(
self, request: web.Request, identifier: str | None = None, follow: bool = False
self,
request: web.Request,
identifier: str | None = None,
follow: bool = False,
latest: bool = False,
) -> web.StreamResponse:
"""Return systemd-journald logs."""
log_formatter = LogFormatter.PLAIN
@@ -212,6 +224,20 @@ class APIHost(CoreSysAttributes):
if follow:
params[PARAM_FOLLOW] = ""
if latest:
if not identifier:
raise APIError(
"Latest logs can only be fetched for a specific identifier."
)
try:
epoch = await self._get_container_last_epoch(identifier)
params["CONTAINER_LOG_EPOCH"] = epoch
except HostLogError as err:
raise APIError(
f"Cannot determine CONTAINER_LOG_EPOCH of {identifier}, latest logs not available."
) from err
if ACCEPT in request.headers and request.headers[ACCEPT] not in [
CONTENT_TYPE_TEXT,
CONTENT_TYPE_X_LOG,
@@ -240,6 +266,8 @@ class APIHost(CoreSysAttributes):
lines = max(2, lines)
# entries=cursor[[:num_skip]:num_entries]
range_header = f"entries=:-{lines - 1}:{SYSTEMD_JOURNAL_GATEWAYD_LINES_MAX if follow else lines}"
elif latest:
range_header = f"entries=0:{SYSTEMD_JOURNAL_GATEWAYD_LINES_MAX}"
elif RANGE in request.headers:
range_header = request.headers[RANGE]
else:
@@ -285,7 +313,81 @@ class APIHost(CoreSysAttributes):
@api_process_raw(CONTENT_TYPE_TEXT, error_type=CONTENT_TYPE_TEXT)
async def advanced_logs(
self, request: web.Request, identifier: str | None = None, follow: bool = False
self,
request: web.Request,
identifier: str | None = None,
follow: bool = False,
latest: bool = False,
) -> web.StreamResponse:
"""Return systemd-journald logs. Wrapped as standard API handler."""
return await self.advanced_logs_handler(request, identifier, follow)
return await self.advanced_logs_handler(request, identifier, follow, latest)
@api_process
async def disk_usage(self, request: web.Request) -> dict:
"""Return a breakdown of storage usage for the system."""
max_depth = request.query.get(ATTR_MAX_DEPTH, 1)
try:
max_depth = int(max_depth)
except ValueError:
max_depth = 1
disk = self.sys_hardware.disk
total, used, _ = await self.sys_run_in_executor(
disk.disk_usage, self.sys_config.path_supervisor
)
known_paths = await self.sys_run_in_executor(
disk.get_dir_sizes,
{
"addons_data": self.sys_config.path_addons_data,
"addons_config": self.sys_config.path_addon_configs,
"media": self.sys_config.path_media,
"share": self.sys_config.path_share,
"backup": self.sys_config.path_backup,
"ssl": self.sys_config.path_ssl,
"homeassistant": self.sys_config.path_homeassistant,
},
max_depth,
)
return {
# this can be the disk/partition ID in the future
"id": "root",
"label": "Root",
"total_bytes": total,
"used_bytes": used,
"children": [
{
"id": "system",
"label": "System",
"used_bytes": used
- sum(path["used_bytes"] for path in known_paths),
},
*known_paths,
],
}
async def _get_container_last_epoch(self, identifier: str) -> str | None:
"""Get Docker's internal log epoch of the latest log entry for the given identifier."""
try:
async with self.sys_host.logs.journald_logs(
params={"CONTAINER_NAME": identifier},
range_header="entries=:-1:2", # -1 = next to the last entry
accept=LogFormat.JSON,
timeout=ClientTimeout(total=10),
) as resp:
text = await resp.text()
except (ClientError, TimeoutError) as err:
raise HostLogError(
"Could not get last container epoch from systemd-journal-gatewayd",
_LOGGER.error,
) from err
try:
return json.loads(text.strip().split("\n")[-1])["CONTAINER_LOG_EPOCH"]
except (json.JSONDecodeError, KeyError, IndexError) as err:
raise HostLogError(
f"Failed to parse CONTAINER_LOG_EPOCH of {identifier} container, got: {text}",
_LOGGER.error,
) from err

View File

@@ -199,21 +199,25 @@ class APIIngress(CoreSysAttributes):
url = f"{url}?{request.query_string}"
# Start proxy
async with self.sys_websession.ws_connect(
url,
headers=source_header,
protocols=req_protocols,
autoclose=False,
autoping=False,
) as ws_client:
# Proxy requests
await asyncio.wait(
[
self.sys_create_task(_websocket_forward(ws_server, ws_client)),
self.sys_create_task(_websocket_forward(ws_client, ws_server)),
],
return_when=asyncio.FIRST_COMPLETED,
)
try:
_LOGGER.debug("Proxing WebSocket to %s, upstream url: %s", addon.slug, url)
async with self.sys_websession.ws_connect(
url,
headers=source_header,
protocols=req_protocols,
autoclose=False,
autoping=False,
) as ws_client:
# Proxy requests
await asyncio.wait(
[
self.sys_create_task(_websocket_forward(ws_server, ws_client)),
self.sys_create_task(_websocket_forward(ws_client, ws_server)),
],
return_when=asyncio.FIRST_COMPLETED,
)
except TimeoutError:
_LOGGER.warning("WebSocket proxy to %s timed out", addon.slug)
return ws_server
@@ -286,6 +290,7 @@ class APIIngress(CoreSysAttributes):
aiohttp.ClientError,
aiohttp.ClientPayloadError,
ConnectionResetError,
ConnectionError,
) as err:
_LOGGER.error("Stream error with %s: %s", url, err)
@@ -386,9 +391,9 @@ async def _websocket_forward(ws_from, ws_to):
elif msg.type == aiohttp.WSMsgType.BINARY:
await ws_to.send_bytes(msg.data)
elif msg.type == aiohttp.WSMsgType.PING:
await ws_to.ping()
await ws_to.ping(msg.data)
elif msg.type == aiohttp.WSMsgType.PONG:
await ws_to.pong()
await ws_to.pong(msg.data)
elif ws_to.closed:
await ws_to.close(code=ws_to.close_code, message=msg.extra)
except RuntimeError:

View File

@@ -26,7 +26,9 @@ from ..const import (
ATTR_IP6_PRIVACY,
ATTR_IPV4,
ATTR_IPV6,
ATTR_LLMNR,
ATTR_MAC,
ATTR_MDNS,
ATTR_METHOD,
ATTR_MODE,
ATTR_NAMESERVERS,
@@ -54,6 +56,7 @@ from ..host.configuration import (
Ip6Setting,
IpConfig,
IpSetting,
MulticastDnsMode,
VlanConfig,
WifiConfig,
)
@@ -97,6 +100,8 @@ SCHEMA_UPDATE = vol.Schema(
vol.Optional(ATTR_IPV6): _SCHEMA_IPV6_CONFIG,
vol.Optional(ATTR_WIFI): _SCHEMA_WIFI_CONFIG,
vol.Optional(ATTR_ENABLED): vol.Boolean(),
vol.Optional(ATTR_MDNS): vol.Coerce(MulticastDnsMode),
vol.Optional(ATTR_LLMNR): vol.Coerce(MulticastDnsMode),
}
)
@@ -160,6 +165,8 @@ def interface_struct(interface: Interface) -> dict[str, Any]:
else None,
ATTR_WIFI: wifi_struct(interface.wifi) if interface.wifi else None,
ATTR_VLAN: vlan_struct(interface.vlan) if interface.vlan else None,
ATTR_MDNS: interface.mdns,
ATTR_LLMNR: interface.llmnr,
}
@@ -260,6 +267,10 @@ class APINetwork(CoreSysAttributes):
)
elif key == ATTR_ENABLED:
interface.enabled = config
elif key == ATTR_MDNS:
interface.mdns = config
elif key == ATTR_LLMNR:
interface.llmnr = config
await asyncio.shield(self.sys_host.network.apply_changes(interface))
@@ -300,6 +311,15 @@ class APINetwork(CoreSysAttributes):
vlan_config = VlanConfig(vlan, interface.name)
mdns_mode = MulticastDnsMode.DEFAULT
llmnr_mode = MulticastDnsMode.DEFAULT
if ATTR_MDNS in body:
mdns_mode = body[ATTR_MDNS]
if ATTR_LLMNR in body:
llmnr_mode = body[ATTR_LLMNR]
ipv4_setting = None
if ATTR_IPV4 in body:
ipv4_setting = IpSetting(
@@ -325,7 +345,7 @@ class APINetwork(CoreSysAttributes):
)
vlan_interface = Interface(
"",
f"{interface.name}.{vlan}",
"",
"",
True,
@@ -338,5 +358,7 @@ class APINetwork(CoreSysAttributes):
ipv6_setting,
None,
vlan_config,
mdns=mdns_mode,
llmnr=llmnr_mode,
)
await asyncio.shield(self.sys_host.network.apply_changes(vlan_interface))
await asyncio.shield(self.sys_host.network.create_vlan(vlan_interface))

View File

@@ -1 +1 @@
!function(){function d(d){var e=document.createElement("script");e.src=d,document.body.appendChild(e)}if(/Edge?\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(109|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(18\.\d+|(19|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(1{2}[3-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(16[._]([6-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(13\d|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/(2[7-9]|[3-9]\d|\d{3,})\.\d+|Home As{2}istant\/[\d.]+ \(.+; macOS (1[3-9]|[2-9]\d|\d{3,})\.\d+(\.\d+)?\)/.test(navigator.userAgent))try{new Function("import('/api/hassio/app/frontend_latest/entrypoint.9b475c5882bbf15f.js')")()}catch(e){d("/api/hassio/app/frontend_es5/entrypoint.73551a66a38f3359.js")}else d("/api/hassio/app/frontend_es5/entrypoint.73551a66a38f3359.js")}()
!function(){function d(d){var e=document.createElement("script");e.src=d,document.body.appendChild(e)}if(/Edge?\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(109|1[1-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(18\.\d+|(19|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(1{2}[3-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(16[._]([6-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(13\d|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(12[89]|1[3-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/(2[7-9]|[3-9]\d|\d{3,})\.\d+|Home As{2}istant\/[\d.]+ \(.+; macOS (1[3-9]|[2-9]\d|\d{3,})\.\d+(\.\d+)?\)/.test(navigator.userAgent))try{new Function("import('/api/hassio/app/frontend_latest/entrypoint.13b942f66af14ae7.js')")()}catch(e){d("/api/hassio/app/frontend_es5/entrypoint.4fccc51701dd6142.js")}else d("/api/hassio/app/frontend_es5/entrypoint.4fccc51701dd6142.js")}()

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"113.13cc15fa81bd492f.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-icon-button-arrow-next.ts"],"names":["HaIconButtonArrowNext","LitElement","render","_this$hass","html","_t","_","this","disabled","label","hass","localize","_icon","args","mainWindow","attribute","type","Boolean"],"mappings":"4RASO,MAAMA,UAA8BC,EAAAA,GAU/BC,MAAAA,GAAyB,IAAAC,EACjC,OAAOC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,mFAEKC,KAAKC,SACRD,KAAKE,QAAkB,QAAbN,EAAII,KAAKG,YAAI,IAAAP,OAAA,EAATA,EAAWQ,SAAS,oBAAqB,OACxDJ,KAAKK,MAGnB,C,kBAlBK,SAAAC,GAAA,KAG+BL,UAAW,OAI9BI,MACa,QAA5BE,EAAAA,EAAAA,SAAAA,I,gLAPUC,WAAW,K,uDAEXC,KAAMC,W"}
{"version":3,"file":"113.13cc15fa81bd492f.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-icon-button-arrow-next.ts"],"names":["HaIconButtonArrowNext","LitElement","render","_this$hass","html","_t","_","this","disabled","label","hass","localize","_icon","args","mainWindow","attribute","type","Boolean"],"mappings":"4RASO,MAAMA,UAA8BC,EAAAA,GAU/BC,MAAAA,GAAyB,IAAAC,EACjC,OAAOC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,mFAEKC,KAAKC,SACRD,KAAKE,QAAkB,QAAbN,EAAII,KAAKG,YAAI,IAAAP,OAAA,EAATA,EAAWQ,SAAS,oBAAqB,OACxDJ,KAAKK,MAGnB,C,kBAlBK,SAAAC,GAAA,KAG+BL,UAAW,OAI9BI,MACa,QAA5BE,EAAAA,EAAAA,SAAAA,I,gLAPUC,WAAW,K,uDAEXC,KAAMC,W"}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"1303.586b15f0603e938e.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-form/ha-form-constant.ts"],"names":["HaFormConstant","LitElement","render","html","_t","_","this","label","schema","value","styles","css","_t2","attribute"],"mappings":"kPAMO,MAAMA,UAAuBC,EAAAA,GAKxBC,MAAAA,GACR,OAAOC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,uBAAuB,WAAvB,KAAuBC,KAAKC,MAAeD,KAAKE,OAAOC,MAC5D,KAAKH,KAAKE,OAAOC,QACjB,GACR,EATWT,EAWJU,QAASC,EAAAA,EAAAA,IAAGC,IAAAA,EAAAP,CAAA,0E,2BAVPQ,WAAW,K"}
{"version":3,"file":"1303.586b15f0603e938e.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-form/ha-form-constant.ts"],"names":["HaFormConstant","LitElement","render","html","_t","_","this","label","schema","value","styles","css","_t2","attribute"],"mappings":"kPAMO,MAAMA,UAAuBC,EAAAA,GAKxBC,MAAAA,GACR,OAAOC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,uBAAuB,WAAvB,KAAuBC,KAAKC,MAAeD,KAAKE,OAAOC,MAC5D,KAAKH,KAAKE,OAAOC,QACjB,GACR,EATWT,EAWJU,QAASC,EAAAA,EAAAA,IAAGC,IAAAA,EAAAP,CAAA,0E,2BAVPQ,WAAW,K"}

View File

@@ -1 +1 @@
{"version":3,"file":"1374.3202a7d8086556de.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-icon-next.ts"],"names":["HaIconNext","HaSvgIcon","args","path","mainWindow"],"mappings":"yPAMO,MAAMA,UAAmBC,EAAAA,U,kBAAzB,SAAAC,GAAA,KACuBC,KACE,QAA5BC,EAAAA,EAAAA,SAAAA,I"}
{"version":3,"file":"1374.3202a7d8086556de.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-icon-next.ts"],"names":["HaIconNext","HaSvgIcon","args","path","mainWindow"],"mappings":"yPAMO,MAAMA,UAAmBC,EAAAA,U,kBAAzB,SAAAC,GAAA,KACuBC,KACE,QAA5BC,EAAAA,EAAAA,SAAAA,I"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"174.ee01401de6dea936.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-dialog-date-picker.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-dialog.ts"],"names":["HaDialogDatePicker","LitElement","showDialog","params","nextRender","this","_params","_value","value","closeDialog","undefined","fireEvent","dialog","localName","render","html","_t","_","min","max","locale","_valueChanged","firstWeekday","canClear","_t2","_clear","hass","localize","nothing","_setToday","_setValue","ev","detail","_this$_params","onChange","today","Date","format","_this$_params2","args","disabled","styles","haStyleDialog","css","_t3","attribute","type","Boolean","SUPPRESS_DEFAULT_PRESS_SELECTOR","createCloseHeading","title","_hass$localize","HaDialog","DialogBase","scrollToPos","x","y","_this$contentElement","contentElement","scrollTo","renderHeading","super","firstUpdated","_this$contentElement2","suppressDefaultPressSelector","join","_updateScrolledAttribute","addEventListener","_onScroll","passive","disconnectedCallback","removeEventListener","toggleAttribute","scrollTop"],"mappings":"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"}
{"version":3,"file":"174.ee01401de6dea936.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-dialog-date-picker.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-dialog.ts"],"names":["HaDialogDatePicker","LitElement","showDialog","params","nextRender","this","_params","_value","value","closeDialog","undefined","fireEvent","dialog","localName","render","html","_t","_","min","max","locale","_valueChanged","firstWeekday","canClear","_t2","_clear","hass","localize","nothing","_setToday","_setValue","ev","detail","_this$_params","onChange","today","Date","format","_this$_params2","args","disabled","styles","haStyleDialog","css","_t3","attribute","type","Boolean","SUPPRESS_DEFAULT_PRESS_SELECTOR","createCloseHeading","title","_hass$localize","HaDialog","DialogBase","scrollToPos","x","y","_this$contentElement","contentElement","scrollTo","renderHeading","super","firstUpdated","_this$contentElement2","suppressDefaultPressSelector","join","_updateScrolledAttribute","addEventListener","_onScroll","passive","disconnectedCallback","removeEventListener","toggleAttribute","scrollTop"],"mappings":"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"}

View File

@@ -1 +1 @@
{"version":3,"file":"2006.c7a6f555d46cc3c0.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-selector/ha-selector-constant.ts"],"names":["HaSelectorConstant","LitElement","render","_this$selector$consta","_ref","_ref2","_this$selector$consta2","_this$selector$consta3","this","disabled","nothing","translationKey","selector","constant","translation_key","translatedLabel","localizeValue","undefined","label","value","args","attribute","type","Boolean"],"mappings":"yPAKO,MAAMA,UAA2BC,EAAAA,GAQ5BC,MAAAA,GAAS,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACjB,GAAIC,KAAKC,SACP,OAAOC,EAAAA,GAGT,MAAMC,EAAuC,QAAvCR,EAAiBK,KAAKI,SAASC,gBAAQ,IAAAV,OAAA,EAAtBA,EAAwBW,gBAEzCC,EACJJ,GAAkBH,KAAKQ,cACnBR,KAAKQ,cAAc,GAAGL,gBACtBM,EAEN,OAG0B,QAH1Bb,EAE0B,QAF1BC,EACEU,QAAAA,EACsB,QADtBT,EACAE,KAAKI,SAASC,gBAAQ,IAAAP,OAAA,EAAtBA,EAAwBY,aAAA,IAAAb,EAAAA,EACF,QADEE,EACxBC,KAAKI,SAASC,gBAAQ,IAAAN,OAAA,EAAtBA,EAAwBY,aAAA,IAAAf,EAAAA,EACxBM,EAAAA,EAEJ,C,kBA1BK,SAAAU,GAAA,KAG+BX,UAAW,C,8BAFnCY,WAAW,K,2DAEXC,KAAMC,W,2DAENF,WAAW,K"}
{"version":3,"file":"2006.c7a6f555d46cc3c0.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-selector/ha-selector-constant.ts"],"names":["HaSelectorConstant","LitElement","render","_this$selector$consta","_ref","_ref2","_this$selector$consta2","_this$selector$consta3","this","disabled","nothing","translationKey","selector","constant","translation_key","translatedLabel","localizeValue","undefined","label","value","args","attribute","type","Boolean"],"mappings":"yPAKO,MAAMA,UAA2BC,EAAAA,GAQ5BC,MAAAA,GAAS,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACjB,GAAIC,KAAKC,SACP,OAAOC,EAAAA,GAGT,MAAMC,EAAuC,QAAvCR,EAAiBK,KAAKI,SAASC,gBAAQ,IAAAV,OAAA,EAAtBA,EAAwBW,gBAEzCC,EACJJ,GAAkBH,KAAKQ,cACnBR,KAAKQ,cAAc,GAAGL,gBACtBM,EAEN,OAG0B,QAH1Bb,EAE0B,QAF1BC,EACEU,QAAAA,EACsB,QADtBT,EACAE,KAAKI,SAASC,gBAAQ,IAAAP,OAAA,EAAtBA,EAAwBY,aAAA,IAAAb,EAAAA,EACF,QADEE,EACxBC,KAAKI,SAASC,gBAAQ,IAAAN,OAAA,EAAtBA,EAAwBY,aAAA,IAAAf,EAAAA,EACxBM,EAAAA,EAEJ,C,kBA1BK,SAAAU,GAAA,KAG+BX,UAAW,C,8BAFnCY,WAAW,K,2DAEXC,KAAMC,W,2DAENF,WAAW,K"}

View File

@@ -1 +1 @@
{"version":3,"file":"203.ce95b7511bb7d13f.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-form/ha-form-expandable.ts"],"names":["HaFormExpendable","LitElement","_renderDescription","_this$computeHelper","description","this","computeHelper","call","schema","html","_t","_","nothing","render","_this$schema$headingL","_this$schema$headingL2","_this$computeLabel","_t2","Boolean","expanded","icon","_t3","iconPath","_t4","headingLevel","toString","title","computeLabel","hass","data","disabled","_computeLabel","_computeHelper","localizeValue","args","options","Object","assign","path","name","styles","css","_t5","attribute","type"],"mappings":"sSAYO,MAAMA,UAAyBC,EAAAA,GAwB5BC,kBAAAA,GAAqB,IAAAC,EAC3B,MAAMC,EAAgC,QAAhCD,EAAcE,KAAKC,qBAAa,IAAAH,OAAA,EAAlBA,EAAAI,KAAAF,KAAqBA,KAAKG,QAC9C,OAAOJ,GAAcK,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,MAAM,SAAAP,GAAoBQ,EAAAA,EACrD,CA2BUC,MAAAA,GAAS,IAAAC,EAAAC,EAAAC,EACjB,OAAOP,EAAAA,EAAAA,IAAIQ,IAAAA,EAAAN,CAAA,iUACgCO,QAAQb,KAAKG,OAAOW,UACzDd,KAAKG,OAAOY,MACVX,EAAAA,EAAAA,IAAIY,IAAAA,EAAAV,CAAA,0DACmCN,KAAKG,OAAOY,MAEnDf,KAAKG,OAAOc,UACVb,EAAAA,EAAAA,IAAIc,IAAAA,EAAAZ,CAAA,kEAGQN,KAAKG,OAAOc,UAGxBV,EAAAA,GAImC,QAJnCE,EAIiC,QAJjCC,EAISV,KAAKG,OAAOgB,oBAAY,IAAAT,OAAA,EAAxBA,EAA0BU,kBAAA,IAAAX,EAAAA,EAAc,IAEnDT,KAAKG,OAAOkB,QAA0B,QAArBV,EAAIX,KAAKsB,oBAAY,IAAAX,OAAA,EAAjBA,EAAAT,KAAAF,KAAoBA,KAAKG,SAG9CH,KAAKH,qBAEGG,KAAKuB,KACLvB,KAAKwB,KACHxB,KAAKG,OAAOA,OACVH,KAAKyB,SACDzB,KAAK0B,cACJ1B,KAAK2B,eACL3B,KAAK4B,cAKhC,C,kBA1FK,SAAAC,GAAA,KAO+BJ,UAAW,OAsBvCC,cAAgB,CACtBvB,EACAqB,EACAM,IAEK9B,KAAKsB,aAEHtB,KAAKsB,aAAanB,EAAQqB,EAAAO,OAAAC,OAAAD,OAAAC,OAAA,GAC5BF,GAAO,IACVG,KAAM,KAAKH,aAAA,EAAAA,EAASG,OAAQ,GAAKjC,KAAKG,OAAO+B,SAJhBlC,KAAKsB,aAMtC,KAEQK,eAAiB,CACvBxB,EACA2B,IAEK9B,KAAKC,cAEHD,KAAKC,cAAcE,EAAA4B,OAAAC,OAAAD,OAAAC,OAAA,GACrBF,GAAO,IACVG,KAAM,KAAKH,aAAA,EAAAA,EAASG,OAAQ,GAAKjC,KAAKG,OAAO+B,SAJflC,KAAKC,a,EA9C5BN,EA4FJwC,QAASC,EAAAA,EAAAA,IAAGC,IAAAA,EAAA/B,CAAA,+S,2BA3FPgC,WAAW,K,uDAEXA,WAAW,K,uDAEXA,WAAW,K,yDAEXC,KAAM1B,W,2DAENyB,WAAW,K,+DAMXA,WAAW,K,gEAKXA,WAAW,K"}
{"version":3,"file":"203.ce95b7511bb7d13f.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-form/ha-form-expandable.ts"],"names":["HaFormExpendable","LitElement","_renderDescription","_this$computeHelper","description","this","computeHelper","call","schema","html","_t","_","nothing","render","_this$schema$headingL","_this$schema$headingL2","_this$computeLabel","_t2","Boolean","expanded","icon","_t3","iconPath","_t4","headingLevel","toString","title","computeLabel","hass","data","disabled","_computeLabel","_computeHelper","localizeValue","args","options","Object","assign","path","name","styles","css","_t5","attribute","type"],"mappings":"sSAYO,MAAMA,UAAyBC,EAAAA,GAwB5BC,kBAAAA,GAAqB,IAAAC,EAC3B,MAAMC,EAAgC,QAAhCD,EAAcE,KAAKC,qBAAa,IAAAH,OAAA,EAAlBA,EAAAI,KAAAF,KAAqBA,KAAKG,QAC9C,OAAOJ,GAAcK,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,MAAM,SAAAP,GAAoBQ,EAAAA,EACrD,CA2BUC,MAAAA,GAAS,IAAAC,EAAAC,EAAAC,EACjB,OAAOP,EAAAA,EAAAA,IAAIQ,IAAAA,EAAAN,CAAA,iUACgCO,QAAQb,KAAKG,OAAOW,UACzDd,KAAKG,OAAOY,MACVX,EAAAA,EAAAA,IAAIY,IAAAA,EAAAV,CAAA,0DACmCN,KAAKG,OAAOY,MAEnDf,KAAKG,OAAOc,UACVb,EAAAA,EAAAA,IAAIc,IAAAA,EAAAZ,CAAA,kEAGQN,KAAKG,OAAOc,UAGxBV,EAAAA,GAImC,QAJnCE,EAIiC,QAJjCC,EAISV,KAAKG,OAAOgB,oBAAY,IAAAT,OAAA,EAAxBA,EAA0BU,kBAAA,IAAAX,EAAAA,EAAc,IAEnDT,KAAKG,OAAOkB,QAA0B,QAArBV,EAAIX,KAAKsB,oBAAY,IAAAX,OAAA,EAAjBA,EAAAT,KAAAF,KAAoBA,KAAKG,SAG9CH,KAAKH,qBAEGG,KAAKuB,KACLvB,KAAKwB,KACHxB,KAAKG,OAAOA,OACVH,KAAKyB,SACDzB,KAAK0B,cACJ1B,KAAK2B,eACL3B,KAAK4B,cAKhC,C,kBA1FK,SAAAC,GAAA,KAO+BJ,UAAW,OAsBvCC,cAAgB,CACtBvB,EACAqB,EACAM,IAEK9B,KAAKsB,aAEHtB,KAAKsB,aAAanB,EAAQqB,EAAAO,OAAAC,OAAAD,OAAAC,OAAA,GAC5BF,GAAO,IACVG,KAAM,KAAKH,aAAA,EAAAA,EAASG,OAAQ,GAAKjC,KAAKG,OAAO+B,SAJhBlC,KAAKsB,aAMtC,KAEQK,eAAiB,CACvBxB,EACA2B,IAEK9B,KAAKC,cAEHD,KAAKC,cAAcE,EAAA4B,OAAAC,OAAAD,OAAAC,OAAA,GACrBF,GAAO,IACVG,KAAM,KAAKH,aAAA,EAAAA,EAASG,OAAQ,GAAKjC,KAAKG,OAAO+B,SAJflC,KAAKC,a,EA9C5BN,EA4FJwC,QAASC,EAAAA,EAAAA,IAAGC,IAAAA,EAAA/B,CAAA,+S,2BA3FPgC,WAAW,K,uDAEXA,WAAW,K,uDAEXA,WAAW,K,yDAEXC,KAAM1B,W,2DAENyB,WAAW,K,+DAMXA,WAAW,K,gEAKXA,WAAW,K"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"2210.0e18ee765a9dd032.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/hassio/src/dialogs/backup/dialog-hassio-create-backup.ts"],"names":["HassioCreateBackupDialog","LitElement","showDialog","dialogParams","this","_dialogParams","_creatingBackup","closeDialog","undefined","_error","fireEvent","dialog","localName","render","html","_t","_","createCloseHeading","hass","supervisor","localize","_t2","_t3","_t4","_createBackup","nothing","info","state","showAlertDialog","title","text","backupDetails","_backupContent","password","length","confirm_password","backupType","createHassioFullBackup","createHassioPartialBackup","onCreate","err","extractApiErrorMessage","styles","haStyle","haStyleDialog","css","_t5","args","attribute"],"mappings":"0ZAoBA,MACMA,UAAiCC,EAAAA,GAY9BC,UAAAA,CAAWC,GAChBC,KAAKC,cAAgBF,EACrBC,KAAKE,iBAAkB,CACzB,CAEOC,WAAAA,GACLH,KAAKC,mBAAgBG,EACrBJ,KAAKE,iBAAkB,EACvBF,KAAKK,YAASD,GACdE,EAAAA,EAAAA,GAAUN,KAAM,gBAAiB,CAAEO,OAAQP,KAAKQ,WAClD,CAEUC,MAAAA,GACR,OAAKT,KAAKC,eAGHS,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,qQAIGZ,KAAKG,aACJU,EAAAA,EAAAA,GACTb,KAAKc,KACLd,KAAKC,cAAcc,WAAWC,SAAS,yBAGvChB,KAAKE,iBACHQ,EAAAA,EAAAA,IAAIO,IAAAA,EAAAL,CAAA,+BACJF,EAAAA,EAAAA,IAAIQ,IAAAA,EAAAN,CAAA,+GACMZ,KAAKc,KACCd,KAAKC,cAAcc,YAIrCf,KAAKK,QACHK,EAAAA,EAAAA,IAAIS,IAAAA,EAAAP,CAAA,gCAAgC,gBAAAZ,KAAKK,QACzC,GAIOL,KAAKG,YAEZH,KAAKC,cAAcc,WAAWC,SAAS,gBAG7BhB,KAAKE,gBAERF,KAAKoB,cAEZpB,KAAKC,cAAcc,WAAWC,SAAS,kBAnCtCK,EAAAA,EAuCX,CAEA,mBAAcD,GACZ,GAAkD,YAA9CpB,KAAKC,cAAec,WAAWO,KAAKC,MAUtC,YATAC,EAAAA,EAAAA,IAAgBxB,KAAM,CACpByB,MAAOzB,KAAKC,cAAec,WAAWC,SACpC,2BAEFU,KAAM1B,KAAKC,cAAec,WAAWC,SACnC,oCACA,CAAEO,MAAOvB,KAAKC,cAAec,WAAWO,KAAKC,UAKnD,MAAMI,EAAgB3B,KAAK4B,eAAeD,gBAI1C,GAHA3B,KAAKE,iBAAkB,EAEvBF,KAAKK,OAAS,GACVsB,EAAcE,WAAaF,EAAcE,SAASC,OAKpD,OAJA9B,KAAKK,OAASL,KAAKC,cAAec,WAAWC,SAC3C,8BAEFhB,KAAKE,iBAAkB,GAGzB,GACEyB,EAAcE,UACdF,EAAcE,WAAaF,EAAcI,iBAMzC,OAJA/B,KAAKK,OAASL,KAAKC,cAAec,WAAWC,SAC3C,sCAEFhB,KAAKE,iBAAkB,UAIlByB,EAAcI,iBAErB,IACyC,SAAnC/B,KAAK4B,eAAeI,iBAChBC,EAAAA,EAAAA,IAAuBjC,KAAKc,KAAMa,SAElCO,EAAAA,EAAAA,IAA0BlC,KAAKc,KAAMa,GAG7C3B,KAAKC,cAAekC,WACpBnC,KAAKG,aACP,CAAE,MAAOiC,GACPpC,KAAKK,QAASgC,EAAAA,EAAAA,IAAuBD,EACvC,CACApC,KAAKE,iBAAkB,CACzB,CAEA,iBAAWoC,GACT,MAAO,CACLC,EAAAA,GACAC,EAAAA,IACAC,EAAAA,EAAAA,IAAGC,IAAAA,EAAA9B,CAAA,sCAMP,C,kBAlIF,SAAA+B,GAAA,KAQmBzC,iBAAkB,C,8BANvB0C,WAAW,K"}
{"version":3,"file":"2210.0e18ee765a9dd032.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/hassio/src/dialogs/backup/dialog-hassio-create-backup.ts"],"names":["HassioCreateBackupDialog","LitElement","showDialog","dialogParams","this","_dialogParams","_creatingBackup","closeDialog","undefined","_error","fireEvent","dialog","localName","render","html","_t","_","createCloseHeading","hass","supervisor","localize","_t2","_t3","_t4","_createBackup","nothing","info","state","showAlertDialog","title","text","backupDetails","_backupContent","password","length","confirm_password","backupType","createHassioFullBackup","createHassioPartialBackup","onCreate","err","extractApiErrorMessage","styles","haStyle","haStyleDialog","css","_t5","args","attribute"],"mappings":"0ZAoBA,MACMA,UAAiCC,EAAAA,GAY9BC,UAAAA,CAAWC,GAChBC,KAAKC,cAAgBF,EACrBC,KAAKE,iBAAkB,CACzB,CAEOC,WAAAA,GACLH,KAAKC,mBAAgBG,EACrBJ,KAAKE,iBAAkB,EACvBF,KAAKK,YAASD,GACdE,EAAAA,EAAAA,GAAUN,KAAM,gBAAiB,CAAEO,OAAQP,KAAKQ,WAClD,CAEUC,MAAAA,GACR,OAAKT,KAAKC,eAGHS,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,qQAIGZ,KAAKG,aACJU,EAAAA,EAAAA,GACTb,KAAKc,KACLd,KAAKC,cAAcc,WAAWC,SAAS,yBAGvChB,KAAKE,iBACHQ,EAAAA,EAAAA,IAAIO,IAAAA,EAAAL,CAAA,+BACJF,EAAAA,EAAAA,IAAIQ,IAAAA,EAAAN,CAAA,+GACMZ,KAAKc,KACCd,KAAKC,cAAcc,YAIrCf,KAAKK,QACHK,EAAAA,EAAAA,IAAIS,IAAAA,EAAAP,CAAA,gCAAgC,gBAAAZ,KAAKK,QACzC,GAIOL,KAAKG,YAEZH,KAAKC,cAAcc,WAAWC,SAAS,gBAG7BhB,KAAKE,gBAERF,KAAKoB,cAEZpB,KAAKC,cAAcc,WAAWC,SAAS,kBAnCtCK,EAAAA,EAuCX,CAEA,mBAAcD,GACZ,GAAkD,YAA9CpB,KAAKC,cAAec,WAAWO,KAAKC,MAUtC,YATAC,EAAAA,EAAAA,IAAgBxB,KAAM,CACpByB,MAAOzB,KAAKC,cAAec,WAAWC,SACpC,2BAEFU,KAAM1B,KAAKC,cAAec,WAAWC,SACnC,oCACA,CAAEO,MAAOvB,KAAKC,cAAec,WAAWO,KAAKC,UAKnD,MAAMI,EAAgB3B,KAAK4B,eAAeD,gBAI1C,GAHA3B,KAAKE,iBAAkB,EAEvBF,KAAKK,OAAS,GACVsB,EAAcE,WAAaF,EAAcE,SAASC,OAKpD,OAJA9B,KAAKK,OAASL,KAAKC,cAAec,WAAWC,SAC3C,8BAEFhB,KAAKE,iBAAkB,GAGzB,GACEyB,EAAcE,UACdF,EAAcE,WAAaF,EAAcI,iBAMzC,OAJA/B,KAAKK,OAASL,KAAKC,cAAec,WAAWC,SAC3C,sCAEFhB,KAAKE,iBAAkB,UAIlByB,EAAcI,iBAErB,IACyC,SAAnC/B,KAAK4B,eAAeI,iBAChBC,EAAAA,EAAAA,IAAuBjC,KAAKc,KAAMa,SAElCO,EAAAA,EAAAA,IAA0BlC,KAAKc,KAAMa,GAG7C3B,KAAKC,cAAekC,WACpBnC,KAAKG,aACP,CAAE,MAAOiC,GACPpC,KAAKK,QAASgC,EAAAA,EAAAA,IAAuBD,EACvC,CACApC,KAAKE,iBAAkB,CACzB,CAEA,iBAAWoC,GACT,MAAO,CACLC,EAAAA,GACAC,EAAAA,IACAC,EAAAA,EAAAA,IAAGC,IAAAA,EAAA9B,CAAA,sCAMP,C,kBAlIF,SAAA+B,GAAA,KAQmBzC,iBAAkB,C,8BANvB0C,WAAW,K"}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"2341.a6764e608e9c9aa5.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/common/dom/stop_propagation.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-form/ha-form-optional_actions.ts"],"names":["stopPropagation","ev","NO_ACTIONS","HaFormOptionalActions","LitElement","focus","_this$renderRoot$quer","this","updateComplete","renderRoot","querySelector","updated","changedProps","super","has","_this$_displayActions","displayActions","_displayActions","hiddenActions","_hiddenActions","schema","filter","name","data","render","_this$_displayActions2","_this$_displayActions3","_this$localize","_displaySchema","schemaMap","Map","computeLabel","map","item","html","_t","_","length","_t2","hass","disabled","computeHelper","localizeValue","nothing","_t3","_handleAddAction","mdiPlus","localize","call","action","actionSchema","get","_t4","_this$_displayActions4","_this$_displayActions5","detail","index","args","memoizeOne","includes","styles","css","_t5","attribute","type","Boolean"],"mappings":"2KAAO,MAAMA,EAAmBC,GAAOA,EAAGD,iB,qYCmBpCE,EAAa,GAGZ,MAAMC,UAA8BC,EAAAA,GA0BzC,WAAaC,GAAQ,IAAAC,QACbC,KAAKC,eACmB,QAA9BF,EAAAC,KAAKE,WAAWC,cAAc,sBAAAJ,GAA9BA,EAA0CD,OAC5C,CAEUM,OAAAA,CAAQC,GAEhB,GADAC,MAAMF,QAAQC,GACVA,EAAaE,IAAI,QAAS,KAAAC,EAC5B,MAAMC,EAAqC,QAArCD,EAAiBR,KAAKU,uBAAe,IAAAF,EAAAA,EAAIb,EACzCgB,EAAgBX,KAAKY,eACzBZ,KAAKa,OAAOA,OACZJ,GAEFT,KAAKU,gBAAkB,IAClBD,KACAE,EAAcG,OAAQC,GAASA,KAAQf,KAAKgB,MAEnD,CACF,CAiBOC,MAAAA,GAAyB,IAAAC,EAAAC,EAAAC,EAC9B,MAAMX,EAAqC,QAArCS,EAAiBlB,KAAKU,uBAAe,IAAAQ,EAAAA,EAAIvB,EAEzCkB,EAASb,KAAKqB,eAClBrB,KAAKa,OAAOA,OACQ,QADFM,EAClBnB,KAAKU,uBAAe,IAAAS,EAAAA,EAAI,IAGpBR,EAAgBX,KAAKY,eACzBZ,KAAKa,OAAOA,OACZJ,GAGIa,EAAY,IAAIC,IACpBvB,KAAKwB,aACDxB,KAAKa,OAAOA,OAAOY,IAAKC,GAAS,CAACA,EAAKX,KAAMW,IAC7C,IAGN,OAAOC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,eACPhB,EAAOiB,OAAS,GACdH,EAAAA,EAAAA,IAAII,IAAAA,EAAAF,CAAA,oJAEQ7B,KAAKgC,KACLhC,KAAKgB,KACHH,EACEb,KAAKiC,SACDjC,KAAKwB,aACJxB,KAAKkC,cACLlC,KAAKmC,eAG1BC,EAAAA,GACFzB,EAAcmB,OAAS,GACrBH,EAAAA,EAAAA,IAAIU,IAAAA,EAAAR,CAAA,qNAEU7B,KAAKsC,iBAEL7C,EAAAA,EAGa8C,GACN,QAAbnB,EAAApB,KAAKwC,gBAAQ,IAAApB,OAAA,EAAbA,EAAAqB,KAAAzC,KAAgB,6CAClB,kBAEAW,EAAcc,IAAKiB,IACnB,MAAMC,EAAerB,EAAUsB,IAAIF,GACnC,OAAOf,EAAAA,EAAAA,IAAIkB,IAAAA,EAAAhB,CAAA,yCAEL7B,KAAKwB,cAAgBmB,EACnB3C,KAAKwB,aAAamB,GAClBD,MAMdN,EAAAA,GAER,CAEQE,gBAAAA,CAAiB5C,GAAiB,IAAAoD,EAAAC,EACxC,MAKML,EALgB1C,KAAKY,eACzBZ,KAAKa,OAAOA,OACQ,QADFiC,EAClB9C,KAAKU,uBAAe,IAAAoC,EAAAA,EAAInD,GAEZD,EAAGsD,OAAOC,OAExBjD,KAAKU,gBAAkB,IAAyB,QAAzB,EAAKV,KAAKU,uBAAe,IAAAqC,EAAAA,EAAI,GAAKL,EAC3D,C,kBAlIK,SAAAQ,GAAA,KAS+BjB,UAAW,OAqCvCrB,gBAAiBuC,EAAAA,EAAAA,GACvB,CAACtC,EAAiCJ,IAChCI,EACGY,IAAKC,GAASA,EAAKX,MACnBD,OAAQC,IAAUN,EAAe2C,SAASrC,KAAA,KAGzCM,gBAAiB8B,EAAAA,EAAAA,GACvB,CACEtC,EACAJ,IAEAI,EAAOC,OAAQY,GAASjB,EAAe2C,SAAS1B,EAAKX,O,EA1D9CnB,EAoIJyD,QAASC,EAAAA,EAAAA,IAAGC,IAAAA,EAAA1B,CAAA,8F,2BAnIP2B,WAAW,K,2DAEXA,WAAW,K,uDAEXA,WAAW,K,uDAEXA,WAAW,K,yDAEXC,KAAMC,W,2DAENF,WAAW,K,+DAKXA,WAAW,K,gEAIXA,WAAW,K"}
{"version":3,"file":"2341.a6764e608e9c9aa5.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/common/dom/stop_propagation.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-form/ha-form-optional_actions.ts"],"names":["stopPropagation","ev","NO_ACTIONS","HaFormOptionalActions","LitElement","focus","_this$renderRoot$quer","this","updateComplete","renderRoot","querySelector","updated","changedProps","super","has","_this$_displayActions","displayActions","_displayActions","hiddenActions","_hiddenActions","schema","filter","name","data","render","_this$_displayActions2","_this$_displayActions3","_this$localize","_displaySchema","schemaMap","Map","computeLabel","map","item","html","_t","_","length","_t2","hass","disabled","computeHelper","localizeValue","nothing","_t3","_handleAddAction","mdiPlus","localize","call","action","actionSchema","get","_t4","_this$_displayActions4","_this$_displayActions5","detail","index","args","memoizeOne","includes","styles","css","_t5","attribute","type","Boolean"],"mappings":"2KAAO,MAAMA,EAAmBC,GAAOA,EAAGD,iB,qYCmBpCE,EAAa,GAGZ,MAAMC,UAA8BC,EAAAA,GA0BzC,WAAaC,GAAQ,IAAAC,QACbC,KAAKC,eACmB,QAA9BF,EAAAC,KAAKE,WAAWC,cAAc,sBAAAJ,GAA9BA,EAA0CD,OAC5C,CAEUM,OAAAA,CAAQC,GAEhB,GADAC,MAAMF,QAAQC,GACVA,EAAaE,IAAI,QAAS,KAAAC,EAC5B,MAAMC,EAAqC,QAArCD,EAAiBR,KAAKU,uBAAe,IAAAF,EAAAA,EAAIb,EACzCgB,EAAgBX,KAAKY,eACzBZ,KAAKa,OAAOA,OACZJ,GAEFT,KAAKU,gBAAkB,IAClBD,KACAE,EAAcG,OAAQC,GAASA,KAAQf,KAAKgB,MAEnD,CACF,CAiBOC,MAAAA,GAAyB,IAAAC,EAAAC,EAAAC,EAC9B,MAAMX,EAAqC,QAArCS,EAAiBlB,KAAKU,uBAAe,IAAAQ,EAAAA,EAAIvB,EAEzCkB,EAASb,KAAKqB,eAClBrB,KAAKa,OAAOA,OACQ,QADFM,EAClBnB,KAAKU,uBAAe,IAAAS,EAAAA,EAAI,IAGpBR,EAAgBX,KAAKY,eACzBZ,KAAKa,OAAOA,OACZJ,GAGIa,EAAY,IAAIC,IACpBvB,KAAKwB,aACDxB,KAAKa,OAAOA,OAAOY,IAAKC,GAAS,CAACA,EAAKX,KAAMW,IAC7C,IAGN,OAAOC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,eACPhB,EAAOiB,OAAS,GACdH,EAAAA,EAAAA,IAAII,IAAAA,EAAAF,CAAA,oJAEQ7B,KAAKgC,KACLhC,KAAKgB,KACHH,EACEb,KAAKiC,SACDjC,KAAKwB,aACJxB,KAAKkC,cACLlC,KAAKmC,eAG1BC,EAAAA,GACFzB,EAAcmB,OAAS,GACrBH,EAAAA,EAAAA,IAAIU,IAAAA,EAAAR,CAAA,qNAEU7B,KAAKsC,iBAEL7C,EAAAA,EAGa8C,GACN,QAAbnB,EAAApB,KAAKwC,gBAAQ,IAAApB,OAAA,EAAbA,EAAAqB,KAAAzC,KAAgB,6CAClB,kBAEAW,EAAcc,IAAKiB,IACnB,MAAMC,EAAerB,EAAUsB,IAAIF,GACnC,OAAOf,EAAAA,EAAAA,IAAIkB,IAAAA,EAAAhB,CAAA,yCAEL7B,KAAKwB,cAAgBmB,EACnB3C,KAAKwB,aAAamB,GAClBD,MAMdN,EAAAA,GAER,CAEQE,gBAAAA,CAAiB5C,GAAiB,IAAAoD,EAAAC,EACxC,MAKML,EALgB1C,KAAKY,eACzBZ,KAAKa,OAAOA,OACQ,QADFiC,EAClB9C,KAAKU,uBAAe,IAAAoC,EAAAA,EAAInD,GAEZD,EAAGsD,OAAOC,OAExBjD,KAAKU,gBAAkB,IAAyB,QAAzB,EAAKV,KAAKU,uBAAe,IAAAqC,EAAAA,EAAI,GAAKL,EAC3D,C,kBAlIK,SAAAQ,GAAA,KAS+BjB,UAAW,OAqCvCrB,gBAAiBuC,EAAAA,EAAAA,GACvB,CAACtC,EAAiCJ,IAChCI,EACGY,IAAKC,GAASA,EAAKX,MACnBD,OAAQC,IAAUN,EAAe2C,SAASrC,KAAA,KAGzCM,gBAAiB8B,EAAAA,EAAAA,GACvB,CACEtC,EACAJ,IAEAI,EAAOC,OAAQY,GAASjB,EAAe2C,SAAS1B,EAAKX,O,EA1D9CnB,EAoIJyD,QAASC,EAAAA,EAAAA,IAAGC,IAAAA,EAAA1B,CAAA,8F,2BAnIP2B,WAAW,K,2DAEXA,WAAW,K,uDAEXA,WAAW,K,uDAEXA,WAAW,K,yDAEXC,KAAMC,W,2DAENF,WAAW,K,+DAKXA,WAAW,K,gEAIXA,WAAW,K"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"2785.702e51291ba8dfc9.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/common/dom/stop_propagation.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-input-helper-text.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-selector/ha-selector-duration.ts"],"names":["stopPropagation","ev","InputHelperText","LitElement","render","html","_t","_","args","disabled","styles","css","_t2","type","Boolean","reflect","HaTimeDuration","_this$selector$durati","_this$selector$durati2","this","label","helper","value","required","selector","duration","enable_day","enable_millisecond","attribute"],"mappings":"2KAAO,MAAMA,EAAmBC,GAAOA,EAAGD,iB,6FCI1C,MACME,UAAwBC,EAAAA,GAGlBC,MAAAA,GACR,OAAOC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,iBACb,C,kBANF,SAAAC,GAAA,KAE8CC,UAAW,C,EADnDP,EAOGQ,QAASC,EAAAA,EAAAA,IAAGC,IAAAA,EAAAL,CAAA;;;2IANPM,KAAMC,QAASC,SAAS,K,+OCE/B,MAAMC,UAAuBb,EAAAA,GAexBC,MAAAA,GAAS,IAAAa,EAAAC,EACjB,OAAOb,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,qKAEEY,KAAKC,MACJD,KAAKE,OACPF,KAAKG,MACDH,KAAKV,SACLU,KAAKI,SACkB,QADVN,EACZE,KAAKK,SAASC,gBAAQ,IAAAR,OAAA,EAAtBA,EAAwBS,WACM,QADNR,EAChBC,KAAKK,SAASC,gBAAQ,IAAAP,OAAA,EAAtBA,EAAwBS,mBAGnD,C,kBA3BK,SAAAnB,GAAA,KAW+BC,UAAW,OAEXc,UAAW,C,8BAZnCK,WAAW,K,uDAEXA,WAAW,K,2DAEXA,WAAW,K,6KAMXf,KAAMC,W,2DAEND,KAAMC,W"}
{"version":3,"file":"2785.702e51291ba8dfc9.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/common/dom/stop_propagation.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-input-helper-text.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-selector/ha-selector-duration.ts"],"names":["stopPropagation","ev","InputHelperText","LitElement","render","html","_t","_","args","disabled","styles","css","_t2","type","Boolean","reflect","HaTimeDuration","_this$selector$durati","_this$selector$durati2","this","label","helper","value","required","selector","duration","enable_day","enable_millisecond","attribute"],"mappings":"2KAAO,MAAMA,EAAmBC,GAAOA,EAAGD,iB,6FCI1C,MACME,UAAwBC,EAAAA,GAGlBC,MAAAA,GACR,OAAOC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,iBACb,C,kBANF,SAAAC,GAAA,KAE8CC,UAAW,C,EADnDP,EAOGQ,QAASC,EAAAA,EAAAA,IAAGC,IAAAA,EAAAL,CAAA;;;2IANPM,KAAMC,QAASC,SAAS,K,+OCE/B,MAAMC,UAAuBb,EAAAA,GAexBC,MAAAA,GAAS,IAAAa,EAAAC,EACjB,OAAOb,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,qKAEEY,KAAKC,MACJD,KAAKE,OACPF,KAAKG,MACDH,KAAKV,SACLU,KAAKI,SACkB,QADVN,EACZE,KAAKK,SAASC,gBAAQ,IAAAR,OAAA,EAAtBA,EAAwBS,WACM,QADNR,EAChBC,KAAKK,SAASC,gBAAQ,IAAAP,OAAA,EAAtBA,EAAwBS,mBAGnD,C,kBA3BK,SAAAnB,GAAA,KAW+BC,UAAW,OAEXc,UAAW,C,8BAZnCK,WAAW,K,uDAEXA,WAAW,K,2DAEXA,WAAW,K,6KAMXf,KAAMC,W,2DAEND,KAAMC,W"}

View File

@@ -1,14 +1,14 @@
"use strict";(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([["285"],{71781:function(o,t,a){a.a(o,async function(o,e){try{a.r(t),a.d(t,{HassioUpdate:function(){return m}});a(39710),a(26847),a(81738),a(94814),a(56389),a(27530);var r=a(73742),n=a(59048),l=a(7616),i=a(28105),s=(a(31138),a(72953)),c=(a(55245),a(993),a(56730)),d=a(95814),h=a(8498),v=o([s]);s=(v.then?(await v)():v)[0];let p,u,f,b=o=>o;const g=(o,t)=>"os"===o?t:`${o}-${t}`;class m extends n.oi{render(){if(!this.supervisor)return n.Ld;const o=this._pendingUpdates(this.supervisor);return o?(0,n.dy)(p||(p=b` <div class="content"> <h1> ${0} 🎉 </h1> <div class="card-group"> ${0} ${0} ${0} </div> </div> `),this.supervisor.localize("common.update_available",{count:o}),this._renderUpdateCard("Home Assistant Core","core",this.supervisor.core),this._renderUpdateCard("Supervisor","supervisor",this.supervisor.supervisor),this.supervisor.host.features.includes("haos")?this._renderUpdateCard("Operating System","os",this.supervisor.os):""):n.Ld}_renderUpdateCard(o,t,a){return a.update_available?(0,n.dy)(u||(u=b` <ha-card outlined> <div class="card-content"> <div class="icon"> <ha-svg-icon .path="${0}"></ha-svg-icon> </div> <div class="update-heading">${0}</div> <ha-settings-row two-line> <span slot="heading"> ${0} </span> <span slot="description"> ${0} </span> </ha-settings-row> <ha-settings-row two-line> <span slot="heading"> ${0} </span> <span slot="description"> ${0} </span> </ha-settings-row> </div> <div class="card-actions"> <ha-button appearance="plain" href="/hassio/update-available/${0}"> ${0} </ha-button> </div> </ha-card> `),c.T,o,this.supervisor.localize("common.version"),g(t,a.version),this.supervisor.localize("common.newest_version"),g(t,a.version_latest),t,this.supervisor.localize("common.show")):n.Ld}static get styles(){return[d.Qx,h.l,(0,n.iv)(f||(f=b`.icon{--mdc-icon-size:48px;float:right;margin:0 0 2px 10px;color:var(--primary-text-color)}.update-heading{font-size:var(--ha-font-size-l);font-weight:var(--ha-font-weight-medium);margin-bottom:.5em;color:var(--primary-text-color)}.card-content{height:calc(100% - 47px);box-sizing:border-box}.card-actions{text-align:right}a{text-decoration:none}ha-settings-row{padding:0}`))]}constructor(...o){super(...o),this._pendingUpdates=(0,i.Z)(o=>Object.keys(o).filter(t=>o[t].update_available).length)}}(0,r.__decorate)([(0,l.Cb)({attribute:!1})],m.prototype,"hass",void 0),(0,r.__decorate)([(0,l.Cb)({attribute:!1})],m.prototype,"supervisor",void 0),m=(0,r.__decorate)([(0,l.Mo)("hassio-update")],m),e()}catch(p){e(p)}})},72953:function(o,t,a){a.a(o,async function(o,t){try{a(26847),a(27530),a(11807);var e=a(73742),r=a(71328),n=a(59048),l=a(7616),i=a(29171),s=o([r]);r=(s.then?(await s)():s)[0];let c,d=o=>o;class h extends r.Z{attachInternals(){const o=super.attachInternals();return Object.defineProperty(o,"states",{value:new i.C(this,o.states)}),o}static get styles(){return[r.Z.styles,(0,n.iv)(c||(c=d`.button{--wa-form-control-padding-inline:16px;--wa-font-weight-action:var(--ha-font-weight-medium);--wa-form-control-border-radius:var(
--ha-button-border-radius,
var(--border-radius-pill)
var(--ha-border-radius-pill)
);--wa-form-control-height:var(
--ha-button-height,
var(--button-height, 40px)
);font-size:var(--ha-font-size-m);line-height:1}:host([size=small]) .button{--wa-form-control-height:var(
--ha-button-height,
var(--button-height, 32px)
);font-size:var(--wa-font-size-s, var(--ha-font-size-m))}:host([variant=brand]){--button-color-fill-normal-active:var(--ha-color-fill-primary-normal-active);--button-color-fill-normal-hover:var(--ha-color-fill-primary-normal-hover);--button-color-fill-loud-active:var(--ha-color-fill-primary-loud-active);--button-color-fill-loud-hover:var(--ha-color-fill-primary-loud-hover)}:host([variant=neutral]){--button-color-fill-normal-active:var(--ha-color-fill-neutral-normal-active);--button-color-fill-normal-hover:var(--ha-color-fill-neutral-normal-hover);--button-color-fill-loud-active:var(--ha-color-fill-neutral-loud-active);--button-color-fill-loud-hover:var(--ha-color-fill-neutral-loud-hover)}:host([variant=success]){--button-color-fill-normal-active:var(--ha-color-fill-success-normal-active);--button-color-fill-normal-hover:var(--ha-color-fill-success-normal-hover);--button-color-fill-loud-active:var(--ha-color-fill-success-loud-active);--button-color-fill-loud-hover:var(--ha-color-fill-success-loud-hover)}:host([variant=warning]){--button-color-fill-normal-active:var(--ha-color-fill-warning-normal-active);--button-color-fill-normal-hover:var(--ha-color-fill-warning-normal-hover);--button-color-fill-loud-active:var(--ha-color-fill-warning-loud-active);--button-color-fill-loud-hover:var(--ha-color-fill-warning-loud-hover)}:host([variant=danger]){--button-color-fill-normal-active:var(--ha-color-fill-danger-normal-active);--button-color-fill-normal-hover:var(--ha-color-fill-danger-normal-hover);--button-color-fill-loud-active:var(--ha-color-fill-danger-loud-active);--button-color-fill-loud-hover:var(--ha-color-fill-danger-loud-hover)}:host([appearance~=plain]) .button{color:var(--wa-color-on-normal)}:host([appearance~=plain]) .button.disabled{background-color:transparent;color:var(--ha-color-on-disabled-quiet)}:host([appearance~=outlined]) .button.disabled{background-color:transparent;color:var(--ha-color-on-disabled-quiet)}@media (hover:hover){:host([appearance~=filled]) .button:not(.disabled):not(.loading):hover{background-color:var(--button-color-fill-normal-hover)}:host([appearance~=accent]) .button:not(.disabled):not(.loading):hover{background-color:var(--button-color-fill-loud-hover)}:host([appearance~=plain]) .button:not(.disabled):not(.loading):hover{color:var(--wa-color-on-normal)}}:host([appearance~=filled]) .button:not(.disabled):not(.loading):active{background-color:var(--button-color-fill-normal-active)}:host([appearance~=filled]) .button.disabled{background-color:var(--ha-color-fill-disabled-normal-resting);color:var(--ha-color-on-disabled-normal)}:host([appearance~=accent]) .button{background-color:var(--wa-color-fill-loud,var(--wa-color-neutral-fill-loud))}:host([appearance~=accent]) .button:not(.disabled):not(.loading):active{background-color:var(--button-color-fill-loud-active)}:host([appearance~=accent]) .button.disabled{background-color:var(--ha-color-fill-disabled-loud-resting);color:var(--ha-color-on-disabled-loud)}:host([loading]){pointer-events:none}.button.disabled{opacity:1}`))]}constructor(...o){super(...o),this.variant="brand"}}h=(0,e.__decorate)([(0,l.Mo)("ha-button")],h),t()}catch(c){t(c)}})},55245:function(o,t,a){a(26847),a(27530);var e=a(73742),r=a(59048),n=a(7616);let l,i,s=o=>o;class c extends r.oi{render(){return(0,r.dy)(l||(l=s` <div class="prefix-wrap"> <slot name="prefix"></slot> <div class="body" ?two-line="${0}" ?three-line="${0}"> <slot name="heading"></slot> <div class="secondary"><slot name="description"></slot></div> </div> </div> <div class="content"><slot></slot></div> `),!this.threeLine,this.threeLine)}constructor(...o){super(...o),this.narrow=!1,this.slim=!1,this.threeLine=!1,this.wrapHeading=!1}}c.styles=(0,r.iv)(i||(i=s`:host{display:flex;padding:0 16px;align-content:normal;align-self:auto;align-items:center}.body{padding-top:8px;padding-bottom:8px;padding-left:0;padding-inline-start:0;padding-right:16px;padding-inline-end:16px;overflow:hidden;display:var(--layout-vertical_-_display,flex);flex-direction:var(--layout-vertical_-_flex-direction,column);justify-content:var(--layout-center-justified_-_justify-content,center);flex:var(--layout-flex_-_flex,1);flex-basis:var(--layout-flex_-_flex-basis,0.000000001px)}.body[three-line]{min-height:88px}:host(:not([wrap-heading])) body>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.body>.secondary{display:block;padding-top:4px;font-family:var(
);font-size:var(--wa-font-size-s, var(--ha-font-size-m))}:host([variant=brand]){--button-color-fill-normal-active:var(--ha-color-fill-primary-normal-active);--button-color-fill-normal-hover:var(--ha-color-fill-primary-normal-hover);--button-color-fill-loud-active:var(--ha-color-fill-primary-loud-active);--button-color-fill-loud-hover:var(--ha-color-fill-primary-loud-hover)}:host([variant=neutral]){--button-color-fill-normal-active:var(--ha-color-fill-neutral-normal-active);--button-color-fill-normal-hover:var(--ha-color-fill-neutral-normal-hover);--button-color-fill-loud-active:var(--ha-color-fill-neutral-loud-active);--button-color-fill-loud-hover:var(--ha-color-fill-neutral-loud-hover)}:host([variant=success]){--button-color-fill-normal-active:var(--ha-color-fill-success-normal-active);--button-color-fill-normal-hover:var(--ha-color-fill-success-normal-hover);--button-color-fill-loud-active:var(--ha-color-fill-success-loud-active);--button-color-fill-loud-hover:var(--ha-color-fill-success-loud-hover)}:host([variant=warning]){--button-color-fill-normal-active:var(--ha-color-fill-warning-normal-active);--button-color-fill-normal-hover:var(--ha-color-fill-warning-normal-hover);--button-color-fill-loud-active:var(--ha-color-fill-warning-loud-active);--button-color-fill-loud-hover:var(--ha-color-fill-warning-loud-hover)}:host([variant=danger]){--button-color-fill-normal-active:var(--ha-color-fill-danger-normal-active);--button-color-fill-normal-hover:var(--ha-color-fill-danger-normal-hover);--button-color-fill-loud-active:var(--ha-color-fill-danger-loud-active);--button-color-fill-loud-hover:var(--ha-color-fill-danger-loud-hover)}:host([appearance~=plain]) .button{color:var(--wa-color-on-normal);background-color:transparent}:host([appearance~=plain]) .button.disabled{background-color:transparent;color:var(--ha-color-on-disabled-quiet)}:host([appearance~=outlined]) .button.disabled{background-color:transparent;color:var(--ha-color-on-disabled-quiet)}@media (hover:hover){:host([appearance~=filled]) .button:not(.disabled):not(.loading):hover{background-color:var(--button-color-fill-normal-hover)}:host([appearance~=accent]) .button:not(.disabled):not(.loading):hover{background-color:var(--button-color-fill-loud-hover)}:host([appearance~=plain]) .button:not(.disabled):not(.loading):hover{color:var(--wa-color-on-normal)}}:host([appearance~=filled]) .button:not(.disabled):not(.loading):active{background-color:var(--button-color-fill-normal-active)}:host([appearance~=filled]) .button.disabled{background-color:var(--ha-color-fill-disabled-normal-resting);color:var(--ha-color-on-disabled-normal)}:host([appearance~=accent]) .button{background-color:var(--wa-color-fill-loud,var(--wa-color-neutral-fill-loud))}:host([appearance~=accent]) .button:not(.disabled):not(.loading):active{background-color:var(--button-color-fill-loud-active)}:host([appearance~=accent]) .button.disabled{background-color:var(--ha-color-fill-disabled-loud-resting);color:var(--ha-color-on-disabled-loud)}:host([loading]){pointer-events:none}.button.disabled{opacity:1}slot[name=start]::slotted(*){margin-inline-end:4px}slot[name=end]::slotted(*){margin-inline-start:4px}`))]}constructor(...o){super(...o),this.variant="brand"}}h=(0,e.__decorate)([(0,l.Mo)("ha-button")],h),t()}catch(c){t(c)}})},55245:function(o,t,a){a(26847),a(27530);var e=a(73742),r=a(59048),n=a(7616);let l,i,s=o=>o;class c extends r.oi{render(){return(0,r.dy)(l||(l=s` <div class="prefix-wrap"> <slot name="prefix"></slot> <div class="body" ?two-line="${0}" ?three-line="${0}"> <slot name="heading"></slot> <div class="secondary"><slot name="description"></slot></div> </div> </div> <div class="content"><slot></slot></div> `),!this.threeLine,this.threeLine)}constructor(...o){super(...o),this.narrow=!1,this.slim=!1,this.threeLine=!1,this.wrapHeading=!1}}c.styles=(0,r.iv)(i||(i=s`:host{display:flex;padding:0 16px;align-content:normal;align-self:auto;align-items:center}.body{padding-top:8px;padding-bottom:8px;padding-left:0;padding-inline-start:0;padding-right:16px;padding-inline-end:16px;overflow:hidden;display:var(--layout-vertical_-_display,flex);flex-direction:var(--layout-vertical_-_flex-direction,column);justify-content:var(--layout-center-justified_-_justify-content,center);flex:var(--layout-flex_-_flex,1);flex-basis:var(--layout-flex_-_flex-basis,0.000000001px)}.body[three-line]{min-height:88px}:host(:not([wrap-heading])) body>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.body>.secondary{display:block;padding-top:4px;font-family:var(
--mdc-typography-body2-font-family,
var(--mdc-typography-font-family, var(--ha-font-family-body))
);font-size:var(--mdc-typography-body2-font-size, var(--ha-font-size-s));-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);font-weight:var(--mdc-typography-body2-font-weight,var(--ha-font-weight-normal));line-height:normal;color:var(--secondary-text-color)}.body[two-line]{min-height:calc(72px - 16px);flex:1}.content{display:contents}:host(:not([narrow])) .content{display:var(--settings-row-content-display,flex);justify-content:flex-end;flex:1;min-width:0;padding:16px 0}.content ::slotted(*){width:var(--settings-row-content-width)}:host([narrow]){align-items:normal;flex-direction:column;border-top:1px solid var(--divider-color);padding-bottom:8px}::slotted(ha-switch){padding:16px 0}.secondary{white-space:normal}.prefix-wrap{display:var(--settings-row-prefix-display)}:host([narrow]) .prefix-wrap{display:flex;align-items:center}:host([slim]),:host([slim]) .content,:host([slim]) ::slotted(ha-switch){padding:0}:host([slim]) .body{min-height:0}`)),(0,e.__decorate)([(0,n.Cb)({type:Boolean,reflect:!0})],c.prototype,"narrow",void 0),(0,e.__decorate)([(0,n.Cb)({type:Boolean,reflect:!0})],c.prototype,"slim",void 0),(0,e.__decorate)([(0,n.Cb)({type:Boolean,attribute:"three-line"})],c.prototype,"threeLine",void 0),(0,e.__decorate)([(0,n.Cb)({type:Boolean,attribute:"wrap-heading",reflect:!0})],c.prototype,"wrapHeading",void 0),c=(0,e.__decorate)([(0,n.Mo)("ha-settings-row")],c)},56730:function(o,t,a){a.d(t,{T:function(){return e}});const e="m12.151 1.5882c-.3262 0-.6523.1291-.8996.3867l-8.3848 8.7354c-.0619.0644-.1223.1368-.1807.2154-.0588.0789-.1151.1638-.1688.2534-.2593.4325-.4552.9749-.5232 1.4555-.0026.018-.0076.0369-.0094.0548-.0121.0987-.0184.1944-.0184.2857v8.0124a1.2731 1.2731 0 001.2731 1.2731h7.8313l-3.4484-3.593a1.7399 1.7399 0 111.0803-1.125l2.6847 2.7972v-10.248a1.7399 1.7399 0 111.5276-0v7.187l2.6702-2.782a1.7399 1.7399 0 111.0566 1.1505l-3.7269 3.8831v2.7299h8.174a1.2471 1.2471 0 001.2471-1.2471v-8.0375c0-.0912-.0059-.1868-.0184-.2855-.0603-.4935-.2636-1.0617-.5326-1.5105-.0537-.0896-.1101-.1745-.1684-.253-.0588-.079-.1191-.1513-.181-.2158l-8.3848-8.7363c-.2473-.2577-.5735-.3866-.8995-.3864"},29171:function(o,t,a){a.d(t,{C:function(){return e}});a(26847),a(64455),a(67886),a(65451),a(46015),a(38334),a(94880),a(75643),a(29761),a(6202),a(27530);class e extends Set{add(o){super.add(o);const t=this._existing;if(t)try{t.add(o)}catch(a){t.add(`--${o}`)}else this._el.setAttribute(`state-${o}`,"");return this}delete(o){super.delete(o);const t=this._existing;return t?(t.delete(o),t.delete(`--${o}`)):this._el.removeAttribute(`state-${o}`),!0}has(o){return super.has(o)}clear(){for(const o of this)this.delete(o)}constructor(o,t=null){super(),this._existing=null,this._el=o,this._existing=t}}const r=CSSStyleSheet.prototype.replaceSync;Object.defineProperty(CSSStyleSheet.prototype,"replaceSync",{value:function(o){o=o.replace(/:state\(([^)]+)\)/g,":where(:state($1), :--$1, [state-$1])"),r.call(this,o)}})}}]);
//# sourceMappingURL=285.8efa1d10eed94220.js.map
//# sourceMappingURL=285.0f891cef1da7a1ce.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"285.8efa1d10eed94220.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/hassio/src/dashboard/hassio-update.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-button.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-settings-row.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/resources/home-assistant-logo-svg.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/resources/polyfills/stateset.ts"],"names":["computeVersion","key","version","HassioUpdate","LitElement","render","this","supervisor","nothing","updatesAvailable","_pendingUpdates","html","_t","_","localize","count","_renderUpdateCard","core","host","features","includes","os","name","object","update_available","_t2","mdiHomeAssistant","version_latest","styles","haStyle","hassioStyle","css","_t3","args","memoizeOne","Object","keys","filter","value","length","attribute","HaButton","Button","attachInternals","internals","super","defineProperty","StateSet","states","variant","HaSettingsRow","threeLine","narrow","slim","wrapHeading","type","Boolean","reflect","Set","add","state","existing","_existing","_unused","_el","setAttribute","delete","removeAttribute","has","clear","constructor","el","replaceSync","CSSStyleSheet","prototype","text","replace","call"],"mappings":"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"}
{"version":3,"file":"285.0f891cef1da7a1ce.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/hassio/src/dashboard/hassio-update.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-button.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-settings-row.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/resources/home-assistant-logo-svg.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/resources/polyfills/stateset.ts"],"names":["computeVersion","key","version","HassioUpdate","LitElement","render","this","supervisor","nothing","updatesAvailable","_pendingUpdates","html","_t","_","localize","count","_renderUpdateCard","core","host","features","includes","os","name","object","update_available","_t2","mdiHomeAssistant","version_latest","styles","haStyle","hassioStyle","css","_t3","args","memoizeOne","Object","keys","filter","value","length","attribute","HaButton","Button","attachInternals","internals","super","defineProperty","StateSet","states","variant","HaSettingsRow","threeLine","narrow","slim","wrapHeading","type","Boolean","reflect","Set","add","state","existing","_existing","_unused","_el","setAttribute","delete","removeAttribute","has","clear","constructor","el","replaceSync","CSSStyleSheet","prototype","text","replace","call"],"mappings":"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"}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"3104.0aa557c485784ebe.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-input-helper-text.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-selector/ha-selector-number.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-slider.ts"],"names":["InputHelperText","LitElement","render","html","_t","_","args","disabled","styles","css","_t2","type","Boolean","reflect","HaNumberSelector","willUpdate","changedProps","has","this","_valueStr","value","Number","isNaN","toString","_this$selector$number","_this$selector$number2","_this$selector$number3","_this$selector$number5","_this$selector$number6","_this$value","_this$selector$number7","_this$selector$number8","_this$selector$number9","_this$selector$number0","_this$selector$number1","_this$selector$number10","_this$_valueStr","_this$selector$number11","_this$selector$number12","isBox","selector","number","mode","undefined","min","max","sliderStep","_this$selector$number4","step","translationKey","translation_key","unit","unit_of_measurement","localizeValue","label","required","nothing","_t3","_handleSliderChange","slider_ticks","placeholder","classMap","single","helper","_handleInputChange","_t4","ev","stopPropagation","target","fireEvent","_t5","attribute","HaSlider","Slider","connectedCallback","super","dir","mainWindow"],"mappings":"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"}
{"version":3,"file":"3104.0aa557c485784ebe.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-input-helper-text.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-selector/ha-selector-number.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-slider.ts"],"names":["InputHelperText","LitElement","render","html","_t","_","args","disabled","styles","css","_t2","type","Boolean","reflect","HaNumberSelector","willUpdate","changedProps","has","this","_valueStr","value","Number","isNaN","toString","_this$selector$number","_this$selector$number2","_this$selector$number3","_this$selector$number5","_this$selector$number6","_this$value","_this$selector$number7","_this$selector$number8","_this$selector$number9","_this$selector$number0","_this$selector$number1","_this$selector$number10","_this$_valueStr","_this$selector$number11","_this$selector$number12","isBox","selector","number","mode","undefined","min","max","sliderStep","_this$selector$number4","step","translationKey","translation_key","unit","unit_of_measurement","localizeValue","label","required","nothing","_t3","_handleSliderChange","slider_ticks","placeholder","classMap","single","helper","_handleInputChange","_t4","ev","stopPropagation","target","fireEvent","_t5","attribute","HaSlider","Slider","connectedCallback","super","dir","mainWindow"],"mappings":"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"}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"3114.3d74d3d731ecd45f.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/common/dom/stop_propagation.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-form/ha-form-positive_time_period_dict.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-input-helper-text.ts"],"names":["stopPropagation","ev","HaFormTimePeriod","LitElement","focus","this","_input","render","html","_t","_","label","schema","required","data","disabled","args","attribute","type","Boolean","InputHelperText","styles","css","_t2","reflect"],"mappings":"2KAAO,MAAMA,EAAmBC,GAAOA,EAAGD,iB,0JCOnC,MAAME,UAAyBC,EAAAA,GAW7BC,KAAAA,GACDC,KAAKC,QACPD,KAAKC,OAAOF,OAEhB,CAEUG,MAAAA,GACR,OAAOC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,0GAEEL,KAAKM,MACFN,KAAKO,OAAOC,SAChBR,KAAKS,KACDT,KAAKU,SAGvB,C,kBA1BK,SAAAC,GAAA,KAO+BD,UAAW,C,8BANnCE,WAAW,K,yDAEXA,WAAW,K,iHAIXC,KAAMC,W,8QCVpB,MACMC,UAAwBjB,EAAAA,GAGlBI,MAAAA,GACR,OAAOC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,iBACb,C,kBANF,SAAAM,GAAA,KAE8CD,UAAW,C,EADnDK,EAOGC,QAASC,EAAAA,EAAAA,IAAGC,IAAAA,EAAAb,CAAA;;;2IANPQ,KAAMC,QAASK,SAAS,K"}
{"version":3,"file":"3114.3d74d3d731ecd45f.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/common/dom/stop_propagation.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-form/ha-form-positive_time_period_dict.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-input-helper-text.ts"],"names":["stopPropagation","ev","HaFormTimePeriod","LitElement","focus","this","_input","render","html","_t","_","label","schema","required","data","disabled","args","attribute","type","Boolean","InputHelperText","styles","css","_t2","reflect"],"mappings":"2KAAO,MAAMA,EAAmBC,GAAOA,EAAGD,iB,0JCOnC,MAAME,UAAyBC,EAAAA,GAW7BC,KAAAA,GACDC,KAAKC,QACPD,KAAKC,OAAOF,OAEhB,CAEUG,MAAAA,GACR,OAAOC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,0GAEEL,KAAKM,MACFN,KAAKO,OAAOC,SAChBR,KAAKS,KACDT,KAAKU,SAGvB,C,kBA1BK,SAAAC,GAAA,KAO+BD,UAAW,C,8BANnCE,WAAW,K,yDAEXA,WAAW,K,iHAIXC,KAAMC,W,8QCVpB,MACMC,UAAwBjB,EAAAA,GAGlBI,MAAAA,GACR,OAAOC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,iBACb,C,kBANF,SAAAM,GAAA,KAE8CD,UAAW,C,EADnDK,EAOGC,QAASC,EAAAA,EAAAA,IAAGC,IAAAA,EAAAb,CAAA;;;2IANPQ,KAAMC,QAASK,SAAS,K"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"3208.c142526706a8bf41.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-qr-code.ts"],"names":["HaQrCode","LitElement","willUpdate","changedProperties","super","has","this","_error","undefined","updated","canvas","_canvas","data","computedStyles","getComputedStyle","textRgb","getPropertyValue","backgroundRgb","textHex","rgb2hex","split","map","a","parseInt","backgroundHex","QRCode","errorCorrectionLevel","centerImage","width","scale","margin","maskPattern","color","light","dark","catch","err","message","context","getContext","imageObj","Image","src","onload","drawImage","height","render","html","_t","_","_t2","nothing","args","styles","css","_t3","attribute","type","Number"],"mappings":"0TAQO,MAAMA,UAAiBC,EAAAA,GAyBlBC,UAAAA,CAAWC,GACnBC,MAAMF,WAAWC,IAEdA,EAAkBE,IAAI,SACrBF,EAAkBE,IAAI,UACtBF,EAAkBE,IAAI,UACtBF,EAAkBE,IAAI,WACtBF,EAAkBE,IAAI,gBACtBF,EAAkBE,IAAI,0BACxBC,KAAKC,SAELD,KAAKC,YAASC,EAElB,CAEAC,OAAAA,CAAQN,GACN,MAAMO,EAASJ,KAAKK,QACpB,GACED,GACAJ,KAAKM,OACJT,EAAkBE,IAAI,SACrBF,EAAkBE,IAAI,UACtBF,EAAkBE,IAAI,UACtBF,EAAkBE,IAAI,WACtBF,EAAkBE,IAAI,gBACtBF,EAAkBE,IAAI,yBACtBF,EAAkBE,IAAI,gBACxB,CACA,MAAMQ,EAAiBC,iBAAiBR,MAClCS,EAAUF,EAAeG,iBAC7B,4BAEIC,EAAgBJ,EAAeG,iBACnC,+BAEIE,GAAUC,EAAAA,EAAAA,IACdJ,EAAQK,MAAM,KAAKC,IAAKC,GAAMC,SAASD,EAAG,MAMtCE,GAAgBL,EAAAA,EAAAA,IACpBF,EAAcG,MAAM,KAAKC,IAAKC,GAAMC,SAASD,EAAG,MAsBlD,GAfAG,EAAAA,SAAgBf,EAAQJ,KAAKM,KAAM,CACjCc,qBACEpB,KAAKoB,uBAAyBpB,KAAKqB,YAAc,IAAM,KACzDC,MAAOtB,KAAKsB,MACZC,MAAOvB,KAAKuB,MACZC,OAAQxB,KAAKwB,OACbC,YAAazB,KAAKyB,YAClBC,MAAO,CACLC,MAAOT,EACPU,KAAMhB,KAEPiB,MAAOC,IACR9B,KAAKC,OAAS6B,EAAIC,UAGhB/B,KAAKqB,YAAa,CACpB,MAAMW,EAAUhC,KAAKK,QAAS4B,WAAW,MACnCC,EAAW,IAAIC,MACrBD,EAASE,IAAMpC,KAAKqB,YACpBa,EAASG,OAAS,KAChBL,SAAAA,EAASM,UACPJ,EACe,KAAf9B,EAAOkB,MACS,KAAhBlB,EAAOmC,OACPnC,EAAOkB,MAAQ,EACflB,EAAOmC,OAAS,GAGtB,CACF,CACF,CAEAC,MAAAA,GACE,OAAKxC,KAAKM,KAGNN,KAAKC,QACAwC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,gCAAgC,gBAAA3C,KAAKC,SAE3CwC,EAAAA,EAAAA,IAAIG,IAAAA,EAAAD,CAAA,sBALFE,EAAAA,EAMX,C,kBAnHK,SAAAC,GAAA,KAIE1B,qBACL,cAGKE,MAAQ,OAGRC,MAAQ,OAGRC,OAAS,C,EAdL9B,EAqHJqD,QAASC,EAAAA,EAAAA,IAAGC,IAAAA,EAAAN,CAAA,0B,oFAlHPO,UAAW,4B,uEAIXC,KAAMC,U,wDAGND,KAAMC,U,wDAGND,KAAMC,U,yDAGNF,WAAW,EAAOC,KAAMC,U,8DAGxBF,UAAW,kB"}
{"version":3,"file":"3208.c142526706a8bf41.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-qr-code.ts"],"names":["HaQrCode","LitElement","willUpdate","changedProperties","super","has","this","_error","undefined","updated","canvas","_canvas","data","computedStyles","getComputedStyle","textRgb","getPropertyValue","backgroundRgb","textHex","rgb2hex","split","map","a","parseInt","backgroundHex","QRCode","errorCorrectionLevel","centerImage","width","scale","margin","maskPattern","color","light","dark","catch","err","message","context","getContext","imageObj","Image","src","onload","drawImage","height","render","html","_t","_","_t2","nothing","args","styles","css","_t3","attribute","type","Number"],"mappings":"0TAQO,MAAMA,UAAiBC,EAAAA,GAyBlBC,UAAAA,CAAWC,GACnBC,MAAMF,WAAWC,IAEdA,EAAkBE,IAAI,SACrBF,EAAkBE,IAAI,UACtBF,EAAkBE,IAAI,UACtBF,EAAkBE,IAAI,WACtBF,EAAkBE,IAAI,gBACtBF,EAAkBE,IAAI,0BACxBC,KAAKC,SAELD,KAAKC,YAASC,EAElB,CAEAC,OAAAA,CAAQN,GACN,MAAMO,EAASJ,KAAKK,QACpB,GACED,GACAJ,KAAKM,OACJT,EAAkBE,IAAI,SACrBF,EAAkBE,IAAI,UACtBF,EAAkBE,IAAI,UACtBF,EAAkBE,IAAI,WACtBF,EAAkBE,IAAI,gBACtBF,EAAkBE,IAAI,yBACtBF,EAAkBE,IAAI,gBACxB,CACA,MAAMQ,EAAiBC,iBAAiBR,MAClCS,EAAUF,EAAeG,iBAC7B,4BAEIC,EAAgBJ,EAAeG,iBACnC,+BAEIE,GAAUC,EAAAA,EAAAA,IACdJ,EAAQK,MAAM,KAAKC,IAAKC,GAAMC,SAASD,EAAG,MAMtCE,GAAgBL,EAAAA,EAAAA,IACpBF,EAAcG,MAAM,KAAKC,IAAKC,GAAMC,SAASD,EAAG,MAsBlD,GAfAG,EAAAA,SAAgBf,EAAQJ,KAAKM,KAAM,CACjCc,qBACEpB,KAAKoB,uBAAyBpB,KAAKqB,YAAc,IAAM,KACzDC,MAAOtB,KAAKsB,MACZC,MAAOvB,KAAKuB,MACZC,OAAQxB,KAAKwB,OACbC,YAAazB,KAAKyB,YAClBC,MAAO,CACLC,MAAOT,EACPU,KAAMhB,KAEPiB,MAAOC,IACR9B,KAAKC,OAAS6B,EAAIC,UAGhB/B,KAAKqB,YAAa,CACpB,MAAMW,EAAUhC,KAAKK,QAAS4B,WAAW,MACnCC,EAAW,IAAIC,MACrBD,EAASE,IAAMpC,KAAKqB,YACpBa,EAASG,OAAS,KAChBL,SAAAA,EAASM,UACPJ,EACe,KAAf9B,EAAOkB,MACS,KAAhBlB,EAAOmC,OACPnC,EAAOkB,MAAQ,EACflB,EAAOmC,OAAS,GAGtB,CACF,CACF,CAEAC,MAAAA,GACE,OAAKxC,KAAKM,KAGNN,KAAKC,QACAwC,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,gCAAgC,gBAAA3C,KAAKC,SAE3CwC,EAAAA,EAAAA,IAAIG,IAAAA,EAAAD,CAAA,sBALFE,EAAAA,EAMX,C,kBAnHK,SAAAC,GAAA,KAIE1B,qBACL,cAGKE,MAAQ,OAGRC,MAAQ,OAGRC,OAAS,C,EAdL9B,EAqHJqD,QAASC,EAAAA,EAAAA,IAAGC,IAAAA,EAAAN,CAAA,0B,oFAlHPO,UAAW,4B,uEAIXC,KAAMC,U,wDAGND,KAAMC,U,wDAGND,KAAMC,U,yDAGNF,WAAW,EAAOC,KAAMC,U,8DAGxBF,UAAW,kB"}

View File

@@ -1 +1 @@
{"version":3,"file":"3246.dfad1650f2380a41.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/hassio/src/dialogs/datadisk/dialog-hassio-datadisk.ts"],"names":["calculateMoveTime","memoizeOne","supervisor","moveTime","host","disk_used","rebootTime","startup_time","Math","ceil","HassioDatadiskDialog","LitElement","showDialog","params","this","dialogParams","listDatadisks","hass","then","data","devices","closeDialog","undefined","selectedDevice","moving","fireEvent","dialog","localName","render","_this$devices","html","_t","_","localize","_t2","_t3","length","_t4","current_path","os","data_disk","time","_selectDevice","map","device","_t5","_moveDatadisk","nothing","ev","target","value","moveDatadisk","err","connection","connected","ignoreSupervisorError","showAlertDialog","title","text","extractApiErrorMessage","styles","haStyle","haStyleDialog","css","_t6","args","attribute"],"mappings":"kbAsBA,MAAMA,GAAoBC,EAAAA,EAAAA,GAAYC,IAEpC,MAAMC,EAAwC,IAA7BD,EAAYE,KAAKC,UAAoB,GAAK,GACrDC,EAA6C,EAAhCJ,EAAYE,KAAKG,aAAoB,GACxD,OAAiD,GAA1CC,KAAKC,MAAMN,EAAWG,GAAc,MAG7C,MACMI,UAA6BC,EAAAA,GAW1BC,UAAAA,CAAWC,GAChBC,KAAKC,aAAeF,GACpBG,EAAAA,EAAAA,IAAcF,KAAKG,MAAMC,KAAMC,IAC7BL,KAAKM,QAAUD,EAAKC,SAExB,CAEOC,WAAAA,GACLP,KAAKC,kBAAeO,EACpBR,KAAKS,oBAAiBD,EACtBR,KAAKM,aAAUE,EACfR,KAAKU,QAAS,GACdC,EAAAA,EAAAA,GAAUX,KAAM,gBAAiB,CAAEY,OAAQZ,KAAKa,WAClD,CAEUC,MAAAA,GAAS,IAAAC,EACjB,OAAKf,KAAKC,cAGHe,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,4HAKIlB,KAAKU,OACZV,KAAKC,aAAab,WAAW+B,SAAS,+BACtCnB,KAAKC,aAAab,WAAW+B,SAAS,8BAChCnB,KAAKO,YACAP,KAAKU,OAElBV,KAAKU,QACHM,EAAAA,EAAAA,IAAII,IAAAA,EAAAF,CAAA,kGAEElB,KAAKC,aAAab,WAAW+B,SAC7B,sCAGNH,EAAAA,EAAAA,IAAIK,IAAAA,EAAAH,CAAA,IAAI,gEAAJ,8HAAgB,QAAZH,EAAAf,KAAKM,eAAO,IAAAS,GAAZA,EAAcO,QAChBN,EAAAA,EAAAA,IAAIO,IAAAA,EAAAL,CAAA,mGACAlB,KAAKC,aAAab,WAAW+B,SAC7B,mCACA,CACEK,aAAcxB,KAAKC,aAAab,WAAWqC,GAAGC,UAC9CC,KAAMzC,EAAkBc,KAAKC,aAAab,cAMnCY,KAAKC,aAAab,WAAW+B,SACpC,sCAEUnB,KAAK4B,cAGf5B,KAAKM,QAAQuB,IACZC,IACCd,EAAAA,EAAAA,IAAIe,IAAAA,EAAAb,CAAA,mDAAwBY,EACvBA,UAKItB,IAAjBR,KAAKM,QACHN,KAAKC,aAAab,WAAW+B,SAC3B,wCAEFnB,KAAKC,aAAab,WAAW+B,SAC3B,mCAMGnB,KAAKO,YAGZP,KAAKC,aAAab,WAAW+B,SAC7B,gCAKWnB,KAAKS,eAETT,KAAKgC,cAEZhC,KAAKC,aAAab,WAAW+B,SAC7B,+BAvELc,EAAAA,EA4EX,CAEQL,aAAAA,CAAcM,GACpBlC,KAAKS,eAAiByB,EAAGC,OAAOC,KAClC,CAEA,mBAAcJ,GACZhC,KAAKU,QAAS,EACd,UACQ2B,EAAAA,EAAAA,IAAarC,KAAKG,KAAMH,KAAKS,eACrC,CAAE,MAAO6B,GACHtC,KAAKG,KAAKoC,WAAWC,aAAcC,EAAAA,EAAAA,IAAsBH,MAC3DI,EAAAA,EAAAA,IAAgB1C,KAAM,CACpB2C,MAAO3C,KAAKC,aAAcb,WAAW+B,SACnC,8BAEFyB,MAAMC,EAAAA,EAAAA,IAAuBP,KAE/BtC,KAAKO,cAET,CACF,CAEA,iBAAWuC,GACT,MAAO,CACLC,EAAAA,GACAC,EAAAA,IACAC,EAAAA,EAAAA,IAAGC,IAAAA,EAAAhC,CAAA,kHAeP,C,kBAnJF,SAAAiC,GAAA,KAUmBzC,QAAS,C,8BARd0C,WAAW,K"}
{"version":3,"file":"3246.dfad1650f2380a41.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/hassio/src/dialogs/datadisk/dialog-hassio-datadisk.ts"],"names":["calculateMoveTime","memoizeOne","supervisor","moveTime","host","disk_used","rebootTime","startup_time","Math","ceil","HassioDatadiskDialog","LitElement","showDialog","params","this","dialogParams","listDatadisks","hass","then","data","devices","closeDialog","undefined","selectedDevice","moving","fireEvent","dialog","localName","render","_this$devices","html","_t","_","localize","_t2","_t3","length","_t4","current_path","os","data_disk","time","_selectDevice","map","device","_t5","_moveDatadisk","nothing","ev","target","value","moveDatadisk","err","connection","connected","ignoreSupervisorError","showAlertDialog","title","text","extractApiErrorMessage","styles","haStyle","haStyleDialog","css","_t6","args","attribute"],"mappings":"kbAsBA,MAAMA,GAAoBC,EAAAA,EAAAA,GAAYC,IAEpC,MAAMC,EAAwC,IAA7BD,EAAYE,KAAKC,UAAoB,GAAK,GACrDC,EAA6C,EAAhCJ,EAAYE,KAAKG,aAAoB,GACxD,OAAiD,GAA1CC,KAAKC,MAAMN,EAAWG,GAAc,MAG7C,MACMI,UAA6BC,EAAAA,GAW1BC,UAAAA,CAAWC,GAChBC,KAAKC,aAAeF,GACpBG,EAAAA,EAAAA,IAAcF,KAAKG,MAAMC,KAAMC,IAC7BL,KAAKM,QAAUD,EAAKC,SAExB,CAEOC,WAAAA,GACLP,KAAKC,kBAAeO,EACpBR,KAAKS,oBAAiBD,EACtBR,KAAKM,aAAUE,EACfR,KAAKU,QAAS,GACdC,EAAAA,EAAAA,GAAUX,KAAM,gBAAiB,CAAEY,OAAQZ,KAAKa,WAClD,CAEUC,MAAAA,GAAS,IAAAC,EACjB,OAAKf,KAAKC,cAGHe,EAAAA,EAAAA,IAAIC,IAAAA,EAAAC,CAAA,4HAKIlB,KAAKU,OACZV,KAAKC,aAAab,WAAW+B,SAAS,+BACtCnB,KAAKC,aAAab,WAAW+B,SAAS,8BAChCnB,KAAKO,YACAP,KAAKU,OAElBV,KAAKU,QACHM,EAAAA,EAAAA,IAAII,IAAAA,EAAAF,CAAA,kGAEElB,KAAKC,aAAab,WAAW+B,SAC7B,sCAGNH,EAAAA,EAAAA,IAAIK,IAAAA,EAAAH,CAAA,IAAI,gEAAJ,8HAAgB,QAAZH,EAAAf,KAAKM,eAAO,IAAAS,GAAZA,EAAcO,QAChBN,EAAAA,EAAAA,IAAIO,IAAAA,EAAAL,CAAA,mGACAlB,KAAKC,aAAab,WAAW+B,SAC7B,mCACA,CACEK,aAAcxB,KAAKC,aAAab,WAAWqC,GAAGC,UAC9CC,KAAMzC,EAAkBc,KAAKC,aAAab,cAMnCY,KAAKC,aAAab,WAAW+B,SACpC,sCAEUnB,KAAK4B,cAGf5B,KAAKM,QAAQuB,IACZC,IACCd,EAAAA,EAAAA,IAAIe,IAAAA,EAAAb,CAAA,mDAAwBY,EACvBA,UAKItB,IAAjBR,KAAKM,QACHN,KAAKC,aAAab,WAAW+B,SAC3B,wCAEFnB,KAAKC,aAAab,WAAW+B,SAC3B,mCAMGnB,KAAKO,YAGZP,KAAKC,aAAab,WAAW+B,SAC7B,gCAKWnB,KAAKS,eAETT,KAAKgC,cAEZhC,KAAKC,aAAab,WAAW+B,SAC7B,+BAvELc,EAAAA,EA4EX,CAEQL,aAAAA,CAAcM,GACpBlC,KAAKS,eAAiByB,EAAGC,OAAOC,KAClC,CAEA,mBAAcJ,GACZhC,KAAKU,QAAS,EACd,UACQ2B,EAAAA,EAAAA,IAAarC,KAAKG,KAAMH,KAAKS,eACrC,CAAE,MAAO6B,GACHtC,KAAKG,KAAKoC,WAAWC,aAAcC,EAAAA,EAAAA,IAAsBH,MAC3DI,EAAAA,EAAAA,IAAgB1C,KAAM,CACpB2C,MAAO3C,KAAKC,aAAcb,WAAW+B,SACnC,8BAEFyB,MAAMC,EAAAA,EAAAA,IAAuBP,KAE/BtC,KAAKO,cAET,CACF,CAEA,iBAAWuC,GACT,MAAO,CACLC,EAAAA,GACAC,EAAAA,IACAC,EAAAA,EAAAA,IAAGC,IAAAA,EAAAhC,CAAA,kHAeP,C,kBAnJF,SAAAiC,GAAA,KAUmBzC,QAAS,C,8BARd0C,WAAW,K"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"3534.11655901313e5444.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/resources/codemirror.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/resources/polyfills/resize-observer.ts"],"names":["langs","jinja2","StreamLanguage","yaml","langCompartment","Compartment","readonlyCompartment","linewrapCompartment","foldingCompartment","tabKeyBindings","key","run","indentMore","indentLess","haTheme","EditorView","color","backgroundColor","borderRadius","caretColor","height","maxHeight","outline","borderLeftColor","paddingTop","paddingBottom","borderBottom","borderTop","border","padding","textTransform","margin","background","fontFamily","fontSize","fontWeight","letterSpacing","boxShadow","display","left","marginTop","borderRight","paddingRight","haHighlightStyle","HighlightStyle","tag","tags","fontStyle","textDecoration","haSyntaxHighlighting","syntaxHighlighting","foldingOnIndent","foldService","state","from","to","line","doc","lineAt","length","text","trim","onlyEmptyNext","lineCount","lines","indent","search","foldStart","foldEnd","nextLine","number","nextIndent","window","ResizeObserver","default"],"mappings":"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"}
{"version":3,"file":"3534.11655901313e5444.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/resources/codemirror.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/resources/polyfills/resize-observer.ts"],"names":["langs","jinja2","StreamLanguage","yaml","langCompartment","Compartment","readonlyCompartment","linewrapCompartment","foldingCompartment","tabKeyBindings","key","run","indentMore","indentLess","haTheme","EditorView","color","backgroundColor","borderRadius","caretColor","height","maxHeight","outline","borderLeftColor","paddingTop","paddingBottom","borderBottom","borderTop","border","padding","textTransform","margin","background","fontFamily","fontSize","fontWeight","letterSpacing","boxShadow","display","left","marginTop","borderRight","paddingRight","haHighlightStyle","HighlightStyle","tag","tags","fontStyle","textDecoration","haSyntaxHighlighting","syntaxHighlighting","foldingOnIndent","foldService","state","from","to","line","doc","lineAt","length","text","trim","onlyEmptyNext","lineCount","lines","indent","search","foldStart","foldEnd","nextLine","number","nextIndent","window","ResizeObserver","default"],"mappings":"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"}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"3679.8eb5da894c6ae119.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/resources/append-ha-style.ts"],"names":["styleElement","document","createElement","textContent","themeStyles","head","append"],"mappings":"iKAEA,MAAMA,EAAeC,SAASC,cAAc,SAC5CF,EAAaG,YAAcC,EAAAA,EAC3BH,SAASI,KAAKC,OAAON,E"}
{"version":3,"file":"3679.8eb5da894c6ae119.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/resources/append-ha-style.ts"],"names":["styleElement","document","createElement","textContent","themeStyles","head","append"],"mappings":"iKAEA,MAAMA,EAAeC,SAASC,cAAc,SAC5CF,EAAaG,YAAcC,EAAAA,EAC3BH,SAASI,KAAKC,OAAON,E"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"3802.aec09329a1d3c056.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/components/ha-dialog.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250806.0/src/dialogs/image-cropper-dialog/image-cropper-dialog.ts"],"names":["SUPPRESS_DEFAULT_PRESS_SELECTOR","createCloseHeading","hass","title","_hass$localize","html","_t","_","localize","HaDialog","DialogBase","scrollToPos","x","y","_this$contentElement","this","contentElement","scrollTo","renderHeading","_t2","super","firstUpdated","_this$contentElement2","suppressDefaultPressSelector","join","_updateScrolledAttribute","addEventListener","_onScroll","passive","disconnectedCallback","removeEventListener","toggleAttribute","scrollTop","args","styles","css","_t3","HaImagecropperDialog","LitElement","showDialog","params","_params","_open","closeDialog","_this$_cropper","undefined","_cropper","destroy","_isTargetAspectRatio","updated","changedProperties","has","replace","URL","createObjectURL","file","_image","src","Cropper","aspectRatio","options","viewMode","dragMode","minCropBoxWidth","ready","_checkMatchAspectRatio","revokeObjectURL","_this$_params","targetRatio","imageData","getImageData","naturalWidth","naturalHeight","targetHeight","Math","abs","targetWidth","render","_this$_params2","classMap","round","Boolean","_useOriginal","nothing","_cropImage","getCroppedCanvas","toBlob","blob","File","name","type","croppedCallback","quality","haStyleDialog","unsafeCSS","cropperCss","attribute"],"mappings":"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"}
{"version":3,"file":"3802.aec09329a1d3c056.js","sources":["https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/components/ha-dialog.ts","https://raw.githubusercontent.com/home-assistant/frontend/20250811.0/src/dialogs/image-cropper-dialog/image-cropper-dialog.ts"],"names":["SUPPRESS_DEFAULT_PRESS_SELECTOR","createCloseHeading","hass","title","_hass$localize","html","_t","_","localize","HaDialog","DialogBase","scrollToPos","x","y","_this$contentElement","this","contentElement","scrollTo","renderHeading","_t2","super","firstUpdated","_this$contentElement2","suppressDefaultPressSelector","join","_updateScrolledAttribute","addEventListener","_onScroll","passive","disconnectedCallback","removeEventListener","toggleAttribute","scrollTop","args","styles","css","_t3","HaImagecropperDialog","LitElement","showDialog","params","_params","_open","closeDialog","_this$_cropper","undefined","_cropper","destroy","_isTargetAspectRatio","updated","changedProperties","has","replace","URL","createObjectURL","file","_image","src","Cropper","aspectRatio","options","viewMode","dragMode","minCropBoxWidth","ready","_checkMatchAspectRatio","revokeObjectURL","_this$_params","targetRatio","imageData","getImageData","naturalWidth","naturalHeight","targetHeight","Math","abs","targetWidth","render","_this$_params2","classMap","round","Boolean","_useOriginal","nothing","_cropImage","getCroppedCanvas","toBlob","blob","File","name","type","croppedCallback","quality","haStyleDialog","unsafeCSS","cropperCss","attribute"],"mappings":"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"}

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More