973 Commits

Author SHA1 Message Date
github-actions[bot]
ee0f240233 chore(main): release 4.26.0 (#1744)
🤖 I have created a release *beep* *boop*
---


## [4.26.0](https://github.com/unraid/api/compare/v4.25.3...v4.26.0)
(2025-11-17)


### Features

* add cpu power query & subscription
([#1745](https://github.com/unraid/api/issues/1745))
([d7aca81](d7aca81c60))
* add schema publishing to apollo studio
([#1772](https://github.com/unraid/api/issues/1772))
([7e13202](7e13202aa1))
* add workflow_dispatch trigger to schema publishing workflow
([818e7ce](818e7ce997))
* apollo studio readme link
([c4cd0c6](c4cd0c6352))
* **cli:** make `unraid-api plugins remove` scriptable
([#1774](https://github.com/unraid/api/issues/1774))
([64eb9ce](64eb9ce9b5))
* use persisted theme css to fix flashes on header
([#1784](https://github.com/unraid/api/issues/1784))
([854b403](854b403fbd))


### Bug Fixes

* **api:** decode html entities before parsing notifications
([#1768](https://github.com/unraid/api/issues/1768))
([42406e7](42406e795d))
* **connect:** disable api plugin if unraid plugin is absent
([#1773](https://github.com/unraid/api/issues/1773))
([c264a18](c264a1843c))
* detection of flash backup activation state
([#1769](https://github.com/unraid/api/issues/1769))
([d18eaf2](d18eaf2364))
* re-add missing header gradient styles
([#1787](https://github.com/unraid/api/issues/1787))
([f8a6785](f8a6785e9c))
* respect OS safe mode in plugin loader
([#1775](https://github.com/unraid/api/issues/1775))
([92af3b6](92af3b6115))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-17 13:03:50 -05:00
Eli Bosley
66625ded6a New Crowdin updates (#1786)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Expanded localization support with comprehensive validation error
messages across 22 languages including Arabic, Chinese, French, German,
Hindi, Japanese, Portuguese, Russian, Spanish, and others.
* Enhanced form validation messaging for API key management, OIDC
provider configuration, SSO setup, and related settings to provide
localized guidance for users fixing errors.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-17 11:04:10 -05:00
Eli Bosley
f8a6785e9c fix: re-add missing header gradient styles (#1787)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Style**
* Enhanced header banner styling: centered, non-repeating cover images
with layered gradient overlays and adjusted user-profile banner
positioning for improved layout.
* **Bug Fixes**
* Banner display logic updated so "image" is treated like "yes" for
showing banner images.
* **Tests**
  * Added unit tests covering banner/theme display behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-17 11:03:37 -05:00
Eli Bosley
854b403fbd feat: use persisted theme css to fix flashes on header (#1784)
## Summary
- install the pinia-plugin-persistedstate integration directly inside
the theme store and hydrate cached themes before applying CSS variables
- fall back to the active/global Pinia instance while ensuring persisted
state is only wired once per store instance
- update the theme store tests to reset the shared Pinia state between
runs and rely on the plugin-backed persistence

## Testing
- pnpm --filter web test __test__/store/theme.test.ts

------
[Codex
Task](https://chatgpt.com/codex/tasks/task_e_69156c5e8de48323841f7dbfdadec51d)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Theme preferences now persist across sessions and are restored on
return.
* **Behavior Change**
* Theme switching may now update the URL/address bar to reflect the
selected theme.
* **Chores**
* Added a persistence integration to enable storing/restoring theme
data.
* **Tests**
* Updated/added tests covering hydration from storage and persistence of
server-provided themes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-13 16:24:30 -05:00
Eli Bosley
45cda4af80 chore: nunjucks template engine for test pages (#1783) 2025-11-13 11:35:43 -05:00
Eli Bosley
d56797c59f chore: add dev mode language selection (#1782)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added a language switcher widget to all test pages for convenient
locale selection.
* Displays supported language options in a dropdown menu with extensive
multi-language support.
  * Persists user's locale preference across page reloads.

* **Tests**
* Enhanced test utilities with improved multi-locale support and locale
switching capabilities.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-13 10:49:36 -05:00
Pujit Mehrotra
11d2de5d08 chore(web): reduce lint duration by 90% (#1766)
Replace the eslint prettier plugin (which profiling revealed to be the
bottleneck) with separate `prettier` invocations. This yielded a 73 second reduction (89%) in the environment described below.

Before:
```
pnpm --filter web lint:fix  81.79s user 1.85s system 110% cpu 1:15.81 total
```
After: 
```
pnpm --filter web lint:fix  8.83s user 0.93s system 170% cpu 5.737 total
```
System specs (Nov 5 2025):
```
OS: macOS Sequoia 15.6.1 (24G90) arm64
Host: MacBook Air (15-inch, M2, 2023)
Kernel: Darwin 24.6.0
Uptime: 44 days, 5 hours, 22 mins
Packages: 52 (nix-default), 195 (brew), 4 (brew-cask)
Shell: zsh 5.9
CPU: Apple M2 (8) @ 3.50 GHz
GPU: Apple M2 (10) @ 1.40 GHz [Integrated]
Memory: 19.51 GiB / 24.00 GiB (81%)
Swap: 4.83 GiB / 6.00 GiB (80%)
```

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Separated code formatting and linting tools into independent workflows
for improved developer efficiency
* Updated development tool configuration to streamline the linting and
formatting process

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-06 09:22:45 -05:00
Eli Bosley
031c1ab5dc New Crowdin updates (#1760)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Localization**
  * Added proper Arabic translation for server action status messages
  * Added proper French translation for server action status messages
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-01 07:34:39 -04:00
Pujit Mehrotra
34075e44c5 fix: flaky watch on boot drive's dynamix config (#1753)
On FAT32, `fs.stat()` updates accesstime, which means file reads are
also writes, which means we can't use `usePoll` without degrading users'
flash drives.

To keep file reads lazy without a larger refactor, I override
`getters.dynamix()` as the entrypoint to re-read the boot drive's
dynamix config.

Consecutive calls to `getters.dynamix()` are a common access pattern,
which means we have to memoize to avoid many redundant file reads, so I
used a TTL cache with a 250ms lifetime, hoping to scope config files to
each request.

`getters.dynamix()` is also used synchonously, so bit the bullet and
switched away from async reads for simplicity, considering that most
reads will be occurring from memory, even during cache misses.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Added a TTL memoized loader utility with exported types.
  * Added a public function to load Dynamix configuration at startup.

* **Refactor**
* Startup now uses the deterministic, cached config loader; runtime
file-watch for Dynamix config removed.
* Simplified config state handling and load-status reporting for more
predictable startup behavior.

* **Tests**
* Added tests for TTL caching, eviction, keying, and conditional
caching.

* **Chores**
  * Bumped package versions and updated changelog.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-27 11:05:13 -04:00
Eli Bosley
8c4e9dd7ae New Crowdin updates (#1750)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* New Features
* Expanded and refined translations across the UI for Arabic, Bengali,
Catalan, Czech, Danish, German, Spanish, French, Hindi, Croatian,
Hungarian, Italian, Japanese, Korean, Latvian, Dutch, Norwegian, Polish,
Portuguese, Romanian, Russian, Swedish, Ukrainian, and Chinese.
* Updated labels, titles, and descriptions for API key management,
OIDC/SSO configuration, buttons, and restrictions to native-language
equivalents.
* Improves readability and consistency in localized interfaces; no
functional changes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-21 13:15:11 -04:00
Eli Bosley
f212dce88b fix: use relative URLs in the web links and fix color in PM2 startup (#1752)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **Refactor**
* Consolidated URL resolution and handling logic for improved
consistency across the application
* Enhanced GraphQL endpoint configuration with better fallback
mechanisms for more reliable connections
* Optimized platform command execution through improved default
parameter handling

* **Chores**
  * Infrastructure configuration updates and maintenance

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-21 10:10:50 -04:00
Eli Bosley
e9e271ade5 fix(#1729): api key authorize component not mounted when on Unraid OS 2025-10-13 21:37:28 -04:00
Eli Bosley
31c41027fc feat: translations now use crowdin (translate.unraid.net) (#1739)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- App-wide internationalization: dynamic locale detection/loading, many
new locale bundles, and CLI helpers to extract/sort translation keys.

- **Accessibility**
  - Brand button supports keyboard activation (Enter/Space).

- **Documentation**
  - Internationalization guidance added to API and Web READMEs.

- **Refactor**
- UI updated to use centralized i18n keys and a unified locale loading
approach.

- **Tests**
  - Test utilities updated to support i18n and localized assertions.

- **Chores**
- Crowdin config and i18n scripts added; runtime locale exposed for
selection.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-13 16:56:08 -04:00
Pujit Mehrotra
754966d5d3 fix: api auth from web during local dev (#1743) 2025-10-07 19:45:50 -04:00
github-actions[bot]
50d83313a1 chore(main): release 4.25.2 (#1734)
🤖 I have created a release *beep* *boop*
---


## [4.25.2](https://github.com/unraid/api/compare/v4.25.1...v4.25.2)
(2025-09-30)


### Bug Fixes

* enhance activation code modal visibility logic
([#1733](https://github.com/unraid/api/issues/1733))
([e57ec00](e57ec00627))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-30 17:16:08 -04:00
Eli Bosley
e57ec00627 fix: enhance activation code modal visibility logic (#1733)
Updated the visibility logic in the activation code modal store to
include a check for the presence of an activation code. The modal will
now be shown if it is not explicitly hidden, the installation is fresh,
there is no callback data, and an activation code is present.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Activation modal visibility refined: it now appears only when an
activation code is available, it’s a fresh install, the modal isn’t
hidden, and there’s no callback data. Prevents unnecessary prompts.

* **Tests**
* Expanded coverage to include activation code presence/absence and
combined scenarios with fresh install and hidden states, ensuring
accurate visibility logic.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-30 17:08:16 -04:00
github-actions[bot]
84f4a7221d chore(main): release 4.25.1 (#1732)
🤖 I have created a release *beep* *boop*
---


## [4.25.1](https://github.com/unraid/api/compare/v4.25.0...v4.25.1)
(2025-09-30)


### Bug Fixes

* add cache busting to web component extractor
([#1731](https://github.com/unraid/api/issues/1731))
([0d165a6](0d165a6087))
* Connect won't appear within Apps - Previous Apps
([#1727](https://github.com/unraid/api/issues/1727))
([d73953f](d73953f8ff))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-30 13:01:57 -04:00
Eli Bosley
0d165a6087 fix: add cache busting to web component extractor (#1731)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- Bug Fixes
- Ensures UI assets use content-hashed filenames so browsers load the
latest scripts and styles after updates, reducing stale-cache issues.
- Keeps scripts and their related styles in sync for consistent
rendering and fewer cache-related glitches.
- Ignores non-asset manifest entries to prevent accidental inclusion of
invalid items and ensure correct asset loading.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-30 12:27:48 -04:00
github-actions[bot]
f4f3e3c44b chore(main): release 4.25.0 (#1725)
🤖 I have created a release *beep* *boop*
---


## [4.25.0](https://github.com/unraid/api/compare/v4.24.1...v4.25.0)
(2025-09-26)


### Features

* add Tailwind scoping plugin and integrate into Vite config
([#1722](https://github.com/unraid/api/issues/1722))
([b7afaf4](b7afaf4632))
* notification filter controls pill buttons
([#1718](https://github.com/unraid/api/issues/1718))
([661865f](661865f976))


### Bug Fixes

* enable auth guard for nested fields - thanks
[@ingel81](https://github.com/ingel81)
([7bdeca8](7bdeca8338))
* enhance user context validation in auth module
([#1726](https://github.com/unraid/api/issues/1726))
([cd5eff1](cd5eff11bc))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-26 12:58:08 -04:00
Eli Bosley
661865f976 feat: notification filter controls pill buttons (#1718)
## Summary
- replace the notification type dropdown with inline pill buttons for
quick filtering
- expose accessible role and pressed state on the new filter buttons

## Testing
- pnpm --filter @unraid/web lint

------
https://chatgpt.com/codex/tasks/task_e_68d184ad60348323b60c9b8e19146025

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Notifications sidebar now uses a pill-style button group instead of a
dropdown for filtering by importance/type.
  * One-tap switching applies filters instantly for faster navigation.
* Active filters are more visible, improving clarity and accessibility.
* No changes to existing workflows or public behavior; settings and
filtering semantics remain unchanged.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-26 10:15:27 -04:00
Eli Bosley
b7afaf4632 feat: add Tailwind scoping plugin and integrate into Vite config (#1722)
- Introduced a new PostCSS plugin, `scopeTailwindToUnapi`, to scope
Tailwind CSS classes to specific elements.
- Updated Vite configuration to include the new PostCSS plugin for CSS
processing.
- Enhanced theme management in the theme store to apply scoped classes
and dynamic CSS variables to multiple targets, including the document
root and elements with the `.unapi` class.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Scoped styling for embedded (.unapi) contexts and a PostCSS plugin to
automate it.
* Theme refresh after mount to propagate CSS variables to embedded
roots.
  * Exposed idempotent restart action for the Unraid API when offline.

* **Bug Fixes**
* Consistent dark mode and theme variable application across main and
embedded views.
  * Interactive element and SSO styles now apply in embedded contexts.
* Simplified changelog iframe with a reliable fallback renderer;
improved logs styling scope.

* **Tests**
* New unit tests for the scoping plugin, changelog iframe, and related
components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-26 09:56:27 -04:00
github-actions[bot]
b3ca40c639 chore(main): release 4.24.1 (#1721)
🤖 I have created a release *beep* *boop*
---


## [4.24.1](https://github.com/unraid/api/compare/v4.24.0...v4.24.1)
(2025-09-23)


### Bug Fixes

* cleanup leftover removed packages on upgrade
([#1719](https://github.com/unraid/api/issues/1719))
([9972a5f](9972a5f178))
* enhance version comparison logic in installation script
([d9c561b](d9c561bfeb))
* issue with incorrect permissions on viewer / other roles
([378cdb7](378cdb7f10))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-23 16:06:18 -04:00
github-actions[bot]
ed9a5c5ff9 chore(main): release 4.24.0 (#1717)
🤖 I have created a release *beep* *boop*
---


## [4.24.0](https://github.com/unraid/api/compare/v4.23.1...v4.24.0)
(2025-09-18)


### Features

* improve dom content loading by being more efficient about component
mounting ([#1716](https://github.com/unraid/api/issues/1716))
([d8b166e](d8b166e4b6))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-18 12:59:58 -04:00
Eli Bosley
d8b166e4b6 feat: improve dom content loading by being more efficient about component mounting (#1716)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- New Features
  - Faster, more scalable component auto-mounting via batch processing.
- More robust prop parsing (handles JSON vs. strings and HTML entities).
  - Improved locale data initialization during setup.

- Bug Fixes
- Prevents duplicate mounts and improves handling of empty/irrelevant
attributes.

- Refactor
  - Consolidated mounting flow and removed legacy runtime debug globals.

- Tests
  - Removed outdated tests tied to previous global exposures.

- Chores
- Updated type declarations; global client is now optional for improved
flexibility.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-18 12:50:24 -04:00
github-actions[bot]
8b862ecef5 chore(main): release 4.23.1 (#1715)
🤖 I have created a release *beep* *boop*
---


## [4.23.1](https://github.com/unraid/api/compare/v4.23.0...v4.23.1)
(2025-09-17)


### Bug Fixes

* cleanup ini parser logic with better fallbacks
([#1713](https://github.com/unraid/api/issues/1713))
([1691362](16913627de))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-17 14:46:58 -04:00
github-actions[bot]
810be7a679 chore(main): release 4.23.0 (#1707)
🤖 I have created a release *beep* *boop*
---


## [4.23.0](https://github.com/unraid/api/compare/v4.22.2...v4.23.0)
(2025-09-16)


### Features

* add unraid api status manager
([#1708](https://github.com/unraid/api/issues/1708))
([1d9ce0a](1d9ce0aa3d))


### Bug Fixes

* **logging:** remove colorized logs
([#1705](https://github.com/unraid/api/issues/1705))
([1d2c670](1d2c6701ce))
* no sizeRootFs unless queried
([#1710](https://github.com/unraid/api/issues/1710))
([9714b21](9714b21c5c))
* use virtual-modal-container
([#1709](https://github.com/unraid/api/issues/1709))
([44b4d77](44b4d77d80))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-16 13:18:09 -04:00
Eli Bosley
1d9ce0aa3d feat: add unraid api status manager (#1708)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- New Features
- Added “Unraid API Status” page under Management Access to view current
API status, refresh it, and restart the API with confirmation.
- Status view shows running state, detailed output, and in-app
success/error messages after actions.

- Style
- Minor theme adjustments to border colors; no layout changes expected.

- Chores
  - Updated UI text: “Unraid API” → “Unraid API Settings” in settings.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-16 13:04:01 -04:00
Eli Bosley
9714b21c5c fix: no sizeRootFs unless queried (#1710)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
  - sizeRootFs now reported in bytes as BigInt.
- Container listings include size only when requested; caching
distinguishes size vs no-size.
- New Docker-related fields: per-container update statuses,
rebuild/update indicators, spinning state, and a mutation to refresh
docker digests.
- **Tests**
- Added unit tests for GraphQL field inspection and container size/cache
behavior.
- **Chores**
  - Version bumped to 4.22.2.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-16 12:01:49 -04:00
github-actions[bot]
45d9d65c13 chore(main): release 4.22.2 (#1699)
🤖 I have created a release *beep* *boop*
---


## [4.22.2](https://github.com/unraid/api/compare/v4.22.1...v4.22.2)
(2025-09-15)


### Bug Fixes

* **deps:** pin dependency conventional-changelog-conventionalcommits to
9.1.0 ([#1697](https://github.com/unraid/api/issues/1697))
([9a86c61](9a86c615da))
* **deps:** update dependency filenamify to v7
([#1703](https://github.com/unraid/api/issues/1703))
([b80988a](b80988aaab))
* **deps:** update graphqlcodegenerator monorepo (major)
([#1689](https://github.com/unraid/api/issues/1689))
([ba4a43a](ba4a43aec8))
* false positive on verify_install script being external shell
([#1704](https://github.com/unraid/api/issues/1704))
([31a255c](31a255c928))
* improve vue mount speed by 10x
([c855caa](c855caa9b2))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-15 12:26:56 -04:00
Eli Bosley
167857a323 chore: fix dev environment 2025-09-15 11:38:04 -04:00
Eli Bosley
c855caa9b2 fix: improve vue mount speed by 10x
- Refactored teleport container management to be lazily created,
improving performance by avoiding unnecessary DOM manipulations.
- Updated `useTeleport` to dynamically determine the correct teleport
target based on mounted components.
- Removed the `ensureTeleportContainer` import from various components,
streamlining the mounting process.
- Adjusted the dropdown menu component to utilize a computed property
for teleport target management.
- Enhanced the component registry to support a unified app architecture,
replacing legacy mounting functions with a more efficient approach.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Support bundles may include the GraphQL API log when present.
  * OS version data loads lazily when the header dropdown first opens.
* Many UI components now load on demand via a unified mounting approach.

* **Bug Fixes**
  * Dropdowns and modals consistently stack above other UI elements.
  * Server status layout fixes improve small-screen alignment.

* **Breaking Changes**
* Teleport/mounting APIs and public teleport helper were
consolidated/removed; integrations may need update.

* **Tests**
* Extensive new unit tests added for mounting, teleport, modals, and
REST log handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-09-15 11:24:31 -04:00
renovate[bot]
ba4a43aec8 fix(deps): update graphqlcodegenerator monorepo (major) (#1689) 2025-09-15 11:24:24 -04:00
github-actions[bot]
c4ca761dfc chore(main): release 4.22.1 (#1698)
🤖 I have created a release *beep* *boop*
---


## [4.22.1](https://github.com/unraid/api/compare/v4.22.0...v4.22.1)
(2025-09-12)


### Bug Fixes

* set input color in SSO field rather than inside of the main.css
([01d353f](01d353fa08))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-12 15:41:12 -04:00
Eli Bosley
4a07953457 refactor: move global input text color for SSO button to SsoButton component 2025-09-12 15:33:28 -04:00
github-actions[bot]
0b20e3ea9f chore(main): release 4.22.0 (#1692)
🤖 I have created a release *beep* *boop*
---


## [4.22.0](https://github.com/unraid/api/compare/v4.21.0...v4.22.0)
(2025-09-12)


### Features

* improved update ui
([#1691](https://github.com/unraid/api/issues/1691))
([a59b363](a59b363ebc))


### Bug Fixes

* **deps:** update dependency camelcase-keys to v10
([#1687](https://github.com/unraid/api/issues/1687))
([95faeaa](95faeaa2f3))
* **deps:** update dependency p-retry to v7
([#1608](https://github.com/unraid/api/issues/1608))
([c782cf0](c782cf0e87))
* **deps:** update dependency uuid to v13
([#1688](https://github.com/unraid/api/issues/1688))
([2fef10c](2fef10c94a))
* **deps:** update dependency vue-sonner to v2
([#1475](https://github.com/unraid/api/issues/1475))
([f95ca9c](f95ca9c9cb))
* display settings fix for languages on less than 7.2-beta.2.3
([#1696](https://github.com/unraid/api/issues/1696))
([03dae7c](03dae7ce66))
* hide reset help option when sso is being checked
([#1695](https://github.com/unraid/api/issues/1695))
([222ced7](222ced7518))
* progressFrame white on black
([0990b89](0990b898bd))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-12 14:59:21 -04:00
Eli Bosley
222ced7518 fix: hide reset help option when sso is being checked (#1695)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- Enhancements
- Improved SSO sign-in experience on the login screen. The “Forgot your
password?” link is now automatically hidden while SSO status is being
checked or a provider is loading, and restored once ready. This reduces
confusion and visual flicker during authentication, ensuring a cleaner,
more stable layout throughout the process.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-12 13:32:37 -04:00
Eli Bosley
0990b898bd fix: progressFrame white on black 2025-09-12 08:50:47 -04:00
renovate[bot]
f95ca9c9cb fix(deps): update dependency vue-sonner to v2 (#1475)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [vue-sonner](https://redirect.github.com/xiaoluoboding/vue-sonner) |
[`1.3.2` ->
`2.0.8`](https://renovatebot.com/diffs/npm/vue-sonner/1.3.2/2.0.8) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-sonner/2.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-sonner/1.3.2/2.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>xiaoluoboding/vue-sonner (vue-sonner)</summary>

###
[`v2.0.8`](https://redirect.github.com/xiaoluoboding/vue-sonner/blob/HEAD/CHANGELOG.md#208-2025-08-18)

[Compare
Source](https://redirect.github.com/xiaoluoboding/vue-sonner/compare/v2.0.7...v2.0.8)

##### Bug Fixes

- fixed the type for nuxt 4
([e60b0bd](e60b0bd56f))

###
[`v2.0.7`](https://redirect.github.com/xiaoluoboding/vue-sonner/blob/HEAD/CHANGELOG.md#207-2025-08-17)

[Compare
Source](https://redirect.github.com/xiaoluoboding/vue-sonner/compare/v2.0.2...v2.0.7)

##### Bug Fixes

- custom component not trigger on dismiss function
([d5a69c6](d5a69c6ae1))
- fixed the build error
([5ec4bca](5ec4bca24f))
- improve expanded state management in Toaster component
([5acca24](5acca24250))
- postcss-calc will change the style
([f0d6add](f0d6add116))

##### Features

- add a new example
([cb08aef](cb08aef616))
- add example for close all
([70ef6e2](70ef6e2b7f))

###
[`v2.0.2`](https://redirect.github.com/xiaoluoboding/vue-sonner/blob/HEAD/CHANGELOG.md#202-2025-07-17)

[Compare
Source](https://redirect.github.com/xiaoluoboding/vue-sonner/compare/v2.0.1...v2.0.2)

###
[`v2.0.1`](https://redirect.github.com/xiaoluoboding/vue-sonner/blob/HEAD/CHANGELOG.md#201-2025-06-23)

[Compare
Source](https://redirect.github.com/xiaoluoboding/vue-sonner/compare/v2.0.0...v2.0.1)

##### Bug Fixes

- fixed multiple position bug
([9b07801](9b07801f5f))
- **theme:** make theme='system' reactive with watchEffect
([3b57e90](3b57e90498))
- **tsconfig:** add tsconfig.includes files
([e0d469b](e0d469b84e))

##### Features

- add do not generate css logic
([61458fb](61458fb7aa))

###
[`v2.0.0`](https://redirect.github.com/xiaoluoboding/vue-sonner/blob/HEAD/CHANGELOG.md#200-2025-05-21)

[Compare
Source](https://redirect.github.com/xiaoluoboding/vue-sonner/compare/v1.3.2...v2.0.0)

##### Bug Fixes

- add packages path
([35490b3](35490b3fb5))
- add packages path
([c7424e9](c7424e9070))
- fixed for nuxt module
([261eaf0](261eaf0be2))
- fixed for nuxt module
([29751cf](29751cfd5b))
- format
([9033f2b](9033f2b935))

####
[1.3.2](https://redirect.github.com/xiaoluoboding/vue-sonner/compare/v1.3.0...v1.3.2)
(2025-04-12)

##### Bug Fixes

- improve CSS insertion logic to handle document loading state
([6b22d24](6b22d2458b))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/unraid/api).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNy4yIiwidXBkYXRlZEluVmVyIjoiNDEuNzEuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2025-09-11 22:14:46 -04:00
Eli Bosley
a59b363ebc feat: improved update ui (#1691)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Global awaitable confirmation modal for notification actions.
  * “Ignore this release” toggle that persists to the server when used.
* New test pages and standalone test controls for the update modal and
theme switching.

* **Refactor**
* Update modal rebuilt with a responsive layout, unified “Update
Available” title, revised action logic, and centralized modal plumbing.

* **Style**
* OS Update highlight block, improved spacing, refreshed iconography,
and tooltips clarifying actions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-11 21:35:13 -04:00
Eli Bosley
1c73a4af42 chore: rename .ce.vue files to .standalone.vue (#1690)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- Documentation
- Updated contributor guide to use “standalone” naming for web
components.
- Refactor
- Migrated app and component references from legacy variants to
standalone components.
- Unified component registry and updated global component typings to
standalone names.
- Tests
- Updated test suites to target standalone components; no behavior
changes.

No user-facing changes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-10 16:36:11 -04:00
github-actions[bot]
88a924c84f chore(main): release 4.21.0 (#1684)
🤖 I have created a release *beep* *boop*
---


## [4.21.0](https://github.com/unraid/api/compare/v4.20.4...v4.21.0)
(2025-09-10)


### Features

* add zsh shell detection to install script
([#1539](https://github.com/unraid/api/issues/1539))
([50ea2a3](50ea2a3ffb))
* **api:** determine if docker container has update
([#1582](https://github.com/unraid/api/issues/1582))
([e57d81e](e57d81e073))


### Bug Fixes

* white on white login text
([ae4d3ec](ae4d3ecbc4))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-10 15:14:10 -04:00
Eli Bosley
ae4d3ecbc4 fix: white on white login text 2025-09-10 14:59:10 -04:00
github-actions[bot]
abc22bdb87 chore(main): release 4.20.4 (#1681)
🤖 I have created a release *beep* *boop*
---


## [4.20.4](https://github.com/unraid/api/compare/v4.20.3...v4.20.4)
(2025-09-09)


### Bug Fixes

* staging PR plugin fixes + UI issues on 7.2 beta
([b79b44e](b79b44e95c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-09 10:53:45 -04:00
Eli Bosley
ca22285a26 chore: fix invalid user profile test (#1678)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* New Features
  * No user-facing changes in this release.
* Chores
* Streamlined release automation to run after successful build and test
stages on main, improving reliability of release tagging and downstream
usage.
  * Simplified job dependencies for related build pipelines.
* Tests
* Updated User Profile tests to align with revised DOM structure for the
description area; assertions unchanged and no functional impact for
users.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-09 10:29:47 -04:00
github-actions[bot]
838be2c52e chore(main): release 4.20.3 (#1677)
🤖 I have created a release *beep* *boop*
---


## [4.20.3](https://github.com/unraid/api/compare/v4.20.2...v4.20.3)
(2025-09-09)


### Bug Fixes

* header background color issues fixed on 7.2 - thanks Nick!
([73c1100](73c1100d0b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-09 09:31:14 -04:00
Eli Bosley
73c1100d0b fix: header background color issues fixed on 7.2 - thanks Nick! 2025-09-09 09:29:37 -04:00
github-actions[bot]
434e331384 chore(main): release 4.20.2 (#1676)
🤖 I have created a release *beep* *boop*
---


## [4.20.2](https://github.com/unraid/api/compare/v4.20.1...v4.20.2)
(2025-09-09)


### Bug Fixes

* trigger deployment
([a27453f](a27453fda8))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-09 08:46:54 -04:00
github-actions[bot]
6c2c51ae1d chore(main): release 4.20.1 (#1674)
🤖 I have created a release *beep* *boop*
---


## [4.20.1](https://github.com/unraid/api/compare/v4.20.0...v4.20.1)
(2025-09-09)


### Bug Fixes

* adjust header styles to fix flashing and width issues - thanks ZarZ
([4759b3d](4759b3d0b3))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-09 08:28:56 -04:00
Eli Bosley
d10c12035e chore: Revert "fix(deps): update all non-major dependencies" (#1675)
Reverts unraid/api#1633
2025-09-09 08:25:30 -04:00
renovate[bot]
5dd6f42550 fix(deps): update all non-major dependencies (#1633)
This PR contains the following updates:

| Package | Change | Age | Confidence | Type | Update |
|---|---|---|---|---|---|
| [@eslint/js](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint/tree/HEAD/packages/js))
| [`9.34.0` ->
`9.35.0`](https://renovatebot.com/diffs/npm/@eslint%2fjs/9.34.0/9.35.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@eslint%2fjs/9.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@eslint%2fjs/9.34.0/9.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@graphql-codegen/typescript-resolvers](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/resolvers))
| [`4.5.1` ->
`4.5.2`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-resolvers/4.5.1/4.5.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript-resolvers/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript-resolvers/4.5.1/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@ianvs/prettier-plugin-sort-imports](https://redirect.github.com/ianvs/prettier-plugin-sort-imports)
| [`4.6.3` ->
`4.7.0`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/4.6.3/4.7.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@ianvs%2fprettier-plugin-sort-imports/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@ianvs%2fprettier-plugin-sort-imports/4.6.3/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [@manypkg/cli](https://redirect.github.com/Thinkmill/manypkg)
([source](https://redirect.github.com/Thinkmill/manypkg/tree/HEAD/packages/cli))
| [`0.25.0` ->
`0.25.1`](https://renovatebot.com/diffs/npm/@manypkg%2fcli/0.25.0/0.25.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@manypkg%2fcli/0.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@manypkg%2fcli/0.25.0/0.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [@nuxt/ui](https://ui.nuxt.com)
([source](https://redirect.github.com/nuxt/ui)) | [`4.0.0-alpha.0` ->
`4.0.0-alpha.1`](https://renovatebot.com/diffs/npm/@nuxt%2fui/4.0.0-alpha.0/4.0.0-alpha.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxt%2fui/4.0.0-alpha.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxt%2fui/4.0.0-alpha.0/4.0.0-alpha.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [@reduxjs/toolkit](https://redux-toolkit.js.org)
([source](https://redirect.github.com/reduxjs/redux-toolkit)) | [`2.8.2`
->
`2.9.0`](https://renovatebot.com/diffs/npm/@reduxjs%2ftoolkit/2.8.2/2.9.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@reduxjs%2ftoolkit/2.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@reduxjs%2ftoolkit/2.8.2/2.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [@rollup/rollup-linux-x64-gnu](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) | [`4.49.0` ->
`4.50.1`](https://renovatebot.com/diffs/npm/@rollup%2frollup-linux-x64-gnu/4.49.0/4.50.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@rollup%2frollup-linux-x64-gnu/4.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@rollup%2frollup-linux-x64-gnu/4.49.0/4.50.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| optionalDependencies | minor |
|
[@storybook/addon-docs](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/docs)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/docs))
| [`9.1.3` ->
`9.1.5`](https://renovatebot.com/diffs/npm/@storybook%2faddon-docs/9.1.3/9.1.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-docs/9.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-docs/9.1.3/9.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@storybook/addon-links](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/links)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/links))
| [`9.1.3` ->
`9.1.5`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/9.1.3/9.1.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-links/9.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-links/9.1.3/9.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@storybook/builder-vite](https://redirect.github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/builders/builder-vite))
| [`9.1.3` ->
`9.1.5`](https://renovatebot.com/diffs/npm/@storybook%2fbuilder-vite/9.1.3/9.1.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fbuilder-vite/9.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fbuilder-vite/9.1.3/9.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@storybook/vue3-vite](https://redirect.github.com/storybookjs/storybook/tree/next/code/frameworks/vue3-vite)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/frameworks/vue3-vite))
| [`9.1.3` ->
`9.1.5`](https://renovatebot.com/diffs/npm/@storybook%2fvue3-vite/9.1.3/9.1.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fvue3-vite/9.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fvue3-vite/9.1.3/9.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [@tailwindcss/cli](https://tailwindcss.com)
([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli))
| [`4.1.12` ->
`4.1.13`](https://renovatebot.com/diffs/npm/@tailwindcss%2fcli/4.1.12/4.1.13)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fcli/4.1.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fcli/4.1.12/4.1.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [@tailwindcss/vite](https://tailwindcss.com)
([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite))
| [`4.1.12` ->
`4.1.13`](https://renovatebot.com/diffs/npm/@tailwindcss%2fvite/4.1.12/4.1.13)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fvite/4.1.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fvite/4.1.12/4.1.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`22.18.0` ->
`22.18.1`](https://renovatebot.com/diffs/npm/@types%2fnode/22.18.0/22.18.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.18.0/22.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@types/semver](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/semver)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver))
| [`7.7.0` ->
`7.7.1`](https://renovatebot.com/diffs/npm/@types%2fsemver/7.7.0/7.7.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fsemver/7.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fsemver/7.7.0/7.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`8.41.0` ->
`8.43.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.41.0/8.43.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/8.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/8.41.0/8.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@vueuse/components](https://redirect.github.com/vueuse/vueuse/tree/main/packages/components#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/components))
| [`13.8.0` ->
`13.9.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcomponents/13.8.0/13.9.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcomponents/13.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcomponents/13.8.0/13.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [@vueuse/core](https://redirect.github.com/vueuse/vueuse)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core))
| [`13.8.0` ->
`13.9.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/13.8.0/13.9.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcore/13.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcore/13.8.0/13.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [@vueuse/core](https://redirect.github.com/vueuse/vueuse)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core))
| [`13.8.0` ->
`13.9.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/13.8.0/13.9.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcore/13.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcore/13.8.0/13.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
|
[@vueuse/integrations](https://redirect.github.com/vueuse/vueuse/tree/main/packages/integrations#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/integrations))
| [`13.8.0` ->
`13.9.0`](https://renovatebot.com/diffs/npm/@vueuse%2fintegrations/13.8.0/13.9.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fintegrations/13.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fintegrations/13.8.0/13.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [chalk](https://redirect.github.com/chalk/chalk) | [`5.6.0` ->
`5.6.2`](https://renovatebot.com/diffs/npm/chalk/5.6.0/5.6.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/chalk/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/chalk/5.6.0/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [dayjs](https://day.js.org)
([source](https://redirect.github.com/iamkun/dayjs)) | [`1.11.14` ->
`1.11.18`](https://renovatebot.com/diffs/npm/dayjs/1.11.14/1.11.18) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/dayjs/1.11.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/dayjs/1.11.14/1.11.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [dockerode](https://redirect.github.com/apocas/dockerode) | [`4.0.7`
-> `4.0.8`](https://renovatebot.com/diffs/npm/dockerode/4.0.7/4.0.8) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/dockerode/4.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/dockerode/4.0.7/4.0.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [dotenv](https://redirect.github.com/motdotla/dotenv) | [`17.2.1` ->
`17.2.2`](https://renovatebot.com/diffs/npm/dotenv/17.2.1/17.2.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/dotenv/17.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/dotenv/17.2.1/17.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [eslint](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint)) | [`9.34.0` ->
`9.35.0`](https://renovatebot.com/diffs/npm/eslint/9.34.0/9.35.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/9.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/9.34.0/9.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[eslint-plugin-storybook](https://redirect.github.com/storybookjs/storybook/code/lib/eslint-plugin#readme)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/lib/eslint-plugin))
| [`9.1.3` ->
`9.1.5`](https://renovatebot.com/diffs/npm/eslint-plugin-storybook/9.1.3/9.1.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-storybook/9.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-storybook/9.1.3/9.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [fast-check](https://fast-check.dev/)
([source](https://redirect.github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check))
| [`4.2.0` ->
`4.3.0`](https://renovatebot.com/diffs/npm/fast-check/4.2.0/4.3.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/fast-check/4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fast-check/4.2.0/4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [fastify](https://fastify.dev/)
([source](https://redirect.github.com/fastify/fastify)) | [`5.5.0` ->
`5.6.0`](https://renovatebot.com/diffs/npm/fastify/5.5.0/5.6.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/fastify/5.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fastify/5.5.0/5.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [got](https://redirect.github.com/sindresorhus/got) | [`14.4.7` ->
`14.4.8`](https://renovatebot.com/diffs/npm/got/14.4.7/14.4.8) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/got/14.4.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/got/14.4.7/14.4.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| peerDependencies | patch |
| [got](https://redirect.github.com/sindresorhus/got) | [`14.4.7` ->
`14.4.8`](https://renovatebot.com/diffs/npm/got/14.4.7/14.4.8) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/got/14.4.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/got/14.4.7/14.4.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [got](https://redirect.github.com/sindresorhus/got) | [`14.4.7` ->
`14.4.8`](https://renovatebot.com/diffs/npm/got/14.4.7/14.4.8) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/got/14.4.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/got/14.4.7/14.4.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [jose](https://redirect.github.com/panva/jose) | [`6.0.13` ->
`6.1.0`](https://renovatebot.com/diffs/npm/jose/6.0.13/6.1.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jose/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jose/6.0.13/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| peerDependencies | minor |
| [jose](https://redirect.github.com/panva/jose) | [`6.0.13` ->
`6.1.0`](https://renovatebot.com/diffs/npm/jose/6.0.13/6.1.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jose/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jose/6.0.13/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [jose](https://redirect.github.com/panva/jose) | [`6.0.13` ->
`6.1.0`](https://renovatebot.com/diffs/npm/jose/6.0.13/6.1.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jose/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jose/6.0.13/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [lint-staged](https://redirect.github.com/lint-staged/lint-staged) |
[`16.1.5` ->
`16.1.6`](https://renovatebot.com/diffs/npm/lint-staged/16.1.5/16.1.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/lint-staged/16.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lint-staged/16.1.5/16.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [lucide-vue-next](https://lucide.dev)
([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next))
| [`0.542.0` ->
`0.543.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.542.0/0.543.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-vue-next/0.543.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-vue-next/0.542.0/0.543.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [nest-commander](https://nest-commander.jaymcdoniel.dev)
([source](https://redirect.github.com/jmcdo29/nest-commander/tree/HEAD/pacakges/nest-commander))
| [`3.19.0` ->
`3.19.1`](https://renovatebot.com/diffs/npm/nest-commander/3.19.0/3.19.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/nest-commander/3.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nest-commander/3.19.0/3.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [node](https://nodejs.org)
([source](https://redirect.github.com/nodejs/node)) | `22.18.0` ->
`22.19.0` |
[![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v22.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v22.18.0/v22.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |
| [node](https://redirect.github.com/actions/node-versions) | `22.18.0`
-> `22.19.0` |
[![age](https://developer.mend.io/api/mc/badges/age/github-releases/actions%2fnode-versions/22.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/actions%2fnode-versions/22.18.0/22.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| uses-with | minor |
| [node](https://redirect.github.com/nodejs/node) |
`22.18.0-bookworm-slim` -> `22.19.0-bookworm-slim` |
[![age](https://developer.mend.io/api/mc/badges/age/docker/node/22.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/node/22.18.0/22.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| final | minor |
| [openid-client](https://redirect.github.com/panva/openid-client) |
[`6.6.4` ->
`6.7.1`](https://renovatebot.com/diffs/npm/openid-client/6.6.4/6.7.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/openid-client/6.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/openid-client/6.6.4/6.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [pino](https://getpino.io)
([source](https://redirect.github.com/pinojs/pino)) | [`9.9.0` ->
`9.9.4`](https://renovatebot.com/diffs/npm/pino/9.9.0/9.9.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pino/9.9.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pino/9.9.0/9.9.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [pm2](http://pm2.keymetrics.io/)
([source](https://redirect.github.com/Unitech/pm2)) | [`6.0.8` ->
`6.0.10`](https://renovatebot.com/diffs/npm/pm2/6.0.8/6.0.10) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pm2/6.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pm2/6.0.8/6.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.15.0` ->
`10.15.1`](https://renovatebot.com/diffs/npm/pnpm/10.15.0/10.15.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.15.0/10.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| packageManager | patch |
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.15.0` ->
`10.15.1`](https://renovatebot.com/diffs/npm/pnpm/10.15.0/10.15.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.15.0/10.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| engines | patch |
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
`10.15.0` -> `10.15.1` |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.15.0/10.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| uses-with | patch |
|
[rollup-plugin-node-externals](https://redirect.github.com/Septh/rollup-plugin-node-externals)
| [`8.1.0` ->
`8.1.1`](https://renovatebot.com/diffs/npm/rollup-plugin-node-externals/8.1.0/8.1.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/rollup-plugin-node-externals/8.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup-plugin-node-externals/8.1.0/8.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [storybook](https://storybook.js.org)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/core))
| [`9.1.3` ->
`9.1.5`](https://renovatebot.com/diffs/npm/storybook/9.1.3/9.1.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/storybook/9.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/storybook/9.1.3/9.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [tailwindcss](https://tailwindcss.com)
([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss))
| [`4.1.12` ->
`4.1.13`](https://renovatebot.com/diffs/npm/tailwindcss/4.1.12/4.1.13) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.1.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/4.1.12/4.1.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [tailwindcss](https://tailwindcss.com)
([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss))
| [`4.1.12` ->
`4.1.13`](https://renovatebot.com/diffs/npm/tailwindcss/4.1.12/4.1.13) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.1.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/4.1.12/4.1.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| peerDependencies | patch |
| [terser](https://terser.org)
([source](https://redirect.github.com/terser/terser)) | [`5.43.1` ->
`5.44.0`](https://renovatebot.com/diffs/npm/terser/5.43.1/5.44.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/terser/5.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/terser/5.43.1/5.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[tw-animate-css](https://redirect.github.com/Wombosvideo/tw-animate-css)
| [`1.3.7` ->
`1.3.8`](https://renovatebot.com/diffs/npm/tw-animate-css/1.3.7/1.3.8) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/tw-animate-css/1.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tw-animate-css/1.3.7/1.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[tw-animate-css](https://redirect.github.com/Wombosvideo/tw-animate-css)
| [`1.3.7` ->
`1.3.8`](https://renovatebot.com/diffs/npm/tw-animate-css/1.3.7/1.3.8) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/tw-animate-css/1.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tw-animate-css/1.3.7/1.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
|
[typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint))
| [`8.41.0` ->
`8.43.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.41.0/8.43.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.41.0/8.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`7.1.3` ->
`7.1.5`](https://renovatebot.com/diffs/npm/vite/7.1.3/7.1.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/7.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/7.1.3/7.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://redirect.github.com/vuejs/core)) | [`3.5.20` ->
`3.5.21`](https://renovatebot.com/diffs/npm/vue/3.5.20/3.5.21) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.5.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.5.20/3.5.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://redirect.github.com/vuejs/core)) | [`3.5.20` ->
`3.5.21`](https://renovatebot.com/diffs/npm/vue/3.5.20/3.5.21) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.5.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.5.20/3.5.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| peerDependencies | patch |
|
[vue-i18n](https://redirect.github.com/intlify/vue-i18n/tree/master/packages/vue-i18n#readme)
([source](https://redirect.github.com/intlify/vue-i18n/tree/HEAD/packages/vue-i18n))
| [`11.1.11` ->
`11.1.12`](https://renovatebot.com/diffs/npm/vue-i18n/11.1.11/11.1.12) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-i18n/11.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-i18n/11.1.11/11.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [vuetify](https://vuetifyjs.com)
([source](https://redirect.github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify))
| [`3.9.6` ->
`3.9.7`](https://renovatebot.com/diffs/npm/vuetify/3.9.6/3.9.7) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vuetify/3.9.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vuetify/3.9.6/3.9.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [wrangler](https://redirect.github.com/cloudflare/workers-sdk)
([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler))
| [`4.33.0` ->
`4.34.0`](https://renovatebot.com/diffs/npm/wrangler/4.33.0/4.34.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/wrangler/4.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/wrangler/4.33.0/4.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |

---

### Release Notes

<details>
<summary>eslint/eslint (@&#8203;eslint/js)</summary>

###
[`v9.35.0`](https://redirect.github.com/eslint/eslint/compare/v9.34.0...af2a0870fdc646091d027516601888923e5bc202)

[Compare
Source](https://redirect.github.com/eslint/eslint/compare/v9.34.0...v9.35.0)

</details>

<details>
<summary>dotansimha/graphql-code-generator
(@&#8203;graphql-codegen/typescript-resolvers)</summary>

###
[`v4.5.2`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/typescript/resolvers/CHANGELOG.md#452)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/typescript-resolvers@4.5.1...@graphql-codegen/typescript-resolvers@4.5.2)

##### Patch Changes

-
[#&#8203;10419](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10419)
[`2fc3869`](2fc3869de2)
Thanks
[@&#8203;chdanielmueller](https://redirect.github.com/chdanielmueller)!
- Fix enum resolver for partially mapped enumValues

</details>

<details>
<summary>ianvs/prettier-plugin-sort-imports
(@&#8203;ianvs/prettier-plugin-sort-imports)</summary>

###
[`v4.7.0`](https://redirect.github.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.7.0)

[Compare
Source](https://redirect.github.com/ianvs/prettier-plugin-sort-imports/compare/v4.6.3...v4.7.0)

#### What's Changed

This project began as a fork because I wanted a plugin that would not
move side-effect imports around and mess with my CSS cascade. So its
first and most distinguishing feature is that side-effect imports do not
move, and other imports are not sorted across them.

This works fine in most cases, but some people have side-effect imports
that they know *can* be sorted safely. For those, there is now an
"escape hatch" option named `importOrderSafeSideEffects`. It is an array
of glob pattern strings (similar to `importOrder`) which, when they
match against a side-effect import, allow that import to be sorted as if
it were a standard import.

Suggestions for safe use:

- Use `^` at the start of your pattern and `$` at the end, to avoid
accidentally matching part of an import name. For example,
`"^server-only$"`, to avoid matching against `import "not-server-only"`.
- Use extreme caution if matching against relative files or CSS files.
If you decide to sort CSS imports and a file ever imports more than one
CSS file, your cascade may change.
- You can still use `// prettier-ignore` to stop sorting a particular
import that would otherwise be sorted.

Feedback on this feature is welcome.

##### Features

- Add `importOrderSafeSideEffects` option by
[@&#8203;IanVS](https://redirect.github.com/IanVS) in
[IanVS#240](https://redirect.github.com/IanVS/prettier-plugin-sort-imports/pull/240)

##### Internal

- Clean up options & remove explicit function types by
[@&#8203;IanVS](https://redirect.github.com/IanVS) in
[IanVS#239](https://redirect.github.com/IanVS/prettier-plugin-sort-imports/pull/239)

**Full Changelog**:
<https://github.com/IanVS/prettier-plugin-sort-imports/compare/v4.6.3...v4.7.0>

</details>

<details>
<summary>Thinkmill/manypkg (@&#8203;manypkg/cli)</summary>

###
[`v0.25.1`](https://redirect.github.com/Thinkmill/manypkg/blob/HEAD/packages/cli/CHANGELOG.md#0251)

[Compare
Source](https://redirect.github.com/Thinkmill/manypkg/compare/@manypkg/cli@0.25.0...@manypkg/cli@0.25.1)

##### Patch Changes

- [#&#8203;260](https://redirect.github.com/Thinkmill/manypkg/pull/260)
[`5854938`](585493847a)
Thanks [@&#8203;jasekiw](https://redirect.github.com/jasekiw)! - Keep
detected line endings flavor of `package.json` files on Windows when
updating those files

</details>

<details>
<summary>nuxt/ui (@&#8203;nuxt/ui)</summary>

###
[`v4.0.0-alpha.1`](https://redirect.github.com/nuxt/ui/blob/HEAD/CHANGELOG.md#400-alpha1-2025-09-01)

[Compare
Source](https://redirect.github.com/nuxt/ui/compare/v4.0.0-alpha.0...v4.0.0-alpha.1)

##### ⚠ BREAKING CHANGES

- **components:** rename `nullify` modifier to `nullable` and add
`optional`
([#&#8203;4838](https://redirect.github.com/nuxt/ui/issues/4838))
- **module:** update compatibility to nuxt 4
- **PageAccordion:** remove in favor of `Accordion`
([#&#8203;4734](https://redirect.github.com/nuxt/ui/issues/4734))
- **Marquee:** rename from `PageMarquee`
([#&#8203;4741](https://redirect.github.com/nuxt/ui/issues/4741))
- **FieldGroup:** rename from `ButtonGroup`
([#&#8203;4596](https://redirect.github.com/nuxt/ui/issues/4596))
- **components:** upgrade `ai-sdk` to v5
([#&#8203;4698](https://redirect.github.com/nuxt/ui/issues/4698))

##### Features

- **components:** rename `nullify` modifier to `nullable` and add
`optional`
([#&#8203;4838](https://redirect.github.com/nuxt/ui/issues/4838))
([83b0306](83b0306a30))
- **components:** upgrade `ai-sdk` to v5
([#&#8203;4698](https://redirect.github.com/nuxt/ui/issues/4698))
([de7822f](de7822f6a1))
- **FieldGroup:** rename from `ButtonGroup`
([#&#8203;4596](https://redirect.github.com/nuxt/ui/issues/4596))
([a0963eb](a0963eba82))
- **Icon:** allow passing a component instead of a name
([#&#8203;4766](https://redirect.github.com/nuxt/ui/issues/4766))
([61b603f](61b603fff4))
- import `@nuxt/ui-pro` components
([#&#8203;4675](https://redirect.github.com/nuxt/ui/issues/4675))
([5cb65cf](5cb65cfbd0))
- **Marquee:** rename from `PageMarquee`
([#&#8203;4741](https://redirect.github.com/nuxt/ui/issues/4741))
([b6edce2](b6edce2662))
- **module:** update compatibility to nuxt 4
([2aca598](2aca598792))
- **PageAccordion:** remove in favor of `Accordion`
([#&#8203;4734](https://redirect.github.com/nuxt/ui/issues/4734))
([f70a3ff](f70a3ff13f))

##### Bug Fixes

- **AuthForm:** use `error` from form field
([#&#8203;4738](https://redirect.github.com/nuxt/ui/issues/4738))
([00dfb6b](00dfb6b586))
- **BlogPost:** ensure date slot renders
([#&#8203;4743](https://redirect.github.com/nuxt/ui/issues/4743))
([4514880](4514880902))
- **ChangelogVersion/ChangelogVersions:** handle RTL mode
([#&#8203;4777](https://redirect.github.com/nuxt/ui/issues/4777))
([f91c408](f91c4081e5))
- **ContentSearch/DashboardSearch:** make `ui.modal` work
([946c2ec](946c2ec887))
- **module:** add `[@source](https://redirect.github.com/source)` on
components
([a16465f](a16465f3da)),
closes [#&#8203;4773](https://redirect.github.com/nuxt/ui/issues/4773)
- **PageCard:** improve keyboard accessibility
([#&#8203;4733](https://redirect.github.com/nuxt/ui/issues/4733))
([3029568](3029568465))
- **ProseImg:** ensure unique motion layout id for images
([#&#8203;4720](https://redirect.github.com/nuxt/ui/issues/4720))
([9480a0b](9480a0baa4))
- **unplugin:** handle components overrides in subdirectories
([#&#8203;4781](https://redirect.github.com/nuxt/ui/issues/4781))
([69ee75e](69ee75e5b2))

</details>

<details>
<summary>reduxjs/redux-toolkit (@&#8203;reduxjs/toolkit)</summary>

###
[`v2.9.0`](https://redirect.github.com/reduxjs/redux-toolkit/releases/tag/v2.9.0)

[Compare
Source](https://redirect.github.com/reduxjs/redux-toolkit/compare/v2.8.2...v2.9.0)

This **feature release** rewrites RTK Query's internal subscription and
polling systems and the `useStableQueryArgs` hook for better perf, adds
automatic `AbortSignal` handling to requests still in progress when a
cache entry is removed, fixes a bug with the `transformResponse` option
for queries, adds a new `builder.addAsyncThunk` method, and fixes
assorted other issues.

#### Changelog

##### RTK Query Performance Improvements

We had reports that [RTK Query could get very slow when there were
thousands of subscriptions to the same cache
entry](https://redirect.github.com/reduxjs/redux-toolkit/issues/5052).
After investigation, we found that the internal polling logic was
attempting to recalculate the minimum polling time after every new
subscription was added. This was highly inefficient, as most
subscriptions don't change polling settings, and it required repeated
O(n) iteration over the growing list of subscriptions. We've rewritten
that logic to debounce the update check and ensure a max of one polling
value update per tick for the entire API instance.

Related, while working on the request abort changes, testing showed that
use of plain `Record`s to hold subscription data was inefficient because
we have to iterate keys to check size. We've rewritten the subscription
handling internals to use `Map`s instead, as well as restructuring some
additional checks around in-flight requests.

These two improvements drastically improved runtime perf for the
thousands-of-subscriptions-one-cache-entry repro, eliminating RTK
methods as visible hotspots in the perf profiles. It likely also
improves perf for general usage as well.

We've also changed the implementation of our internal
`useStableQueryArgs` hook to avoid calling `serializeQueryArgs` on its
value, which can avoid potential perf issues when a query takes a very
large object as its cache key.

> \[!NOTE]
> The internal logic switched from serializing the query arg to doing
reference checks on nested values. This means that if you are passing a
non-POJO value in a query arg, such as `useSomeQuery({a: new Set()})`,
*and* you have `refetchOnMountOrArgChange` enabled, this will now
trigger refeteches each time as the `Set` references are now considered
different based on equality instead of serialization.

##### Abort Signal Handling on Cleanup

We've had numerous requests over time for various forms of "abort
in-progress requests when the data is no longer needed / params change /
component unmounts / some expensive request is taking too long". This is
a complex topic with multiple potential use cases, and our standard
answer has been that we *don't* want to abort those requests - after
all, cache entries default to staying in memory for 1 minute after the
last subscription is removed, so RTKQ's cache can still be updated when
the request completes. That also means that it doesn't make sense to
abort a request "on unmount".

However, it does then make sense to abort an in-progress request if the
cache entry itself is removed. Given that, we've updated our cache
handling to automatically call the existing `resPromise.abort()` method
in that case, triggering the `AbortSignal` attached to the `baseQuery`.
The handling at that point depends on your app - `fetchBaseQuery` should
handle that, a custom `baseQuery` or `queryFn` would need to listen to
the `AbortSignal`.

We do have [an open issue asking for further discussions of potential
abort / cancelation use
cases](https://redirect.github.com/reduxjs/redux-toolkit/issues/2444)
and would appreciate further feedback.

##### New Options

The builder callback used in `createReducer` and
`createSlice.extraReducers` now has `builder.addAsyncThunk` available,
which allows handling specific actions from a thunk in the same way that
you could define a thunk inside `createSlice.reducers`:

```ts
        const slice = createSlice({
          name: 'counter',
          initialState: {
            loading: false,
            errored: false,
            value: 0,
          },
          reducers: {},
          extraReducers: (builder) =>
            builder.addAsyncThunk(asyncThunk, {
              pending(state) {
                state.loading = true
              },
              fulfilled(state, action) {
                state.value = action.payload
              },
              rejected(state) {
                state.errored = true
              },
              settled(state) {
                state.loading = false
              },
            }),
        })
```

`createApi` and individual endpoint definitions now accept a
`skipSchemaValidation` option with an array of schema types to skip, or
`true` to skip validation entirely (in case you want to use a schema for
its types, but the actual validation is expensive).

##### Bug Fixes

The infinite query implementation accidentally changed the query
internals to *always* run `transformResponse` if provided, including if
you were using `upsertQueryData()`, which then broke. It's been fixed to
only run on an actual query request.

The internal changes to the structure of the `state.api.provided`
structure broke our handling of `extractRehydrationInfo` - we've updated
that to handle the changed structure.

The infinite query status fields like `hasNextPage` are now a looser
type of `boolean` initially, rather than strictly `false`.

##### TS Types

We now export Immer's `WritableDraft` type to fix another non-portable
types issue.

We've added an `api.endpoints.myEndpoint.types.RawResultType` types-only
field to match the other available fields.

#### What's Changed

- Add RawResultType as a type-only property on endpoints by
[@&#8203;EskiMojo14](https://redirect.github.com/EskiMojo14) in
[#&#8203;5037](https://redirect.github.com/reduxjs/redux-toolkit/pull/5037)
- allow passing an array of specific schemas to skip by
[@&#8203;EskiMojo14](https://redirect.github.com/EskiMojo14) in
[#&#8203;5042](https://redirect.github.com/reduxjs/redux-toolkit/pull/5042)
- fix(types): re-exporting WritableDraft from immer by
[@&#8203;marinsokol5](https://redirect.github.com/marinsokol5) in
[#&#8203;5015](https://redirect.github.com/reduxjs/redux-toolkit/pull/5015)
- Remove Serialisation from useStableQueryArgs by
[@&#8203;riqts](https://redirect.github.com/riqts) in
[#&#8203;4996](https://redirect.github.com/reduxjs/redux-toolkit/pull/4996)
- add addAsyncThunk method to reducer map builder by
[@&#8203;EskiMojo14](https://redirect.github.com/EskiMojo14) in
[#&#8203;5007](https://redirect.github.com/reduxjs/redux-toolkit/pull/5007)
- Only run `transformResponse` when a `query` is used by
[@&#8203;markerikson](https://redirect.github.com/markerikson) in
[#&#8203;5049](https://redirect.github.com/reduxjs/redux-toolkit/pull/5049)
- Assorted bugfixes for 2.8.3 by
[@&#8203;markerikson](https://redirect.github.com/markerikson) in
[#&#8203;5060](https://redirect.github.com/reduxjs/redux-toolkit/pull/5060)
- Abort pending requests if the cache entry is removed by
[@&#8203;markerikson](https://redirect.github.com/markerikson) in
[#&#8203;5061](https://redirect.github.com/reduxjs/redux-toolkit/pull/5061)
- Update TS CI config by
[@&#8203;markerikson](https://redirect.github.com/markerikson) in
[#&#8203;5065](https://redirect.github.com/reduxjs/redux-toolkit/pull/5065)
- Rewrite subscription handling and polling calculations for better perf
by [@&#8203;markerikson](https://redirect.github.com/markerikson) in
[#&#8203;5064](https://redirect.github.com/reduxjs/redux-toolkit/pull/5064)

**Full Changelog**:
<https://github.com/reduxjs/redux-toolkit/compare/v2.8.2...v2.9.0>

</details>

<details>
<summary>rollup/rollup (@&#8203;rollup/rollup-linux-x64-gnu)</summary>

###
[`v4.50.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4501)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.50.0...v4.50.1)

*2025-09-07*

##### Bug Fixes

- Resolve a situation where a destructuring default value was removed
([#&#8203;6090](https://redirect.github.com/rollup/rollup/issues/6090))

##### Pull Requests

- [#&#8203;6088](https://redirect.github.com/rollup/rollup/pull/6088):
feat(www): shorter repl shareables
([@&#8203;cyyynthia](https://redirect.github.com/cyyynthia),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;6090](https://redirect.github.com/rollup/rollup/pull/6090):
Call includeNode for self or children nodes in
includeDestructuredIfNecessary
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;6091](https://redirect.github.com/rollup/rollup/pull/6091):
fix(deps): update rust crate swc\_compiler\_base to v33
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;6092](https://redirect.github.com/rollup/rollup/pull/6092):
chore(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;6094](https://redirect.github.com/rollup/rollup/pull/6094):
perf: replace startsWith with strict equality
([@&#8203;btea](https://redirect.github.com/btea))

###
[`v4.50.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4500)

[Compare
Source](https://redirect.github.com/rollup/rollup/compare/v4.49.0...v4.50.0)

*2025-08-31*

##### Features

- Support openharmony-arm64 platform
([#&#8203;6081](https://redirect.github.com/rollup/rollup/issues/6081))

##### Bug Fixes

- Fix loading of extensionless imports in config files
([#&#8203;6084](https://redirect.github.com/rollup/rollup/issues/6084))

##### Pull Requests

- [#&#8203;6081](https://redirect.github.com/rollup/rollup/pull/6081):
Add support for openharmony-arm64 platform
([@&#8203;hqzing](https://redirect.github.com/hqzing),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;6084](https://redirect.github.com/rollup/rollup/pull/6084):
Return null to defer to the default resolution behavior
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

</details>

<details>
<summary>storybookjs/storybook (@&#8203;storybook/addon-docs)</summary>

###
[`v9.1.5`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#915)

[Compare
Source](https://redirect.github.com/storybookjs/storybook/compare/v9.1.4...v9.1.5)

- CSF: Support `satisfies x as y` syntax -
[#&#8203;32169](https://redirect.github.com/storybookjs/storybook/pull/32169),
thanks [@&#8203;diagramatics](https://redirect.github.com/diagramatics)!
- Vitest addon: Handle Playwright installation errors gracefully -
[#&#8203;32329](https://redirect.github.com/storybookjs/storybook/pull/32329),
thanks [@&#8203;ndelangen](https://redirect.github.com/ndelangen)!

###
[`v9.1.4`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#914)

[Compare
Source](https://redirect.github.com/storybookjs/storybook/compare/v9.1.3...v9.1.4)

- Angular: Properly merge builder options and browserTarget options -
[#&#8203;32272](https://redirect.github.com/storybookjs/storybook/pull/32272),
thanks [@&#8203;kroeder](https://redirect.github.com/kroeder)!
- Core: Optimize bundlesize, by reusing internal/babel in mocking-utils
-
[#&#8203;32350](https://redirect.github.com/storybookjs/storybook/pull/32350),
thanks [@&#8203;ndelangen](https://redirect.github.com/ndelangen)!
- Svelte & Vue: Add framework-specific `docgen` option to disable docgen
processing -
[#&#8203;32319](https://redirect.github.com/storybookjs/storybook/pull/32319),
thanks
[@&#8203;copilot-swe-agent](https://redirect.github.com/copilot-swe-agent)!
- Svelte: Support `@sveltejs/vite-plugin-svelte` v6 -
[#&#8203;32320](https://redirect.github.com/storybookjs/storybook/pull/32320),
thanks [@&#8203;JReinhold](https://redirect.github.com/JReinhold)!

</details>

<details>
<summary>tailwindlabs/tailwindcss (@&#8203;tailwindcss/cli)</summary>

###
[`v4.1.13`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4113---2025-09-03)

[Compare
Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.12...v4.1.13)

##### Changed

- Drop warning from browser build
([#&#8203;18731](https://redirect.github.com/tailwindlabs/tailwindcss/issues/18731))
- Drop exact duplicate declarations when emitting CSS
([#&#8203;18809](https://redirect.github.com/tailwindlabs/tailwindcss/issues/18809))

##### Fixed

- Don't transition `visibility` when using `transition`
([#&#8203;18795](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18795))
- Discard matched variants with unknown named values
([#&#8203;18799](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18799))
- Discard matched variants with non-string values
([#&#8203;18799](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18799))
- Show suggestions for known `matchVariant` values
([#&#8203;18798](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18798))
- Replace deprecated `clip` with `clip-path` in `sr-only`
([#&#8203;18769](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18769))
- Hide internal fields from completions in `matchUtilities`
([#&#8203;18820](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18820))
- Ignore `.vercel` folders by default (can be overridden by `@source …`
rules)
([#&#8203;18855](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18855))
- Consider variants starting with `@-` to be invalid (e.g. `@-2xl:flex`)
([#&#8203;18869](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18869))
- Do not allow custom variants to start or end with a `-` or `_`
([#&#8203;18867](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18867),
[#&#8203;18872](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18872))
- Upgrade: Migrate `aria` theme keys to `@custom-variant`
([#&#8203;18815](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18815))
- Upgrade: Migrate `data` theme keys to `@custom-variant`
([#&#8203;18816](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18816))
- Upgrade: Migrate `supports` theme keys to `@custom-variant`
([#&#8203;18817](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18817))

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v8.43.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8430-2025-09-08)

[Compare
Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.42.0...v8.43.0)

##### 🚀 Features

- **typescript-estree:** disallow empty type parameter/argument lists
([#&#8203;11563](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11563))

##### 🩹 Fixes

- **eslint-plugin:** \[prefer-return-this-type] don't report an error
when returning a union type that includes a classType
([#&#8203;11432](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11432))
- **eslint-plugin:** \[no-deprecated] should report deprecated exports
and reexports
([#&#8203;11359](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11359))
- **eslint-plugin:** \[no-floating-promises] allowForKnownSafeCalls now
supports function names
([#&#8203;11423](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11423),
[#&#8203;11430](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11430))
- **eslint-plugin:** \[consistent-type-exports] fix declaration
shadowing
([#&#8203;11457](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11457))
- **eslint-plugin:** \[no-unnecessary-type-conversion] only report \~\~
on integer literal types
([#&#8203;11517](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11517))
- **scope-manager:** exclude Program from DefinitionBase node types
([#&#8203;11469](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11469))
- **eslint-plugin:** \[no-non-null-assertion] do not suggest optional
chain on LHS of assignment
([#&#8203;11489](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11489))
- **type-utils:** add union type support to TypeOrValueSpecifier
([#&#8203;11526](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11526))

##### ❤️ Thank You

- Dima [@&#8203;dbarabashh](https://redirect.github.com/dbarabashh)
- Kirk Waiblinger
[@&#8203;kirkwaiblinger](https://redirect.github.com/kirkwaiblinger)
- mdm317
- tao
- Victor Genaev
[@&#8203;mainframev](https://redirect.github.com/mainframev)
- Yukihiro Hasegawa [@&#8203;y-hsgw](https://redirect.github.com/y-hsgw)
- 민감자(Minji Kim)
[@&#8203;mouse0429](https://redirect.github.com/mouse0429)
- 송재욱

You can read about our [versioning
strategy](https://typescript-eslint.io/users/versioning) and
[releases](https://typescript-eslint.io/users/releases) on our website.

###
[`v8.42.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plug

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/unraid/api).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi43IiwidXBkYXRlZEluVmVyIjoiNDEuOTcuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-09 08:18:06 -04:00