Compare commits

...

1400 Commits

Author SHA1 Message Date
Eli Bosley
b663293f1b chore: update lint-staged and settings.local.json commands
- Change lint-staged command from pnpm to npx pnpm for consistency
- Add nvm and git config commands to settings.local.json for better tooling support
2025-07-12 09:42:07 -04:00
Eli Bosley
4c0b967164 refactor(test): update vitest config and improve rclone service tests
- Replace vitest.workspace.js with vitest.config.ts for better project configuration
- Add vitest dependency and update test script in package.json
- Improve RCloneApiService tests with better mocking and error handling
- Update test snapshots to include backupBase path
2025-07-12 09:41:39 -04:00
Eli Bosley
0d864fa948 chore: frontend functionality 2025-07-11 21:42:03 -04:00
Eli Bosley
984b8748ef chore: type cleanup 2025-07-11 21:31:01 -04:00
Eli Bosley
a406fdc5fe chore: types 2025-07-11 20:39:40 -04:00
Eli Bosley
e7066c0e09 chore: update pnpm lock 2025-07-11 15:53:38 -04:00
Eli Bosley
872559ce56 chore: build.ts removed 2025-07-11 15:43:52 -04:00
Eli Bosley
f99264e73d chore: remove .bivvy 2025-07-11 15:41:41 -04:00
Eli Bosley
73ba3f074a Merge branch 'main' into feat/flash-backup-implementation 2025-07-11 15:38:01 -04:00
renovate[bot]
e1a7a3d22d chore(deps): update dependency node to v22 (#1507)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [node](https://redirect.github.com/actions/node-versions) | uses-with
| major | `20` -> `22` |

---

### Release Notes

<details>
<summary>actions/node-versions (node)</summary>

###
[`v22.17.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.17.0-15866718879):
22.17.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.16.0-15177438473...22.17.0-15866718879)

Node.js 22.17.0

###
[`v22.16.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.16.0-15177438473):
22.16.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.15.1-15035854612...22.16.0-15177438473)

Node.js 22.16.0

###
[`v22.15.1`](https://redirect.github.com/actions/node-versions/releases/tag/22.15.1-15035854612):
22.15.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.15.0-14621731016...22.15.1-15035854612)

Node.js 22.15.1

###
[`v22.15.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.15.0-14621731016):
22.15.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.14.0-13265982013...22.15.0-14621731016)

Node.js 22.15.0

###
[`v22.14.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.14.0-13265982013):
22.14.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.13.1-12900459766...22.14.0-13265982013)

Node.js 22.14.0

###
[`v22.13.1`](https://redirect.github.com/actions/node-versions/releases/tag/22.13.1-12900459766):
22.13.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.13.0-12671059536...22.13.1-12900459766)

Node.js 22.13.1

###
[`v22.13.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.13.0-12671059536):
22.13.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.12.0-12152383658...22.13.0-12671059536)

Node.js 22.13.0

###
[`v22.12.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.12.0-12152383658):
22.12.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.11.0-11593095476...22.12.0-12152383658)

Node.js 22.12.0

###
[`v22.11.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.11.0-11593095476):
22.11.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.10.0-11377615849...22.11.0-11593095476)

Node.js 22.11.0

###
[`v22.10.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.10.0-11377615849):
22.10.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.9.0-10914884886...22.10.0-11377615849)

Node.js 22.10.0

###
[`v22.9.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.9.0-10914884886):
22.9.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.8.0-10685632420...22.9.0-10914884886)

Node.js 22.9.0

###
[`v22.8.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.8.0-10685632420):
22.8.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.7.0-10511334152...22.8.0-10685632420)

Node.js 22.8.0

###
[`v22.7.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.7.0-10511334152):
22.7.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.6.0-10277432289...22.7.0-10511334152)

Node.js 22.7.0

###
[`v22.6.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.6.0-10277432289):
22.6.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.5.1-10010673511...22.6.0-10277432289)

Node.js 22.6.0

###
[`v22.5.1`](https://redirect.github.com/actions/node-versions/releases/tag/22.5.1-10010673511):
22.5.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.5.0-9985144103...22.5.1-10010673511)

Node.js 22.5.1

###
[`v22.5.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.5.0-9985144103):
22.5.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.4.1-9860948056...22.5.0-9985144103)

Node.js 22.5.0

###
[`v22.4.1`](https://redirect.github.com/actions/node-versions/releases/tag/22.4.1-9860948056):
22.4.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.4.0-9766506602...22.4.1-9860948056)

Node.js 22.4.1

###
[`v22.4.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.4.0-9766506602):
22.4.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.3.0-9569309553...22.4.0-9766506602)

Node.js 22.4.0

###
[`v22.3.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.3.0-9569309553):
22.3.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.2.0-9105861751...22.3.0-9569309553)

Node.js 22.3.0

###
[`v22.2.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.2.0-9105861751):
22.2.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.1.0-8926142033...22.2.0-9105861751)

Node.js 22.2.0

###
[`v22.1.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.1.0-8926142033):
22.1.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.0.0-8879734543...22.1.0-8926142033)

Node.js 22.1.0

###
[`v22.0.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.0.0-8879734543):
22.0.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.19.3-15828158811...22.0.0-8879734543)

Node.js 22.0.0

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 14:41:02 -04:00
renovate[bot]
53b05ebe5e fix(deps): update all non-major dependencies (#1489)
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.29.0` ->
`9.30.1`](https://renovatebot.com/diffs/npm/@eslint%2fjs/9.29.0/9.30.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@eslint%2fjs/9.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@eslint%2fjs/9.29.0/9.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [@faker-js/faker](https://fakerjs.dev)
([source](https://redirect.github.com/faker-js/faker)) | [`9.8.0` ->
`9.9.0`](https://renovatebot.com/diffs/npm/@faker-js%2ffaker/9.8.0/9.9.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@faker-js%2ffaker/9.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@faker-js%2ffaker/9.8.0/9.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [@floating-ui/dom](https://floating-ui.com)
([source](https://redirect.github.com/floating-ui/floating-ui/tree/HEAD/packages/dom))
| [`1.7.1` ->
`1.7.2`](https://renovatebot.com/diffs/npm/@floating-ui%2fdom/1.7.1/1.7.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@floating-ui%2fdom/1.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@floating-ui%2fdom/1.7.1/1.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [@floating-ui/utils](https://floating-ui.com)
([source](https://redirect.github.com/floating-ui/floating-ui/tree/HEAD/packages/utils))
| [`0.2.9` ->
`0.2.10`](https://renovatebot.com/diffs/npm/@floating-ui%2futils/0.2.9/0.2.10)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@floating-ui%2futils/0.2.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@floating-ui%2futils/0.2.9/0.2.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [@floating-ui/vue](https://floating-ui.com/docs/vue)
([source](https://redirect.github.com/floating-ui/floating-ui/tree/HEAD/packages/vue))
| [`1.1.6` ->
`1.1.7`](https://renovatebot.com/diffs/npm/@floating-ui%2fvue/1.1.6/1.1.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@floating-ui%2fvue/1.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@floating-ui%2fvue/1.1.6/1.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
|
[@graphql-codegen/client-preset](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/presets/client))
| [`4.8.2` ->
`4.8.3`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fclient-preset/4.8.2/4.8.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2fclient-preset/4.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2fclient-preset/4.8.2/4.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@graphql-codegen/client-preset](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/presets/client))
| [`4.8.2` ->
`4.8.3`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fclient-preset/4.8.2/4.8.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2fclient-preset/4.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2fclient-preset/4.8.2/4.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
|
[@graphql-codegen/typed-document-node](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/typed-document-node))
| [`5.1.1` ->
`5.1.2`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftyped-document-node/5.1.1/5.1.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftyped-document-node/5.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftyped-document-node/5.1.1/5.1.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.4.2` ->
`4.5.1`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/4.4.2/4.5.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@ianvs%2fprettier-plugin-sort-imports/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@ianvs%2fprettier-plugin-sort-imports/4.4.2/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [@nuxt/devtools](https://devtools.nuxt.com)
([source](https://redirect.github.com/nuxt/devtools/tree/HEAD/packages/devtools))
| [`2.5.0` ->
`2.6.2`](https://renovatebot.com/diffs/npm/@nuxt%2fdevtools/2.5.0/2.6.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxt%2fdevtools/2.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxt%2fdevtools/2.5.0/2.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [@nuxt/eslint](https://redirect.github.com/nuxt/eslint)
([source](https://redirect.github.com/nuxt/eslint/tree/HEAD/packages/module))
| [`1.4.1` ->
`1.5.2`](https://renovatebot.com/diffs/npm/@nuxt%2feslint/1.4.1/1.5.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxt%2feslint/1.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxt%2feslint/1.4.1/1.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [@nuxt/test-utils](https://redirect.github.com/nuxt/test-utils) |
[`3.19.1` ->
`3.19.2`](https://renovatebot.com/diffs/npm/@nuxt%2ftest-utils/3.19.1/3.19.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxt%2ftest-utils/3.19.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxt%2ftest-utils/3.19.1/3.19.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [@rollup/rollup-linux-x64-gnu](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) | [`4.44.0` ->
`4.44.2`](https://renovatebot.com/diffs/npm/@rollup%2frollup-linux-x64-gnu/4.44.0/4.44.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@rollup%2frollup-linux-x64-gnu/4.44.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@rollup%2frollup-linux-x64-gnu/4.44.0/4.44.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| optionalDependencies | patch |
| [@swc/core](https://swc.rs)
([source](https://redirect.github.com/swc-project/swc)) | [`1.12.4` ->
`1.12.11`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.12.4/1.12.11)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.12.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.12.4/1.12.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@types/bun](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/bun)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bun))
| [`1.2.16` ->
`1.2.18`](https://renovatebot.com/diffs/npm/@types%2fbun/1.2.16/1.2.18)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fbun/1.2.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fbun/1.2.16/1.2.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@types/dockerode](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/dockerode)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode))
| [`3.3.41` ->
`3.3.42`](https://renovatebot.com/diffs/npm/@types%2fdockerode/3.3.41/3.3.42)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fdockerode/3.3.42?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fdockerode/3.3.41/3.3.42?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@types/lodash](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash))
| [`4.17.18` ->
`4.17.20`](https://renovatebot.com/diffs/npm/@types%2flodash/4.17.18/4.17.20)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2flodash/4.17.20?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2flodash/4.17.18/4.17.20?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.15.32` ->
`22.16.3`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.32/22.16.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.15.32/22.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@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.34.1` ->
`8.36.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.34.1/8.36.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/8.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/8.34.1/8.36.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.4.0` ->
`13.5.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcomponents/13.4.0/13.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcomponents/13.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcomponents/13.4.0/13.5.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.4.0` ->
`13.5.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/13.4.0/13.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcore/13.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcore/13.4.0/13.5.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.4.0` ->
`13.5.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/13.4.0/13.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcore/13.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcore/13.4.0/13.5.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.4.0` ->
`13.5.0`](https://renovatebot.com/diffs/npm/@vueuse%2fintegrations/13.4.0/13.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fintegrations/13.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fintegrations/13.4.0/13.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
|
[@vueuse/nuxt](https://redirect.github.com/vueuse/vueuse/tree/main/packages/nuxt#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/nuxt))
| [`13.4.0` ->
`13.5.0`](https://renovatebot.com/diffs/npm/@vueuse%2fnuxt/13.4.0/13.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fnuxt/13.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fnuxt/13.4.0/13.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[awalsh128/cache-apt-pkgs-action](https://redirect.github.com/awalsh128/cache-apt-pkgs-action)
| `v1.4.3` -> `v1.5.1` |
[![age](https://developer.mend.io/api/mc/badges/age/github-tags/awalsh128%2fcache-apt-pkgs-action/v1.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/awalsh128%2fcache-apt-pkgs-action/v1.4.3/v1.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| action | minor |
| [cache-manager](https://redirect.github.com/jaredwray/cacheable)
([source](https://redirect.github.com/jaredwray/cacheable/tree/HEAD/packages/cache-manager))
| [`7.0.0` ->
`7.0.1`](https://renovatebot.com/diffs/npm/cache-manager/7.0.0/7.0.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/cache-manager/7.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cache-manager/7.0.0/7.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
|
[commit-and-tag-version](https://redirect.github.com/absolute-version/commit-and-tag-version)
| [`9.5.0` ->
`9.6.0`](https://renovatebot.com/diffs/npm/commit-and-tag-version/9.5.0/9.6.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/commit-and-tag-version/9.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/commit-and-tag-version/9.5.0/9.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[concurrently](https://redirect.github.com/open-cli-tools/concurrently)
| [`9.1.2` ->
`9.2.0`](https://renovatebot.com/diffs/npm/concurrently/9.1.2/9.2.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/concurrently/9.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/concurrently/9.1.2/9.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [dotenv](https://redirect.github.com/motdotla/dotenv) | [`17.1.0` ->
`17.2.0`](https://renovatebot.com/diffs/npm/dotenv/17.1.0/17.2.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/dotenv/17.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/dotenv/17.1.0/17.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [eslint](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint)) | [`9.29.0` ->
`9.30.1`](https://renovatebot.com/diffs/npm/eslint/9.29.0/9.30.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/9.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/9.29.0/9.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[eslint-plugin-import](https://redirect.github.com/import-js/eslint-plugin-import)
| [`2.31.0` ->
`2.32.0`](https://renovatebot.com/diffs/npm/eslint-plugin-import/2.31.0/2.32.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-import/2.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-import/2.31.0/2.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[eslint-plugin-n](https://redirect.github.com/eslint-community/eslint-plugin-n)
| [`17.20.0` ->
`17.21.0`](https://renovatebot.com/diffs/npm/eslint-plugin-n/17.20.0/17.21.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-n/17.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-n/17.20.0/17.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[eslint-plugin-prettier](https://redirect.github.com/prettier/eslint-plugin-prettier)
| [`5.5.0` ->
`5.5.1`](https://renovatebot.com/diffs/npm/eslint-plugin-prettier/5.5.0/5.5.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-prettier/5.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-prettier/5.5.0/5.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [eslint-plugin-vue](https://eslint.vuejs.org)
([source](https://redirect.github.com/vuejs/eslint-plugin-vue)) |
[`10.2.0` ->
`10.3.0`](https://renovatebot.com/diffs/npm/eslint-plugin-vue/10.2.0/10.3.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-vue/10.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-vue/10.2.0/10.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [fast-check](https://fast-check.dev/)
([source](https://redirect.github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check))
| [`4.1.1` ->
`4.2.0`](https://renovatebot.com/diffs/npm/fast-check/4.1.1/4.2.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/fast-check/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fast-check/4.1.1/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [glob](https://redirect.github.com/isaacs/node-glob) | [`11.0.1` ->
`11.0.3`](https://renovatebot.com/diffs/npm/glob/11.0.1/11.0.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/glob/11.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/glob/11.0.1/11.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) |
[`18.0.0` ->
`18.0.1`](https://renovatebot.com/diffs/npm/happy-dom/18.0.0/18.0.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/18.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/18.0.0/18.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[inquirer](https://redirect.github.com/SBoudrias/Inquirer.js/blob/main/packages/inquirer/README.md)
([source](https://redirect.github.com/SBoudrias/Inquirer.js)) |
[`12.6.3` ->
`12.7.0`](https://renovatebot.com/diffs/npm/inquirer/12.6.3/12.7.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/inquirer/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/inquirer/12.6.3/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
|
[isomorphic-dompurify](https://redirect.github.com/kkomelin/isomorphic-dompurify)
| [`2.25.0` ->
`2.26.0`](https://renovatebot.com/diffs/npm/isomorphic-dompurify/2.25.0/2.26.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/isomorphic-dompurify/2.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/isomorphic-dompurify/2.25.0/2.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [lucide-vue-next](https://lucide.dev)
([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next))
| [`0.519.0` ->
`0.525.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.519.0/0.525.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-vue-next/0.525.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-vue-next/0.519.0/0.525.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
|
[marked-base-url](https://redirect.github.com/markedjs/marked-base-url)
| [`1.1.6` ->
`1.1.7`](https://renovatebot.com/diffs/npm/marked-base-url/1.1.6/1.1.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/marked-base-url/1.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/marked-base-url/1.1.6/1.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [node](https://nodejs.org)
([source](https://redirect.github.com/nodejs/node)) | `22.16.0` ->
`22.17.0` |
[![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v22.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v22.16.0/v22.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |
| [nuxt](https://nuxt.com)
([source](https://redirect.github.com/nuxt/nuxt/tree/HEAD/packages/nuxt))
| [`3.17.5` ->
`3.17.6`](https://renovatebot.com/diffs/npm/nuxt/3.17.5/3.17.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/nuxt/3.17.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nuxt/3.17.5/3.17.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.12.4` ->
`10.13.1`](https://renovatebot.com/diffs/npm/pnpm/10.12.4/10.13.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.12.4/10.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| packageManager | minor |
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.12.4` ->
`10.13.1`](https://renovatebot.com/diffs/npm/pnpm/10.12.4/10.13.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.12.4/10.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| engines | minor |
| [prettier](https://prettier.io)
([source](https://redirect.github.com/prettier/prettier)) | [`3.5.3` ->
`3.6.2`](https://renovatebot.com/diffs/npm/prettier/3.5.3/3.6.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.5.3/3.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[prettier-plugin-tailwindcss](https://redirect.github.com/tailwindlabs/prettier-plugin-tailwindcss)
| [`0.6.13` ->
`0.6.14`](https://renovatebot.com/diffs/npm/prettier-plugin-tailwindcss/0.6.13/0.6.14)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier-plugin-tailwindcss/0.6.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier-plugin-tailwindcss/0.6.13/0.6.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [reka-ui](https://redirect.github.com/unovue/reka-ui) | [`2.3.1` ->
`2.3.2`](https://renovatebot.com/diffs/npm/reka-ui/2.3.1/2.3.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/reka-ui/2.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/reka-ui/2.3.1/2.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [semver](https://redirect.github.com/npm/node-semver) | [`7.7.1` ->
`7.7.2`](https://renovatebot.com/diffs/npm/semver/7.7.1/7.7.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/semver/7.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/semver/7.7.1/7.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [systeminformation](https://systeminformation.io)
([source](https://redirect.github.com/sebhildebrandt/systeminformation))
| [`5.27.6` ->
`5.27.7`](https://renovatebot.com/diffs/npm/systeminformation/5.27.6/5.27.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/systeminformation/5.27.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/systeminformation/5.27.6/5.27.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [tsx](https://tsx.is)
([source](https://redirect.github.com/privatenumber/tsx)) | [`4.19.3` ->
`4.20.3`](https://renovatebot.com/diffs/npm/tsx/4.19.3/4.20.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/tsx/4.20.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tsx/4.19.3/4.20.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
|
[typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint))
| [`8.34.1` ->
`8.36.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.34.1/8.36.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.34.1/8.36.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.0.3` ->
`7.0.4`](https://renovatebot.com/diffs/npm/vite/7.0.3/7.0.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/7.0.3/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [vitest](https://redirect.github.com/vitest-dev/vitest)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`3.0.7` ->
`3.2.4`](https://renovatebot.com/diffs/npm/vitest/3.0.7/3.2.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.7/3.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[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.6` ->
`11.1.9`](https://renovatebot.com/diffs/npm/vue-i18n/11.1.6/11.1.9) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-i18n/11.1.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-i18n/11.1.6/11.1.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [vue-sonner](https://redirect.github.com/xiaoluoboding/vue-sonner) |
[`1.3.0` ->
`1.3.2`](https://renovatebot.com/diffs/npm/vue-sonner/1.3.0/1.3.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-sonner/1.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-sonner/1.3.0/1.3.2?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.8.10` ->
`3.9.0`](https://renovatebot.com/diffs/npm/vuetify/3.8.10/3.9.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vuetify/3.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vuetify/3.8.10/3.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [wrangler](https://redirect.github.com/cloudflare/workers-sdk)
([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler))
| [`^3.87.0` ->
`^3.114.10`](https://renovatebot.com/diffs/npm/wrangler/3.114.10/3.114.11)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/wrangler/3.114.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/wrangler/3.114.10/3.114.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [ws](https://redirect.github.com/websockets/ws) | [`8.18.2` ->
`8.18.3`](https://renovatebot.com/diffs/npm/ws/8.18.2/8.18.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ws/8.18.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ws/8.18.2/8.18.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [ws](https://redirect.github.com/websockets/ws) | [`8.18.2` ->
`8.18.3`](https://renovatebot.com/diffs/npm/ws/8.18.2/8.18.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ws/8.18.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ws/8.18.2/8.18.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [zod](https://zod.dev)
([source](https://redirect.github.com/colinhacks/zod)) | [`3.24.2` ->
`3.25.76`](https://renovatebot.com/diffs/npm/zod/3.24.2/3.25.76) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/zod/3.25.76?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zod/3.24.2/3.25.76?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [zod](https://zod.dev)
([source](https://redirect.github.com/colinhacks/zod)) | [`3.25.67` ->
`3.25.76`](https://renovatebot.com/diffs/npm/zod/3.25.67/3.25.76) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/zod/3.25.76?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zod/3.25.67/3.25.76?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [zx](https://google.github.io/zx/)
([source](https://redirect.github.com/google/zx)) | [`8.3.2` ->
`8.6.2`](https://renovatebot.com/diffs/npm/zx/8.3.2/8.6.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/zx/8.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zx/8.3.2/8.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [zx](https://google.github.io/zx/)
([source](https://redirect.github.com/google/zx)) | [`8.5.5` ->
`8.6.2`](https://renovatebot.com/diffs/npm/zx/8.5.5/8.6.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/zx/8.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zx/8.5.5/8.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |

---

### Release Notes

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

###
[`v9.30.1`](https://redirect.github.com/eslint/eslint/compare/v9.30.0...b3dbc16563cb7036d75edff9814e17053a645321)

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

###
[`v9.30.0`](https://redirect.github.com/eslint/eslint/compare/v9.29.0...5a5d5261037fdf84a91f2f22d3726d58572453f4)

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

</details>

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

###
[`v9.9.0`](https://redirect.github.com/faker-js/faker/blob/HEAD/CHANGELOG.md#990-2025-07-01)

[Compare
Source](https://redirect.github.com/faker-js/faker/compare/v9.8.0...v9.9.0)

##### New Locales

- **locale:** add word data to pt\_br and pt\_pt locales
([#&#8203;3531](https://redirect.github.com/faker-js/faker/issues/3531))
([a405ac8](a405ac8740))

##### Features

- **location:** simple coordinate methods
([#&#8203;3528](https://redirect.github.com/faker-js/faker/issues/3528))
([d07d96d](d07d96d018))

</details>

<details>
<summary>floating-ui/floating-ui (@&#8203;floating-ui/dom)</summary>

###
[`v1.7.2`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/dom/CHANGELOG.md#172)

[Compare
Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/dom@1.7.1...@floating-ui/dom@1.7.2)

##### Patch Changes

- perf: reduce memory allocations
- Update dependencies: `@floating-ui/utils@0.2.10`,
`@floating-ui/core@1.7.2`

</details>

<details>
<summary>floating-ui/floating-ui (@&#8203;floating-ui/utils)</summary>

###
[`v0.2.10`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/utils/CHANGELOG.md#0210)

[Compare
Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/utils@0.2.9...@floating-ui/utils@0.2.10)

##### Patch Changes

- refactor: small performance improvements
- perf: reduce memory allocations

</details>

<details>
<summary>floating-ui/floating-ui (@&#8203;floating-ui/vue)</summary>

###
[`v1.1.7`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/vue/CHANGELOG.md#117)

[Compare
Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/vue@1.1.6...@floating-ui/vue@1.1.7)

##### Patch Changes

- Update dependencies: `@floating-ui/utils@0.2.10`,
`@floating-ui/dom@1.7.2`

</details>

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

###
[`v4.8.3`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/presets/client/CHANGELOG.md#483)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/client-preset@4.8.2...@graphql-codegen/client-preset@4.8.3)

##### Patch Changes

-
[#&#8203;10362](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10362)
[`3188b8c`](3188b8c39e)
Thanks [@&#8203;Brookke](https://redirect.github.com/Brookke)! - Make
generated type compatible with noImplicitOverride=true

-
[#&#8203;10373](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10373)
[`c3295f9`](c3295f9c60)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! - Fix
client preset not working with exactOptionalPropertyTypes=true when
documentMode=string

- Updated dependencies
\[[`3188b8c`](3188b8c39e),
[`c3295f9`](c3295f9c60)]:
-
[@&#8203;graphql-codegen/typed-document-node](https://redirect.github.com/graphql-codegen/typed-document-node)@&#8203;5.1.2

</details>

<details>
<summary>dotansimha/graphql-code-generator
(@&#8203;graphql-codegen/typed-document-node)</summary>

###
[`v5.1.2`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/typescript/typed-document-node/CHANGELOG.md#512)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/typed-document-node@5.1.1...@graphql-codegen/typed-document-node@5.1.2)

##### Patch Changes

-
[#&#8203;10362](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10362)
[`3188b8c`](3188b8c39e)
Thanks [@&#8203;Brookke](https://redirect.github.com/Brookke)! - Make
generated type compatible with noImplicitOverride=true

-
[#&#8203;10373](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10373)
[`c3295f9`](c3295f9c60)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! - Fix
client preset not working with exactOptionalPropertyTypes=true when
documentMode=string

</details>

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

###
[`v4.5.1`](https://redirect.github.com/ianvs/prettier-plugin-sort-imports/compare/v4.5.0...040fa5e3a7dd01a90d80bb12072344745e426da6)

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

###
[`v4.5.0`](https://redirect.github.com/ianvs/prettier-plugin-sort-imports/compare/v4.4.2...3497e9a87974954e42198d04d69d9a2a24dbebbd)

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

</details>

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

###
[`v2.6.2`](https://redirect.github.com/nuxt/devtools/blob/HEAD/CHANGELOG.md#262-2025-07-02)

[Compare
Source](https://redirect.github.com/nuxt/devtools/compare/v2.6.1...v2.6.2)

##### Bug Fixes

- panel dragging issue, close
[#&#8203;874](https://redirect.github.com/nuxt/devtools/issues/874),
close
[#&#8203;871](https://redirect.github.com/nuxt/devtools/issues/871),
close
[#&#8203;873](https://redirect.github.com/nuxt/devtools/issues/873)
([619de37](619de37ace))

###
[`v2.6.1`](https://redirect.github.com/nuxt/devtools/blob/HEAD/CHANGELOG.md#261-2025-07-01)

[Compare
Source](https://redirect.github.com/nuxt/devtools/compare/v2.6.0...v2.6.1)

##### Bug Fixes

- **deps:** do not depend on `@nuxt/schema`
([#&#8203;872](https://redirect.github.com/nuxt/devtools/issues/872))
([62443ec](62443ecb12))

###
[`v2.6.0`](https://redirect.github.com/nuxt/devtools/blob/HEAD/CHANGELOG.md#260-2025-06-29)

[Compare
Source](https://redirect.github.com/nuxt/devtools/compare/v2.5.0...v2.6.0)

##### Bug Fixes

- timing labels wrapping
([#&#8203;866](https://redirect.github.com/nuxt/devtools/issues/866))
([fd01e60](fd01e6022a))

##### Features

- update deps
([eef2c09](eef2c09ea1))

</details>

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

###
[`v1.5.2`](https://redirect.github.com/nuxt/eslint/releases/tag/v1.5.2)

[Compare
Source](https://redirect.github.com/nuxt/eslint/compare/v1.5.1...v1.5.2)

#####    🚀 Features

- Add option `features.import.plugin` to swap plugin implementation,
close [#&#8203;587](https://redirect.github.com/nuxt/eslint/issues/587)
 -  by [@&#8203;antfu](https://redirect.github.com/antfu) in
[https://github.com/nuxt/eslint/issues/587](https://redirect.github.com/nuxt/eslint/issues/587)
[<samp>(66f5e)</samp>](https://redirect.github.com/nuxt/eslint/commit/66f5ee0)

#####     [View changes on
GitHub](https://redirect.github.com/nuxt/eslint/compare/v1.5.1...v1.5.2)

###
[`v1.5.1`](https://redirect.github.com/nuxt/eslint/releases/tag/v1.5.1)

[Compare
Source](https://redirect.github.com/nuxt/eslint/compare/v1.5.0...v1.5.1)

#####    🐞 Bug Fixes

- **eslint-config**: Replace deprecated vue/object-property-newline
option  -  by [@&#8203;amery](https://redirect.github.com/amery) in
[https://github.com/nuxt/eslint/issues/586](https://redirect.github.com/nuxt/eslint/issues/586)
[<samp>(7805e)</samp>](https://redirect.github.com/nuxt/eslint/commit/7805e0d)

#####     [View changes on
GitHub](https://redirect.github.com/nuxt/eslint/compare/v1.5.0...v1.5.1)

###
[`v1.5.0`](https://redirect.github.com/nuxt/eslint/releases/tag/v1.5.0)

[Compare
Source](https://redirect.github.com/nuxt/eslint/compare/v1.4.1...v1.5.0)

#####    🚀 Features

- Switch to `eslint-plugin-import-lite`, update deps  -  by
[@&#8203;antfu](https://redirect.github.com/antfu)
[<samp>(31bd8)</samp>](https://redirect.github.com/nuxt/eslint/commit/31bd8a0)

#####    🐞 Bug Fixes

- **eslint-config**: Add file type restrictions to prevent CSS parsing
errors  -  by [@&#8203;amery](https://redirect.github.com/amery) in
[https://github.com/nuxt/eslint/issues/584](https://redirect.github.com/nuxt/eslint/issues/584)
[<samp>(40521)</samp>](https://redirect.github.com/nuxt/eslint/commit/40521a1)

#####     [View changes on
GitHub](https://redirect.github.com/nuxt/eslint/compare/v1.4.1...v1.5.0)

</details>

<details>
<summary>nuxt/test-utils (@&#8203;nuxt/test-utils)</summary>

###
[`v3.19.2`](https://redirect.github.com/nuxt/test-utils/releases/tag/v3.19.2)

[Compare
Source](https://redirect.github.com/nuxt/test-utils/compare/v3.19.1...v3.19.2)

> 3.19.2 is the next patch release.
>
> **Timetable**: 1 July

#### 👉 Changelog

[compare
changes](https://redirect.github.com/nuxt/test-utils/compare/v3.19.1...v3.19.2)

##### 🩹 Fixes

- **config:** Add missing mocks for vue-devtools
([#&#8203;1321](https://redirect.github.com/nuxt/test-utils/pull/1321))
- **runtime-utils:** Prevent event duplication
([#&#8203;1328](https://redirect.github.com/nuxt/test-utils/pull/1328))
- **config:** Include tests without `.nuxt.` extension
([#&#8203;1311](https://redirect.github.com/nuxt/test-utils/pull/1311))
- **deps:** Drop `@nuxt/schema` dependeny
([fa3a99b4](https://redirect.github.com/nuxt/test-utils/commit/fa3a99b4))
- **config:** Use 'projects' for `vitest` >= v3.2
([#&#8203;1344](https://redirect.github.com/nuxt/test-utils/pull/1344))
- **module:** Use user `vite` version to merge config
([#&#8203;1345](https://redirect.github.com/nuxt/test-utils/pull/1345))
- **runtime-utils:** Handle computed defined using an object
([#&#8203;1342](https://redirect.github.com/nuxt/test-utils/pull/1342))

##### 🏡 Chore

- Prefer `nuxt` over `nuxi`
([#&#8203;1310](https://redirect.github.com/nuxt/test-utils/pull/1310))
- Pin node types
([93921643](https://redirect.github.com/nuxt/test-utils/commit/93921643))
- Do not include dev-deps in `engines.node` calculation
([2f74359b](https://redirect.github.com/nuxt/test-utils/commit/2f74359b))
- Add type assertions for indexed access
([51b4a4e3](https://redirect.github.com/nuxt/test-utils/commit/51b4a4e3))
- Update installed-check flag
([2b97d885](https://redirect.github.com/nuxt/test-utils/commit/2b97d885))

#####  Tests

- Update stub name for nuxt v4
([e7b07843](https://redirect.github.com/nuxt/test-utils/commit/e7b07843))
- Satisfy typescript
([fb0dea24](https://redirect.github.com/nuxt/test-utils/commit/fb0dea24))
- Update cucumber test for nuxt v4 welcome screen template
([8ec7782f](https://redirect.github.com/nuxt/test-utils/commit/8ec7782f))
- Simplify test
([90278bac](https://redirect.github.com/nuxt/test-utils/commit/90278bac))
- Update workspace example
([02f9b0a0](https://redirect.github.com/nuxt/test-utils/commit/02f9b0a0))
- Make browser tests forward-compat with v4
([574ea5f9](https://redirect.github.com/nuxt/test-utils/commit/574ea5f9))

##### 🤖 CI

- Remove forced corepack installation
([bf19bd3a](https://redirect.github.com/nuxt/test-utils/commit/bf19bd3a))
- Run `knip`
([819aeacc](https://redirect.github.com/nuxt/test-utils/commit/819aeacc))
- Prepare environment before knipping
([ec7d8ddd](https://redirect.github.com/nuxt/test-utils/commit/ec7d8ddd))

##### ❤️ Contributors

- Daniel Roe
([@&#8203;danielroe](https://redirect.github.com/danielroe))
- Tomina ([@&#8203;Thomaash](https://redirect.github.com/Thomaash))
- lutejka ([@&#8203;lutejka](https://redirect.github.com/lutejka))
- J-Michalek
([@&#8203;J-Michalek](https://redirect.github.com/J-Michalek))

</details>

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

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

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

*2025-07-04*

##### Bug Fixes

- Correctly handle `@__PURE__` annotations after `new` keyword
([#&#8203;5998](https://redirect.github.com/rollup/rollup/issues/5998))
- Generate correct source mapping for closing braces of block statements
([#&#8203;5999](https://redirect.github.com/rollup/rollup/issues/5999))

##### Pull Requests

- [#&#8203;5998](https://redirect.github.com/rollup/rollup/pull/5998):
Support `@__PURE__` when nested after new in constructor invocations
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5999](https://redirect.github.com/rollup/rollup/pull/5999):
Add location info for closing brace of block statement
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;6002](https://redirect.github.com/rollup/rollup/pull/6002):
chore(deps): update dependency vite to v7
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;6004](https://redirect.github.com/rollup/rollup/pull/6004):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

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

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

*2025-06-26*

##### Bug Fixes

- Reinstate maxParallelFileOps limit of 1000 to resolve the issue for
some
([#&#8203;5992](https://redirect.github.com/rollup/rollup/issues/5992))

##### Pull Requests

- [#&#8203;5988](https://redirect.github.com/rollup/rollup/pull/5988):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot],
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5992](https://redirect.github.com/rollup/rollup/pull/5992):
Set maxParallelFileOps to 1000
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

</details>

<details>
<summary>swc-project/swc (@&#8203;swc/core)</summary>

###
[`v1.12.11`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#11211---2025-07-08)

[Compare
Source](https://redirect.github.com/swc-project/swc/compare/v1.12.9...v1.12.11)

##### Bug Fixes

- **(ci)** Fix CI
([#&#8203;10790](https://redirect.github.com/swc-project/swc/issues/10790))
([b3f9760](b3f97604b8))

- **(es)** Use `default-features = false` for `swc` crate usages
([#&#8203;10776](https://redirect.github.com/swc-project/swc/issues/10776))
([50b2eac](50b2eacdf7))

- **(es)** Make `swc_typescript` optional
([#&#8203;10792](https://redirect.github.com/swc-project/swc/issues/10792))
([c32569d](c32569dd55))

- **(preset-env)** Fix `default` value for `caniuse`
([#&#8203;10754](https://redirect.github.com/swc-project/swc/issues/10754))
([aa4cd5b](aa4cd5ba7c))

- **(preset-env)** Revert `default` value
([#&#8203;10778](https://redirect.github.com/swc-project/swc/issues/10778))
([7af5824](7af58242c2))

##### Features

- **(es/minifeir)** Inline lazily initialized literals
([#&#8203;10752](https://redirect.github.com/swc-project/swc/issues/10752))
([fd5d2e2](fd5d2e2f33))

- **(es/minifier)** Evaluate `Number.XXX` constants
([#&#8203;10756](https://redirect.github.com/swc-project/swc/issues/10756))
([c47dab5](c47dab5f90))

- **(es/minifier)** Implement partial evaluation of array join
([#&#8203;10758](https://redirect.github.com/swc-project/swc/issues/10758))
([bdf3a98](bdf3a98bb4))

- **(swc\_core)** Expose `swc_ecma_parser/unstable`
([#&#8203;10744](https://redirect.github.com/swc-project/swc/issues/10744))
([db0679e](db0679e5ca))

##### Miscellaneous Tasks

- **(common)** Remove `clone()` in proc macro
([#&#8203;10762](https://redirect.github.com/swc-project/swc/issues/10762))
([12e3180](12e318036c))

- **(deps)** Update `browserslist-rs` to `0.19`
([#&#8203;10750](https://redirect.github.com/swc-project/swc/issues/10750))
([f8bf21c](f8bf21c072))

- **(deps)** Remove unused deps with cargo-shear
([#&#8203;10765](https://redirect.github.com/swc-project/swc/issues/10765))
([f4e4974](f4e4974ffe))

- **(es/module)** Drop `node` feature of `swc_ecma_loader`
([#&#8203;10761](https://redirect.github.com/swc-project/swc/issues/10761))
([44471b5](44471b5151))

- **(plugin/runner)** Remove unused feature and dependency
([#&#8203;10764](https://redirect.github.com/swc-project/swc/issues/10764))
([a7d8a0a](a7d8a0ac89))

##### Performance

- **(es/lexer)** Use `bitflags` for `Syntax`
([#&#8203;10676](https://redirect.github.com/swc-project/swc/issues/10676))
([bf8c722](bf8c722e25))

- **(es/lexer)** Do not scan number if there's no underscore
([#&#8203;10788](https://redirect.github.com/swc-project/swc/issues/10788))
([f5d92ee](f5d92ee1bf))

- **(es/lints)** Make rules not parallel
([#&#8203;10772](https://redirect.github.com/swc-project/swc/issues/10772))
([4e6001c](4e6001c5a4))

- **(es/lints)** Merge critical rules
([#&#8203;10773](https://redirect.github.com/swc-project/swc/issues/10773))
([816e75a](816e75a209))

- **(es/parser)** Reduce the number of context set ops
([#&#8203;10742](https://redirect.github.com/swc-project/swc/issues/10742))
([08b4e8b](08b4e8b285))

- **(es/parser)** Reduce value set operations for context
([#&#8203;10751](https://redirect.github.com/swc-project/swc/issues/10751))
([4976b12](4976b12f93))

- **(es/parser)** Reduce query ops of current token
([#&#8203;10766](https://redirect.github.com/swc-project/swc/issues/10766))
([4304f91](4304f9129c))

- **(es/parser)** Remove useless call in `parse_ident`
([#&#8203;10770](https://redirect.github.com/swc-project/swc/issues/10770))
([4ca12c9](4ca12c9725))

- **(es/renamer)** Reduce time complexity in case of conflict
([#&#8203;10749](https://redirect.github.com/swc-project/swc/issues/10749))
([0279914](02799141bf))

- **(hstr)** Do not compare string during creating atoms
([#&#8203;10791](https://redirect.github.com/swc-project/swc/issues/10791))
([43a4f11](43a4f117cb))

- Replace `rayon` with `par-iter`
([#&#8203;10774](https://redirect.github.com/swc-project/swc/issues/10774))
([a6e6ebe](a6e6ebeaca))

##### Refactor

- **(es)** Make `swc_ecma_lint` optional for `swc` crate
([#&#8203;10767](https://redirect.github.com/swc-project/swc/issues/10767))
([f80415b](f80415baa6))

- **(es/lexer)** Use const fn in `SyntaxFlags`
([#&#8203;10737](https://redirect.github.com/swc-project/swc/issues/10737))
([b9eb23a](b9eb23aec3))

- **(es/parser)** Cleanup `parse_setter_param`
([#&#8203;10745](https://redirect.github.com/swc-project/swc/issues/10745))
([70734f4](70734f40d4))

- **(es/parser)** Cleanup `typed-arena`
([#&#8203;10769](https://redirect.github.com/swc-project/swc/issues/10769))
([ce5138d](ce5138d3aa))

- **(es/parser)** Cleanup for ctx
([#&#8203;10777](https://redirect.github.com/swc-project/swc/issues/10777))
([d60a611](d60a611dc7))

- **(es/parser)** Delete `with_ctx`
([#&#8203;10779](https://redirect.github.com/swc-project/swc/issues/10779))
([ce057c5](ce057c55ef))

- **(es/parser)** Cleanup
([#&#8203;10781](https://redirect.github.com/swc-project/swc/issues/10781))
([176ce36](176ce36d24))

- **(es/preset)** Remove deprecated `preset_env` function and `feature`
module
([#&#8203;10759](https://redirect.github.com/swc-project/swc/issues/10759))
([fa0e0ab](fa0e0abf41))

- **(es/preset-env)** Use phf for corejs3 entry
([#&#8203;10712](https://redirect.github.com/swc-project/swc/issues/10712))
([658b26d](658b26d838))

##### Testing

- **(es/minifier)** Update the terser test list
([#&#8203;10748](https://redirect.github.com/swc-project/swc/issues/10748))
([1eace01](1eace01303))

- **(es/minifier)** Update the passing test list
([#&#8203;10782](https://redirect.github.com/swc-project/swc/issues/10782))
([8aa888b](8aa888bc2a))

- **(es/parser)** Add a test for duplicate labels
([#&#8203;10784](https://redirect.github.com/swc-project/swc/issues/10784))
([28fc643](28fc64310c))

##### Pref

- **(hstr)** Do not compare static tag
([#&#8203;10771](https://redirect.github.com/swc-project/swc/issues/10771))
([5d3ce83](5d3ce83add))

###
[`v1.12.9`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#1129---2025-07-01)

[Compare
Source](https://redirect.github.com/swc-project/swc/compare/v1.12.7...v1.12.9)

##### Bug Fixes

- **(es/lexer)** Parse uppercase hex numbers correctly
([#&#8203;10728](https://redirect.github.com/swc-project/swc/issues/10728))
([ead6256](ead62560b0))

- **(es/lexer)** Allow keywords as jsx attribute names
([#&#8203;10730](https://redirect.github.com/swc-project/swc/issues/10730))
([04ef20a](https://redirect.github.com/swc-project/swc/commit/04ef20ad9b

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 14:40:42 -04:00
renovate[bot]
2ed1308e40 chore(deps): update dependency vite-plugin-vue-tracer to v1 (#1472)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[vite-plugin-vue-tracer](https://redirect.github.com/antfu/vite-plugin-vue-tracer)
| [`0.1.4` ->
`1.0.0`](https://renovatebot.com/diffs/npm/vite-plugin-vue-tracer/0.1.4/1.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite-plugin-vue-tracer/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite-plugin-vue-tracer/0.1.4/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>antfu/vite-plugin-vue-tracer (vite-plugin-vue-tracer)</summary>

###
[`v1.0.0`](https://redirect.github.com/antfu/vite-plugin-vue-tracer/releases/tag/v1.0.0)

[Compare
Source](https://redirect.github.com/antfu/vite-plugin-vue-tracer/compare/v0.1.5...v1.0.0)

*No significant changes*

#####     [View changes on
GitHub](https://redirect.github.com/antfu/vite-plugin-vue-tracer/compare/v0.1.5...v1.0.0)

###
[`v0.1.5`](https://redirect.github.com/antfu/vite-plugin-vue-tracer/releases/tag/v0.1.5)

[Compare
Source](https://redirect.github.com/antfu/vite-plugin-vue-tracer/compare/v0.1.4...v0.1.5)

#####    🚀 Features

- Support Vite 7  -  by
[@&#8203;antfu](https://redirect.github.com/antfu)
[<samp>(6927e)</samp>](https://redirect.github.com/antfu/vite-plugin-vue-tracer/commit/6927e8a)

#####     [View changes on
GitHub](https://redirect.github.com/antfu/vite-plugin-vue-tracer/compare/v0.1.4...v0.1.5)

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 14:17:33 -04:00
Zack Spear
6c03df2b97 tests: server store trial extensions (#1504)
Requested in feature PR
https://github.com/unraid/api/pull/1490#issuecomment-3059002854

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

## Summary by CodeRabbit

* **New Features**
* Enhanced trial expiration messaging to clearly communicate when the
trial is expiring, options for extension, and the consequences of
expiration.
* Added dynamic display of trial extension options and actions based on
eligibility and time remaining before expiration.

* **Bug Fixes**
* Improved accuracy of messages and actions related to trial extension
eligibility and renewal windows.

* **Tests**
* Added comprehensive tests for trial extension eligibility, renewal
windows, and related user messages and actions.

* **Documentation**
* Updated English locale strings to reflect new trial expiration and
extension messages.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-11 14:17:09 -04:00
Pujit Mehrotra
074370c42c fix: over-eager cloud query from web components (#1506)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Improved initialization logic to ensure cloud state is only loaded
when the connect plugin is installed, enhancing reliability during
startup.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-11 14:16:53 -04:00
Zack Spear
f34a33bc9f feat: trial extension allowed within 5 days of expiration (#1490) 2025-07-10 17:21:24 -07:00
github-actions[bot]
c7801a9236 chore(main): release 4.9.5 (#1503)
🤖 I have created a release *beep* *boop*
---


## [4.9.5](https://github.com/unraid/api/compare/v4.9.4...v4.9.5)
(2025-07-10)


### Bug Fixes

* **connect:** rm eager restart on `ERROR_RETYING` connection status
([#1502](https://github.com/unraid/api/issues/1502))
([dd759d9](dd759d9f0f))

---
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-07-10 10:27:45 -04:00
Pujit Mehrotra
dd759d9f0f fix(connect): rm eager restart on ERROR_RETYING connection status (#1502)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Improved connection handling to prevent unnecessary reconnection
attempts during error retry states, ensuring reconnections only occur on
specific failures.

* **Tests**
* Added comprehensive tests to verify connection recovery,
identity-based connection, logout behavior, DDoS prevention, and edge
case handling for connection state changes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-10 10:21:54 -04:00
github-actions[bot]
74da8d81ef chore(main): release 4.9.4 (#1498)
🤖 I have created a release *beep* *boop*
---


## [4.9.4](https://github.com/unraid/api/compare/v4.9.3...v4.9.4)
(2025-07-09)


### Bug Fixes

* backport `<unraid-modals>` upon plg install when necessary
([#1499](https://github.com/unraid/api/issues/1499))
([33e0b1a](33e0b1ab24))
* DefaultPageLayout patch rollback omits legacy header logo
([#1497](https://github.com/unraid/api/issues/1497))
([ea20d1e](ea20d1e211))
* event emitter setup for writing status
([#1496](https://github.com/unraid/api/issues/1496))
([ca4e2db](ca4e2db1f2))

---
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-07-09 13:40:56 -04:00
Pujit Mehrotra
33e0b1ab24 fix: backport <unraid-modals> upon plg install when necessary (#1499)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Prevented duplicate insertion of the modal component in the page
layout.

* **Chores**
* Improved installation script to ensure the modal component is added
only if missing.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-09 13:32:55 -04:00
Eli Bosley
ca4e2db1f2 fix: event emitter setup for writing status (#1496)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Updated permissions to allow additional Bash command patterns in the
configuration.
* Improved connection status updates by triggering them via event
listeners during application bootstrap.
* Adjusted module provider registrations to reflect service relocation
within the application structure.
* **Tests**
* Added comprehensive unit and integration tests for connection status
writing and cleanup behaviors.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-09 13:16:53 -04:00
Pujit Mehrotra
ea20d1e211 fix: DefaultPageLayout patch rollback omits legacy header logo (#1497)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Enhanced the header by displaying the OS version and additional server
information.
* Introduced a new notification system using a modern UI component for
toasts.
* Automatically creates a root session for local requests when no valid
session exists.

* **Bug Fixes**
* Removed outdated pop-up notification logic and bell icon from the
navigation area.

* **Style**
* Updated header layout and improved formatting for a cleaner
appearance.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-09 13:12:18 -04:00
github-actions[bot]
79c57b8ed0 chore(main): release 4.9.3 (#1495)
🤖 I have created a release *beep* *boop*
---


## [4.9.3](https://github.com/unraid/api/compare/v4.9.2...v4.9.3)
(2025-07-09)


### Bug Fixes

* duplicated header logo after api stops
([#1493](https://github.com/unraid/api/issues/1493))
([4168f43](4168f43e3e))

---
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-07-09 11:06:47 -04:00
Pujit Mehrotra
4168f43e3e fix: duplicated header logo after api stops (#1493)
Move legacy header logo omission from API file modifier to plg install
step to avoid breaking rollback (ie upon `unraid-api stop`) due to web
component upgrade.

Tested on 7.1.4 & 7.2.0-beta.0.16

Testing & Reproduction procedure:

1. Install connect plugin
2. Run `unraid-api stop` on server
3. Refresh page. Before Unraid 7.2, Plugin versions prior to this will
display a duplicated logo that blocks the nav menu. Now, it will not.
Plugin uninstall behavior remains unchanged.

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

## Summary by CodeRabbit

* **New Features**
* The plugin installation process now updates the header logo by
removing the old logo from the interface during installation.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-09 10:59:10 -04:00
github-actions[bot]
20de3ec8d6 chore(main): release 4.9.2 (#1488)
🤖 I have created a release *beep* *boop*
---


## [4.9.2](https://github.com/unraid/api/compare/v4.9.1...v4.9.2)
(2025-07-09)


### Bug Fixes

* invalid configs no longer crash API
([#1491](https://github.com/unraid/api/issues/1491))
([6bf3f77](6bf3f77638))
* invalid state for unraid plugin
([#1492](https://github.com/unraid/api/issues/1492))
([39b8f45](39b8f453da))
* release note escaping
([5b6bcb6](5b6bcb6043))

---
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-07-09 09:23:25 -04:00
Eli Bosley
39b8f453da fix: invalid state for unraid plugin (#1492)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Improved connection status handling by introducing a new service that
writes connection status to a JSON file for enhanced integration.
* Updated system components to read connection status and allowed
origins from the new JSON file, ensuring more reliable and up-to-date
information.

* **Chores**
* Expanded allowed Bash command permissions to include commands starting
with "mv:".
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-09 09:21:43 -04:00
Eli Bosley
6bf3f77638 fix: invalid configs no longer crash API (#1491)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Improved error handling when loading and parsing configuration files,
preventing crashes and ensuring fallback to default settings if issues
occur.
* Enhanced logging for configuration errors, including warnings for
empty files and detailed error messages for JSON parsing failures.
* Added error handling to plugin listing to avoid failures when
configuration loading encounters errors.

* **Chores**
* Updated permissions to allow linting only for the `./api` package
using a filtered command.

* **Tests**
* Added comprehensive tests for configuration loading, parsing,
persistence, and updating, covering various file states and error
scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-09 08:50:43 -04:00
Eli Bosley
a79d049865 chore: lint for renovate PR (#1481) 2025-07-08 17:01:49 -04:00
Eli Bosley
5b6bcb6043 fix: release note escaping 2025-07-08 16:41:05 -04:00
github-actions[bot]
6ee3cae962 chore(main): release 4.9.1 (#1487)
🤖 I have created a release *beep* *boop*
---


## [4.9.1](https://github.com/unraid/api/compare/v4.9.0...v4.9.1)
(2025-07-08)


### Bug Fixes

* **HeaderOsVersion:** adjust top margin for header component
([#1485](https://github.com/unraid/api/issues/1485))
([862b54d](862b54de8c))
* sign out doesn't work
([#1486](https://github.com/unraid/api/issues/1486))
([f3671c3](f3671c3e07))

---
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-07-08 16:30:00 -04:00
Eli Bosley
f3671c3e07 fix: sign out doesn't work (#1486)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Refactor**
* Improved handling of Connect account sign-in and sign-out with
persistent mutation instances for better status updates and error
reporting.

* **Chores**
* Expanded allowed command patterns in configuration for development,
build, and testing tasks.

* **Tests**
* Enhanced mutation mocks in component tests to increase test
reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-08 16:28:38 -04:00
Zack Spear
862b54de8c fix(HeaderOsVersion): adjust top margin for header component (#1485)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Style**
  * Increased top margin in the OS version header for improved spacing.
* Updated user profile container to use padding instead of margin for
better layout consistency.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-08 16:11:02 -04:00
github-actions[bot]
9624ca5c39 chore(main): release 4.9.0 (#1378)
🤖 I have created a release *beep* *boop*
---


## [4.9.0](https://github.com/unraid/api/compare/v4.8.0...v4.9.0)
(2025-07-08)


### Features

* add graphql resource for API plugins
([#1420](https://github.com/unraid/api/issues/1420))
([642a220](642a220c3a))
* add management page for API keys
([#1408](https://github.com/unraid/api/issues/1408))
([0788756](0788756b91))
* add rclone ([#1362](https://github.com/unraid/api/issues/1362))
([5517e75](5517e7506b))
* API key management
([#1407](https://github.com/unraid/api/issues/1407))
([d37dc3b](d37dc3bce2))
* api plugin management via CLI
([#1416](https://github.com/unraid/api/issues/1416))
([3dcbfbe](3dcbfbe489))
* build out docker components
([#1427](https://github.com/unraid/api/issues/1427))
([711cc9a](711cc9ac92))
* docker and info resolver issues
([#1423](https://github.com/unraid/api/issues/1423))
([9901039](9901039a38))
* fix shading in UPC to be less severe
([#1438](https://github.com/unraid/api/issues/1438))
([b7c2407](b7c2407840))
* info resolver cleanup
([#1425](https://github.com/unraid/api/issues/1425))
([1b279bb](1b279bbab3))
* initial codeql setup
([#1390](https://github.com/unraid/api/issues/1390))
([2ade7eb](2ade7eb527))
* initialize claude code in codebse
([#1418](https://github.com/unraid/api/issues/1418))
([b6c4ee6](b6c4ee6eb4))
* move api key fetching to use api key service
([#1439](https://github.com/unraid/api/issues/1439))
([86bea56](86bea56272))
* move to cron v4 ([#1428](https://github.com/unraid/api/issues/1428))
([b8035c2](b8035c207a))
* move to iframe for changelog
([#1388](https://github.com/unraid/api/issues/1388))
([fcd6fbc](fcd6fbcdd4))
* native slackware package
([#1381](https://github.com/unraid/api/issues/1381))
([4f63b4c](4f63b4cf3b))
* send active unraid theme to docs
([#1400](https://github.com/unraid/api/issues/1400))
([f71943b](f71943b62b))
* slightly better watch mode
([#1398](https://github.com/unraid/api/issues/1398))
([881f1e0](881f1e0960))
* upgrade nuxt-custom-elements
([#1461](https://github.com/unraid/api/issues/1461))
([345e83b](345e83bfb0))
* use bigint instead of long
([#1403](https://github.com/unraid/api/issues/1403))
([574d572](574d572d65))


### Bug Fixes

* activation indicator removed
([5edfd82](5edfd823b8))
* alignment of settings on ManagementAccess settings page
([#1421](https://github.com/unraid/api/issues/1421))
([70c790f](70c790ff89))
* allow rclone to fail to initialize
([#1453](https://github.com/unraid/api/issues/1453))
([7c6f02a](7c6f02a5cb))
* always download 7.1 versioned files for patching
([edc0d15](edc0d1578b))
* api `pnpm type-check`
([#1442](https://github.com/unraid/api/issues/1442))
([3122bdb](3122bdb953))
* **api:** connect config `email` validation
([#1454](https://github.com/unraid/api/issues/1454))
([b9a1b9b](b9a1b9b087))
* backport
unraid/webgui[#2269](https://github.com/unraid/api/issues/2269) rc.nginx
update ([#1436](https://github.com/unraid/api/issues/1436))
([a7ef06e](a7ef06ea25))
* bigint
([e54d27a](e54d27aede))
* config migration from `myservers.cfg`
([#1440](https://github.com/unraid/api/issues/1440))
([c4c9984](c4c99843c7))
* **connect:** fatal race-condition in websocket disposal
([#1462](https://github.com/unraid/api/issues/1462))
([0ec0de9](0ec0de982f))
* **connect:** mothership connection
([#1464](https://github.com/unraid/api/issues/1464))
([7be8bc8](7be8bc84d3))
* console hidden
([9b85e00](9b85e009b8))
* debounce is too long
([#1426](https://github.com/unraid/api/issues/1426))
([f12d231](f12d231e63))
* delete legacy connect keys and ensure description
([22fe91c](22fe91cd56))
* **deps:** pin dependencies
([#1465](https://github.com/unraid/api/issues/1465))
([ba75a40](ba75a409a4))
* **deps:** pin dependencies
([#1470](https://github.com/unraid/api/issues/1470))
([412b329](412b32996d))
* **deps:** storybook v9
([#1476](https://github.com/unraid/api/issues/1476))
([45bb49b](45bb49bcd6))
* **deps:** update all non-major dependencies
([#1366](https://github.com/unraid/api/issues/1366))
([291ee47](291ee475fb))
* **deps:** update all non-major dependencies
([#1379](https://github.com/unraid/api/issues/1379))
([8f70326](8f70326d0f))
* **deps:** update all non-major dependencies
([#1389](https://github.com/unraid/api/issues/1389))
([cb43f95](cb43f95233))
* **deps:** update all non-major dependencies
([#1399](https://github.com/unraid/api/issues/1399))
([68df344](68df344a4b))
* **deps:** update dependency @types/diff to v8
([#1393](https://github.com/unraid/api/issues/1393))
([00da27d](00da27d04f))
* **deps:** update dependency cache-manager to v7
([#1413](https://github.com/unraid/api/issues/1413))
([9492c2a](9492c2ae6a))
* **deps:** update dependency commander to v14
([#1394](https://github.com/unraid/api/issues/1394))
([106ea09](106ea09399))
* **deps:** update dependency diff to v8
([#1386](https://github.com/unraid/api/issues/1386))
([e580f64](e580f646a5))
* **deps:** update dependency dotenv to v17
([#1474](https://github.com/unraid/api/issues/1474))
([d613bfa](d613bfa041))
* **deps:** update dependency lucide-vue-next to ^0.509.0
([#1383](https://github.com/unraid/api/issues/1383))
([469333a](469333acd4))
* **deps:** update dependency marked to v16
([#1444](https://github.com/unraid/api/issues/1444))
([453a5b2](453a5b2c95))
* **deps:** update dependency shadcn-vue to v2
([#1302](https://github.com/unraid/api/issues/1302))
([26ecf77](26ecf779e6))
* **deps:** update dependency vue-sonner to v2
([#1401](https://github.com/unraid/api/issues/1401))
([53ca414](53ca41404f))
* disable file changes on Unraid 7.2
([#1382](https://github.com/unraid/api/issues/1382))
([02de89d](02de89d130))
* do not start API with doinst.sh
([7d88b33](7d88b3393c))
* do not uninstall fully on 7.2
([#1484](https://github.com/unraid/api/issues/1484))
([2263881](22638811a9))
* drop console with terser
([a87d455](a87d455bac))
* error logs from `cloud` query when connect is not installed
([#1450](https://github.com/unraid/api/issues/1450))
([719f460](719f460016))
* flash backup integration with Unraid Connect config
([#1448](https://github.com/unraid/api/issues/1448))
([038c582](038c582aed))
* header padding regression
([#1477](https://github.com/unraid/api/issues/1477))
([e791cc6](e791cc680d))
* incorrect state merging in redux store
([#1437](https://github.com/unraid/api/issues/1437))
([17b7428](17b7428779))
* lanip copy button not present
([#1459](https://github.com/unraid/api/issues/1459))
([a280786](a2807864ac))
* move to bigint scalar
([b625227](b625227913))
* node_modules dir removed on plugin update
([#1406](https://github.com/unraid/api/issues/1406))
([7b005cb](7b005cbbf6))
* omit Connect actions in UPC when plugin is not installed
([#1417](https://github.com/unraid/api/issues/1417))
([8c8a527](8c8a5276b4))
* parsing of `ssoEnabled` in state.php
([#1455](https://github.com/unraid/api/issues/1455))
([f542c8e](f542c8e0bd))
* pin ranges ([#1460](https://github.com/unraid/api/issues/1460))
([f88400e](f88400eea8))
* pr plugin promotion workflow
([#1456](https://github.com/unraid/api/issues/1456))
([13bd9bb](13bd9bb567))
* proper fallback if missing paths config modules
([7067e9e](7067e9e3dd))
* rc.unraid-api now cleans up older dependencies
([#1404](https://github.com/unraid/api/issues/1404))
([83076bb](83076bb940))
* remote access lifecycle during boot & shutdown
([#1422](https://github.com/unraid/api/issues/1422))
([7bc583b](7bc583b186))
* sign out correctly on error
([#1452](https://github.com/unraid/api/issues/1452))
([d08fc94](d08fc94afb))
* simplify usb listing
([#1402](https://github.com/unraid/api/issues/1402))
([5355115](5355115af2))
* theme issues when sent from graph
([#1424](https://github.com/unraid/api/issues/1424))
([75ad838](75ad8381bd))
* **ui:** notifications positioning regression
([#1445](https://github.com/unraid/api/issues/1445))
([f73e5e0](f73e5e0058))
* use some instead of every for connect detection
([9ce2fee](9ce2fee380))


### Reverts

* revert package.json dependency updates from commit 711cc9a for api and
packages/*
([94420e4](94420e4d45))

---
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-07-08 15:45:49 -04:00
Eli Bosley
22638811a9 fix: do not uninstall fully on 7.2 (#1484)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Uninstallation process now adapts based on Unraid version: for version
7.2 or higher, users receive a notification and are prompted to reboot
to complete plugin removal.
* **Bug Fixes**
* Improved handling of plugin removal to ensure compatibility with
different Unraid versions and prevent unintended reinstalls.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-08 15:44:30 -04:00
Eli Bosley
5edfd823b8 fix: activation indicator removed 2025-07-08 15:42:41 -04:00
Michael Datelle
0379845618 refactor: update welcome modal and color picker (#1466)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added a new "full" size option to dialogs, allowing dialogs to fill
the entire screen.
* Introduced a prop to control the visibility of the close button on
dialogs.

* **Refactor**
* Updated the Welcome Modal to use the new Dialog component with
improved layout and slot usage.
* Reworked dialog content structure for better flexibility and styling.

* **Tests**
* Updated tests to reflect the switch from the Modal component to the
Dialog component, including new mocks and assertions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2025-07-08 15:24:29 -04:00
Pujit Mehrotra
5a3e7a91eb chore: inform users to refresh page if nchan breaks (#1482)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added an informational message during plugin installation to guide
users on when it is safe to refresh the page.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-08 15:10:43 -04:00
Eli Bosley
aefcc762ca chore: remove vue-jsx 2025-07-08 14:58:09 -04:00
Eli Bosley
07b59b0970 chore: remove jsx plugin for webcomponents (#1480)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
  * Updated internal configuration to remove unused plugin dependencies.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-08 14:57:19 -04:00
Eli Bosley
91883e2b47 chore: add plugin links to readme (#1479)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
* Added a prominently displayed "Plugin Downloads" section to the
README, featuring large badge-style download buttons and direct links
for both production and staging plugin files.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-08 14:23:46 -04:00
renovate[bot]
e57ecd551f chore(deps): update dependency vite to v7 (#1434)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`6.3.5` ->
`7.0.3`](https://renovatebot.com/diffs/npm/vite/6.3.5/7.0.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/7.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.3.5/7.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v7.0.3`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-703-2025-07-08-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.0.2...v7.0.3)

##### Bug Fixes

- **client:** protect against window being defined but addEv undefined
([#&#8203;20359](https://redirect.github.com/vitejs/vite/issues/20359))
([31d1467](31d1467cf0))
- **define:** replace optional values
([#&#8203;20338](https://redirect.github.com/vitejs/vite/issues/20338))
([9465ae1](9465ae1378))
- **deps:** update all non-major dependencies
([#&#8203;20366](https://redirect.github.com/vitejs/vite/issues/20366))
([43ac73d](43ac73da27))

##### Miscellaneous Chores

- **deps:** update dependency dotenv to v17
([#&#8203;20325](https://redirect.github.com/vitejs/vite/issues/20325))
([45040d4](45040d4807))
- **deps:** update dependency rolldown to ^1.0.0-beta.24
([#&#8203;20365](https://redirect.github.com/vitejs/vite/issues/20365))
([5ab25e7](5ab25e73a2))
- use `n/prefer-node-protocol` rule
([#&#8203;20368](https://redirect.github.com/vitejs/vite/issues/20368))
([38bb268](38bb268cde))

##### Code Refactoring

- minor changes to reduce diff between normal Vite and rolldown-vite
([#&#8203;20354](https://redirect.github.com/vitejs/vite/issues/20354))
([2e8050e](2e8050e4cd))

###
[`v7.0.2`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-702-2025-07-04-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.0.1...v7.0.2)

##### Bug Fixes

- **css:** resolve relative paths in sass, revert
[#&#8203;20300](https://redirect.github.com/vitejs/vite/issues/20300)
([#&#8203;20349](https://redirect.github.com/vitejs/vite/issues/20349))
([db8bd41](db8bd412a8))

###
[`v7.0.1`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small-701-2025-07-03-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v7.0.0...v7.0.1)

##### Bug Fixes

- **css:** skip resolving resolved paths in sass
([#&#8203;20300](https://redirect.github.com/vitejs/vite/issues/20300))
([ac528a4](ac528a44c3))
- **deps:** update all non-major dependencies
([#&#8203;20324](https://redirect.github.com/vitejs/vite/issues/20324))
([3e81af3](3e81af38a8))
- **types:** add a global interface for Worker
([#&#8203;20243](https://redirect.github.com/vitejs/vite/issues/20243))
([37bdfc1](37bdfc18f4))

##### Miscellaneous Chores

- **deps:** update rolldown-related dependencies
([#&#8203;20323](https://redirect.github.com/vitejs/vite/issues/20323))
([30d2f1b](30d2f1b38c))
- fix typos and grammatical errors across documentation and comments
([#&#8203;20337](https://redirect.github.com/vitejs/vite/issues/20337))
([c1c951d](c1c951dcc3))
- group commits by category in changelog
([#&#8203;20310](https://redirect.github.com/vitejs/vite/issues/20310))
([41e83f6](41e83f62b1))
- rearrange 7.0 changelog
([#&#8203;20280](https://redirect.github.com/vitejs/vite/issues/20280))
([eafd28a](eafd28ac88))

###
[`v7.0.0`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#700-2025-06-24)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.3.5...v7.0.0)

- fix: keep `import.meta.url` in bundled Vite
([#&#8203;20235](https://redirect.github.com/vitejs/vite/issues/20235))
([3bf3a8a](3bf3a8ab00)),
closes
[#&#8203;20235](https://redirect.github.com/vitejs/vite/issues/20235)
- fix(deps): update all non-major dependencies
([#&#8203;20271](https://redirect.github.com/vitejs/vite/issues/20271))
([6b64d63](6b64d63d70)),
closes
[#&#8203;20271](https://redirect.github.com/vitejs/vite/issues/20271)
- fix(module-runner): export `ssrExportNameKey`
([#&#8203;20266](https://redirect.github.com/vitejs/vite/issues/20266))
([ac302a7](ac302a7290)),
closes
[#&#8203;20266](https://redirect.github.com/vitejs/vite/issues/20266)
- fix(module-runner): expose `normalizeModuleId`
([#&#8203;20277](https://redirect.github.com/vitejs/vite/issues/20277))
([9b98dcb](9b98dcbf75)),
closes
[#&#8203;20277](https://redirect.github.com/vitejs/vite/issues/20277)
- feat(types): use terser types from terser package
([#&#8203;20274](https://redirect.github.com/vitejs/vite/issues/20274))
([a5799fa](a5799fa74c)),
closes
[#&#8203;20274](https://redirect.github.com/vitejs/vite/issues/20274)
- chore: "indentity" → "identity" in test description
([#&#8203;20225](https://redirect.github.com/vitejs/vite/issues/20225))
([ea9aed7](ea9aed7ebc)),
closes
[#&#8203;20225](https://redirect.github.com/vitejs/vite/issues/20225)
- chore: typos in comments
([#&#8203;20259](https://redirect.github.com/vitejs/vite/issues/20259))
([b135918](b135918b91)),
closes
[#&#8203;20259](https://redirect.github.com/vitejs/vite/issues/20259)
- chore(deps): update rolldown-related dependencies
([#&#8203;20270](https://redirect.github.com/vitejs/vite/issues/20270))
([f7377c3](f7377c3eae)),
closes
[#&#8203;20270](https://redirect.github.com/vitejs/vite/issues/20270)
- perf(utils): improve performance of `numberToPos`
([#&#8203;20244](https://redirect.github.com/vitejs/vite/issues/20244))
([3f46901](3f469012ad)),
closes
[#&#8203;20244](https://redirect.github.com/vitejs/vite/issues/20244)

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 13:19:40 -04:00
Eli Bosley
45bb49bcd6 fix(deps): storybook v9 (#1476)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Upgraded Storybook and related dependencies to the latest major
version.
  * Updated Storybook configuration and removed deprecated addons.
  * Added Storybook linting plugin to the development environment.
* Added deployment scripts and configuration for Storybook to Cloudflare
Workers.
* Introduced GitHub Actions workflow for automated Storybook deployment
to staging and production environments.
* Enhanced environment variable loading to suppress output in production
and non-development environments.

* **Refactor**
* Updated all Storybook stories to use the new Storybook package imports
and consistent single-quote formatting.
* Improved ESLint configuration formatting and included recommended
Storybook linting rules.

* **Style**
* Standardized import statements and string quotes across all Storybook
story files for consistency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-08 13:00:20 -04:00
renovate[bot]
06578fcdf5 chore(deps): update dependency vue-tsc to v3 (#1473)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [vue-tsc](https://redirect.github.com/vuejs/language-tools)
([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`2.2.10` ->
`3.0.1`](https://renovatebot.com/diffs/npm/vue-tsc/2.2.10/3.0.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/2.2.10/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v3.0.1`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#301-2025-07-02)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v3.0.0...v3.0.1)

##### Bug Fixes

- fix(language-core): remove calculation logic of element inner loc
([#&#8203;5460](https://redirect.github.com/vuejs/language-tools/issues/5460))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(vscode): correct syntax highlight of `v-else`
([#&#8203;5470](https://redirect.github.com/vuejs/language-tools/issues/5470))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Other Changes

- docs(vscode): update Russian translation for VS Code extension
([#&#8203;5461](https://redirect.github.com/vuejs/language-tools/issues/5461))
- Thanks to
[@&#8203;AndreyYolkin](https://redirect.github.com/AndreyYolkin)!
- chore: update volar to 2.4.17
- typescript: correctly use `getModeForUsageLocation` to calculate the
resolution mode

###
[`v3.0.0`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#300-2025-07-01)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.2.12...v3.0.0)

##### Features

- feat(typescript-plugin): skip declaration files in goto components
definition
([#&#8203;5221](https://redirect.github.com/vuejs/language-tools/issues/5221))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(language-core): introduce `strictVModel` option
([#&#8203;5229](https://redirect.github.com/vuejs/language-tools/issues/5229))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(vscode, language-server, typescript-plugin): communicate with
tsserver based on request forwarding
([#&#8203;5252](https://redirect.github.com/vuejs/language-tools/issues/5252),
[#&#8203;5395](https://redirect.github.com/vuejs/language-tools/issues/5395),
[#&#8203;5443](https://redirect.github.com/vuejs/language-tools/issues/5443))
- feat(language-core): support navigation of events with `v-on` syntax
([#&#8203;5275](https://redirect.github.com/vuejs/language-tools/issues/5275))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(language-core): type support of slot children
([#&#8203;5137](https://redirect.github.com/vuejs/language-tools/issues/5137))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(language-service): autocomplete for props with union type
- feat(language-service): document links for template refs
([#&#8203;5385](https://redirect.github.com/vuejs/language-tools/issues/5385))
- Thanks to
[@&#8203;alex-snezhko](https://redirect.github.com/alex-snezhko)!
- feat(language-core): resolve external stylesheets
([#&#8203;5136](https://redirect.github.com/vuejs/language-tools/issues/5136))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(language-core): add `strictCssModules` option
([#&#8203;5164](https://redirect.github.com/vuejs/language-tools/issues/5164))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(component-type-helpers): add `ComponentAttrs` type for attribute
extraction
- feat(vscode): add support for `typescript.sortImports`,
`typescript.removeUnusedImports` commands
([#&#8203;5444](https://redirect.github.com/vuejs/language-tools/issues/5444))
- feat(vscode): i18n support of configurations and commands with
`zh-CN`, `zh-TW`, `ru` and `ja`
([#&#8203;5330](https://redirect.github.com/vuejs/language-tools/issues/5330),
[#&#8203;5340](https://redirect.github.com/vuejs/language-tools/issues/5340),
[#&#8203;5404](https://redirect.github.com/vuejs/language-tools/issues/5404))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX),
[@&#8203;PurplePlanen](https://redirect.github.com/PurplePlanen) and
[@&#8203;zyoshoka](https://redirect.github.com/zyoshoka)!

##### Bug Fixes

- fix(language-core): generate condition guards for model events
([#&#8203;5225](https://redirect.github.com/vuejs/language-tools/issues/5225))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): prevent global types generation in declaration
files
([#&#8203;5239](https://redirect.github.com/vuejs/language-tools/issues/5239))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): prevent eager inference of slot props from
generics
([#&#8203;5247](https://redirect.github.com/vuejs/language-tools/issues/5247))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(typescript-plugin): prevent highlighting native element tags with
same name as components
([#&#8203;5253](https://redirect.github.com/vuejs/language-tools/issues/5253))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-service): do not provide required props inlay hints for
intrinsic elements
([#&#8203;5258](https://redirect.github.com/vuejs/language-tools/issues/5258))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(vscode): handle `typescript-language-features` module loading race
condition
([#&#8203;5260](https://redirect.github.com/vuejs/language-tools/issues/5260))
- fix(component-meta): update event type representation to include array
notation
- fix(language-core): correct error mapping when prop exp is arrow
function
([#&#8203;5262](https://redirect.github.com/vuejs/language-tools/issues/5262))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-service): add document highlights support
([#&#8203;5263](https://redirect.github.com/vuejs/language-tools/issues/5263))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): correct type inference of multiple template refs
with same name
([#&#8203;5271](https://redirect.github.com/vuejs/language-tools/issues/5271))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): skip AST parsing when the expression is an
identifier
([#&#8203;5268](https://redirect.github.com/vuejs/language-tools/issues/5268))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): do not drop leading comments of `defineModels`
([#&#8203;5273](https://redirect.github.com/vuejs/language-tools/issues/5273))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): improve fault tolerance for unsupported script
languages
- fix(language-core): avoid invalid auto import edit position when setup
global types fails
- fix(language-core): transform slot parameter list into equivalent
binding pattern
([#&#8203;5245](https://redirect.github.com/vuejs/language-tools/issues/5245))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): correct codegen when src path does not match the
generated length - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-service): exclude `data-` attribute completion from sfc
level nodes - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): remove semantic highlight of v-bind shorthand
([#&#8203;5321](https://redirect.github.com/vuejs/language-tools/issues/5321))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(vscode): inline html comment pattern in Vue syntax definition
([#&#8203;5327](https://redirect.github.com/vuejs/language-tools/issues/5327))
- Thanks to [@&#8203;zyoshoka](https://redirect.github.com/zyoshoka)!
- fix(language-core): avoid unrelated virtual code recomputes on style
and template change - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(component-meta): attach namespace prefix correctly on generated
types
([#&#8203;5326](https://redirect.github.com/vuejs/language-tools/issues/5326))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): drop `undefined` from optional prop type with
default in template
([#&#8203;5339](https://redirect.github.com/vuejs/language-tools/issues/5339))
- Thanks to
[@&#8203;Dylancyclone](https://redirect.github.com/Dylancyclone)!
- fix: depend on exact volar version
([#&#8203;5345](https://redirect.github.com/vuejs/language-tools/issues/5345))
- Thanks to
[@&#8203;tomblachut](https://redirect.github.com/tomblachut)!
- fix(language-core): ignore frontmatter block in markdown files
([#&#8203;5362](https://redirect.github.com/vuejs/language-tools/issues/5362))
- Thanks to [@&#8203;brc-dd](https://redirect.github.com/brc-dd)!
- fix(component-meta): only exclude vnode events from props
([#&#8203;5369](https://redirect.github.com/vuejs/language-tools/issues/5369))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): skip css references for position within virtual
code with `navigation: true`
([#&#8203;5378](https://redirect.github.com/vuejs/language-tools/issues/5378))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): hoist export declarations from generic script
block
([#&#8203;5398](https://redirect.github.com/vuejs/language-tools/issues/5398))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(vscode): correct syntax highlight for directives starting with
`v-for`
([#&#8203;5399](https://redirect.github.com/vuejs/language-tools/issues/5399))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): correct support for flatten plugins
([#&#8203;5392](https://redirect.github.com/vuejs/language-tools/issues/5392))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- fix(language-core): remove `semantic` code feature on first argument
of `useCssModule` and `useTemplateRef` - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(typescript-plugin): filter completion items of macros and global
variables in template and styles
([#&#8203;5425](https://redirect.github.com/vuejs/language-tools/issues/5425))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): do not generate redundant function scopes to
affect type narrowing
([#&#8203;5430](https://redirect.github.com/vuejs/language-tools/issues/5430))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(component-meta): add new file name in `updateFile`
([#&#8203;5438](https://redirect.github.com/vuejs/language-tools/issues/5438))
- Thanks to [@&#8203;Akryum](https://redirect.github.com/Akryum)!
- fix(language-core): `Prettify<T>` breaks generics inferencing
([#&#8203;5424](https://redirect.github.com/vuejs/language-tools/issues/5424))
- Thanks to [@&#8203;so1ve](https://redirect.github.com/so1ve)!
- fix(language-core): use `var` instead of `let` to declare `attrsVar`
that may be hoisted - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Performance

- perf(language-core): cache and reuse inline ts asts during full
updates
([#&#8203;5435](https://redirect.github.com/vuejs/language-tools/issues/5435))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Other Changes

- refactor(vscode, language-server): remove hybrid mode configuration
([#&#8203;5248](https://redirect.github.com/vuejs/language-tools/issues/5248))
- refactor(vscode): remove write virtual files command
- chore(vscode): correct `directory` path in package.json
([#&#8203;5283](https://redirect.github.com/vuejs/language-tools/issues/5283))
- Thanks to [@&#8203;zyoshoka](https://redirect.github.com/zyoshoka)!
- chore(vscode): use rolldown for bundling
([#&#8203;5337](https://redirect.github.com/vuejs/language-tools/issues/5337))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(vscode): remove doctor - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- docs: update instructions for neovim lsp configuration
([#&#8203;5361](https://redirect.github.com/vuejs/language-tools/issues/5361))
- Thanks to [@&#8203;kshksdrt](https://redirect.github.com/kshksdrt)!
- refactor(vscode): remove Vite problem matcher
([#&#8203;5375](https://redirect.github.com/vuejs/language-tools/issues/5375))
- chore(docs): update vue language package name
([#&#8203;5376](https://redirect.github.com/vuejs/language-tools/issues/5376))
- Thanks to [@&#8203;marktlinn](https://redirect.github.com/marktlinn)!
- chore(ci): set pre-release status when publishing to Open VSX
([#&#8203;5377](https://redirect.github.com/vuejs/language-tools/issues/5377))
- Thanks to [@&#8203;lukashass](https://redirect.github.com/lukashass)!
- docs: fallback workaround of `vue_language_server_path` in nvim setup
example
([#&#8203;5391](https://redirect.github.com/vuejs/language-tools/issues/5391))
- Thanks to
[@&#8203;menuRivera](https://redirect.github.com/menuRivera)!
- test(component-meta): simplify code with snapshots
([#&#8203;5403](https://redirect.github.com/vuejs/language-tools/issues/5403))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- docs(nvim): move neovim lspconfig docs to wiki page
([#&#8203;5408](https://redirect.github.com/vuejs/language-tools/issues/5408))
- Thanks to
[@&#8203;RayGuo-ergou](https://redirect.github.com/RayGuo-ergou)!
- refactor(language-server): drop `typescript.tsdk` initialization
option
([#&#8203;5409](https://redirect.github.com/vuejs/language-tools/issues/5409))
- refactor(language-service): drop name casing convertion and its
language status item
([#&#8203;5411](https://redirect.github.com/vuejs/language-tools/issues/5411))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(language-core): drop `defineProp` support
([#&#8203;5415](https://redirect.github.com/vuejs/language-tools/issues/5415))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- chore(vscode): change display name to "Vue (Official)"
- refactor: cleanup dependencies relationship
([#&#8203;5421](https://redirect.github.com/vuejs/language-tools/issues/5421))
- refactor(component-meta): use type-helpers as a peer dependency
- refactor(vscode): cleanup extension client
([#&#8203;5422](https://redirect.github.com/vuejs/language-tools/issues/5422))
- refactor(language-server): move in server code from insiders edition
([#&#8203;5423](https://redirect.github.com/vuejs/language-tools/issues/5423))
- chore: introduce oxlint for faster linting
([#&#8203;5416](https://redirect.github.com/vuejs/language-tools/issues/5416))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(vscode): remove split editor feature
([#&#8203;5446](https://redirect.github.com/vuejs/language-tools/issues/5446))
- refactor(vscode): rename configuration keys from `complete` to
`suggest` for clarity

###
[`v2.2.12`](https://redirect.github.com/vuejs/language-tools/compare/v2.2.10...0b13bf1966398ea3949b6b02d09b251ddc9a51eb)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.2.10...v2.2.12)

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 11:57:14 -04:00
Eli Bosley
e791cc680d fix: header padding regression (#1477)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Style**
* Improved spacing in the header and user profile components by adding
top and right margins for a cleaner layout.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-08 11:55:45 -04:00
renovate[bot]
5ce5d19db0 chore(deps): pin node.js (#1469)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [node](https://redirect.github.com/nodejs/node) | final | pin |
`22-bookworm-slim` -> `22.17.0-bookworm-slim` |

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### 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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMTcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 11:34:49 -04:00
Eli Bosley
c0ccdfa030 chore: replace standard-version with commit-and-tag-version 2025-07-08 11:08:07 -04:00
renovate[bot]
d613bfa041 fix(deps): update dependency dotenv to v17 (#1474)
This PR contains the following updates:

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

---

### Release Notes

<details>
<summary>motdotla/dotenv (dotenv)</summary>

###
[`v17.1.0`](https://redirect.github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1710-2025-07-07)

[Compare
Source](https://redirect.github.com/motdotla/dotenv/compare/v17.0.1...v17.1.0)

##### Added

- Add additional security and configuration tips to the runtime log
([#&#8203;884](https://redirect.github.com/motdotla/dotenv/pull/884))
- Dim the tips text from the main injection information text

```js
const TIPS = [
  '🔐 encrypt with dotenvx: https://dotenvx.com',
  '🔐 prevent committing .env to code: https://dotenvx.com/precommit',
  '🔐 prevent building .env in docker: https://dotenvx.com/prebuild',
  '🛠️  run anywhere with `dotenvx run -- yourcommand`',
  '⚙️  specify custom .env file path with { path: \'/custom/path/.env\' }',
  '⚙️  enable debug logging with { debug: true }',
  '⚙️  override existing env vars with { override: true }',
  '⚙️  suppress all logs with { quiet: true }',
  '⚙️  write to custom object with { processEnv: myObject }',
  '⚙️  load multiple .env files with { path: [\'.env.local\', \'.env\'] }'
]
```

###
[`v17.0.1`](https://redirect.github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1701-2025-07-01)

[Compare
Source](https://redirect.github.com/motdotla/dotenv/compare/v17.0.0...v17.0.1)

##### Changed

- Patched injected log to count only populated/set keys to process.env
([#&#8203;879](https://redirect.github.com/motdotla/dotenv/pull/879))

###
[`v17.0.0`](https://redirect.github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1700-2025-06-27)

[Compare
Source](https://redirect.github.com/motdotla/dotenv/compare/v16.6.1...v17.0.0)

##### Changed

- Default `quiet` to false - informational (file and keys count) runtime
log message shows by default
([#&#8203;875](https://redirect.github.com/motdotla/dotenv/pull/874))

###
[`v16.6.1`](https://redirect.github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1661-2025-06-27)

[Compare
Source](https://redirect.github.com/motdotla/dotenv/compare/v16.6.0...v16.6.1)

##### Changed

- Default `quiet` to true – hiding the runtime log message
([#&#8203;874](https://redirect.github.com/motdotla/dotenv/pull/874))
- NOTICE: 17.0.0 will be released with quiet defaulting to false. Use
`config({ quiet: true })` to suppress.
- And check out the new
[dotenvx](https://redirect.github.com/dotenvx/dotenvx). As coding
workflows evolve and agents increasingly handle secrets, encrypted .env
files offer a much safer way to deploy both agents and code together
with secure secrets. Simply switch `require('dotenv').config()` for
`require('@&#8203;dotenvx/dotenvx').config()`.

###
[`v16.6.0`](https://redirect.github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1660-2025-06-26)

[Compare
Source](https://redirect.github.com/motdotla/dotenv/compare/v16.5.0...v16.6.0)

##### Added

- Default log helpful message `[dotenv@16.6.0] injecting env (1) from
.env`
([#&#8203;870](https://redirect.github.com/motdotla/dotenv/pull/870))
- Use `{ quiet: true }` to suppress
- Aligns dotenv more closely with
[dotenvx](https://redirect.github.com/dotenvx/dotenvx).

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 10:59:03 -04:00
renovate[bot]
453a5b2c95 fix(deps): update dependency marked to v16 (#1444)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
| [marked](https://marked.js.org)
([source](https://redirect.github.com/markedjs/marked)) | [`15.0.12` ->
`16.0.0`](https://renovatebot.com/diffs/npm/marked/15.0.12/16.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/marked/16.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/marked/15.0.12/16.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>markedjs/marked (marked)</summary>

###
[`v16.0.0`](https://redirect.github.com/markedjs/marked/releases/tag/v16.0.0)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v15.0.12...v16.0.0)

##### Bug Fixes

- remove cjs build & update min node to 20
([#&#8203;3687](https://redirect.github.com/markedjs/marked/issues/3687))
([0a35d8f](0a35d8f28b))

##### BREAKING CHANGES

- minify ./lib/marked.esm.js and ./lib/marked.umd.js
- remove ./marked.min.js use ./lib/marked.umd.js instead
- remove ./lib/marked.cjs
- update minimum supported node version to 20 to support
`require('marked.esm.js')`. see
https://nodejs.org/docs/latest-v20.x/api/modules.html#loading-ecmascript-modules-using-require

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 10:55:28 -04:00
renovate[bot]
8a82a3a1b7 chore(deps): update dependency vite-plugin-node to v7 (#1471)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[vite-plugin-node](https://redirect.github.com/axe-me/vite-plugin-node)
| [`5.0.1` ->
`7.0.0`](https://renovatebot.com/diffs/npm/vite-plugin-node/5.0.1/7.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite-plugin-node/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite-plugin-node/5.0.1/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>axe-me/vite-plugin-node (vite-plugin-node)</summary>

###
[`v7.0.0`](https://redirect.github.com/axe-me/vite-plugin-node/blob/HEAD/CHANGELOG.md#700)

- support vite 7.x, in order to align with vite major version, the major
version of this plugin is bumped to 7.x as well. rip 6
- add `reloadAppOnFileChange` option, when set to true, the app will be
reloaded on file changes.

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 10:48:33 -04:00
Eli Bosley
9b85e009b8 fix: console hidden 2025-07-08 10:46:44 -04:00
Eli Bosley
a87d455bac fix: drop console with terser 2025-07-08 10:46:35 -04:00
renovate[bot]
412b32996d fix(deps): pin dependencies (#1470)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@apollo/client](https://www.apollographql.com/docs/react/)
([source](https://redirect.github.com/apollographql/apollo-client)) |
dependencies | pin | [`^3.12.3` ->
`3.13.8`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.13.8/3.13.8)
|
| [@apollo/client](https://www.apollographql.com/docs/react/)
([source](https://redirect.github.com/apollographql/apollo-client)) |
peerDependencies | pin | [`^3.11.8` ->
`3.13.8`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.13.8/3.13.8)
|
| [@apollo/client](https://www.apollographql.com/docs/react/)
([source](https://redirect.github.com/apollographql/apollo-client)) |
devDependencies | pin | [`^3.11.8` ->
`3.13.8`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.13.8/3.13.8)
|
| [@apollo/client](https://www.apollographql.com/docs/react/)
([source](https://redirect.github.com/apollographql/apollo-client)) |
dependencies | pin | [`^3.11.8` ->
`3.13.8`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.13.8/3.13.8)
|
|
[@apollo/server](https://redirect.github.com/apollographql/apollo-server)
([source](https://redirect.github.com/apollographql/apollo-server/tree/HEAD/packages/server))
| dependencies | pin | [`^4.11.2` ->
`4.12.2`](https://renovatebot.com/diffs/npm/@apollo%2fserver/4.12.2/4.12.2)
|
|
[graphql-subscriptions](https://redirect.github.com/apollographql/graphql-subscriptions)
| peerDependencies | pin | [`^3.0.0` ->
`3.0.0`](https://renovatebot.com/diffs/npm/graphql-subscriptions/3.0.0/3.0.0)
|
|
[graphql-subscriptions](https://redirect.github.com/apollographql/graphql-subscriptions)
| devDependencies | pin | [`^3.0.0` ->
`3.0.0`](https://renovatebot.com/diffs/npm/graphql-subscriptions/3.0.0/3.0.0)
|
|
[graphql-subscriptions](https://redirect.github.com/apollographql/graphql-subscriptions)
| dependencies | pin | [`^3.0.0` ->
`3.0.0`](https://renovatebot.com/diffs/npm/graphql-subscriptions/3.0.0/3.0.0)
|
| [graphql-tag](https://redirect.github.com/apollographql/graphql-tag) |
dependencies | pin | [`^2.12.6` ->
`2.12.6`](https://renovatebot.com/diffs/npm/graphql-tag/2.12.6/2.12.6) |
|
[zen-observable-ts](https://redirect.github.com/apollographql/zen-observable-ts)
| peerDependencies | pin | [`^1.1.0` ->
`1.1.0`](https://renovatebot.com/diffs/npm/zen-observable-ts/1.1.0/1.1.0)
|
|
[zen-observable-ts](https://redirect.github.com/apollographql/zen-observable-ts)
| devDependencies | pin | [`^1.1.0` ->
`1.1.0`](https://renovatebot.com/diffs/npm/zen-observable-ts/1.1.0/1.1.0)
|
|
[zen-observable-ts](https://redirect.github.com/apollographql/zen-observable-ts)
| dependencies | pin | [`^1.1.0` ->
`1.1.0`](https://renovatebot.com/diffs/npm/zen-observable-ts/1.1.0/1.1.0)
|

Add the preset `:preserveSemverRanges` to your config if you don't want
to pin your dependencies.

---

### 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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMTcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 10:44:39 -04:00
renovate[bot]
ba75a409a4 fix(deps): pin dependencies (#1465)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[@as-integrations/fastify](https://redirect.github.com/apollo-server-integrations/apollo-server-integration-fastify/blob/main/readme.md)
([source](https://redirect.github.com/apollo-server-integrations/apollo-server-integration-fastify))
| dependencies | pin | [`^2.1.1` ->
`2.1.1`](https://renovatebot.com/diffs/npm/@as-integrations%2ffastify/2.1.1/2.1.1)
|
| [@eslint/js](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint/tree/HEAD/packages/js))
| devDependencies | pin | [`^9.21.0` ->
`9.29.0`](https://renovatebot.com/diffs/npm/@eslint%2fjs/9.29.0/9.29.0)
|
| [@faker-js/faker](https://fakerjs.dev)
([source](https://redirect.github.com/faker-js/faker)) | devDependencies
| pin | [`^9.8.0` ->
`9.8.0`](https://renovatebot.com/diffs/npm/@faker-js%2ffaker/9.8.0/9.8.0)
|
| [@fastify/cookie](https://redirect.github.com/fastify/fastify-cookie)
| dependencies | pin | [`^11.0.2` ->
`11.0.2`](https://renovatebot.com/diffs/npm/@fastify%2fcookie/11.0.2/11.0.2)
|
| [@fastify/helmet](https://redirect.github.com/fastify/fastify-helmet)
| dependencies | pin | [`^13.0.1` ->
`13.0.1`](https://renovatebot.com/diffs/npm/@fastify%2fhelmet/13.0.1/13.0.1)
|
| [@floating-ui/dom](https://floating-ui.com)
([source](https://redirect.github.com/floating-ui/floating-ui/tree/HEAD/packages/dom))
| dependencies | pin | [`^1.6.12` ->
`1.7.1`](https://renovatebot.com/diffs/npm/@floating-ui%2fdom/1.7.1/1.7.1)
|
| [@floating-ui/utils](https://floating-ui.com)
([source](https://redirect.github.com/floating-ui/floating-ui/tree/HEAD/packages/utils))
| dependencies | pin | [`^0.2.8` ->
`0.2.9`](https://renovatebot.com/diffs/npm/@floating-ui%2futils/0.2.9/0.2.9)
|
| [@floating-ui/vue](https://floating-ui.com/docs/vue)
([source](https://redirect.github.com/floating-ui/floating-ui/tree/HEAD/packages/vue))
| dependencies | pin | [`^1.1.5` ->
`1.1.6`](https://renovatebot.com/diffs/npm/@floating-ui%2fvue/1.1.6/1.1.6)
|
|
[@graphql-codegen/add](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/other/add))
| devDependencies | pin | [`^5.0.3` ->
`5.0.3`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fadd/5.0.3/5.0.3)
|
|
[@graphql-codegen/cli](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/graphql-codegen-cli))
| devDependencies | pin | [`^5.0.3` ->
`5.0.7`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fcli/5.0.7/5.0.7)
|
|
[@graphql-codegen/client-preset](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/presets/client))
| devDependencies | pin | [`^4.5.1` ->
`4.8.2`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fclient-preset/4.8.2/4.8.2)
|
|
[@graphql-codegen/client-preset](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/presets/client))
| dependencies | pin | [`^4.5.0` ->
`4.8.2`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fclient-preset/4.8.2/4.8.2)
|
|
[@graphql-codegen/fragment-matcher](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/other/fragment-matcher))
| devDependencies | pin | [`^5.0.2` ->
`5.1.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ffragment-matcher/5.1.0/5.1.0)
|
|
[@graphql-codegen/import-types-preset](https://redirect.github.com/dotansimha/graphql-code-generator-community)
([source](https://redirect.github.com/dotansimha/graphql-code-generator-community/tree/HEAD/packages/presets/import-types))
| devDependencies | pin | [`^3.0.0` ->
`3.0.1`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fimport-types-preset/3.0.1/3.0.1)
|
|
[@graphql-codegen/introspection](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/other/introspection))
| devDependencies | pin | [`^4.0.3` ->
`4.0.3`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fintrospection/4.0.3/4.0.3)
|
|
[@graphql-codegen/typed-document-node](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/typed-document-node))
| devDependencies | pin | [`^5.0.11` ->
`5.1.1`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftyped-document-node/5.1.1/5.1.1)
|
|
[@graphql-codegen/typescript](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/typescript))
| devDependencies | pin | [`^4.1.1` ->
`4.1.6`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript/4.1.6/4.1.6)
|
|
[@graphql-codegen/typescript-operations](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/operations))
| devDependencies | pin | [`^4.3.1` ->
`4.6.1`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-operations/4.6.1/4.6.1)
|
|
[@graphql-tools/load-files](https://redirect.github.com/ardatan/graphql-tools)
([source](https://redirect.github.com/ardatan/graphql-tools/tree/HEAD/packages/load-files))
| dependencies | pin | [`^7.0.0` ->
`7.0.1`](https://renovatebot.com/diffs/npm/@graphql-tools%2fload-files/7.0.1/7.0.1)
|
|
[@graphql-tools/merge](https://redirect.github.com/ardatan/graphql-tools)
([source](https://redirect.github.com/ardatan/graphql-tools/tree/HEAD/packages/merge))
| dependencies | pin | [`^9.0.8` ->
`9.0.24`](https://renovatebot.com/diffs/npm/@graphql-tools%2fmerge/9.0.24/9.0.24)
|
|
[@graphql-tools/schema](https://redirect.github.com/ardatan/graphql-tools)
([source](https://redirect.github.com/ardatan/graphql-tools/tree/HEAD/packages/schema))
| dependencies | pin | [`^10.0.7` ->
`10.0.23`](https://renovatebot.com/diffs/npm/@graphql-tools%2fschema/10.0.23/10.0.23)
|
|
[@graphql-tools/utils](https://redirect.github.com/ardatan/graphql-tools)
([source](https://redirect.github.com/ardatan/graphql-tools/tree/HEAD/packages/utils))
| peerDependencies | pin | [`^10.5.5` ->
`10.8.6`](https://renovatebot.com/diffs/npm/@graphql-tools%2futils/10.8.6/10.8.6)
|
|
[@graphql-tools/utils](https://redirect.github.com/ardatan/graphql-tools)
([source](https://redirect.github.com/ardatan/graphql-tools/tree/HEAD/packages/utils))
| devDependencies | pin | [`^10.5.5` ->
`10.8.6`](https://renovatebot.com/diffs/npm/@graphql-tools%2futils/10.8.6/10.8.6)
|
|
[@graphql-tools/utils](https://redirect.github.com/ardatan/graphql-tools)
([source](https://redirect.github.com/ardatan/graphql-tools/tree/HEAD/packages/utils))
| dependencies | pin | [`^10.5.5` ->
`10.8.6`](https://renovatebot.com/diffs/npm/@graphql-tools%2futils/10.8.6/10.8.6)
|
|
[@graphql-typed-document-node/core](https://redirect.github.com/dotansimha/graphql-typed-document-node)
| devDependencies | pin | [`^3.2.0` ->
`3.2.0`](https://renovatebot.com/diffs/npm/@graphql-typed-document-node%2fcore/3.2.0/3.2.0)
|
|
[@graphql-typed-document-node/core](https://redirect.github.com/dotansimha/graphql-typed-document-node)
| peerDependencies | pin | [`^3.2.0` ->
`3.2.0`](https://renovatebot.com/diffs/npm/@graphql-typed-document-node%2fcore/3.2.0/3.2.0)
|
| [@headlessui/vue](https://redirect.github.com/tailwindlabs/headlessui)
([source](https://redirect.github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-vue))
| dependencies | pin | [`^1.7.23` ->
`1.7.23`](https://renovatebot.com/diffs/npm/@headlessui%2fvue/1.7.23/1.7.23)
|
| [@heroicons/vue](https://redirect.github.com/tailwindlabs/heroicons) |
dependencies | pin | [`^2.2.0` ->
`2.2.0`](https://renovatebot.com/diffs/npm/@heroicons%2fvue/2.2.0/2.2.0)
|
|
[@ianvs/prettier-plugin-sort-imports](https://redirect.github.com/ianvs/prettier-plugin-sort-imports)
| devDependencies | pin | [`^4.4.0` ->
`4.4.2`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/4.4.2/4.4.2)
|
|
[@ianvs/prettier-plugin-sort-imports](https://redirect.github.com/ianvs/prettier-plugin-sort-imports)
| devDependencies | pin | [`^4.4.1` ->
`4.4.2`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/4.4.2/4.4.2)
|
|
[@internationalized/number](https://redirect.github.com/adobe/react-spectrum)
| dependencies | pin | [`^3.6.0` ->
`3.6.3`](https://renovatebot.com/diffs/npm/@internationalized%2fnumber/3.6.3/3.6.3)
|
| [@jsonforms/core](http://jsonforms.io/)
([source](https://redirect.github.com/eclipsesource/jsonforms)) |
dependencies | pin | [`^3.6.0` ->
`3.6.0`](https://renovatebot.com/diffs/npm/@jsonforms%2fcore/3.6.0/3.6.0)
|
| [@jsonforms/core](http://jsonforms.io/)
([source](https://redirect.github.com/eclipsesource/jsonforms)) |
peerDependencies | pin | [`^3.5.1` ->
`3.6.0`](https://renovatebot.com/diffs/npm/@jsonforms%2fcore/3.6.0/3.6.0)
|
| [@jsonforms/core](http://jsonforms.io/)
([source](https://redirect.github.com/eclipsesource/jsonforms)) |
devDependencies | pin | [`^3.5.1` ->
`3.6.0`](https://renovatebot.com/diffs/npm/@jsonforms%2fcore/3.6.0/3.6.0)
|
| [@jsonforms/core](http://jsonforms.io/)
([source](https://redirect.github.com/eclipsesource/jsonforms)) |
dependencies | pin | [`^3.5.1` ->
`3.6.0`](https://renovatebot.com/diffs/npm/@jsonforms%2fcore/3.6.0/3.6.0)
|
| [@jsonforms/vue](http://jsonforms.io/)
([source](https://redirect.github.com/eclipsesource/jsonforms)) |
dependencies | pin | [`^3.6.0` ->
`3.6.0`](https://renovatebot.com/diffs/npm/@jsonforms%2fvue/3.6.0/3.6.0)
|
| [@jsonforms/vue-vanilla](http://jsonforms.io/)
([source](https://redirect.github.com/eclipsesource/jsonforms)) |
dependencies | pin | [`^3.6.0` ->
`3.6.0`](https://renovatebot.com/diffs/npm/@jsonforms%2fvue-vanilla/3.6.0/3.6.0)
|
| [@jsonforms/vue-vuetify](http://jsonforms.io/)
([source](https://redirect.github.com/eclipsesource/jsonforms)) |
dependencies | pin | [`^3.6.0` ->
`3.6.0`](https://renovatebot.com/diffs/npm/@jsonforms%2fvue-vuetify/3.6.0/3.6.0)
|
| [@manypkg/cli](https://redirect.github.com/Thinkmill/manypkg)
([source](https://redirect.github.com/Thinkmill/manypkg/tree/HEAD/packages/cli))
| dependencies | pin | [`^0.24.0` ->
`0.24.0`](https://renovatebot.com/diffs/npm/@manypkg%2fcli/0.24.0/0.24.0)
|
| [@nestjs/apollo](https://redirect.github.com/nestjs/graphql) |
peerDependencies | pin | [`^13.0.3` ->
`13.1.0`](https://renovatebot.com/diffs/npm/@nestjs%2fapollo/13.1.0/13.1.0)
|
| [@nestjs/apollo](https://redirect.github.com/nestjs/graphql) |
devDependencies | pin | [`^13.0.3` ->
`13.1.0`](https://renovatebot.com/diffs/npm/@nestjs%2fapollo/13.1.0/13.1.0)
|
| [@nestjs/apollo](https://redirect.github.com/nestjs/graphql) |
dependencies | pin | [`^13.0.3` ->
`13.1.0`](https://renovatebot.com/diffs/npm/@nestjs%2fapollo/13.1.0/13.1.0)
|
|
[@nestjs/cache-manager](https://redirect.github.com/nestjs/cache-manager)
| dependencies | pin | [`^3.0.1` ->
`3.0.1`](https://renovatebot.com/diffs/npm/@nestjs%2fcache-manager/3.0.1/3.0.1)
|
| [@nestjs/common](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/common))
| peerDependencies | pin | [`^11.0.11` ->
`11.1.3`](https://renovatebot.com/diffs/npm/@nestjs%2fcommon/11.1.3/11.1.3)
|
| [@nestjs/common](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/common))
| devDependencies | pin | [`^11.0.11` ->
`11.1.3`](https://renovatebot.com/diffs/npm/@nestjs%2fcommon/11.1.3/11.1.3)
|
| [@nestjs/common](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/common))
| dependencies | pin | [`^11.0.11` ->
`11.1.3`](https://renovatebot.com/diffs/npm/@nestjs%2fcommon/11.1.3/11.1.3)
|
| [@nestjs/config](https://redirect.github.com/nestjs/config) |
peerDependencies | pin | [`^4.0.2` ->
`4.0.2`](https://renovatebot.com/diffs/npm/@nestjs%2fconfig/4.0.2/4.0.2)
|
| [@nestjs/config](https://redirect.github.com/nestjs/config) |
devDependencies | pin | [`^4.0.2` ->
`4.0.2`](https://renovatebot.com/diffs/npm/@nestjs%2fconfig/4.0.2/4.0.2)
|
| [@nestjs/config](https://redirect.github.com/nestjs/config) |
dependencies | pin | [`^4.0.2` ->
`4.0.2`](https://renovatebot.com/diffs/npm/@nestjs%2fconfig/4.0.2/4.0.2)
|
| [@nestjs/core](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/core))
| peerDependencies | pin | [`^11.0.11` ->
`11.1.3`](https://renovatebot.com/diffs/npm/@nestjs%2fcore/11.1.3/11.1.3)
|
| [@nestjs/core](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/core))
| devDependencies | pin | [`^11.0.11` ->
`11.1.3`](https://renovatebot.com/diffs/npm/@nestjs%2fcore/11.1.3/11.1.3)
|
| [@nestjs/core](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/core))
| dependencies | pin | [`^11.0.11` ->
`11.1.3`](https://renovatebot.com/diffs/npm/@nestjs%2fcore/11.1.3/11.1.3)
|
|
[@nestjs/event-emitter](https://redirect.github.com/nestjs/event-emitter)
| peerDependencies | pin | [`^3.0.1` ->
`3.0.1`](https://renovatebot.com/diffs/npm/@nestjs%2fevent-emitter/3.0.1/3.0.1)
|
|
[@nestjs/event-emitter](https://redirect.github.com/nestjs/event-emitter)
| devDependencies | pin | [`^3.0.1` ->
`3.0.1`](https://renovatebot.com/diffs/npm/@nestjs%2fevent-emitter/3.0.1/3.0.1)
|
|
[@nestjs/event-emitter](https://redirect.github.com/nestjs/event-emitter)
| dependencies | pin | [`^3.0.1` ->
`3.0.1`](https://renovatebot.com/diffs/npm/@nestjs%2fevent-emitter/3.0.1/3.0.1)
|
| [@nestjs/graphql](https://redirect.github.com/nestjs/graphql) |
peerDependencies | pin | [`^13.0.3` ->
`13.1.0`](https://renovatebot.com/diffs/npm/@nestjs%2fgraphql/13.1.0/13.1.0)
|
| [@nestjs/graphql](https://redirect.github.com/nestjs/graphql) |
devDependencies | pin | [`^13.0.3` ->
`13.1.0`](https://renovatebot.com/diffs/npm/@nestjs%2fgraphql/13.1.0/13.1.0)
|
| [@nestjs/graphql](https://redirect.github.com/nestjs/graphql) |
dependencies | pin | [`^13.0.3` ->
`13.1.0`](https://renovatebot.com/diffs/npm/@nestjs%2fgraphql/13.1.0/13.1.0)
|
| [@nestjs/passport](https://redirect.github.com/nestjs/passport) |
dependencies | pin | [`^11.0.0` ->
`11.0.5`](https://renovatebot.com/diffs/npm/@nestjs%2fpassport/11.0.5/11.0.5)
|
| [@nestjs/platform-fastify](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/platform-fastify))
| dependencies | pin | [`^11.0.11` ->
`11.1.3`](https://renovatebot.com/diffs/npm/@nestjs%2fplatform-fastify/11.1.3/11.1.3)
|
| [@nestjs/schedule](https://redirect.github.com/nestjs/schedule) |
peerDependencies | pin | [`^6.0.0` ->
`6.0.0`](https://renovatebot.com/diffs/npm/@nestjs%2fschedule/6.0.0/6.0.0)
|
| [@nestjs/schedule](https://redirect.github.com/nestjs/schedule) |
devDependencies | pin | [`^6.0.0` ->
`6.0.0`](https://renovatebot.com/diffs/npm/@nestjs%2fschedule/6.0.0/6.0.0)
|
| [@nestjs/schedule](https://redirect.github.com/nestjs/schedule) |
dependencies | pin | [`^6.0.0` ->
`6.0.0`](https://renovatebot.com/diffs/npm/@nestjs%2fschedule/6.0.0/6.0.0)
|
| [@nestjs/testing](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/testing))
| devDependencies | pin | [`^11.0.11` ->
`11.1.3`](https://renovatebot.com/diffs/npm/@nestjs%2ftesting/11.1.3/11.1.3)
|
| [@nestjs/throttler](https://redirect.github.com/nestjs/throttler) |
dependencies | pin | [`^6.4.0` ->
`6.4.0`](https://renovatebot.com/diffs/npm/@nestjs%2fthrottler/6.4.0/6.4.0)
|
| [@nuxt/devtools](https://devtools.nuxt.com)
([source](https://redirect.github.com/nuxt/devtools/tree/HEAD/packages/devtools))
| devDependencies | pin | [`^2.0.0` ->
`2.5.0`](https://renovatebot.com/diffs/npm/@nuxt%2fdevtools/2.5.0/2.5.0)
|
| [@nuxt/eslint](https://redirect.github.com/nuxt/eslint)
([source](https://redirect.github.com/nuxt/eslint/tree/HEAD/packages/module))
| devDependencies | pin | [`^1.0.0` ->
`1.4.1`](https://renovatebot.com/diffs/npm/@nuxt%2feslint/1.4.1/1.4.1) |
| [@nuxt/test-utils](https://redirect.github.com/nuxt/test-utils) |
devDependencies | pin | [`^3.17.2` ->
`3.19.1`](https://renovatebot.com/diffs/npm/@nuxt%2ftest-utils/3.19.1/3.19.1)
|
|
[@nuxtjs/color-mode](https://redirect.github.com/nuxt-modules/color-mode)
| dependencies | pin | [`^3.5.2` ->
`3.5.2`](https://renovatebot.com/diffs/npm/@nuxtjs%2fcolor-mode/3.5.2/3.5.2)
|
|
[@nuxtjs/tailwindcss](https://redirect.github.com/nuxt-modules/tailwindcss)
| devDependencies | pin | [`^6.12.2` ->
`6.14.0`](https://renovatebot.com/diffs/npm/@nuxtjs%2ftailwindcss/6.14.0/6.14.0)
|
|
[@originjs/vite-plugin-commonjs](https://redirect.github.com/originjs/vite-plugins/tree/main/packages/vite-plugin-commonjs)
([source](https://redirect.github.com/originjs/vite-plugins)) |
devDependencies | pin | [`^1.0.3` ->
`1.0.3`](https://renovatebot.com/diffs/npm/@originjs%2fvite-plugin-commonjs/1.0.3/1.0.3)
|
| [@pinia/nuxt](https://pinia.vuejs.org/ssr/nuxt.html)
([source](https://redirect.github.com/vuejs/pinia)) | dependencies | pin
| [`^0.11.0` ->
`0.11.1`](https://renovatebot.com/diffs/npm/@pinia%2fnuxt/0.11.1/0.11.1)
|
| [@pinia/testing](https://pinia.vuejs.org/cookbook/testing.html)
([source](https://redirect.github.com/vuejs/pinia)) | devDependencies |
pin | [`^1.0.0` ->
`1.0.2`](https://renovatebot.com/diffs/npm/@pinia%2ftesting/1.0.2/1.0.2)
|
| [@reduxjs/toolkit](https://redux-toolkit.js.org)
([source](https://redirect.github.com/reduxjs/redux-toolkit)) |
dependencies | pin | [`^2.3.0` ->
`2.8.2`](https://renovatebot.com/diffs/npm/@reduxjs%2ftoolkit/2.8.2/2.8.2)
|
|
[@rollup/plugin-node-resolve](https://redirect.github.com/rollup/plugins/tree/master/packages/node-resolve/#readme)
([source](https://redirect.github.com/rollup/plugins/tree/HEAD/packages/node-resolve))
| devDependencies | pin | [`^16.0.0` ->
`16.0.1`](https://renovatebot.com/diffs/npm/@rollup%2fplugin-node-resolve/16.0.1/16.0.1)
|
|
[@rollup/plugin-strip](https://redirect.github.com/rollup/plugins/tree/master/packages/strip#readme)
([source](https://redirect.github.com/rollup/plugins/tree/HEAD/packages/strip))
| devDependencies | pin | [`^3.0.4` ->
`3.0.4`](https://renovatebot.com/diffs/npm/@rollup%2fplugin-strip/3.0.4/3.0.4)
|
| [@rollup/rollup-linux-x64-gnu](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) |
optionalDependencies | pin | [`^4.30.1` ->
`4.44.0`](https://renovatebot.com/diffs/npm/@rollup%2frollup-linux-x64-gnu/4.44.0/4.44.0)
|
| [@runonflux/nat-upnp](https://redirect.github.com/runonflux/nat-upnp)
| peerDependencies | pin | [`^1.0.2` ->
`1.0.2`](https://renovatebot.com/diffs/npm/@runonflux%2fnat-upnp/1.0.2/1.0.2)
|
| [@runonflux/nat-upnp](https://redirect.github.com/runonflux/nat-upnp)
| devDependencies | pin | [`^1.0.2` ->
`1.0.2`](https://renovatebot.com/diffs/npm/@runonflux%2fnat-upnp/1.0.2/1.0.2)
|
| [@runonflux/nat-upnp](https://redirect.github.com/runonflux/nat-upnp)
| dependencies | pin | [`^1.0.2` ->
`1.0.2`](https://renovatebot.com/diffs/npm/@runonflux%2fnat-upnp/1.0.2/1.0.2)
|
|
[@storybook/addon-essentials](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/essentials)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials))
| devDependencies | pin | [`^8.6.12` ->
`8.6.14`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/8.6.14/8.6.14)
|
|
[@storybook/addon-interactions](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/interactions)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions))
| devDependencies | pin | [`^8.6.12` ->
`8.6.14`](https://renovatebot.com/diffs/npm/@storybook%2faddon-interactions/8.6.14/8.6.14)
|
|
[@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))
| devDependencies | pin | [`^8.6.12` ->
`8.6.14`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/8.6.14/8.6.14)
|
|
[@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))
| devDependencies | pin | [`^8.6.12` ->
`8.6.14`](https://renovatebot.com/diffs/npm/@storybook%2fbuilder-vite/8.6.14/8.6.14)
|
|
[@storybook/vue3](https://redirect.github.com/storybookjs/storybook/tree/next/code/renderers/vue3)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/renderers/vue3))
| devDependencies | pin | [`^8.6.12` ->
`8.6.14`](https://renovatebot.com/diffs/npm/@storybook%2fvue3/8.6.14/8.6.14)
|
|
[@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))
| devDependencies | pin | [`^8.6.12` ->
`8.6.14`](https://renovatebot.com/diffs/npm/@storybook%2fvue3-vite/8.6.14/8.6.14)
|
| [@swc/core](https://swc.rs)
([source](https://redirect.github.com/swc-project/swc)) |
devDependencies | pin | [`^1.10.1` ->
`1.12.4`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.12.4/1.12.4) |
|
[@tailwindcss/typography](https://redirect.github.com/tailwindlabs/tailwindcss-typography)
| devDependencies | pin | [`^0.5.15` ->
`0.5.16`](https://renovatebot.com/diffs/npm/@tailwindcss%2ftypography/0.5.16/0.5.16)
|
|
[@testing-library/vue](https://redirect.github.com/testing-library/vue-testing-library)
| devDependencies | pin | [`^8.0.0` ->
`8.1.0`](https://renovatebot.com/diffs/npm/@testing-library%2fvue/8.1.0/8.1.0)
|
|
[@types/async-exit-hook](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/async-exit-hook)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/async-exit-hook))
| devDependencies | pin | [`^2.0.2` ->
`2.0.2`](https://renovatebot.com/diffs/npm/@types%2fasync-exit-hook/2.0.2/2.0.2)
|
|
[@types/bun](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/bun)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bun))
| devDependencies | pin | [`^1.2.15` ->
`1.2.16`](https://renovatebot.com/diffs/npm/@types%2fbun/1.2.16/1.2.16)
|
|
[@types/bytes](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/bytes)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bytes))
| devDependencies | pin | [`^3.1.4` ->
`3.1.5`](https://renovatebot.com/diffs/npm/@types%2fbytes/3.1.5/3.1.5) |
|
[@types/cli-table](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cli-table)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/cli-table))
| devDependencies | pin | [`^0.3.4` ->
`0.3.4`](https://renovatebot.com/diffs/npm/@types%2fcli-table/0.3.4/0.3.4)
|
|
[@types/command-exists](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/command-exists)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/command-exists))
| devDependencies | pin | [`^1.2.3` ->
`1.2.3`](https://renovatebot.com/diffs/npm/@types%2fcommand-exists/1.2.3/1.2.3)
|
|
[@types/cors](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cors)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/cors))
| devDependencies | pin | [`^2.8.17` ->
`2.8.19`](https://renovatebot.com/diffs/npm/@types%2fcors/2.8.19/2.8.19)
|
|
[@types/crypto-js](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/crypto-js)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/crypto-js))
| devDependencies | pin | [`^4.2.2` ->
`4.2.2`](https://renovatebot.com/diffs/npm/@types%2fcrypto-js/4.2.2/4.2.2)
|
| @&#8203;types/diff | dependencies | pin | [`^8.0.0` ->
`8.0.0`](https://renovatebot.com/diffs/npm/@types%2fdiff/8.0.0/8.0.0) |
|
[@types/dockerode](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/dockerode)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode))
| devDependencies | pin | [`^3.3.31` ->
`3.3.41`](https://renovatebot.com/diffs/npm/@types%2fdockerode/3.3.41/3.3.41)
|
|
[@types/eslint-config-prettier](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/eslint-config-prettier)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/eslint-config-prettier))
| devDependencies | pin | [`^6.11.3` ->
`6.11.3`](https://renovatebot.com/diffs/npm/@types%2feslint-config-prettier/6.11.3/6.11.3)
|
|
[@types/fs-extra](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/fs-extra)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/fs-extra))
| devDependencies | pin | [`^11.0.4` ->
`11.0.4`](https://renovatebot.com/diffs/npm/@types%2ffs-extra/11.0.4/11.0.4)
|
|
[@types/graphql-fields](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/graphql-fields)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/graphql-fields))
| devDependencies | pin | [`^1.3.9` ->
`1.3.9`](https://renovatebot.com/diffs/npm/@types%2fgraphql-fields/1.3.9/1.3.9)
|
|
[@types/graphql-type-uuid](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/graphql-type-uuid)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/graphql-type-uuid))
| devDependencies | pin | [`^0.2.6` ->
`0.2.6`](https://renovatebot.com/diffs/npm/@types%2fgraphql-type-uuid/0.2.6/0.2.6)
|
|
[@types/ini](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ini)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ini))
| devDependencies | pin | [`^4.1.1` ->
`4.1.1`](https://renovatebot.com/diffs/npm/@types%2fini/4.1.1/4.1.1) |
|
[@types/inquirer](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/inquirer)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/inquirer))
| devDependencies | pin | [`^9.0.7` ->
`9.0.8`](https://renovatebot.com/diffs/npm/@types%2finquirer/9.0.8/9.0.8)
|
|
[@types/ip](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ip)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ip))
| devDependencies | pin | [`^1.1.3` ->
`1.1.3`](https://renovatebot.com/diffs/npm/@types%2fip/1.1.3/1.1.3) |
|
[@types/jsdom](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/jsdom)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jsdom))
| devDependencies | pin | [`^21.1.7` ->
`21.1.7`](https://renovatebot.com/diffs/npm/@types%2fjsdom/21.1.7/21.1.7)
|
|
[@types/lodash](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash))
| devDependencies | pin | [`^4.17.13` ->
`4.17.18`](https://renovatebot.com/diffs/npm/@types%2flodash/4.17.18/4.17.18)
|
|
[@types/lodash-es](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash-es)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash-es))
| devDependencies | pin | [`^4.17.12` ->
`4.17.12`](https://renovatebot.com/diffs/npm/@types%2flodash-es/4.17.12/4.17.12)
|
|
[@types/mustache](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mustache)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mustache))
| devDependencies | pin | [`^4.2.5` ->
`4.2.6`](https://renovatebot.com/diffs/npm/@types%2fmustache/4.2.6/4.2.6)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| devDependencies | pin | [`^22` ->
`22.15.32`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.32/22.15.32)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| devDependencies | pin | [`^22.0.0` ->
`22.15.32`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.32/22.15.32)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| devDependencies | pin | [`^22.14.0` ->
`22.15.32`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.32/22.15.32)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| devDependencies | pin | [`^22.14.1` ->
`22.15.32`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.32/22.15.32)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| devDependencies | pin | [`^22.13.4` ->
`22.15.32`](https://renovatebot.com/diffs/npm/@types%2fnode/22.15.32/22.15.32)
|
| @&#8203;types/pify | devDependencies | pin | [`^6.0.0` ->
`6.1.0`](https://renovatebot.com/diffs/npm/@types%2fpify/6.1.0/6.1.0) |
|
[@types/semver](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/semver)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver))
| devDependencies | pin | [`^7.5.8` ->
`7.7.0`](https://renovatebot.com/diffs/npm/@types%2fsemver/7.7.0/7.7.0)
|
|
[@types/sendmail](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/sendmail)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sendmail))
| devDependencies | pin | [`^1.4.7` ->
`1.4.7`](https://renovatebot.com/diffs/npm/@types%2fsendmail/1.4.7/1.4.7)
|
|
[@types/stoppable](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/stoppable)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/stoppable))
| devDependencies | pin | [`^1.1.3` ->
`1.1.3`](https://renovatebot.com/diffs/npm/@types%2fstoppable/1.1.3/1.1.3)
|
|
[@types/strftime](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/strftime)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/strftime))
| devDependencies | pin | [`^0.9.8` ->
`0.9.8`](https://renovatebot.com/diffs/npm/@types%2fstrftime/0.9.8/0.9.8)
|
| @&#8203;types/testing-library__vue | devDependencies | pin | [`^5.0.0`
->
`5.3.0`](https://renovatebot.com/diffs/npm/@types%2ftesting-library__vue/5.3.0/5.3.0)
|
|
[@types/uuid](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/uuid)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/uuid))
| devDependencies | pin | [`^10.0.0` ->
`10.0.0`](https://renovatebot.com/diffs/npm/@types%2fuuid/10.0.0/10.0.0)
|
|
[@types/validate-npm-package-name](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/validate-npm-package-name)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/validate-npm-package-name))
| devDependencies | pin | [`^4.0.2` ->
`4.0.2`](https://renovatebot.com/diffs/npm/@types%2fvalidate-npm-package-name/4.0.2/4.0.2)
|
|
[@types/ws](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ws)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws))
| devDependencies | pin | [`^8.18.0` ->
`8.18.1`](https://renovatebot.com/diffs/npm/@types%2fws/8.18.1/8.18.1) |
|
[@types/ws](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ws)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws))
| devDependencies | pin | [`^8.5.13` ->
`8.18.1`](https://renovatebot.com/diffs/npm/@types%2fws/8.18.1/8.18.1) |
|
[@types/wtfnode](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/wtfnode)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/wtfnode))
| devDependencies | pin | [`^0.7.3` ->
`0.7.3`](https://renovatebot.com/diffs/npm/@types%2fwtfnode/0.7.3/0.7.3)
|
|
[@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))
| devDependencies | pin | [`^8.34.1` ->
`8.34.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.34.1/8.34.1)
|
|
[@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))
| devDependencies | pin | [`^8.29.0` ->
`8.34.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.34.1/8.34.1)
|
| [@unraid/libvirt](https://redirect.github.com/unraid/libvirt) |
dependencies | pin | [`^2.1.0` ->
`2.1.0`](https://renovatebot.com/diffs/npm/@unraid%2flibvirt/2.1.0/2.1.0)
|
| @&#8203;unraid/shared-callbacks | dependencies | pin | [`^1.1.1` ->
`1.1.1`](https://renovatebot.com/diffs/npm/@unraid%2fshared-callbacks/1.1.1/1.1.1)
|
| @&#8203;unraid/tailwind-rem-to-rem | devDependencies | pin | [`^1.1.0`
->
`1.1.0`](https://renovatebot.com/diffs/npm/@unraid%2ftailwind-rem-to-rem/1.1.0/1.1.0)
|
|
[@vitejs/plugin-vue](https://redirect.github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme)
([source](https://redirect.github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue))
| devDependencies | pin | [`^5.0.0` ->
`5.2.4`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/5.2.4/5.2.4)
|
|
[@vitejs/plugin-vue-jsx](https://redirect.github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue-jsx#readme)
([source](https://redirect.github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue-jsx))
| devDependencies | pin | [`^4.1.1` ->
`4.2.0`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue-jsx/4.2.0/4.2.0)
|
|
[@vitest/coverage-v8](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-v8#readme)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8))
| devDependencies | pin | [`^3.1.1` ->
`3.2.4`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/3.2.4/3.2.4)
|
|
[@vitest/coverage-v8](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-v8#readme)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8))
| devDependencies | pin | [`^3.0.0` ->
`3.2.4`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/3.2.4/3.2.4)
|
|
[@vitest/coverage-v8](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-v8#readme)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8))
| devDependencies | pin | [`^3.0.5` ->
`3.2.4`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/3.2.4/3.2.4)
|
|
[@vitest/ui](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/ui#readme)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui))
| devDependencies | pin | [`^3.0.0` ->
`3.2.4`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.2.4/3.2.4) |
|
[@vitest/ui](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/ui#readme)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui))
| devDependencies | pin | [`^3.0.5` ->
`3.2.4`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.2.4/3.2.4) |
| [@vue/apollo-composable](https://apollo.vuejs.org/)
([source](https://redirect.github.com/vuejs/vue-apollo/tree/HEAD/packages/vue-apollo-composable))
| dependencies | pin | [`^4.2.1` ->
`4.2.2`](https://renovatebot.com/diffs/npm/@vue%2fapollo-composable/4.2.2/4.2.2)
|
| [@vue/apollo-util](https://apollo.vuejs.org/)
([source](https://redirect.github.com/vuejs/vue-apollo/tree/HEAD/packages/vue-apollo-util))
| devDependencies | pin | [`^4.0.0-beta.6` ->
`4.2.2`](https://renovatebot.com/diffs/npm/@vue%2fapollo-util/4.2.2/4.2.2)
|
| [@vue/test-utils](https://redirect.github.com/vuejs/test-utils) |
devDependencies | pin | [`^2.4.6` ->
`2.4.6`](https://renovatebot.com/diffs/npm/@vue%2ftest-utils/2.4.6/2.4.6)
|
| [@vue/test-utils](https://redirect.github.com/vuejs/test-utils) |
devDependencies | pin | [`^2.4.0` ->
`2.4.6`](https://renovatebot.com/diffs/npm/@vue%2ftest-utils/2.4.6/2.4.6)
|
| [@vue/tsconfig](https://redirect.github.com/vuejs/tsconfig) |
devDependencies | pin | [`^0.7.0` ->
`0.7.0`](https://renovatebot.com/diffs/npm/@vue%2ftsconfig/0.7.0/0.7.0)
|
|
[@vueuse/components](https://redirect.github.com/vueuse/vueuse/tree/main/packages/components#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/components))
| dependencies | pin | [`^13.0.0` ->
`13.4.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcomponents/13.4.0/13.4.0)
|
| [@vueuse/core](https://redirect.github.com/vueuse/vueuse)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core))
| devDependencies | pin | [`^13.0.0` ->
`13.4.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/13.4.0/13.4.0)
|
| [@vueuse/core](https://redirect.github.com/vueuse/vueuse)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core))
| dependencies | pin | [`^13.0.0` ->
`13.4.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/13.4.0/13.4.0)
|
|
[@vueuse/integrations](https://redirect.github.com/vueuse/vueuse/tree/main/packages/integrations#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/integrations))
| dependencies | pin | [`^13.0.0` ->
`13.4.0`](https://renovatebot.com/diffs/npm/@vueuse%2fintegrations/13.4.0/13.4.0)
|
|
[@vueuse/nuxt](https://redirect.github.com/vueuse/vueuse/tree/main/packages/nuxt#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/nuxt))
| devDependencies | pin | [`^13.0.0` ->
`13.4.0`](https://renovatebot.com/diffs/npm/@vueuse%2fnuxt/13.4.0/13.4.0)
|
| [accesscontrol](https://redirect.github.com/onury/accesscontrol) |
dependencies | pin | [`^2.2.1` ->
`2.2.1`](https://renovatebot.com/diffs/npm/accesscontrol/2.2.1/2.2.1) |
| [autoprefixer](https://redirect.github.com/postcss/autoprefixer) |
devDependencies | pin | [`^10.4.20` ->
`10.4.21`](https://renovatebot.com/diffs/npm/autoprefixer/10.4.21/10.4.21)
|
| [bycontract](https://redirect.github.com/dsheiko/bycontract) |
dependencies | pin | [`^2.0.11` ->
`2.0.11`](https://renovatebot.com/diffs/npm/bycontract/2.0.11/2.0.11) |
| [bytes](https://redirect.github.com/visionmedia/bytes.js) |
dependencies | pin | [`^3.1.2` ->
`3.1.2`](https://renovatebot.com/diffs/npm/bytes/3.1.2/3.1.2) |
| [cache-manager](https://redirect.github.com/jaredwray/cacheable)
([source](https://redirect.github.com/jaredwray/cacheable/tree/HEAD/packages/cache-manager))
| dependencies | pin | [`^7.0.0` ->
`7.0.0`](https://renovatebot.com/diffs/npm/cache-manager/7.0.0/7.0.0) |
|
[cacheable-lookup](https://redirect.github.com/szmarczak/cacheable-lookup)
| dependencies | pin | [`^7.0.0` ->
`7.0.0`](https://renovatebot.com/diffs/npm/cacheable-lookup/7.0.0/7.0.0)
|
|
[camelcase-keys](https://redirect.github.com/sindresorhus/camelcase-keys)
| peerDependencies | pin | [`^9.1.3` ->
`9.1.3`](https://renovatebot.com/diffs/npm/camelcase-keys/9.1.3/9.1.3) |
|
[camelcase-keys](https://redirect.github.com/sindresorhus/camelcase-keys)
| devDependencies | pin | [`^9.1.3` ->
`9.1.3`](https://renovatebot.com/diffs/npm/camelcase-keys/9.1.3/9.1.3) |
|
[camelcase-keys](https://redirect.github.com/sindresorhus/camelcase-keys)
| dependencies | pin | [`^9.1.3` ->
`9.1.3`](https://renovatebot.com/diffs/npm/camelcase-keys/9.1.3/9.1.3) |
| [casbin](http://casbin.org)
([source](https://redirect.github.com/casbin/node-casbin)) |
dependencies | pin | [`^5.32.0` ->
`5.38.0`](https://renovatebot.com/diffs/npm/casbin/5.38.0/5.38.0) |
| [chalk](https://redirect.github.com/chalk/chalk) | dependencies | pin
| [`^5.4.1` ->
`5.4.1`](https://renovatebot.com/diffs/npm/chalk/5.4.1/5.4.1) |
| [chalk](https://redirect.github.com/chalk/chalk) | dependencies | pin
| [`^5.0.0` ->
`5.4.1`](https://renovatebot.com/diffs/npm/chalk/5.4.1/5.4.1) |
|
[change-case](https://redirect.github.com/blakeembrey/change-case/tree/master/packages/change-case#readme)
([source](https://redirect.github.com/blakeembrey/change-case)) |
dependencies | pin | [`^5.4.4` ->
`5.4.4`](https://renovatebot.com/diffs/npm/change-case/5.4.4/5.4.4) |
| [chokidar](https://redirect.github.com/paulmillr/chokidar) |
dependencies | pin | [`^4.0.1` ->
`4.0.3`](https://renovatebot.com/diffs/npm/chokidar/4.0.3/4.0.3) |
|
[class-transformer](https://redirect.github.com/typestack/class-transformer)
| devDependencies | pin | [`^0.5.1` ->
`0.5.1`](https://renovatebot.com/diffs/npm/class-transformer/0.5.1/0.5.1)
|
|
[class-transformer](https://redirect.github.com/typestack/class-transformer)
| peerDependencies | pin | [`^0.5.1` ->
`0.5.1`](https://renovatebot.com/diffs/npm/class-transformer/0.5.1/0.5.1)
|
|
[class-transformer](https://redirect.github.com/typestack/class-transformer)
| dependencies | pin | [`^0.5.1` ->
`0.5.1`](https://renovatebot.com/diffs/npm/class-transformer/0.5.1/0.5.1)
|
|
[class-validator](https://redirect.github.com/typestack/class-validator)
| peerDependencies | pin | [`^0.14.1` ->
`0.14.2`](https://renovatebot.com/diffs/npm/class-validator/0.14.2/0.14.2)
|
|
[class-validator](https://redirect.github.com/typestack/class-validator)
| devDependencies | pin | [`^0.14.1` ->
`0.14.2`](https://renovatebot.com/diffs/npm/class-validator/0.14.2/0.14.2)
|
|
[class-validator](https://redirect.github.com/typestack/class-validator)
| dependencies | pin | [`^0.14.1` ->
`0.14.2`](https://renovatebot.com/diffs/npm/class-validator/0.14.2/0.14.2)
|
| [class-variance-authority](https://redirect.github.com/joe-bell/cva) |
dependencies | pin | [`^0.7.1` ->
`0.7.1`](https://renovatebot.com/diffs/npm/class-variance-authority/0.7.1/0.7.1)
|
| [cli-table](https://redirect.github.com/Automattic/cli-table) |
dependencies | pin | [`^0.3.11` ->
`0.3.11`](https://renovatebot.com/diffs/npm/cli-table/0.3.11/0.3.11) |
| [clsx](https://redirect.github.com/lukeed/clsx) | dependencies | pin |
[`^2.1.1` ->
`2.1.1`](https://renovatebot.com/diffs/npm/clsx/2.1.1/2.1.1) |
|
[command-exists](https://redirect.github.com/mathisonian/command-exists)
| dependencies | pin | [`^1.2.9` ->
`1.2.9`](https://renovatebot.com/diffs/npm/command-exists/1.2.9/1.2.9) |
| [commander](https://redirect.github.com/tj/commander.js) |
dependencies | pin | [`^14.0.0` ->
`14.0.0`](https://renovatebot.com/diffs/npm/commander/13.1.0/14.0.0) |
| [commander](https://redirect.github.com/tj/commander.js) |
dependencies | pin | [`^14.0.0` ->
`14.0.0`](https://renovatebot.com/diffs/npm/commander/14.0.0/14.0.0) |
|
[concurrently](https://redirect.github.com/open-cli-tools/concurrently)
| devDependencies | pin | [`^9.1.2` ->
`9.1.2`](https://renovatebot.com/diffs/npm/concurrently/9.1.2/9.1.2) |
|
[conventional-changelog](https://redirect.github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog#readme)
([source](https://redirect.github.com/conventional-changelog/conventional-changelog/tree/HEAD/packages/conventional-changelog))
| dependencies | pin | [`^6.0.0` ->
`6.0.0`](https://renovatebot.com/diffs/npm/conventional-changelog/6.0.0/6.0.0)
|
| [convert](https://convert.js.org/)
([source](https://redirect.github.com/jonahsnider/convert)) |
dependencies | pin | [`^5.8.0` ->
`5.12.0`](https://renovatebot.com/diffs/npm/convert/5.12.0/5.12.0) |
| [cookie](https://redirect.github.com/jshttp/cookie) | dependencies |
pin | [`^1.0.2` ->
`1.0.2`](https://renovatebot.com/diffs/npm/cookie/1.0.2/1.0.2) |
|
[create-create-app](https://redirect.github.com/uetchy/create-create-app)
| dependencies | pin | [`^7.3.0` ->
`7.3.0`](https://renovatebot.com/diffs/npm/create-create-app/7.3.0/7.3.0)
|
| [cross-fetch](https://redirect.github.com/lquixada/cross-fetch) |
dependencies | pin | [`^4.0.0` ->
`4.1.0`](https://renovatebot.com/diffs/npm/cross-fetch/4.1.0/4.1.0) |
| [crypto-js](https://redirect.github.com/brix/crypto-js) | dependencies
| pin | [`^4.2.0` ->
`4.2.0`](https://renovatebot.com/diffs/npm/crypto-js/4.2.0/4.2.0) |
| [date-fns](https://redirect.github.com/date-fns/date-fns) |
dependencies | pin | [`^4.1.0` ->
`4.1.0`](https://renovatebot.com/diffs/npm/date-fns/4.1.0/4.1.0) |
| [dayjs](https://day.js.org)
([source](https://redirect.github.com/iamkun/dayjs)) | dependencies |
pin | [`^1.11.13` ->
`1.11.13`](https://renovatebot.com/diffs/npm/dayjs/1.11.13/1.11.13) |
| [diff](https://redirect.github.com/kpdecker/jsdiff) | dependencies |
pin | [`^8.0.0` ->
`8.0.2`](https://renovatebot.com/diffs/npm/diff/8.0.2/8.0.2) |
| [dockerode](https://redirect.github.com/apocas/dockerode) |
dependencies | pin | [`^4.0.5` ->
`4.0.7`](https://renovatebot.com/diffs/npm/dockerode/4.0.7/4.0.7) |
| [dompurify](https://redirect.github.com/cure53/DOMPurify) |
dependencies | pin | [`^3.2.5` ->
`3.2.6`](https://renovatebot.com/diffs/npm/dompurify/3.2.6/3.2.6) |
| [dotenv](https://redirect.github.com/motdotla/dotenv) | dependencies |
pin | [`^16.4.5` ->
`16.5.0`](https://renovatebot.com/diffs/npm/dotenv/16.5.0/16.5.0) |
| [eslint](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint)) | devDependencies
| pin | [`^9.21.0` ->
`9.29.0`](https://renovatebot.com/diffs/npm/eslint/9.29.0/9.29.0) |
| [eslint](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint)) | devDependencies
| pin | [`^9.17.0` ->
`9.29.0`](https://renovatebot.com/diffs/npm/eslint/9.29.0/9.29.0) |
| [eslint](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint)) | devDependencies
| pin | [`^9.20.1` ->
`9.29.0`](https://renovatebot.com/diffs/npm/eslint/9.29.0/9.29.0) |
|
[eslint-config-prettier](https://redirect.github.com/prettier/eslint-config-prettier)
| devDependencies | pin | [`^10.0.0` ->
`10.1.5`](https://renovatebot.com/diffs/npm/eslint-config-prettier/10.1.5/10.1.5)
|
|
[eslint-import-resolver-typescript](https://redirect.github.com/import-js/eslint-import-resolver-typescript)
| devDependencies | pin | [`^4.4.4` ->
`4.4.4`](https://renovatebot.com/diffs/npm/eslint-import-resolver-typescript/4.4.4/4.4.4)
|
|
[eslint-plugin-import](https://redirect.github.com/import-js/eslint-plugin-import)
| devDependencies | pin | [`^2.31.0` ->
`2.31.0`](https://renovatebot.com/diffs/npm/eslint-plugin-import/2.31.0/2.31.0)
|
|
[eslint-plugin-n](https://redirect.github.com/eslint-community/eslint-plugin-n)
| devDependencies | pin | [`^17.0.0` ->
`17.20.0`](https://renovatebot.com/diffs/npm/eslint-plugin-n/17.20.0/17.20.0)
|
|
[eslint-plugin-no-relative-import-paths](https://redirect.github.com/MelvinVermeer/eslint-plugin-no-relative-import-paths)
| devDependencies | pin | [`^1.6.1` ->
`1.6.1`](https://renovatebot.com/diffs/npm/eslint-plugin-no-relative-import-paths/1.6.1/1.6.1)
|
|
[eslint-plugin-prettier](https://redirect.github.com/prettier/eslint-plugin-prettier)
| devDependencies | pin | [`^5.2.3` ->
`5.5.0`](https://renovatebot.com/diffs/npm/eslint-plugin-prettier/5.5.0/5.5.0)
|
| [eslint-plugin-vue](https://eslint.vuejs.org)
([source](https://redirect.github.com/vuejs/eslint-plugin-vue)) |
devDependencies | pin | [`^10.0.0` ->
`10.2.0`](https://renovatebot.com/diffs/npm/eslint-plugin-vue/10.2.0/10.2.0)
|
| [execa](https://redirect.github.com/sindresorhus/execa) |
peerDependencies | pin | [`^9.5.1` ->
`9.6.0`](https://renovatebot.com/diffs/npm/execa/9.6.0/9.6.0) |
| [execa](https://redirect.github.com/sindresorhus/execa) |
devDependencies | pin | [`^9.5.1` ->
`9.6.0`](https://renovatebot.com/diffs/npm/execa/9.6.0/9.6.0) |
| [execa](https://redirect.github.com/sindresorhus/execa) | dependencies
| pin | [`^9.5.1` ->
`9.6.0`](https://renovatebot.com/diffs/npm/execa/9.6.0/9.6.0) |
| [exit-hook](https://redirect.github.com/sindresorhus/exit-hook) |
dependencies | pin | [`^4.0.0` ->
`4.0.0`](https://renovatebot.com/diffs/npm/exit-hook/4.0.0/4.0.0) |
| [fast-check](https://fast-check.dev/)
([source](https://redirect.github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check))
| devDependencies | pin | [`^4.1.1` ->
`4.1.1`](https://renovatebot.com/diffs/npm/fast-check/4.1.1/4.1.1) |
| [fastify](https://fastify.dev/)
([source](https://redirect.github.com/fastify/fastify)) | dependencies |
pin | [`^5.2.1` ->
`5.4.0`](https://renovatebot.com/diffs/npm/fastify/5.4.0/5.4.0) |
| [filenamify](https://redirect.github.com/sindresorhus/filenamify) |
dependencies | pin | [`^6.0.0` ->
`6.0.0`](https://renovatebot.com/diffs/npm/filenamify/6.0.0/6.0.0) |
| [focus-trap](https://redirect.github.com/focus-trap/focus-trap) |
dependencies | pin | [`^7.6.2` ->
`7.6.5`](https://renovatebot.com/diffs/npm/focus-trap/7.6.5/7.6.5) |
| [fs-extra](https://redirect.github.com/jprichardson/node-fs-extra) |
dependencies | pin | [`^11.3.0` ->
`11.3.0`](https://renovatebot.com/diffs/npm/fs-extra/11.3.0/11.3.0) |
| [fs-extra](https://redirect.github.com/jprichardson/node-fs-extra) |
dependencies | pin | [`^11.2.0` ->
`11.3.0`](https://renovatebot.com/diffs/npm/fs-extra/11.3.0/11.3.0) |
| [glob](https://redirect.github.com/isaacs/node-glob) | dependencies |
pin | [`^11.0.1` ->
`11.0.1`](https://renovatebot.com/diffs/npm/glob/11.0.1/11.0.1) |
| [glob](https://redirect.github.com/isaacs/node-glob) | dependencies |
pin | [`^11.0.1` ->
`11.0.3`](https://renovatebot.com/diffs/npm/glob/11.0.3/11.0.3) |
| [global-agent](https://redirect.github.com/gajus/global-agent) |
dependencies | pin | [`^3.0.0` ->
`3.0.0`](https://renovatebot.com/diffs/npm/global-agent/3.0.0/3.0.0) |
| [got](https://redirect.github.com/sindresorhus/got) | peerDependencies
| pin | [`^14.4.6` ->
`14.4.7`](https://renovatebot.com/diffs/npm/got/14.4.7/14.4.7) |
| [got](https://redirect.github.com/sindresorhus/got) | devDependencies
| pin | [`^14.4.6` ->
`14.4.7`](https://renovatebot.com/diffs/npm/got/14.4.7/14.4.7) |
| [got](https://redirect.github.com/sindresorhus/got) | dependencies |
pin | [`^14.4.6` ->
`14.4.7`](https://renovatebot.com/diffs/npm/got/14.4.7/14.4.7) |
| [graphql](https://redirect.github.com/graphql/graphql-js) |
dependencies | pin | [`^16.11.0` ->
`16.11.0`](https://renovatebot.com/diffs/npm/graphql/16.11.0/16.11.0) |
| [graphql](https://redirect.github.com/graphql/graphql-js) |
peerDependencies | pin | [`^16.9.0` ->
`16.11.0`](https://renovatebot.com/diffs/npm/graphql/16.11.0/16.11.0) |
| [graphql](https://redirect.github.com/graphql/graphql-js) |
devDependencies | pin | [`^16.9.0` ->
`16.11.0`](https://renovatebot.com/diffs/npm/graphql/16.11.0/16.11.0) |
| [graphql](https://redirect.github.com/graphql/graphql-js) |
dependencies | pin | [`^16.9.0` ->
`16.11.0`](https://renovatebot.com/diffs/npm/graphql/16.11.0/16.11.0) |
| graphql-codegen-typescript-validation-schema | devDependencies | pin |
[`^0.17.0` ->
`0.17.1`](https://renovatebot.com/diffs/npm/graphql-codegen-typescript-validation-schema/0.17.1/0.17.1)
|
|
[graphql-fields](https://redirect.github.com/robrichard/graphql-fields)
| dependencies | pin | [`^2.0.3` ->
`2.0.3`](https://renovatebot.com/diffs/npm/graphql-fields/2.0.3/2.0.3) |
| [graphql-scalars](https://redirect.github.com/Urigo/graphql-scalars) |
peerDependencies | pin | [`^1.23.0` ->
`1.24.2`](https://renovatebot.com/diffs/npm/graphql-scalars/1.24.2/1.24.2)
|
| [graphql-scalars](https://redirect.github.com/Urigo/graphql-scalars) |
devDependencies | pin | [`^1.23.0` ->
`1.24.2`](https://renovatebot.com/diffs/npm/graphql-scalars/1.24.2/1.24.2)
|
| [graphql-scalars](https://redirect.github.com/Urigo/graphql-scalars) |
dependencies | pin | [`^1.23.0` ->
`1.24.2`](https://renovatebot.com/diffs/npm/graphql-scalars/1.24.2/1.24.2)
|
| [graphql-ws](https://the-guild.dev/graphql/ws)
([source](https://redirect.github.com/enisdenjo/graphql-ws)) |
dependencies | pin | [`^6.0.0` ->
`6.0.5`](https://renovatebot.com/diffs/npm/graphql-ws/6.0.5/6.0.5) |
| [graphql-ws](https://the-guild.dev/graphql/ws)
([source](https://redirect.github.com/enisdenjo/graphql-ws)) |
peerDependencies | pin | [`^6.0.0` ->
`6.0.5`](https://renovatebot.com/diffs/npm/graphql-ws/6.0.5/6.0.5) |
| [graphql-ws](https://the-guild.dev/graphql/ws)
([source](https://redirect.github.com/enisdenjo/graphql-ws)) |
devDependencies | pin | [`^6.0.0` ->
`6.0.5`](https://renovatebot.com/diffs/npm/graphql-ws/6.0.5/6.0.5) |
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) |
devDependencies | pin | [`^18.0.0` ->
`18.0.0`](https://renovatebot.com/diffs/npm/happy-dom/18.0.0/18.0.0) |
| [hex-to-rgba](https://redirect.github.com/misund/hex-to-rgba) |
dependencies | pin | [`^2.0.1` ->
`2.0.1`](https://renovatebot.com/diffs/npm/hex-to-rgba/2.0.1/2.0.1) |
| [highlight.js](https://highlightjs.org/)
([source](https://redirect.github.com/highlightjs/highlight.js)) |
dependencies | pin | [`^11.11.1` ->
`11.11.1`](https://renovatebot.com/diffs/npm/highlight.js/11.11.1/11.11.1)
|
|
[html-sloppy-escaper](https://redirect.github.com/WebReflection/html-sloppy-escaper)
| dependencies | pin | [`^0.1.0` ->
`0.1.0`](https://renovatebot.com/diffs/npm/html-sloppy-escaper/0.1.0/0.1.0)
|
| [http-server](https://redirect.github.com/http-party/http-server) |
devDependencies | pin | [`^14.1.1` ->
`14.1.1`](https://renovatebot.com/diffs/npm/http-server/14.1.1/14.1.1) |
| [ignore](https://redirect.github.com/kaelzhang/node-ignore) |
dependencies | pin | [`^7.0.0` ->
`7.0.5`](https://renovatebot.com/diffs/npm/ignore/7.0.5/7.0.5) |
| [ini](https://redirect.github.com/npm/ini) | peerDependencies | pin |
[`^5.0.0` -> `5.0.0`](https://renovatebot.com/diffs/npm/ini/5.0.0/5.0.0)
|
| [ini](https://redirect.github.com/npm/ini) | devDependencies | pin |
[`^5.0.0` -> `5.0.0`](https://renovatebot.com/diffs/npm/ini/5.0.0/5.0.0)
|
| [ini](https://redirect.github.com/npm/ini) | dependencies | pin |
[`^5.0.0` -> `5.0.0`](https://renovatebot.com/diffs/npm/ini/5.0.0/5.0.0)
|
|
[inquirer](https://redirect.github.com/SBoudrias/Inquirer.js/blob/main/packages/inquirer/README.md)
([source](https://redirect.github.com/SBoudrias/Inquirer.js)) |
dependencies | pin | [`^12.5.2` ->
`12.6.3`](https://renovatebot.com/diffs/npm/inquirer/12.6.3/12.6.3) |
| [ip](https://redirect.github.com/indutny/node-ip) | dependencies | pin
| [`^2.0.1` ->
`2.0.1`](https://renovatebot.com/diffs/npm/ip/2.0.1/2.0.1) |
|
[isomorphic-dompurify](https://redirect.github.com/kkomelin/isomorphic-dompurify)
| dependencies | pin | [`^2.19.0` ->
`2.25.0`](https://renovatebot.com/diffs/npm/isomorphic-dompurify/2.25.0/2.25.0)
|
| [jiti](https://redirect.github.com/unjs/jiti) | overrides | pin | [`2`
-> `2.4.2`](https://renovatebot.com/diffs/npm/jiti/2.4.2/2.4.2) |
| [jiti](https://redirect.github.com/unjs/jiti) | devDependencies | pin
| [`^2.4.0` ->
`2.4.2`](https://renovatebot.com/diffs/npm/jiti/2.4.2/2.4.2) |
| [jose](https://redirect.github.com/panva/jose) | peerDependencies |
pin | [`^6.0.0` ->
`6.0.11`](https://renovatebot.com/diffs/npm/jose/6.0.11/6.0.11) |
| [jose](https://redirect.github.com/panva/jose) | devDependencies | pin
| [`^6.0.0` ->
`6.0.11`](https://renovatebot.com/diffs/npm/jose/6.0.11/6.0.11) |
| [jose](https://redirect.github.com/panva/jose) | dependencies | pin |
[`^6.0.0` ->
`6.0.11`](https://renovatebot.com/diffs/npm/jose/6.0.11/6.0.11) |
|
[json-bigint-patch](https://redirect.github.com/ardatan/json-bigint-patch)
| dependencies | pin | [`^0.0.8` ->
`0.0.8`](https://renovatebot.com/diffs/npm/json-bigint-patch/0.0.8/0.0.8)
|
| [kebab-case](https://redirect.github.com/joakimbeng/kebab-case) |
dependencies | pin | [`^2.0.1` ->
`2.0.2`](https://renovatebot.com/diffs/npm/kebab-case/2.0.2/2.0.2) |
| [lint-staged](https://redirect.github.com/lint-staged/lint-staged) |
devDependencies | pin | [`^16.0.0` ->
`16.1.2`](https://renovatebot.com/diffs/npm/lint-staged/16.1.2/16.1.2) |
| [lodash-es](https://lodash.com/custom-builds)
([source](https://redirect.github.com/lodash/lodash)) | devDependencies
| pin | [`^4.17.21` ->
`4.17.21`](https://renovatebot.com/diffs/npm/lodash-es/4.17.21/4.17.21)
|
| [lodash-es](https://lodash.com/custom-builds)
([source](https://redirect.github.com/lodash/lodash)) | peerDependencies
| pin | [`^4.17.21` ->
`4.17.21`](https://renovatebot.com/diffs/npm/lodash-es/4.17.21/4.17.21)
|
| [lodash-es](https://lodash.com/custom-builds)
([source](https://redirect.github.com/lodash/lodash)) | dependencies |
pin | [`^4.17.21` ->
`4.17.21`](https://renovatebot.com/diffs/npm/lodash-es/4.17.21/4.17.21)
|
| [lucide-vue-next](https://lucide.dev)
([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next))
| dependencies | pin | [`^0.519.0` ->
`0.519.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.519.0/0.519.0)
|
| [marked](https://marked.js.org)
([source](https://redirect.github.com/markedjs/marked)) | dependencies |
pin | [`^15.0.0` ->
`15.0.12`](https://renovatebot.com/diffs/npm/marked/15.0.12/15.0.12) |
|
[marked-base-url](https://redirect.github.com/markedjs/marked-base-url)
| dependencies | pin | [`^1.1.6` ->
`1.1.6`](https://renovatebot.com/diffs/npm/marked-base-url/1.1.6/1.1.6)
|
| [multi-ini](https://redirect.github.com/evangelion1204/multi-ini) |
dependencies | pin | [`^2.3.2` ->
`2.3.2`](https://renovatebot.com/diffs/npm/multi-ini/2.3.2/2.3.2) |
| [mustache](https://redirect.github.com/janl/mustache.js) |
dependencies | pin | [`^4.2.0` ->
`4.2.0`](https://renovatebot.com/diffs/npm/mustache/4.2.0/4.2.0) |
| [nest-authz](https://redirect.github.com/node-casbin/nest-authz) |
peerDependencies | pin | [`^2.14.0` ->
`2.17.0`](https://renovatebot.com/diffs/npm/nest-authz/2.17.0/2.17.0) |
| [nest-authz](https://redirect.github.com/node-casbin/nest-authz) |
devDependencies | pin | [`^2.14.0` ->
`2.17.0`](https://renovatebot.com/diffs/npm/nest-authz/2.17.0/2.17.0) |
| [nest-authz](https://redirect.github.com/node-casbin/nest-authz) |
dependencies | pin | [`^2.14.0` ->
`2.17.0`](https://renovatebot.com/diffs/npm/nest-authz/2.17.0/2.17.0) |
| [nest-commander](https://nest-commander.jaymcdoniel.dev)
([source](https://redirect.github.com/jmcdo29/nest-commander/tree/HEAD/pacakges/nest-commander))
| dependencies | pin | [`^3.15.0` ->
`3.17.0`](https://renovatebot.com/diffs/npm/nest-commander/3.17.0/3.17.0)
|
| [nestjs-pino](https://redirect.github.com/iamolegga/nestjs-pino) |
dependencies | pin | [`^4.1.0` ->
`4.4.0`](https://renovatebot.com/diffs/npm/nestjs-pino/4.4.0/4.4.0) |
| [node](https://redirect.github.com/actions/node-versions) | uses-with
| pin | `22.x` -> `22.17.0` |
| [node-cache](https://redirect.github.com/node-cache/node-cache) |
dependencies | pin | [`^5.1.2` ->
`5.1.2`](https://renovatebot.com/diffs/npm/node-cache/5.1.2/5.1.2) |
|
[node-window-polyfill](https://redirect.github.com/tgorka/node-window-polyfill)
| dependencies | pin | [`^1.0.2` ->
`1.0.4`](https://renovatebot.com/diffs/npm/node-window-polyfill/1.0.4/1.0.4)
|
| [nodemon](https://nodemon.io)
([source](https://redirect.github.com/remy/nodemon)) | devDependencie

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com>
2025-07-08 10:30:15 -04:00
Eli Bosley
345e83bfb0 feat: upgrade nuxt-custom-elements (#1461)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added new modal dialogs and UI components, including activation steps,
OS update feedback, and expanded notification management.
* Introduced a plugin to configure internationalization, state
management, and Apollo client support in web components.
* Added a new Log Viewer page with a streamlined interface for viewing
logs.

* **Improvements**
* Centralized Pinia state management by consolidating all stores to use
a shared global Pinia instance.
* Simplified component templates by removing redundant
internationalization host wrappers.
* Enhanced ESLint configuration with stricter rules and global variable
declarations.
* Refined custom element build process to prevent jQuery conflicts and
optimize minification.
* Updated component imports and templates for consistent structure and
maintainability.
* Streamlined log viewer dropdowns using simplified select components
with improved formatting.
* Improved notification sidebar with filtering by importance and modular
components.
* Replaced legacy notification popups with new UI components and added
automatic root session creation for localhost requests.
* Updated OS version display and user profile UI with refined styling
and component usage.

* **Bug Fixes**
* Fixed component tag capitalization and improved type annotations
across components.

* **Chores**
* Updated development dependencies including ESLint plugins and build
tools.
* Removed deprecated log viewer patch class and cleaned up related test
fixtures.
  * Removed unused imports and simplified Apollo client setup.
* Cleaned up test mocks and removed obsolete i18n host component tests.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1210730229632804

---------

Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com>
Co-authored-by: Zack Spear <zackspear@users.noreply.github.com>
2025-07-08 10:05:39 -04:00
Pujit Mehrotra
7be8bc84d3 fix(connect): mothership connection (#1464)
---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1210709463978079

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

* **New Features**
* Improved management of cloud connection status and error handling for
DNS resolution issues.
* Introduced a centralized controller for managing mothership connection
lifecycle and subscriptions.

* **Refactor**
* Streamlined event handling and resource management for mothership
connections.
* Consolidated connection logic to enhance reliability and
maintainability.
* Optimized initialization process by deferring GraphQL client creation
until needed.

* **Chores**
* Updated module configuration to include the new controller for better
dependency management.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-07 17:14:47 -04:00
Eli Bosley
4d97e1465b chore: update lockfile after reverting package.json dependencies 2025-07-05 12:52:23 -04:00
Eli Bosley
94420e4d45 revert: revert package.json dependency updates from commit 711cc9a for api and packages/* 2025-07-05 12:49:25 -04:00
Michael Datelle
711cc9ac92 feat: build out docker components (#1427)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Introduced comprehensive, customizable Accordion, Dialog,
DropdownMenu, and Select UI components with enhanced prop-driven and
slot-based APIs.
* Added grouped exports for UI primitives, simplifying imports and
usage.
* Added new Storybook stories demonstrating varied usage scenarios for
Accordion, Dialog, DropdownMenu, and Select components.

* **Refactor**
* Replaced external UI dependencies with locally defined, typed
components for Accordion, Dialog, DropdownMenu, and Select.
* Streamlined component APIs by consolidating exports to main components
and type exports, removing subcomponent exports.
* Simplified dialog and dropdown menu implementations with explicit
props, events, and slots.
* Updated component styles and class bindings for improved appearance
and interaction.
* Refined select component into a fully featured, typed implementation
supporting grouping and multiple selection.
* Replaced custom dropdown menu implementation in user profile with the
new DropdownMenu component.
* Simplified internal prop forwarding using reactive utilities for
dropdown menu and select subcomponents.
* Improved dropdown menu stories with declarative props and slots,
removing manual subcomponent composition.
* Simplified notification filter UI by replacing nested select
subcomponents with a declarative items prop.

* **Bug Fixes**
* Improved dropdown and select item handling, including disabled states,
separators, and grouped options.

* **Style**
* Enhanced visual consistency and spacing in documentation and UI
components.
  * Updated component classes for better appearance and usability.

* **Chores**
* Upgraded `@jsonforms` dependencies across all packages to version
`^3.6.0`.
  * Improved test and mock setups for new component structures.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2025-07-03 16:40:06 -04:00
Pujit Mehrotra
0ec0de982f fix(connect): fatal race-condition in websocket disposal (#1462)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Improved error handling during client shutdown to prevent unhandled
exceptions and ensure smoother cleanup.
* Optimized identity state change detection to avoid redundant event
emissions, reducing unnecessary updates when no actual changes occur.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1210701591479200
2025-07-03 13:47:48 -04:00
Eli Bosley
a2807864ac fix: lanip copy button not present (#1459) 2025-07-03 12:59:41 -04:00
Eli Bosley
f88400eea8 fix: pin ranges (#1460)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated dependency management settings to pin exact versions during
updates.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-03 10:02:34 -04:00
Pujit Mehrotra
0d443de20e refactor(connect): organize src by concern instead of artifact (#1457)
Reorganizes files, but keeps logic (and Nest dependency relationships)
unchanged.

* **Documentation**
  * Update README to reflect the new directory structure.

* **Refactor**
* Update import paths to match the new feature-based directory
structure.
* Rename `SystemModule` to `NetworkModule` for smaller scope and
increased clarity.
  * Reorganize source code into directories of feature-related concerns.
 
* **Chores**
* Delete unused demo configuration and related code for a cleaner
codebase.

* **Other**
  * No functional changes to end-user features or behaviors.
2025-07-03 09:47:31 -04:00
Pujit Mehrotra
27b33f0f95 build: fix artifact retreival in plugin promotion workflow (#1458)
Tested via manual dispatch on #1456 via cli. results in:
```xml
<!DOCTYPE PLUGIN [
  <!ENTITY name "dynamix.unraid.net">
  <!ENTITY launch "Connect">
  <!ENTITY author "limetech">
  <!ENTITY version "2025.07.03.0623">
  <!ENTITY plugin_url "https://preview.dl.unraid.net/unraid-api/dynamix.unraid.net.plg">
  <!ENTITY source "/boot/config/plugins/dynamix.my.servers/&txz_name;">
  <!ENTITY txz_sha256 "2075cdb8206733f7f037fefdb004a2d719498d6d6d7f3872afd0682a40ceff28">
  <!ENTITY txz_url "https://preview.dl.unraid.net/unraid-api/tag/PR1456/dynamix.unraid.net-4.8.0-x86_64-24.txz">
  <!ENTITY txz_name "dynamix.unraid.net-4.8.0-x86_64-24.txz">
  <!ENTITY arch "x86_64">
  <!ENTITY build "24">
  <!ENTITY tag "PR1456">
  <!ENTITY api_version "4.8.0">
]>
```
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
  * Updated workflow input descriptions for consistency.
  * Expanded job permissions to improve workflow capabilities.
  * Enhanced artifact download step with additional input options.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-03 09:31:00 -04:00
Pujit Mehrotra
13bd9bb567 fix: pr plugin promotion workflow (#1456)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
  * Enhanced workflow to allow manual triggering with custom inputs.
* Improved artifact handling and plugin file discovery for greater
flexibility and reliability.
* Added better error logging for missing plugin files during workflow
execution.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-02 16:05:18 -04:00
Pujit Mehrotra
f542c8e0bd fix: parsing of ssoEnabled in state.php (#1455)
read `ssoSubIds` in state.php from `api.json`

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

* **New Features**
  * Added a new query to check if Single Sign-On (SSO) is enabled.
* Updated UI components to dynamically reflect SSO availability via live
data.
* **Refactor**
* Streamlined internal handling of SSO status detection for improved
reliability and maintainability.
* **Tests**
* Enhanced tests for SSO button behavior with mocked live data and added
edge case coverage for SSO callback handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-02 10:24:38 -04:00
Pujit Mehrotra
038c582aed fix: flash backup integration with Unraid Connect config (#1448)
read `username` from connect.json & drop minigraphConnected check

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1210592838407162

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

## Summary by CodeRabbit

* **Bug Fixes**
* Improved reliability of configuration file handling for backup and API
features.
* Resolved potential false negatives when checking connection status by
updating connection verification logic.

* **Chores**
  * Centralized configuration paths for easier future updates.
  * Minor formatting improvements for better readability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-02 10:09:58 -04:00
Pujit Mehrotra
b9a1b9b087 fix(api): connect config email validation (#1454)
Followup to #1451

Empty string in email field of connect.json caused validation error on
load.

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

* **New Features**
  * Added a file-watching script to streamline development workflows.
* Introduced comprehensive property-based and randomized tests for
configuration parsing, migration, and validation.

* **Bug Fixes**
* Improved handling and validation of configuration fields, including
stricter email validation and robust handling of optional fields.

* **Refactor**
* Updated configuration change detection to buffer events for improved
performance.
* Made minor formatting and visibility adjustments for clarity and
maintainability.

* **Chores**
  * Added new development dependencies for testing and data generation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-02 10:07:27 -04:00
Eli Bosley
d08fc94afb fix: sign out correctly on error (#1452)
This actually doesn't fix the error but should make it more flexible.
Also adds some testing.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

* **Refactor**
* Enhanced error detection for invalid API key messages to improve
accuracy.
* **Tests**
* Added comprehensive tests verifying error handling and client
lifecycle behavior without network dependencies.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-02 10:06:51 -04:00
Eli Bosley
7c6f02a5cb fix: allow rclone to fail to initialize (#1453)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Added a way for users to check if the RClone service is initialized.

* **Bug Fixes**
* Improved error handling and logging for RClone service initialization
and connection checks, providing clearer and more informative messages
if the RClone binary is missing or if connection issues occur.
* Skipped loading provider information when the RClone service is not
initialized, preventing unnecessary errors and warnings.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-02 10:06:30 -04:00
Pujit Mehrotra
ffb2ac51a4 refactor: rm unused oauth token fields in connect model (#1451)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Updated theme settings now allow header background and primary text
colors to be optionally unset or left blank.

* **Bug Fixes**
* Removed unused authentication token fields from sign-in and
configuration forms for a streamlined user experience.

* **Style**
* Improved formatting and readability in several areas of the
application and tests.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-02 09:48:32 -04:00
Pujit Mehrotra
719f460016 fix: error logs from cloud query when connect is not installed (#1450)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Introduced a separate cloud state query, allowing cloud-related data
to be fetched independently from server state data.

* **Improvements**
* Server and cloud state queries are now managed separately, improving
data handling and refresh logic.
* Theme header color fields are now optional and can be unset, offering
greater flexibility for customization.

* **Bug Fixes**
* Enhanced error handling and data updates for cloud and server state
queries.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-07-02 09:44:31 -04:00
Pujit Mehrotra
3cfe9fe9ee build: replace hash with build increment in slackware txz pkg (#1449)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Introduced support for specifying and propagating a build number
throughout the build process, including command-line options and
workflow inputs.
* TXZ package naming and URLs now include the build number for improved
traceability.

* **Improvements**
* Enhanced robustness in locating TXZ files with improved fallback
logic, especially in CI environments.
* Improved flexibility and validation of environment schema for plugin
builds.

* **Style**
  * Minor formatting corrections for consistency and readability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1210677942019563
2025-07-01 10:57:39 -04:00
Eli Bosley
e539d7f603 chore: remove rclone (#1447)
since unraid will ship with it natively, starting at 7.2.

rclone support is not planned for earlier releases.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Removed an unnecessary step from the build process, streamlining
operations.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-30 11:00:34 -04:00
Pujit Mehrotra
a8566e9e5a build: fix doinst.sh compatibility with installpkg --root (#1446)
- Isolate plugin concerns into `.plg` plugin & api file modifiers instead of the api's
slackware package.

## Summary by CodeRabbit

* **New Features**
* Installation process modularized into package installation,
post-install setup with verification, and service startup with cleanup.
* Added logging and error detection during installation, including
symlink verification.
  * Created required log directory to support service dependencies.
* Integrated nginx service with reload capability triggered by
configuration changes.
* Added automatic patching of nginx configuration and hosts file to
improve security and iframe compatibility.
* Enhanced file modification system to handle side effects and trigger
nginx reloads as needed.

* **Refactor**
* Restructured installation scripts for clarity; setup scripts now
separate steps.
  * Removed legacy installation logic and deprecated related scripts.
  * Enabled hard link addition during package creation.
* Simplified installation scripts by removing conditional branching and
detailed logging.
* Streamlined API environment setup by removing redundant post-install
steps.
* Updated dependency injection to explicitly provide nginx service
token.
  * Improved patch application error reporting with file path details.

* **Chores**
  * Disabled legacy scripts to streamline installation.
  * Removed `.gitignore` to track previously ignored files.
* Updated tests to include new dependencies and relaxed logger
assertions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1210661184127051
2025-06-30 10:49:46 -04:00
Pujit Mehrotra
f73e5e0058 fix(ui): notifications positioning regression (#1445)
Downgrades the `vue-sonner` dependency from `2.0.0` to `1.3.0` because
the newer version relies on unocss under the hood, which can't pipe
across the web component build/boundary without modifying our css
plumbing.

The older version relied on a `styles.css` stylesheet. That stylesheet
also couldn't make it through our build pipeline, but since it was a
single asset, I vendored it via `sonner.css`.

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

* **Bug Fixes**
* Improved logic to prevent duplicate insertion of the toaster element
in the page layout.

* **Chores**
  * Downgraded the "vue-sonner" dependency to version ^1.3.0.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1210640791480730
2025-06-27 13:33:25 -04:00
Pujit Mehrotra
64ccea2a81 chore: add type-check step to test-api github workflow (#1443)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
  * Added a type checking step to the automated workflow.
* Improved formatting in the workflow configuration for better
readability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-26 16:35:45 -04:00
Eli Bosley
86bea56272 feat: move api key fetching to use api key service (#1439)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Refactor**
- Simplified and streamlined the management of the local Connect API
key, renaming it to "ConnectInternal" and removing legacy keys.
- Updated internal logic to directly retrieve or create the Connect API
key without storing or emitting it in configuration or events.
- Replaced custom WebSocket handling with default implementation and
improved asynchronous API key retrieval for client connections.
- Enhanced asynchronous handling for subscription and query execution to
ensure proper client initialization.

- **Chores**
- Removed obsolete methods and test suites related to previous Connect
API key management logic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-26 16:29:49 -04:00
Pujit Mehrotra
af6e56de60 test: fix connect plugin tests (#1441)
## Summary by CodeRabbit

* **Bug Fixes**
* Improved error handling to prevent runtime exceptions when certain
configuration fields are undefined.
  * Updated test expectations to reflect new error handling behaviors.

* **Refactor**
* Streamlined and modularized the legacy configuration migration process
for better maintainability.
* Removed obsolete configuration fields and related validation from the
configuration model.

* **Tests**
* Added and enhanced test suites to verify configuration migration,
parsing, and URL resolution logic.
* Improved test coverage and robustness with expanded mock data and
flexible assertions.

* **Chores**
* Updated test scripts and dependencies for improved reliability and
compatibility.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-26 15:04:26 -04:00
Pujit Mehrotra
c4c99843c7 fix: config migration from myservers.cfg (#1440)
## Summary by CodeRabbit

- **Bug Fixes**
- Improved handling and migration of legacy configuration values for
smoother upgrades and more accurate settings conversion.

- **Refactor**
- Streamlined the legacy configuration migration process for better
reliability and maintainability.
  - Removed the unused `ssoSubIds` property from configuration models.

- **Tests**
- Added comprehensive tests to ensure correct migration and conversion
of legacy configuration data.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-26 15:00:24 -04:00
Pujit Mehrotra
3122bdb953 fix: api pnpm type-check (#1442)
## Summary by CodeRabbit

* **Tests**
* Updated tests for API key creation by removing unnecessary properties
from input objects.

* **Documentation**
* Added detailed comments explaining type compatibility issues and error
suppression for Fastify plugins.

* **Refactor**
* Made internal validation flags optional in API key input handling to
streamline input validation.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-26 11:12:54 -04:00
Eli Bosley
22fe91cd56 fix: delete legacy connect keys and ensure description 2025-06-25 16:19:09 -04:00
Eli Bosley
b7c2407840 feat: fix shading in UPC to be less severe (#1438)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Style**
- Updated the banner gradient to match the full width of its container.
- Extended the gradient effect for a smoother visual transition across
the banner.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-25 15:26:08 -04:00
Pujit Mehrotra
17b7428779 fix: incorrect state merging in redux store (#1437)
omit stale config entries while merging in new config state

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

- **Refactor**
- Improved state update handling across several modules to enhance
performance and maintain consistency without impacting user experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1210628784568830
2025-06-25 14:51:01 -04:00
Pujit Mehrotra
a7ef06ea25 fix: backport unraid/webgui#2269 rc.nginx update (#1436)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced remote access detection for nginx using updated configuration
and plugin integration.
- Introduced a comprehensive Nginx management script tailored for Unraid
OS with SSL handling, server lifecycle controls, and dynamic
configuration.
- **Bug Fixes**
- Improved script robustness by fixing shell loop syntax for proper
handling of array keys.
- **Chores**
  - Added compatibility patches for Unraid versions before 7.2.0.
  - Updated test suites to include new nginx script modifications.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-25 12:58:28 -04:00
Pujit Mehrotra
5ba4479663 chore: rm obsolete style block from myservers1.php (#1435)
Complement to https://github.com/unraid/webgui/pull/2270

Compared our dynamix.my.servers with the webgui's and made the
corresponding changes. activation code logic was omitted because it has
already been written into the api.

python script used for comparison:
https://gist.github.com/pujitm/43a4d2fc35c74f51c70cc66fe1909e6c
```py
#!/usr/bin/env python3
"""
Directory comparison script that recursively compares two directories
and shows files that exist in one but not the other, plus diffs for common files.
"""

import os
import sys
import subprocess
from pathlib import Path
from typing import Set, Tuple


def get_all_files(directory: str) -> Set[str]:
    """Get all files in a directory recursively, returning relative paths."""
    files = set()
    dir_path = Path(directory)
    
    if not dir_path.exists():
        print(f"Error: Directory '{directory}' does not exist")
        return files
    
    for root, dirs, filenames in os.walk(directory):
        for filename in filenames:
            full_path = Path(root) / filename
            # Get relative path from the base directory
            relative_path = full_path.relative_to(dir_path)
            files.add(str(relative_path))
    
    return files


def compare_directories(dir1: str, dir2: str) -> Tuple[Set[str], Set[str], Set[str]]:
    """
    Compare two directories and return files in each directory.
    
    Returns:
        - files only in dir1
        - files only in dir2  
        - files in both directories
    """
    files1 = get_all_files(dir1)
    files2 = get_all_files(dir2)
    
    only_in_dir1 = files1 - files2
    only_in_dir2 = files2 - files1
    in_both = files1 & files2
    
    return only_in_dir1, only_in_dir2, in_both


def run_diff(file1_path: str, file2_path: str, relative_path: str) -> bool:
    """
    Run diff on two files and print the output.
    Returns True if files are different, False if identical.
    """
    try:
        # Use diff -u for unified diff format
        result = subprocess.run(
            ['diff', '-u', file1_path, file2_path],
            capture_output=True,
            text=True
        )
        
        if result.returncode == 0:
            # Files are identical
            return False
        elif result.returncode == 1:
            # Files are different
            print(f"\n--- Diff for: {relative_path} ---")
            print(result.stdout)
            return True
        else:
            # Error occurred
            print(f"\nError running diff on {relative_path}: {result.stderr}")
            return False
            
    except FileNotFoundError:
        print(f"\nError: 'diff' command not found. Please install diffutils.")
        return False
    except Exception as e:
        print(f"\nError comparing {relative_path}: {e}")
        return False


def compare_file_contents(dir1: str, dir2: str, common_files: Set[str]) -> Tuple[int, int]:
    """
    Compare contents of files that exist in both directories.
    Returns (identical_count, different_count).
    """
    identical_count = 0
    different_count = 0
    
    print(f"\nComparing contents of {len(common_files)} common files...")
    print("=" * 60)
    
    for relative_path in sorted(common_files):
        file1_path = os.path.join(dir1, relative_path)
        file2_path = os.path.join(dir2, relative_path)
        
        if run_diff(file1_path, file2_path, relative_path):
            different_count += 1
        else:
            identical_count += 1
    
    return identical_count, different_count


def main():
    if len(sys.argv) < 3:
        print("Usage: python compare_directories.py <directory1> <directory2> [--no-diff]")
        print("Example: python compare_directories.py /path/to/dir1 /path/to/dir2")
        print("Use --no-diff to skip content comparison")
        sys.exit(1)
    
    dir1 = sys.argv[1]
    dir2 = sys.argv[2]
    skip_diff = '--no-diff' in sys.argv
    
    print(f"Comparing directories:")
    print(f"  Directory 1: {dir1}")
    print(f"  Directory 2: {dir2}")
    print("=" * 60)
    
    only_in_dir1, only_in_dir2, in_both = compare_directories(dir1, dir2)
    
    print(f"\nFiles only in '{dir1}' ({len(only_in_dir1)} files):")
    if only_in_dir1:
        for file in sorted(only_in_dir1):
            print(f"  - {file}")
    else:
        print("  (none)")
    
    print(f"\nFiles only in '{dir2}' ({len(only_in_dir2)} files):")
    if only_in_dir2:
        for file in sorted(only_in_dir2):
            print(f"  - {file}")
    else:
        print("  (none)")
    
    print(f"\nFiles in both directories ({len(in_both)} files):")
    if in_both:
        for file in sorted(in_both):
            print(f"  - {file}")
    else:
        print("  (none)")
    
    # Compare file contents if requested and there are common files
    identical_count = 0
    different_count = 0
    if not skip_diff and in_both:
        identical_count, different_count = compare_file_contents(dir1, dir2, in_both)
    
    print("\n" + "=" * 60)
    print(f"Summary:")
    print(f"  Total files in '{dir1}': {len(only_in_dir1) + len(in_both)}")
    print(f"  Total files in '{dir2}': {len(only_in_dir2) + len(in_both)}")
    print(f"  Files only in '{dir1}': {len(only_in_dir1)}")
    print(f"  Files only in '{dir2}': {len(only_in_dir2)}")
    print(f"  Files in both: {len(in_both)}")
    
    if not skip_diff and in_both:
        print(f"  Identical files: {identical_count}")
        print(f"  Different files: {different_count}")


if __name__ == "__main__":
    main() 
```

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

## Summary by CodeRabbit

- **New Features**
- Added support for extracting and displaying activation code data,
including partner information and logos, when relevant.
- **Style**
- Removed embedded CSS styling from the server management interface
header.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-25 12:57:48 -04:00
Pujit Mehrotra
7bc583b186 fix: remote access lifecycle during boot & shutdown (#1422)
## Summary

- **New Features**
- Introduced a comprehensive Nginx control script for Unraid OS,
enabling advanced server management, SSL certificate handling, and
dynamic configuration based on system state.
https://github.com/unraid/webgui/pull/2269
- Added a utility function to safely execute code with error handling
support.

- **Improvements**
- Enhanced logging across remote access, WAN access, and settings
services for improved traceability.
- Added initialization and cleanup hooks to remote access and UPnP
services for better lifecycle management.
- Optimized configuration persistence by batching rapid changes for more
efficient updates.
- Refined URL resolution logic for improved configuration retrieval and
error handling.
  - Broadened pattern matching for domain keys in Nginx state parsing.
- Updated remote access settings to reload the network stack after
changes.
- Simplified remote access and WAN port configuration logic for clarity
and accuracy.
- Improved port mapping logic with explicit error handling in UPnP
service.
- Updated UI and form controls for remote access settings to reflect SSL
requirements and access type restrictions.

- **Configuration**
  - Updated the default path for module configuration files.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-24 15:10:07 -04:00
Eli Bosley
b8035c207a feat: move to cron v4 (#1428)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Updated internal dependencies for improved compatibility and
performance.
- Adjusted package configuration to include an additional built
dependency.

- **Bug Fixes**
- Improved the accuracy of task status reporting in the UPNP job
manager.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-20 17:32:12 -04:00
Eli Bosley
1b279bbab3 feat: info resolver cleanup (#1425)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced device information endpoints, allowing users to query GPU,
PCI, and USB device details.
- Added new system information endpoints for apps, OS, CPU, display,
versions, and memory, providing detailed environment insights.
- Added a new configuration file for network and authentication
settings.

- **Bug Fixes**
- Improved error handling for system and device information retrieval,
ensuring graceful fallbacks when data is unavailable.

- **Tests**
- Added comprehensive tests for device and system information services
and resolvers to ensure accurate data and robust error handling.

- **Refactor**
- Refactored system information and display logic into dedicated service
classes for better maintainability and modularity.
- Updated resolvers to delegate data fetching to injected services
instead of standalone functions or inline logic.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-06-20 17:22:54 -04:00
renovate[bot]
68df344a4b fix(deps): update all non-major dependencies (#1399)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
| [lucide-vue-next](https://lucide.dev)
([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next))
| [`^0.511.0` ->
`^0.519.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.511.0/0.519.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-vue-next/0.519.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-vue-next/0.519.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-vue-next/0.511.0/0.519.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-vue-next/0.511.0/0.519.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [node](https://nodejs.org)
([source](https://redirect.github.com/nodejs/node)) | `22.15.1` ->
`22.16.0` |
[![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v22.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/node-version/node/v22.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/node-version/node/v22.15.1/v22.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v22.15.1/v22.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.11.0` ->
`10.12.1`](https://renovatebot.com/diffs/npm/pnpm/10.11.0/10.12.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/10.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/10.11.0/10.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.11.0/10.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| packageManager | minor |
|
[vuetify-nuxt-module](https://redirect.github.com/vuetifyjs/nuxt-module)
| [`0.18.6` ->
`0.18.7`](https://renovatebot.com/diffs/npm/vuetify-nuxt-module/0.18.6/0.18.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vuetify-nuxt-module/0.18.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vuetify-nuxt-module/0.18.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vuetify-nuxt-module/0.18.6/0.18.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vuetify-nuxt-module/0.18.6/0.18.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |

---

### Release Notes

<details>
<summary>lucide-icons/lucide (lucide-vue-next)</summary>

###
[`v0.519.0`](https://redirect.github.com/lucide-icons/lucide/compare/0.518.0...0.519.0)

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.518.0...0.519.0)

###
[`v0.518.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.518.0):
Version 0.518.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.517.0...0.518.0)

#### What's Changed

- fix(icons): updated `egg` and `egg-off` icons by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3299](https://redirect.github.com/lucide-icons/lucide/pull/3299)
- fix(icons): renamed `*-help` and `*-question` icons to
`*-question-mark` by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2540](https://redirect.github.com/lucide-icons/lucide/pull/2540)
- chore(scripts): Refactor scripts to typescript by
[@&#8203;ericfennis](https://redirect.github.com/ericfennis) in
[https://github.com/lucide-icons/lucide/pull/3316](https://redirect.github.com/lucide-icons/lucide/pull/3316)
- feat(icons): added `drone` icon by
[@&#8203;shopped](https://redirect.github.com/shopped) in
[https://github.com/lucide-icons/lucide/pull/3247](https://redirect.github.com/lucide-icons/lucide/pull/3247)

#### New Contributors

- [@&#8203;shopped](https://redirect.github.com/shopped) made their
first contribution in
[https://github.com/lucide-icons/lucide/pull/3247](https://redirect.github.com/lucide-icons/lucide/pull/3247)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.517.0...0.518.0

###
[`v0.517.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.517.0):
Version 0.517.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.516.0...0.517.0)

#### What's Changed

- feat(icons): adds `barrel` icon by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/1955](https://redirect.github.com/lucide-icons/lucide/pull/1955)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.516.0...0.517.0

###
[`v0.516.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.516.0):
Version 0.516.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.515.0...0.516.0)

#### What's Changed

- fix(icons): changed `stamp` icon by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3310](https://redirect.github.com/lucide-icons/lucide/pull/3310)
- fix(icons): changed `pocket` icon by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3304](https://redirect.github.com/lucide-icons/lucide/pull/3304)
- fix(icons): changed `mic` icon by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3301](https://redirect.github.com/lucide-icons/lucide/pull/3301)
- fix(icons): changed `radio` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3293](https://redirect.github.com/lucide-icons/lucide/pull/3293)
- fix: some typos for categories by
[@&#8203;npv12](https://redirect.github.com/npv12) in
[https://github.com/lucide-icons/lucide/pull/3319](https://redirect.github.com/lucide-icons/lucide/pull/3319)
- perf(docs): optimize IconsOverview initial render - 50% faster load
times by
[@&#8203;epifaniofrancisco](https://redirect.github.com/epifaniofrancisco)
in
[https://github.com/lucide-icons/lucide/pull/3282](https://redirect.github.com/lucide-icons/lucide/pull/3282)
- fix(docs): remove flex-direction CSS causing absolute stroke width
toggle positioning issue
([#&#8203;3308](https://redirect.github.com/lucide-icons/lucide/issues/3308))
by
[@&#8203;epifaniofrancisco](https://redirect.github.com/epifaniofrancisco)
in
[https://github.com/lucide-icons/lucide/pull/3317](https://redirect.github.com/lucide-icons/lucide/pull/3317)
- feat(icons): added `wifi-cog` icon by
[@&#8203;luisdlopera](https://redirect.github.com/luisdlopera) in
[https://github.com/lucide-icons/lucide/pull/3133](https://redirect.github.com/lucide-icons/lucide/pull/3133)

#### New Contributors

- [@&#8203;npv12](https://redirect.github.com/npv12) made their first
contribution in
[https://github.com/lucide-icons/lucide/pull/3319](https://redirect.github.com/lucide-icons/lucide/pull/3319)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.515.0...0.516.0

###
[`v0.515.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.515.0):
Version 0.515.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.514.0...0.515.0)

#### What's Changed

- fix(icons): changed `house-plus` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3238](https://redirect.github.com/lucide-icons/lucide/pull/3238)
- fix(icons): changed `radiation` icon by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3303](https://redirect.github.com/lucide-icons/lucide/pull/3303)
- feat(icons): added `rectangle-circle` icon by
[@&#8203;zefir-git](https://redirect.github.com/zefir-git) in
[https://github.com/lucide-icons/lucide/pull/3245](https://redirect.github.com/lucide-icons/lucide/pull/3245)

#### New Contributors

- [@&#8203;zefir-git](https://redirect.github.com/zefir-git) made their
first contribution in
[https://github.com/lucide-icons/lucide/pull/3245](https://redirect.github.com/lucide-icons/lucide/pull/3245)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.514.0...0.515.0

###
[`v0.514.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.514.0):
Version 0.514.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.513.0...0.514.0)

#### What's Changed

- fix(icons): changed `trophy` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2475](https://redirect.github.com/lucide-icons/lucide/pull/2475)
- fix(pull-request-icon-preview): pinned and --forced svgson installati…
by [@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3289](https://redirect.github.com/lucide-icons/lucide/pull/3289)
- chore(metadata): added tag to `bandage` icon by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3300](https://redirect.github.com/lucide-icons/lucide/pull/3300)
- fix(icons): changed `settings-2` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2974](https://redirect.github.com/lucide-icons/lucide/pull/2974)
- fix(docs):
[#&#8203;2984](https://redirect.github.com/lucide-icons/lucide/issues/2984)
absoluteStrokeWidth not resetting with Reset button by
[@&#8203;epifaniofrancisco](https://redirect.github.com/epifaniofrancisco)
in
[https://github.com/lucide-icons/lucide/pull/3261](https://redirect.github.com/lucide-icons/lucide/pull/3261)
- feat(icons): added book-alert icon by
[@&#8203;domasmark](https://redirect.github.com/domasmark) in
[https://github.com/lucide-icons/lucide/pull/3249](https://redirect.github.com/lucide-icons/lucide/pull/3249)

#### New Contributors

- [@&#8203;domasmark](https://redirect.github.com/domasmark) made their
first contribution in
[https://github.com/lucide-icons/lucide/pull/3249](https://redirect.github.com/lucide-icons/lucide/pull/3249)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.513.0...0.514.0

###
[`v0.513.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.513.0):
Version 0.513.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.512.0...0.513.0)

#### What's Changed

- feat(icons): Add sim card icon from lab by
[@&#8203;ericfennis](https://redirect.github.com/ericfennis) in
[https://github.com/lucide-icons/lucide/pull/3275](https://redirect.github.com/lucide-icons/lucide/pull/3275)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.512.0...0.513.0

###
[`v0.512.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.512.0):
Version 0.512.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.511.0...0.512.0)

#### What's Changed

- feat(icons): added `circle-pound-sterling` icon by
[@&#8203;lieonlion](https://redirect.github.com/lieonlion) in
[https://github.com/lucide-icons/lucide/pull/2822](https://redirect.github.com/lucide-icons/lucide/pull/2822)
- build(deps-dev): bump vite from 6.3.2 to 6.3.4 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/lucide-icons/lucide/pull/3181](https://redirect.github.com/lucide-icons/lucide/pull/3181)
- docs(docs): added testing website locally instructions by
[@&#8203;briz123](https://redirect.github.com/briz123) in
[https://github.com/lucide-icons/lucide/pull/3124](https://redirect.github.com/lucide-icons/lucide/pull/3124)
- build(deps-dev): bump vite from 6.0.7 to 6.1.6 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/lucide-icons/lucide/pull/3236](https://redirect.github.com/lucide-icons/lucide/pull/3236)
- fix(icons): changed `square-check-big` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3156](https://redirect.github.com/lucide-icons/lucide/pull/3156)
- fix(icons): changed `list-collapse` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3081](https://redirect.github.com/lucide-icons/lucide/pull/3081)
- fix(icons): changed `battery-*` icons by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3083](https://redirect.github.com/lucide-icons/lucide/pull/3083)
- fix(icons): changed `paperclip` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2956](https://redirect.github.com/lucide-icons/lucide/pull/2956)
- fix(icons): changed `eraser` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3076](https://redirect.github.com/lucide-icons/lucide/pull/3076)
- feat(icons): Add `cloud-check` icon by
[@&#8203;lscheibel](https://redirect.github.com/lscheibel) in
[https://github.com/lucide-icons/lucide/pull/2612](https://redirect.github.com/lucide-icons/lucide/pull/2612)
- feat(icon): add `id-card-lanyard` icon by
[@&#8203;python2911](https://redirect.github.com/python2911) in
[https://github.com/lucide-icons/lucide/pull/2898](https://redirect.github.com/lucide-icons/lucide/pull/2898)
- feat(angular): update peer dependencies for Angular to support version
20.x by
[@&#8203;JeevanMahesha](https://redirect.github.com/JeevanMahesha) in
[https://github.com/lucide-icons/lucide/pull/3273](https://redirect.github.com/lucide-icons/lucide/pull/3273)
- fix(icons): changed `file-badge` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2934](https://redirect.github.com/lucide-icons/lucide/pull/2934)
- feat(icons): added `grid-3x2` icon by
[@&#8203;qubrat](https://redirect.github.com/qubrat) in
[https://github.com/lucide-icons/lucide/pull/3216](https://redirect.github.com/lucide-icons/lucide/pull/3216)

#### New Contributors

- [@&#8203;lieonlion](https://redirect.github.com/lieonlion) made their
first contribution in
[https://github.com/lucide-icons/lucide/pull/2822](https://redirect.github.com/lucide-icons/lucide/pull/2822)
- [@&#8203;python2911](https://redirect.github.com/python2911) made
their first contribution in
[https://github.com/lucide-icons/lucide/pull/2898](https://redirect.github.com/lucide-icons/lucide/pull/2898)
- [@&#8203;JeevanMahesha](https://redirect.github.com/JeevanMahesha)
made their first contribution in
[https://github.com/lucide-icons/lucide/pull/3273](https://redirect.github.com/lucide-icons/lucide/pull/3273)
- [@&#8203;qubrat](https://redirect.github.com/qubrat) made their first
contribution in
[https://github.com/lucide-icons/lucide/pull/3216](https://redirect.github.com/lucide-icons/lucide/pull/3216)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.511.0...0.512.0

</details>

<details>
<summary>nodejs/node (node)</summary>

###
[`v22.16.0`](https://redirect.github.com/nodejs/node/releases/tag/v22.16.0):
2025-05-21, Version 22.16.0 &#x27;Jod&#x27; (LTS), @&#8203;aduh95

[Compare
Source](https://redirect.github.com/nodejs/node/compare/v22.15.1...v22.16.0)

##### Notable Changes

-
\[[`c3ceaebb7a`](https://redirect.github.com/nodejs/node/commit/c3ceaebb7a)]
- **deps**: update timezone to 2025b (Node.js GitHub Bot)
[#&#8203;57857](https://redirect.github.com/nodejs/node/pull/57857)
-
\[[`5059a746ec`](https://redirect.github.com/nodejs/node/commit/5059a746ec)]
- **doc**: add dario-piotrowicz to collaborators (Dario Piotrowicz)
[#&#8203;58102](https://redirect.github.com/nodejs/node/pull/58102)
-
\[[`c8ceaaf397`](https://redirect.github.com/nodejs/node/commit/c8ceaaf397)]
- **(SEMVER-MINOR)** **doc**: graduate multiple experimental apis (James
M Snell)
[#&#8203;57765](https://redirect.github.com/nodejs/node/pull/57765)
-
\[[`e21b37d9df`](https://redirect.github.com/nodejs/node/commit/e21b37d9df)]
- **(SEMVER-MINOR)** **esm**: graduate import.meta properties (James M
Snell)
[#&#8203;58011](https://redirect.github.com/nodejs/node/pull/58011)
-
\[[`832640c35e`](https://redirect.github.com/nodejs/node/commit/832640c35e)]
- **(SEMVER-MINOR)** **esm**: support top-level Wasm without package
type (Guy Bedford)
[#&#8203;57610](https://redirect.github.com/nodejs/node/pull/57610)
-
\[[`c510391d2f`](https://redirect.github.com/nodejs/node/commit/c510391d2f)]
- **(SEMVER-MINOR)** **sqlite**: add StatementSync.prototype.columns()
(Colin Ihrig)
[#&#8203;57490](https://redirect.github.com/nodejs/node/pull/57490)
-
\[[`5d1230bec0`](https://redirect.github.com/nodejs/node/commit/5d1230bec0)]
- **(SEMVER-MINOR)** **src**: set default config as `node.config.json`
(Marco Ippolito)
[#&#8203;57171](https://redirect.github.com/nodejs/node/pull/57171)
-
\[[`30bb1ccbb0`](https://redirect.github.com/nodejs/node/commit/30bb1ccbb0)]
- **(SEMVER-MINOR)** **src**: create
`THROW_ERR_OPTIONS_BEFORE_BOOTSTRAPPING` (Marco Ippolito)
[#&#8203;57016](https://redirect.github.com/nodejs/node/pull/57016)
-
\[[`0350c6f478`](https://redirect.github.com/nodejs/node/commit/0350c6f478)]
- **(SEMVER-MINOR)** **src**: add config file support (Marco Ippolito)
[#&#8203;57016](https://redirect.github.com/nodejs/node/pull/57016)
-
\[[`e1d3a9e192`](https://redirect.github.com/nodejs/node/commit/e1d3a9e192)]
- **(SEMVER-MINOR)** **src**: add ExecutionAsyncId getter for any
Context (Attila Szegedi)
[#&#8203;57820](https://redirect.github.com/nodejs/node/pull/57820)
-
\[[`0ec912f452`](https://redirect.github.com/nodejs/node/commit/0ec912f452)]
- **(SEMVER-MINOR)** **stream**: preserve AsyncLocalStorage context in
finished() (Gürgün Dayıoğlu)
[#&#8203;57865](https://redirect.github.com/nodejs/node/pull/57865)
-
\[[`43490c8797`](https://redirect.github.com/nodejs/node/commit/43490c8797)]
- **(SEMVER-MINOR)** **util**: add `types.isFloat16Array()` (Livia
Medeiros)
[#&#8203;57879](https://redirect.github.com/nodejs/node/pull/57879)
-
\[[`dda6ca9172`](https://redirect.github.com/nodejs/node/commit/dda6ca9172)]
- **(SEMVER-MINOR)** **worker**: add worker.getHeapStatistics() (Matteo
Collina)
[#&#8203;57888](https://redirect.github.com/nodejs/node/pull/57888)

##### Commits

-
\[[`4252dc798c`](https://redirect.github.com/nodejs/node/commit/4252dc798c)]
- **assert**: support `Float16Array` in loose deep equality checks
(Livia Medeiros)
[#&#8203;57881](https://redirect.github.com/nodejs/node/pull/57881)
-
\[[`1c7396b078`](https://redirect.github.com/nodejs/node/commit/1c7396b078)]
- **assert,util**: fix constructor lookup in deep equal comparison
(Ruben Bridgewater)
[#&#8203;57876](https://redirect.github.com/nodejs/node/pull/57876)
-
\[[`1ded5f25c8`](https://redirect.github.com/nodejs/node/commit/1ded5f25c8)]
- **assert,util**: improve deep object comparison performance (Ruben
Bridgewater)
[#&#8203;57648](https://redirect.github.com/nodejs/node/pull/57648)
-
\[[`696b5f85ca`](https://redirect.github.com/nodejs/node/commit/696b5f85ca)]
- **assert,util**: improve unequal number comparison performance (Ruben
Bridgewater)
[#&#8203;57619](https://redirect.github.com/nodejs/node/pull/57619)
-
\[[`775ee4d40f`](https://redirect.github.com/nodejs/node/commit/775ee4d40f)]
- **assert,util**: improve array comparison (Ruben Bridgewater)
[#&#8203;57619](https://redirect.github.com/nodejs/node/pull/57619)
-
\[[`3766992ba4`](https://redirect.github.com/nodejs/node/commit/3766992ba4)]
- **benchmark**: add sqlite prepare select get (Vinícius Lourenço)
[#&#8203;58040](https://redirect.github.com/nodejs/node/pull/58040)
-
\[[`8390276be3`](https://redirect.github.com/nodejs/node/commit/8390276be3)]
- **benchmark**: add sqlite prepare select all (Vinícius Lourenço)
[#&#8203;58040](https://redirect.github.com/nodejs/node/pull/58040)
-
\[[`6a9b79e5c1`](https://redirect.github.com/nodejs/node/commit/6a9b79e5c1)]
- **benchmark**: add sqlite is transaction (Vinícius Lourenço)
[#&#8203;58040](https://redirect.github.com/nodejs/node/pull/58040)
-
\[[`f689f98344`](https://redirect.github.com/nodejs/node/commit/f689f98344)]
- **benchmark**: add sqlite prepare insert (Vinícius Lourenço)
[#&#8203;58040](https://redirect.github.com/nodejs/node/pull/58040)
-
\[[`14a82804d7`](https://redirect.github.com/nodejs/node/commit/14a82804d7)]
- **benchmark**: disambiguate `filename` and `dirname` read perf
(Antoine du Hamel)
[#&#8203;58056](https://redirect.github.com/nodejs/node/pull/58056)
-
\[[`e7e8256d35`](https://redirect.github.com/nodejs/node/commit/e7e8256d35)]
- **buffer**: avoid creating unnecessary environment (Yagiz Nizipli)
[#&#8203;58053](https://redirect.github.com/nodejs/node/pull/58053)
-
\[[`d7d8e8e994`](https://redirect.github.com/nodejs/node/commit/d7d8e8e994)]
- **buffer**: define global v8::CFunction objects as const (Mert Can
Altin)
[#&#8203;57676](https://redirect.github.com/nodejs/node/pull/57676)
-
\[[`f37633e85a`](https://redirect.github.com/nodejs/node/commit/f37633e85a)]
- **build**: use `$(BUILDTYPE)` when cleaning coverage files (Aviv
Keller)
[#&#8203;57995](https://redirect.github.com/nodejs/node/pull/57995)
-
\[[`e5bf67fe77`](https://redirect.github.com/nodejs/node/commit/e5bf67fe77)]
- **build**: define python when generating `out/Makefile` (Aviv Keller)
[#&#8203;57970](https://redirect.github.com/nodejs/node/pull/57970)
-
\[[`718f874ae0`](https://redirect.github.com/nodejs/node/commit/718f874ae0)]
- **build**: fix zstd libname (Antoine du Hamel)
[#&#8203;57999](https://redirect.github.com/nodejs/node/pull/57999)
-
\[[`53c5fdcae1`](https://redirect.github.com/nodejs/node/commit/53c5fdcae1)]
- **crypto**: fix cross-realm `SharedArrayBuffer` validation (Antoine du
Hamel)
[#&#8203;57974](https://redirect.github.com/nodejs/node/pull/57974)
-
\[[`78f4ffee5d`](https://redirect.github.com/nodejs/node/commit/78f4ffee5d)]
- **crypto**: fix cross-realm check of `ArrayBuffer` (Felipe Forbeck)
[#&#8203;57828](https://redirect.github.com/nodejs/node/pull/57828)
-
\[[`f606352b63`](https://redirect.github.com/nodejs/node/commit/f606352b63)]
- **crypto**: forbid passing `Float16Array` to `getRandomValues()`
(Livia Medeiros)
[#&#8203;57880](https://redirect.github.com/nodejs/node/pull/57880)
-
\[[`23c4e941c2`](https://redirect.github.com/nodejs/node/commit/23c4e941c2)]
- **crypto**: remove BoringSSL dh-primes addition (Shelley Vohr)
[#&#8203;57023](https://redirect.github.com/nodejs/node/pull/57023)
-
\[[`8339d9bc14`](https://redirect.github.com/nodejs/node/commit/8339d9bc14)]
- **deps**: V8: cherry-pick
[`f915fa4`](https://redirect.github.com/nodejs/node/commit/f915fa4c9f41)
(Chengzhong Wu)
[#&#8203;55484](https://redirect.github.com/nodejs/node/pull/55484)
-
\[[`c2111dd126`](https://redirect.github.com/nodejs/node/commit/c2111dd126)]
- **deps**: V8: backport
[`e5dbbba`](https://redirect.github.com/nodejs/node/commit/e5dbbbadcbff)
(Darshan Sen)
[#&#8203;58120](https://redirect.github.com/nodejs/node/pull/58120)
-
\[[`4cc49be951`](https://redirect.github.com/nodejs/node/commit/4cc49be951)]
- **deps**: update zstd to 1.5.7 (Node.js GitHub Bot)
[#&#8203;57940](https://redirect.github.com/nodejs/node/pull/57940)
-
\[[`c956d37c84`](https://redirect.github.com/nodejs/node/commit/c956d37c84)]
- **deps**: update zlib to 1.3.0.1-motley-780819f (Node.js GitHub Bot)
[#&#8203;57768](https://redirect.github.com/nodejs/node/pull/57768)
-
\[[`c3ceaebb7a`](https://redirect.github.com/nodejs/node/commit/c3ceaebb7a)]
- **deps**: update timezone to 2025b (Node.js GitHub Bot)
[#&#8203;57857](https://redirect.github.com/nodejs/node/pull/57857)
-
\[[`b5cd0eb590`](https://redirect.github.com/nodejs/node/commit/b5cd0eb590)]
- **deps**: update simdutf to 6.4.2 (Node.js GitHub Bot)
[#&#8203;57855](https://redirect.github.com/nodejs/node/pull/57855)
-
\[[`3eb6b814e9`](https://redirect.github.com/nodejs/node/commit/3eb6b814e9)]
- **deps**: update simdutf to 6.4.0 (Node.js GitHub Bot)
[#&#8203;56764](https://redirect.github.com/nodejs/node/pull/56764)
-
\[[`0be9fa3218`](https://redirect.github.com/nodejs/node/commit/0be9fa3218)]
- **deps**: update icu to 77.1 (Node.js GitHub Bot)
[#&#8203;57455](https://redirect.github.com/nodejs/node/pull/57455)
-
\[[`d5cf4254fb`](https://redirect.github.com/nodejs/node/commit/d5cf4254fb)]
- **doc**: add HBSPS as triager (Wiyeong Seo)
[#&#8203;57980](https://redirect.github.com/nodejs/node/pull/57980)
-
\[[`ad0861dba0`](https://redirect.github.com/nodejs/node/commit/ad0861dba0)]
- **doc**: add ambassaor message (Brian Muenzenmeyer)
[#&#8203;57600](https://redirect.github.com/nodejs/node/pull/57600)
-
\[[`0d3ec1aafe`](https://redirect.github.com/nodejs/node/commit/0d3ec1aafe)]
- **doc**: fix misaligned options in vm.compileFunction() (Jimmy Leung)
[#&#8203;58145](https://redirect.github.com/nodejs/node/pull/58145)
-
\[[`1f70baf3b0`](https://redirect.github.com/nodejs/node/commit/1f70baf3b0)]
- **doc**: add missing options.signal to
readlinePromises.createInterface() (Jimmy Leung)
[#&#8203;55456](https://redirect.github.com/nodejs/node/pull/55456)
-
\[[`ec6a48621f`](https://redirect.github.com/nodejs/node/commit/ec6a48621f)]
- **doc**: fix typo of file `zlib.md` (yusheng chen)
[#&#8203;58093](https://redirect.github.com/nodejs/node/pull/58093)
-
\[[`37e360e386`](https://redirect.github.com/nodejs/node/commit/37e360e386)]
- **doc**: make stability labels more consistent (Antoine du Hamel)
[#&#8203;57516](https://redirect.github.com/nodejs/node/pull/57516)
-
\[[`2b5d63d36e`](https://redirect.github.com/nodejs/node/commit/2b5d63d36e)]
- **doc**: allow the $schema property in node.config.json (Remco
Haszing)
[#&#8203;57560](https://redirect.github.com/nodejs/node/pull/57560)
-
\[[`a2063638e2`](https://redirect.github.com/nodejs/node/commit/a2063638e2)]
- **doc**: fix `AsyncLocalStorage` example response changes after node
v18 (Naor Tedgi (Abu Emma))
[#&#8203;57969](https://redirect.github.com/nodejs/node/pull/57969)
-
\[[`474c2b14c3`](https://redirect.github.com/nodejs/node/commit/474c2b14c3)]
- **doc**: mark Node.js 18 as End-of-Life (Richard Lau)
[#&#8203;58084](https://redirect.github.com/nodejs/node/pull/58084)
-
\[[`5059a746ec`](https://redirect.github.com/nodejs/node/commit/5059a746ec)]
- **doc**: add dario-piotrowicz to collaborators (Dario Piotrowicz)
[#&#8203;58102](https://redirect.github.com/nodejs/node/pull/58102)
-
\[[`1eec170fc3`](https://redirect.github.com/nodejs/node/commit/1eec170fc3)]
- **doc**: fix formatting of `import.meta.filename` section (Antoine du
Hamel)
[#&#8203;58079](https://redirect.github.com/nodejs/node/pull/58079)
-
\[[`7f108de525`](https://redirect.github.com/nodejs/node/commit/7f108de525)]
- **doc**: fix env variable name in `util.styleText` (Antoine du Hamel)
[#&#8203;58072](https://redirect.github.com/nodejs/node/pull/58072)
-
\[[`54b3f7fffc`](https://redirect.github.com/nodejs/node/commit/54b3f7fffc)]
- **doc**: add returns for https.get (Eng Zer Jun)
[#&#8203;58025](https://redirect.github.com/nodejs/node/pull/58025)
-
\[[`66f2c605a8`](https://redirect.github.com/nodejs/node/commit/66f2c605a8)]
- **doc**: fix typo in `buffer.md` (chocolateboy)
[#&#8203;58052](https://redirect.github.com/nodejs/node/pull/58052)
-
\[[`b0256dd42b`](https://redirect.github.com/nodejs/node/commit/b0256dd42b)]
- **doc**: correct deprecation type of `assert.CallTracker` (René)
[#&#8203;57997](https://redirect.github.com/nodejs/node/pull/57997)
-
\[[`581439c9e6`](https://redirect.github.com/nodejs/node/commit/581439c9e6)]
- **doc**: mark devtools integration section as active development
(Chengzhong Wu)
[#&#8203;57886](https://redirect.github.com/nodejs/node/pull/57886)
-
\[[`a2a2a2f027`](https://redirect.github.com/nodejs/node/commit/a2a2a2f027)]
- **doc**: fix typo in `module.md` (Alex Schwartz)
[#&#8203;57889](https://redirect.github.com/nodejs/node/pull/57889)
-
\[[`c0ec4e2935`](https://redirect.github.com/nodejs/node/commit/c0ec4e2935)]
- **doc**: increase z-index of header element (Dario Piotrowicz)
[#&#8203;57851](https://redirect.github.com/nodejs/node/pull/57851)
-
\[[`93d19ec6cd`](https://redirect.github.com/nodejs/node/commit/93d19ec6cd)]
- **doc**: add missing TS formats for `load` hooks (Antoine du Hamel)
[#&#8203;57837](https://redirect.github.com/nodejs/node/pull/57837)
-
\[[`f5ea06c61f`](https://redirect.github.com/nodejs/node/commit/f5ea06c61f)]
- **doc**: clarify the multi REPL example (Dario Piotrowicz)
[#&#8203;57759](https://redirect.github.com/nodejs/node/pull/57759)
-
\[[`80c4fe1b70`](https://redirect.github.com/nodejs/node/commit/80c4fe1b70)]
- **doc**: fix deprecation type for `DEP0148` (Livia Medeiros)
[#&#8203;57785](https://redirect.github.com/nodejs/node/pull/57785)
-
\[[`01cad99da0`](https://redirect.github.com/nodejs/node/commit/01cad99da0)]
- **doc**: list DOMException as a potential error raised by Node.js
(Chengzhong Wu)
[#&#8203;57783](https://redirect.github.com/nodejs/node/pull/57783)
-
\[[`a08b714a46`](https://redirect.github.com/nodejs/node/commit/a08b714a46)]
- **doc**: add missing v0.x changelog entries (Antoine du Hamel)
[#&#8203;57779](https://redirect.github.com/nodejs/node/pull/57779)
-
\[[`d0b48350fd`](https://redirect.github.com/nodejs/node/commit/d0b48350fd)]
- **doc**: fix typo in writing-docs (Sebastian Beltran)
[#&#8203;57776](https://redirect.github.com/nodejs/node/pull/57776)
-
\[[`bde3725f8b`](https://redirect.github.com/nodejs/node/commit/bde3725f8b)]
- **doc**: clarify examples section in REPL doc (Dario Piotrowicz)
[#&#8203;57762](https://redirect.github.com/nodejs/node/pull/57762)
-
\[[`c8ceaaf397`](https://redirect.github.com/nodejs/node/commit/c8ceaaf397)]
- **(SEMVER-MINOR)** **doc**: graduate multiple experimental apis (James
M Snell)
[#&#8203;57765](https://redirect.github.com/nodejs/node/pull/57765)
-
\[[`92428c2609`](https://redirect.github.com/nodejs/node/commit/92428c2609)]
- **doc**: explicitly state that corepack will be removed in v25+
(Trivikram Kamat)
[#&#8203;57747](https://redirect.github.com/nodejs/node/pull/57747)
-
\[[`298969e1dd`](https://redirect.github.com/nodejs/node/commit/298969e1dd)]
- **doc**: update position type to integer | null in fs (Yukihiro
Hasegawa)
[#&#8203;57745](https://redirect.github.com/nodejs/node/pull/57745)
-
\[[`a9d28e27c9`](https://redirect.github.com/nodejs/node/commit/a9d28e27c9)]
- **doc**: update CI instructions (Antoine du Hamel)
[#&#8203;57743](https://redirect.github.com/nodejs/node/pull/57743)
-
\[[`133d2878a1`](https://redirect.github.com/nodejs/node/commit/133d2878a1)]
- **doc**: update example of using `await` in REPL (Dario Piotrowicz)
[#&#8203;57653](https://redirect.github.com/nodejs/node/pull/57653)
-
\[[`fc5f126629`](https://redirect.github.com/nodejs/node/commit/fc5f126629)]
- **doc**: add back mention of visa fees to onboarding doc (Darshan Sen)
[#&#8203;57730](https://redirect.github.com/nodejs/node/pull/57730)
-
\[[`945f4ac538`](https://redirect.github.com/nodejs/node/commit/945f4ac538)]
- **doc**: process.execve is only unavailable for Windows (Yaksh Bariya)
[#&#8203;57726](https://redirect.github.com/nodejs/node/pull/57726)
-
\[[`f3b885bb5e`](https://redirect.github.com/nodejs/node/commit/f3b885bb5e)]
- **doc**: clarify `unhandledRejection` events behaviors in process doc
(Dario Piotrowicz)
[#&#8203;57654](https://redirect.github.com/nodejs/node/pull/57654)
-
\[[`7326dda5b0`](https://redirect.github.com/nodejs/node/commit/7326dda5b0)]
- **doc**: improved fetch docs (Alessandro Miliucci)
[#&#8203;57296](https://redirect.github.com/nodejs/node/pull/57296)
-
\[[`6906c5eb1f`](https://redirect.github.com/nodejs/node/commit/6906c5eb1f)]
- **doc**: document REPL custom eval arguments (Dario Piotrowicz)
[#&#8203;57690](https://redirect.github.com/nodejs/node/pull/57690)
-
\[[`47a7564e8f`](https://redirect.github.com/nodejs/node/commit/47a7564e8f)]
- **doc**: classify Chrome DevTools Protocol as tier 2 (Chengzhong Wu)
[#&#8203;57634](https://redirect.github.com/nodejs/node/pull/57634)
-
\[[`e274cc1310`](https://redirect.github.com/nodejs/node/commit/e274cc1310)]
- **doc**: replace NOTE that does not render properly (Colin Ihrig)
[#&#8203;57484](https://redirect.github.com/nodejs/node/pull/57484)
-
\[[`bef06b11df`](https://redirect.github.com/nodejs/node/commit/bef06b11df)]
- **esm**: avoid `import.meta` setup costs for unused properties
(Antoine du Hamel)
[#&#8203;57286](https://redirect.github.com/nodejs/node/pull/57286)
-
\[[`e21b37d9df`](https://redirect.github.com/nodejs/node/commit/e21b37d9df)]
- **(SEMVER-MINOR)** **esm**: graduate import.meta properties (James M
Snell)
[#&#8203;58011](https://redirect.github.com/nodejs/node/pull/58011)
-
\[[`832640c35e`](https://redirect.github.com/nodejs/node/commit/832640c35e)]
- **(SEMVER-MINOR)** **esm**: support top-level Wasm without package
type (Guy Bedford)
[#&#8203;57610](https://redirect.github.com/nodejs/node/pull/57610)
-
\[[`8f643471ef`](https://redirect.github.com/nodejs/node/commit/8f643471ef)]
- **fs**: improve globSync performance (Rich Trott)
[#&#8203;57725](https://redirect.github.com/nodejs/node/pull/57725)
-
\[[`bf9e17ecc6`](https://redirect.github.com/nodejs/node/commit/bf9e17ecc6)]
- **http2**: use args.This() instead of args.Holder() (Joyee Cheung)
[#&#8203;58004](https://redirect.github.com/nodejs/node/pull/58004)
-
\[[`137717354f`](https://redirect.github.com/nodejs/node/commit/137717354f)]
- **http2**: fix graceful session close (Kushagra Pandey)
[#&#8203;57808](https://redirect.github.com/nodejs/node/pull/57808)
-
\[[`9baf580269`](https://redirect.github.com/nodejs/node/commit/9baf580269)]
- **http2**: fix check for `frame->hd.type` (hanguanqiang)
[#&#8203;57644](https://redirect.github.com/nodejs/node/pull/57644)
-
\[[`b8189242b2`](https://redirect.github.com/nodejs/node/commit/b8189242b2)]
- **http2**: skip writeHead if stream is closed (Shima Ryuhei)
[#&#8203;57686](https://redirect.github.com/nodejs/node/pull/57686)
-
\[[`4e02a1650a`](https://redirect.github.com/nodejs/node/commit/4e02a1650a)]
- **lib**: remove unused file `fetch_module` (Michaël Zasso)
[#&#8203;55880](https://redirect.github.com/nodejs/node/pull/55880)
-
\[[`d9700fef26`](https://redirect.github.com/nodejs/node/commit/d9700fef26)]
- **lib**: avoid StackOverflow on `serializeError` (Chengzhong Wu)
[#&#8203;58075](https://redirect.github.com/nodejs/node/pull/58075)
-
\[[`f3a16b6d9c`](https://redirect.github.com/nodejs/node/commit/f3a16b6d9c)]
- **lib**: resolve the issue of not adhering to the specified buffer
size (0hm☘️🏳️‍⚧️)
[#&#8203;55896](https://redirect.github.com/nodejs/node/pull/55896)
-
\[[`d4fc282f73`](https://redirect.github.com/nodejs/node/commit/d4fc282f73)]
- **lib**: fix AbortSignal.any() with timeout signals (Gürgün Dayıoğlu)
[#&#8203;57867](https://redirect.github.com/nodejs/node/pull/57867)
-
\[[`f7e2902861`](https://redirect.github.com/nodejs/node/commit/f7e2902861)]
- **lib**: use Map primordial for ActiveAsyncContextFrame (Gürgün
Dayıoğlu)
[#&#8203;57670](https://redirect.github.com/nodejs/node/pull/57670)
-
\[[`8652b0e168`](https://redirect.github.com/nodejs/node/commit/8652b0e168)]
- **meta**: set nodejs/config as codeowner (Marco Ippolito)
[#&#8203;57237](https://redirect.github.com/nodejs/node/pull/57237)
-
\[[`e98504ed95`](https://redirect.github.com/nodejs/node/commit/e98504ed95)]
- **meta**: allow penetration testing on live system with prior
authorization (Matteo Collina)
[#&#8203;57966](https://redirect.github.com/nodejs/node/pull/57966)
-
\[[`340731bea0`](https://redirect.github.com/nodejs/node/commit/340731bea0)]
- **meta**: fix subsystem in commit title (Luigi Pinca)
[#&#8203;57945](https://redirect.github.com/nodejs/node/pull/57945)
-
\[[`d767cbffcf`](https://redirect.github.com/nodejs/node/commit/d767cbffcf)]
- **meta**: bump Mozilla-Actions/sccache-action from 0.0.8 to 0.0.9
(dependabot\[bot])
[#&#8203;57720](https://redirect.github.com/nodejs/node/pull/57720)
-
\[[`575f904b13`](https://redirect.github.com/nodejs/node/commit/575f904b13)]
- **meta**: bump actions/download-artifact from 4.1.9 to 4.2.1
(dependabot\[bot])
[#&#8203;57719](https://redirect.github.com/nodejs/node/pull/57719)
-
\[[`acd323c069`](https://redirect.github.com/nodejs/node/commit/acd323c069)]
- **meta**: bump actions/setup-python from 5.4.0 to 5.5.0
(dependabot\[bot])
[#&#8203;57718](https://redirect.github.com/nodejs/node/pull/57718)
-
\[[`21246fec20`](https://redirect.github.com/nodejs/node/commit/21246fec20)]
- **meta**: bump peter-evans/create-pull-request from 7.0.7 to 7.0.8
(dependabot\[bot])
[#&#8203;57717](https://redirect.github.com/nodejs/node/pull/57717)
-
\[[`97f32d5849`](https://redirect.github.com/nodejs/node/commit/97f32d5849)]
- **meta**: bump github/codeql-action from 3.28.10 to 3.28.13
(dependabot\[bot])
[#&#8203;57716](https://redirect.github.com/nodejs/node/pull/57716)
-
\[[`90ddbb8cfa`](https://redirect.github.com/nodejs/node/commit/90ddbb8cfa)]
- **meta**: bump actions/cache from 4.2.2 to 4.2.3 (dependabot\[bot])
[#&#8203;57715](https://redirect.github.com/nodejs/node/pull/57715)
-
\[[`728425d03e`](https://redirect.github.com/nodejs/node/commit/728425d03e)]
- **meta**: bump actions/setup-node from 4.2.0 to 4.3.0
(dependabot\[bot])
[#&#8203;57714](https://redirect.github.com/nodejs/node/pull/57714)
-
\[[`1f799140e0`](https://redirect.github.com/nodejs/node/commit/1f799140e0)]
- **meta**: bump actions/upload-artifact from 4.6.1 to 4.6.2
(dependabot\[bot])
[#&#8203;57713](https://redirect.github.com/nodejs/node/pull/57713)
-
\[[`021b174a1f`](https://redirect.github.com/nodejs/node/commit/021b174a1f)]
- **module**: tidy code string concat → string templates (Jacob Smith)
[#&#8203;55820](https://redirect.github.com/nodejs/node/pull/55820)
-
\[[`44c5718476`](https://redirect.github.com/nodejs/node/commit/44c5718476)]
- **module**: fix incorrect formatting in require(esm) cycle error
message (haykam821)
[#&#8203;57453](https://redirect.github.com/nodejs/node/pull/57453)
-
\[[`bb09b4d4ae`](https://redirect.github.com/nodejs/node/commit/bb09b4d4ae)]
- **module**: improve `getPackageType` performance (Dario Piotrowicz)
[#&#8203;57599](https://redirect.github.com/nodejs/node/pull/57599)
-
\[[`9e6054e715`](https://redirect.github.com/nodejs/node/commit/9e6054e715)]
- **module**: remove unnecessary `readPackage` function (Dario
Piotrowicz)
[#&#8203;57596](https://redirect.github.com/nodejs/node/pull/57596)
-
\[[`4a8db273ba`](https://redirect.github.com/nodejs/node/commit/4a8db273ba)]
- **node-api**: add nested object wrap and napi_ref test (Chengzhong Wu)
[#&#8203;57981](https://redirect.github.com/nodejs/node/pull/57981)
-
\[[`3c65058f20`](https://redirect.github.com/nodejs/node/commit/3c65058f20)]
- **node-api**: convert NewEnv to node_napi_env\_\_::New (Vladimir
Morozov)
[#&#8203;57834](https://redirect.github.com/nodejs/node/pull/57834)
-
\[[`a4105db1f7`](https://redirect.github.com/nodejs/node/commit/a4105db1f7)]
- **os**: fix netmask format check condition in getCIDR function
(Wiyeong Seo)
[#&#8203;57324](https://redirect.github.com/nodejs/node/pull/57324)
-
\[[`248c938139`](https://redirect.github.com/nodejs/node/commit/248c938139)]
- **process**: disable building execve on IBM i (Abdirahim Musse)
[#&#8203;57883](https://redirect.github.com/nodejs/node/pull/57883)
-
\[[`972275697a`](https://redirect.github.com/nodejs/node/commit/972275697a)]
- **repl**: deprecate `repl.builtinModules` (Dario Piotrowicz)
[#&#8203;57508](https://redirect.github.com/nodejs/node/pull/57508)
-
\[[`7485309d7e`](https://redirect.github.com/nodejs/node/commit/7485309d7e)]
- **sqlite**: add location method (Edy Silva)
[#&#8203;57860](https://redirect.github.com/nodejs/node/pull/57860)
-
\[[`c12cd2a190`](https://redirect.github.com/nodejs/node/commit/c12cd2a190)]
- **sqlite**: add timeout options to DatabaseSync (Edy Silva)
[#&#8203;57752](https://redirect.github.com/nodejs/node/pull/57752)
-
\[[`5e0503a967`](https://redirect.github.com/nodejs/node/commit/5e0503a967)]
- **sqlite**: add setReturnArrays method to StatementSync (Gürgün
Dayıoğlu)
[#&#8203;57542](https://redirect.github.com/nodejs/node/pull/57542)
-
\[[`ed9d2fd51a`](https://redirect.github.com/nodejs/node/commit/ed9d2fd51a)]
- **sqlite**: enable common flags (Edy Silva)
[#&#8203;57621](https://redirect.github.com/nodejs/node/pull/57621)
-
\[[`06dcb318bc`](https://redirect.github.com/nodejs/node/commit/06dcb318bc)]
- **sqlite**: refactor prepared statement iterator (Colin Ihrig)
[#&#8203;57569](https://redirect.github.com/nodejs/node/pull/57569)
-
\[[`c510391d2f`](https://redirect.github.com/nodejs/node/commit/c510391d2f)]
- **(SEMVER-MINOR)** **sqlite**: add StatementSync.prototype.columns()
(Colin Ihrig)
[#&#8203;57490](https://redirect.github.com/nodejs/node/pull/57490)
-
\[[`4e24456a1a`](https://redirect.github.com/nodejs/node/commit/4e24456a1a)]
- **sqlite**: reset statement immediately in run() (Colin Ihrig)
[#&#8203;57350](https://redirect.github.com/nodejs/node/pull/57350)
-
\[[`a9a6891b0b`](https://redirect.github.com/nodejs/node/commit/a9a6891b0b)]
- **sqlite**: fix coverity warnings related to backup() (Colin Ihrig)
[#&#8203;56961](https://redirect.github.com/nodejs/node/pull/56961)
-
\[[`d2e1bcf3d4`](https://redirect.github.com/nodejs/node/commit/d2e1bcf3d4)]
- **sqlite**: fix use-after-free in StatementSync due to premature GC
(Divy Srivastava)
[#&#8203;56840](https://redirect.github.com/nodejs/node/pull/56840)
-
\[[`cfe15ca7b4`](https://redirect.github.com/nodejs/node/commit/cfe15ca7b4)]
- **sqlite**: handle conflicting SQLite and JS errors (Colin Ihrig)
[#&#8203;56787](https://redirect.github.com/nodejs/node/pull/56787)
-
\[[`0e999eb65f`](https://redirect.github.com/nodejs/node/commit/0e999eb65f)]
- **sqlite**: add getter to detect transactions (Colin Ihrig)
[#&#8203;57925](https://redirect.github.com/nodejs/node/pull/57925)
-
\[[`20b27331c0`](https://redirect.github.com/nodejs/node/commit/20b27331c0)]
- **sqlite, test**: expose sqlite online backup api (Edy Silva)
[#&#8203;56253](https://redirect.github.com/nodejs/node/pull/56253)
-
\[[`8856712171`](https://redirect.github.com/nodejs/node/commit/8856712171)]
- **sqlite,doc,test**: add aggregate function (Edy Silva)
[#&#8203;56600](https://redirect.github.com/nodejs/node/pull/56600)
-
\[[`120050db97`](https://redirect.github.com/nodejs/node/commit/120050db97)]
- **sqlite,src**: refactor sqlite value conversion (Edy Silva)
[#&#8203;57571](https://redirect.github.com/nodejs/node/pull/57571)
-
\[[`4c5555d558`](https://redirect.github.com/nodejs/node/commit/4c5555d558)]
- **src**: initialize privateSymbols for per_context (Jason Zhang)
[#&#8203;57479](https://redirect.github.com/nodejs/node/pull/57479)
-
\[[`d2ce9023b1`](https://redirect.github.com/nodejs/node/commit/d2ce9023b1)]
- **src**: ensure primordials are initialized exactly once (Chengzhong
Wu) [#&#8203;57519](https://redirect.github.com/nodejs/node/pull/57519)
-
\[[`06179be6ca`](https://redirect.github.com/nodejs/node/commit/06179be6ca)]
- **src**: disable abseil deadlock detection (Chengzhong Wu)
[#&#8203;57582](https://redirect.github.com/nodejs/node/pull/57582)
-
\[[`5121c47990`](https://redirect.github.com/nodejs/node/commit/5121c47990)]
- **src**: fix node_config_file.h compilation error in GN build (Cheng)
[#&#8203;57210](https://redirect.github.com/nodejs/node/pull/57210)
-
\[[`5d1230bec0`](https://redirect.github.com/nodejs/node/commit/5d1230bec0)]
- **(SEMVER-MINOR)** **src**: set default config as `node.config.json`
(Marco Ippolito)
[#&#8203;57171](https://redirect.github.com/nodejs/node/pull/57171)
-
\[[`ccee741c43`](https://redirect.github.com/nodejs/node/commit/ccee741c43)]
- **src**: namespace config file flags (Marco Ippolito)
[#&#8203;57170](https://redirect.github.com/nodejs/node/pull/57170)
-
\[[`30bb1ccbb0`](https://redirect.github.com/nodejs/node/commit/30bb1ccbb0)]
- **(SEMVER-MINOR)** **src**: create
`THROW_ERR_OPTIONS_BEFORE_BOOTSTRAPPING` (Marco Ippolito)
[#&#8203;57016](https://redirect.github.com/nodejs/node/pull/57016)
-
\[[`0350c6f478`](https://redirect.github.com/nodejs/node/commit/0350c6f478)]
- **(SEMVER-MINOR)** **src**: add config file support (Marco Ippolito)
[#&#8203;57016](https://redirect.github.com/nodejs/node/pull/57016)
-
\[[`eef37d00cb`](https://redirect.github.com/nodejs/node/commit/eef37d00cb)]
- **src**: add more debug logs and comments in NodePlatform (Joyee
Cheung)
[#&#8203;58047](https://redirect.github.com/nodejs/node/pull/58047)
-
\[[`678e8f57c0`](https://redirect.github.com/nodejs/node/commit/678e8f57c0)]
- **src**: add dcheck_eq for Object::New constructor calls (Jonas)
[#&#8203;57943](https://redirect.github.com/nodejs/node/pull/57943)
-
\[[`aee45e2036`](https://redirect.github.com/nodejs/node/commit/aee45e2036)]
- **src**: move windows specific fns to `_WIN32` (Yagiz Nizipli)
[#&#8203;57951](https://redirect.github.com/nodejs/node/pull/57951)
-
\[[`6206a8edbc`](https://redirect.github.com/nodejs/node/commit/6206a8edbc)]
- **src**: improve thread safety of TaskQueue (Shelley Vohr)
[#&#8203;57910](https://redirect.github.com/nodejs/node/pull/57910)
-
\[[`03936f31c1`](https://redirect.github.com/nodejs/node/commit/03936f31c1)]
- **src**: fixup errorhandling more in various places (James M Snell)
[#&#8203;57852](https://redirect.github.com/nodejs/node/pull/57852)
-
\[[`010dd91a19`](https://redirect.github.com/nodejs/node/commit/010dd91a19)]
- **src**: fix typo in comments (Edy Silva)
[#&#8203;57868](https://redirect.github.com/nodejs/node/pull/57868)
-
\[[`e00c1ecbd2`](https://redirect.github.com/nodejs/node/commit/e00c1ecbd2)]
- **src**: add BaseObjectPtr nullptr operations (Chengzhong Wu)
[#&#8203;56585](https://redirect.github.com/nodejs/node/pull/56585)
-
\[[`648ad252e1`](https://redirect.github.com/nodejs/node/commit/648ad252e1)]
- **src**: remove `void*` -> `char*` -> `void*` casts (Tobias Nießen)
[#&#8203;57791](https://redirect.github.com/nodejs/node/pull/57791)
-
\[[`680b434a62`](https://redirect.github.com/nodejs/node/commit/680b434a62)]
- **src**: improve error handing in node_messaging (James M Snell)
[#&#8203;57760](https://redirect.github.com/nodejs/node/pull/57760)
-
\[[`18f5301747`](https://redirect.github.com/nodejs/node/commit/18f5301747)]
- **src**: remove unused detachArrayBuffer method (Yagiz Nizipli)
[#&#8203;58055](https://redirect.github.com/nodejs/node/pull/58055)
-
\[[`065e8cd670`](https://redirect.github.com/nodejs/node/commit/065e8cd670)]
- **src**: use macros to reduce code duplication is cares_wrap (James M
Snell)
[#&#8203;57937](https://redirect.github.com/nodejs/node/pull/57937)
-
\[[`39af5d678f`](https://redirect.github.com/nodejs/node/commit/39af5d678f)]
- **src**: improve error handling in cares_wrap (James M Snell)
[#&#8203;57937](https://redirect.github.com/nodejs/node/pull/57937)
-
\[[`ca020fdc4e`](https://redirect.github.com/nodejs/node/commit/ca020fdc4e)]
- **src**: fix -Wunreachable-code-return in node_sea (Shelley Vohr)
[#&#8203;57664](https://redirect.github.com/nodejs/node/pull/57664)
-
\[[`32b6e7094a`](https://redirect.github.com/nodejs/node/commit/32b6e7094a)]
- **src**: change DCHECK to CHECK (Wuli Zuo)
[#&#8203;57948](https://redirect.github.com/nodejs/node/pull/57948)
-
\[[`e1d3a9e192`](https://redirect.github.com/nodejs/node/commit/e1d3a9e192)]
- **(SEMVER-MINOR)** **src**: add ExecutionAsyncId getter for any
Context (Attila Szegedi)
[#&#8203;57820](https://redirect.github.com/nodejs/node/pull/57820)
-
\[[`96243a723a`](https://redirect.github.com/nodejs/node/commit/96243a723a)]
- **src**: update std::vector\<v8::Local\<T>> to use v8::LocalVector\<T>
(Aditi)
[#&#8203;57646](https://redirect.github.com/nodejs/node/pull/57646)
-
\[[`0f2cbc17c7`](https://redirect.github.com/nodejs/node/commit/0f2cbc17c7)]
- **src**: update std::vector\<v8::Local\<T>> to use v8::LocalVector\<T>
(Aditi)
[#&#8203;57642](https://redirect.github.com/nodejs/node/pull/57642)
-
\[[`d1c6f861d5`](https://redirect.github.com/nodejs/node/commit/d1c6f861d5)]
- **src**: update std::vector\<v8::Local\<T>> to use v8::LocalVector\<T>
(Aditi)
[#&#8203;57578](https://redirect.github.com/nodejs/node/pull/57578)
-
\[[`ab0d3a38db`](https://redirect.github.com/nodejs/node/commit/ab0d3a38db)]
- **src**: improve error message for invalid child stdio type in
spawn_sync (Dario Piotrowicz)
[#&#8203;57589](https://redirect.github.com/nodejs/node/pull/57589)
-
\[[`24b182e7b3`](https://redirect.github.com/nodejs/node/commit/24b182e7b3)]
- **src**: implement util.types fast API calls (Ruben Bridgewater)
[#&#8203;57819](https://redirect.github.com/nodejs/node/pull/57819)
-
\[[`dda6423be9`](https://redirect.github.com/nodejs/node/commit/dda6423be9)]
- **src**: enter and lock isolate properly in json parser (Joyee Cheung)
[#&#8203;57823](https://redirect.github.com/nodejs/node/pull/57823)
-
\[[`4754c693f8`](https://redirect.github.com/nodejs/node/commit/4754c693f8)]
- **src**: improve error handling in `node_env_var.cc` (Antoine du
Hamel)
[#&#8203;57767](https://redirect.github.com/nodejs/node/pull/57767)
-
\[[`db483bbe63`](https://redirect.github.com/nodejs/node/commit/db483bbe63)]
- **src**: improve error handling in node_http2 (James M Snell)
[#&#8203;57764](https://redirect.github.com/nodejs/node/pull/57764)
-
\[[`b0277700d6`](https://redirect.github.com/nodejs/node/commit/b0277700d6)]
- **src**: improve error handling in crypto_x509 (James M Snell)
[#&#8203;57757](https://redirect.github.com/nodejs/node/pull/57757)
-
\[[`353587f984`](https://redirect.github.com/nodejs/node/commit/353587f984)]
- **src**: improve error handling in callback.cc (James M Snell)
[#&#8203;57758](https://redirect.github.com/nodejs/node/pull/57758)
-
\[[`bec053ab20`](https://redirect.github.com/nodejs/node/commit/bec053ab20)]
- **src**: remove unused variable in crypto_x509.cc (Michaël Zasso)
[#&#8203;57754](https://redirect.github.com/nodejs/node/pull/57754)
-
\[[`38a329a857`](https://redirect.github.com/nodejs/node/commit/38a329a857)]
- **src**: fix kill signal 0 on Windows (Stefan Stojanovic)
[#&#8203;57695](https://redirect.github.com/nodejs/node/pull/57695)
-
\[[`70bb387f82`](https://redirect.github.com/nodejs/node/commit/70bb387f82)]
- **src**: fix inefficient usage of v8\_inspector::StringView (Simon
Zünd)
[#&#8203;52372](https://redirect.github.com/nodejs/node/pull/52372)
-
\[[`be038f0273`](https://redirect.github.com/nodejs/node/commit/be038f0273)]
- **src,permission**: make ERR_ACCESS_DENIED more descriptive (Rafael
Gonzaga)
[#&#8203;57585](https://redirect.github.com/nodejs/node/pull/57585)
-
\[[`0ec912f452`](https://redirect.github.com/nodejs/node/commit/0ec912f452)]
- **(SEMVER-MINOR)** **stream**: preserve AsyncLocalStorage context in
finished() (Gürgün Dayıoğlu)
[#&#8203;57865](https://redirect.github.com/nodejs/node/pull/57865)
-
\[[`6ffb66f82f`](https://redirect.github.com/nodejs/node/commit/6ffb66f82f)]
- **test**: fix permission fixtures lint (Rafael Gonzaga)
[#&#8203;55819](https://redirect.github.com/nodejs/node/pull/55819)
-
\[[`fd37891186`](https://redirect.github.com/nodejs/node/commit/fd37891186)]
- **test**: add repl preview timeout test (Chengzhong Wu)
[#&#8203;55484](https://redirect.github.com/nodejs/node/pull/55484)
-
\[[`1be5a8c1b4`](https://redirect.github.com/nodejs/node/commit/1be5a8c1b4)]
- **test**: skip `test-config-json-schema` with quic (Richard Lau)
[#&#8203;57225](https://redirect.github.com/nodejs/node/pull/57225)
-
\[[`e90583b657`](https://redirect.github.com/nodejs/node/commit/e90583b657)]
- **test**: add more coverage to `node_config_file` (Marco Ippolito)
[#&#8203;57170](https://redirect.github.com/nodejs/node/pull/57170)
-
\[[`df2a36bfcc`](https://redirect.github.com/nodejs/node/commit/df2a36bfcc)]
- **test**: remove deadlock workaround (Joyee Cheung)
[#&#8203;58047](https://redirect.github.com/nodejs/node/pull/58047)
-
\[[`103034b051`](https://redirect.github.com/nodejs/node/commit/103034b051)]
- **test**: prevent extraneous HOSTNAME substitution in
test-runner-output (René)
[#&#8203;58076](https://redirect.github.com/nodejs/node/pull/58076)
-
\[[`3e58f81a38`](https://redirect.github.com/nodejs/node/commit/3e58f81a38)]
- **test**: update WPT for WebCryptoAPI to
[`b48efd6`](https://redirect.github.com/nodejs/node/commit/b48efd681e)
(Node.js GitHub Bot)
[#&#8203;58044](https://redirect.github.com/nodejs/node/pull/58044)
-
\[[`2f4e4164a3`](https://redirect.github.com/nodejs/node/commit/2f4e4164a3)]
- **test**: add missing newlines to repl .exit writes (Dario Piotrowicz)
[#&#8203;58041](https://redirect.github.com/nodejs/node/pull/58041)
-
\[[`b40769292e`](https://redirect.github.com/nodejs/node/commit/b40769292e)]
- **test**: add fast api tests for getLibuvNow() (Yagiz Nizipli)
[#&#8203;58022](https://redirect.github.com/nodejs/node/pull/58022)
-
\[[`cbd5768d47`](https://redirect.github.com/nodejs/node/commit/cbd5768d47)]
- **test**: add ALS test using http agent keep alive (Gerhard Stöbich)
[#&#8203;58017](https://redirect.github.com/nodejs/node/pull/58017)
-
\[[`9e31ab502a`](https://redirect.github.com/nodejs/node/commit/9e31ab502a)]
- **test**: deflake test-http2-options-max-headers-block-length (Luigi
Pinca)
[#&#8203;57959](https://redirect.github.com/nodejs/node/pull/57959)
-
\[[`13f8f9cc12`](https://redirect.github.com/nodejs/node/commit/13f8f9cc12)]
- **test**: rename to getCallSites (Wuli Zuo)
[#&#8203;57948](https://redirect.github.com/nodejs/node/pull/57948)
-
\[[`92dce6ed6b`](https://redirect.github.com/nodejs/node/commit/92dce6ed6b)]
- **test**: force GC in test-file-write-stream4 (Luigi Pinca)
[#&#8203;57930](https://redirect.github.com/nodejs/node/pull/57930)
-
\[[`aa755d3acf`](https://redirect.github.com/nodejs/node/commit/aa755d3acf)]
- **test**: enable skipped colorize test (Shima Ryuhei)
[#&#8203;57887](https://redirect.github.com/nodejs/node/pull/57887)
-
\[[`331f44c78c`](https://redirect.github.com/nodejs/node/commit/331f44c78c)]
- **test**: update WPT for WebCryptoAPI to
[`164426a`](https://redirect.github.com/nodejs/node/commit/164426ace2)
(Node.js GitHub Bot)
[#&#8203;57854](https://redirect.github.com/nodejs/node/pull/57854)
-
\[[`4aaa8438b4`](https://redirect.github.com/nodejs/node/commit/4aaa8438b4)]
- **test**: add test for frame count being 0.5 (Jake Yuesong Li)
[#&#8203;57732](https://redirect.github.com/nodejs/node/pull/57732)
-
\[[`fb51d3a0c5`](https://redirect.github.com/nodejs/node/commit/fb51d3a0c5)]
- **test**: fix the decimal fractions explaination (Jake Yuesong Li)
[#&#8203;57732](https://redirect.github.com/nodejs/node/pull/57732)
-
\[[`c6a45a9087`](https://redirect.github.com/nodejs/node/commit/c6a45a9087)]
- ***Revert*** "**test**: add tests for REPL custom evals" (Tobias
Nießen)
[#&#8203;57793](https://redirect.github.com/nodejs/node/pull/57793)
-
\[[`f3a4d03963`](https://redirect.github.com/nodejs/node/commit/f3a4d03963)]
- **test**: add tests for REPL custom evals (Dario Piotrowicz)
[#&#8203;57691](https://redirect.github.com/nodejs/node/pull/57691)
-
\[[`a3be0df337`](https://redirect.github.com/nodejs/node/commit/a3be0df337)]
- **test**: update expected error message for macOS (Antoine du Hamel)
[#&#8203;57742](https://redirect.github.com/nodejs/node/pull/57742)
-
\[[`a7e73a0a74`](https://redirect.github.com/nodejs/node/commit/a7e73a0a74)]
- **test**: fix dangling promise in test_runner no isolation test setup
(Jacob Smith)
[#&#8203;57595](https://redirect.github.com/nodejs/node/pull/57595)
-
\[[`edb7dd1ec7`](https://redirect.github.com/nodejs/node/commit/edb7dd1ec7)]
- **test_runner**: match minimum file column to 'all files' (Shima
Ryuhei)
[#&#8203;57848](https://redirect.github.com/nodejs/node/pull/57848)
-
\[[`c56f495e83`](https://redirect.github.com/nodejs/node/commit/c56f495e83)]
- **tools**: extract target abseil to abseil.gyp (Chengzhong Wu)
[#&#8203;57289](https://redirect.github.com/nodejs/node/pull/57289)
-
\[[`1b37161a27`](https://redirect.github.com/nodejs/node/commit/1b37161a27)]
- **tools**: ignore V8 tests in CodeQL scans (Rich Trott)
[#&#8203;58081](https://redirect.github.com/nodejs/node/pull/58081)
-
\[[`23386308dd`](https://redirect.github.com/nodejs/node/commit/23386308dd)]
- **tools**: enable CodeQL config file (Rich Trott)
[#&#8203;58036](https://redirect.github.com/nodejs/node/pull/58036)
-
\[[`9c21abc169`](https://redirect.github.com/nodejs/node/commit/9c21abc169)]
- **tools**: ignore test directory in CodeQL scans (Rich Trott)
[#&#8203;57978](https://redirect.github.com/nodejs/node/pull/57978)
-
\[[`f210a1530d`](https://redirect.github.com/nodejs/node/commit/f210a1530d)]
- **tools**: add semver-major release support to release-lint (Antoine
du Hamel)
[#&#8203;57892](https://redirect.github.com/nodejs/node/pull/57892)
-
\[[`234c417e98`](https://redirect.github.com/nodejs/node/commit/234c417e98)]
- **tools**: add codeql nightly (Rafael Gonzaga)
[#&#8203;57788](https://redirect.github.com/nodejs/node/pull/57788)
-
\[[`938f1532da`](https://redirect.github.com/nodejs/node/commit/938f1532da)]
- **tools**: edit create-release-proposal workflow to handle pr body
length (Elves Vieira)
[#&#8203;57841](https://redirect.github.com/nodejs/node/pull/57841)
-
\[[`b362339f72`](https://redirect.github.com/nodejs/node/commit/b362339f72)]
- **tools**: add zstd updater to workflow (KASEYA\yahor.siarheyenka)
[#&#8203;57831](https://redirect.github.com/nodejs/node/pull/57831)
-
\[[`61180db9c0`](https://redirect.github.com/nodejs/node/commit/61180db9c0)]
- **tools**: remove unused `osx-pkg-postinstall.sh` (Antoine du Hamel)
[#&#8203;57667](https://redirect.github.com/nodejs/node/pull/57667)
-
\[[`3ae04c94eb`](https://redirect.github.com/nodejs/node/commit/3ae04c94eb)]
- **tools**: do not use temp files when merging PRs (Antoine du Hamel)
[#&#8203;57790](https://redirect.github.com/nodejs/node/pull/57790)
-
\[[`d623c2c2b4`](https://redirect.github.com/nodejs/node/commit/d623c2c2b4)]
- **tools

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC4xNi4wIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-20 17:13:54 -04:00
renovate[bot]
53ca41404f fix(deps): update dependency vue-sonner to v2 (#1401)
This PR contains the following updates:

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

---

### Release Notes

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

###
[`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))

###
[`v1.3.2`](https://redirect.github.com/xiaoluoboding/vue-sonner/blob/HEAD/CHANGELOG.md#132-2025-04-12)

[Compare
Source](c1208885b3...v1.3.2)

##### Bug Fixes

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

###
[`v1.3.1`](https://redirect.github.com/xiaoluoboding/vue-sonner/compare/v1.3.0...c1208885b35167216568e305e8a1cb1bc786f128)

[Compare
Source](https://redirect.github.com/xiaoluoboding/vue-sonner/compare/v1.3.0...c1208885b35167216568e305e8a1cb1bc786f128)

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC4xNi4wIiwidXBkYXRlZEluVmVyIjoiNDAuMTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-20 17:06:14 -04:00
renovate[bot]
9492c2ae6a fix(deps): update dependency cache-manager to v7 (#1413)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [cache-manager](https://redirect.github.com/jaredwray/cacheable)
([source](https://redirect.github.com/jaredwray/cacheable/tree/HEAD/packages/cache-manager))
| [`^6.4.2` ->
`^7.0.0`](https://renovatebot.com/diffs/npm/cache-manager/6.4.2/7.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/cache-manager/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/cache-manager/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/cache-manager/6.4.2/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cache-manager/6.4.2/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### 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:eyJjcmVhdGVkSW5WZXIiOiI0MC40MC4zIiwidXBkYXRlZEluVmVyIjoiNDAuNDAuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-20 17:05:55 -04:00
renovate[bot]
3eb92dc9ea chore(deps): update dependency happy-dom to v18 (#1414)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) |
[`^17.4.4` ->
`^18.0.0`](https://renovatebot.com/diffs/npm/happy-dom/17.4.4/18.0.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/18.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/18.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/17.4.4/18.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/17.4.4/18.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) |
[`^17.0.0` ->
`^18.0.0`](https://renovatebot.com/diffs/npm/happy-dom/17.4.4/18.0.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/18.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/18.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/17.4.4/18.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/17.4.4/18.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>

###
[`v18.0.1`](https://redirect.github.com/capricorn86/happy-dom/compare/v18.0.0...cf74f5f63ca562e075c9c14b77ecfbb8fbc43dea)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v18.0.0...v18.0.1)

###
[`v18.0.0`](https://redirect.github.com/capricorn86/happy-dom/compare/v17.6.3...bfd0fffc12f23c6f31174953f65c4f57925e7212)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.6.3...v18.0.0)

###
[`v17.6.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.6.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.6.2...v17.6.3)

##### 👷‍♂️ Patch fixes

- Removes global typescript definition that was used for custom elements
- By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)**
in task
[#&#8203;1154](https://redirect.github.com/capricorn86/happy-dom/issues/1154)

###
[`v17.6.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.6.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.6.1...v17.6.2)

##### 👷‍♂️ Patch fixes

- Updates Typescript to the latest version - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1154](https://redirect.github.com/capricorn86/happy-dom/issues/1154)

###
[`v17.6.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.6.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.6.0...v17.6.1)

##### 🎨 Features

- Adds support for disabling validation of certificates, to allow for
self-signed certificates to be used - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1763](https://redirect.github.com/capricorn86/happy-dom/issues/1763)
- Read more about the new setting `fetch.disableStrictSSL` under
[IBrowserSettings](https://redirect.github.com/capricorn86/happy-dom/wiki/IBrowserSettings)
in the Wiki

###
[`v17.6.0`](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.9...v17.6.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.9...v17.6.0)

###
[`v17.5.9`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.5.9)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.8...v17.5.9)

##### 👷‍♂️ Patch fixes

- Adds missing null check in `HTMLLinkElement` for a browser frame
property that becomes null during teardown of a `Window` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1800](https://redirect.github.com/capricorn86/happy-dom/issues/1800)

###
[`v17.5.8`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.5.8)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.7...v17.5.8)

##### 👷‍♂️ Patch fixes

- Incorrect cache matching caused `Element.classList` to return the
wrong items - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1812](https://redirect.github.com/capricorn86/happy-dom/issues/1812)

###
[`v17.5.7`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.5.7)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.6...v17.5.7)

##### 👷‍♂️ Patch fixes

- Handle wider range of valid characters in unquoted attribute value
parsing - By **[@&#8203;AudunWA](https://redirect.github.com/AudunWA)**
in task
[#&#8203;1817](https://redirect.github.com/capricorn86/happy-dom/issues/1817)

###
[`v17.5.6`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.5.6)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.5...v17.5.6)

##### 👷‍♂️ Patch fixes

- Removes the min and max boundary check when setting the value of an
input field of type "date" - By
**[@&#8203;zgrybus](https://redirect.github.com/zgrybus)** in task
[#&#8203;1815](https://redirect.github.com/capricorn86/happy-dom/issues/1815)

###
[`v17.5.5`](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.4...v17.5.5)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.4...v17.5.5)

###
[`v17.5.4`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.5.4)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.3...v17.5.4)

##### 👷‍♂️ Patch fixes

- Fixes issue where the body of a `ReadableStream` was locked after
being cloned - By
**[@&#8203;MarcMcIntosh](https://redirect.github.com/MarcMcIntosh)** in
task
[#&#8203;1493](https://redirect.github.com/capricorn86/happy-dom/issues/1493)

###
[`v17.5.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.5.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.2...v17.5.3)

##### 👷‍♂️ Patch fixes

- Adds `previousSibling` and `nextSibling` to `MutationObserver` records
when a child is removed - By
**[@&#8203;uxuip](https://redirect.github.com/uxuip)** in task
[#&#8203;1803](https://redirect.github.com/capricorn86/happy-dom/issues/1803)

###
[`v17.5.2`](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.1...b257aa136e3cdf74046f0a2dd8d07b4d44b50436)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.1...v17.5.2)

###
[`v17.5.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.5.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.5.0...v17.5.1)

##### 👷‍♂️ Patch fixes

- Existing URL query string should be overwritten on form submit when
method is "GET" - By
**[@&#8203;rslabbert](https://redirect.github.com/rslabbert)** in task
[#&#8203;1786](https://redirect.github.com/capricorn86/happy-dom/issues/1786)

###
[`v17.5.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.5.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.4.9...v17.5.0)

##### 🎨 Features

- Adds support for `XMLHttpRequest.overrideMimeType()` - By
**[@&#8203;maxmil](https://redirect.github.com/maxmil)** in task
[#&#8203;1782](https://redirect.github.com/capricorn86/happy-dom/issues/1782)

###
[`v17.4.9`](https://redirect.github.com/capricorn86/happy-dom/compare/v17.4.8...4ec75b75d53a9f436afc737e24f9ff07a4e6ec87)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.4.8...v17.4.9)

###
[`v17.4.8`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.4.8)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.4.7...v17.4.8)

##### 👷‍♂️ Patch fixes

- Fixes issue where CSS variables where not being parsed in color
functions - By
**[@&#8203;hampustagerud](https://redirect.github.com/hampustagerud)**
in task
[#&#8203;1822](https://redirect.github.com/capricorn86/happy-dom/issues/1822)

###
[`v17.4.7`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.4.7)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.4.6...v17.4.7)

##### 👷‍♂️ Patch fixes

- Allow empty URL string in `Request` - By
**[@&#8203;elierotenberg](https://redirect.github.com/elierotenberg)**
in task
[#&#8203;1779](https://redirect.github.com/capricorn86/happy-dom/issues/1779)

###
[`v17.4.6`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.4.6)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.4.5...v17.4.6)

##### 👷‍♂️ Patch fixes

- Preserve slashes in the "name" property in `File` - By
**[@&#8203;dyabol](https://redirect.github.com/dyabol)** in task
[#&#8203;1788](https://redirect.github.com/capricorn86/happy-dom/issues/1788)

###
[`v17.4.5`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.4.5)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.4.4...v17.4.5)

##### 👷‍♂️ Patch fixes

- Handle bubbling click events in `HTMLAnchorElement` - By
**[@&#8203;maxmil](https://redirect.github.com/maxmil)** in task
[#&#8203;1775](https://redirect.github.com/capricorn86/happy-dom/issues/1775)

</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 these
updates 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:eyJjcmVhdGVkSW5WZXIiOiI0MC40OC41IiwidXBkYXRlZEluVmVyIjoiNDAuNDguNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-20 17:05:37 -04:00
Eli Bosley
f12d231e63 fix: debounce is too long (#1426)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Refactor**
- Reduced the delay before configuration changes are processed,
resulting in faster response times to configuration updates throughout
the application.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-20 11:07:53 -04:00
Eli Bosley
75ad8381bd fix: theme issues when sent from graph (#1424)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Bug Fixes**
- Improved error handling and fallback logic when loading themes,
ensuring default values are used if loading fails or data is missing.
- **Refactor**
- Updated theme customization options to improve type accuracy and allow
certain color fields to be optional.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-20 09:50:45 -04:00
Eli Bosley
9901039a38 feat: docker and info resolver issues (#1423)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Bug Fixes**
- The system info query now returns only the `id` field, with other
details loaded separately.
- **Chores**
- Internal service dependencies were updated for improved
maintainability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-19 11:50:02 -04:00
Pujit Mehrotra
70c790ff89 fix: alignment of settings on ManagementAccess settings page (#1421)
## Summary by CodeRabbit

- **Refactor**
- Removed description text display from a form field for a cleaner
interface.
- Enhanced form field matching to better target specific string array
inputs.
- Updated remote access settings UI for clearer layout and separation of
title and details.
  - Adjusted label container styling to allow more flexible width.
- Improved grouping of precondition information for better visual
structure.
  - Added a colon to the SSO users settings label for consistency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1210572375587668
2025-06-19 08:46:18 -04:00
Eli Bosley
0788756b91 feat: add management page for API keys (#1408)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added ability to update existing API keys, including name,
description, roles, and permissions, through the UI and GraphQL API.
- Introduced a modal-based interface for creating and editing API keys
with improved role and permission selection.
- Added a new API Key Manager page and custom element for centralized
API key management.
- Enhanced API key listing with detailed views, role badges, permission
counters, and copy-to-clipboard functionality.
- Introduced reusable dialog components for consistent modal
experiences.
- Added plugin management capabilities with mutations to add or remove
plugins.
- Added comprehensive support for managing remote access, network URLs,
and API key updates within the GraphQL schema.

- **Bug Fixes**
- Improved error handling and display for API key creation and update
operations.

- **Refactor**
- Centralized API key modal and editing state management using a
dedicated store.
- Updated GraphQL queries and mutations to use reusable fragments for
API key data.
- Removed deprecated or redundant remote access and allowed origins
configuration components and queries.
- Simplified and updated input types for connect settings and remote
access.

- **Tests**
- Added comprehensive tests for API key update logic and improved
coverage for API key loading.

- **Chores**
- Updated configuration files and cleaned up unused schema and component
files.
  - Added new dialog components and centralized exports for dialogs.
- Improved ESLint configuration and import statements for better type
handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-18 11:18:36 -04:00
Pujit Mehrotra
d9ab58eb83 chore: require connect plugin to enable flash backup (#1419)
## Summary by CodeRabbit

- **New Features**
- Added a check to ensure the "unraid-api-plugin-connect" plugin is
enabled before allowing flash backup functionality.
- Introduced a utility to directly verify if specific API plugins are
enabled.

- **Refactor**
- Updated internal logic to use a centralized class and script-based
checks for plugin status and version instead of manual config parsing.
- Improved script command-line interface for easier plugin status and
version checks.

- **Bug Fixes**
- Flash Backup feature and service now only activate when the required
API plugin is enabled, preventing unintended usage.
- Flash Backup UI is conditionally displayed based on the presence of
the API plugin.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1209357561531351
  - https://app.asana.com/0/0/1210541992642236
2025-06-18 10:20:59 -04:00
Pujit Mehrotra
642a220c3a feat: add graphql resource for API plugins (#1420)
Addresses #1350 

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

## Summary by CodeRabbit

- **New Features**
- Introduced a plugin management system, allowing users to view, add,
and remove plugins through the API.
- Added the ability to control plugin installation options, including
bundled installation and API restart behavior.

- **Removals**
- Removed all remote access, network, and cloud-related features and
settings from the API.

- **Improvements**
- Enhanced API queries and mutations to focus on plugin management and
metadata.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-16 14:18:13 -04:00
Michael Datelle
b6c4ee6eb4 feat: initialize claude code in codebse (#1418)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Documentation**
- Added a comprehensive onboarding and contribution guide covering
project structure, development commands, architecture, workflows, and
coding/testing standards.
- **Chores**
  - Introduced a local settings file for configuration management.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: mdatelle <mike@datelle.net>
2025-06-16 13:28:40 -04:00
Pujit Mehrotra
8c8a5276b4 fix: omit Connect actions in UPC when plugin is not installed (#1417)
Removes Connect branding in dropdown when connect plugin is not installed.

Preview of dropdown:
<img width="453" alt="image"
src="https://github.com/user-attachments/assets/b3ba3954-f2d3-4760-a1e2-91556eb43903"
/>

## Summary by CodeRabbit

- **New Features**
- The Notifications Sidebar is now always visible in the user profile,
regardless of plugin installation status.

- **Refactor**
  - Improved detection logic for the connect plugin to enhance accuracy.
- Centralized and standardized the "Settings" link in the user profile
dropdown for consistent user experience.
- The account status section in Connect Settings now only appears when
the connect plugin is installed.
- Updated the Connect page title from "Unraid Connect" to "Unraid API"
for clarity.

- **Chores**
- Extended linting to include Vue files for better code quality
enforcement.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-16 11:50:37 -04:00
Pujit Mehrotra
3dcbfbe489 feat: api plugin management via CLI (#1416)
implements unraid-api `plugins list`, `plugins install`, `plugins remove` commands via a new `DependencyService` that invokes npm.

## Summary by CodeRabbit

- **New Features**
- Enhanced plugin management with install, remove, and list commands
supporting bundled plugins and restart control.
- Added plugin persistence and configuration synchronization across API
settings and interfaces.
- Introduced dependency management service for streamlined npm
operations and vendor archive rebuilding.
- **Bug Fixes**
- Improved plugin listing accuracy with warnings for configured but
missing plugins.
- **Chores**
- Refactored CLI modules and services for unified plugin management and
dependency handling.
- Updated API configuration loading and persistence for better
separation of concerns.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-12 09:37:36 -04:00
Pujit Mehrotra
184b76de1c chore: include node_modules in api slackware package (#1415)
instead of vendoring & uploading separately.

## Summary by CodeRabbit

- **Chores**
- Updated build process to retain the `node_modules` directory, removing
compression and archiving steps.
- Improved plugin installation by cleaning up outdated dependency
archives before reinstalling, enhancing system stability.
- Removed vendor store file references and related bundling steps from
the plugin build and installation process.
- Enhanced dependency restoration during service start to log warnings
without aborting on failure.
- Simplified dependency management scripts by removing vendor store URL
handling and download functionality.
- Streamlined build workflows by removing artifact upload/download and
validation steps related to node modules archives.
- Updated Docker Compose configuration to remove unused volume mounts
for node modules archives.
- Added repository cleanup commands to remove top-level `node_modules`
directories and common build artifact folders for easier maintenance.
2025-06-11 12:07:32 -04:00
Pujit Mehrotra
c132f28281 chore: extract connect to an API plugin (#1367)
separates Unraid Connect from the API

## Summary by CodeRabbit

- **New Features**
- Introduced a unified, JSON-schema-based settings system for API
configuration and plugin settings, accessible via new GraphQL queries
and mutations.
- Added modular NestJS plugin architecture for Unraid Connect, including
new modules for cloud, remote access, and system/network management.
- Added granular connection and remote access state tracking, with new
GraphQL types and resolvers for cloud and connection status.
- Implemented event-driven and service-based management for SSO users,
API keys, and dynamic remote access.
- Enhanced UI components and queries to support unified settings and
restart detection.

- **Improvements**
- Refactored configuration and state management to use service-based
patterns, replacing direct store access and Redux logic.
- Migrated legacy config files to new JSON formats with validation and
persistence helpers.
- Centralized global dependencies and shared services for plugins and
CLI modules.
- Improved logging, error handling, and lifecycle management for
connections and background jobs.
- Updated and expanded documentation for plugin development and settings
management.

- **Bug Fixes**
- Improved handling of missing config files and ensured safe
persistence.
- Enhanced error reporting and validation in remote access and
connection services.

- **Removals**
- Removed deprecated Redux slices, listeners, and legacy cloud/remote
access logic.
- Deleted obsolete test files, scripts, and unused code related to the
old state/store approach.

- **Tests**
- Added new unit tests for settings merging, URL resolution, and cloud
connectivity checks.

- **Style**
- Applied consistent formatting, import reorganization, and code style
improvements across modules.

- **Chores**
- Updated build scripts, Dockerfiles, and development environment setup
to support new dependencies and workflows.
- Expanded .gitignore and configuration files for improved build
artifact management.
2025-06-10 15:16:26 -04:00
Eli Bosley
87fc83645f fix: monitor jobs 2025-05-27 11:25:21 -04:00
Eli Bosley
f126c9568a feat: more progress with new backup schema 2025-05-27 08:00:42 -04:00
Eli Bosley
5517e7506b feat: add rclone (#1362)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced full RClone remote management with creation, deletion,
listing, and detailed remote info via a multi-step, schema-driven UI.
- Added guided configuration forms supporting advanced and
provider-specific options for RClone remotes.
  - Enabled flash backup initiation through API mutations.
- Added new Vue components for RClone configuration, overview, remote
item cards, and flash backup page.
- Integrated new combobox, stepped layout, control wrapper, label
renderer, and improved form renderers with enhanced validation and error
display.
- Added JSON Forms visibility composable and Unraid settings layout for
consistent UI rendering.

- **Bug Fixes**
- Standardized JSON scalar usage in Docker-related types, replacing
`JSONObject` with `JSON`.

- **Chores**
- Added utility scripts and helpers to manage rclone binary installation
and versioning.
- Updated build scripts and Storybook configuration for CSS handling and
improved developer workflow.
- Refactored ESLint config for modularity and enhanced code quality
enforcement.
- Improved component registration with runtime type checks and error
handling.

- **Documentation**
- Added extensive test coverage for RClone API service, JSON Forms
schema merging, and provider config slice generation.

- **Style**
- Improved UI consistency with new layouts, tooltips on select options,
password visibility toggles, and error handling components.
- Removed deprecated components and consolidated renderer registrations
for JSON Forms.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-05-27 07:52:25 -04:00
Eli Bosley
c273a3b7e7 feat: remove stream job manager in favor of using stdin 2025-05-26 22:33:56 -04:00
Eli Bosley
92f3d6956e feat: refactor preprocessors to source 2025-05-26 20:15:13 -04:00
Eli Bosley
90ed4b9de3 feat: cleanup types 2025-05-26 19:38:24 -04:00
Eli Bosley
015c6e527b feat: substantial type cleanup 2025-05-26 19:22:12 -04:00
Eli Bosley
5fcb8da50b feat: progress on flash backup 2025-05-26 16:03:00 -04:00
Eli Bosley
5b0862dd98 feat: substantial code cleanup 2025-05-24 22:14:17 -04:00
Eli Bosley
8da7c6e586 feat: backups working 2025-05-24 19:56:53 -04:00
Eli Bosley
333093a20d feat: setup initial backup stats 2025-05-24 09:56:10 -04:00
Eli Bosley
69359902cb chore: begin setting up new views and mutations for flash backup 2025-05-24 07:42:39 -04:00
Eli Bosley
8befa23b4d fix: entropy on crypt creation 2025-05-23 20:55:41 -04:00
Eli Bosley
f0c26b777f chore: remove unused comments 2025-05-23 20:54:48 -04:00
Eli Bosley
f29d4f5318 fix: colors 2025-05-23 20:48:07 -04:00
Eli Bosley
7f9f4c68ac fix: simplify api service test 2025-05-23 20:44:30 -04:00
Eli Bosley
cebca3d6bf fix: combobox commit on close 2025-05-23 20:38:45 -04:00
Eli Bosley
25f57f90aa fix: comment cleanup 2025-05-23 20:36:22 -04:00
Eli Bosley
50b80b9c07 fix: format 2025-05-23 20:32:25 -04:00
Eli Bosley
69b8eb9060 fix: sanitize params 2025-05-23 20:32:09 -04:00
Eli Bosley
d83d36c355 fix: logging api version as well 2025-05-23 20:29:57 -04:00
Eli Bosley
7c26b01be6 fix: some redaction and fix constructor 2025-05-23 20:29:57 -04:00
Eli Bosley
1d3800c164 fix: use DTOs for rclone api service 2025-05-23 20:29:57 -04:00
Eli Bosley
9d4249950d fix: cleanup types in spec 2025-05-23 20:29:57 -04:00
Eli Bosley
5e9d09e75c fix: review feedback 2025-05-23 20:29:57 -04:00
Eli Bosley
64c71459be fix: invalid tester 2025-05-23 20:29:57 -04:00
Eli Bosley
8f8352090c fix: rclone pretry and unnecessary escapes 2025-05-23 20:29:57 -04:00
Eli Bosley
744f34fc7b fix: rclone username and password removed 2025-05-23 20:29:57 -04:00
Eli Bosley
3ffde0272c fix: remove rclone webUI 2025-05-23 20:29:57 -04:00
Eli Bosley
a5c7b9fdd3 Update unraid-ui/src/forms/renderers.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-05-23 20:29:57 -04:00
Eli Bosley
db9b8c12b9 feat: rclone installed into package 2025-05-23 20:29:57 -04:00
Eli Bosley
93d9530628 feat: add crypt one-click setup for remotes 2025-05-23 20:29:57 -04:00
Eli Bosley
af5ffec13d chore: refactor form label helper 2025-05-23 20:28:50 -04:00
Eli Bosley
54b0bc0837 chore: lint 2025-05-23 20:28:50 -04:00
Eli Bosley
7be58908f0 chore: unit test fixes 2025-05-23 20:28:50 -04:00
Eli Bosley
00b1c1b0c7 chore: don't disable apollo in dev mode 2025-05-23 20:28:50 -04:00
Eli Bosley
d3adbafbff chore: lint 2025-05-23 20:28:50 -04:00
Eli Bosley
dada8e63c5 chore: error wrapper generic 2025-05-23 20:28:50 -04:00
Eli Bosley
f5e4607f70 chore: more cleanup 2025-05-23 20:28:50 -04:00
Eli Bosley
68139cda2b chore: fix combobox 2025-05-23 20:28:50 -04:00
Eli Bosley
bf3b95bfe5 feat: fix storybook config 2025-05-23 20:28:50 -04:00
Eli Bosley
35a6d14367 fix: storybook 2025-05-23 20:28:50 -04:00
Eli Bosley
0be56f148d chore: renderer fixes 2025-05-23 20:28:11 -04:00
Eli Bosley
4c9e0044e5 chore: more progress on generative ui 2025-05-23 20:28:11 -04:00
Eli Bosley
242697c8d8 feat: ui working for RClone setup 2025-05-23 20:27:56 -04:00
Eli Bosley
f93c850b95 chore: rclone config almost complete 2025-05-23 20:27:56 -04:00
Eli Bosley
8df0ca58b5 chore: progress on rclone 2025-05-23 20:27:56 -04:00
Eli Bosley
d31d86dc7d feat: add rclone 2025-05-23 20:27:11 -04:00
Eli Bosley
d37dc3bce2 feat: API key management (#1407)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added a full-featured API key management UI, including creation,
listing, and deletion of API keys with customizable roles and
permissions.
  - Introduced a new page for API key management.
- Accordion UI components are now available for enhanced interface
interactions.
  - API now provides queries for possible API key roles and permissions.

- **Improvements**
- API key-related mutations are now grouped under a single field,
improving organization and usability.
  - Permissions can be assigned directly to API keys, not just roles.

- **Bug Fixes**
- Validation updated to require at least one role or permission when
creating an API key.

- **Documentation**
- Updated and added rules and configuration documentation for code
generation and testing.

- **Tests**
- Added and updated tests for new API key mutation logic; removed
obsolete tests for deprecated mutations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-23 13:12:26 -04:00
Eli Bosley
83076bb940 fix: rc.unraid-api now cleans up older dependencies (#1404)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added an option to clean up old dependency files, keeping only those
needed for the current API version.
- Introduced a direct cleanup command to remove outdated dependencies
before installing new ones.

- **Bug Fixes**
- Improved handling and messaging for missing or invalid dependency
information during cleanup operations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-23 10:23:58 -04:00
Eli Bosley
7b005cbbf6 fix: node_modules dir removed on plugin update (#1406)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Chores**
- Improved installation process by automatically cleaning up old package
directories before installing or upgrading the package.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-23 09:22:59 -04:00
Eli Bosley
b625227913 fix: move to bigint scalar 2025-05-22 15:01:12 -04:00
Eli Bosley
e54d27aede fix: bigint 2025-05-22 14:59:37 -04:00
Eli Bosley
574d572d65 feat: use bigint instead of long (#1403)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Improved support for large integer values in the API, allowing
accurate handling of big numbers in GraphQL queries and responses.
- **Bug Fixes**
- Enhanced reliability when dealing with very large numeric fields,
reducing the risk of data loss or inaccuracies for disk, share, and
memory statistics.
- **Chores**
	- Updated internal dependencies to improve handling of big integers.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-22 13:42:36 -04:00
Eli Bosley
5355115af2 fix: simplify usb listing (#1402)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Refactor**
- Improved USB device detection for increased reliability and
performance.
- Device names are now displayed based on basic device information, with
unnamed devices labeled appropriately.
	- GUID generation for devices is simplified and more robust.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1210189043307638
2025-05-22 13:42:26 -04:00
Eli Bosley
881f1e0960 feat: slightly better watch mode (#1398)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Added a script to automatically prepare UI components before running
the build watch process in the web app.
- **Bug Fixes**
- Improved build and release processes to ensure directories are
properly cleaned and created, preventing potential errors during Docker
operations.
- **Chores**
- Updated build watch scripts for faster development feedback and more
efficient parallel execution.
- Refined Docker Compose configuration to use the correct release
directory for plugin builds.
- Introduced a new script to streamline and centralize file watching and
build triggering in the plugin system.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-22 13:42:08 -04:00
Eli Bosley
7067e9e3dd fix: proper fallback if missing paths config modules 2025-05-22 09:40:36 -04:00
Eli Bosley
f71943b62b feat: send active unraid theme to docs (#1400)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- The changelog modal now automatically syncs its theme (dark or light
mode) with the rest of the application.
- Added a new test button to preview the changelog from a localhost URL.
- **Improvements**
- Enhanced navigation handling within the embedded changelog, ensuring
only allowed links are followed.
- Improved communication between the modal and its embedded content for
a more seamless user experience.
- Updated the app layout to better support light and dark themes with
consistent background and text colors.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-21 16:35:30 -04:00
Eli Bosley
9ce2fee380 fix: use some instead of every for connect detection 2025-05-21 10:32:21 -04:00
Eli Bosley
7d88b3393c fix: do not start API with doinst.sh 2025-05-20 17:42:49 -04:00
Michael Datelle
f6ec2839b5 test: create tests for components batch 5 (#1397)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Tests**
- Added a new test suite for the Avatar component to verify its
conditional rendering based on user and plugin state.
- Enhanced existing tests with additional mocks to improve test
isolation and reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-05-20 15:46:34 -04:00
Eli Bosley
02de89d130 fix: disable file changes on Unraid 7.2 (#1382)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Improved login security by supporting Single Sign-On (SSO) in the
login flow.
- Centralized and enhanced theme management for a more consistent
appearance across pages.

- **Refactor**
- Simplified and modularized page layouts and theme handling using
helper classes.
- Moved inline scripts and styles to external files for better
maintainability.
- Replaced legacy notification system with a modern toaster UI
component.
  - Streamlined session handling for localhost requests.
- Updated version checks to conditionally skip modifications for Unraid
7.2 compatibility.
- Replaced direct version imports with dynamic imports for better load
management.

- **Bug Fixes**
- Conditional logic added to prevent applying certain modifications on
Unraid 7.2.0 and above for improved compatibility.

- **Chores**
- Introduced a unified Vitest workspace configuration for streamlined
testing across multiple projects.
  - Added comprehensive tests for Unraid version comparison logic.
- Adjusted logging levels for activation-related messages to reduce
noise in logs.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-20 15:14:55 -04:00
Michael Datelle
eb080e5d22 test: create tests for components batch 4 (#1384)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Tests**
- Added comprehensive unit tests for the activation code data store,
covering loading states, activation code retrieval, fresh install
detection, and partner info resolution under various scenarios.
- Introduced new tests for the activation code modal store, validating
state management, visibility logic, and Konami code sequence handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-05-20 10:15:06 -04:00
Eli Bosley
edc0d1578b fix: always download 7.1 versioned files for patching 2025-05-20 09:05:56 -04:00
Eli Bosley
fcd6fbcdd4 feat: move to iframe for changelog (#1388)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Changelog modal now displays changelog documentation within an
embedded iframe if a URL is available, allowing navigation within the
iframe and providing a "Back to Changelog" button to return to the
original view.
- "View on Docs" button dynamically updates to reflect the current page
within the iframe.
- Added support for displaying a formatted changelog string and testing
modal behavior with or without this content.
- Introduced a new component to fetch, parse, and render changelogs from
URLs with enhanced markdown handling.
- Update OS store extended to manage changelog display and release
stability, consolidating changelog state and actions.

- **Bug Fixes**
  - Close button in modal dialogs is now visible on all screen sizes.

- **Chores**
- Updated the default server state, which may affect registration device
counts and types.
- Added new localization string for changelog titles with version
placeholders.
- Removed deprecated changelog store and related tests, simplifying
state management.
- Refined backup and restoration scripts for unraid-components directory
to use move operations with improved logging.
- Improved modal visibility state handling by consolidating changelog
modal controls into the main update OS store.
- Added URL origin and pattern checks for changelog iframe navigation
security.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-05-19 15:34:44 -04:00
renovate[bot]
fc68ea03d1 chore(deps): update dependency shadcn-nuxt to v2 (#1301)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [shadcn-nuxt](https://redirect.github.com/unovue/shadcn-vue)
([source](https://redirect.github.com/unovue/shadcn-vue/tree/HEAD/packages/module))
| [`^1.0.0` ->
`^2.0.0`](https://renovatebot.com/diffs/npm/shadcn-nuxt/1.0.3/2.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/shadcn-nuxt/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shadcn-nuxt/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shadcn-nuxt/1.0.3/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shadcn-nuxt/1.0.3/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>unovue/shadcn-vue (shadcn-nuxt)</summary>

###
[`v2.0.0`](https://redirect.github.com/unovue/shadcn-vue/releases/tag/v2.0.0)

[Compare
Source](https://redirect.github.com/unovue/shadcn-vue/compare/v1.0.3...v2.0.0)

#####    🚀 Features

- Tailwind v4  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia) in
[https://github.com/unovue/shadcn-vue/issues/1095](https://redirect.github.com/unovue/shadcn-vue/issues/1095)
[<samp>(c18e1)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/c18e129f)
- **docs**: Add a plugin to generate documentation for LLMs  -  by
[@&#8203;okineadev](https://redirect.github.com/okineadev) in
[https://github.com/unovue/shadcn-vue/issues/1119](https://redirect.github.com/unovue/shadcn-vue/issues/1119)
[<samp>(0d72c)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/0d72cef5)

#####    🐞 Bug Fixes

- Tailwind extra space on prefix when having " " in class  -  by
[@&#8203;AloisH](https://redirect.github.com/AloisH) in
[https://github.com/unovue/shadcn-vue/issues/1098](https://redirect.github.com/unovue/shadcn-vue/issues/1098)
[<samp>(69fee)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/69fee21d)
- Extra space on class causing error in applying prefix  -  by
[@&#8203;AloisH](https://redirect.github.com/AloisH) in
[https://github.com/unovue/shadcn-vue/issues/1109](https://redirect.github.com/unovue/shadcn-vue/issues/1109)
[<samp>(51655)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/51655218)
- Codesandbox not found pnpm  -  by
[@&#8203;hairyf](https://redirect.github.com/hairyf) in
[https://github.com/unovue/shadcn-vue/issues/1127](https://redirect.github.com/unovue/shadcn-vue/issues/1127)
[<samp>(9c12e)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/9c12ebb2)
- Styling of chart legend reset every click  -  by
[@&#8203;AloisH](https://redirect.github.com/AloisH) in
[https://github.com/unovue/shadcn-vue/issues/1125](https://redirect.github.com/unovue/shadcn-vue/issues/1125)
[<samp>(46e6f)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/46e6f7a4)

#####     [View changes on
GitHub](https://redirect.github.com/unovue/shadcn-vue/compare/v1.0.3...v2.0.0)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-19 12:19:13 -04:00
renovate[bot]
26ecf779e6 fix(deps): update dependency shadcn-vue to v2 (#1302)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [shadcn-vue](https://redirect.github.com/unovue/shadcn-vue)
([source](https://redirect.github.com/unovue/shadcn-vue/tree/HEAD/packages/cli))
| [`^1.0.0` ->
`^2.0.0`](https://renovatebot.com/diffs/npm/shadcn-vue/1.0.3/2.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/shadcn-vue/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shadcn-vue/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shadcn-vue/1.0.3/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shadcn-vue/1.0.3/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>unovue/shadcn-vue (shadcn-vue)</summary>

###
[`v2.0.0`](https://redirect.github.com/unovue/shadcn-vue/releases/tag/v2.0.0)

[Compare
Source](https://redirect.github.com/unovue/shadcn-vue/compare/v1.0.3...v2.0.0)

#####    🚀 Features

- Tailwind v4  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia) in
[https://github.com/unovue/shadcn-vue/issues/1095](https://redirect.github.com/unovue/shadcn-vue/issues/1095)
[<samp>(c18e1)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/c18e129f)
- **docs**: Add a plugin to generate documentation for LLMs  -  by
[@&#8203;okineadev](https://redirect.github.com/okineadev) in
[https://github.com/unovue/shadcn-vue/issues/1119](https://redirect.github.com/unovue/shadcn-vue/issues/1119)
[<samp>(0d72c)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/0d72cef5)

#####    🐞 Bug Fixes

- Tailwind extra space on prefix when having " " in class  -  by
[@&#8203;AloisH](https://redirect.github.com/AloisH) in
[https://github.com/unovue/shadcn-vue/issues/1098](https://redirect.github.com/unovue/shadcn-vue/issues/1098)
[<samp>(69fee)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/69fee21d)
- Extra space on class causing error in applying prefix  -  by
[@&#8203;AloisH](https://redirect.github.com/AloisH) in
[https://github.com/unovue/shadcn-vue/issues/1109](https://redirect.github.com/unovue/shadcn-vue/issues/1109)
[<samp>(51655)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/51655218)
- Codesandbox not found pnpm  -  by
[@&#8203;hairyf](https://redirect.github.com/hairyf) in
[https://github.com/unovue/shadcn-vue/issues/1127](https://redirect.github.com/unovue/shadcn-vue/issues/1127)
[<samp>(9c12e)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/9c12ebb2)
- Styling of chart legend reset every click  -  by
[@&#8203;AloisH](https://redirect.github.com/AloisH) in
[https://github.com/unovue/shadcn-vue/issues/1125](https://redirect.github.com/unovue/shadcn-vue/issues/1125)
[<samp>(46e6f)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/46e6f7a4)

#####     [View changes on
GitHub](https://redirect.github.com/unovue/shadcn-vue/compare/v1.0.3...v2.0.0)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-19 12:19:04 -04:00
renovate[bot]
00da27d04f fix(deps): update dependency @types/diff to v8 (#1393)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/diff](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/diff)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/diff))
| [`^7.0.1` ->
`^8.0.0`](https://renovatebot.com/diffs/npm/@types%2fdiff/7.0.2/8.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fdiff/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fdiff/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fdiff/7.0.2/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fdiff/7.0.2/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### 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:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xOCIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-19 12:18:39 -04:00
renovate[bot]
106ea09399 fix(deps): update dependency commander to v14 (#1394)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [commander](https://redirect.github.com/tj/commander.js) | [`^13.1.0`
-> `^14.0.0`](https://renovatebot.com/diffs/npm/commander/13.1.0/14.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/commander/14.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/commander/14.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/commander/13.1.0/14.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/commander/13.1.0/14.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>tj/commander.js (commander)</summary>

###
[`v14.0.0`](https://redirect.github.com/tj/commander.js/blob/HEAD/CHANGELOG.md#1400-2025-05-18)

[Compare
Source](https://redirect.github.com/tj/commander.js/compare/v13.1.0...v14.0.0)

##### Added

- support for groups of options and commands in the help using low-level
`.helpGroup()` on `Option` and `Command`, and higher-level
`.optionsGroup()` and `.commandsGroup()` which can be used in chaining
way to specify group title for following options/commands
(\[[#&#8203;2328](https://redirect.github.com/tj/commander.js/issues/2328)])
- support for unescaped negative numbers as option-arguments and
command-arguments
(\[[#&#8203;2339](https://redirect.github.com/tj/commander.js/issues/2339)])
- TypeScript: add `parseArg` property to `Argument` class
(\[[#&#8203;2359](https://redirect.github.com/tj/commander.js/issues/2359)])

##### Fixed

- remove bogus leading space in help when option has default value but
not a description
(\[[#&#8203;2348](https://redirect.github.com/tj/commander.js/issues/2348)])
- `.configureOutput()` now makes copy of settings instead of modifying
in-place, fixing side-effects
(\[[#&#8203;2350](https://redirect.github.com/tj/commander.js/issues/2350)])

##### Changed

-   *Breaking:* Commander 14 requires Node.js v20 or higher
- internal refactor of `Help` class adding `.formatItemList()` and
`.groupItems()` methods
(\[[#&#8203;2328](https://redirect.github.com/tj/commander.js/issues/2328)])

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xOCIsInVwZGF0ZWRJblZlciI6IjQwLjExLjE4IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-19 12:17:59 -04:00
renovate[bot]
cb43f95233 fix(deps): update all non-major dependencies (#1389)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
| [lucide-vue-next](https://lucide.dev)
([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next))
| [`^0.510.0` ->
`^0.511.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.510.0/0.511.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-vue-next/0.511.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-vue-next/0.511.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-vue-next/0.510.0/0.511.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-vue-next/0.510.0/0.511.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [node](https://nodejs.org)
([source](https://redirect.github.com/nodejs/node)) | `22.15.0` ->
`22.15.1` |
[![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v22.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/node-version/node/v22.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/node-version/node/v22.15.0/v22.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v22.15.0/v22.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | patch |

---

### Release Notes

<details>
<summary>lucide-icons/lucide (lucide-vue-next)</summary>

###
[`v0.511.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.511.0):
Version 0.511.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.510.0...0.511.0)

#### What's Changed

- fix(icons): Optimise a number of icons using `<line>` and `<polyline>`
by [@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3168](https://redirect.github.com/lucide-icons/lucide/pull/3168)
- fix(icons): changed `clock-6` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3209](https://redirect.github.com/lucide-icons/lucide/pull/3209)
- fix(icons): changed `axis-3d` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3199](https://redirect.github.com/lucide-icons/lucide/pull/3199)
- fix(icons): changed `chevrons-left-right-ellipsis` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3189](https://redirect.github.com/lucide-icons/lucide/pull/3189)
- fix(icons): changed `square-code` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3173](https://redirect.github.com/lucide-icons/lucide/pull/3173)
- fix(icons): changed `satellite` icon by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/3180](https://redirect.github.com/lucide-icons/lucide/pull/3180)
- fix(lucide-react-native): support react 19
([#&#8203;2951](https://redirect.github.com/lucide-icons/lucide/issues/2951))
by [@&#8203;jvliwanag](https://redirect.github.com/jvliwanag) in
[https://github.com/lucide-icons/lucide/pull/3126](https://redirect.github.com/lucide-icons/lucide/pull/3126)
- fix(icons): changed `factory` icon by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/2970](https://redirect.github.com/lucide-icons/lucide/pull/2970)
- fix(icons): changed `university` icon by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/2965](https://redirect.github.com/lucide-icons/lucide/pull/2965)
- fix(icons): changed `warehouse` icon by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/2966](https://redirect.github.com/lucide-icons/lucide/pull/2966)
- fix(icons): changed `landmark` icon by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/2967](https://redirect.github.com/lucide-icons/lucide/pull/2967)
- chore(cspell): remove duplicate 'pilcrow' from `custom-words.txt` by
[@&#8203;Abdalrhman-Almarakeby](https://redirect.github.com/Abdalrhman-Almarakeby)
in
[https://github.com/lucide-icons/lucide/pull/3193](https://redirect.github.com/lucide-icons/lucide/pull/3193)
- feat(icons): added `square-dashed-top-solid` icon by
[@&#8203;juanpablofernandez](https://redirect.github.com/juanpablofernandez)
in
[https://github.com/lucide-icons/lucide/pull/3204](https://redirect.github.com/lucide-icons/lucide/pull/3204)

#### New Contributors

- [@&#8203;jvliwanag](https://redirect.github.com/jvliwanag) made their
first contribution in
[https://github.com/lucide-icons/lucide/pull/3126](https://redirect.github.com/lucide-icons/lucide/pull/3126)
-
[@&#8203;juanpablofernandez](https://redirect.github.com/juanpablofernandez)
made their first contribution in
[https://github.com/lucide-icons/lucide/pull/3204](https://redirect.github.com/lucide-icons/lucide/pull/3204)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.510.0...0.511.0

</details>

<details>
<summary>nodejs/node (node)</summary>

###
[`v22.15.1`](https://redirect.github.com/nodejs/node/compare/v22.15.0...v22.15.1)

[Compare
Source](https://redirect.github.com/nodejs/node/compare/v22.15.0...v22.15.1)

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS45IiwidXBkYXRlZEluVmVyIjoiNDAuMTEuMTgiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-19 12:17:39 -04:00
renovate[bot]
d26c6b0760 chore(deps): update github/codeql-action action to v3 (#1391)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | major | `v2` -> `v3` |

---

### Release Notes

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

###
[`v3`](https://redirect.github.com/github/codeql-action/compare/v2...v3)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v2...v3)

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS45IiwidXBkYXRlZEluVmVyIjoiNDAuMTEuOSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-19 12:17:31 -04:00
Eli Bosley
2ade7eb527 feat: initial codeql setup (#1390) 2025-05-14 20:21:52 -04:00
renovate[bot]
e580f646a5 fix(deps): update dependency diff to v8 (#1386)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [diff](https://redirect.github.com/kpdecker/jsdiff) | [`^7.0.0` ->
`^8.0.0`](https://renovatebot.com/diffs/npm/diff/7.0.0/8.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/diff/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/diff/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/diff/7.0.0/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/diff/7.0.0/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>kpdecker/jsdiff (diff)</summary>

###
[`v8.0.0`](https://redirect.github.com/kpdecker/jsdiff/blob/HEAD/release-notes.md#800)

[Compare
Source](https://redirect.github.com/kpdecker/jsdiff/compare/7.0.0...v8.0.0)

- [#&#8203;580](https://redirect.github.com/kpdecker/jsdiff/pull/580)
**Multiple tweaks to `diffSentences`**:
- tokenization no longer takes quadratic time on pathological inputs
(reported as a ReDOS vulnerability by Snyk); is now linear instead
- the final sentence in the string is now handled the same by the
tokenizer regardless of whether it has a trailing punctuation mark or
not. (Previously, "foo. bar." tokenized to `["foo.", " ", "bar."]` but
"foo. bar" tokenized to `["foo.", " bar"]` - i.e. whether the space
between sentences was treated as a separate token depended upon whether
the final sentence had trailing punctuation or not. This was arbitrary
and surprising; it is no longer the case.)
- in a string that starts with a sentence end, like "! hello.", the "!"
is now treated as a separate sentence
- the README now correctly documents the tokenization behaviour (it was
wrong before)
- [#&#8203;581](https://redirect.github.com/kpdecker/jsdiff/pull/581) -
**fixed some regex operations used for tokenization in `diffWords`
taking O(n^2) time** in pathological cases
- [#&#8203;595](https://redirect.github.com/kpdecker/jsdiff/pull/595) -
**fixed a crash in patch creation functions when handling a single hunk
consisting of a very large number (e.g. >130k) of lines**. (This was
caused by spreading indefinitely-large arrays to `.push()` using
`.apply` or the spread operator and hitting the
JS-implementation-specific limit on the maximum number of arguments to a
function, as shown at https://stackoverflow.com/a/56809779/1709587; thus
the exact threshold to hit the error will depend on the environment in
which you were running JsDiff.)
- [#&#8203;596](https://redirect.github.com/kpdecker/jsdiff/pull/596) -
**removed the `merge` function**. Previously JsDiff included an
undocumented function called `merge` that was meant to, in some sense,
merge patches. It had at least a couple of serious bugs that could lead
to it returning unambiguously wrong results, and it was difficult to
simply "fix" because it was [unclear precisely what it was meant to
do](https://redirect.github.com/kpdecker/jsdiff/issues/181#issuecomment-2198319542).
For now, the fix is to remove it entirely.
- [#&#8203;591](https://redirect.github.com/kpdecker/jsdiff/pull/591) -
JsDiff's source code has been rewritten in TypeScript. This change
entails the following changes for end users:
- **the `diff` package on npm now includes its own TypeScript type
definitions**. Users who previously used the `@types/diff` npm package
from DefinitelyTyped should remove that dependency when upgrading JsDiff
to v8.

Note that the transition from the DefinitelyTyped types to JsDiff's own
type definitions includes multiple fixes and also removes many exported
types previously used for `options` arguments to diffing and
patch-generation functions. (There are now different exported options
types for abortable calls - ones with a `timeout` or `maxEditLength`
that may give a result of `undefined` - and non-abortable calls.) See
the TypeScript section of the README for some usage tips.

- **The `Diff` object is now a class**. Custom extensions of `Diff`, as
described in the "Defining custom diffing behaviors" section of the
README, can therefore now be done by writing a `class CustomDiff extends
Diff` and overriding methods, instead of the old way based on prototype
inheritance. (I *think* code that did things the old way should still
work, though!)

- **`diff/lib/index.es6.js` and `diff/lib/index.mjs` no longer exist,
and the ESM version of the library is no longer bundled into a single
file.**

- **The `ignoreWhitespace` option for `diffWords` is no longer included
in the type declarations**. The effect of passing `ignoreWhitespace:
true` has always been to make `diffWords` just call `diffWordsWithSpace`
instead, which was confusing, because that behaviour doesn't seem
properly described as "ignoring" whitespace at all. The property remains
available to non-TypeScript applications for the sake of backwards
compatability, but TypeScript applications will now see a type error if
they try to pass `ignoreWhitespace: true` to `diffWords` and should
change their code to call `diffWordsWithSpace` instead.

- JsDiff no longer purports to support ES3 environments. (I'm pretty
sure it never truly did, despite claiming to in its README, since even
the 1.0.0 release used `Array.map` which was added in ES5.)
- [#&#8203;601](https://redirect.github.com/kpdecker/jsdiff/pull/601) -
**`diffJson`'s `stringifyReplacer` option behaves more like
`JSON.stringify`'s `replacer` argument now.** In particular:
- Each key/value pair now gets passed through the replacer once instead
of twice
- The `key` passed to the replacer when the top-level object is passed
in as `value` is now `""` (previously, was `undefined`), and the `key`
passed with an array element is the array index as a string, like `"0"`
or `"1"` (previously was whatever the key for the entire array was).
Both the new behaviours match that of `JSON.stringify`.
- [#&#8203;602](https://redirect.github.com/kpdecker/jsdiff/pull/602) -
**diffing functions now consistently return `undefined` when called in
async mode** (i.e. with a callback). Previously, there was an odd quirk
where they would return `true` if the strings being diffed were equal
and `undefined` otherwise.

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC43LjEiLCJ1cGRhdGVkSW5WZXIiOiI0MC43LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-14 11:52:08 -04:00
renovate[bot]
2704c0464c chore(deps): update dependency lint-staged to v16 (#1385)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [lint-staged](https://redirect.github.com/lint-staged/lint-staged) |
[`^15.2.2` ->
`^16.0.0`](https://renovatebot.com/diffs/npm/lint-staged/15.5.1/16.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lint-staged/16.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lint-staged/16.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lint-staged/15.5.1/16.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lint-staged/15.5.1/16.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>lint-staged/lint-staged (lint-staged)</summary>

###
[`v16.0.0`](https://redirect.github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1600)

[Compare
Source](https://redirect.github.com/lint-staged/lint-staged/compare/v15.5.2...v16.0.0)

##### Major Changes

-
[#&#8203;1546](https://redirect.github.com/lint-staged/lint-staged/pull/1546)
[`158d15c`](158d15c9ae)
Thanks [@&#8203;iiroj](https://redirect.github.com/iiroj)! - Processes
are spawned using
[nano-spawn](https://redirect.github.com/sindresorhus/nano-spawn)
instead of [execa](https://redirect.github.com/sindresorhus/execa). If
you are using Node.js scripts as tasks, you might need to explicitly run
them with `node`, especially when using Windows:

    ```json
    {
      "*.js": "node my-js-linter.js"
    }
    ```

-
[#&#8203;1546](https://redirect.github.com/lint-staged/lint-staged/pull/1546)
[`158d15c`](158d15c9ae)
Thanks [@&#8203;iiroj](https://redirect.github.com/iiroj)! - The
`--shell` flag has been removed and *lint-staged* no longer supports
evaluating commands directly via a shell. To migrate existing commands,
you can create a shell script and invoke it instead. Lint-staged will
pass matched staged files as a list of arguments, accessible via
`"$@&#8203;"`:

    ```shell
    ```

###
[`v15.5.2`](https://redirect.github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1552)

[Compare
Source](https://redirect.github.com/lint-staged/lint-staged/compare/v15.5.1...v15.5.2)

##### Patch Changes

-
[#&#8203;1544](https://redirect.github.com/lint-staged/lint-staged/pull/1544)
[`5561321`](556132176a)
Thanks [@&#8203;YimingIsCOLD](https://redirect.github.com/YimingIsCOLD)!
- Correctly handle colon (`:`) characters in staged filenames.

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC43LjEiLCJ1cGRhdGVkSW5WZXIiOiI0MC43LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-14 11:51:55 -04:00
renovate[bot]
74a70b5557 fix(deps): update all non-major dependencies (#1387)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [lucide-vue-next](https://lucide.dev)
([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next))
| [`^0.509.0` ->
`^0.510.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.509.0/0.510.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-vue-next/0.510.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-vue-next/0.510.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-vue-next/0.509.0/0.510.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-vue-next/0.509.0/0.510.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.10.0` ->
`10.11.0`](https://renovatebot.com/diffs/npm/pnpm/10.10.0/10.11.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/10.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/10.10.0/10.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.10.0/10.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>lucide-icons/lucide (lucide-vue-next)</summary>

###
[`v0.510.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.510.0):
Version 0.510.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.509.0...0.510.0)

#### What's Changed

- fix(icons): changed `brackets` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3172](https://redirect.github.com/lucide-icons/lucide/pull/3172)
- feat(icons): added `check-line` icon by
[@&#8203;oosawy](https://redirect.github.com/oosawy) in
[https://github.com/lucide-icons/lucide/pull/2890](https://redirect.github.com/lucide-icons/lucide/pull/2890)

#### New Contributors

- [@&#8203;oosawy](https://redirect.github.com/oosawy) made their first
contribution in
[https://github.com/lucide-icons/lucide/pull/2890](https://redirect.github.com/lucide-icons/lucide/pull/2890)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.509.0...0.510.0

</details>

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v10.11.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#10110)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.10.0...v10.11.0)

##### Minor Changes

- A new setting added for `pnpm init` to create a `package.json` with
`type=module`, when `init-type` is `module`. Works as a flag for the
init command too
[#&#8203;9463](https://redirect.github.com/pnpm/pnpm/pull/9463).

- Added support for Nushell to `pnpm setup`
[#&#8203;6476](https://redirect.github.com/pnpm/pnpm/issues/6476).

- Added two new flags to the `pnpm audit` command, `--ignore` and
`--ignore-unfixable`
[#&#8203;8474](https://redirect.github.com/pnpm/pnpm/pull/8474).

    Ignore all vulnerabilities that have no solution:

    ```shell
    > pnpm audit --ignore-unfixable
    ```

Provide a list of CVE's to ignore those specifically, even if they have
a resolution.

    ```shell
    > pnpm audit --ignore=CVE-2021-1234 --ignore=CVE-2021-5678
    ```

- Added support for recursively running pack in every project of a
workspace
[#&#8203;4351](https://redirect.github.com/pnpm/pnpm/issues/4351).

Now you can run `pnpm -r pack` to pack all packages in the workspace.

##### Patch Changes

- pnpm version management should work, when `dangerouslyAllowAllBuilds`
is set to `true`
[#&#8203;9472](https://redirect.github.com/pnpm/pnpm/issues/9472).
- `pnpm link` should work from inside a workspace
[#&#8203;9506](https://redirect.github.com/pnpm/pnpm/issues/9506).
- Set the default `workspaceConcurrency` to
`Math.min(os.availableParallelism(), 4)`
[#&#8203;9493](https://redirect.github.com/pnpm/pnpm/pull/9493).
- Installation should not exit with an error if `strictPeerDependencies`
is `true` but all issues are ignored by `peerDependencyRules`
[#&#8203;9505](https://redirect.github.com/pnpm/pnpm/pull/9505).
- Read `updateConfig` from `pnpm-workspace.yaml`
[#&#8203;9500](https://redirect.github.com/pnpm/pnpm/issues/9500).
-   Add support for `recursive pack`
- Remove `url.parse` usage to fix warning on Node.js 24
[#&#8203;9492](https://redirect.github.com/pnpm/pnpm/issues/9492).
- `pnpm run` should be able to run commands from the workspace root, if
`ignoreScripts` is set tot `true`
[#&#8203;4858](https://redirect.github.com/pnpm/pnpm/issues/4858).

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC43LjEiLCJ1cGRhdGVkSW5WZXIiOiI0MC4xMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-14 11:51:42 -04:00
renovate[bot]
469333acd4 fix(deps): update dependency lucide-vue-next to ^0.509.0 (#1383)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [lucide-vue-next](https://lucide.dev)
([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next))
| [`^0.508.0` ->
`^0.509.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.508.0/0.509.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-vue-next/0.509.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-vue-next/0.509.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-vue-next/0.508.0/0.509.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-vue-next/0.508.0/0.509.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>lucide-icons/lucide (lucide-vue-next)</summary>

###
[`v0.509.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.509.0):
Version 0.509.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.508.0...0.509.0)

#### What's Changed

- fix(icons): changed `axe` icon by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/3201](https://redirect.github.com/lucide-icons/lucide/pull/3201)
- revert(site): resets Absolute Stroke Width by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3197](https://redirect.github.com/lucide-icons/lucide/pull/3197)
- feat(icons): added `gpu` icon by
[@&#8203;xandykati98](https://redirect.github.com/xandykati98) in
[https://github.com/lucide-icons/lucide/pull/2955](https://redirect.github.com/lucide-icons/lucide/pull/2955)

#### New Contributors

- [@&#8203;xandykati98](https://redirect.github.com/xandykati98) made
their first contribution in
[https://github.com/lucide-icons/lucide/pull/2955](https://redirect.github.com/lucide-icons/lucide/pull/2955)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.508.0...0.509.0

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC43LjEiLCJ1cGRhdGVkSW5WZXIiOiI0MC43LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 08:24:39 -04:00
renovate[bot]
8f70326d0f fix(deps): update all non-major dependencies (#1379)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
|
[@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.0` ->
`4.5.1`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-resolvers/4.5.0/4.5.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript-resolvers/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2ftypescript-resolvers/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2ftypescript-resolvers/4.5.0/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript-resolvers/4.5.0/4.5.1?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.506.0` ->
`^0.508.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.506.0/0.508.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-vue-next/0.508.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-vue-next/0.508.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-vue-next/0.506.0/0.508.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-vue-next/0.506.0/0.508.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [node](https://nodejs.org)
([source](https://redirect.github.com/nodejs/node)) | `22.11.0` ->
`22.15.0` |
[![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v22.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/node-version/node/v22.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/node-version/node/v22.11.0/v22.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v22.11.0/v22.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |

---

### Release Notes

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

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

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

##### Patch Changes

-
[#&#8203;10330](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10330)
[`c5efba3`](c5efba34a7)
Thanks [@&#8203;jnoordsij](https://redirect.github.com/jnoordsij)! -
Make graphql-sock optional peerDep

</details>

<details>
<summary>lucide-icons/lucide (lucide-vue-next)</summary>

###
[`v0.508.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.508.0):
Version 0.508.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.507.0...0.508.0)

#### What's Changed

- fix(icons): Optimised `phone-` icons by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3169](https://redirect.github.com/lucide-icons/lucide/pull/3169)
- docs(packages): Update names in docs by
[@&#8203;ericfennis](https://redirect.github.com/ericfennis) in
[https://github.com/lucide-icons/lucide/pull/3184](https://redirect.github.com/lucide-icons/lucide/pull/3184)
- fix(icons): arcified `laptop` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3190](https://redirect.github.com/lucide-icons/lucide/pull/3190)
- chore(metadata): add `lens` tag to icons with magnifying glass by
[@&#8203;Abdalrhman-Almarakeby](https://redirect.github.com/Abdalrhman-Almarakeby)
in
[https://github.com/lucide-icons/lucide/pull/3192](https://redirect.github.com/lucide-icons/lucide/pull/3192)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.507.0...0.508.0

###
[`v0.507.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.507.0):
Version 0.507.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.506.0...0.507.0)

#### What's Changed

- fix(metadata): added tags to `square-pen` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3155](https://redirect.github.com/lucide-icons/lucide/pull/3155)
- fix(icons): changed `search` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3140](https://redirect.github.com/lucide-icons/lucide/pull/3140)
- fix(dev): resets Absolute Stroke Width by
[@&#8203;briz123](https://redirect.github.com/briz123) in
[https://github.com/lucide-icons/lucide/pull/3005](https://redirect.github.com/lucide-icons/lucide/pull/3005)
- fix(icons): changed `guitar` icon by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3115](https://redirect.github.com/lucide-icons/lucide/pull/3115)
- fix(Icons): Adding missing categories to 4 Icons by
[@&#8203;ajokt123](https://redirect.github.com/ajokt123) in
[https://github.com/lucide-icons/lucide/pull/3110](https://redirect.github.com/lucide-icons/lucide/pull/3110)
- fix(ci): reduces workflow triggers by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3150](https://redirect.github.com/lucide-icons/lucide/pull/3150)
- fix(icons): changed `air-vent` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3117](https://redirect.github.com/lucide-icons/lucide/pull/3117)
- fix(icons): rotate `dumbbell` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3107](https://redirect.github.com/lucide-icons/lucide/pull/3107)
- fix(icons): changed `touchpad-off` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3118](https://redirect.github.com/lucide-icons/lucide/pull/3118)
- fix(icons): changed `bell-electric` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3139](https://redirect.github.com/lucide-icons/lucide/pull/3139)
- fix(icons): changed `menu` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3142](https://redirect.github.com/lucide-icons/lucide/pull/3142)
- fix(icons): changed `mail` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3144](https://redirect.github.com/lucide-icons/lucide/pull/3144)
- chore(pr-template): Adjust PR template by
[@&#8203;ericfennis](https://redirect.github.com/ericfennis) in
[https://github.com/lucide-icons/lucide/pull/3183](https://redirect.github.com/lucide-icons/lucide/pull/3183)
- feat(icons): added `soap-dispenser-droplet` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3088](https://redirect.github.com/lucide-icons/lucide/pull/3088)
- feat(icons): added `panda` icon by
[@&#8203;chessurisme](https://redirect.github.com/chessurisme) in
[https://github.com/lucide-icons/lucide/pull/2094](https://redirect.github.com/lucide-icons/lucide/pull/2094)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.506.0...0.507.0

</details>

<details>
<summary>nodejs/node (node)</summary>

###
[`v22.15.0`](https://redirect.github.com/nodejs/node/compare/v22.14.0...v22.15.0)

[Compare
Source](https://redirect.github.com/nodejs/node/compare/v22.14.0...v22.15.0)

###
[`v22.14.0`](https://redirect.github.com/nodejs/node/releases/tag/v22.14.0):
2025-02-11, Version 22.14.0 &#x27;Jod&#x27; (LTS), @&#8203;aduh95

[Compare
Source](https://redirect.github.com/nodejs/node/compare/v22.13.1...v22.14.0)

##### Notable Changes

-
\[[`82a9000e9e`](https://redirect.github.com/nodejs/node/commit/82a9000e9e)]
- **crypto**: update root certificates to NSS 3.107 (Node.js GitHub Bot)
[#&#8203;56566](https://redirect.github.com/nodejs/node/pull/56566)
-
\[[`b7fe54fc88`](https://redirect.github.com/nodejs/node/commit/b7fe54fc88)]
- **(SEMVER-MINOR)** **fs**: allow `exclude` option in globs to accept
glob patterns (Daeyeon Jeong)
[#&#8203;56489](https://redirect.github.com/nodejs/node/pull/56489)
-
\[[`3ac92ef607`](https://redirect.github.com/nodejs/node/commit/3ac92ef607)]
- **(SEMVER-MINOR)** **lib**: add typescript support to STDIN eval
(Marco Ippolito)
[#&#8203;56359](https://redirect.github.com/nodejs/node/pull/56359)
-
\[[`1614e8e7bc`](https://redirect.github.com/nodejs/node/commit/1614e8e7bc)]
- **(SEMVER-MINOR)** **module**: add ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX
(Marco Ippolito)
[#&#8203;56610](https://redirect.github.com/nodejs/node/pull/56610)
-
\[[`6d6cffa9cc`](https://redirect.github.com/nodejs/node/commit/6d6cffa9cc)]
- **(SEMVER-MINOR)** **module**: add `findPackageJSON` util (Jacob
Smith)
[#&#8203;55412](https://redirect.github.com/nodejs/node/pull/55412)
-
\[[`d35333ae18`](https://redirect.github.com/nodejs/node/commit/d35333ae18)]
- **(SEMVER-MINOR)** **process**: add process.ref() and process.unref()
methods (James M Snell)
[#&#8203;56400](https://redirect.github.com/nodejs/node/pull/56400)
-
\[[`07ff3ddcb5`](https://redirect.github.com/nodejs/node/commit/07ff3ddcb5)]
- **(SEMVER-MINOR)** **sqlite**: support TypedArray and DataView in
`StatementSync` (Alex Yang)
[#&#8203;56385](https://redirect.github.com/nodejs/node/pull/56385)
-
\[[`94d3fe1b62`](https://redirect.github.com/nodejs/node/commit/94d3fe1b62)]
- **(SEMVER-MINOR)** **src**: add --disable-sigusr1 to prevent signal
i/o thread (Rafael Gonzaga)
[#&#8203;56441](https://redirect.github.com/nodejs/node/pull/56441)
-
\[[`5afffb4415`](https://redirect.github.com/nodejs/node/commit/5afffb4415)]
- **(SEMVER-MINOR)** **src,worker**: add isInternalWorker (Carlos Espa)
[#&#8203;56469](https://redirect.github.com/nodejs/node/pull/56469)
-
\[[`697a851fb3`](https://redirect.github.com/nodejs/node/commit/697a851fb3)]
- **(SEMVER-MINOR)** **test_runner**: add
TestContext.prototype.waitFor() (Colin Ihrig)
[#&#8203;56595](https://redirect.github.com/nodejs/node/pull/56595)
-
\[[`047537b48c`](https://redirect.github.com/nodejs/node/commit/047537b48c)]
- **(SEMVER-MINOR)** **test_runner**: add t.assert.fileSnapshot() (Colin
Ihrig)
[#&#8203;56459](https://redirect.github.com/nodejs/node/pull/56459)
-
\[[`926cf84e95`](https://redirect.github.com/nodejs/node/commit/926cf84e95)]
- **(SEMVER-MINOR)** **test_runner**: add assert.register() API (Colin
Ihrig)
[#&#8203;56434](https://redirect.github.com/nodejs/node/pull/56434)
-
\[[`c658a8afdf`](https://redirect.github.com/nodejs/node/commit/c658a8afdf)]
- **(SEMVER-MINOR)** **worker**: add eval ts input (Marco Ippolito)
[#&#8203;56394](https://redirect.github.com/nodejs/node/pull/56394)

##### Commits

-
\[[`bad1ad8650`](https://redirect.github.com/nodejs/node/commit/bad1ad8650)]
- **assert**: make myers_diff function more performant (Giovanni Bucci)
[#&#8203;56303](https://redirect.github.com/nodejs/node/pull/56303)
-
\[[`e222e36f3b`](https://redirect.github.com/nodejs/node/commit/e222e36f3b)]
- **assert**: make partialDeepStrictEqual work with urls and File
prototypes (Giovanni Bucci)
[#&#8203;56231](https://redirect.github.com/nodejs/node/pull/56231)
-
\[[`e232789fe2`](https://redirect.github.com/nodejs/node/commit/e232789fe2)]
- **assert**: show diff when doing partial comparisons (Giovanni Bucci)
[#&#8203;56211](https://redirect.github.com/nodejs/node/pull/56211)
-
\[[`c99de1fdcf`](https://redirect.github.com/nodejs/node/commit/c99de1fdcf)]
- **assert**: make partialDeepStrictEqual throw when comparing \[0] with
\[-0] (Giovanni)
[#&#8203;56237](https://redirect.github.com/nodejs/node/pull/56237)
-
\[[`2386fd5840`](https://redirect.github.com/nodejs/node/commit/2386fd5840)]
- **benchmark**: add validateStream to styleText bench (Rafael Gonzaga)
[#&#8203;56556](https://redirect.github.com/nodejs/node/pull/56556)
-
\[[`b197dfa7ec`](https://redirect.github.com/nodejs/node/commit/b197dfa7ec)]
- **build**: fix GN build for ngtcp2 (Cheng)
[#&#8203;56300](https://redirect.github.com/nodejs/node/pull/56300)
-
\[[`2a3cdd34ff`](https://redirect.github.com/nodejs/node/commit/2a3cdd34ff)]
- **build**: test macos-13 on GitHub actions (Michaël Zasso)
[#&#8203;56307](https://redirect.github.com/nodejs/node/pull/56307)
-
\[[`12f716be0a`](https://redirect.github.com/nodejs/node/commit/12f716be0a)]
- **build**: build v8 with -fvisibility=hidden on macOS (Joyee Cheung)
[#&#8203;56275](https://redirect.github.com/nodejs/node/pull/56275)
-
\[[`c5ca15bd34`](https://redirect.github.com/nodejs/node/commit/c5ca15bd34)]
- **child_process**: fix parsing messages with splitted length field
(Maksim Gorkov)
[#&#8203;56106](https://redirect.github.com/nodejs/node/pull/56106)
-
\[[`8346b8fc2c`](https://redirect.github.com/nodejs/node/commit/8346b8fc2c)]
- **crypto**: add missing return value check (Michael Dawson)
[#&#8203;56615](https://redirect.github.com/nodejs/node/pull/56615)
-
\[[`82a9000e9e`](https://redirect.github.com/nodejs/node/commit/82a9000e9e)]
- **crypto**: update root certificates to NSS 3.107 (Node.js GitHub Bot)
[#&#8203;56566](https://redirect.github.com/nodejs/node/pull/56566)
-
\[[`890eef20a1`](https://redirect.github.com/nodejs/node/commit/890eef20a1)]
- **crypto**: fix checkPrime crash with large buffers (Santiago Gimeno)
[#&#8203;56559](https://redirect.github.com/nodejs/node/pull/56559)
-
\[[`5edb7b5e87`](https://redirect.github.com/nodejs/node/commit/5edb7b5e87)]
- **crypto**: fix warning of ignoring return value (Cheng)
[#&#8203;56527](https://redirect.github.com/nodejs/node/pull/56527)
-
\[[`b89f123a0b`](https://redirect.github.com/nodejs/node/commit/b89f123a0b)]
- **crypto**: make generatePrime/checkPrime interruptible (James M
Snell)
[#&#8203;56460](https://redirect.github.com/nodejs/node/pull/56460)
-
\[[`63c1859e01`](https://redirect.github.com/nodejs/node/commit/63c1859e01)]
- **deps**: update corepack to 0.31.0 (Node.js GitHub Bot)
[#&#8203;56795](https://redirect.github.com/nodejs/node/pull/56795)
-
\[[`a48430d4d3`](https://redirect.github.com/nodejs/node/commit/a48430d4d3)]
- **deps**: move inspector_protocol to deps (Chengzhong Wu)
[#&#8203;56649](https://redirect.github.com/nodejs/node/pull/56649)
-
\[[`74cccc824f`](https://redirect.github.com/nodejs/node/commit/74cccc824f)]
- **deps**: macro ENODATA is deprecated in libc++ (Cheng)
[#&#8203;56698](https://redirect.github.com/nodejs/node/pull/56698)
-
\[[`fa869ea0f2`](https://redirect.github.com/nodejs/node/commit/fa869ea0f2)]
- **deps**: fixup some minor coverity warnings (James M Snell)
[#&#8203;56612](https://redirect.github.com/nodejs/node/pull/56612)
-
\[[`1a4fa2b015`](https://redirect.github.com/nodejs/node/commit/1a4fa2b015)]
- **deps**: update amaro to 0.3.0 (Node.js GitHub Bot)
[#&#8203;56568](https://redirect.github.com/nodejs/node/pull/56568)
-
\[[`b47076fd82`](https://redirect.github.com/nodejs/node/commit/b47076fd82)]
- **deps**: update amaro to 0.2.2 (Node.js GitHub Bot)
[#&#8203;56568](https://redirect.github.com/nodejs/node/pull/56568)
-
\[[`46bd4b8731`](https://redirect.github.com/nodejs/node/commit/46bd4b8731)]
- **deps**: update simdutf to 6.0.3 (Node.js GitHub Bot)
[#&#8203;56567](https://redirect.github.com/nodejs/node/pull/56567)
-
\[[`8ead9c693b`](https://redirect.github.com/nodejs/node/commit/8ead9c693b)]
- **deps**: update simdutf to 5.7.2 (Node.js GitHub Bot)
[#&#8203;56388](https://redirect.github.com/nodejs/node/pull/56388)
-
\[[`18d4b502af`](https://redirect.github.com/nodejs/node/commit/18d4b502af)]
- **deps**: update amaro to 0.2.1 (Node.js GitHub Bot)
[#&#8203;56390](https://redirect.github.com/nodejs/node/pull/56390)
-
\[[`d938d7cc86`](https://redirect.github.com/nodejs/node/commit/d938d7cc86)]
- **deps**: update googletest to
[`7d76a23`](https://redirect.github.com/nodejs/node/commit/7d76a23)
(Node.js GitHub Bot)
[#&#8203;56387](https://redirect.github.com/nodejs/node/pull/56387)
-
\[[`9761e7dccb`](https://redirect.github.com/nodejs/node/commit/9761e7dccb)]
- **deps**: update googletest to
[`e54519b`](https://redirect.github.com/nodejs/node/commit/e54519b)
(Node.js GitHub Bot)
[#&#8203;56370](https://redirect.github.com/nodejs/node/pull/56370)
-
\[[`8319dc6bc5`](https://redirect.github.com/nodejs/node/commit/8319dc6bc5)]
- **deps**: update ngtcp2 to 1.10.0 (Node.js GitHub Bot)
[#&#8203;56334](https://redirect.github.com/nodejs/node/pull/56334)
-
\[[`6eacd19d6a`](https://redirect.github.com/nodejs/node/commit/6eacd19d6a)]
- **deps**: update simdutf to 5.7.0 (Node.js GitHub Bot)
[#&#8203;56332](https://redirect.github.com/nodejs/node/pull/56332)
-
\[[`28bec2dda3`](https://redirect.github.com/nodejs/node/commit/28bec2dda3)]
- **diagnostics_channel**: capture console messages (Stephen Belanger)
[#&#8203;56292](https://redirect.github.com/nodejs/node/pull/56292)
-
\[[`d519d33502`](https://redirect.github.com/nodejs/node/commit/d519d33502)]
- **doc**: update macOS and Xcode versions for releases (Michaël Zasso)
[#&#8203;56337](https://redirect.github.com/nodejs/node/pull/56337)
-
\[[`fcfe650507`](https://redirect.github.com/nodejs/node/commit/fcfe650507)]
- **doc**: add note for features using `InternalWorker` with permission
model (Antoine du Hamel)
[#&#8203;56706](https://redirect.github.com/nodejs/node/pull/56706)
-
\[[`efbba182b5`](https://redirect.github.com/nodejs/node/commit/efbba182b5)]
- **doc**: add entry to changelog about SQLite Session Extension (Bart
Louwers)
[#&#8203;56318](https://redirect.github.com/nodejs/node/pull/56318)
-
\[[`31bf9c7dd9`](https://redirect.github.com/nodejs/node/commit/31bf9c7dd9)]
- **doc**: move anatoli to emeritus (Michael Dawson)
[#&#8203;56592](https://redirect.github.com/nodejs/node/pull/56592)
-
\[[`6096e38c7c`](https://redirect.github.com/nodejs/node/commit/6096e38c7c)]
- **doc**: fix styles of the expandable TOC (Antoine du Hamel)
[#&#8203;56755](https://redirect.github.com/nodejs/node/pull/56755)
-
\[[`d423638281`](https://redirect.github.com/nodejs/node/commit/d423638281)]
- **doc**: add "Skip to content" button (Antoine du Hamel)
[#&#8203;56750](https://redirect.github.com/nodejs/node/pull/56750)
-
\[[`edeb157d75`](https://redirect.github.com/nodejs/node/commit/edeb157d75)]
- **doc**: improve accessibility of expandable lists (Antoine du Hamel)
[#&#8203;56749](https://redirect.github.com/nodejs/node/pull/56749)
-
\[[`1a79e87687`](https://redirect.github.com/nodejs/node/commit/1a79e87687)]
- **doc**: add note regarding commit message trailers (Dario Piotrowicz)
[#&#8203;56736](https://redirect.github.com/nodejs/node/pull/56736)
-
\[[`927c7e47e4`](https://redirect.github.com/nodejs/node/commit/927c7e47e4)]
- **doc**: fix typo in example code for util.styleText (Robin Mehner)
[#&#8203;56720](https://redirect.github.com/nodejs/node/pull/56720)
-
\[[`fade522538`](https://redirect.github.com/nodejs/node/commit/fade522538)]
- **doc**: fix inconsistencies in `WeakSet` and `WeakMap` comparison
details (Shreyans Pathak)
[#&#8203;56683](https://redirect.github.com/nodejs/node/pull/56683)
-
\[[`55533bf147`](https://redirect.github.com/nodejs/node/commit/55533bf147)]
- **doc**: add RafaelGSS as latest sec release stewards (Rafael Gonzaga)
[#&#8203;56682](https://redirect.github.com/nodejs/node/pull/56682)
-
\[[`8e978bdee1`](https://redirect.github.com/nodejs/node/commit/8e978bdee1)]
- **doc**: clarify cjs/esm diff in `queueMicrotask()` vs
`process.nextTick()` (Dario Piotrowicz)
[#&#8203;56659](https://redirect.github.com/nodejs/node/pull/56659)
-
\[[`ae360c30dc`](https://redirect.github.com/nodejs/node/commit/ae360c30dc)]
- **doc**: `WeakSet` and `WeakMap` comparison details (Shreyans Pathak)
[#&#8203;56648](https://redirect.github.com/nodejs/node/pull/56648)
-
\[[`acd2a2fda5`](https://redirect.github.com/nodejs/node/commit/acd2a2fda5)]
- **doc**: mention prepare --security (Rafael Gonzaga)
[#&#8203;56617](https://redirect.github.com/nodejs/node/pull/56617)
-
\[[`d3c0a2831d`](https://redirect.github.com/nodejs/node/commit/d3c0a2831d)]
- **doc**: tweak info on reposts in ambassador program (Michael Dawson)
[#&#8203;56589](https://redirect.github.com/nodejs/node/pull/56589)
-
\[[`3299505b49`](https://redirect.github.com/nodejs/node/commit/3299505b49)]
- **doc**: add type stripping to ambassadors program (Marco Ippolito)
[#&#8203;56598](https://redirect.github.com/nodejs/node/pull/56598)
-
\[[`b1a6ffa4e4`](https://redirect.github.com/nodejs/node/commit/b1a6ffa4e4)]
- **doc**: improve internal documentation on built-in snapshot (Joyee
Cheung)
[#&#8203;56505](https://redirect.github.com/nodejs/node/pull/56505)
-
\[[`1641a28930`](https://redirect.github.com/nodejs/node/commit/1641a28930)]
- **doc**: document CLI way to open the nodejs/bluesky PR (Antoine du
Hamel)
[#&#8203;56506](https://redirect.github.com/nodejs/node/pull/56506)
-
\[[`2042628fda`](https://redirect.github.com/nodejs/node/commit/2042628fda)]
- **doc**: add section about using npx with permission model (Rafael
Gonzaga)
[#&#8203;56539](https://redirect.github.com/nodejs/node/pull/56539)
-
\[[`ace19a0263`](https://redirect.github.com/nodejs/node/commit/ace19a0263)]
- **doc**: update gcc-version for ubuntu-lts (Kunal Kumar)
[#&#8203;56553](https://redirect.github.com/nodejs/node/pull/56553)
-
\[[`4aa57b50f8`](https://redirect.github.com/nodejs/node/commit/4aa57b50f8)]
- **doc**: fix parentheses in options (Tobias Nießen)
[#&#8203;56563](https://redirect.github.com/nodejs/node/pull/56563)
-
\[[`b40b01b4d3`](https://redirect.github.com/nodejs/node/commit/b40b01b4d3)]
- **doc**: include CVE to EOL lines as sec release process (Rafael
Gonzaga)
[#&#8203;56520](https://redirect.github.com/nodejs/node/pull/56520)
-
\[[`6701360113`](https://redirect.github.com/nodejs/node/commit/6701360113)]
- **doc**: add esm examples to node:trace_events (Alfredo González)
[#&#8203;56514](https://redirect.github.com/nodejs/node/pull/56514)
-
\[[`d3207cca3e`](https://redirect.github.com/nodejs/node/commit/d3207cca3e)]
- **doc**: add message for Ambassadors to promote (Michael Dawson)
[#&#8203;56235](https://redirect.github.com/nodejs/node/pull/56235)
-
\[[`97ece4ae06`](https://redirect.github.com/nodejs/node/commit/97ece4ae06)]
- **doc**: allow request for TSC reviews via the GitHub UI (Antoine du
Hamel)
[#&#8203;56493](https://redirect.github.com/nodejs/node/pull/56493)
-
\[[`03f25055ab`](https://redirect.github.com/nodejs/node/commit/03f25055ab)]
- **doc**: add example for piping ReadableStream (Gabriel Schulhof)
[#&#8203;56415](https://redirect.github.com/nodejs/node/pull/56415)
-
\[[`516d07482c`](https://redirect.github.com/nodejs/node/commit/516d07482c)]
- **doc**: expand description of `parseArg`'s `default` (Kevin Gibbons)
[#&#8203;54431](https://redirect.github.com/nodejs/node/pull/54431)
-
\[[`a6491effcb`](https://redirect.github.com/nodejs/node/commit/a6491effcb)]
- **doc**: use `<ul>` instead of `<ol>` in `SECURITY.md` (Antoine du
Hamel)
[#&#8203;56346](https://redirect.github.com/nodejs/node/pull/56346)
-
\[[`e4ec134b21`](https://redirect.github.com/nodejs/node/commit/e4ec134b21)]
- **doc**: clarify that WASM is trusted (Matteo Collina)
[#&#8203;56345](https://redirect.github.com/nodejs/node/pull/56345)
-
\[[`0f7aed8a59`](https://redirect.github.com/nodejs/node/commit/0f7aed8a59)]
- **doc**: fix the `crc32` documentation (Kevin Toshihiro Uehara)
[#&#8203;55898](https://redirect.github.com/nodejs/node/pull/55898)
-
\[[`721104a296`](https://redirect.github.com/nodejs/node/commit/721104a296)]
- **doc**: fix links in `module.md` (Antoine du Hamel)
[#&#8203;56283](https://redirect.github.com/nodejs/node/pull/56283)
-
\[[`928540d792`](https://redirect.github.com/nodejs/node/commit/928540d792)]
- **doc**: fix typos (Nathan Baulch)
[#&#8203;55066](https://redirect.github.com/nodejs/node/pull/55066)
-
\[[`e69d35f03b`](https://redirect.github.com/nodejs/node/commit/e69d35f03b)]
- **doc**: add history info for Permission Model (Antoine du Hamel)
[#&#8203;56707](https://redirect.github.com/nodejs/node/pull/56707)
-
\[[`c6fd867ab5`](https://redirect.github.com/nodejs/node/commit/c6fd867ab5)]
- **esm**: fix jsdoc type refs to `ModuleJobBase` in esm/loader (Jacob
Smith)
[#&#8203;56499](https://redirect.github.com/nodejs/node/pull/56499)
-
\[[`9cf9046bd7`](https://redirect.github.com/nodejs/node/commit/9cf9046bd7)]
- ***Revert*** "**events**: add hasEventListener util for validate"
(origranot)
[#&#8203;56282](https://redirect.github.com/nodejs/node/pull/56282)
-
\[[`b7fe54fc88`](https://redirect.github.com/nodejs/node/commit/b7fe54fc88)]
- **(SEMVER-MINOR)** **fs**: allow `exclude` option in globs to accept
glob patterns (Daeyeon Jeong)
[#&#8203;56489](https://redirect.github.com/nodejs/node/pull/56489)
-
\[[`6ca27c2a59`](https://redirect.github.com/nodejs/node/commit/6ca27c2a59)]
- **http2**: omit server name when HTTP2 host is IP address (islandryu)
[#&#8203;56530](https://redirect.github.com/nodejs/node/pull/56530)
-
\[[`9f1fa199bf`](https://redirect.github.com/nodejs/node/commit/9f1fa199bf)]
- **inspector**: roll inspector_protocol (Chengzhong Wu)
[#&#8203;56649](https://redirect.github.com/nodejs/node/pull/56649)
-
\[[`0dae4bb3ab`](https://redirect.github.com/nodejs/node/commit/0dae4bb3ab)]
- **inspector**: add undici http tracking support (Chengzhong Wu)
[#&#8203;56488](https://redirect.github.com/nodejs/node/pull/56488)
-
\[[`2c6124cec4`](https://redirect.github.com/nodejs/node/commit/2c6124cec4)]
- **inspector**: report loadingFinished until the response data is
consumed (Chengzhong Wu)
[#&#8203;56372](https://redirect.github.com/nodejs/node/pull/56372)
-
\[[`96ec862ce2`](https://redirect.github.com/nodejs/node/commit/96ec862ce2)]
- **lib**: refactor execution.js (Marco Ippolito)
[#&#8203;56358](https://redirect.github.com/nodejs/node/pull/56358)
-
\[[`3ac92ef607`](https://redirect.github.com/nodejs/node/commit/3ac92ef607)]
- **(SEMVER-MINOR)** **lib**: add typescript support to STDIN eval
(Marco Ippolito)
[#&#8203;56359](https://redirect.github.com/nodejs/node/pull/56359)
-
\[[`d5bf3db0cf`](https://redirect.github.com/nodejs/node/commit/d5bf3db0cf)]
- **lib**: allow skipping source maps in node_modules (Chengzhong Wu)
[#&#8203;56639](https://redirect.github.com/nodejs/node/pull/56639)
-
\[[`d33eaf2bcb`](https://redirect.github.com/nodejs/node/commit/d33eaf2bcb)]
- **lib**: ensure FORCE_COLOR forces color output in non-TTY
environments (Pietro Marchini)
[#&#8203;55404](https://redirect.github.com/nodejs/node/pull/55404)
-
\[[`dc003218a8`](https://redirect.github.com/nodejs/node/commit/dc003218a8)]
- **lib**: optimize `prepareStackTrace` on builtin frames (Chengzhong
Wu) [#&#8203;56299](https://redirect.github.com/nodejs/node/pull/56299)
-
\[[`df06524863`](https://redirect.github.com/nodejs/node/commit/df06524863)]
- **lib**: suppress source map lookup exceptions (Chengzhong Wu)
[#&#8203;56299](https://redirect.github.com/nodejs/node/pull/56299)
-
\[[`35335a5a66`](https://redirect.github.com/nodejs/node/commit/35335a5a66)]
- **meta**: move one or more collaborators to emeritus (Node.js GitHub
Bot) [#&#8203;56580](https://redirect.github.com/nodejs/node/pull/56580)
-
\[[`1faabdb150`](https://redirect.github.com/nodejs/node/commit/1faabdb150)]
- **meta**: add codeowners of security release document (Rafael Gonzaga)
[#&#8203;56521](https://redirect.github.com/nodejs/node/pull/56521)
-
\[[`b4ece22ef5`](https://redirect.github.com/nodejs/node/commit/b4ece22ef5)]
- **meta**: move one or more collaborators to emeritus (Node.js GitHub
Bot) [#&#8203;56342](https://redirect.github.com/nodejs/node/pull/56342)
-
\[[`9ec67e7ce0`](https://redirect.github.com/nodejs/node/commit/9ec67e7ce0)]
- **meta**: move MoLow to TSC regular member (Moshe Atlow)
[#&#8203;56276](https://redirect.github.com/nodejs/node/pull/56276)
-
\[[`bae4b2e20a`](https://redirect.github.com/nodejs/node/commit/bae4b2e20a)]
- **module**: use more defensive code when handling SWC errors (Antoine
du Hamel)
[#&#8203;56646](https://redirect.github.com/nodejs/node/pull/56646)
-
\[[`1614e8e7bc`](https://redirect.github.com/nodejs/node/commit/1614e8e7bc)]
- **(SEMVER-MINOR)** **module**: add ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX
(Marco Ippolito)
[#&#8203;56610](https://redirect.github.com/nodejs/node/pull/56610)
-
\[[`174d88eab1`](https://redirect.github.com/nodejs/node/commit/174d88eab1)]
- **module**: support eval with ts syntax detection (Marco Ippolito)
[#&#8203;56285](https://redirect.github.com/nodejs/node/pull/56285)
-
\[[`299d6fa829`](https://redirect.github.com/nodejs/node/commit/299d6fa829)]
- **module**: fix jsdoc for `format` parameter in cjs/loader (pacexy)
[#&#8203;56501](https://redirect.github.com/nodejs/node/pull/56501)
-
\[[`0307e4dd59`](https://redirect.github.com/nodejs/node/commit/0307e4dd59)]
- **module**: unify TypeScript and .mjs handling in CommonJS (Joyee
Cheung)
[#&#8203;55590](https://redirect.github.com/nodejs/node/pull/55590)
-
\[[`1f4f9be93d`](https://redirect.github.com/nodejs/node/commit/1f4f9be93d)]
- **module**: fix async resolution error within the sync
`findPackageJSON` (Jacob Smith)
[#&#8203;56382](https://redirect.github.com/nodejs/node/pull/56382)
-
\[[`bbedffa0f0`](https://redirect.github.com/nodejs/node/commit/bbedffa0f0)]
- **module**: simplify `findPackageJSON` implementation (Antoine du
Hamel)
[#&#8203;55543](https://redirect.github.com/nodejs/node/pull/55543)
-
\[[`6d6cffa9cc`](https://redirect.github.com/nodejs/node/commit/6d6cffa9cc)]
- **(SEMVER-MINOR)** **module**: add `findPackageJSON` util (Jacob
Smith)
[#&#8203;55412](https://redirect.github.com/nodejs/node/pull/55412)
-
\[[`cd7ce18233`](https://redirect.github.com/nodejs/node/commit/cd7ce18233)]
- **module**: fix bad `require.resolve` with option paths for `.` and
`..` (Dario Piotrowicz)
[#&#8203;56735](https://redirect.github.com/nodejs/node/pull/56735)
-
\[[`152df4da21`](https://redirect.github.com/nodejs/node/commit/152df4da21)]
- **module**: rethrow amaro error message (Marco Ippolito)
[#&#8203;56568](https://redirect.github.com/nodejs/node/pull/56568)
-
\[[`acba5dc87e`](https://redirect.github.com/nodejs/node/commit/acba5dc87e)]
- **module**: use buffer.toString base64 (Chengzhong Wu)
[#&#8203;56315](https://redirect.github.com/nodejs/node/pull/56315)
-
\[[`01e69be8ff`](https://redirect.github.com/nodejs/node/commit/01e69be8ff)]
- **node-api**: define version 10 (Gabriel Schulhof)
[#&#8203;55676](https://redirect.github.com/nodejs/node/pull/55676)
-
\[[`724524528e`](https://redirect.github.com/nodejs/node/commit/724524528e)]
- **node-api**: remove deprecated attribute from napi_module_register
(Vladimir Morozov)
[#&#8203;56162](https://redirect.github.com/nodejs/node/pull/56162)
-
\[[`c78e11064f`](https://redirect.github.com/nodejs/node/commit/c78e11064f)]
- **process**: remove support for undocumented symbol (Antoine du Hamel)
[#&#8203;56552](https://redirect.github.com/nodejs/node/pull/56552)
-
\[[`3f69b18a23`](https://redirect.github.com/nodejs/node/commit/3f69b18a23)]
- **process**: fix symbol key and mark experimental new `node:process`
methods (Antoine du Hamel)
[#&#8203;56517](https://redirect.github.com/nodejs/node/pull/56517)
-
\[[`d35333ae18`](https://redirect.github.com/nodejs/node/commit/d35333ae18)]
- **(SEMVER-MINOR)** **process**: add process.ref() and process.unref()
methods (James M Snell)
[#&#8203;56400](https://redirect.github.com/nodejs/node/pull/56400)
-
\[[`fa49f0f7d5`](https://redirect.github.com/nodejs/node/commit/fa49f0f7d5)]
- **punycode**: limit deprecation warning (Colin Ihrig)
[#&#8203;56632](https://redirect.github.com/nodejs/node/pull/56632)
-
\[[`d77c7073b7`](https://redirect.github.com/nodejs/node/commit/d77c7073b7)]
- **sqlite**: disable memstatus APIs at build time (Colin Ihrig)
[#&#8203;56541](https://redirect.github.com/nodejs/node/pull/56541)
-
\[[`07ff3ddcb5`](https://redirect.github.com/nodejs/node/commit/07ff3ddcb5)]
- **(SEMVER-MINOR)** **sqlite**: support TypedArray and DataView in
`StatementSync` (Alex Yang)
[#&#8203;56385](https://redirect.github.com/nodejs/node/pull/56385)
-
\[[`b6c2e91365`](https://redirect.github.com/nodejs/node/commit/b6c2e91365)]
- **sqlite**: enable SQL math functions (Colin Ihrig)
[#&#8203;56447](https://redirect.github.com/nodejs/node/pull/56447)
-
\[[`3462263e8b`](https://redirect.github.com/nodejs/node/commit/3462263e8b)]
- **sqlite**: pass conflict type to conflict resolution handler (Bart
Louwers)
[#&#8203;56352](https://redirect.github.com/nodejs/node/pull/56352)
-
\[[`89ba3af743`](https://redirect.github.com/nodejs/node/commit/89ba3af743)]
- **src**: add nullptr handling from X509\_STORE_new() (Burkov Egor)
[#&#8203;56700](https://redirect.github.com/nodejs/node/pull/56700)
-
\[[`89a7c82e0c`](https://redirect.github.com/nodejs/node/commit/89a7c82e0c)]
- **src**: add default value for RSACipherConfig mode field (Burkov
Egor)
[#&#8203;56701](https://redirect.github.com/nodejs/node/pull/56701)
-
\[[`7bae51e62e`](https://redirect.github.com/nodejs/node/commit/7bae51e62e)]
- **src**: fix build with GCC 15 (tjuhaszrh)
[#&#8203;56740](https://redirect.github.com/nodejs/node/pull/56740)
-
\[[`432a4b8bd6`](https://redirect.github.com/nodejs/node/commit/432a4b8bd6)]
- **src**: fix to generate path from wchar_t via wstring (yamachu)
[#&#8203;56696](https://redirect.github.com/nodejs/node/pull/56696)
-
\[[`8c9eaf82f0`](https://redirect.github.com/nodejs/node/commit/8c9eaf82f0)]
- **src**: initialize FSReqWrapSync in path that uses it (Michaël Zasso)
[#&#8203;56613](https://redirect.github.com/nodejs/node/pull/56613)
-
\[[`bcdb42d40b`](https://redirect.github.com/nodejs/node/commit/bcdb42d40b)]
- **src**: handle duplicate paths granted (Rafael Gonzaga)
[#&#8203;56591](https://redirect.github.com/nodejs/node/pull/56591)
-
\[[`d6a7acc207`](https://redirect.github.com/nodejs/node/commit/d6a7acc207)]
- **src**: update ECKeyPointer in ncrypto (James M Snell)
[#&#8203;56526](https://redirect.github.com/nodejs/node/pull/56526)
-
\[[`01922f8b1f`](https://redirect.github.com/nodejs/node/commit/01922f8b1f)]
- **src**: update ECPointPointer in ncrypto (James M Snell)
[#&#8203;56526](https://redirect.github.com/nodejs/node/pull/56526)
-
\[[`2a3a36eceb`](https://redirect.github.com/nodejs/node/commit/2a3a36eceb)]
- **src**: update ECGroupPointer in ncrypto (James M Snell)
[#&#8203;56526](https://redirect.github.com/nodejs/node/pull/56526)
-
\[[`67c10cdacb`](https://redirect.github.com/nodejs/node/commit/67c10cdacb)]
- **src**: update ECDASSigPointer implementation in ncrypto (James M
Snell)
[#&#8203;56526](https://redirect.github.com/nodejs/node/pull/56526)
-
\[[`17f931c68b`](https://redirect.github.com/nodejs/node/commit/17f931c68b)]
- **src**: cleaning up more crypto internals for ncrypto (James M Snell)
[#&#8203;56526](https://redirect.github.com/nodejs/node/pull/56526)
-
\[[`94d3fe1b62`](https://redirect.github.com/nodejs/node/commit/94d3fe1b62)]
- **(SEMVER-MINOR)** **src**: add --disable-sigusr1 to prevent signal
i/o thread (Rafael Gonzaga)
[#&#8203;56441](https://redirect.github.com/nodejs/node/pull/56441)
-
\[[`6594ee8dff`](https://redirect.github.com/nodejs/node/commit/6594ee8dff)]
- **src**: fix undefined script name in error source (Chengzhong Wu)
[#&#8203;56502](https://redirect.github.com/nodejs/node/pull/56502)
-
\[[`b46bad3e91`](https://redirect.github.com/nodejs/node/commit/b46bad3e91)]
- **src**: refactor --trace-env to reuse option selection and handling
(Joyee Cheung)
[#&#8203;56293](https://redirect.github.com/nodejs/node/pull/56293)
-
\[[`76921b822b`](https://redirect.github.com/nodejs/node/commit/76921b822b)]
- **src**: minor cleanups on OneByteString usage (James M Snell)
[#&#8203;56482](https://redirect.github.com/nodejs/node/pull/56482)
-
\[[`3f0d1dd4fe`](https://redirect.github.com/nodejs/node/commit/3f0d1dd4fe)]
- **src**: move more crypto impl detail to ncrypto dep (James M Snell)
[#&#8203;56421](https://redirect.github.com/nodejs/node/pull/56421)
-
\[[`04f623b283`](https://redirect.github.com/nodejs/node/commit/04f623b283)]
- **src**: fixup more ToLocalChecked uses in node_file (James M Snell)
[#&#8203;56484](https://redirect.github.com/nodejs/node/pull/56484)
-
\[[`5aa436f5a1`](https://redirect.github.com/nodejs/node/commit/5aa436f5a1)]
- **src**: make some minor ToLocalChecked cleanups (James M Snell)
[#&#8203;56483](https://redirect.github.com/nodejs/node/pull/56483)
-
\[[`6eec5e7ec2`](https://redirect.github.com/nodejs/node/commit/6eec5e7ec2)]
- **src**: lock the thread properly in snapshot builder (Joyee Cheung)
[#&#8203;56327](https://redirect.github.com/nodejs/node/pull/56327)
-
\[[`5614993968`](https://redirect.github.com/nodejs/node/commit/5614993968)]
- **src**: drain platform tasks before creating startup snapshot
(Chengzhong Wu)
[#&#8203;56403](https://redirect.github.com/nodejs/node/pull/56403)
-
\[[`48493e9fd5`](https://redirect.github.com/nodejs/node/commit/48493e9fd5)]
- **src**: use LocalVector in more places (James M Snell)
[#&#8203;56457](https://redirect.github.com/nodejs/node/pull/56457)
-
\[[`7e5ea0681e`](https://redirect.github.com/nodejs/node/commit/7e5ea0681e)]
- **src**: use v8::LocalVector consistently with other minor cleanups
(James M Snell)
[#&#8203;56417](https://redirect.github.com/nodejs/node/pull/56417)
-
\[[`ad3d857f2b`](https://redirect.github.com/nodejs/node/commit/ad3d857f2b)]
- **src**: use starts_with in fs_permission.cc (ishabi)
[#&#8203;55811](https://redirect.github.com/nodejs/node/pull/55811)
-
\[[`5afffb4415`](https://redirect.github.com/nodejs/node/commit/5afffb4415)]
- **(SEMVER-MINOR)** **src,worker**: add isInternalWorker (Carlos Espa)
[#&#8203;56469](https://redirect.github.com/nodejs/node/pull/56469)
-
\[[`7d1676e72e`](https://redirect.github.com/nodejs/node/commit/7d1676e72e)]
- **stream**: fix typo in ReadableStreamBYOBReader.readIntoRequests
(Mattias Buelens)
[#&#8203;56560](https://redirect.github.com/nodejs/node/pull/56560)
-
\[[`e658ea6b26`](https://redirect.github.com/nodejs/node/commit/e658ea6b26)]
- **stream**: validate undefined sizeAlgorithm in WritableStream (Jason
Zhang)
[#&#8203;56067](https://redirect.github.com/nodejs/node/pull/56067)
-
\[[`e4f133c20c`](https://redirect.github.com/nodejs/node/commit/e4f133c20c)]
- **test**: add ts eval snapshots (Marco Ippolito)
[#&#8203;56358](https://redirect.github.com/nodejs/node/pull/56358)
-
\[[`f041742400`](https://redirect.github.com/nodejs/node/commit/f041742400)]
- **test**: remove empty lines from snapshots (Marco Ippolito)
[#&#8203;56358](https://redirect.github.com/nodejs/node/pull/56358)
-
\[[`801cde91f6`](https://redirect.github.com/nodejs/node/commit/801cde91f6)]
- **test**: reduce number of written chunks (Luigi Pinca)
[#&#8203;56757](https://redirect.github.com/nodejs/node/pull/56757)
-
\[[`6fdf1879ab`](https://redirect.github.com/nodejs/node/commit/6fdf1879ab)]
- **test**: fix invalid common.mustSucceed() usage (Luigi Pinca)
[#&#8203;56756](https://redirect.github.com/nodejs/node/pull/56756)
-
\[[`d2bfbfa364`](https://redirect.github.com/nodejs/node/commit/d2bfbfa364)]
- **test**: use strict mode in global setters test (Rich Trott)
[#&#8203;56742](https://redirect.github.com/nodejs/node/pull/56742)
-
\[[`5c030da42f`](https://redirect.github.com/nodejs/node/commit/5c030da42f)]
- **test**: cleanup and simplify test-crypto-aes-wrap (James M Snell)
[#&#8203;56748](https://redirect.github.com/nodejs/node/pull/56748)
-
\[[`f1442d6eaf`](https://redirect.github.com/nodejs/node/commit/f1442d6eaf)]
- **test**: do not use common.isMainThread (Luigi Pinca)
[#&#8203;56768](https://redirect.github.com/nodejs/node/pull/56768)
-
\[[`49405bd9e7`](https://redirect.github.com/nodejs/node/commit/49405bd9e7)]
- **test**: make some requires lazy in common/index (James M Snell)
[#&#8203;56715](https://redirect.github.com/nodejs/node/pull/56715)
-
\[[`52ef376788`](https://redirect.github.com/nodejs/node/commit/52ef376788)]
- **test**: add test that uses multibyte for path and resolves modules
(yamachu)
[#&#8203;56696](https://redirect.github.com/nodejs/node/pull/56696)
-
\[[`b811dea85a`](https://redirect.github.com/nodejs/node/commit/b811dea85a)]
- **test**: replace more uses of `global` with `globalThis` (James M
Snell)
[#&#8203;56712](https://redirect.github.com/nodejs/node/pull/56712)
-
\[[`eb97076199`](https://redirect.github.com/nodejs/node/commit/eb97076199)]
- **test**: make common/index slightly less node.js specific (James M
Snell)
[#&#8203;56712](https://redirect.github.com/nodejs/node/pull/56712)
-
\[[`1795202d19`](https://redirect.github.com/nodejs/node/commit/1795202d19)]
- **test**: rely less on duplicative common test harness utilities
(James M Snell)
[#&#8203;56712](https://redirect.github.com/nodejs/node/pull/56712)
-
\[[`5be29a274e`](https://redirect.github.com/nodejs/node/commit/5be29a274e)]
- **test**: simplify common/index.js (James M Snell)
[#&#8203;56712](https://redirect.github.com/nodejs/node/pull/56712)
-
\[[`92e99780f0`](https://redirect.github.com/nodejs/node/commit/92e99780f0)]
- **test**: move hasMultiLocalhost to common/net (James M Snell)
[#&#8203;56716](https://redirect.github.com/nodejs/node/pull/56716)
-
\[[`1c3204a4cc`](https://redirect.github.com/nodejs/node/commit/1c3204a4cc)]
- **test**: move crypto related common utilities in common/crypto (James
M Snell)
[#&#8203;56714](https://redirect.github.com/nodejs/node/pull/56714)
-
\[[`fe79d63be0`](https://redirect.github.com/nodejs/node/commit/fe79d63be0)]
- **test**: add missing test for env file (Jonas)
[#&#8203;56642](https://redirect.github.com/nodejs/node/pull/56642)
-
\[[`e08af61537`](https://redirect.github.com/nodejs/node/commit/e08af61537)]
- **test**: enforce strict mode in test-zlib-const (Rich Trott)
[#&#8203;56689](https://redirect.github.com/nodejs/node/pull/56689)
-
\[[`c96792d7f8`](https://redirect.github.com/nodejs/node/commit/c96792d7f8)]
- **test**: fix localization data for ICU 74.2 (Antoine du Hamel)
[#&#8203;56661](https://redirect.github.com/nodejs/node/pull/56661)
-
\[[`48b72f1195`](https://redirect.github.com/nodejs/node/commit/48b72f1195)]
- **test**: use --permission instead of --experimental-permission
(Rafael Gonzaga)
[#&#8203;56685](https://redirect.github.com/nodejs/node/pull/56685)
-
\[[`de81d90fce`](https://redirect.github.com/nodejs/node/commit/de81d90fce)]
- **test**: test-stream-compose.js doesn't need internals (Meghan Denny)
[#&#8203;56619](https://redirect.github.com/nodejs/node/pull/56619)
-
\[[`f5b8499ad0`](https://redirect.github.com/nodejs/node/commit/f5b8499ad0)]
- **test**: add maxCount and gcOptions to gcUntil() (Joyee Cheung)
[#&#8203;56522](https://redirect.github.com/nodejs/node/pull/56522)
-
\[[`d9e5a81041`](https://redirect.github.com/nodejs/node/commit/d9e5a81041)]
- **test**: add line break at end of file (Rafael Gonzaga)
[#&#8203;56588](https://redirect.github.com/nodejs/node/pull/56588)
-
\[[`59be346fbf`](https://redirect.github.com/nodejs/node/commit/59be346fbf)]
- **test**: mark test-worker-prof as flaky on smartos (Joyee Cheung)
[#&#8203;56583](https://redirect.github.com/nodejs/node/pull/56583)
-
\[[`12a2cae9e5`](https://redirect.github.com/nodejs/node/commit/12a2cae9e5)]
- **test**: update test-child-process-bad-stdio to use node:test (Colin
Ihrig)
[#&#8203;56562](https://redirect.github.com/nodejs/node/pull/56562)
-
\[[`2dc4a30e19`](https://redirect.github.com/nodejs/node/commit/2dc4a30e19)]
- **test**: disable openssl 3.4.0 incompatible tests (Jelle van der Waa)
[#&#8203;56160](https://redirect.github.com/nodejs/node/pull/56160)
-
\[[`1950fbf51d`](https://redirect.github.com/nodejs/node/commit/1950fbf51d)]
- **test**: make test-crypto-hash compatible with OpenSSL > 3.4.0 (Jelle
van der Waa)
[#&#8203;56160](https://redirect.github.com/nodejs/node/pull/56160)
-
\[[`a533420a91`](https://redirect.github.com/nodejs/node/commit/a533420a91)]
- **test**: clarify fork inherit permission flags (Rafael Gonzaga)
[#&#8203;56523](https://redirect.github.com/nodejs/node/pull/56523)
-
\[[`697e799dc1`](https://redirect.github.com/nodejs/node/commit/697e799dc1)]
- **test**: add error only reporter for node:test (Carlos Espa)
[#&#8203;56438](https://redirect.github.com/nodejs/node/pull/56438)
-
\[[`4844fa212d`](https://redirect.github.com/nodejs/node/commit/4844fa212d)]
- **test**: mark test-http-server-request-timeouts-mixed as flaky (Joyee
Cheung)
[#&#8203;56503](https://redirect.github.com/nodejs/node/pull/56503)
-
\[[`843c2389b9`](https://redirect.github.com/nodejs/node/commit/843c2389b9)]
- **test**: update error code in tls-psk-circuit for for OpenSSL 3.4
(sebastianas)
[#&#8203;56420](https://redirect.github.com/nodejs/node/pull/56420)
-
\[[`ccb2ddbd83`](https://redirect.github.com/nodejs/node/commit/ccb2ddbd83)]
- **test**: update compiled sqlite tests to match other tests (Colin
Ihrig)
[#&#8203;56446](https://redirect.github.com/nodejs/node/pull/56446)
-
\[[`b40f50324d`](https://redirect.github.com/nodejs/node/commit/b40f50324d)]
- **test**: add initial test426 coverage (Chengzhong Wu)
[#&#8203;56436](https://redirect.github.com/nodejs/node/pull/56436)
-
\[[`059f81e4fd`](https://redirect.github.com/nodejs/node/commit/059f81e4fd)]
- **test**: update test-set-http-max-http-headers to use node:test
(Colin Ihrig)
[#&#8203;56439](https://redirect.github.com/nodejs/node/pull/56439)
-
\[[`ec2940b418`](https://redirect.github.com/nodejs/node/commit/ec2940b418)]
- **test**: update test-child-process-windows-hide to use node:test
(Colin Ihrig)
[#&#8203;56437](https://redirect.github.com/nodejs/node/pull/56437)
-
\[[`0362924880`](https://redirect.github.com/nodejs/node/commit/0362924880)]
- **test**: use unusual chars in the path to ensure our tests are robust
(Antoine du Hamel)
[#&#8203;48409](https://redirect.github.com/nodejs/node/pull/48409)
-
\[[`b6c3869910`](https://redirect.github.com/nodejs/node/commit/b6c3869910)]
- **test**: improve abort signal dropping test (Edy Silva)
[#&#8203;56339](https://redirect.github.com/nodejs/node/pull/56339)
-
\[[`cc648ef923`](https://redirect.github.com/nodejs/node/commit/cc648ef923)]
- **test**: enable ts test on win arm64 (Marco Ippolito)
[#&#8203;56349](https://redirect.github.com/nodejs/node/pull/56349)
-
\[[`68819b4997`](https://redirect.github.com/nodejs/node/commit/68819b4997)]
- **test**: deflake test-watch-file-shared-dependency (Luigi Pinca)
[#&#8203;56344](https://redirect.github.com/nodejs/node/pull/56344)
-
\[[`ca6ed2190c`](https://redirect.github.com/nodejs/node/commit/ca6ed2190c)]
- **test**: skip `test-sqlite-extensions` when SQLite is not built by us
(Antoine du Hamel)
[#&#8203;56341](https://redirect.github.com/nodejs/node/pull/56341)
-
\[[`8ffeb8b58c`](https://redirect.github.com/nodejs/node/commit/8ffeb8b58c)]
- **test**: increase spin for eventloop test on s390 (Michael Dawson)
[#&#8203;56228](https://redirect.github.com/nodejs/node/pull/56228)
-
\[[`6ae9950f08`](https://redirect.github.com/nodejs/node/commit/6ae9950f08)]
- **test**: migrate message eval tests from Python to JS (Yiyun Lei)
[#&#8203;50482](https://redirect.github.com/nodejs/node/pull/50482)
-
\[[`4352bf69e9`](https://redirect.github.com/nodejs/node/commit/4352bf69e9)]
- **test**: check typescript loader (Marco Ippolito)
[#&#8203;54657](https://redirect.github.com/nodejs/node/pull/54657)
-
\[[`406e7db9c3`](https://redirect.github.com/nodejs/node/commit/406e7db9c3)]
- **test**: remove async-hooks/test-writewrap flaky designation (Luigi
Pinca)
[#&#8203;56048](https://redirect.github.com/nodejs/node/pull/56048)
-
\[[`fa56ab2bba`](https://redirect.github.com/nodejs/node/commit/fa56ab2bba)]
- **test**: deflake test-esm-loader-hooks-inspect-brk (Luigi Pinca)
[#&#8203;56050](https://redirect.github.com/nodejs/node/pull/56050)
-
\[[`8e149aac99`](https://redirect.github.com/nodejs/node/commit/8e149aac99)]
- **test**: add test case for listeners (origranot)
[#&#8203;56282](https://redirect.github.com/nodejs/node/pull/56282)
-
\[[`a3f5ef22cd`](https://redirect.github.com/nodejs/node/commit/a3f5ef22cd)]
- **test**: make `test-permission-sqlite-load-extension` more robust
(Antoine du Hamel)
[#&#8203;56295](https://redirect.github.com/nodejs/node/pull/56295)
-
\[[`8cbb7cc838`](https://redirect.github.com/nodejs/node/commit/8cbb7cc838)]
- **test_runner**: print failing assertion only once with spec reporter
(Pietro Marchini)
[#&#8203;56662](https://redirect.github.com/nodejs/node/pull/56662)
-
\[[`1f426bad9a`](https://redirect.github.com/nodejs/node/commit/1f426bad9a)]
- **test_runner**: remove unused errors (Pietro Marchini)
[#&#8203;56607](https://redirect.github.com/nodejs/node/pull/56607)
-
\[[`697a851fb3`](https://redirect.github.com/nodejs/node/commit/697a851fb3)]
- **(SEMVER-MINOR)** **test_runner**: add
TestContext.prototype.waitFor() (Colin Ihrig)
[#&#8203;56595](https://redirect.github.com/nodejs/node/pull/56595)
-
\[[`047537b48c`](https://redirect.github.com/nodejs/node/commit/047537b48c)]
- **(SEMVER-MINOR)** **test_runner**: add t.assert.fileSnapshot() (Colin
Ihrig)
[#&#8203;56459](https://redirect.github.com/nodejs/node/pull/56459)
-
\[[`19b4aa4b14`](https://redirect.github.com/nodejs/node/commit/19b4aa4b14)]
- **test_runner**: run single test file benchmark (Pietro Marchini)
[#&#8203;56479](https://redirect.github.com/nodejs/node/pull/56479)
-
\[[`926cf84e95`](https://redirect.github.com/nodejs/node/commit/926cf84e95)]
- **(SEMVER-MINOR)** **test_runner**: add assert.register() API (Colin
Ihrig)
[#&#8203;56434](https://redirect.github.com/nodejs/node/pull/56434)
-
\[[`fb4661a4cf`](https://redirect.github.com/nodejs/node/commit/fb4661a4cf)]
- **test_runner**: finish marking snapshot testing as stable (Colin
Ihrig)
[#&#8203;56425](https://redirect.github.com/nodejs/node/pull/56425)
-
\[[`900c6c3940`](https://redirect.github.com/nodejs/node/commit/900c6c3940)]
- **tls**: fix error stack conversion in cryptoErrorListToException()
(Joyee Cheung)
[#&#8203;56554](https://redirect.github.com/nodejs/node/pull/56554)
-
\[[`e9f185b658`](https://redirect.github.com/nodejs/node/commit/e9f185b658)]
- **tools**: update doc to new version (Node.js GitHub Bot)
[#&#8203;56259](https://redirect.github.com/nodejs/node/pull/56259)
-
\[[`7644c7e619`](https://redirect.github.com/nodejs/node/commit/7644c7e619)]
- **tools**: update inspector_protocol roller (Chengzhong Wu)
[#&#8203;56649](https://redirect.github.com/nodejs/node/pull/56649)
-
\[[`362272b0a4`](https://redirect.github.com/nodejs/node/commit/362272b0a4)]
- **tools**: do not throw on missing `create-release-proposal.sh`
(Antoine du Hamel)
[#&#8203;56704](https://redirect.github.com/nodejs/node/pull/56704)
-
\[[`df8b835953`](https://redirect.github.com/nodejs/node/commit/df8b835953)]
- **tools**: fix tools-deps-update (Daniel Lemire)
[#&#8203;56684](https://redirect.github.com/nodejs/node/pull/56684)
-
\[[`feba5d3274`](https://redirect.github.com/nodejs/node/commit/feba5d3274)]
- **tools**: do not throw on missing `create-release-proposal.sh`
(Antoine du Hamel)
[#&#8203;56695](https://redirect.github.com/nodejs/node/pull/56695)
-
\[[`9827f7d395`](https://redirect.github.com/nodejs/node/commit/9827f7d395)]
- **tools**: fix permissions in `lint-release-proposal` workflow
(Antoine du Hamel)
[#&#8203;56614](https://redirect.github.com/nodejs/node/pull/56614)
-
\[[`14c562c0dc`](https://redirect.github.com/nodejs/node/commit/14c562c0dc)]
- **tools**: remove github reporter (Carlos Espa)
[#&#8203;56468](https://redirect.github.com/nodejs/node/pull/56468)
-
\[[`ed1785d0ae`](https://redirect.github.com/nodejs/node/commit/ed1785d0ae)]
- **tools**: edit `create-release-proposal` workflow (Antoine du Hamel)
[#&#8203;56540](https://redirect.github.com/nodejs/node/pull/56540)
-
\[[`294e4c42f5`](https://redirect.github.com/nodejs/node/commit/294e4c42f5)]
- **tools**: validate commit list as part of `lint-release-commit`
(Antoine du Hamel)
[#&#8203;56291](https://redirect.github.com/nodejs/node/pull/56291)
-
\[[`98d3474267`](https://redirect.github.com/nodejs/node/commit/98d3474267)]
- **tools**: fix loong64 build failed (Xiao-Tao)
[#&#8203;56466](https://redirect.github.com/nodejs/node/pull/56466)
-
\[[`3e729ceec8`](https://redirect.github.com/nodejs/node/commit/3e729ceec8)]
- **tools**: disable unneeded rule ignoring in Python linting (Rich
Trott)
[#&#8203;56429](https://redirect.github.com/nodejs/node/pull/56429)
-
\[[`d5c05328e2`](https://redirect.github.com/nodejs/node/commit/d5c05328e2)]
- **tools**: use a configurable value for number of open dependabot PRs
(Antoine du Hamel)
[#&#8203;56427](https://redirect.github.com/nodejs/node/pull/56427)
-
\[[`1705cbe002`](https://redirect.github.com/nodejs/node/commit/1705cbe002)]
- **tools**: bump the eslint group in /tools/eslint with 4 updates
(dependabot\[bot])
[#&#8203;56426](https://redirect.github.com/nodejs/node/pull/56426)
-
\[[`53b29b0469`](https://redirect.github.com/nodejs/node/commit/53b29b0469)]
- **tools**: fix `require-common-first` lint rule from subfolder
(Antoine du Hamel)
[#&#8203;56325](https://redirect.github.com/nodejs/node/pull/56325)
-
\[[`105c4ed4fb`](https://redirect.github.com/nodejs/node/commit/105c4ed4fb)]
- **tools**: add release line label when opening release proposal
(Antoine du Hamel)
[#&#8203;56317](https://redirect.github.com/nodejs/node/pull/56317)
-
\[[`30f61f4aa5`](https://redirect.github.com/nodejs/node/commit/30f61f4aa5)]
- **url**: use resolved path to convert UNC paths to URL (Antoine du
Hamel)
[#&#8203;56302](https://redirect.github.com/nodejs/node/pull/56302)
-
\[[`a0aef4dfb6`](https://redirect.github.com/nodejs/node/commit/a0aef4dfb6)]
- **util**: inspect: do not crash on an Error stack that contains a
Symbol (Jordan Harband)
[#&#8203;56573](https://redirect.github.com/nodejs/node/pull/56573)
-
\[[`a8a060341f`](https://redirect.github.com/nodejs/node/commit/a8a060341f)]
- **util**: inspect: do not crash on an Error with a regex `name`
(Jordan Harband)
[#&#8203;56574](https://redirect.github.com/nodejs/node/pull/56574)
-
\[[`ea66bf3553`](https://redirect.github.com/nodejs/node/commit/ea66bf3553)]
- **util**: rename CallSite.column to columnNumber (Chengzhong Wu)
[#&#8203;56584](https://redirect.github.com/nodejs/node/pull/56584)
-
\[[`9cdc3b373c`](https://redirect.github.com/nodejs/node/commit/9cdc3b373c)]
- **util**: do not crash on inspecting function with `Symbol` name
(Jordan Harband)
[#&#8203;56572](https://redirect.github.com/nodejs/node/pull/56572)
-
\[[`0bfbb68569`](https://redirect.github.com/nodejs/node/commit/0bfbb68569)]
- **util**: expose CallSite.scriptId (Chengzhong Wu)
[#&#8203;56551](https://redirect.github.com/nodejs/node/pull/56551)
-
\[[`5dd7116e09`](https://redirect.github.com/nodejs/node/commit/5dd7116e09)]
- **watch**: reload env file for --env-file-if-exists (Jonas)
[#&#8203;56643](https://redirect.github.com/nodejs/node/pull/56643)
-
\[[`c658a8afdf`](https://redirect.github.com/nodejs/node/commit/c658a8afdf)]
- **(SEMVER-MINOR)** **worker**: add eval ts input (Marco Ippolito)
[#&#8203;56394](https://redirect.github.com/nodejs/node/pull/56394)
-
\[[`2e5d038f48`](https://redirect.github.com/nodejs/node/commit/2e5d038f48)]
- **worker**: refactor stdio to improve performance (Matteo Collina)
[#&#8203;56630](https://redirect.github.com/nodejs/node/pull/56630)
-
\[[`f959805d01`](https://redirect.github.com/nodejs/node/commit/f959805d01)]
- **worker**: flush stdout and stderr on exit (Matteo Collina)
[#&#8203;56428](https://redirect.github.com/nodejs/node/pull/56428)

###
[`v22.13.1`](https://redirect.github.com/nodejs/node/releases/tag/v22.13.1):
2025-01-21, Version 22.13.1 &#x27;Jod&#x27; (LTS), @&#8203;RafaelGSS

[Compare
Source](https://redirect.github.com/nodejs/node/compare/v22.13.0...v22.13.1)

This is a security release.

##### Notable Changes

- CVE-2025-23083 - src,loader,permission: throw on InternalWorker use
when permission model is enabled (High)
- CVE-2025-23085 - src: fix HTTP2 mem leak on premature close and
ERR_PROTO (Medium)
- CVE-2025-23084 - path: fix path traversal in normalize() on Windows
(Medium)

Dependency update:

- CVE-2025-22150 - Use of Insufficiently Random Values in undici fetch()
(Medium)

##### Commits

-
\[[`520da342e0`](https://redirect.github.com/nodejs/node/commit/520da342e0)]
- **(CVE-2025-22150)** **deps**: update undici to v6.21.1 (Matteo
Collina)
[nodejs-private/node-private#662](https://redirect.github.com/nodejs-private/node-private/pull/662)
-
\[[`99f217369f`](https://redirect.github.com/nodejs/node/commit/99f217369f)]
- **(CVE-2025-23084)** **path**: fix path traversal in normalize() on
Windows (Tobias Nießen)
[nodejs-private/node-private#555](https://redirect.github.com/nodejs-private/node-private/pull/555)
-
\[[`984f735e35`](https://redirect.github.com/nodejs/node/commit/984f735e35)]
- **(CVE-2025-23085)** **src**: fix HTTP2 mem leak on premature close
and ERR_PROTO (RafaelGSS)
[nodejs-private/node-private#650](https://redirect.github.com/nodejs-private/node-private/pull/650)
-
\[[`2446870618`](https://redirect.github.com/nodejs/node/commit/2446870618)]
- **(CVE-2025-23083)** **src,loader,permission**: throw on
InternalWorker use (RafaelGSS)
[nodejs-private/node-private#651](https://redirect.github.com/nodejs-private/node-private/pull/651)

###
[`v22.13.0`](https://redirect.github.com/nodejs/node/releases/tag/v22.13.0):
2025-01-07, Version 22.13.0 &#x27;Jod&#x27; (LTS), @&#8203;ruyadorno

[Compare
Source](https://redirect.github.com/nodejs/node/compare/v22.12.0...v22.13.0)

##### Notable Changes

##### Stabilize Permission Model

Upgrades the Permission Model status from Active De

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjQwLjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-09 07:12:55 -04:00
Eli Bosley
4f63b4cf3b feat: native slackware package (#1381)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added detailed versioning for plugin packages incorporating
architecture and build identifiers.
- Simplified and improved install/uninstall scripts with backup and
dynamic package detection.
- Introduced comprehensive setup, verification, patching, and cleanup
scripts for the Unraid API environment.
- Enhanced service control with explicit start, stop, restart, and
status commands.
- Added robust dependency management scripts for restoring and archiving
Node.js modules.
- Implemented vendor archive metadata storage and dynamic handling
during build and runtime.
- Added new CLI options and environment schemas for consistent build
configuration.
- Introduced new shutdown scripts to gracefully stop flash-backup and
unraid-api services.
- Added utility scripts for API version detection and vendor archive
configuration.
- Added a new package description file detailing Unraid API features and
homepage link.

- **Bug Fixes**
- Improved validation and error reporting for missing manifests,
dependencies, and configuration files.
  - Enhanced fallback logic for locating and creating vendor archives.
- Fixed iframe compatibility in UI by updating HTML and Firefox
preference files.

- **Chores**
- Updated .gitignore with generated file patterns for Node.js binaries
and archives.
  - Removed obsolete internal documentation and legacy cleanup scripts.
- Refined Docker Compose and CI workflows to pass precise API versioning
and manage build artifacts.
- Centralized common environment validation and CLI option definitions
across build tools.
- Cleaned up plugin manifest by removing Node.js and PNPM-related
entities and legacy logic.
- Improved logging and error handling in build and installation scripts.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-08 22:54:10 -04:00
Michael Datelle
a5f48da322 test: create tests for components batch 3 (#1374)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added comprehensive unit tests for components including SsoButton,
ThemeSwitcher, UpdateOs, UserProfile, WanIpCheck, WelcomeModal,
ActivationModal, ActivationPartnerLogo, ActivationPartnerLogoImg, and
ActivationSteps.
- **Tests**
- Enhanced existing test suites for ColorSwitcher, DummyServerSwitcher,
and I18nHost to improve test isolation, DOM management, and reliability.
- **Style**
- Made minor typographic correction in ActivationModal description text.
- **Refactor**
- Reorganized import statements in several components for improved code
clarity.
- **Chores**
- Added necessary imports in multiple components to support Vue
Composition API features.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-05-07 16:21:45 -04:00
renovate[bot]
291ee475fb fix(deps): update all non-major dependencies (#1366)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@manypkg/cli](https://redirect.github.com/Thinkmill/manypkg)
([source](https://redirect.github.com/Thinkmill/manypkg/tree/HEAD/packages/cli))
| [`^0.23.0` ->
`^0.24.0`](https://renovatebot.com/diffs/npm/@manypkg%2fcli/0.23.0/0.24.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@manypkg%2fcli/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@manypkg%2fcli/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@manypkg%2fcli/0.23.0/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@manypkg%2fcli/0.23.0/0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [lucide-vue-next](https://lucide.dev)
([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next))
| [`^0.488.0` ->
`^0.506.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.488.0/0.506.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-vue-next/0.506.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-vue-next/0.506.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-vue-next/0.488.0/0.506.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-vue-next/0.488.0/0.506.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.8.1` ->
`10.10.0`](https://renovatebot.com/diffs/npm/pnpm/10.8.1/10.10.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/10.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/10.8.1/10.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.8.1/10.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

##### Minor Changes

- [#&#8203;248](https://redirect.github.com/Thinkmill/manypkg/pull/248)
[`456ca21`](456ca211db)
Thanks [@&#8203;bluwy](https://redirect.github.com/bluwy)! - Change the
default value of the `defaultBranch` config from `"master"` to `"main"`

- [#&#8203;242](https://redirect.github.com/Thinkmill/manypkg/pull/242)
[`1763058`](1763058f9e)
Thanks [@&#8203;spanishpear](https://redirect.github.com/spanishpear)! -
This package is now published as a [pure ESM
package](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).

- [#&#8203;245](https://redirect.github.com/Thinkmill/manypkg/pull/245)
[`a00f5f7`](a00f5f7179)
Thanks [@&#8203;Andarist](https://redirect.github.com/Andarist)! - Drop
support for Bolt

- [#&#8203;244](https://redirect.github.com/Thinkmill/manypkg/pull/244)
[`f29df03`](f29df03867)
Thanks [@&#8203;Andarist](https://redirect.github.com/Andarist)! - Add
`"engines"` field for explicit node version support. The supported node
versions are `>=20.0.0`.

##### Patch Changes

- Updated dependencies
\[[`3cf8c4e`](3cf8c4e5d4),
[`1763058`](1763058f9e),
[`a00f5f7`](a00f5f7179),
[`f29df03`](f29df03867)]:
-
[@&#8203;manypkg/get-packages](https://redirect.github.com/manypkg/get-packages)[@&#8203;3](https://redirect.github.com/3).0.0

</details>

<details>
<summary>lucide-icons/lucide (lucide-vue-next)</summary>

###
[`v0.506.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.506.0):
Version 0.506.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.505.0...0.506.0)

##### What's Changed

- perf(react): use implicit return in react package by
[@&#8203;VIKTORVAV99](https://redirect.github.com/VIKTORVAV99) in
[https://github.com/lucide-icons/lucide/pull/2325](https://redirect.github.com/lucide-icons/lucide/pull/2325)
- fix(icons): changed `users` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3143](https://redirect.github.com/lucide-icons/lucide/pull/3143)
- fix(icons): changed `locate-off` icon by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3137](https://redirect.github.com/lucide-icons/lucide/pull/3137)
- fix(icons): changed `expand` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2831](https://redirect.github.com/lucide-icons/lucide/pull/2831)
- feat(icons): Added clock plus icon. by
[@&#8203;gubser](https://redirect.github.com/gubser) in
[https://github.com/lucide-icons/lucide/pull/2996](https://redirect.github.com/lucide-icons/lucide/pull/2996)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.505.0...0.506.0

###
[`v0.505.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.505.0):
Version 0.505.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.504.0...0.505.0)

##### What's Changed

- fix(icons): changed `package-2` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3174](https://redirect.github.com/lucide-icons/lucide/pull/3174)
- docs(icon-design-guide): point people to lucide studio instead of svgo
by [@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3152](https://redirect.github.com/lucide-icons/lucide/pull/3152)
- fix(lucide-svelte): Resolve Svelte 5 deprecation of svelte:component
by [@&#8203;shamaamahh](https://redirect.github.com/shamaamahh) in
[https://github.com/lucide-icons/lucide/pull/3112](https://redirect.github.com/lucide-icons/lucide/pull/3112)
- feat(icons): added `brush-cleaning` icon by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/2395](https://redirect.github.com/lucide-icons/lucide/pull/2395)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.504.0...0.505.0

###
[`v0.504.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.504.0):
Version 0.504.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.503.0...0.504.0)

#### What's Changed

- feat(icons): add door closed locked / unlocked icons by
[@&#8203;lukedukeus](https://redirect.github.com/lukedukeus) in
[https://github.com/lucide-icons/lucide/pull/3060](https://redirect.github.com/lucide-icons/lucide/pull/3060)
- build(dev-deps): Bump dependencies by
[@&#8203;ericfennis](https://redirect.github.com/ericfennis) in
[https://github.com/lucide-icons/lucide/pull/3096](https://redirect.github.com/lucide-icons/lucide/pull/3096)
- fix(icons): redesigned `brush` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3011](https://redirect.github.com/lucide-icons/lucide/pull/3011)
- fix(site): remove studio link from navbar by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3166](https://redirect.github.com/lucide-icons/lucide/pull/3166)
- feat(icons): added `hamburger` icon by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/3165](https://redirect.github.com/lucide-icons/lucide/pull/3165)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.503.0...0.504.0

###
[`v0.503.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.503.0):
Version 0.503.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.502.0...0.503.0)

#### What's Changed

- fix(icons): changed `file-badge-2` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2933](https://redirect.github.com/lucide-icons/lucide/pull/2933)
- feat(icons): added `wifi-pen` icon by
[@&#8203;luisdlopera](https://redirect.github.com/luisdlopera) in
[https://github.com/lucide-icons/lucide/pull/2576](https://redirect.github.com/lucide-icons/lucide/pull/2576)

#### New Contributors

- [@&#8203;luisdlopera](https://redirect.github.com/luisdlopera) made
their first contribution in
[https://github.com/lucide-icons/lucide/pull/2576](https://redirect.github.com/lucide-icons/lucide/pull/2576)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.502.0...0.503.0

###
[`v0.502.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.502.0):
Version 0.502.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.501.0...0.502.0)

#### What's Changed

- fix(docs): Added link for jguddas next to lucide studio by
[@&#8203;briz123](https://redirect.github.com/briz123) in
[https://github.com/lucide-icons/lucide/pull/3063](https://redirect.github.com/lucide-icons/lucide/pull/3063)
- build(deps-dev): bump vite from 5.4.15 to 5.4.17 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/lucide-icons/lucide/pull/2993](https://redirect.github.com/lucide-icons/lucide/pull/2993)
- fix(build): fix shredder formatting and duplicate contributors error
by [@&#8203;jpjacobpadilla](https://redirect.github.com/jpjacobpadilla)
in
[https://github.com/lucide-icons/lucide/pull/3072](https://redirect.github.com/lucide-icons/lucide/pull/3072)
- fix(icons): rebase non-binary on square-asterisk by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/3071](https://redirect.github.com/lucide-icons/lucide/pull/3071)
- docs(CONTRIBUTING): Grammar fix for CONTRIBUTING by
[@&#8203;ajokt123](https://redirect.github.com/ajokt123) in
[https://github.com/lucide-icons/lucide/pull/3090](https://redirect.github.com/lucide-icons/lucide/pull/3090)
- fix(icons): changed `calendar-plus` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3085](https://redirect.github.com/lucide-icons/lucide/pull/3085)
- fix(icons): changed `book-key` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3062](https://redirect.github.com/lucide-icons/lucide/pull/3062)
- fix(icons): changed `clipboard-paste` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3075](https://redirect.github.com/lucide-icons/lucide/pull/3075)
- fix(icons): changed `orbit` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3074](https://redirect.github.com/lucide-icons/lucide/pull/3074)
- fix(icons): changed `baby` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3073](https://redirect.github.com/lucide-icons/lucide/pull/3073)
- docs(pacakges): Added periods to package summary by
[@&#8203;briz123](https://redirect.github.com/briz123) in
[https://github.com/lucide-icons/lucide/pull/3065](https://redirect.github.com/lucide-icons/lucide/pull/3065)
- fix(docs): PR Conventions by
[@&#8203;briz123](https://redirect.github.com/briz123) in
[https://github.com/lucide-icons/lucide/pull/3066](https://redirect.github.com/lucide-icons/lucide/pull/3066)
- feat(icons): added `ruler-dimension-line` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2535](https://redirect.github.com/lucide-icons/lucide/pull/2535)

#### New Contributors

- [@&#8203;jpjacobpadilla](https://redirect.github.com/jpjacobpadilla)
made their first contribution in
[https://github.com/lucide-icons/lucide/pull/3072](https://redirect.github.com/lucide-icons/lucide/pull/3072)
- [@&#8203;ajokt123](https://redirect.github.com/ajokt123) made their
first contribution in
[https://github.com/lucide-icons/lucide/pull/3090](https://redirect.github.com/lucide-icons/lucide/pull/3090)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.501.0...0.502.0

###
[`v0.501.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.501.0):
Version 0.501.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.500.0...0.501.0)

##### What's Changed

- feat(angular): export icon data types by
[@&#8203;dzonatan](https://redirect.github.com/dzonatan) in
[https://github.com/lucide-icons/lucide/pull/2820](https://redirect.github.com/lucide-icons/lucide/pull/2820)
- feat: added request-review workflow by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2502](https://redirect.github.com/lucide-icons/lucide/pull/2502)
- feat(icons): Add columns-3-cog icon by
[@&#8203;irvineacosta](https://redirect.github.com/irvineacosta) in
[https://github.com/lucide-icons/lucide/pull/2763](https://redirect.github.com/lucide-icons/lucide/pull/2763)

##### New Contributors

- [@&#8203;dzonatan](https://redirect.github.com/dzonatan) made their
first contribution in
[https://github.com/lucide-icons/lucide/pull/2820](https://redirect.github.com/lucide-icons/lucide/pull/2820)
- [@&#8203;irvineacosta](https://redirect.github.com/irvineacosta) made
their first contribution in
[https://github.com/lucide-icons/lucide/pull/2763](https://redirect.github.com/lucide-icons/lucide/pull/2763)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.500.0...0.501.0

###
[`v0.500.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.500.0):
Version 0.500.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.499.0...0.500.0)

##### What's Changed

- fix(icons): updated `*-cog` icons by
[@&#8203;UsamaKhan](https://redirect.github.com/UsamaKhan) in
[https://github.com/lucide-icons/lucide/pull/2782](https://redirect.github.com/lucide-icons/lucide/pull/2782)
- fix(icons): arcified `lamp-*` icons by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2267](https://redirect.github.com/lucide-icons/lucide/pull/2267)
- fix(icons): changed `traffic-cone` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2941](https://redirect.github.com/lucide-icons/lucide/pull/2941)
- Add `electric-truck` icon by
[@&#8203;LienMaas](https://redirect.github.com/LienMaas) in
[https://github.com/lucide-icons/lucide/pull/1803](https://redirect.github.com/lucide-icons/lucide/pull/1803)
- feat(icons): Add `user-lock` icon by
[@&#8203;anthony-mariotti](https://redirect.github.com/anthony-mariotti)
in
[https://github.com/lucide-icons/lucide/pull/2818](https://redirect.github.com/lucide-icons/lucide/pull/2818)

##### New Contributors

- [@&#8203;UsamaKhan](https://redirect.github.com/UsamaKhan) made their
first contribution in
[https://github.com/lucide-icons/lucide/pull/2782](https://redirect.github.com/lucide-icons/lucide/pull/2782)
- [@&#8203;LienMaas](https://redirect.github.com/LienMaas) made their
first contribution in
[https://github.com/lucide-icons/lucide/pull/1803](https://redirect.github.com/lucide-icons/lucide/pull/1803)
-
[@&#8203;anthony-mariotti](https://redirect.github.com/anthony-mariotti)
made their first contribution in
[https://github.com/lucide-icons/lucide/pull/2818](https://redirect.github.com/lucide-icons/lucide/pull/2818)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.499.0...0.500.0

###
[`v0.499.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.499.0):
Version 0.499.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.498.0...0.499.0)

##### What's Changed

- feat(icons): added `bow-arrow` icon by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/2418](https://redirect.github.com/lucide-icons/lucide/pull/2418)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.498.0...0.499.0

###
[`v0.498.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.498.0):
Version 0.498.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.497.0...0.498.0)

##### What's Changed

- feat(icons): added `decimals-arrow-left` icon and
`decimals-arrow-right` by
[@&#8203;AnnaSasDev](https://redirect.github.com/AnnaSasDev) in
[https://github.com/lucide-icons/lucide/pull/2945](https://redirect.github.com/lucide-icons/lucide/pull/2945)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.497.0...0.498.0

###
[`v0.497.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.497.0):
Version 0.497.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.496.0...0.497.0)

#### What's Changed

- feat(icons): added `shredder` icon by
[@&#8203;alirashidy](https://redirect.github.com/alirashidy) in
[https://github.com/lucide-icons/lucide/pull/3052](https://redirect.github.com/lucide-icons/lucide/pull/3052)

#### New Contributors

- [@&#8203;alirashidy](https://redirect.github.com/alirashidy) made
their first contribution in
[https://github.com/lucide-icons/lucide/pull/3052](https://redirect.github.com/lucide-icons/lucide/pull/3052)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.496.0...0.497.0

###
[`v0.496.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.496.0):
Version 0.496.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.495.0...0.496.0)

##### What's Changed

- feat(icons): added `squares-*` operation icons by
[@&#8203;EthanHazel](https://redirect.github.com/EthanHazel) in
[https://github.com/lucide-icons/lucide/pull/2585](https://redirect.github.com/lucide-icons/lucide/pull/2585)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.495.0...0.496.0

###
[`v0.495.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.495.0):
Version 0.495.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.494.0...0.495.0)

##### What's Changed

- feat(icons): added `rectangle-goggles` icon by
[@&#8203;EthanHazel](https://redirect.github.com/EthanHazel) in
[https://github.com/lucide-icons/lucide/pull/2515](https://redirect.github.com/lucide-icons/lucide/pull/2515)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.494.0...0.495.0

###
[`v0.494.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.494.0):
Version 0.494.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.493.0...0.494.0)

##### What's Changed

- fix(icons): changed `cpu` icon by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/3033](https://redirect.github.com/lucide-icons/lucide/pull/3033)
- feat(icons): added map-pin-edit icon
[#&#8203;2874](https://redirect.github.com/lucide-icons/lucide/issues/2874)
by [@&#8203;sachinkr7368](https://redirect.github.com/sachinkr7368) in
[https://github.com/lucide-icons/lucide/pull/2957](https://redirect.github.com/lucide-icons/lucide/pull/2957)

##### New Contributors

- [@&#8203;sachinkr7368](https://redirect.github.com/sachinkr7368) made
their first contribution in
[https://github.com/lucide-icons/lucide/pull/2957](https://redirect.github.com/lucide-icons/lucide/pull/2957)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.493.0...0.494.0

###
[`v0.493.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.493.0):
Version 0.493.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.492.0...0.493.0)

##### What's Changed

- feat(icons): added `bubbles` icon by
[@&#8203;vqh2602](https://redirect.github.com/vqh2602) in
[https://github.com/lucide-icons/lucide/pull/2582](https://redirect.github.com/lucide-icons/lucide/pull/2582)
- docs(studio): Add lucide studio to site navbar by
[@&#8203;ericfennis](https://redirect.github.com/ericfennis) in
[https://github.com/lucide-icons/lucide/pull/3058](https://redirect.github.com/lucide-icons/lucide/pull/3058)
- feat(ci): adds dpi preview for 16, 32 and 48px by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3048](https://redirect.github.com/lucide-icons/lucide/pull/3048)
- fix(icons): changed `palette` icon by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3015](https://redirect.github.com/lucide-icons/lucide/pull/3015)
- feat(icons): added `brick-wall-fire` icon by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/3036](https://redirect.github.com/lucide-icons/lucide/pull/3036)

##### New Contributors

- [@&#8203;vqh2602](https://redirect.github.com/vqh2602) made their
first contribution in
[https://github.com/lucide-icons/lucide/pull/2582](https://redirect.github.com/lucide-icons/lucide/pull/2582)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.492.0...0.493.0

###
[`v0.492.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.492.0):
Version 0.492.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.491.0...0.492.0)

#### What's Changed

- fix(icons): changed `pipette` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2927](https://redirect.github.com/lucide-icons/lucide/pull/2927)
- feat(icons): added `heart-plus` & `heart-minus` icon by
[@&#8203;Ayberkyvs](https://redirect.github.com/Ayberkyvs) in
[https://github.com/lucide-icons/lucide/pull/2842](https://redirect.github.com/lucide-icons/lucide/pull/2842)

#### New Contributors

- [@&#8203;Ayberkyvs](https://redirect.github.com/Ayberkyvs) made their
first contribution in
[https://github.com/lucide-icons/lucide/pull/2842](https://redirect.github.com/lucide-icons/lucide/pull/2842)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.491.0...0.492.0

###
[`v0.491.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.491.0):
Version 0.491.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.490.0...0.491.0)

##### What's Changed

- feat(icons): added `rotate-ccw-key` icon by
[@&#8203;pgbradbury](https://redirect.github.com/pgbradbury) in
[https://github.com/lucide-icons/lucide/pull/2587](https://redirect.github.com/lucide-icons/lucide/pull/2587)

##### New Contributors

- [@&#8203;pgbradbury](https://redirect.github.com/pgbradbury) made
their first contribution in
[https://github.com/lucide-icons/lucide/pull/2587](https://redirect.github.com/lucide-icons/lucide/pull/2587)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.490.0...0.491.0

###
[`v0.490.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.490.0):
Version 0.490.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.489.0...0.490.0)

#### What's Changed

- fix(icons): changed `piggy-bank` icon by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3044](https://redirect.github.com/lucide-icons/lucide/pull/3044)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.489.0...0.490.0

###
[`v0.489.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.489.0):
Version 0.489.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.488.0...0.489.0)

##### What's Changed

- fix(icons): changed `toggle` icons by
[@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in
[https://github.com/lucide-icons/lucide/pull/3049](https://redirect.github.com/lucide-icons/lucide/pull/3049)
- fix(dev): added link for preact in installation by
[@&#8203;briz123](https://redirect.github.com/briz123) in
[https://github.com/lucide-icons/lucide/pull/3025](https://redirect.github.com/lucide-icons/lucide/pull/3025)
- fix(react): added aria-hidden fallback for decorative icons by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2158](https://redirect.github.com/lucide-icons/lucide/pull/2158)
- fix(icons): added 2px gap between layers of `layers-2` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2918](https://redirect.github.com/lucide-icons/lucide/pull/2918)
- fix(icons): changed `text-cursor-input` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3027](https://redirect.github.com/lucide-icons/lucide/pull/3027)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.488.0...0.489.0

</details>

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v10.10.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#10100)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.9.0...v10.10.0)

##### Minor Changes

- Allow loading the `preResolution`, `importPackage`, and `fetchers`
hooks from local pnpmfile.

##### Patch Changes

- Fix `cd` command, when `shellEmulator` is `true`
[#&#8203;7838](https://redirect.github.com/pnpm/pnpm/issues/7838).
- Sort keys in `pnpm-workspace.yaml`
[#&#8203;9453](https://redirect.github.com/pnpm/pnpm/pull/9453).
- Pass the `npm_package_json` environment variable to the executed
scripts
[#&#8203;9452](https://redirect.github.com/pnpm/pnpm/issues/9452).
- Fixed a mistake in the description of the `--reporter=silent` option.

###
[`v10.9.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#1090)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.8.1...v10.9.0)

##### Minor Changes

- **Added support for installing JSR packages.** You can now install JSR
packages using the following syntax:

        pnpm add jsr:<pkg_name>

    or with a version range:

        pnpm add jsr:<pkg_name>@&#8203;<range>

    For example, running:

        pnpm add jsr:@&#8203;foo/bar

    will add the following entry to your `package.json`:

    ```json
    {
      "dependencies": {
        "@&#8203;foo/bar": "jsr:^0.1.2"
      }
    }
    ```

When publishing, this entry will be transformed into a format compatible
with npm, older versions of Yarn, and previous pnpm versions:

    ```json
    {
      "dependencies": {
        "@&#8203;foo/bar": "npm:@&#8203;jsr/foo__bar@^0.1.2"
      }
    }
    ```

Related issue:
[#&#8203;8941](https://redirect.github.com/pnpm/pnpm/issues/8941).

Note: The `@jsr` scope defaults to <https://npm.jsr.io/> if the
`@jsr:registry` setting is not defined.

- Added a new setting, `dangerouslyAllowAllBuilds`, for automatically
running any scripts of dependencies without the need to approve any
builds. It was already possible to allow all builds by adding this to
`pnpm-workspace.yaml`:

    ```yaml
    neverBuiltDependencies: []
    ```

`dangerouslyAllowAllBuilds` has the same effect but also allows to be
set globally via:

        pnpm config set dangerouslyAllowAllBuilds true

    It can also be set when running a command:

        pnpm install --dangerously-allow-all-builds

##### Patch Changes

- Fix a false negative in `verifyDepsBeforeRun` when `nodeLinker` is
`hoisted` and there is a workspace package without dependencies and
`node_modules` directory
[#&#8203;9424](https://redirect.github.com/pnpm/pnpm/issues/9424).
- Explicitly drop `verifyDepsBeforeRun` support for `nodeLinker: pnp`.
Combining `verifyDepsBeforeRun` and `nodeLinker: pnp` will now print a
warning.

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNDguNCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-02 12:59:53 -04:00
github-actions[bot]
948580917d chore(main): release 4.8.0 (#1377)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-05-01 14:55:55 -07:00
Eli Bosley
39e83b2aa1 feat: move activation code logic into the API (#1369)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added comprehensive activation code customization service with dynamic
theming, partner branding, and UI updates.
- Introduced new GraphQL types and public queries for activation code,
partner info, and theme data.
- Implemented new web UI stores and components for activation modal,
partner logos, and theme management.
- **Improvements**
- Removed legacy activation code scripts, PHP components, and plugin
references, streamlining activation logic.
- Enhanced configuration and environment support for activation and
theming features.
- Improved error handling, validation, and type safety in activation and
customization modules.
- **Bug Fixes**
- Fixed color code validation and path handling in customization
service.
- **Chores**
  - Added pre-commit linting hooks and related configuration.
  - Cleaned up test and development environment files.
- **Tests**
- Added extensive tests covering activation customization service
initialization, data handling, and file modifications.
  - Removed obsolete tests related to legacy activation code store.
- **Refactor**
- Migrated activation and partner branding logic from legacy scripts and
PHP to TypeScript services and GraphQL resolvers.
- Reorganized store and component architecture for activation-related
features.
- **Style**
- Updated UI components for improved branding, theming, accessibility,
and layout consistency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Zack Spear <hi@zackspear.com>
2025-05-01 17:40:36 -04:00
Eli Bosley
831050f4e8 fix: 400 error when submitting connect settings 2025-05-01 17:03:19 -04:00
Eli Bosley
7ace6d3076 chore: change hotfix to a plus sign 2025-05-01 13:56:32 -04:00
Zack Spear
1ff3d7285e chore: update eligibility copy (#1376) 2025-05-01 10:30:35 -07:00
Pujit Mehrotra
874a507e60 [WIP] fix: authentication when booting into GUI mode (#1368)
Added detection of GUI mode to conditionally enhance session handling.
2025-04-30 23:31:26 -04:00
Michael Datelle
32c6fe6295 test: create tests for components batch 2 (#1365)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Refactor**
- Improved component tests by integrating Pinia's testing utilities for
more reliable store mocking and state management.
- Updated test setup to streamline plugin usage and remove unnecessary
configuration.
- Enhanced test clarity by relying on store state changes and Vue's
reactivity instead of manual mock updates.
- Simplified test cases by focusing on passed props and standardized
store mocking.
- **Chores**
  - Updated test directory structure for better organization.
  - Added additional test mocks for dependencies.
- **New Features**
- Added comprehensive tests for the ColorSwitcher component, verifying
UI elements and theme store interactions.
- Introduced tests for the DevSettings component, confirming UI
rendering and interaction behavior.
- Added detailed tests for the DowngradeOs component covering store
interactions and conditional UI rendering.
- Added new test suites for DummyServerSwitcher component, ensuring
correct rendering and reactive state updates.
- Added new test suites for HeaderOsVersion component, validating
version badge rendering and error state handling.
- Added new test suite for the I18nHost component, validating
internationalization context provisioning and error handling.
- Added a comprehensive test suite for the Modal component, covering UI
behavior, styling, and event handling.
- Added new test suite for the Registration component, verifying
rendering based on server state.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-04-29 12:44:31 -04:00
Eli Bosley
586653ccc1 chore: add a prefix scalar instead of prefix plugin (#1361)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced a new `PrefixedID` scalar type for all GraphQL IDs,
ensuring unique identifiers across multiple servers by prefixing IDs
with a server identifier.
- Added detailed documentation for the `PrefixedID` scalar in the API
schema.
- Grouped VM and parity check mutations under dedicated fields for
better organization.
- Added new scalar `Port` and input type `AccessUrlInput` for improved
type safety.

- **Refactor**
- Replaced all usages of standard `ID` or `String` with `PrefixedID` for
IDs in queries, mutations, and models.
- Consolidated ID handling by extending a common `Node` base class
across models, removing redundant `id` declarations.
- Updated GraphQL argument types and resolver signatures to explicitly
use `PrefixedID`.
- Updated GraphQL code generation to map `PrefixedID` to TypeScript
`string`.

- **Bug Fixes**
- Enhanced test assertions to verify API key creation timestamps are
strings.
  - Fixed internal property naming for registration ID.

- **Chores**
- Removed legacy ID prefix Apollo Server plugin in favor of the new
scalar approach.
  - Cleaned up imports and unused fields related to ID handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-29 12:22:18 -04:00
github-actions[bot]
c5a394eddf chore(main): release 4.7.0 (#1332)
🤖 I have created a release *beep* *boop*
---


## [4.7.0](https://github.com/unraid/api/compare/v4.6.6...v4.7.0)
(2025-04-24)


### Features

* add basic docker network listing
([#1317](https://github.com/unraid/api/issues/1317))
([c4fdff8](c4fdff8149))
* add permission documentation by using a custom decorator
([#1355](https://github.com/unraid/api/issues/1355))
([45ecab6](45ecab6914))
* basic vm controls ([#1293](https://github.com/unraid/api/issues/1293))
([bc3ca92](bc3ca92fb0))
* code first graphql
([#1347](https://github.com/unraid/api/issues/1347))
([f5724ab](f5724abffb))


### Bug Fixes

* container names always null
([#1335](https://github.com/unraid/api/issues/1335))
([8a5b238](8a5b23856c))
* **deps:** update all non-major dependencies
([#1337](https://github.com/unraid/api/issues/1337))
([2345732](234573264c))
* hide reboot notice for patch releases
([#1341](https://github.com/unraid/api/issues/1341))
([4b57439](4b5743906a))
* move docker mutations to the mutations resolver
([#1333](https://github.com/unraid/api/issues/1333))
([1bbe7d2](1bbe7d27b0))
* PR build issue
([457d338](457d338150))
* remove some unused fields from the report object
([#1342](https://github.com/unraid/api/issues/1342))
([cd323ac](cd323acd49))
* sso unreliable if API outputs more than raw json
([#1353](https://github.com/unraid/api/issues/1353))
([e65775f](e65775f878))
* vms now can detect starting of libvirt and start local hypervisor
([#1356](https://github.com/unraid/api/issues/1356))
([ad0f4c8](ad0f4c8b55))

---
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-04-24 09:24:52 -04:00
Eli Bosley
1d30b25a0a chore: Update CallbackFeedback.vue 2025-04-24 09:23:14 -04:00
Pujit Mehrotra
026b0b344c chore: cli commands for api plugin install & generation (#1352)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced a CLI tool to scaffold new Unraid API plugins, including
templates for configuration, persistence, and GraphQL resolvers.
- Added plugin management commands to the CLI for installing, removing,
and listing plugins as peer dependencies.
- Implemented robust configuration state management with validation,
persistence, and error handling.
  - Added scheduled and debounced persistence for configuration changes.
  - Provided utilities for file existence checks and CSV string parsing.
- Enhanced GraphQL schema with new queries and mutations for health
checks and demo configuration.

- **Improvements**
- Updated configuration and environment handling to support modular,
persistent plugin configs.
- Improved logging and error handling throughout CLI and service layers.
- Refined dependency management for plugins, including support for
bundled dependencies.

- **Bug Fixes**
- Improved error handling during Docker service initialization to
prevent unhandled exceptions.

- **Chores**
- Added and updated development dependencies and TypeScript
configurations for better compatibility and type safety.

- **Refactor**
- Restructured internal modules to support dynamic plugin loading and
configuration injection.
  - Removed deprecated plugin schema extension logic and related code.

- **Documentation**
- Updated and added configuration files and templates for easier plugin
development and management.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-22 13:30:11 -04:00
Michael Datelle
72860e71fe test: create tests for stores batch 3 (#1358)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added comprehensive test coverage for the purchase, replaceRenew,
modal, notifications, theme, trial, unraidApi, unraidApiSettings,
updateOs, updateOsActions, updateOsChangelog, activationCode, and
callbackActions stores.
- Exposed callback error state in the callbackActions store for external
access.
  - Made error state publicly accessible in the replaceRenew store.

- **Tests**
- Introduced new test files covering state, getters, actions, and side
effects for multiple stores including modal, notifications, purchase,
replaceRenew, theme, trial, unraidApi, unraidApiSettings, updateOs,
updateOsActions, updateOsChangelog, activationCode, and callbackActions.
- Enhanced existing test suites with additional mocks, reactive state
handling, and expanded test cases for improved coverage and robustness.

- **Refactor**
- Improved code clarity and readability in modal, notifications,
purchase, replaceRenew, trial, theme, updateOsActions, callbackActions,
and unraidApi stores through import reorganization and formatting
adjustments.
- Updated imports to include reactive and computed utilities for
enhanced state management in several stores.
- Standardized import styles and streamlined store definitions in the
unraidApiSettings store.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-04-16 17:06:52 -04:00
renovate[bot]
1236b7743e chore(deps): update dependency vite-plugin-node to v5 (#1283)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[vite-plugin-node](https://redirect.github.com/axe-me/vite-plugin-node)
| [`^4.0.0` ->
`^5.0.0`](https://renovatebot.com/diffs/npm/vite-plugin-node/4.0.0/5.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite-plugin-node/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite-plugin-node/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite-plugin-node/4.0.0/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite-plugin-node/4.0.0/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>axe-me/vite-plugin-node (vite-plugin-node)</summary>

###
[`v5.0.0`](https://redirect.github.com/axe-me/vite-plugin-node/blob/HEAD/CHANGELOG.md#500)

-   update vite to 6.x.x

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-15 09:39:59 -04:00
Eli Bosley
ea77de8800 chore: update cache functionality to use nestjs-cache module (#1360)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced caching controls allow dynamic management of cache usage when
retrieving container and network data.
- Real-time event notifications are published on container lifecycle
changes for improved updates.

- **Refactor**
- Unified caching logic across Docker modules using a centralized cache
manager.
  - Updated query parameters to support flexible cache skipping options.
- Introduced explicit cache invalidation and warming mechanisms for
improved data freshness.

- **Tests**
- Expanded test coverage to validate caching mechanisms and event
publishing.

- **Chores**
  - Added new caching dependencies to support improved cache management.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-15 09:33:47 -04:00
Eli Bosley
ad0f4c8b55 fix: vms now can detect starting of libvirt and start local hypervisor (#1356)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced virtual machine services now benefit from improved
initialization, dynamic monitoring, and cleaner shutdown, ensuring a
smoother operational experience.
- Strengthened input validation for array state changes helps users
avoid improper commands and enhances overall reliability.

- **Bug Fixes**
- Refined state and disk management logic prevents redundant operations
and incorrect transitions, leading to a more stable system.

- **Refactor**
- Streamlined status reporting delivers clearer and more accurate array
state information for end-users.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-14 14:59:06 -04:00
Michael Datelle
d74d9f1246 test: create tests for stores batch 2 (#1351)
This is batch 2 of the web store tests. I started implementing the
recommended approach in the Pinia docs for the store tests and was able
to eliminate most of the mocking files. The server.test.ts file still
uses `pinia/testing` for now since I was having trouble with some of the
dependencies in the store due to it's complexity.

I also updated the `web-testing-rules`for Cursor in an effort to
streamline the AI's approach when helping with tests. There's some
things it still struggles with and seems like it doesn't always take the
rules into consideration until after it hits a snag. It likes to try and
create a mock for the store it's actually testing even though there's a
rule in place and has to be reminded.


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

## Summary by CodeRabbit

- **Tests**
- Added comprehensive test suites for account management and activation
flows to ensure smoother user interactions.
- Introduced new test coverage for callback actions, validating state
management and action handling.
- Added a new test file for the account store, covering various actions
and their interactions.
- Introduced a new test file for the activation code store, verifying
state management and modal visibility.
- Established a new test file for dropdown functionality, ensuring
accurate state management and action methods.
- Added a new test suite for the Errors store, covering error handling
and modal interactions.
- Enhanced test guidelines for Vue components and Pinia stores,
providing clearer documentation and best practices.
- Introduced a new test file for the InstallKey store, validating key
installation processes and error handling.
- Added a new test file for the dropdown store, ensuring accurate
visibility state management and action methods.

- **Refactor**
- Streamlined the structure of account action payloads for consistent
behavior.
- Improved code formatting and reactivity setups to enhance overall
operational stability.
- Enhanced reactivity capabilities in various stores by introducing new
Vue composition API functions.
- Improved code readability and organization in the installKey store and
other related files.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-04-14 12:30:27 -04:00
Eli Bosley
45ecab6914 feat: add permission documentation by using a custom decorator (#1355)
* usePermissions applies both authz + graphQL directive logic to allow
permissions and documentation in one place

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

- **New Features**
- Introduced a new GraphQL permission directive that documents required
permissions for API fields.
- Added enums for defining action verbs (create, update, delete, read)
and possession types (any, own, own any) to enable granular access
control.
- Added a new health field to the Query type for improved API health
monitoring.

- **Chores**
- Consolidated permission handling by updating import sources and
retiring legacy authorization tests and code, enhancing overall
maintainability.
  - Updated configuration version in the API settings.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-14 12:27:15 -04:00
Eli Bosley
e65775f878 fix: sso unreliable if API outputs more than raw json (#1353)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Bug Fixes**
- Enhanced the SSO login process by improving the handling of response
data. This update increases reliability when unexpected response formats
occur during authentication.
- **New Features**
- Introduced a new function for validating user credentials and SSO
tokens, enhancing the login functionality with improved error handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-14 12:10:22 -04:00
Eli Bosley
33ad1fd63b chore: fix flaky api key test (#1357)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Tests**
- Improved test validations to flexibly verify dynamic timestamp values
in API responses.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-14 11:45:45 -04:00
renovate[bot]
234573264c fix(deps): update all non-major dependencies (#1337)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@pinia/nuxt](https://redirect.github.com/vuejs/pinia/tree/v3/packages/nuxt#readme)
([source](https://redirect.github.com/vuejs/pinia)) | [`^0.10.0` ->
`^0.11.0`](https://renovatebot.com/diffs/npm/@pinia%2fnuxt/0.10.1/0.11.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@pinia%2fnuxt/0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@pinia%2fnuxt/0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@pinia%2fnuxt/0.10.1/0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@pinia%2fnuxt/0.10.1/0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [lucide-vue-next](https://lucide.dev)
([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next))
| [`^0.487.0` ->
`^0.488.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.487.0/0.488.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-vue-next/0.488.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-vue-next/0.488.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-vue-next/0.487.0/0.488.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-vue-next/0.487.0/0.488.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.7.1` ->
`10.8.1`](https://renovatebot.com/diffs/npm/pnpm/10.7.1/10.8.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/10.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/10.7.1/10.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.7.1/10.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[vuetify-nuxt-module](https://redirect.github.com/vuetifyjs/nuxt-module)
| [`0.18.5` ->
`0.18.6`](https://renovatebot.com/diffs/npm/vuetify-nuxt-module/0.18.5/0.18.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vuetify-nuxt-module/0.18.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vuetify-nuxt-module/0.18.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vuetify-nuxt-module/0.18.5/0.18.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vuetify-nuxt-module/0.18.5/0.18.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>lucide-icons/lucide (lucide-vue-next)</summary>

###
[`v0.488.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.488.0):
Version 0.488.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.487.0...0.488.0)

#### What's Changed

- docs(readme): fix packages table by
[@&#8203;realguse](https://redirect.github.com/realguse) in
[https://github.com/lucide-icons/lucide/pull/2976](https://redirect.github.com/lucide-icons/lucide/pull/2976)
- fix(dev): point urls on packages page to correct page by
[@&#8203;briz123](https://redirect.github.com/briz123) in
[https://github.com/lucide-icons/lucide/pull/2983](https://redirect.github.com/lucide-icons/lucide/pull/2983)
- build(deps-dev): bump vite from 5.4.14 to 5.4.15 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/lucide-icons/lucide/pull/2946](https://redirect.github.com/lucide-icons/lucide/pull/2946)
- Typo fix for
[@&#8203;lucide/astro](https://redirect.github.com/lucide/astro) badge
by [@&#8203;dotspencer](https://redirect.github.com/dotspencer) in
[https://github.com/lucide-icons/lucide/pull/3004](https://redirect.github.com/lucide-icons/lucide/pull/3004)
- removed flutter package link by
[@&#8203;shamaamahh](https://redirect.github.com/shamaamahh) in
[https://github.com/lucide-icons/lucide/pull/2999](https://redirect.github.com/lucide-icons/lucide/pull/2999)
- feat(ci): added npm package provenance attestation by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3016](https://redirect.github.com/lucide-icons/lucide/pull/3016)
- fix(icons): changed `text` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3029](https://redirect.github.com/lucide-icons/lucide/pull/3029)
- fix(icons): changed `letter-text` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3030](https://redirect.github.com/lucide-icons/lucide/pull/3030)
- fix(icons): changed `text-select` icon by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/3028](https://redirect.github.com/lucide-icons/lucide/pull/3028)

#### New Contributors

- [@&#8203;dotspencer](https://redirect.github.com/dotspencer) made
their first contribution in
[https://github.com/lucide-icons/lucide/pull/3004](https://redirect.github.com/lucide-icons/lucide/pull/3004)
- [@&#8203;shamaamahh](https://redirect.github.com/shamaamahh) made
their first contribution in
[https://github.com/lucide-icons/lucide/pull/2999](https://redirect.github.com/lucide-icons/lucide/pull/2999)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.487.0...0.488.0

</details>

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v10.8.1`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#1081)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.8.0...v10.8.1)

##### Patch Changes

- Removed bright white highlighting, which didn't look good on some
light themes
[#&#8203;9389](https://redirect.github.com/pnpm/pnpm/pull/9389).
- If there is no pnpm related configuration in `package.json`,
`onlyBuiltDependencies` will be written to `pnpm-workspace.yaml` file
[#&#8203;9404](https://redirect.github.com/pnpm/pnpm/pull/9404).

###
[`v10.8.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#1080)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.7.1...v10.8.0)

##### Minor Changes

- **Experimental.** A new hook is supported for updating configuration
settings. The hook can be provided via `.pnpmfile.cjs`. For example:

    ```js
    module.exports = {
      hooks: {
        updateConfig: (config) => ({
          ...config,
          nodeLinker: "hoisted",
        }),
      },
    };
    ```
- Now you can use the `pnpm add` command with the `--config` flag to
install new configurational dependencies
[#&#8203;9377](https://redirect.github.com/pnpm/pnpm/pull/9377).

##### Patch Changes

- Do not hang indefinitely, when there is a glob that starts with `!/`
in `pnpm-workspace.yaml`. This fixes a regression introduced by
[#&#8203;9169](https://redirect.github.com/pnpm/pnpm/pull/9169).
- `pnpm audit --fix` should update the overrides in
`pnpm-workspace.yaml`.
- `pnpm link` should update overrides in `pnpm-workspace.yaml`, not in
`package.json`
[#&#8203;9365](https://redirect.github.com/pnpm/pnpm/pull/9365).

</details>

<details>
<summary>vuetifyjs/nuxt-module (vuetify-nuxt-module)</summary>

###
[`v0.18.6`](https://redirect.github.com/vuetifyjs/nuxt-module/releases/tag/v0.18.6)

[Compare
Source](https://redirect.github.com/vuetifyjs/nuxt-module/compare/v0.18.5...v0.18.6)

#####    🚀 Features

- **labs**: Enable labs components auto-import by default  -  by
[@&#8203;userquin](https://redirect.github.com/userquin) in
[https://github.com/vuetifyjs/nuxt-module/issues/309](https://redirect.github.com/vuetifyjs/nuxt-module/issues/309)
[<samp>(92366)</samp>](https://redirect.github.com/vuetifyjs/nuxt-module/commit/9236675)

#####    🏎 Performance

- **styles**: Use `fsp.access` and rethrow legitimate errors  -  by
[@&#8203;userquin](https://redirect.github.com/userquin) in
[https://github.com/vuetifyjs/nuxt-module/issues/308](https://redirect.github.com/vuetifyjs/nuxt-module/issues/308)
[<samp>(b136e)</samp>](https://redirect.github.com/vuetifyjs/nuxt-module/commit/b136e56)

#####     [View changes on
GitHub](https://redirect.github.com/vuetifyjs/nuxt-module/compare/v0.18.5...v0.18.6)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMjcuMyIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-14 09:36:55 -04:00
Eli Bosley
f5724abffb feat: code first graphql (#1347)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced API capabilities with improved GraphQL interfaces for remote
access, parity checks, notifications, and virtual machine controls.
- Introduction of dynamic remote access settings and refined online
status and service monitoring.
- New `ParityCheckMutationsResolver` for managing parity check
operations through GraphQL.

- **Refactor**
- Consolidated and renamed internal types and schema definitions to
improve consistency and performance.
  - Removed deprecated legacy schemas to streamline the API.
- Updated import paths for various types to reflect new module
structures.

- **Chore**
- Updated environment configurations and test setups to support the new
logging and configuration mechanisms.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-11 15:03:01 -04:00
Pujit Mehrotra
8bb9efcb68 chore(api): enable using workspace plugins in production (#1343)
## Summary by CodeRabbit

- **New Features**
- Introduced an automated step in the post-build process to copy plugin
assets.
- Enhanced the plugin import process by supporting multiple sourcing
options.
  - Adds a demo `health` query via a workspace plugin.

- **Documentation**
- Added a detailed guide explaining API plugin configuration and local
workspace integration.

- **Refactor**
- Improved dependency handling by marking certain workspace plugins as
optional.
- Updated deployment synchronization to ensure destination directories
exactly mirror the source.
- Refined logging levels and type-safety for improved reliability and
debugging.
2025-04-10 14:17:39 -04:00
Pujit Mehrotra
97ab6fbe32 refactor(api): vendor node_modules instead of pnpm store (#1346)
due to issues and redundancies in vendoring postinstall side-effects, such as compiled bindings for libvirt, we reverted to vendoring `node_modules`, installed via `npm` instead of a global pnpm store generated by `pnpm`.

This should resolve runtime issues with e.g. the libvirt bindings because `node_modules` will contain the correct "side-effects."

## Summary by CodeRabbit

- **New Features**
- Introduced a command to remove stale archive files during the cleanup
process.
  - Added functionality to archive the `node_modules` directory.
- Enhanced dependency resolution with new overrides for specific
packages.

- **Chores**
- Updated dependency settings by replacing one key dependency with an
alternative and removing two unused ones, ensuring optimal deployment.
- Enhanced the installation process to operate strictly in offline mode.
- Updated artifact naming conventions for clarity and consistency in
workflows.
- Modified volume mappings in the Docker Compose configuration to
reflect new artifact names.
- Improved error handling in the GitHub Actions workflow by adding
checks for required files.
- Updated references in the build process to use a vendor store instead
of the PNPM store.
- Removed the management of PNPM store archives from the build process.
2025-04-09 15:17:50 -04:00
Eli Bosley
36a7a28ed5 chore: move node to /usr/libexec (#1345)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
  - Updated the Node.js runtime configuration for consistent execution.

- **Refactor**
- Centralized the Node.js binary path into a configurable parameter for
improved maintainability.

- **New Features**
- Introduced a new entity declaration for `NODE_DIR` to streamline
Node.js binary management in the plugin.
- Updated the Node.js interpreter path in the application configuration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1209701840918649
2025-04-09 15:10:05 -04:00
Michael Datelle
03be042410 test: create tests for stores (#1338)
This gets the original 3 component tests refactored to better follow the
Vue Testing Library philosophy and test behavior. This also adds a new
test file for the server store. Additional batches of tests will be
added in proceeding PR's.


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

- **Chores**  
- Streamlined internal code organization and improved maintenance
through refined import structures and cleanup of redundant files.

- **Tests**  
- Expanded and restructured automated tests across core components,
including new test files for `Auth`, `DownloadApiLogs`, and `KeyActions`
to ensure robust behavior.
- Enhanced test configuration and mock implementations for a more
reliable, consistent testing environment.
- Introduced best practices for testing Vue components and Pinia stores.

These updates optimize performance and stability behind the scenes
without altering the end-user experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-04-09 11:57:11 -04:00
Eli Bosley
cd323acd49 fix: remove some unused fields from the report object (#1342)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced configuration settings by adding secure placeholders for
sensitive data.

- **Chores**
- Refreshed internal timestamp records to reflect current download
times.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-08 16:12:44 -04:00
Eli Bosley
457d338150 fix: PR build issue 2025-04-08 15:47:37 -04:00
Eli Bosley
04caaf3b25 chore: move disks into the service (#1336)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced disk status details with a new color attribute offering
richer state information.
  - Expanded filesystem support with additional ext4 and ntfs options.
- Streamlined query responses by removing outdated Docker container
queries.
- Introduced a new `DisksModule` for better organization of disk-related
functionalities.
- **Bug Fixes**
  - Improved clarity of disk status descriptions.
- **Refactor**
- Improved structure and organization of disk-related functionalities,
including the introduction of a dedicated service for disk management.
- **Tests**
- Strengthened test coverage to ensure reliable disk information
retrieval and status reporting.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-08 15:41:22 -04:00
Eli Bosley
4b5743906a fix: hide reboot notice for patch releases (#1341)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-08 12:01:49 -07:00
Pujit Mehrotra
f65788aa94 refactor(api): use nestjs modules as the api plugin interface (#1321)
Changes plugin interface to expect Nest modules instead of a custom
plain JS object.

## Summary by CodeRabbit

- **New Features**
- Introduced updated health check plugins, including a new connect
plugin exposing a GraphQL health query and configuration logging.

- **Refactor**
- Streamlined the overall plugin registration and management across API,
CLI, and GraphQL modules for improved clarity and logging.
- Simplified the `CliModule` and `PluginService` to reduce complexity
and enhance maintainability.

- **Chores**
- Updated dependency configurations and build scripts while introducing
new TypeScript setups to enhance maintainability and consistency.
- Added new `package.json` and `tsconfig.json` files for the
`unraid-api-plugin-connect` and `unraid-api-plugin-health` projects.
- Modified GitHub Actions workflow to update tag format for pull
requests.
2025-04-08 10:08:32 -04:00
Eli Bosley
8a5b23856c fix: container names always null (#1335) 2025-04-08 08:56:11 -04:00
Eli Bosley
23c60dad0c chore: move to independent docker events (#1334)
- update dockerode to v4
- remove docker-event-emitter dependency

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

- **New Features**
- Introduced a real-time Docker event monitoring service that improves
container status updates.
- Consolidated Docker functionalities within a dedicated module for
enhanced management.

- **Refactor**
- Streamlined Docker event handling to boost stability and simplify
operations.
- Updated the structure of the resolvers module to encapsulate
Docker-related functionality.
  - Made certain methods public for easier access and interaction.

- **Chores**
- Upgraded Docker-related dependencies and removed deprecated packages
to improve performance.
  - Removed unused imports to clean up the codebase.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-07 10:47:13 -04:00
Eli Bosley
1bbe7d27b0 fix: move docker mutations to the mutations resolver (#1333)
Thanks to @S3ppo on Discord for flagging this issue


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

- **New Features**
- Introduced a dedicated mutation field that centralizes Docker
operations via the API.
- Added a new method for Docker-related mutations in the mutation
resolver.

- **Refactor**
- Streamlined Docker container controls by renaming the start/stop
operations for improved clarity.
	- Removed legacy fields to provide a more unified mutation interface.

- **Bug Fixes**
- Enhanced error handling during container start/stop operations to
ensure consistent behavior.

- **Tests**
- Updated test cases to reflect the new naming and behavior, ensuring
reliable Docker operation validations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-04 12:43:34 -04:00
Eli Bosley
bc3ca92fb0 feat: basic vm controls (#1293)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced new GraphQL operations for comprehensive virtual machine
control (start, stop, pause, resume, force stop, reboot, reset).
- Enhanced API authentication and authorization with standardized roles
and permission checks.
- Added a configuration template that streamlines server setup and
improves remote access and parity management.
- New functionality for managing parity checks within the array service,
including state validation and conditional command execution.
- New types and mutations for array and virtual machine management in
the GraphQL schema.
- Added a new directive for authorization control within the GraphQL
schema.
- Introduced a new utility for generating authentication enum type
definitions.
- Added a new configuration file template for server access and
authentication details.
- Updated the configuration file version to reflect the latest changes.

- **Improvements**
  - Upgraded core dependencies for better stability and performance.
- Refined notification handling and error feedback for a more responsive
user experience.
- Improved error handling and logging for API key management and
validation processes.
  - Updated configuration versioning for enhanced compatibility.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-04 09:52:03 -04:00
Eli Bosley
c4fdff8149 feat: add basic docker network listing (#1317)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced Docker management now supports flexible client integration
for improved container operations.
  - Added a new method for retrieving Docker networks.

- **Bug Fixes**
- Removed outdated Docker network retrieval functionality to streamline
operations.
- Eliminated Docker event monitoring, ensuring a more stable application
initialization process.

- **Refactor**
- Streamlined the GraphQL API by removing legacy Docker container
queries and subscriptions.
- Removed Docker-related state management from the Redux store for
better clarity and performance.
- Removed deprecated Docker monitoring functionalities to simplify the
codebase.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-04 09:09:58 -04:00
Michael Datelle
0e008aaf1e test: setup initial test, config and testing libraries (#1309)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced comprehensive testing utilities for Vue components
utilizing the composition API.
- Enhanced testing coverage for the `DownloadApiLogs` and `KeyActions`
components, ensuring robust functionality and user interaction
validation.
- Added mock implementations for various libraries and components to
facilitate isolated unit testing.
- Improved flexibility in the `DummyServerSwitcher` component's input
handling.
- Added a new test setup file to configure the testing environment for
Vue applications.
- Added new test files for `AuthComponent` and `KeyActions` with
comprehensive test cases.
- Introduced a new mock implementation for UI components to streamline
testing.
- Added a new mock implementation for the `useRequest` composable to
prevent hanging issues during tests.
- Added a new mock implementation for the server store used by the Auth
component.

- **Bug Fixes**
- Improved sanitization process to block inline styles for a safer and
more consistent display.

- **Documentation**
- Added README documentation for Vue Component Testing Utilities,
detailing usage and examples.
  - Updated ESLint configuration to ignore coverage directory files.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2025-04-03 15:50:49 -04:00
Eli Bosley
da8dac3940 chore: add linter to unraid ui and simplify tsconfigs (#1308)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Introduced a linting step in the build process to enhance code
quality.
- Updated configuration settings with a version upgrade and adjustments
to network port specifications.
- Refined package and TypeScript configurations for improved module
resolution and maintainability.

- **Style**
- Standardized code formatting with consistent quotation usage,
semicolon additions, and reorganized import paths for clarity.
- Enhanced readability of SVG markup and component templates through
formatting adjustments.
- Simplified property definitions and improved code organization within
components for better readability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-03 15:31:11 -04:00
Eli Bosley
187a6ec670 chore: fix html escaper call 2025-04-03 12:45:58 -04:00
Eli Bosley
819ba0bd71 chore: build packages in CI 2025-04-03 12:41:30 -04:00
Eli Bosley
1217d0b100 chore: fix shell interpretation of release notes 2025-04-03 12:18:33 -04:00
Eli Bosley
15dc458751 chore: export release notes to path and then parse them 2025-04-03 12:16:47 -04:00
Eli Bosley
a151dc1f73 chore: don't upload node_modules to release folder 2025-04-03 12:11:39 -04:00
github-actions[bot]
006fe1e762 chore(main): release 4.6.6 (#1328)
🤖 I have created a release *beep* *boop*
---


## [4.6.6](https://github.com/unraid/api/compare/v4.6.5...v4.6.6)
(2025-04-03)


### Bug Fixes

* issue with invalid builds for prod and tagging
([7e89cd2](7e89cd2a3e))

---
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-04-03 11:59:59 -04:00
Eli Bosley
7e89cd2a3e fix: issue with invalid builds for prod and tagging 2025-04-03 11:59:25 -04:00
github-actions[bot]
38a9e36fcd chore(main): release 4.6.5 (#1327)
🤖 I have created a release *beep* *boop*
---


## [4.6.5](https://github.com/unraid/api/compare/v4.6.4...v4.6.5)
(2025-04-03)


### Bug Fixes

* unique artifact ID
([0f682b5](0f682b5f23))

---
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-04-03 11:52:33 -04:00
Eli Bosley
d701151729 chore: release tag corrected 2025-04-03 11:51:58 -04:00
Eli Bosley
0f682b5f23 fix: unique artifact ID 2025-04-03 11:50:43 -04:00
github-actions[bot]
3fff76d155 chore(main): release 4.6.4 (#1325)
🤖 I have created a release *beep* *boop*
---


## [4.6.4](https://github.com/unraid/api/compare/v4.6.3...v4.6.4)
(2025-04-03)


### Bug Fixes

* cleanup build pipeline
([#1326](https://github.com/unraid/api/issues/1326))
([60f16bd](60f16bde41))
* remove unneeded workflow secret pass
([4bb00dd](4bb00dd981))

---
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-04-03 11:46:05 -04:00
Eli Bosley
d8d7075ed8 chore: staging asset wrong directory upload 2025-04-03 11:41:02 -04:00
Eli Bosley
e27e38645f chore: release_created is a string 2025-04-03 11:34:57 -04:00
Eli Bosley
4bb00dd981 fix: remove unneeded workflow secret pass 2025-04-03 11:28:33 -04:00
Eli Bosley
60f16bde41 fix: cleanup build pipeline (#1326)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Added an enhanced, automated process to build and deploy the plugin
across both staging and production environments.
- Releases are now published immediately instead of being created as
drafts, ensuring quicker access to updates.

- **Chores**
- Streamlined and consolidated deployment workflows for improved
consistency and reliability throughout the release process.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-03 11:25:15 -04:00
github-actions[bot]
cacb1c1d3d chore(main): release 4.6.3 (#1324)
🤖 I have created a release *beep* *boop*
---


## [4.6.3](https://github.com/unraid/api/compare/v4.6.2...v4.6.3)
(2025-04-03)


### Bug Fixes

* copy dynamix.unraid.net
([662d5f6](662d5f64c9))
* make backup of txz
([37e72f9](37e72f9729))
* ordering in build script
([a562f77](a562f77163))

---
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-04-03 10:41:07 -04:00
Eli Bosley
a562f77163 fix: ordering in build script 2025-04-03 10:33:11 -04:00
Eli Bosley
37e72f9729 fix: make backup of txz 2025-04-03 10:32:33 -04:00
Eli Bosley
662d5f64c9 fix: copy dynamix.unraid.net 2025-04-03 10:32:06 -04:00
github-actions[bot]
79397eecff chore(main): release 4.6.2 (#1323)
🤖 I have created a release *beep* *boop*
---


## [4.6.2](https://github.com/unraid/api/compare/v4.6.1...v4.6.2)
(2025-04-03)


### Bug Fixes

* build issue
([99d8b31](99d8b31fa8))

---
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-04-03 10:23:43 -04:00
Eli Bosley
99d8b31fa8 fix: build issue 2025-04-03 10:20:55 -04:00
github-actions[bot]
d0827df60e chore(main): release 4.6.1 (#1322)
🤖 I have created a release *beep* *boop*
---


## [4.6.1](https://github.com/unraid/api/compare/v4.6.0...v4.6.1)
(2025-04-03)


### Bug Fixes

* don't mv deploy on prod release
([9568aab](9568aabd17))

---
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-04-03 10:10:20 -04:00
Eli Bosley
9568aabd17 fix: don't mv deploy on prod release 2025-04-03 10:07:26 -04:00
github-actions[bot]
5a61aec841 chore(main): release 4.6.0 (#1311)
🤖 I have created a release *beep* *boop*
---


## [4.6.0](https://github.com/unraid/api/compare/v4.5.0...v4.6.0)
(2025-04-03)


### Features

* add gui settings field for sso users
([#1310](https://github.com/unraid/api/issues/1310))
([5ba3fa6](5ba3fa67a2))


### Bug Fixes

* build
([ed67af9](ed67af9568))
* **plugin:** flaky masking of benign warning during pnpm install
([#1313](https://github.com/unraid/api/issues/1313))
([1f10b63](1f10b63c8b))

---
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-04-03 09:59:38 -04:00
Eli Bosley
ed67af9568 fix: build 2025-04-03 09:58:41 -04:00
Pujit Mehrotra
5ba3fa67a2 feat: add gui settings field for sso users (#1310)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Bulk SSO account management is now supported, allowing users to update
multiple SSO account IDs at once.
- Connect settings now include SSO account identifiers for streamlined
configuration.
- Expanded array management functionality introduces advanced operations
for managing disk arrays.
- New fields for SSO user IDs have been added to various settings and
queries.

- **Style & Documentation**
- Improved formatting and support for rich HTML in form descriptions
enhance clarity and presentation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2025-04-03 09:50:12 -04:00
Pujit Mehrotra
1f10b63c8b fix(plugin): flaky masking of benign warning during pnpm install (#1313)
The masking logic has a different effect in TTY and non-TTY environments
bc pnpm will change the `install` reporter. Now, we:

- set `--reporter=append-only` for consistency
- replace the grep loop with `sed` to mask and redirect the benign
"Ignored build scripts" warning

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

## Summary by CodeRabbit

- **Refactor**
- Streamlined the background logging during dependency installations to
improve overall efficiency and reduce complexity. This update enhances
maintainability without any visible changes to the user experience.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-03 09:20:55 -04:00
Zack Spear
df168224ea refactor: webgui sync script to copy uui build (#1318)
- enhances `pnpm sync-webgui-repo` to include Unraid UI build + sync
options
- changed the dev intended ThemeSwitcher to use local / session storage

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

- **New Features**
- The theme switcher now respects your saved preferences, ensuring a
more personalized interface.
- The component build and synchronization process has been enhanced with
new options for UI components and clearer feedback during operations.
- New computed properties added for better state management in account
and purchase functionalities.

- **Bug Fixes**
- Improved error handling and logging during the component build
process.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-03 09:17:21 -04:00
Pujit Mehrotra
3911be38bc chore: keep preview plg when merging release-please pr's (#1312)
prevents staging plugin from breaking due to being populated with prod entities

## Summary by CodeRabbit

- **Chores**
- Enhanced the deployment process to clearly distinguish between
production and preview releases.
- Added verification steps to ensure all required production assets are
present, improving the overall reliability of plugin updates.
2025-04-02 14:40:18 -04:00
github-actions[bot]
15153855f7 chore(main): release 4.5.0 (#1279)
🤖 I have created a release *beep* *boop*
---


## [4.5.0](https://github.com/unraid/api/compare/v4.4.1...v4.5.0)
(2025-04-02)


### Features

* add webgui theme switcher component
([#1304](https://github.com/unraid/api/issues/1304))
([e2d00dc](e2d00dc346))
* api plugin system & offline versioned dependency vendoring
([#1252](https://github.com/unraid/api/issues/1252))
([9f492bf](9f492bf217))
* **api:** add `unraid-api --delete` command
([#1289](https://github.com/unraid/api/issues/1289))
([2f09445](2f09445f2e))
* basic array controls
([#1291](https://github.com/unraid/api/issues/1291))
([61fe696](61fe6966ca))
* basic docker controls
([#1292](https://github.com/unraid/api/issues/1292))
([12eddf8](12eddf894e))
* copy to webgui repo script docs + wc build options
([#1285](https://github.com/unraid/api/issues/1285))
([e54f189](e54f189630))


### Bug Fixes

* additional url fixes
([4b2763c](4b2763c7f9))
* **api:** redirect benign pnpm postinstall warning to log file
([#1290](https://github.com/unraid/api/issues/1290))
([7fb7849](7fb78494cb))
* **deps:** update dependency chalk to v5
([#1296](https://github.com/unraid/api/issues/1296))
([6bed638](6bed63805f))
* **deps:** update dependency diff to v7
([#1297](https://github.com/unraid/api/issues/1297))
([3c6683c](3c6683c814))
* disable all config watchers
([#1306](https://github.com/unraid/api/issues/1306))
([5c1b435](5c1b4352cf))
* extract callbacks to library
([#1280](https://github.com/unraid/api/issues/1280))
([2266139](2266139742))
* OEM plugin issues ([#1288](https://github.com/unraid/api/issues/1288))
([d5a3d0d](d5a3d0dfac))
* replace files lost during pruning
([d0d2ff6](d0d2ff65ed))

---
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-04-02 13:24:42 -04:00
Eli Bosley
65b7747c0e chore: remove flaky test 2025-04-02 13:16:17 -04:00
Eli Bosley
5c1b4352cf fix: disable all config watchers (#1306)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Updated CLI operations now use sequential stop and start actions for
service reloads and SSO user modifications, ensuring a more controlled
update process.
- Introduced a new `<uui-toaster>` component for notifications,
replacing the previous jGrowl notification system and enhancing user
experience.
- Added functionality for managing live updates based on window focus,
improving responsiveness during user interaction.

- **Refactor**
- Streamlined configuration updates by removing automatic monitoring,
resulting in a simpler update workflow.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-02 13:09:47 -04:00
Eli Bosley
9004313ff8 chore: lint to fix build 2025-04-02 12:23:20 -04:00
Eli Bosley
7a421ce4ec chore: fix dev console and allowed-headers 2025-04-02 11:28:21 -04:00
renovate[bot]
3c6683c814 fix(deps): update dependency diff to v7 (#1297)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [diff](https://redirect.github.com/kpdecker/jsdiff) | [`^5.1.0` ->
`^7.0.0`](https://renovatebot.com/diffs/npm/diff/5.2.0/7.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/diff/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/diff/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/diff/5.2.0/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/diff/5.2.0/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>kpdecker/jsdiff (diff)</summary>

###
[`v7.0.0`](https://redirect.github.com/kpdecker/jsdiff/blob/HEAD/release-notes.md#700)

[Compare
Source](https://redirect.github.com/kpdecker/jsdiff/compare/v6.0.0...7.0.0)

Just a single (breaking) bugfix, undoing a behaviour change introduced
accidentally in 6.0.0:

- [#&#8203;554](https://redirect.github.com/kpdecker/jsdiff/pull/554)
**`diffWords` treats numbers and underscores as word characters again.**
This behaviour was broken in v6.0.0.

###
[`v6.0.0`](https://redirect.github.com/kpdecker/jsdiff/blob/HEAD/release-notes.md#600)

[Compare
Source](https://redirect.github.com/kpdecker/jsdiff/compare/v5.2.0...v6.0.0)

This is a release containing many, *many* breaking changes. The
objective of this release was to carry out a mass fix, in one go, of all
the open bugs and design problems that required breaking changes to fix.
A substantial, but exhaustive, changelog is below.


[Commits](https://redirect.github.com/kpdecker/jsdiff/compare/v5.2.0...v6.0.0)

- [#&#8203;497](https://redirect.github.com/kpdecker/jsdiff/pull/497)
**`diffWords` behavior has been radically changed.** Previously, even
with `ignoreWhitespace: true`, runs of whitespace were tokens, which led
to unhelpful and unintuitive diffing behavior in typical texts.
Specifically, even when two texts contained overlapping passages,
`diffWords` would sometimes choose to delete all the words from the old
text and insert them anew in their new positions in order to avoid
having to delete or insert whitespace tokens. Whitespace sequences are
no longer tokens as of this release, which affects both the generated
diffs and the `count`s.

    Runs of whitespace are still tokens in `diffWordsWithSpace`.

As part of the changes to `diffWords`, **a new `.postProcess` method has
been added on the base `Diff` type**, which can be overridden in custom
`Diff` implementations.

**`diffLines` with `ignoreWhitespace: true` will no longer ignore the
insertion or deletion of entire extra lines of whitespace at the end of
the text**. Previously, these would not show up as insertions or
deletions, as a side effect of a hack in the base diffing algorithm
meant to help ignore whitespace in `diffWords`. More generally, **the
undocumented special handling in the core algorithm for ignored
terminals has been removed entirely.** (This special case behavior used
to rewrite the final two change objects in a scenario where the final
change object was an addition or deletion and its `value` was treated as
equal to the empty string when compared using the diff object's
`.equals` method.)

- [#&#8203;500](https://redirect.github.com/kpdecker/jsdiff/pull/500)
**`diffChars` now diffs Unicode code points** instead of UTF-16 code
units.

- [#&#8203;508](https://redirect.github.com/kpdecker/jsdiff/pull/508)
**`parsePatch` now always runs in what was previously "strict" mode; the
undocumented `strict` option has been removed.** Previously, by default,
`parsePatch` (and other patch functions that use it under the hood to
parse patches) would accept a patch where the line counts in the headers
were inconsistent with the actual patch content - e.g. where a hunk
started with the header `@@&#8203; -1,3 +1,6 @&#8203;@&#8203;`,
indicating that the content below spanned 3 lines in the old file and 6
lines in the new file, but then the actual content below the header
consisted of some different number of lines, say 10 lines of context, 5
deletions, and 1 insertion. Actually trying to work with these patches
using `applyPatch` or `merge`, however, would produce incorrect results
instead of just ignoring the incorrect headers, making this "feature"
more of a trap than something actually useful. It's been ripped out, and
now we are always "strict" and will reject patches where the line counts
in the headers aren't consistent with the actual patch content.

- [#&#8203;435](https://redirect.github.com/kpdecker/jsdiff/pull/435)
**Fix `parsePatch` handling of control characters.** `parsePatch` used
to interpret various unusual control characters - namely vertical tabs,
form feeds, lone carriage returns without a line feed, and EBCDIC NELs -
as line breaks when parsing a patch file. This was inconsistent with the
behavior of both JsDiff's own `diffLines` method and also the Unix
`diff` and `patch` utils, which all simply treat those control
characters as ordinary characters. The result of this discrepancy was
that some well-formed patches - produced either by `diff` or by JsDiff
itself and handled properly by the `patch` util - would be wrongly
parsed by `parsePatch`, with the effect that it would disregard the
remainder of a hunk after encountering one of these control characters.

- [#&#8203;439](https://redirect.github.com/kpdecker/jsdiff/pull/439)
**Prefer diffs that order deletions before insertions.** When faced with
a choice between two diffs with an equal total edit distance, the Myers
diff algorithm generally prefers one that does deletions before
insertions rather than insertions before deletions. For instance, when
diffing `abcd` against `acbd`, it will prefer a diff that says to delete
the `b` and then insert a new `b` after the `c`, over a diff that says
to insert a `c` before the `b` and then delete the existing `c`. JsDiff
deviated from the published Myers algorithm in a way that led to it
having the opposite preference in many cases, including that example.
This is now fixed, meaning diffs output by JsDiff will more accurately
reflect what the published Myers diff algorithm would output.

- [#&#8203;455](https://redirect.github.com/kpdecker/jsdiff/pull/455)
**The `added` and `removed` properties of change objects are now
guaranteed to be set to a boolean value.** (Previously, they would be
set to `undefined` or omitted entirely instead of setting them to
false.)

- [#&#8203;464](https://redirect.github.com/kpdecker/jsdiff/pull/464)
Specifying `{maxEditLength: 0}` now sets a max edit length of 0 instead
of no maximum.

- [#&#8203;460](https://redirect.github.com/kpdecker/jsdiff/pull/460)
**Added `oneChangePerToken` option.**

- [#&#8203;467](https://redirect.github.com/kpdecker/jsdiff/pull/467)
**Consistent ordering of arguments to `comparator(left, right)`.**
Values from the old array will now consistently be passed as the first
argument (`left`) and values from the new array as the second argument
(`right`). Previously this was almost (but not quite) always the other
way round.

- [#&#8203;480](https://redirect.github.com/kpdecker/jsdiff/pull/480)
**Passing `maxEditLength` to `createPatch` & `createTwoFilesPatch` now
works properly** (i.e. returns undefined if the max edit distance is
exceeded; previous behavior was to crash with a `TypeError` if the edit
distance was exceeded).

- [#&#8203;486](https://redirect.github.com/kpdecker/jsdiff/pull/486)
**The `ignoreWhitespace` option of `diffLines` behaves more sensibly
now.** `value`s in returned change objects now include leading/trailing
whitespace even when `ignoreWhitespace` is used, just like how with
`ignoreCase` the `value`s still reflect the case of one of the original
texts instead of being all-lowercase. `ignoreWhitespace` is also now
compatible with `newlineIsToken`. Finally, **`diffTrimmedLines` is
deprecated** (and removed from the docs) in favour of using `diffLines`
with `ignoreWhitespace: true`; the two are, and always have been,
equivalent.

- [#&#8203;490](https://redirect.github.com/kpdecker/jsdiff/pull/490)
**When calling diffing functions in async mode by passing a `callback`
option, the diff result will now be passed as the *first* argument to
the callback instead of the second.** (Previously, the first argument
was never used at all and would always have value `undefined`.)

- [#&#8203;489](redirect.github.com/kpdecker/jsdiff/pull/489)
**`this.options` no longer exists on `Diff` objects.** Instead,
`options` is now passed as an argument to methods that rely on options,
like `equals(left, right, options)`. This fixes a race condition in
async mode, where diffing behaviour could be changed mid-execution if a
concurrent usage of the same `Diff` instances overwrote its `options`.

- [#&#8203;518](https://redirect.github.com/kpdecker/jsdiff/pull/518)
**`linedelimiters` no longer exists** on patch objects; instead, when a
patch with Windows-style CRLF line endings is parsed, **the lines in
`lines` will end with `\r`**. There is now a **new
`autoConvertLineEndings` option, on by default**, which makes it so that
when a patch with Windows-style line endings is applied to a source file
with Unix style line endings, the patch gets autoconverted to use
Unix-style line endings, and when a patch with Unix-style line endings
is applied to a source file with Windows-style line endings, it gets
autoconverted to use Windows-style line endings.

- [#&#8203;521](https://redirect.github.com/kpdecker/jsdiff/pull/521)
**the `callback` option is now supported by `structuredPatch`,
`createPatch`, and `createTwoFilesPatch`**

- [#&#8203;529](https://redirect.github.com/kpdecker/jsdiff/pull/529)
**`parsePatch` can now parse patches where lines starting with `--` or
`++` are deleted/inserted**; previously, there were edge cases where the
parser would choke on valid patches or give wrong results.

- [#&#8203;530](https://redirect.github.com/kpdecker/jsdiff/pull/530)
**Added `ignoreNewlineAtEof` option to `diffLines`**

- [#&#8203;533](https://redirect.github.com/kpdecker/jsdiff/pull/533)
**`applyPatch` uses an entirely new algorithm for fuzzy matching.**
Differences between the old and new algorithm are as follows:
- The `fuzzFactor` now indicates the maximum [*Levenshtein*
distance](https://en.wikipedia.org/wiki/Levenshtein_distance) that there
can be between the context shown in a hunk and the actual file content
at a location where we try to apply the hunk. (Previously, it
represented a maximum [*Hamming*
distance](https://en.wikipedia.org/wiki/Hamming_distance), meaning that
a single insertion or deletion in the source file could stop a hunk from
applying even with a high `fuzzFactor`.)
- A hunk containing a deletion can now only be applied in a context
where the line to be deleted actually appears verbatim. (Previously, as
long as enough context lines in the hunk matched, `applyPatch` would
apply the hunk anyway and delete a completely different line.)
- The context line immediately before and immediately after an insertion
must match exactly between the hunk and the file for a hunk to apply.
(Previously this was not required.)

- [#&#8203;535](https://redirect.github.com/kpdecker/jsdiff/pull/535)
**A bug in patch generation functions is now fixed** that would
sometimes previously cause `\ No newline at end of file` to appear in
the wrong place in the generated patch, resulting in the patch being
invalid. **These invalid patches can also no longer be applied
successfully with `applyPatch`.** (It was already the case that tools
other than jsdiff, like GNU `patch`, would consider them malformed and
refuse to apply them; versions of jsdiff with this fix now do the same
thing if you ask them to apply a malformed patch emitted by jsdiff v5.)

- [#&#8203;535](https://redirect.github.com/kpdecker/jsdiff/pull/535)
**Passing `newlineIsToken: true` to *patch*-generation functions is no
longer allowed.** (Passing it to `diffLines` is still supported - it's
only functions like `createPatch` where passing `newlineIsToken` is now
an error.) Allowing it to be passed never really made sense, since in
cases where the option had any effect on the output at all, the effect
tended to be causing a garbled patch to be created that couldn't
actually be applied to the source file.

- [#&#8203;539](https://redirect.github.com/kpdecker/jsdiff/pull/539)
**`diffWords` now takes an optional `intlSegmenter` option** which
should be an `Intl.Segmenter` with word-level granularity. This provides
better tokenization of text into words than the default behaviour, even
for English but especially for some other languages for which the
default behaviour is poor.

</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.

---

- [x] <!-- 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-02 09:42:46 -04:00
renovate[bot]
6bed63805f fix(deps): update dependency chalk to v5 (#1296)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [chalk](https://redirect.github.com/chalk/chalk) | [`^4.1.2` ->
`^5.0.0`](https://renovatebot.com/diffs/npm/chalk/4.1.2/5.4.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/chalk/5.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/chalk/5.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/chalk/4.1.2/5.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/chalk/4.1.2/5.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>chalk/chalk (chalk)</summary>

###
[`v5.4.1`](https://redirect.github.com/chalk/chalk/releases/tag/v5.4.1)

[Compare
Source](https://redirect.github.com/chalk/chalk/compare/v5.4.0...v5.4.1)

- Fix `navigator` not defined `ReferenceError`
([#&#8203;642](https://redirect.github.com/chalk/chalk/issues/642))
[`4ebb62d`](https://redirect.github.com/chalk/chalk/commit/4ebb62d)

###
[`v5.4.0`](https://redirect.github.com/chalk/chalk/releases/tag/v5.4.0)

[Compare
Source](https://redirect.github.com/chalk/chalk/compare/v5.3.0...v5.4.0)

- Update `CIRCLECI` environments to return level 3 color support
[`f838120`](https://redirect.github.com/chalk/chalk/commit/f838120)

###
[`v5.3.0`](https://redirect.github.com/chalk/chalk/releases/tag/v5.3.0)

[Compare
Source](https://redirect.github.com/chalk/chalk/compare/v5.2.0...v5.3.0)

- Add `sideEffects` field to package.json
[`5aafc0a`](https://redirect.github.com/chalk/chalk/commit/5aafc0a)
- Add support for Gitea Actions
([#&#8203;603](https://redirect.github.com/chalk/chalk/issues/603))
[`29b8569`](https://redirect.github.com/chalk/chalk/commit/29b8569)

###
[`v5.2.0`](https://redirect.github.com/chalk/chalk/releases/tag/v5.2.0)

[Compare
Source](https://redirect.github.com/chalk/chalk/compare/v5.1.2...v5.2.0)

- Improve Deno compatibility
([#&#8203;579](https://redirect.github.com/chalk/chalk/issues/579))
[`7443e9f`](https://redirect.github.com/chalk/chalk/commit/7443e9f)
- Detect true-color support for GitHub Actions
([#&#8203;579](https://redirect.github.com/chalk/chalk/issues/579))
[`7443e9f`](https://redirect.github.com/chalk/chalk/commit/7443e9f)
- Detect true-color support for Kitty terminal
([#&#8203;579](https://redirect.github.com/chalk/chalk/issues/579))
[`7443e9f`](https://redirect.github.com/chalk/chalk/commit/7443e9f)
- Fix test for Azure DevOps environment
([#&#8203;579](https://redirect.github.com/chalk/chalk/issues/579))
[`7443e9f`](https://redirect.github.com/chalk/chalk/commit/7443e9f)

###
[`v5.1.2`](https://redirect.github.com/chalk/chalk/releases/tag/v5.1.2)

[Compare
Source](https://redirect.github.com/chalk/chalk/compare/v5.1.1...v5.1.2)

- Fix exported styles names
([#&#8203;569](https://redirect.github.com/chalk/chalk/issues/569))
[`a34bcf6`](https://redirect.github.com/chalk/chalk/commit/a34bcf6)

###
[`v5.1.1`](https://redirect.github.com/chalk/chalk/releases/tag/v5.1.1)

[Compare
Source](https://redirect.github.com/chalk/chalk/compare/v5.1.0...v5.1.1)

- Improved the names of exports introduced in 5.1.0
([#&#8203;567](https://redirect.github.com/chalk/chalk/issues/567))
[`6e0df05`](https://redirect.github.com/chalk/chalk/commit/6e0df05)
    -   We of course preserved the old names.

###
[`v5.1.0`](https://redirect.github.com/chalk/chalk/releases/tag/v5.1.0)

[Compare
Source](https://redirect.github.com/chalk/chalk/compare/v5.0.1...v5.1.0)

- Expose style names
([#&#8203;566](https://redirect.github.com/chalk/chalk/issues/566))
[`d7d7571`](https://redirect.github.com/chalk/chalk/commit/d7d7571)

###
[`v5.0.1`](https://redirect.github.com/chalk/chalk/releases/tag/v5.0.1)

[Compare
Source](https://redirect.github.com/chalk/chalk/compare/v5.0.0...v5.0.1)

- Add `main` field to package.json for backwards compatibility with some
developer tools
[`85f7e96`](https://redirect.github.com/chalk/chalk/commit/85f7e96)

###
[`v5.0.0`](https://redirect.github.com/chalk/chalk/releases/tag/v5.0.0)

[Compare
Source](https://redirect.github.com/chalk/chalk/compare/v4.1.2...v5.0.0)

##### Breaking

- **This package is now pure ESM. Please [read
this](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).**
- If you use TypeScript, you need to use TypeScript 4.7 or later.
[Why.](https://redirect.github.com/microsoft/TypeScript/issues/46452)
- If you use a bundler, make sure it supports ESM and that you have
correctly configured it for ESM.
- The Chalk issue tracker is not a support channel for your favorite
build/bundler tool.
- It's totally fine to stay on Chalk v4. It's been stable for years.
- Require Node.js 12.20
[`fa16f4e`](https://redirect.github.com/chalk/chalk/commit/fa16f4e)
- Move some properties off the default export to individual named
exports:
    -   `chalk.Instance` → `Chalk`
    -   `chalk.supportsColor` → `supportsColor`
    -   `chalk.stderr` → `chalkStderr`
    -   `chalk.stderr.supportsColor` → `supportsColorStderr`
- Remove `.keyword()`, `.hsl()`, `.hsv()`, `.hwb()`, and `.ansi()`
coloring methods
([#&#8203;433](https://redirect.github.com/chalk/chalk/issues/433))
[`4cf2e40`](https://redirect.github.com/chalk/chalk/commit/4cf2e40)
- These were not commonly used and added a lot of bloat to Chalk. You
can achieve the same by using the [`color-convert`
package](https://redirect.github.com/Qix-/color-convert).
- The tagged template literal support moved into a separate package:
[`chalk-template`](https://redirect.github.com/chalk/chalk-template)
([#&#8203;524](https://redirect.github.com/chalk/chalk/issues/524))
[`c987c61`](https://redirect.github.com/chalk/chalk/commit/c987c61)

```diff
-import chalk from 'chalk';
+import chalkTemplate from 'chalk-template';

-chalk`2 + 3 = {bold ${2 + 3}}`;
+chalkTemplate`2 + 3 = {bold ${2 + 3}}`;
```

##### Improvements

- Bundle dependencies
[`04fdbd6`](https://redirect.github.com/chalk/chalk/commit/04fdbd6)
    -   This means Chalk no longer has any dependencies 🎉
- [The install size is less than half of
v4.](https://packagephobia.com/result?p=chalk)
- Add `overline` style
([#&#8203;433](https://redirect.github.com/chalk/chalk/issues/433))
[`4cf2e40`](https://redirect.github.com/chalk/chalk/commit/4cf2e40)
- Preserve function prototype methods
([#&#8203;434](https://redirect.github.com/chalk/chalk/issues/434))
[`0fba91b`](https://redirect.github.com/chalk/chalk/commit/0fba91b)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-02 09:40:22 -04:00
renovate[bot]
f7f40d7906 fix(deps): update all non-major dependencies (#1278)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@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.4.4` ->
`4.5.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-resolvers/4.4.4/4.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript-resolvers/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2ftypescript-resolvers/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2ftypescript-resolvers/4.4.4/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript-resolvers/4.4.4/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [lucide-vue-next](https://lucide.dev)
([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next))
| [`^0.483.0` ->
`^0.487.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.483.0/0.487.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-vue-next/0.487.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-vue-next/0.487.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-vue-next/0.483.0/0.487.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-vue-next/0.483.0/0.487.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.6.5` ->
`10.7.1`](https://renovatebot.com/diffs/npm/pnpm/10.6.5/10.7.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/10.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/10.6.5/10.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.6.5/10.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[vuetify-nuxt-module](https://redirect.github.com/vuetifyjs/nuxt-module)
| [`0.18.4` ->
`0.18.5`](https://renovatebot.com/diffs/npm/vuetify-nuxt-module/0.18.4/0.18.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vuetify-nuxt-module/0.18.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vuetify-nuxt-module/0.18.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vuetify-nuxt-module/0.18.4/0.18.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vuetify-nuxt-module/0.18.4/0.18.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

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

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

##### Minor Changes

-
[#&#8203;10315](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10315)
[`f6909d1`](f6909d1797)
Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! -
Implement semanticNonNull custom directive

##### Patch Changes

- Updated dependencies
\[[`f6909d1`](f6909d1797)]:
-
[@&#8203;graphql-codegen/visitor-plugin-common](https://redirect.github.com/graphql-codegen/visitor-plugin-common)[@&#8203;5](https://redirect.github.com/5).8.0
-
[@&#8203;graphql-codegen/typescript](https://redirect.github.com/graphql-codegen/typescript)[@&#8203;4](https://redirect.github.com/4).1.6

</details>

<details>
<summary>lucide-icons/lucide (lucide-vue-next)</summary>

###
[`v0.487.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.487.0):
Version 0.487.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.486.0...0.487.0)

#### What's Changed

- feat(icons): added `spline-pointer` icon by
[@&#8203;Kaleidosium](https://redirect.github.com/Kaleidosium) in
[https://github.com/lucide-icons/lucide/pull/2932](https://redirect.github.com/lucide-icons/lucide/pull/2932)

#### New Contributors

- [@&#8203;Kaleidosium](https://redirect.github.com/Kaleidosium) made
their first contribution in
[https://github.com/lucide-icons/lucide/pull/2932](https://redirect.github.com/lucide-icons/lucide/pull/2932)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.486.0...0.487.0

###
[`v0.486.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.486.0):
Version 0.486.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.485.0...0.486.0)

#### What's Changed

-
feat([@&#8203;lucide/astro](https://redirect.github.com/lucide/astro)):
add lucide package for Astro by
[@&#8203;MoustaphaDev](https://redirect.github.com/MoustaphaDev) in
[https://github.com/lucide-icons/lucide/pull/2665](https://redirect.github.com/lucide-icons/lucide/pull/2665)

#### New Contributors

- [@&#8203;MoustaphaDev](https://redirect.github.com/MoustaphaDev) made
their first contribution in
[https://github.com/lucide-icons/lucide/pull/2665](https://redirect.github.com/lucide-icons/lucide/pull/2665)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.485.0...0.486.0

###
[`v0.485.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.485.0):
Version 0.485.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.484.0...0.485.0)

#### What's Changed

- feat(icons): added `banknote-arrow-down` icon by
[@&#8203;joffx](https://redirect.github.com/joffx) in
[https://github.com/lucide-icons/lucide/pull/2948](https://redirect.github.com/lucide-icons/lucide/pull/2948)
- feat(icons): added `banknote-x` icon by
[@&#8203;joffx](https://redirect.github.com/joffx) in
[https://github.com/lucide-icons/lucide/pull/2949](https://redirect.github.com/lucide-icons/lucide/pull/2949)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.484.0...0.485.0

###
[`v0.484.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.484.0):
Version 0.484.0

[Compare
Source](https://redirect.github.com/lucide-icons/lucide/compare/0.483.0...0.484.0)

#### What's Changed

- build(deps): bump tj-actions/changed-files from 41 to 46 in
/.github/workflows by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/lucide-icons/lucide/pull/2920](https://redirect.github.com/lucide-icons/lucide/pull/2920)
- fix(packages): consistent icon name class by
[@&#8203;danteissaias](https://redirect.github.com/danteissaias) in
[https://github.com/lucide-icons/lucide/pull/2878](https://redirect.github.com/lucide-icons/lucide/pull/2878)
- feat(ci): add `x.com` to brand filter by
[@&#8203;jguddas](https://redirect.github.com/jguddas) in
[https://github.com/lucide-icons/lucide/pull/2939](https://redirect.github.com/lucide-icons/lucide/pull/2939)
- fix(icons): arcified candy & candy-off by
[@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in
[https://github.com/lucide-icons/lucide/pull/2944](https://redirect.github.com/lucide-icons/lucide/pull/2944)

#### New Contributors

- [@&#8203;danteissaias](https://redirect.github.com/danteissaias) made
their first contribution in
[https://github.com/lucide-icons/lucide/pull/2878](https://redirect.github.com/lucide-icons/lucide/pull/2878)

**Full Changelog**:
https://github.com/lucide-icons/lucide/compare/0.483.0...0.484.0

</details>

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v10.7.1`](https://redirect.github.com/pnpm/pnpm/releases/tag/v10.7.1):
pnpm 10.7.1

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.7.0...v10.7.1)

#### Patch Changes

- `pnpm config set` should convert the settings to their correct type
before adding them to `pnpm-workspace.yaml`
[#&#8203;9355](https://redirect.github.com/pnpm/pnpm/issues/9355).
- `pnpm config get` should read auth related settings via npm CLI
[#&#8203;9345](https://redirect.github.com/pnpm/pnpm/issues/9345).
- Replace leading `~/` in a path in `.npmrc` with the home directory
[#&#8203;9217](https://redirect.github.com/pnpm/pnpm/issues/9217).

#### Platinum Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://bit.dev/?utm_source=pnpm&utm_medium=release_notes"
target="_blank"><img src="https://pnpm.io/img/users/bit.svg" width="80"
alt="Bit"></a>
      </td>
      <td align="center" valign="middle">
<a href="https://sanity.io/?utm_source=pnpm&utm_medium=release_notes"
target="_blank"><img src="https://pnpm.io/img/users/sanity.svg"
width="180" alt="Bit"></a>
      </td>
      <td align="center" valign="middle">
<a href="https://syntax.fm/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/syntaxfm.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/syntaxfm_light.svg" />
<img src="https://pnpm.io/img/users/syntaxfm.svg" width="90"
alt="Syntax" />
          </picture>
        </a>
      </td>
    </tr>
  </tbody>
</table>

#### Gold Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://discord.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/discord.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/discord_light.svg" />
<img src="https://pnpm.io/img/users/discord.svg" width="220"
alt="Discord" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://uscreen.de/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/uscreen.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/uscreen_light.svg" />
<img src="https://pnpm.io/img/users/uscreen.svg" width="180"
alt="u|screen" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a
href="https://www.jetbrains.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/jetbrains.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/jetbrains.svg" />
<img src="https://pnpm.io/img/users/jetbrains.svg" width="180"
alt="JetBrains" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://nx.dev/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/nx.svg?0" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/nx_light.svg?0" />
<img src="https://pnpm.io/img/users/nx.svg" width="70" alt="Nx" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a
href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/coderabbit.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
<img src="https://pnpm.io/img/users/coderabbit.svg" width="220"
alt="CodeRabbit" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://route4me.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
<img src="https://pnpm.io/img/users/route4me.svg" width="220"
alt="Route4Me" />
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://workleap.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/workleap.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/workleap_light.svg" />
<img src="https://pnpm.io/img/users/workleap.svg" width="190"
alt="Workleap" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a
href="https://stackblitz.com/?utm_source=pnpm&utm_medium=release_notes"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/stackblitz.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/stackblitz_light.svg" />
<img src="https://pnpm.io/img/users/stackblitz.svg" width="190"
alt="Stackblitz" />
          </picture>
        </a>
      </td>
    </tr>
  </tbody>
</table>

###
[`v10.7.0`](https://redirect.github.com/pnpm/pnpm/blob/HEAD/pnpm/CHANGELOG.md#1070)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.6.5...v10.7.0)

##### Minor Changes

- `pnpm config get` and `list` also show settings set in
`pnpm-workspace.yaml` files
[#&#8203;9316](https://redirect.github.com/pnpm/pnpm/pull/9316).

- It should be possible to use env variables in `pnpm-workspace.yaml`
setting names and value.

- Add an ability to patch dependencies by version ranges. Exact versions
override version ranges, which in turn override name-only patches.
Version range `*` is the same as name-only, except that patch
application failure will not be ignored.

    For example:

    ```yaml
    patchedDependencies:
      foo: patches/foo-1.patch
      foo@^2.0.0: patches/foo-2.patch
      foo@2.1.0: patches/foo-3.patch
    ```

The above configuration would apply `patches/foo-3.patch` to
`foo@2.1.0`, `patches/foo-2.patch` to all `foo` versions which satisfy
`^2.0.0` except `2.1.0`, and `patches/foo-1.patch` to the remaining
`foo` versions.

    > \[!WARNING]
> The version ranges should not overlap. If you want to specialize a sub
range, make sure to exclude it from the other keys. For example:
    >
    > ```yaml
    > # pnpm-workspace.yaml
    > patchedDependencies:
    >   # the specialized sub range
    >   'foo@2.2.0-2.8.0': patches/foo.2.2.0-2.8.0.patch
    >   # the more general patch, excluding the sub range above
    >   'foo@>=2.0.0 <2.2.0 || >2.8.0': 'patches/foo.gte2.patch
    > ```
    >
> In most cases, however, it's sufficient to just define an exact
version to override the range.

- `pnpm config set --location=project` saves the setting to a
`pnpm-workspace.yaml` file if no `.npmrc` file is present in the
directory
[#&#8203;9316](https://redirect.github.com/pnpm/pnpm/pull/9316).

- Rename `pnpm.allowNonAppliedPatches` to `pnpm.allowUnusedPatches`. The
old name is still supported but it would print a deprecation warning
message.

- Add `pnpm.ignorePatchFailures` to manage whether pnpm would ignore
patch application failures.

If `ignorePatchFailures` is not set, pnpm would throw an error when
patches with exact versions or version ranges fail to apply, and it
would ignore failures from name-only patches.

If `ignorePatchFailures` is explicitly set to `false`, pnpm would throw
an error when any type of patch fails to apply.

If `ignorePatchFailures` is explicitly set to `true`, pnpm would print a
warning when any type of patch fails to apply.

##### Patch Changes

- Remove dependency paths from audit output to prevent out-of-memory
errors
[#&#8203;9280](https://redirect.github.com/pnpm/pnpm/issues/9280).

</details>

<details>
<summary>vuetifyjs/nuxt-module (vuetify-nuxt-module)</summary>

###
[`v0.18.5`](https://redirect.github.com/vuetifyjs/nuxt-module/releases/tag/v0.18.5)

[Compare
Source](https://redirect.github.com/vuetifyjs/nuxt-module/compare/v0.18.4...v0.18.5)

#####    🐞 Bug Fixes

- **styles**: Resolve new scss component styles  -  by
[@&#8203;userquin](https://redirect.github.com/userquin) in
[https://github.com/vuetifyjs/nuxt-module/issues/305](https://redirect.github.com/vuetifyjs/nuxt-module/issues/305)
[<samp>(82139)</samp>](https://redirect.github.com/vuetifyjs/nuxt-module/commit/8213962)

#####     [View changes on
GitHub](https://redirect.github.com/vuetifyjs/nuxt-module/compare/v0.18.4...v0.18.5)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIyNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-02 09:40:11 -04:00
Zack Spear
e2d00dc346 feat: add webgui theme switcher component (#1304)
For now just used in Dev Mode to help assist in testing webgui CSS
changes.

- Introduced a new `UnraidThemeSwitcher` component to allow users to
change themes dynamically.
- Updated `nuxt.config.ts` to register the new component.
- Created `ThemeSwitcher.ce.vue` with functionality to handle theme
changes and update the UI accordingly.

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

- **New Features**
- Introduced a theme switcher, allowing users to easily swap between
available application themes.
- Expanded the configuration to register the new theme switcher as a
custom element for seamless integration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-01 14:13:42 -07:00
Pujit Mehrotra
48c6ad7afa chore: fix license badge & add community links (#1300)
shields.io couldn't "recognize" our license.md, so it's statically
generated now.

## Summary by CodeRabbit

- **Documentation**
- Revised the project description and updated the documentation URL for
clearer API guidance.
  - Enhanced visual presentation by centering project shields.
  - Added a new badge to highlight the use of Vite.
- Restructured contact information into a new "Community" section with
updated channels.
  - Updated licensing details to reflect the GPL-2.0 license.
2025-03-31 16:22:26 -04:00
Eli Bosley
12eddf894e feat: basic docker controls (#1292)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Updated configuration settings by resetting various parameters to
default values.
	- Enhanced module integration with new Docker components.
- **New Features**
	- Introduced GraphQL API endpoints to start and stop Docker containers.
	- Added a backend service to manage Docker container operations.
- **Tests**
- Expanded test suites covering Docker resolvers and service methods to
ensure reliable container management.
- **Refactor**
- Consolidated code imports and streamlined internal calls for clearer
structure.
	- Enhanced type safety for Docker container retrieval parameters.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-03-31 16:21:06 -04:00
Eli Bosley
61fe6966ca feat: basic array controls (#1291)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Expanded API operations for array management, including new mutations
for state changes and disk handling.
- Introduced new enumeration and input types for managing array states
in the GraphQL schema.
- Added a new resolver for handling array mutations in the GraphQL API.

- **Chores**
- Upgraded configuration version to 4.4.1 and refined connectivity
status reporting.

- **Refactor**
- Streamlined request processing with improved error handling to provide
clearer feedback on connectivity issues.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-31 15:47:33 -04:00
renovate[bot]
b4c8efa483 fix(deps): update dependency ignore to v7 (#1299)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ignore](https://redirect.github.com/kaelzhang/node-ignore) |
[`^5.2.4` ->
`^7.0.0`](https://renovatebot.com/diffs/npm/ignore/5.3.2/7.0.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ignore/7.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ignore/7.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ignore/5.3.2/7.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ignore/5.3.2/7.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>kaelzhang/node-ignore (ignore)</summary>

###
[`v7.0.3`](52f8e855b6...7.0.3)

[Compare
Source](52f8e855b6...7.0.3)

###
[`v7.0.2`](https://redirect.github.com/kaelzhang/node-ignore/compare/7.0.1...52f8e855b6aca711579c008f38829f48e5a4c78b)

[Compare
Source](https://redirect.github.com/kaelzhang/node-ignore/compare/7.0.1...52f8e855b6aca711579c008f38829f48e5a4c78b)

###
[`v7.0.1`](https://redirect.github.com/kaelzhang/node-ignore/compare/7.0.0...7.0.1)

[Compare
Source](https://redirect.github.com/kaelzhang/node-ignore/compare/7.0.0...7.0.1)

###
[`v7.0.0`](https://redirect.github.com/kaelzhang/node-ignore/releases/tag/7.0.0)

[Compare
Source](ee70c66d32...7.0.0)

#### Minor feature

The primary feature introduced by `7.0.0` is the `.checkIgnore()`
method, which is most equivalent to `git check-ignore -v`. And also it
allows to pass `{pattern, mark?}` as the parameter of `.add()` so that
we could imitate the mechanism of `git check-ignore` as:

```js
ig.add({
  pattern: 'foo/*',
  mark: '60'
})

const {
  ignored,
  rule
} = checkIgnore('foo/')

if (ignored) {
  console.log(`.gitignore:${result}:${rule.mark}:${rule.pattern} foo/`)
}

// .gitignore:60:foo/* foo/
```

#### Potential Incompatibilities

The only situation that `7.0.0` might bring incompatibility is to
`.add()` a `< 7.0.0` instance into a `>= 7.0.0` instance, which might
occur when the current workspace has multiple `node-ignore` versions
installed, please be careful.

```js
const {anotherIgnoreInstance} = require('./ignore-6.0-instance')

// A 7.0.0 instance
ignore().add(anotherIgnoreInstance)

// It will break your code
```

Otherwise, in most cases, if you never do something above or there is
only one version of `node-ignore` installed in the current workspace, it
is quite safe to upgrade to `7.0.0`.

###
[`v6.0.2`](https://redirect.github.com/kaelzhang/node-ignore/compare/6.0.1...ee70c66d32e900f6e793c733a4ca27a1dafb3819)

[Compare
Source](https://redirect.github.com/kaelzhang/node-ignore/compare/6.0.1...ee70c66d32e900f6e793c733a4ca27a1dafb3819)

###
[`v6.0.1`](https://redirect.github.com/kaelzhang/node-ignore/releases/tag/6.0.1):
6.x (&#x3D;&#x3D; 5.3.2)

[Compare
Source](https://redirect.github.com/kaelzhang/node-ignore/compare/6.0.0...6.0.1)

### 6.x

-   The release of `6.x` is due to a mistake.
- Making an upgrade from `5.x` to 6.x for now actually changes nothing
and does no harm, everyone could just upgrade or ignore the version.
    -   Actually `6.0.2` is `5.3.2`
-   The next major release will be `7.0.0`

###
[`v6.0.0`](https://redirect.github.com/kaelzhang/node-ignore/compare/5.3.2...6.0.0)

[Compare
Source](https://redirect.github.com/kaelzhang/node-ignore/compare/5.3.2...6.0.0)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-31 15:38:37 -04:00
Eli Bosley
dc9d5ad661 chore: fix license path in readme 2025-03-31 15:16:05 -04:00
Pujit Mehrotra
4964cf557b chore: update license fields in package.json (#1298)
Sets license for all node.js packages to `GPL-2.0-or-later`

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

## Summary by CodeRabbit

- **Chores**
- Simplified license compliance verification by removing legacy script
logic.
- Updated licensing terms across components to GPL-2.0-or-later for
broader compatibility.
- **Documentation**
- Revised setup instructions to indicate that the use of the Just build
tool is now optional.
- **New Features**
- Added fallback support in the build automation tool to ensure smoother
operations when targets are missing.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-31 14:52:49 -04:00
Zack Spear
e54f189630 feat: copy to webgui repo script docs + wc build options (#1285)
Previously the historical script only use to copy built web components
into the webgui repo.

The new script provides additional commands to find files in the API
repo's plugin dir and attempts to find "new" files. Then a command to
act upon each of these new file to sync in either direction, skip it, or
ignore it.

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

- **New Features**
- Introduced an interactive synchronization tool that streamlines file
transfers between projects.
- Added a new command to easily trigger the synchronization process,
leveraging enhanced file management and notification capabilities.

- **Chores**
- Updated version control settings to ignore temporary synchronization
files.
  - Removed an outdated file copying script for improved maintenance.
  - Added new dependencies to support enhanced functionality.
- Modified a script to exclude specific files from deletion during the
activation code setup process.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-31 14:36:33 -04:00
Pujit Mehrotra
9f7218da79 chore: update license to GPL-2.0-or-later (#1295)
to accomodate GPL-3.0 based dependencies.

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

## Summary by CodeRabbit

- **Documentation**
- Revised licensing documentation to clearly state that the project is
distributed under GNU GPL v2 (or later) with complete terms provided.
- **Chores**
  - Updated overall license declarations to a more flexible version.
- Introduced new compliance tools to automatically verify that
dependency licenses meet the accepted criteria.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-31 14:34:33 -04:00
Eli Bosley
d5a3d0dfac fix: OEM plugin issues (#1288)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- The file synchronization tool now requires an explicitly defined
destination and offers a new option to remove remote password files
before syncing. Additionally, synchronization now omits ownership,
group, and permission metadata for smoother transfers.
- The activation flow has been refined, with legacy authentication
modifications removed to deliver a cleaner welcome modal experience.
- A new variable has been introduced to enhance server state management.

- **Refactor**
- Internal configuration adjustments have been made to enhance component
delivery and streamline system actions.

- **Bug Fixes**
- Updated handling of remote user and host parameters in the
synchronization script for improved functionality.
- Simplified the activation code removal process by focusing solely on
the `.set-password.php` file restoration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Zack Spear <hi@zackspear.com>
2025-03-28 16:39:15 -04:00
Pujit Mehrotra
2266139742 fix: extract callbacks to library (#1280)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
  - Updated environment configuration to enhance secure handling.
  - Integrated a shared dependency for consistent callback management.

- **Refactor**
  - Streamlined callback actions management for improved performance.
- Upgraded the operating system version from a beta release to stable
(7.0.0), delivering enhanced reliability.
- Centralized callback actions store usage across components for better
state management.
- Removed deprecated callback management code to improve clarity and
maintainability.

- **New Features**
- Introduced a new redirect component to enhance user navigation
experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Eli Bosley <ekbosley@gmail.com>
Co-authored-by: Zack Spear <hi@zackspear.com>
2025-03-28 16:11:29 -04:00
Pujit Mehrotra
7fb78494cb fix(api): redirect benign pnpm postinstall warning to log file (#1290)
which lives at `/var/log/unraid-api/build-scripts.log`
2025-03-28 13:50:41 -04:00
Pujit Mehrotra
2f09445f2e feat(api): add unraid-api --delete command (#1289)
- Added a `command:raw` package.json script to let devs run `dist/cli.js` without rebuilding, enabling experimentation in the transpiled script.
- `unraid-api --delete` allows users to select and remove keys with confirmation
prompts.
2025-03-28 10:17:22 -04:00
Eli Bosley
fa6a5c56b6 chore: update ranging strategy for renovate (#1286)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Updated the dependency update configuration to adopt a replace
strategy for version ranges, ensuring smoother and clearer version
management.
- Added a new dependency, `@unraid/shared-callbacks`, for enhanced
functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-28 10:12:07 -04:00
Eli Bosley
234017a828 chore: add self to work intent template 2025-03-27 17:12:32 -04:00
Eli Bosley
0210b9e62e chore: wrong charactrer 2025-03-27 17:11:17 -04:00
Eli Bosley
4b2763c7f9 fix: additional url fixes 2025-03-27 17:10:51 -04:00
Eli Bosley
ed44796d5d Update readme.md 2025-03-27 17:07:49 -04:00
Pujit Mehrotra
d23a89f0b3 chore: re-add .env.staging in api 2025-03-27 16:01:38 -04:00
Pujit Mehrotra
d0d2ff65ed fix: replace files lost during pruning 2025-03-27 15:47:29 -04:00
Pujit Mehrotra
9f492bf217 feat: api plugin system & offline versioned dependency vendoring (#1252)
- **New Features**
- Created a dynamic plugin system for the API to enable community
augmentation of GraphQL, CLI, and Cron functionalities capabilities.
- Included an example plugin under `packages/unraid-api-plugin-health`
that adds a new graphql query for API health checks.
- Added `rc.unraid-api` commands for backing up, restoring, and
installing production dependencies, streamlining maintenance and
deployment.
- Improved dependency vendoring by bundling a versioned pnpm store
(instead of `node_modules`). Versioning will allow users to add plugins
to a specific api release without requiring an internet connection on
subsequent reboots.

- **Chores**
- Upgraded build workflows and versioning processes to ensure more
reliable artifact handling and production packaging.
2025-03-27 13:23:55 -04:00
github-actions[bot]
c4b4d26af0 chore(main): release 4.4.1 (#1270)
🤖 I have created a release *beep* *boop*
---


## [4.4.1](https://github.com/unraid/api/compare/v4.4.0...v4.4.1)
(2025-03-26)


### Bug Fixes

* .env.production from allowing console logs on build
([#1273](https://github.com/unraid/api/issues/1273))
([49f6365](49f636541b))
* patch version override logic incorrect
([#1275](https://github.com/unraid/api/issues/1275))
([0bcfb47](0bcfb47bbc))

---
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-03-26 20:01:06 -04:00
Eli Bosley
0bcfb47bbc fix: patch version override logic incorrect (#1275)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Bug Fixes**
- Improved the system’s version update mechanism so that updates are
applied only when the current system version matches the expected
version. This enhancement ensures more consistent and reliable version
checks during the update process.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-26 17:57:30 -04:00
Michael Datelle
b0099421f3 refactor: swap out radix with reka (#1271)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Refactor**
- Improved type safety and consistency across UI components by
leveraging centralized type definitions.

- **Chores**
- Updated and consolidated UI component dependencies by migrating from a
previous library to a new one and refining package configurations.

- **Style**
- Standardized code formatting for uniform syntax and improved
readability.

- **Tests**
- Expanded testing configuration to include additional file types for
enhanced test coverage.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-03-26 14:56:43 -04:00
Zack Spear
49f636541b fix: .env.production from allowing console logs on build (#1273)
`VITE_ALLOW_CONSOLE_LOGS` should not be present in `.env.production`. We
don't want basic debugs logs in prod.

Found this because the latest OS release `7.1.0-beta.1.6` which included
the latest web components had debug logs included.

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

## Summary by CodeRabbit

- **Chores**
- Disabled non-essential console logging in the production environment
for a cleaner runtime experience.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-26 09:16:14 -04:00
github-actions[bot]
419c794e03 chore(main): release 4.4.0 (#1241)
🤖 I have created a release *beep* *boop*
---


## [4.4.0](https://github.com/unraid/api/compare/v4.3.1...v4.4.0)
(2025-03-25)


### Features

* add ReplaceKey functionality to plugin
([#1264](https://github.com/unraid/api/issues/1264))
([7e6be67](7e6be67f61))
* downgrade page replace key check
([#1263](https://github.com/unraid/api/issues/1263))
([6a92f61](6a92f61f1a))
* make log viewer component dynamic
([#1242](https://github.com/unraid/api/issues/1242))
([a356bf0](a356bf03fb))
* ReplaceKey functionality in Registration and Update pages
([#1246](https://github.com/unraid/api/issues/1246))
([f3e6a00](f3e6a0011e))
* UnraidCheckExec for Check OS Updates via UPC dropdown
([#1265](https://github.com/unraid/api/issues/1265))
([3a20930](3a20930ead))


### Bug Fixes

* **deps:** update all non-major dependencies
([#1236](https://github.com/unraid/api/issues/1236))
([9d63e56](9d63e56374))
* **deps:** update all non-major dependencies
([#1247](https://github.com/unraid/api/issues/1247))
([57a6c49](57a6c49f8a))
* **deps:** update all non-major dependencies
([#1251](https://github.com/unraid/api/issues/1251))
([ad3906e](ad3906e682))
* **deps:** update all non-major dependencies
([#1253](https://github.com/unraid/api/issues/1253))
([bbb02e9](bbb02e991c))
* **deps:** update dependency @nestjs/passport to v11
([#1244](https://github.com/unraid/api/issues/1244))
([9e54237](9e54237670))
* **deps:** update dependency graphql-subscriptions to v3
([#1209](https://github.com/unraid/api/issues/1209))
([c9789ac](c9789ac1f2))
* **deps:** update dependency ini to v5
([#1217](https://github.com/unraid/api/issues/1217))
([590ab73](590ab7327f))
* **deps:** update dependency jose to v6
([#1248](https://github.com/unraid/api/issues/1248))
([03ece33](03ece335b8))
* **deps:** update dependency marked to v15
([#1249](https://github.com/unraid/api/issues/1249))
([8f78b3f](8f78b3f1ca))
* **deps:** update dependency pino-pretty to v13
([#1250](https://github.com/unraid/api/issues/1250))
([1892e23](1892e23c22))
* **deps:** update dependency pm2 to v6
([#1258](https://github.com/unraid/api/issues/1258))
([d8afc8f](d8afc8f4c9))
* **deps:** update dependency shadcn-vue to v1
([#1259](https://github.com/unraid/api/issues/1259))
([cb2020d](cb2020dee6))
* **deps:** update dependency vue-i18n to v11
([#1261](https://github.com/unraid/api/issues/1261))
([2c01ba9](2c01ba9610))
* **deps:** update vueuse monorepo to v13 (major)
([#1262](https://github.com/unraid/api/issues/1262))
([9ce10a7](9ce10a72b2))
* make scripts executable when building the plugin
([#1255](https://github.com/unraid/api/issues/1255))
([7bc9949](7bc9949110))
* node installation not persisting across reboots
([#1256](https://github.com/unraid/api/issues/1256))
([3bfcc8e](3bfcc8e8c0))
* update configValid state to ineligible in var.ini and adjust rel…
([#1268](https://github.com/unraid/api/issues/1268))
([cc85fba](cc85fba207))

---
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-03-25 09:43:58 -04:00
renovate[bot]
bbb02e991c fix(deps): update all non-major dependencies (#1253)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@apollo/client](https://www.apollographql.com/docs/react/)
([source](https://redirect.github.com/apollographql/apollo-client)) |
[`3.13.4` ->
`3.13.5`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.13.4/3.13.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@apollo%2fclient/3.13.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@apollo%2fclient/3.13.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@apollo%2fclient/3.13.4/3.13.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@apollo%2fclient/3.13.4/3.13.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@eslint/js](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint/tree/HEAD/packages/js))
| [`9.22.0` ->
`9.23.0`](https://renovatebot.com/diffs/npm/@eslint%2fjs/9.22.0/9.23.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@eslint%2fjs/9.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@eslint%2fjs/9.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@eslint%2fjs/9.22.0/9.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@eslint%2fjs/9.22.0/9.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/apollo](https://redirect.github.com/nestjs/graphql) |
[`13.0.3` ->
`13.0.4`](https://renovatebot.com/diffs/npm/@nestjs%2fapollo/13.0.3/13.0.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fapollo/13.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fapollo/13.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fapollo/13.0.3/13.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fapollo/13.0.3/13.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/common](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/common))
| [`11.0.11` ->
`11.0.12`](https://renovatebot.com/diffs/npm/@nestjs%2fcommon/11.0.11/11.0.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcommon/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcommon/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcommon/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcommon/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/core](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/core))
| [`11.0.11` ->
`11.0.12`](https://renovatebot.com/diffs/npm/@nestjs%2fcore/11.0.11/11.0.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcore/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcore/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcore/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcore/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/graphql](https://redirect.github.com/nestjs/graphql) |
[`13.0.3` ->
`13.0.4`](https://renovatebot.com/diffs/npm/@nestjs%2fgraphql/13.0.3/13.0.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fgraphql/13.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fgraphql/13.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fgraphql/13.0.3/13.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fgraphql/13.0.3/13.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/platform-fastify](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/platform-fastify))
| [`11.0.11` ->
`11.0.12`](https://renovatebot.com/diffs/npm/@nestjs%2fplatform-fastify/11.0.11/11.0.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fplatform-fastify/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fplatform-fastify/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fplatform-fastify/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fplatform-fastify/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/testing](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/testing))
| [`11.0.11` ->
`11.0.12`](https://renovatebot.com/diffs/npm/@nestjs%2ftesting/11.0.11/11.0.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2ftesting/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2ftesting/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2ftesting/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2ftesting/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nuxt/devtools](https://devtools.nuxt.com)
([source](https://redirect.github.com/nuxt/devtools/tree/HEAD/packages/devtools))
| [`2.3.0` ->
`2.3.1`](https://renovatebot.com/diffs/npm/@nuxt%2fdevtools/2.3.0/2.3.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxt%2fdevtools/2.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nuxt%2fdevtools/2.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nuxt%2fdevtools/2.3.0/2.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxt%2fdevtools/2.3.0/2.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@rollup/rollup-linux-x64-gnu](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) | [`4.36.0` ->
`4.37.0`](https://renovatebot.com/diffs/npm/@rollup%2frollup-linux-x64-gnu/4.36.0/4.37.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@rollup%2frollup-linux-x64-gnu/4.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@rollup%2frollup-linux-x64-gnu/4.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@rollup%2frollup-linux-x64-gnu/4.36.0/4.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@rollup%2frollup-linux-x64-gnu/4.36.0/4.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@storybook/addon-essentials](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/essentials)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials))
| [`8.6.7` ->
`8.6.9`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/8.6.7/8.6.9)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-essentials/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-essentials/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-essentials/8.6.7/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-essentials/8.6.7/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@storybook/addon-interactions](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/interactions)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions))
| [`8.6.7` ->
`8.6.9`](https://renovatebot.com/diffs/npm/@storybook%2faddon-interactions/8.6.7/8.6.9)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-interactions/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-interactions/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-interactions/8.6.7/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-interactions/8.6.7/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@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))
| [`8.6.7` ->
`8.6.9`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/8.6.7/8.6.9)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-links/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-links/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-links/8.6.7/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-links/8.6.7/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@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))
| [`8.6.7` ->
`8.6.9`](https://renovatebot.com/diffs/npm/@storybook%2fbuilder-vite/8.6.7/8.6.9)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fbuilder-vite/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fbuilder-vite/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fbuilder-vite/8.6.7/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fbuilder-vite/8.6.7/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@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))
| [`8.6.7` ->
`8.6.9`](https://renovatebot.com/diffs/npm/@storybook%2fvue3-vite/8.6.7/8.6.9)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fvue3-vite/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fvue3-vite/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fvue3-vite/8.6.7/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fvue3-vite/8.6.7/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@swc/core](https://swc.rs)
([source](https://redirect.github.com/swc-project/swc)) | [`1.11.11` ->
`1.11.13`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.11.11/1.11.13)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.11.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.11.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.11.11/1.11.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.11.11/1.11.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/diff](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/diff)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/diff))
| [`7.0.1` ->
`7.0.2`](https://renovatebot.com/diffs/npm/@types%2fdiff/7.0.1/7.0.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fdiff/7.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fdiff/7.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fdiff/7.0.1/7.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fdiff/7.0.1/7.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`22.13.10` ->
`22.13.13`](https://renovatebot.com/diffs/npm/@types%2fnode/22.13.10/22.13.13)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.13.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/22.13.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/22.13.10/22.13.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.13.10/22.13.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [eslint](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint)) | [`9.22.0` ->
`9.23.0`](https://renovatebot.com/diffs/npm/eslint/9.22.0/9.23.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/9.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/9.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/9.22.0/9.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/9.22.0/9.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[eslint-plugin-prettier](https://redirect.github.com/prettier/eslint-plugin-prettier)
| [`5.2.3` ->
`5.2.5`](https://renovatebot.com/diffs/npm/eslint-plugin-prettier/5.2.3/5.2.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-prettier/5.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-prettier/5.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-prettier/5.2.3/5.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-prettier/5.2.3/5.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [graphql-scalars](https://redirect.github.com/Urigo/graphql-scalars) |
[`1.24.1` ->
`1.24.2`](https://renovatebot.com/diffs/npm/graphql-scalars/1.24.1/1.24.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/graphql-scalars/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/graphql-scalars/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/graphql-scalars/1.24.1/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/graphql-scalars/1.24.1/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [nestjs-pino](https://redirect.github.com/iamolegga/nestjs-pino) |
[`4.3.1` ->
`4.4.0`](https://renovatebot.com/diffs/npm/nestjs-pino/4.3.1/4.4.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/nestjs-pino/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nestjs-pino/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nestjs-pino/4.3.1/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nestjs-pino/4.3.1/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [nuxt](https://nuxt.com)
([source](https://redirect.github.com/nuxt/nuxt/tree/HEAD/packages/nuxt))
| [`3.16.0` ->
`3.16.1`](https://renovatebot.com/diffs/npm/nuxt/3.16.0/3.16.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/nuxt/3.16.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nuxt/3.16.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nuxt/3.16.0/3.16.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nuxt/3.16.0/3.16.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [reka-ui](https://redirect.github.com/unovue/reka-ui) | [`2.1.0` ->
`2.1.1`](https://renovatebot.com/diffs/npm/reka-ui/2.1.0/2.1.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/reka-ui/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/reka-ui/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/reka-ui/2.1.0/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/reka-ui/2.1.0/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[storybook](https://redirect.github.com/storybookjs/storybook/tree/next/code/lib/cli)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/lib/cli))
| [`8.6.7` ->
`8.6.9`](https://renovatebot.com/diffs/npm/storybook/8.6.7/8.6.9) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/storybook/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/storybook/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/storybook/8.6.7/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/storybook/8.6.7/8.6.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint))
| [`8.26.1` ->
`8.28.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.26.1/8.28.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript-eslint/8.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript-eslint/8.26.1/8.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.26.1/8.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`6.2.2` ->
`6.2.3`](https://renovatebot.com/diffs/npm/vite/6.2.2/6.2.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.2.2/6.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.2.2/6.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://redirect.github.com/vitest-dev/vitest)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`3.0.7` ->
`3.0.9`](https://renovatebot.com/diffs/npm/vitest/3.0.7/3.0.9) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.0.7/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.7/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vuetify](https://vuetifyjs.com)
([source](https://redirect.github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify))
| [`3.7.17` ->
`3.7.18`](https://renovatebot.com/diffs/npm/vuetify/3.7.17/3.7.18) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vuetify/3.7.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vuetify/3.7.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vuetify/3.7.17/3.7.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vuetify/3.7.17/3.7.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [zx](https://google.github.io/zx/)
([source](https://redirect.github.com/google/zx)) | [`8.3.2` ->
`8.4.1`](https://renovatebot.com/diffs/npm/zx/8.3.2/8.4.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/zx/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/zx/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/zx/8.3.2/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zx/8.3.2/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>apollographql/apollo-client (@&#8203;apollo/client)</summary>

###
[`v3.13.5`](https://redirect.github.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#3135)

[Compare
Source](https://redirect.github.com/apollographql/apollo-client/compare/v3.13.4...v3.13.5)

##### Patch Changes

-
[#&#8203;12461](https://redirect.github.com/apollographql/apollo-client/pull/12461)
[`12c8d06`](12c8d06f1e)
Thanks [@&#8203;jerelmiller](https://redirect.github.com/jerelmiller)! -
Fix an issue where a `cache-first` query would return the result for
previous variables when a cache update is issued after simultaneously
changing variables and skipping the query.

</details>

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

###
[`v9.23.0`](https://redirect.github.com/eslint/eslint/compare/v9.22.0...20591c49ff27435b1555111a929a6966febc249f)

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

</details>

<details>
<summary>nestjs/graphql (@&#8203;nestjs/apollo)</summary>

###
[`v13.0.4`](https://redirect.github.com/nestjs/graphql/releases/tag/v13.0.4)

[Compare
Source](https://redirect.github.com/nestjs/graphql/compare/v13.0.3...v13.0.4)

##### 13.0.4 (2025-03-24)

##### Enhancements

-   `graphql`
- [#&#8203;3503](https://redirect.github.com/nestjs/graphql/pull/3503)
feat(graphql): add support for transforming the resolvers
([@&#8203;JoshVee](https://redirect.github.com/JoshVee))

##### Dependencies

-   `graphql`
- [#&#8203;3487](https://redirect.github.com/nestjs/graphql/pull/3487)
fix(deps): update dependency ws to v8.18.1
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
- [#&#8203;3488](https://redirect.github.com/nestjs/graphql/pull/3488)
fix(deps): update graphql-tools monorepo
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))
-   `mercurius`
- [#&#8203;3494](https://redirect.github.com/nestjs/graphql/pull/3494)
chore(deps): update dependency mercurius to v16.1.0
([@&#8203;renovate\[bot\]](https://redirect.github.com/apps/renovate))

##### Committers: 1

- Josh Vawdrey ([@&#8203;JoshVee](https://redirect.github.com/JoshVee))

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/common)</summary>

###
[`v11.0.12`](https://redirect.github.com/nestjs/nest/compare/v11.0.11...c58f49a3cc7b48916a98dcb81764ce77950d535a)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v11.0.11...v11.0.12)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/core)</summary>

###
[`v11.0.12`](https://redirect.github.com/nestjs/nest/compare/v11.0.11...c58f49a3cc7b48916a98dcb81764ce77950d535a)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v11.0.11...v11.0.12)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/platform-fastify)</summary>

###
[`v11.0.12`](https://redirect.github.com/nestjs/nest/releases/tag/v11.0.12)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v11.0.11...v11.0.12)

#### v11.0.12 (2025-03-19)

##### Bug fixes

-   `core`
- [#&#8203;14803](https://redirect.github.com/nestjs/nest/pull/14803)
fix(core): infinite loop on broken circular reference
([@&#8203;kamilmysliwiec](https://redirect.github.com/kamilmysliwiec))
-
[https://github.com/nestjs/nest/pull/14792](https://redirect.github.com/nestjs/nest/pull/14792)
dependencies not resolving for request-scoped lazy providers
([@&#8203;anizozina](https://redirect.github.com/anizozina))

##### Enhancements

-   `core`
- [#&#8203;14802](https://redirect.github.com/nestjs/nest/pull/14802)
feat(core): add options to the legacy route converter
([@&#8203;kamilmysliwiec](https://redirect.github.com/kamilmysliwiec))

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/testing)</summary>

###
[`v11.0.12`](https://redirect.github.com/nestjs/nest/compare/v11.0.11...c58f49a3cc7b48916a98dcb81764ce77950d535a)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v11.0.11...v11.0.12)

</details>

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

###
[`v2.3.1`](https://redirect.github.com/nuxt/devtools/blob/HEAD/CHANGELOG.md#231-2025-03-20)

[Compare
Source](https://redirect.github.com/nuxt/devtools/compare/v2.3.0...v2.3.1)

##### Bug Fixes

- downgrade `execa` to be compatible with Node v18, fix
[#&#8203;821](https://redirect.github.com/nuxt/devtools/issues/821)
([f15c7dc](f15c7dca3a))

</details>

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

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

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

*2025-03-23*

##### Features

- Support Musl Linux on Riscv64 architectures
([#&#8203;5726](https://redirect.github.com/rollup/rollup/issues/5726))
- Handles class decorators placed before the `export` keyword
([#&#8203;5871](https://redirect.github.com/rollup/rollup/issues/5871))

##### Bug Fixes

- Log Rust panic messages to the console when using the WASM build
([#&#8203;5875](https://redirect.github.com/rollup/rollup/issues/5875))

##### Pull Requests

- [#&#8203;5726](https://redirect.github.com/rollup/rollup/pull/5726):
Add support for linux riscv64 musl
([@&#8203;fossdd](https://redirect.github.com/fossdd),
[@&#8203;leso-kn](https://redirect.github.com/leso-kn))
- [#&#8203;5871](https://redirect.github.com/rollup/rollup/pull/5871):
feat: support decorators before or after export
([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))
- [#&#8203;5875](https://redirect.github.com/rollup/rollup/pull/5875):
capture Rust panic messages and output them to the console.
([@&#8203;luyahan](https://redirect.github.com/luyahan),
[@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))
- [#&#8203;5883](https://redirect.github.com/rollup/rollup/pull/5883):
Pin digest of 3rd party actions
([@&#8203;re-taro](https://redirect.github.com/re-taro))
- [#&#8203;5885](https://redirect.github.com/rollup/rollup/pull/5885):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])

</details>

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

###
[`v8.6.9`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#869)

[Compare
Source](https://redirect.github.com/storybookjs/storybook/compare/v8.6.8...v8.6.9)

- Next: Fix react aliases in next vite plugin -
[#&#8203;30914](https://redirect.github.com/storybookjs/storybook/pull/30914),
thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!

###
[`v8.6.8`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#868)

[Compare
Source](https://redirect.github.com/storybookjs/storybook/compare/v8.6.7...v8.6.8)

- Angular: Export all files in Angular package.json -
[#&#8203;30849](https://redirect.github.com/storybookjs/storybook/pull/30849),
thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
- CLI: Don't add packageManager entry to package.json automatically -
[#&#8203;30855](https://redirect.github.com/storybookjs/storybook/pull/30855),
thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
- React: Allow portable stories to be used in SSR -
[#&#8203;30847](https://redirect.github.com/storybookjs/storybook/pull/30847),
thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
- Svelte: Adjust Svelte typings to include Svelte 5 function components
-
[#&#8203;30852](https://redirect.github.com/storybookjs/storybook/pull/30852),
thanks [@&#8203;dummdidumm](https://redirect.github.com/dummdidumm)!
- Telemetry: Make sure that telemetry doesn't fail on init -
[#&#8203;30857](https://redirect.github.com/storybookjs/storybook/pull/30857),
thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
- Vite: Update HMR filter to target specific story file types -
[#&#8203;30845](https://redirect.github.com/storybookjs/storybook/pull/30845),
thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!

</details>

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

###
[`v8.6.9`](https://redirect.github.com/storybookjs/storybook/compare/v8.6.8...207c2f46348303bf86950865cf7a193b5a60ab69)

[Compare
Source](https://redirect.github.com/storybookjs/storybook/compare/v8.6.8...v8.6.9)

###
[`v8.6.8`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#868)

[Compare
Source](https://redirect.github.com/storybookjs/storybook/compare/v8.6.7...v8.6.8)

- Angular: Export all files in Angular package.json -
[#&#8203;30849](https://redirect.github.com/storybookjs/storybook/pull/30849),
thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
- CLI: Don't add packageManager entry to package.json automatically -
[#&#8203;30855](https://redirect.github.com/storybookjs/storybook/pull/30855),
thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
- React: Allow portable stories to be used in SSR -
[#&#8203;30847](https://redirect.github.com/storybookjs/storybook/pull/30847),
thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
- Svelte: Adjust Svelte typings to include Svelte 5 function components
-
[#&#8203;30852](https://redirect.github.com/storybookjs/storybook/pull/30852),
thanks [@&#8203;dummdidumm](https://redirect.github.com/dummdidumm)!
- Telemetry: Make sure that telemetry doesn't fail on init -
[#&#8203;30857](https://redirect.github.com/storybookjs/storybook/pull/30857),
thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
- Vite: Update HMR filter to target specific story file types -
[#&#8203;30845](https://redirect.github.com/storybookjs/storybook/pull/30845),
thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!

</details>

<details>
<summary>swc-project/swc (@&#8203;swc/core)</summary>

###
[`v1.11.13`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#11113---2025-03-24)

[Compare
Source](https://redirect.github.com/swc-project/swc/compare/v1.11.12...v1.11.13)

##### Features

- **(es/minifier)** Merge alt's cons with cons
([#&#8203;10256](https://redirect.github.com/swc-project/swc/issues/10256))
([589bcd7](589bcd70c4))

- **(swc_core)** Expose features of `swc_parallel`
([#&#8203;10258](https://redirect.github.com/swc-project/swc/issues/10258))
([042f19f](042f19ff66))

##### Performance

- **(es/minifier)** Merge `expr_simplifier` into pure optimizer
([#&#8203;10202](https://redirect.github.com/swc-project/swc/issues/10202))
([9c9b0ba](9c9b0baaac))

###
[`v1.11.12`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#11112---2025-03-23)

[Compare
Source](https://redirect.github.com/swc-project/swc/compare/v1.11.11...v1.11.12)

##### Bug Fixes

- **(es/minifier)** Make `inline_globals` noop by default
([#&#8203;10231](https://redirect.github.com/swc-project/swc/issues/10231))
([b192dc8](b192dc82e6))

- **(es/minifier)** Fix access to `GLOBALS` in char freq compute
([#&#8203;10239](https://redirect.github.com/swc-project/swc/issues/10239))
([6286663](6286663868))

- **(es/parser)** Fix span of wrong `await` tokens
([#&#8203;10252](https://redirect.github.com/swc-project/swc/issues/10252))
([5c28dc3](5c28dc3964))

- **(es/types)** Fix broken types
([#&#8203;10224](https://redirect.github.com/swc-project/swc/issues/10224))
([540bdf8](540bdf868d))

##### Documentation

- **(es)** Improve documentation
([#&#8203;10247](https://redirect.github.com/swc-project/swc/issues/10247))
([549e38d](549e38db9e))

##### Features

- **(es/fast-lexer)** Enhance identifier handling with Unicode support
([#&#8203;10226](https://redirect.github.com/swc-project/swc/issues/10226))
([482b63a](482b63a905))

- **(es/minifier)** Invoke IIFE into block
([#&#8203;10220](https://redirect.github.com/swc-project/swc/issues/10220))
([c9a6c23](c9a6c23787))

- **(es/minifier)** Remove needless blocks
([#&#8203;10234](https://redirect.github.com/swc-project/swc/issues/10234))
([0817970](08179702bf))

- **(swc_parallel)** Introduce `rayon` mode
([#&#8203;10237](https://redirect.github.com/swc-project/swc/issues/10237))
([3c2213c](3c2213c829))

- **(ts/fast-strip)** Add start/end span information
([#&#8203;10251](https://redirect.github.com/swc-project/swc/issues/10251))
([ab39a62](ab39a62528))

- **(ts/fast-strip)** Improve error message snippet
([#&#8203;10253](https://redirect.github.com/swc-project/swc/issues/10253))
([f4f426c](f4f426c9c9))

- **(ts/fast-strip)** Remove line numbers
([#&#8203;10254](https://redirect.github.com/swc-project/swc/issues/10254))
([40e216d](40e216db82))

##### Performance

- **(es/minifier)** Merge `dead_branch_remover` into pure optimizer
([#&#8203;10201](https://redirect.github.com/swc-project/swc/issues/10201))
([6841523](6841523977))

</details>

<details>
<summary>eslint/eslint (eslint)</summary>

###
[`v9.23.0`](https://redirect.github.com/eslint/eslint/compare/v9.22.0...2aaadceec13e6df89a0c56e2b6ce4a145c1ac3aa)

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

</details>

<details>
<summary>prettier/eslint-plugin-prettier
(eslint-plugin-prettier)</summary>

###
[`v5.2.5`](https://redirect.github.com/prettier/eslint-plugin-prettier/blob/HEAD/CHANGELOG.md#525)

[Compare
Source](https://redirect.github.com/prettier/eslint-plugin-prettier/compare/v5.2.4...v5.2.5)

##### Patch Changes

-
[#&#8203;721](https://redirect.github.com/prettier/eslint-plugin-prettier/pull/721)
[`4f5513d`](4f5513de4c)
Thanks [@&#8203;JounQin](https://redirect.github.com/JounQin)! - fix:
clarify correct `eslint-config-prettier` peer range

###
[`v5.2.4`](https://redirect.github.com/prettier/eslint-plugin-prettier/blob/HEAD/CHANGELOG.md#524)

[Compare
Source](https://redirect.github.com/prettier/eslint-plugin-prettier/compare/v5.2.3...v5.2.4)

##### Patch Changes

-
[#&#8203;715](https://redirect.github.com/prettier/eslint-plugin-prettier/pull/715)
[`b8cfe56`](b8cfe56e34)
Thanks [@&#8203;JounQin](https://redirect.github.com/JounQin)! - chore:
hourcekeeping, bump all (dev) deps

</details>

<details>
<summary>Urigo/graphql-scalars (graphql-scalars)</summary>

###
[`v1.24.2`](https://redirect.github.com/Urigo/graphql-scalars/blob/HEAD/CHANGELOG.md#1242)

[Compare
Source](https://redirect.github.com/Urigo/graphql-scalars/compare/v1.24.1...v1.24.2)

##### Patch Changes

-
[#&#8203;2791](https://redirect.github.com/graphql-hive/graphql-scalars/pull/2791)

[`3e1e924`](3e1e924b93)
Thanks [@&#8203;dotansimha](https://redirect.github.com/dotansimha)! -
Enable npm provenance

</details>

<details>
<summary>iamolegga/nestjs-pino (nestjs-pino)</summary>

###
[`v4.4.0`](https://redirect.github.com/iamolegga/nestjs-pino/releases/tag/4.4.0):
: allow publishing source map files

[Compare
Source](https://redirect.github.com/iamolegga/nestjs-pino/compare/4.3.1...4.4.0)

#### What's Changed

- build(deps-dev): bump prettier from 3.5.1 to 3.5.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2255](https://redirect.github.com/iamolegga/nestjs-pino/pull/2255)
- build(deps-dev): bump
[@&#8203;eslint/js](https://redirect.github.com/eslint/js) from 9.20.0
to 9.21.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2256](https://redirect.github.com/iamolegga/nestjs-pino/pull/2256)
- build(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from
22.13.4 to 22.13.5 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2257](https://redirect.github.com/iamolegga/nestjs-pino/pull/2257)
- build(deps-dev): bump ts-jest from 29.2.5 to 29.2.6 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2258](https://redirect.github.com/iamolegga/nestjs-pino/pull/2258)
- build(deps-dev): bump
[@&#8203;eslint/eslintrc](https://redirect.github.com/eslint/eslintrc)
from 3.2.0 to 3.3.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2261](https://redirect.github.com/iamolegga/nestjs-pino/pull/2261)
- build(deps-dev): bump
[@&#8203;eslint/compat](https://redirect.github.com/eslint/compat) from
1.2.6 to 1.2.7 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2262](https://redirect.github.com/iamolegga/nestjs-pino/pull/2262)
- build(deps-dev): bump rxjs from 7.8.1 to 7.8.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2259](https://redirect.github.com/iamolegga/nestjs-pino/pull/2259)
- build(deps-dev): bump eslint from 9.20.1 to 9.21.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2260](https://redirect.github.com/iamolegga/nestjs-pino/pull/2260)
- build(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://redirect.github.com/typescript-eslint/eslint-plugin)
from 8.24.1 to 8.25.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2263](https://redirect.github.com/iamolegga/nestjs-pino/pull/2263)
- build(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser)
from 8.24.1 to 8.25.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2264](https://redirect.github.com/iamolegga/nestjs-pino/pull/2264)
- build(deps-dev): bump eslint-config-prettier from 10.0.1 to 10.0.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2265](https://redirect.github.com/iamolegga/nestjs-pino/pull/2265)
- build(deps-dev): bump
[@&#8203;nestjs/testing](https://redirect.github.com/nestjs/testing)
from 11.0.10 to 11.0.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2267](https://redirect.github.com/iamolegga/nestjs-pino/pull/2267)
- build(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from
22.13.5 to 22.13.8 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2268](https://redirect.github.com/iamolegga/nestjs-pino/pull/2268)
- build(deps-dev): bump
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
from 11.0.10 to 11.0.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2269](https://redirect.github.com/iamolegga/nestjs-pino/pull/2269)
- build(deps-dev): bump prettier from 3.5.2 to 3.5.3 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2271](https://redirect.github.com/iamolegga/nestjs-pino/pull/2271)
- build(deps-dev): bump
[@&#8203;nestjs/core](https://redirect.github.com/nestjs/core) from
11.0.10 to 11.0.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2272](https://redirect.github.com/iamolegga/nestjs-pino/pull/2272)
- build(deps-dev): bump
[@&#8203;nestjs/platform-fastify](https://redirect.github.com/nestjs/platform-fastify)
from 11.0.10 to 11.0.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2273](https://redirect.github.com/iamolegga/nestjs-pino/pull/2273)
- build(deps-dev): bump
[@&#8203;nestjs/common](https://redirect.github.com/nestjs/common) from
11.0.10 to 11.0.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2274](https://redirect.github.com/iamolegga/nestjs-pino/pull/2274)
- build(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from
22.13.8 to 22.13.9 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2275](https://redirect.github.com/iamolegga/nestjs-pino/pull/2275)
- build(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://redirect.github.com/typescript-eslint/eslint-plugin)
from 8.25.0 to 8.26.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2276](https://redirect.github.com/iamolegga/nestjs-pino/pull/2276)
- build(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser)
from 8.25.0 to 8.26.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2277](https://redirect.github.com/iamolegga/nestjs-pino/pull/2277)
- build(deps-dev): bump eslint from 9.21.0 to 9.22.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2278](https://redirect.github.com/iamolegga/nestjs-pino/pull/2278)
- build(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from
22.13.9 to 22.13.10 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2280](https://redirect.github.com/iamolegga/nestjs-pino/pull/2280)
- build(deps-dev): bump eslint-config-prettier from 10.0.2 to 10.1.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2281](https://redirect.github.com/iamolegga/nestjs-pino/pull/2281)
- build(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser)
from 8.26.0 to 8.26.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2284](https://redirect.github.com/iamolegga/nestjs-pino/pull/2284)
- build(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://redirect.github.com/typescript-eslint/eslint-plugin)
from 8.26.0 to 8.26.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2285](https://redirect.github.com/iamolegga/nestjs-pino/pull/2285)
- build(deps-dev): bump typescript from 5.7.3 to 5.8.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2270](https://redirect.github.com/iamolegga/nestjs-pino/pull/2270)
- chore(package): allow publishing source map files by
[@&#8203;H4ad](https://redirect.github.com/H4ad) in
[https://github.com/iamolegga/nestjs-pino/pull/2288](https://redirect.github.com/iamolegga/nestjs-pino/pull/2288)

#### New Contributors

- [@&#8203;H4ad](https://redirect.github.com/H4ad) made their first
contribution in
[https://github.com/iamolegga/nestjs-pino/pull/2288](https://redirect.github.com/iamolegga/nestjs-pino/pull/2288)

**Full Changelog**:
https://github.com/iamolegga/nestjs-pino/compare/4.3.1...4.4.0

</details>

<details>
<summary>nuxt/nuxt (nuxt)</summary>

###
[`v3.16.1`](https://redirect.github.com/nuxt/nuxt/releases/tag/v3.16.1)

[Compare
Source](https://redirect.github.com/nuxt/nuxt/compare/v3.16.0...v3.16.1)

[compare
changes](https://redirect.github.com/nuxt/nuxt/compare/v3.16.0...v3.16.1)

##### 🔥 Performance

- **nuxt:** Use browser cache for payloads
([#&#8203;31379](https://redirect.github.com/nuxt/nuxt/pull/31379))

##### 🩹 Fixes

- **nuxt:** Restore nuxt aliases to nitro compilerOptions.paths
([#&#8203;31278](https://redirect.github.com/nuxt/nuxt/pull/31278))
- **nuxt:** Use new `mocked-exports`
([#&#8203;31295](https://redirect.github.com/nuxt/nuxt/pull/31295))
- **nuxt:** Check resolved options for polyfills
([#&#8203;31307](https://redirect.github.com/nuxt/nuxt/pull/31307))
- **nuxt:** Render style component html
([#&#8203;31337](https://redirect.github.com/nuxt/nuxt/pull/31337))
- **nuxt:** Add missing lazy hydration prop in regex
([#&#8203;31359](https://redirect.github.com/nuxt/nuxt/pull/31359))
- **nuxt:** Fully resolve nuxt dependencies
([#&#8203;31436](https://redirect.github.com/nuxt/nuxt/pull/31436))
- **vite:** Don't show interim vite build output files
([#&#8203;31439](https://redirect.github.com/nuxt/nuxt/pull/31439))
- **nuxt:** Ignore prerendering unprefixed public assets
([151912ec3](https://redirect.github.com/nuxt/nuxt/commit/151912ec3))
- **nuxt:** Use more performant router catchall pattern
([#&#8203;31450](https://redirect.github.com/nuxt/nuxt/pull/31450))
- **nuxt:** Prevent param duplication in `typedPages` implementation
([#&#8203;31331](https://redirect.github.com/nuxt/nuxt/pull/31331))
- **nuxt:** Sort route paths before creating route tree
([#&#8203;31454](https://redirect.github.com/nuxt/nuxt/pull/31454))

##### 📖 Documentation

- Update link to vercel edge network
([ec20802a5](https://redirect.github.com/nuxt/nuxt/commit/ec20802a5))
- Improve HMR performance note for Windows users
([#&#8203;31301](https://redirect.github.com/nuxt/nuxt/pull/31301))
- Correct WSL note phrasing
([#&#8203;31322](https://redirect.github.com/nuxt/nuxt/pull/31322))
- Fix typo
([#&#8203;31341](https://redirect.github.com/nuxt/nuxt/pull/31341))
- Adjust `app.head` example
([#&#8203;31350](https://redirect.github.com/nuxt/nuxt/pull/31350))
- Include package manager options in update script
([#&#8203;31346](https://redirect.github.com/nuxt/nuxt/pull/31346))
- Add missing comma
([#&#8203;31362](https://redirect.github.com/nuxt/nuxt/pull/31362))
- Add mention of `addServerTemplate` to modules guide
([#&#8203;31369](https://redirect.github.com/nuxt/nuxt/pull/31369))
- Add `rspack` and remove `test-utils` for monorepo guide
([#&#8203;31371](https://redirect.github.com/nuxt/nuxt/pull/31371))
- Adjust example
([#&#8203;31372](https://redirect.github.com/nuxt/nuxt/pull/31372))
- Update experimental docs
([#&#8203;31388](https://redirect.github.com/nuxt/nuxt/pull/31388))
- Use `ini` syntax block highlighting for `.env` files
([f79fabe46](https://redirect.github.com/nuxt/nuxt/commit/f79fabe46))
- Improve `useHydration` docs
([#&#8203;31427](https://redirect.github.com/nuxt/nuxt/pull/31427))
- Update broken docs links
([#&#8203;31430](https://redirect.github.com/nuxt/nuxt/pull/31430))
- Mention possibility of prerendering api routes
([#&#8203;31234](https://redirect.github.com/nuxt/nuxt/pull/31234))

##### 🏡 Chore

- Fix gitignore
([6fe9dff7e](https://redirect.github.com/nuxt/nuxt/commit/6fe9dff7e))
- Bump axios dependency in lockfile
([c3352e80b](https://redirect.github.com/nuxt/nuxt/commit/c3352e80b))
- Lint repo
([2ab20bfdc](https://redirect.github.com/nuxt/nuxt/commit/2ab20bfdc))
- Add scorecard badge
([#&#8203;31302](https://redirect.github.com/nuxt/nuxt/pull/31302))
- Dedupe
([be5d85f2b](https://redirect.github.com/nuxt/nuxt/commit/be5d85f2b))

#####  Tests

- Migrate runtime compiler test to playwright (+ add test cases)
([#&#8203;31405](https://redirect.github.com/nuxt/nuxt/pull/31405))
- Migrate spa preloader tests to playwright
([#&#8203;31273](https://redirect.github.com/nuxt/nuxt/pull/31273))
- Use `srvx` and random port for remote provider
([#&#8203;31432](https://redirect.github.com/nuxt/nuxt/pull/31432))

##### 🤖 CI

- Automate release on merge of of v3/v4
([6ae5b5fdb](https://redirect.github.com/nuxt/nuxt/commit/6ae5b5fdb))
- Fix workflow quoting
([fef39cf3c](https://redirect.github.com/nuxt/nuxt/commit/fef39cf3c))

##### ❤️ Contributors

- Daniel Roe
([@&#8203;danielroe](https://redirect.github.com/danielroe))
- Anoesj Sadraee ([@&#8203;Anoesj](https://redirect.github.com/Anoesj))
- Peter Radko ([@&#8203;Gwynerva](https://redirect.github.com/Gwynerva))
- Adam DeHaven
([@&#8203;adamdehaven](https://redirect.github.com/adamdehaven))
- Alex Liu
([@&#8203;Mini-ghost](https://redirect.github.com/Mini-ghost))
- Julien Huang
([@&#8203;huang-julien](https://redirect.github.com/huang-julien))
- Francesco Agnoletto
([@&#8203;Kornil](https://redirect.github.com/Kornil))
- Guillaume Chau ([@&#8203;Akryum](https://redirect.github.com/Akryum))
- imreegall ([@&#8203;imreegall](https://redirect.github.com/imreegall))
-   xjccc ([@&#8203;xjccc](https://redirect.github.com/xjccc))
-   Sam Blowes ([@&#8203;blowsie](https://redirect.github.com/blowsie))
-   Nimit012 ([@&#8203;Nimit012](https://redirect.github.com/Nimit012))
- Camille Coutens ([@&#8203;Kamsou](https://redirect.github.com/Kamsou))

</details>

<details>
<summary>unovue/reka-ui (reka-ui)</summary>

###
[`v2.1.1`](https://redirect.github.com/unovue/reka-ui/releases/tag/v2.1.1)

[Compare
Source](https://redirect.github.com/unovue/reka-ui/compare/v2.1.0...v2.1.1)

#####    🐞 Bug Fixes

-   **Calendar**:
- Properly calculate focus for next month when pagedNavigation is false
 -  by [@&#8203;epr3](https://redirect.github.com/epr3) in
[https://github.com/unovue/reka-ui/issues/1742](https://redirect.github.com/unovue/reka-ui/issues/1742)
[<samp>(7b91b)</samp>](https://redirect.github.com/unovue/reka-ui/commit/7b91bc08)
- Handle number of months > 2  -  by
[@&#8203;epr3](https://redirect.github.com/epr3) in
[https://github.com/unovue/reka-ui/issues/1744](https://redirect.github.com/unovue/reka-ui/issues/1744)
[<samp>(71023)</samp>](https://redirect.github.com/unovue/reka-ui/commit/71023c87)
-   **Combobox**:
- InjectComboboxItemContext is incorrect  -  by
[@&#8203;g12i](https://redirect.github.com/g12i) in
[https://github.com/unovue/reka-ui/issues/1722](https://redirect.github.com/unovue/reka-ui/issues/1722)
[<samp>(1b68e)</samp>](https://redirect.github.com/unovue/reka-ui/commit/1b68e5b5)
-   **HoverCard**:
- Default open type  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia) in
[https://github.com/unovue/reka-ui/issues/1732](https://redirect.github.com/unovue/reka-ui/issues/1732)
[<samp>(16ffc)</samp>](https://redirect.github.com/unovue/reka-ui/commit/16ffcc27)
-   **NavigationMenu**:
- Wrong instance of activetrigger being reference  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia) in
[https://github.com/unovue/reka-ui/issues/1741](https://redirect.github.com/unovue/reka-ui/issues/1741)
[<samp>(b72a9)</samp>](https://redirect.github.com/unovue/reka-ui/commit/b72a90b2)
-   **RangeCalendar**:
- Programatically set value doesn't update the calendar  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia) in
[https://github.com/unovue/reka-ui/issues/1739](https://redirect.github.com/unovue/reka-ui/issues/1739)
[<samp>(80001)</samp>](https://redirect.github.com/unovue/reka-ui/commit/80001892)
-   **Select**:
- Position issue for value missing in content  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia) in
[https://github.com/unovue/reka-ui/issues/1745](https://redirect.github.com/unovue/reka-ui/issues/1745)
[<samp>(770c2)</samp>](https://redirect.github.com/unovue/reka-ui/commit/770c292a)
-   **Slider**:
- Thumb has incorrect tag by default  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia) in
[https://github.com/unovue/reka-ui/issues/1734](https://redirect.github.com/unovue/reka-ui/issues/1734)
[<samp>(f8ebc)</samp>](https://redirect.github.com/unovue/reka-ui/commit/f8ebc9ec)
-   **TagsInput**:
- Fix comparing model values  -  by
[@&#8203;g12i](https://redirect.github.com/g12i) in
[https://github.com/unovue/reka-ui/issues/1723](https://redirect.github.com/unovue/reka-ui/issues/1723)
[<samp>(5dfb7)</samp>](https://redirect.github.com/unovue/reka-ui/commit/5dfb70c3)
-   **Toast**:
- Add missing swipeMove, swipeCancel, and swipeEnd events  -  by
[@&#8203;hartbit](https://redirect.github.com/hartbit) in
[https://github.com/unovue/reka-ui/

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-25 09:29:31 -04:00
renovate[bot]
8f78b3f1ca fix(deps): update dependency marked to v15 (#1249)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [marked](https://marked.js.org)
([source](https://redirect.github.com/markedjs/marked)) | [`^12.0.2` ->
`^15.0.0`](https://renovatebot.com/diffs/npm/marked/12.0.2/15.0.7) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/marked/15.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/marked/15.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/marked/12.0.2/15.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/marked/12.0.2/15.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>markedjs/marked (marked)</summary>

###
[`v15.0.7`](https://redirect.github.com/markedjs/marked/releases/tag/v15.0.7)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v15.0.6...v15.0.7)

##### Bug Fixes

- fix table rendered as heading
([#&#8203;3612](https://redirect.github.com/markedjs/marked/issues/3612))
([9ae87de](9ae87de7cb))

###
[`v15.0.6`](https://redirect.github.com/markedjs/marked/releases/tag/v15.0.6)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v15.0.5...v15.0.6)

##### Bug Fixes

- fix strikethrough inside strong and em to follow gfm
([#&#8203;3577](https://redirect.github.com/markedjs/marked/issues/3577))
([7712a53](7712a5324f))

###
[`v15.0.5`](https://redirect.github.com/markedjs/marked/releases/tag/v15.0.5)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v15.0.4...v15.0.5)

##### Bug Fixes

- allow strikethrough inside strong and em to follow gfm
([#&#8203;3569](https://redirect.github.com/markedjs/marked/issues/3569))
([8a01658](8a01658cac))

###
[`v15.0.4`](https://redirect.github.com/markedjs/marked/releases/tag/v15.0.4)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v15.0.3...v15.0.4)

##### Bug Fixes

- fix list with no items looping forever
([#&#8203;3560](https://redirect.github.com/markedjs/marked/issues/3560))
([e4198ed](e4198ed70d))

###
[`v15.0.3`](https://redirect.github.com/markedjs/marked/releases/tag/v15.0.3)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v15.0.2...v15.0.3)

##### Bug Fixes

- update punctuation regex syntax to fix babel mistaken transpile
([#&#8203;3547](https://redirect.github.com/markedjs/marked/issues/3547))
([9b988c4](9b988c47bd))

###
[`v15.0.2`](https://redirect.github.com/markedjs/marked/releases/tag/v15.0.2)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v15.0.1...v15.0.2)

##### Bug Fixes

- update punctuation regex syntax for compatibility
([#&#8203;3540](https://redirect.github.com/markedjs/marked/issues/3540))
([fd015f1](fd015f147d))

###
[`v15.0.1`](https://redirect.github.com/markedjs/marked/releases/tag/v15.0.1)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v15.0.0...v15.0.1)

##### Bug Fixes

- Remove unused plus typescript tightening
([#&#8203;3527](https://redirect.github.com/markedjs/marked/issues/3527))
([1f579f7](1f579f7628))

###
[`v15.0.0`](https://redirect.github.com/markedjs/marked/releases/tag/v15.0.0)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v14.1.4...v15.0.0)

##### Bug Fixes

- escape html in renderer
([#&#8203;3495](https://redirect.github.com/markedjs/marked/issues/3495))
([58d66e5](58d66e59d1))
- Move all regexps to rules
([#&#8203;3519](https://redirect.github.com/markedjs/marked/issues/3519))
([1f88deb](1f88deb58a))

##### BREAKING CHANGES

-   escape html in renderers instead of tokenizers for all tokens.

###
[`v14.1.4`](https://redirect.github.com/markedjs/marked/releases/tag/v14.1.4)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v14.1.3...v14.1.4)

##### Bug Fixes

- fix del with escaped tilde
([#&#8203;3517](https://redirect.github.com/markedjs/marked/issues/3517))
([0afe87d](0afe87d7fb))
- fix html comment after list
([#&#8203;3518](https://redirect.github.com/markedjs/marked/issues/3518))
([a612576](a612576ff6))

###
[`v14.1.3`](https://redirect.github.com/markedjs/marked/releases/tag/v14.1.3)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v14.1.2...v14.1.3)

##### Bug Fixes

- include single nested parens in emStrong link mask
([#&#8203;3475](https://redirect.github.com/markedjs/marked/issues/3475))
([2b7efa8](2b7efa8dda))
- kill SIGINT signal at man for marked --help
([#&#8203;3483](https://redirect.github.com/markedjs/marked/issues/3483))
([b1fd3ea](b1fd3eafd8))

###
[`v14.1.2`](https://redirect.github.com/markedjs/marked/releases/tag/v14.1.2)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v14.1.1...v14.1.2)

##### Bug Fixes

- fix html following list
([#&#8203;3444](https://redirect.github.com/markedjs/marked/issues/3444))
([9d7b728](9d7b728749))

###
[`v14.1.1`](https://redirect.github.com/markedjs/marked/releases/tag/v14.1.1)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v14.1.0...v14.1.1)

##### Bug Fixes

- Don't replace tabs with spaces
([#&#8203;3438](https://redirect.github.com/markedjs/marked/issues/3438))
([9ed6456](9ed6456a37))

###
[`v14.1.0`](https://redirect.github.com/markedjs/marked/releases/tag/v14.1.0)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v14.0.0...v14.1.0)

##### Bug Fixes

- don't export block or inline
([#&#8203;3427](https://redirect.github.com/markedjs/marked/issues/3427))
([3f0430a](3f0430a45e))

##### Features

- add provideLexer and provideParser hooks
([#&#8203;3424](https://redirect.github.com/markedjs/marked/issues/3424))
([447f5af](447f5af7e4))

###
[`v14.0.0`](https://redirect.github.com/markedjs/marked/releases/tag/v14.0.0)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v13.0.3...v14.0.0)

##### Bug Fixes

- allow async option to dictate type returned
([#&#8203;3341](https://redirect.github.com/markedjs/marked/issues/3341))
([b5a5004](b5a50041ae))
- Remove useNewRenderer
([#&#8203;3342](https://redirect.github.com/markedjs/marked/issues/3342))
([e64f226](e64f226539))

##### BREAKING CHANGES

-   Remove old renderer
- throw an error if `async: false` is set when an extension sets `async:
true`

###
[`v13.0.3`](https://redirect.github.com/markedjs/marked/releases/tag/v13.0.3)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v13.0.2...v13.0.3)

##### Bug Fixes

- fix recursion-like stack overflow error caused by the old render…
([#&#8203;3380](https://redirect.github.com/markedjs/marked/issues/3380))
([89af0b8](89af0b85b1))

###
[`v13.0.2`](https://redirect.github.com/markedjs/marked/releases/tag/v13.0.2)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v13.0.1...v13.0.2)

##### Bug Fixes

- fix list item with blank first line
([#&#8203;3351](https://redirect.github.com/markedjs/marked/issues/3351))
([d28e4c6](d28e4c65ea))

###
[`v13.0.1`](https://redirect.github.com/markedjs/marked/releases/tag/v13.0.1)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v13.0.0...v13.0.1)

##### Bug Fixes

- fix this type in extension methods
([#&#8203;3339](https://redirect.github.com/markedjs/marked/issues/3339))
([520b9ad](520b9ad355))

###
[`v13.0.0`](https://redirect.github.com/markedjs/marked/releases/tag/v13.0.0)

[Compare
Source](https://redirect.github.com/markedjs/marked/compare/v12.0.2...v13.0.0)

##### Bug Fixes

- Fix blockquote code continuation
([#&#8203;3264](https://redirect.github.com/markedjs/marked/issues/3264))
([7ab8185](7ab818502e))
- Add parser as a property on the Renderer object
([#&#8203;3291](https://redirect.github.com/markedjs/marked/issues/3291))
- Send block text tokens to the text renderer
([#&#8203;3291](https://redirect.github.com/markedjs/marked/issues/3291))

##### Features

- Send token objects to renderers
([#&#8203;3291](https://redirect.github.com/markedjs/marked/issues/3291))
([1ce59ea](1ce59ea827))
- Add space renderer that returns empty string by default
([#&#8203;3291](https://redirect.github.com/markedjs/marked/issues/3291))
- Add header and align properties to TableCell token
([#&#8203;3291](https://redirect.github.com/markedjs/marked/issues/3291))
- Add TableRow token
([#&#8203;3291](https://redirect.github.com/markedjs/marked/issues/3291))
- Add Checkbox token
([#&#8203;3291](https://redirect.github.com/markedjs/marked/issues/3291))

##### BREAKING CHANGES

- Add space token after blockquote and hr if there are multiple newlines
- Send token objects to renderers and move logic to parse tokens from
the parser to the renderers.
- Most extensions that update marked renderers should still work with
this version but will break in a future major version.
- Extensions that change marked renderers will need to be updated and
use new option `useNewRenderer` and accept a token object instead of
multiple parameters. See updated [Renderer
docs](https://marked.js.org/using_pro#renderer)

        ```js
        // v12 renderer extension

        const extension = {
          renderer: {
            heading(text, level) {
              // increase level by 1
              return `<h${level + 1}>${text}</h${level + 1}>`;
            }
          }
        };

        marked.use(extension);
        ```

        ```js
        // v13 renderer extension

        const extension = {
          useNewRenderer: true,
          renderer: {
            heading(token) {
              // increase depth by 1
              const text = this.parser.parseInline(token.tokens);
              const level = token.depth;
              return `<h${level + 1}>${text}</h${level + 1}>`;
            }
          }
        };

        marked.use(extension);
        ```

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2025-03-25 09:29:09 -04:00
Michael Datelle
a1d02b486a refactor: swap out dropdown with reka components (#1245)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced a new `DropdownMenu` component in user profiles with
dynamic content rendering.
- Added a new `Popover` component with interactive Storybook demos,
improving component discoverability.
- Added a new `DropdownMenuArrow` component to enhance dropdown visuals.
- Implemented new CSS custom properties for charts, enhancing styling
capabilities in light and dark themes.
- Enhanced dropdown functionality by encapsulating dropdown logic in a
new `UpcDropdownMenu` component.
- Added a new `Select` component for improved user interaction within
the `Sheet` component.
- Introduced a new `SheetWithSelect` story to showcase selection
functionality within the `Sheet` component.
- Updated the `Sidebar` component to improve modal behavior and content
positioning.
- Enhanced `UserProfile` components with a new feedback function for
better status indication.

- **Style**
- Refined layouts by replacing fixed widths with flexible, responsive
designs.
- Updated global styling with a refreshed chart color palette and
expanded dark mode support.

- **Refactor**
- Migrated components to use a unified UI library, streamlining
interactions and boosting consistency.
- Improved type safety in `BrandLoading` component by utilizing a new
type for variants and sizes.
- Updated component imports and organization to enhance maintainability.

- **Bug Fixes**
- Removed unused promotional code and components, simplifying the
codebase and improving performance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
Co-authored-by: Zack Spear <hi@zackspear.com>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2025-03-24 17:24:52 -04:00
Eli Bosley
cc85fba207 fix: update configValid state to ineligible in var.ini and adjust rel… (#1268)
…ated tests

- Changed `configValid` value from "yes" to "ineligible" in `var.ini`.
- Updated tests in `emhttp.test.ts` and `var.test.ts` to reflect the new
state.
- Refactored `var.ts` to handle the new `configErrorState` logic based
on `configValid`.
- Adjusted `config.resolver.ts` to return the correct error state.

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

- **New Features**
- Enhanced configuration status reporting to indicate when settings are
ineligible, improving clarity on configuration validity.

- **Chores**
  - Updated recorded download times to maintain accurate logging.
- Refined the installation process with streamlined dependency linkage
and improved script readability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Zack Spear <hi@zackspear.com>
2025-03-24 14:19:30 -04:00
Eli Bosley
5958d33fce chore: cleanup the cleanup scripts (#1266)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Updated the plugin installation endpoint to use a new port for
improved connectivity.
- Streamlined installation and removal processes for a more reliable
setup and clearer cleanup feedback.
- Introduced a new script to manage cleanup operations, enhancing system
maintenance during removals.
- **Chores**
- Expanded file monitoring to support additional file types, ensuring
timely updates.
- Optimized background operations that configure essential components
for enhanced overall performance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-03-24 12:35:25 -04:00
Zack Spear
3a20930ead feat: UnraidCheckExec for Check OS Updates via UPC dropdown (#1265)
- Added `UnraidCheckExec.php` to separate concerns between UnraidCheck
and ReplaceKey, allowing for JSON responses.
- Updated `unraidcheck` script to parse query strings for compatibility
with the new class.
- Modified `webgui.ts` to call `UnraidCheckExec.php` instead of
`UnraidCheck.php` for update checks.

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

- **New Features**
- Updated the plugin installation process to ensure critical files
remain protected during updates.
- Introduced a dedicated update check component that now returns results
in a JSON format.
- Enhanced the web interface’s update check functionality with
streamlined request parameters.

- **Refactor**
- Separated update checking responsibilities for improved logic clarity
and overall reliability.
- Updated the interface for the update check payload to enhance
parameter handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-21 14:05:17 -07:00
Eli Bosley
bf81a63f8e chore: ensure files are uploaded with proper content encoding (#1254) 2025-03-21 10:28:33 -04:00
Zack Spear
7e6be67f61 feat: add ReplaceKey functionality to plugin (#1264)
This change enhances the plugin's capability to manage license keys
effectively.

- Introduced `ReplaceKey.php` from the webgui repo for handling
auto-extended key check & installation
- Updated dynamix.unraid.net.plg to include the new ReplaceKey.php in
restore and preserve files.
- Changed the `check()` method call in `Registration.page` to use the
`force` parameter per
https://app.asana.com/0/1204220153625175/1209573221367693/f
- Moved the `require_once` for `reboot-details.php` in Downgrade.page
and Update.page to ensure it's included after the `ReplaceKey` check.

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

## Summary by CodeRabbit

- **New Features**
- Enhanced license key management now validates and updates credentials
more reliably.
- Essential configuration files are preserved throughout updates and
uninstalls to maintain system integrity.

- **Chores**
- Optimized the update and registration workflows for a smoother, more
stable user experience.
- Adjusted internal processing steps to prepare for upcoming
improvements in update checks.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-20 14:29:55 -07:00
Zack Spear
6a92f61f1a feat: downgrade page replace key check (#1263)
Joins Update.page and Registration.page in having Replace Key check due
to relation between OS Version & License OS Eligibility

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

## Summary by CodeRabbit

- **New Features**
- Introduced an enhanced system validation step during initialization
that verifies key functionality before processing reboot details,
improving system reliability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-20 14:08:49 -07:00
renovate[bot]
9cad1a9454 fix(deps): update dependency graphql-ws to v6 (#1210)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [graphql-ws](https://the-guild.dev/graphql/ws)
([source](https://redirect.github.com/enisdenjo/graphql-ws)) |
[`^5.16.0` ->
`^6.0.0`](https://renovatebot.com/diffs/npm/graphql-ws/5.16.2/6.0.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/graphql-ws/6.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/graphql-ws/6.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/graphql-ws/5.16.2/6.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/graphql-ws/5.16.2/6.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>enisdenjo/graphql-ws (graphql-ws)</summary>

###
[`v6.0.4`](https://redirect.github.com/enisdenjo/graphql-ws/blob/HEAD/CHANGELOG.md#604)

[Compare
Source](https://redirect.github.com/enisdenjo/graphql-ws/compare/v6.0.3...v6.0.4)

##### Patch Changes

-
[#&#8203;625](https://redirect.github.com/enisdenjo/graphql-ws/pull/625)
[`b4a656d`](b4a656d585)
Thanks [@&#8203;HermanBilous](https://redirect.github.com/HermanBilous)!
- Use Math.pow for retry delay calculation

###
[`v6.0.3`](https://redirect.github.com/enisdenjo/graphql-ws/blob/HEAD/CHANGELOG.md#603)

[Compare
Source](https://redirect.github.com/enisdenjo/graphql-ws/compare/v6.0.2...v6.0.3)

##### Patch Changes

-
[`747c01c`](747c01c73e)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
Drop `ExecutionPatchResult` and `FormattedExecutionPatchResult` types

Neither of the types are officially supported (yet) and the future
versions of graphql-js adding support for stream/defer will a different
signature for the incremental execution result.

###
[`v6.0.2`](https://redirect.github.com/enisdenjo/graphql-ws/blob/HEAD/CHANGELOG.md#602)

[Compare
Source](https://redirect.github.com/enisdenjo/graphql-ws/compare/v6.0.1...v6.0.2)

##### Patch Changes

-
[#&#8203;621](https://redirect.github.com/enisdenjo/graphql-ws/pull/621)
[`6b180e8`](6b180e8fc2)
Thanks [@&#8203;pleunv](https://redirect.github.com/pleunv)! -
FormattedExecutionResult errors field returns GraphQLFormattedError

###
[`v6.0.1`](https://redirect.github.com/enisdenjo/graphql-ws/blob/HEAD/CHANGELOG.md#601)

[Compare
Source](https://redirect.github.com/enisdenjo/graphql-ws/compare/v6.0.0...v6.0.1)

##### Patch Changes

-
[#&#8203;618](https://redirect.github.com/enisdenjo/graphql-ws/pull/618)
[`6be34c7`](6be34c7969)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
Remove exports for CommonJS for Deno exports in package.json

[Deno supports ECMAScript modules
exclusively.](https://docs.deno.com/runtime/fundamentals/modules/)

-
[#&#8203;618](https://redirect.github.com/enisdenjo/graphql-ws/pull/618)
[`6be34c7`](6be34c7969)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
Define exports for CommonJS TypeScript definitions in package.json

###
[`v6.0.0`](https://redirect.github.com/enisdenjo/graphql-ws/blob/HEAD/CHANGELOG.md#600)

[Compare
Source](https://redirect.github.com/enisdenjo/graphql-ws/compare/v5.16.2...v6.0.0)

##### Major Changes

-
[`b668b30`](b668b304a8)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
[@&#8203;fastify/websocket](https://redirect.github.com/fastify/websocket)
WebSocket in the context extra has been renamed from `connection` to
`socket`

##### Migrating from v5 to v6

```diff
import { makeHandler } from 'graphql-ws/use/@&#8203;fastify/websocket';

makeHandler({
  schema(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  context(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onConnect(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onDisconnect(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onClose(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onSubscribe(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onOperation(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onError(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onNext(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
  onComplete(ctx) {
-   const websocket = ctx.connection;
+   const websocket = ctx.socket;
  },
});
```

-
[#&#8203;613](https://redirect.github.com/enisdenjo/graphql-ws/pull/613)
[`3f11aba`](3f11aba495)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
Drop support for `ws` v7

    `ws` v7 has been deprecated. Please upgrade and use v8.

-
[#&#8203;613](https://redirect.github.com/enisdenjo/graphql-ws/pull/613)
[`3f11aba`](3f11aba495)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
Drop support for deprecated `fastify-websocket`

[`fastify-websocket` has been deprecated since
v4.3.0.](https://www.npmjs.com/package/fastify-websocket). Please
upgrade and use
[`@fastify/websocket`](https://redirect.github.com/fastify/fastify-websocket).

-
[#&#8203;613](https://redirect.github.com/enisdenjo/graphql-ws/pull/613)
[`3f11aba`](3f11aba495)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! - The
`/lib/` part from imports has been removed, for example
`graphql-ws/lib/use/ws` becomes `graphql-ws/use/ws`

##### Migrating from v5 to v6

Simply remove the `/lib/` part from your graphql-ws imports that use a
handler.

##### ws

```diff
- import { useServer } from 'graphql-ws/lib/use/ws';
+ import { useServer } from 'graphql-ws/use/ws';
```

##### uWebSockets.js

```diff
- import { makeBehavior } from 'graphql-ws/lib/use/uWebSockets';
+ import { makeBehavior } from 'graphql-ws/use/uWebSockets';
```

#####
[@&#8203;fastify/websocket](https://redirect.github.com/fastify/websocket)

```diff
- import { makeHandler } from 'graphql-ws/lib/use/@&#8203;fastify/websocket';
+ import { makeHandler } from 'graphql-ws/use/@&#8203;fastify/websocket';
```

##### Bun

```diff
- import { handleProtocols, makeHandler } from 'graphql-ws/lib/use/bun';
+ import { handleProtocols, makeHandler } from 'graphql-ws/use/bun';
```

##### Deno

```diff
- import { makeHandler } from 'https://esm.sh/graphql-ws/lib/use/deno';
+ import { makeHandler } from 'https://esm.sh/graphql-ws/use/deno';
```

-
[#&#8203;613](https://redirect.github.com/enisdenjo/graphql-ws/pull/613)
[`3f11aba`](3f11aba495)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
`ErrorMessage` uses and `onError` returns `GraphQLFormattedError`
(instead of `GraphQLError`)

Thanks [@&#8203;benjie](https://redirect.github.com/benjie) for working
on this in
[#&#8203;599](https://redirect.github.com/enisdenjo/graphql-ws/issues/599)

-
[#&#8203;613](https://redirect.github.com/enisdenjo/graphql-ws/pull/613)
[`3f11aba`](3f11aba495)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
Least supported Node version is v20

Node v10 has been deprecated for years now. There is no reason to
support it. Bumping the engine to the current LTS (v20) also allows the
code to be leaner and use less polyfills.

-
[#&#8203;613](https://redirect.github.com/enisdenjo/graphql-ws/pull/613)
[`3f11aba`](3f11aba495)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
Least supported `graphql` peer dependency is ^15.10.1 and ^16

Users are advised to use the latest of `graphql` because of various
improvements in performance and security.

-
[#&#8203;613](https://redirect.github.com/enisdenjo/graphql-ws/pull/613)
[`3f11aba`](3f11aba495)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
`NextMessage` uses and `onNext` returns `FormattedExecutionResult`
(instead of `ExecutionResult`)

-
[#&#8203;613](https://redirect.github.com/enisdenjo/graphql-ws/pull/613)
[`3f11aba`](3f11aba495)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
`schema`, `context`, `onSubscribe`, `onOperation`, `onError`, `onNext`
and `onComplete` hooks don't have the full accompanying message anymore,
only the ID and the relevant part from the message

There is really no need to pass the full `SubscribeMessage` to the
`onSubscribe` hook. The only relevant parts from the message are the
`id` and the `payload`, the `type` is useless since the hook inherently
has it (`onNext` is `next` type, `onError` is `error` type, etc).

The actual techincal reason for not having the full message is to avoid
serialising results and errors twice. Both `onNext` and `onError` allow
the user to augment the result and return it to be used instead.
`onNext` originally had the `NextMessage` argument which already has the
`FormattedExecutionResult`, and `onError` originally had the
`ErrorMessage` argument which already has the `GraphQLFormattedError`,
and they both also returned `FormattedExecutionResult` and
`GraphQLFormattedError` respectivelly - meaning, if the user serialised
the results - the serialisation would happen **twice**.

Additionally, the `onOperation`, `onError`, `onNext` and `onComplete`
now have the `payload` which is the `SubscribeMessage.payload`
(`SubscribePayload`) for easier access to the original query as well as
execution params extensions.

##### Migrating from v5 to v6

##### `schema`

```diff
import { ExecutionArgs } from 'graphql';
import { ServerOptions, SubscribePayload } from 'graphql-ws';

const opts: ServerOptions = {
- schema(ctx, message, argsWithoutSchema: Omit<ExecutionArgs, 'schema'>) {
-   const messageId = message.id;
-   const messagePayload: SubscribePayload = message.payload;
- },
+ schema(ctx, id, payload) {
+   const messageId = id;
+   const messagePayload: SubscribePayload = payload;
+ },
};
```

##### `context`

```diff
import { ExecutionArgs } from 'graphql';
import { ServerOptions, SubscribePayload } from 'graphql-ws';

const opts: ServerOptions = {
- context(ctx, message, args: ExecutionArgs) {
-   const messageId = message.id;
-   const messagePayload: SubscribePayload = message.payload;
- },
+ context(ctx, id, payload, args: ExecutionArgs) {
+   const messageId = id;
+   const messagePayload: SubscribePayload = payload;
+ },
};
```

##### `onSubscribe`

```diff
import { ServerOptions, SubscribePayload } from 'graphql-ws';

const opts: ServerOptions = {
- onSubscribe(ctx, message) {
-   const messageId = message.id;
-   const messagePayload: SubscribePayload = message.payload;
- },
+ onSubscribe(ctx, id, payload) {
+   const messageId = id;
+   const messagePayload: SubscribePayload = payload;
+ },
};
```

##### `onOperation`

The `SubscribeMessage.payload` is not useful here at all, the `payload`
has been parsed to ready-to-use graphql execution args and should be
used instead.

```diff
import { ExecutionArgs } from 'graphql';
import { ServerOptions, SubscribePayload, OperationResult } from 'graphql-ws';

const opts: ServerOptions = {
- onOperation(ctx, message, args: ExecutionArgs, result: OperationResult) {
-   const messageId = message.id;
-   const messagePayload: SubscribePayload = message.payload;
- },
+ onOperation(ctx, id, payload, args: ExecutionArgs, result: OperationResult) {
+   const messageId = id;
+   const messagePayload: SubscribePayload = payload;
+ },
};
```

##### `onError`

The `ErrorMessage.payload` (`GraphQLFormattedError[]`) is not useful
here at all, the user has access to `GraphQLError[]` that are true
instances of the error containing object references to `originalError`s
and other properties. The user can always convert and return
`GraphQLFormattedError[]` by using the `.toJSON()` method.

```diff
import { GraphQLError, GraphQLFormattedError } from 'graphql';
import { ServerOptions, SubscribePayload } from 'graphql-ws';

const opts: ServerOptions = {
- onError(ctx, message, errors) {
-   const messageId = message.id;
-   const graphqlErrors: readonly GraphQLError[] = errors;
-   const errorMessagePayload: readonly GraphQLFormattedError[] = message.payload;
- },
+ onError(ctx, id, payload, errors) {
+   const messageId = id;
+   const graphqlErrors: readonly GraphQLError[] = errors;
+   const subscribeMessagePayload: SubscribePayload = payload;
+   const errorMessagePayload: readonly GraphQLFormattedError[] = errors.map((e) => e.toJSON());
+ },
};
```

##### `onNext`

The `NextMessage.payload` (`FormattedExecutionResult`) is not useful
here at all, the user has access to `ExecutionResult` that contains
actual object references to error instances. The user can always convert
and return `FormattedExecutionResult` by serialising the errors with
`GraphQLError.toJSON()` method.

```diff
import { ExecutionArgs, ExecutionResult, FormattedExecutionResult } from 'graphql';
import { ServerOptions, SubscribePayload } from 'graphql-ws';

const opts: ServerOptions = {
- onNext(ctx, message, args: ExecutionArgs, result: ExecutionResult) {
-   const messageId = message.id;
-   const nextMessagePayload: FormattedExecutionResult = message.payload;
- },
+ onNext(ctx, id, payload, args: ExecutionArgs, result: ExecutionResult) {
+   const messageId = id;
+   const subscribeMessagePayload: SubscribePayload = payload;
+   const nextMessagePayload: FormattedExecutionResult = { ...result, errors: result.errors?.map((e) => e.toJSON()) };
+ },
};
```

##### `onComplete`

```diff
import { ServerOptions, SubscribePayload } from 'graphql-ws';

const opts: ServerOptions = {
- onComplete(ctx, message) {
-   const messageId = message.id;
- },
+ onComplete(ctx, id, payload) {
+   const messageId = id;
+   const subscribeMessagePayload: SubscribePayload = payload;
+ },
};
```

-
[#&#8203;613](https://redirect.github.com/enisdenjo/graphql-ws/pull/613)
[`3f11aba`](3f11aba495)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
Errors thrown from subscription iterables will be caught and reported
through the `ErrorMessage`

Compared to the behaviour before, which terminated the whole WebSocket
connection - those errors are now gracefully reported and terminate only
the specific subscription that threw the error.

There's been [an editorial change in the GraphQL Spec suggesting this
being the correct
approach](https://redirect.github.com/graphql/graphql-spec/pull/1099).

Also, if you'd like to get involved and ideally drop your opinion about
whether iterable errors should be reported as errors or
`ExecutionResult`s with `errors` field set, [please read more
here](https://redirect.github.com/graphql/graphql-spec/pull/1127).

##### Migrating from v5 to v6

If you had used the suggested "ws server usage with custom subscribe
method that gracefully handles thrown errors" recipe, you can simply
remove it since this behaviour is now baked in.

```diff
import { subscribe } from 'graphql';
import { useServer } from 'graphql-ws/use/ws';
import { WebSocketServer } from 'ws'; // yarn add ws

const wsServer = new WebSocketServer({
  port: 4000,
  path: '/graphql',
});

useServer(
  {
    schema,
-   async subscribe(...args) {
-     const result = await subscribe(...args);
-     if ('next' in result) {
-       // is an async iterable, augment the next method to handle thrown errors
-       const originalNext = result.next;
-       result.next = async () => {
-         try {
-           return await originalNext();
-         } catch (err) {
-           // gracefully handle the error thrown from the next method
-           return { value: { errors: [err] } };
-         }
-       };
-     }
-     return result;
-   },
  },
  wsServer,
);
```

-
[#&#8203;613](https://redirect.github.com/enisdenjo/graphql-ws/pull/613)
[`3f11aba`](3f11aba495)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
Remove deprecated `isMessage`, use `validateMessage` instead

##### Migrating from v5 to v6

Replace all ocurrances of `isMessage` with `validateMessage`. Note that
`validateMessage` throws if the message is not valid, compared with
`isMessage` that simply returned true/false.

```diff
- import { isMessage } from 'graphql-ws';
+ import { validateMessage } from 'graphql-ws';

function isGraphQLWSMessage(val) {
- return isMessage(val);
+ try {
+   validateMessage(val);
+   return true;
+ } catch {
+   return false;
+ }
}
```

-
[#&#8203;613](https://redirect.github.com/enisdenjo/graphql-ws/pull/613)
[`3f11aba`](3f11aba495)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
Removed deprecated `isFatalConnectionProblem`, use `shouldRetry` instead

##### Migrating from v5 to v6

Replace all ocurrances of `isFatalConnectionProblem` with `shouldRetry`.
Note that the result is inverted, where you returned `false` in
`isFatalConnectionProblem` you should return `true` in `shouldRetry`.

```diff
import { createClient } from 'graphql-ws';

const client = createClient({
  url: 'ws://localhost:4000/graphql',
- isFatalConnectionProblem: () => false,
+ shouldRetry: () => true,
});
```

##### Minor Changes

-
[#&#8203;613](https://redirect.github.com/enisdenjo/graphql-ws/pull/613)
[`3f11aba`](3f11aba495)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
Client is truly zero-dependency, not even a peer dependency on `graphql`

In non-browser environments, you can use only the client and not even
depend on `graphql` by importing from `graphql-ws/client`.

    ```ts
    import { createClient } from 'graphql-ws/client';

    const client = createClient({
      url: 'ws://localhost:4000/graphql',
    });
    ```

Note that, in browser envirments (and of course having your bundler use
the [`browser` package.json
field](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#browser)),
you don't have to import from `graphql-ws/client` - simply importing
from `graphql-ws` will only have the `createClient` available.

-
[#&#8203;615](https://redirect.github.com/enisdenjo/graphql-ws/pull/615)
[`29dd26a`](29dd26a509)
Thanks [@&#8203;enisdenjo](https://redirect.github.com/enisdenjo)! -
Define optional peer dependencies and least supported versions

Using the
[`peerDependencies`](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependencies)
in combination with
[`peerDependenciesMeta`](https://docs.npmjs.com/cli/v11/configuring-npm/package-json#peerdependenciesmeta)
configuration in `package.json`.

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-20 15:57:04 -04:00
renovate[bot]
2c01ba9610 fix(deps): update dependency vue-i18n to v11 (#1261)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[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))
| [`^10.0.5` ->
`^11.0.0`](https://renovatebot.com/diffs/npm/vue-i18n/10.0.6/11.1.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-i18n/11.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-i18n/11.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-i18n/10.0.6/11.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-i18n/10.0.6/11.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>intlify/vue-i18n (vue-i18n)</summary>

###
[`v11.1.2`](https://redirect.github.com/intlify/vue-i18n/releases/tag/v11.1.2)

[Compare
Source](https://redirect.github.com/intlify/vue-i18n/compare/v11.1.1...v11.1.2)

<!-- Release notes generated using configuration in .github/release.yml
at v11.1.2 -->

#### What's Changed

##### 🔒 Security Fixes

- fix: prototype pollution in `handleFlatJson`, about details see
https://github.com/intlify/vue-i18n/security/advisories/GHSA-p2ph-7g93-hw3m

**Full Changelog**:
https://github.com/intlify/vue-i18n/compare/v11.1.1...v11.1.2

###
[`v11.1.1`](https://redirect.github.com/intlify/vue-i18n/releases/tag/v11.1.1)

[Compare
Source](https://redirect.github.com/intlify/vue-i18n/compare/v11.1.0...v11.1.1)

<!-- Release notes generated using configuration in .github/release.yml
at v11.1.1 -->

**Full Changelog**:
https://github.com/intlify/vue-i18n/compare/v11.1.0...v11.1.1

###
[`v11.1.0`](https://redirect.github.com/intlify/vue-i18n/releases/tag/v11.1.0)

[Compare
Source](https://redirect.github.com/intlify/vue-i18n/compare/v11.0.1...v11.1.0)

<!-- Release notes generated using configuration in .github/release.yml
at v11.1.0 -->

#### What's Changed

##### 🌟 Features

- feat: configurable `ComponentCustomProperties['$i18n']` type by
[@&#8203;BobbieGoede](https://redirect.github.com/BobbieGoede) in
[https://github.com/intlify/vue-i18n/pull/2094](https://redirect.github.com/intlify/vue-i18n/pull/2094)

##### 📝️ Documentations

- fix: vue-i18n v8 EOL by
[@&#8203;kazupon](https://redirect.github.com/kazupon) in
[https://github.com/intlify/vue-i18n/pull/2060](https://redirect.github.com/intlify/vue-i18n/pull/2060)

**Full Changelog**:
https://github.com/intlify/vue-i18n/compare/v11.0.1...v11.1.0

###
[`v11.0.1`](https://redirect.github.com/intlify/vue-i18n/blob/HEAD/CHANGELOG.md#v1101-2024-12-26T074058Z)

[Compare
Source](https://redirect.github.com/intlify/vue-i18n/compare/v11.0.0...v11.0.1)

This changelog is generated by [GitHub
Releases](https://redirect.github.com/intlify/vue-i18n/releases/tag/v11.0.1)

<!-- Release notes generated using configuration in .github/release.yml
at v11.0.1 -->

#### What's Changed

#####  Improvement Features

- fix: v-t custom directive warning when it will run by
[@&#8203;kazupon](https://redirect.github.com/kazupon) in
[https://github.com/intlify/vue-i18n/pull/2057](https://redirect.github.com/intlify/vue-i18n/pull/2057)

**Full Changelog**:
https://github.com/intlify/vue-i18n/compare/v11.0.0...v11.0.1

###
[`v11.0.0`](https://redirect.github.com/intlify/vue-i18n/blob/HEAD/CHANGELOG.md#v1100-2024-12-24T150100Z)

[Compare
Source](https://redirect.github.com/intlify/vue-i18n/compare/v10.0.6...v11.0.0)

This changelog is generated by [GitHub
Releases](https://redirect.github.com/intlify/vue-i18n/releases/tag/v11.0.0)

<!-- Release notes generated using configuration in .github/release.yml
at v11.0.0 -->

#### What's Changed

##### Deprecate Legacy API mode

The Legacy API mode was the API mode compatible with v8 for Vue 2. When
v9 was released, the Legacy API was provided to smooth the migration
from v8 to v9.

Legacy API mode will be deprecated in v11, as previous vue-i18n releases
have already provided the following to support migration to Composition
API mode

- Migration from Legacy API mode to Composition API mode, see the
[docs](https://vue-i18n.intlify.dev/guide/migration/vue3.html)
- Composition API usage, see the
[docs](https://vue-i18n.intlify.dev/guide/advanced/composition.html)

For compatibility, Legacy API mode still works in v11, but will be
removed entirely in v12, so Legacy API mode will not work after that
version.

##### Deprecate Custom Directive `v-t`

The advantage of `v-t` was that it could optimize performance using the
vue compiler transform and the pre-translation of `vue-i18n-extension`.

This feature was supported from Vue 2.
About details see the blog
[article](https://medium.com/@&#8203;kazu_pon/performance-optimization-of-vue-i18n-83099eb45c2d)

In Vue 3, due to the Composition API, the pre-translation of
[`vue-i18n-extension`](https://redirect.github.com/intlify/vue-i18n-extensions)
is now limited only for global scope.

In addition, Vue 3 Virtual DOM optimization has been introduced, and the
optimization provided by `vue-i18n-extension` is no longer very
effective. We need to require settings for SSR, the benefits of using
`v-t` have disappeared. And DX of templates using `v-t` is not good.
Custom directives do not work with key completion in editors (e.g.
vscode).

For compatibility, `v-t` mode still works in v11, but will be removed
entirely in v12, so `v-t` will not work after that version.

##### Drop `tc` and `$tc` for Legacy API mode

These APIs had already deprecated in warning about being dropped in v11.
docs
[says](https://vue-i18n.intlify.dev/guide/migration/breaking10.html#deprecate-tc-and-tc-for-legacy-api-mode)

##### Vue I18n maintenance Status

Vue I18n v8 is no longer supported after 2025. Vue I18n v9 and Vue I18n
v10 is in maintenance mode after 2025 July.

With the release of Vue I18n v11, that version will become mainstream.

The maintenance detail status of Vue I18n v9 and Vue I18n v10 is as
follows:

<img
src="https://raw.githubusercontent.com/intlify/vue-i18n/master/docs/public/lifecycle2025.svg"
/>

You can check the maintenance status on the
[docs](https://vue-i18n.intlify.dev/guide/maintenance.html)

#####  Braeking Changes

- feat!: deprecate Legacy API mode by
[@&#8203;kazupon](https://redirect.github.com/kazupon) in
[https://github.com/intlify/vue-i18n/pull/2016](https://redirect.github.com/intlify/vue-i18n/pull/2016)
- breaking: drop `$tc` and `tc` by
[@&#8203;kazupon](https://redirect.github.com/kazupon) in
[https://github.com/intlify/vue-i18n/pull/2017](https://redirect.github.com/intlify/vue-i18n/pull/2017)
- feat!: deprecate `v-t` custom directive by
[@&#8203;kazupon](https://redirect.github.com/kazupon) in
[https://github.com/intlify/vue-i18n/pull/2045](https://redirect.github.com/intlify/vue-i18n/pull/2045)

#####  Improvement Features

- fix: `tm` function should accept `DefineLocaleMessage` key type by
[@&#8203;BobbieGoede](https://redirect.github.com/BobbieGoede) in
[https://github.com/intlify/vue-i18n/pull/2014](https://redirect.github.com/intlify/vue-i18n/pull/2014)

##### 🔒 Security Fixes

- fix: security vulnerability fix porting by
[@&#8203;kazupon](https://redirect.github.com/kazupon) in
[https://github.com/intlify/vue-i18n/pull/2034](https://redirect.github.com/intlify/vue-i18n/pull/2034)

##### 📝️ Documentations

- Change config prop for quasar flags by
[@&#8203;chrissyast](https://redirect.github.com/chrissyast) in
[https://github.com/intlify/vue-i18n/pull/2003](https://redirect.github.com/intlify/vue-i18n/pull/2003)
- docs: Pluralization Page by
[@&#8203;Sammuel09](https://redirect.github.com/Sammuel09) in
[https://github.com/intlify/vue-i18n/pull/1998](https://redirect.github.com/intlify/vue-i18n/pull/1998)
- docs: fix composition section by
[@&#8203;Sammuel09](https://redirect.github.com/Sammuel09) in
[https://github.com/intlify/vue-i18n/pull/2008](https://redirect.github.com/intlify/vue-i18n/pull/2008)
- fix(docs): correct output in composition api example by
[@&#8203;pejeio](https://redirect.github.com/pejeio) in
[https://github.com/intlify/vue-i18n/pull/2012](https://redirect.github.com/intlify/vue-i18n/pull/2012)
- docs: not use deprecated api by
[@&#8203;kazupon](https://redirect.github.com/kazupon) in
[https://github.com/intlify/vue-i18n/pull/2013](https://redirect.github.com/intlify/vue-i18n/pull/2013)
- docs: fix wrong plural example by
[@&#8203;kazupon](https://redirect.github.com/kazupon) in
[https://github.com/intlify/vue-i18n/pull/2033](https://redirect.github.com/intlify/vue-i18n/pull/2033)
- docx(pluralization.md): Correct spelling from 'gloal' to 'global' by
[@&#8203;PuppyOne](https://redirect.github.com/PuppyOne) in
[https://github.com/intlify/vue-i18n/pull/2038](https://redirect.github.com/intlify/vue-i18n/pull/2038)
- Fix typo by [@&#8203;shaedrich](https://redirect.github.com/shaedrich)
in
[https://github.com/intlify/vue-i18n/pull/2040](https://redirect.github.com/intlify/vue-i18n/pull/2040)
- Fix another typo by
[@&#8203;shaedrich](https://redirect.github.com/shaedrich) in
[https://github.com/intlify/vue-i18n/pull/2041](https://redirect.github.com/intlify/vue-i18n/pull/2041)
- docs: add maintenance status by
[@&#8203;kazupon](https://redirect.github.com/kazupon) in
[https://github.com/intlify/vue-i18n/pull/2044](https://redirect.github.com/intlify/vue-i18n/pull/2044)

#### 👋 New Contributors

- [@&#8203;chrissyast](https://redirect.github.com/chrissyast) made
their first contribution in
[https://github.com/intlify/vue-i18n/pull/2003](https://redirect.github.com/intlify/vue-i18n/pull/2003)
- [@&#8203;Sammuel09](https://redirect.github.com/Sammuel09) made their
first contribution in
[https://github.com/intlify/vue-i18n/pull/1998](https://redirect.github.com/intlify/vue-i18n/pull/1998)
- [@&#8203;pejeio](https://redirect.github.com/pejeio) made their first
contribution in
[https://github.com/intlify/vue-i18n/pull/2012](https://redirect.github.com/intlify/vue-i18n/pull/2012)
- [@&#8203;PuppyOne](https://redirect.github.com/PuppyOne) made their
first contribution in
[https://github.com/intlify/vue-i18n/pull/2038](https://redirect.github.com/intlify/vue-i18n/pull/2038)
- [@&#8203;shaedrich](https://redirect.github.com/shaedrich) made their
first contribution in
[https://github.com/intlify/vue-i18n/pull/2040](https://redirect.github.com/intlify/vue-i18n/pull/2040)

**Full Changelog**:
https://github.com/intlify/vue-i18n/compare/v10.0.4...v11.0.0

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-20 15:56:01 -04:00
renovate[bot]
9ce10a72b2 fix(deps): update vueuse monorepo to v13 (major) (#1262)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@vueuse/components](https://redirect.github.com/vueuse/vueuse/tree/main/packages/components#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/components))
| [`^12.0.0` ->
`^13.0.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcomponents/12.8.2/13.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcomponents/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fcomponents/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fcomponents/12.8.2/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcomponents/12.8.2/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@vueuse/core](https://redirect.github.com/vueuse/vueuse)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core))
| [`^12.0.0` ->
`^13.0.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/12.8.2/13.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcore/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fcore/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fcore/12.8.2/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcore/12.8.2/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vueuse/integrations](https://redirect.github.com/vueuse/vueuse/tree/main/packages/integrations#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/integrations))
| [`^12.0.0` ->
`^13.0.0`](https://renovatebot.com/diffs/npm/@vueuse%2fintegrations/12.8.2/13.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fintegrations/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fintegrations/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fintegrations/12.8.2/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fintegrations/12.8.2/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vueuse/nuxt](https://redirect.github.com/vueuse/vueuse/tree/main/packages/nuxt#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/nuxt))
| [`^12.0.0` ->
`^13.0.0`](https://renovatebot.com/diffs/npm/@vueuse%2fnuxt/12.8.2/13.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fnuxt/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fnuxt/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fnuxt/12.8.2/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fnuxt/12.8.2/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vueuse/vueuse (@&#8203;vueuse/components)</summary>

###
[`v13.0.0`](https://redirect.github.com/vueuse/vueuse/releases/tag/v13.0.0)

[Compare
Source](https://redirect.github.com/vueuse/vueuse/compare/v12.8.2...v13.0.0)

#####    🚨 Breaking Changes

- Drop CJS build, now it's ESM-only  -  by
[@&#8203;antfu](https://redirect.github.com/antfu) in
[https://github.com/vueuse/vueuse/issues/4581](https://redirect.github.com/vueuse/vueuse/issues/4581)
[<samp>(5e046)</samp>](https://redirect.github.com/vueuse/vueuse/commit/5e0467bf)

#####     [View changes on
GitHub](https://redirect.github.com/vueuse/vueuse/compare/v12.8.2...v13.0.0)

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-20 15:03:30 -04:00
Zack Spear
f3e6a0011e feat: ReplaceKey functionality in Registration and Update pages (#1246)
- Handles auto-extensions key check and install of extend license key
with new OS Updates Expiration date

Related to https://github.com/unraid/webgui/pull/2071 but not 100%
dependent on them.

@elibosley, do we want to use the `force` param on the `check()` method
for either of these pages?

Additionally, what do you think about any potential integration with
`UnraidCheck.php` – which is used for the UPC's "Check for Updates"
button and the user configured automatically scheduled update check?

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

## Summary by CodeRabbit

- **New Features**
- Enhanced plugin registration and update processes with an integrated
key validation step that verifies system parameters automatically.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1209573221367688
2025-03-20 14:50:20 -04:00
renovate[bot]
cb2020dee6 fix(deps): update dependency shadcn-vue to v1 (#1259)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [shadcn-vue](https://redirect.github.com/unovue/shadcn-vue)
([source](https://redirect.github.com/unovue/shadcn-vue/tree/HEAD/packages/cli))
| [`^0.11.3` ->
`^1.0.0`](https://renovatebot.com/diffs/npm/shadcn-vue/0.11.4/1.0.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/shadcn-vue/1.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shadcn-vue/1.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shadcn-vue/0.11.4/1.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shadcn-vue/0.11.4/1.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>unovue/shadcn-vue (shadcn-vue)</summary>

###
[`v1.0.3`](https://redirect.github.com/unovue/shadcn-vue/releases/tag/v1.0.3)

[Compare
Source](https://redirect.github.com/unovue/shadcn-vue/compare/v1.0.2...v1.0.3)

#####    🐞 Bug Fixes

- Tags input with combobox demo  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia)
[<samp>(15bd4)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/15bd4314)
- Remove type inference for default valueformmater due to upstream
compiler bug  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia)
[<samp>(098fe)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/098fe5ad)
- Transform js issue  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia)
[<samp>(b1e49)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/b1e49fe6)

#####     [View changes on
GitHub](https://redirect.github.com/unovue/shadcn-vue/compare/v1.0.2...v1.0.3)

###
[`v1.0.2`](https://redirect.github.com/unovue/shadcn-vue/releases/tag/v1.0.2)

[Compare
Source](https://redirect.github.com/unovue/shadcn-vue/compare/v1.0.1...v1.0.2)

#####    🐞 Bug Fixes

- AvatarImage to have slots  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia)
[<samp>(1c9c5)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/1c9c5445)
- Old `checked` api  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia)
[<samp>(239ff)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/239ff691)
- Js detype error when missing local reference to props  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia)
[<samp>(f00c0)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/f00c0de0)
- **Chart**: Invalid chart legend size  -  by
[@&#8203;hooray](https://redirect.github.com/hooray) and
[@&#8203;zernonia](https://redirect.github.com/zernonia) in
[https://github.com/unovue/shadcn-vue/issues/997](https://redirect.github.com/unovue/shadcn-vue/issues/997)
[<samp>(4f3e8)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/4f3e829f)
- **Demo**: Clear input field after sending message in CardChat.vue  - 
by [@&#8203;IceyWu](https://redirect.github.com/IceyWu) in
[https://github.com/unovue/shadcn-vue/issues/959](https://redirect.github.com/unovue/shadcn-vue/issues/959)
[<samp>(6aaa1)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/6aaa1dd9)
- **registry**: Button default styling  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia)
[<samp>(6a544)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/6a544f99)

#####     [View changes on
GitHub](https://redirect.github.com/unovue/shadcn-vue/compare/v1.0.1...v1.0.2)

###
[`v1.0.1`](https://redirect.github.com/unovue/shadcn-vue/releases/tag/v1.0.1)

[Compare
Source](https://redirect.github.com/unovue/shadcn-vue/compare/v1.0.0...v1.0.1)

#####    🐞 Bug Fixes

- **CLI**: Init, support js, update docs  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia) in
[https://github.com/unovue/shadcn-vue/issues/1053](https://redirect.github.com/unovue/shadcn-vue/issues/1053)
[<samp>(cdfe2)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/cdfe2e8e)

#####     [View changes on
GitHub](https://redirect.github.com/unovue/shadcn-vue/compare/v1.0.0...v1.0.1)

###
[`v1.0.0`](https://redirect.github.com/unovue/shadcn-vue/releases/tag/v1.0.0)

[Compare
Source](https://redirect.github.com/unovue/shadcn-vue/compare/v0.11.4...v1.0.0)

#####    🚀 Features

- Reka-ui & updated cli  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia) in
[https://github.com/unovue/shadcn-vue/issues/917](https://redirect.github.com/unovue/shadcn-vue/issues/917)
[<samp>(bc6da)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/bc6dae3d)

#####     [View changes on
GitHub](https://redirect.github.com/unovue/shadcn-vue/compare/v0.11.4...v1.0.0)

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-20 10:29:16 -04:00
renovate[bot]
db189abec4 chore(deps): update dependency @types/pify to v6 (#1228)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @&#8203;types/pify | [`^5.0.4` ->
`^6.0.0`](https://renovatebot.com/diffs/npm/@types%2fpify/5.0.4/6.1.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fpify/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fpify/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fpify/5.0.4/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fpify/5.0.4/6.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### 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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-20 10:25:18 -04:00
renovate[bot]
d8afc8f4c9 fix(deps): update dependency pm2 to v6 (#1258)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [pm2](http://pm2.keymetrics.io/)
([source](https://redirect.github.com/Unitech/pm2)) | [`^5.4.2` ->
`^6.0.0`](https://renovatebot.com/diffs/npm/pm2/5.4.3/6.0.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pm2/6.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pm2/6.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pm2/5.4.3/6.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pm2/5.4.3/6.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>Unitech/pm2 (pm2)</summary>

###
[`v6.0.5`](https://redirect.github.com/Unitech/pm2/blob/HEAD/CHANGELOG.md#605)

[Compare
Source](5e20239d63...v6.0.5)

- Bun support - Fixes
[#&#8203;5893](https://redirect.github.com/Unitech/pm2/issues/5893)
[#&#8203;5774](https://redirect.github.com/Unitech/pm2/issues/5774)
[#&#8203;5682](https://redirect.github.com/Unitech/pm2/issues/5682)
[#&#8203;5675](https://redirect.github.com/Unitech/pm2/issues/5675)
[#&#8203;5777](https://redirect.github.com/Unitech/pm2/issues/5777)
- Disable git parsing by default
[#&#8203;5909](https://redirect.github.com/Unitech/pm2/issues/5909)
[#&#8203;2182](https://redirect.github.com/Unitech/pm2/issues/2182)
[#&#8203;5801](https://redirect.github.com/Unitech/pm2/issues/5801)
[#&#8203;5051](https://redirect.github.com/Unitech/pm2/issues/5051)
[#&#8203;5696](https://redirect.github.com/Unitech/pm2/issues/5696)
- Add WEBP content type for pm2 serve
[#&#8203;5900](https://redirect.github.com/Unitech/pm2/issues/5900)
[@&#8203;tbo47](https://redirect.github.com/tbo47)
- Enable PM2 module update from tarball
[#&#8203;5906](https://redirect.github.com/Unitech/pm2/issues/5906)
[@&#8203;AYOKINYA](https://redirect.github.com/AYOKINYA)
- Fix treekil on FreeBSD
[#&#8203;5896](https://redirect.github.com/Unitech/pm2/issues/5896)
[@&#8203;skeyby](https://redirect.github.com/skeyby)
- fix allowing to update namespaced pm2 NPM module
([@&#8203;org/module-name](https://redirect.github.com/org/module-name))
[#&#8203;5915](https://redirect.github.com/Unitech/pm2/issues/5915)
[@&#8203;endelendel](https://redirect.github.com/endelendel)

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-20 10:25:06 -04:00
Pujit Mehrotra
3bfcc8e8c0 fix: node installation not persisting across reboots (#1256)
thank you to SteveHawk on the unraid.net forums for surfacing this:
https://forums.unraid.net/topic/188319-persist-node-package-download/

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

## Summary by CodeRabbit

- **Bug Fixes**
- Improved the plugin’s file-cleanup process by correcting the reference
used to identify outdated Node.js archive files. This update ensures
that file management functions as intended, contributing to more
reliable plugin behavior.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-20 10:18:40 -04:00
renovate[bot]
1892e23c22 fix(deps): update dependency pino-pretty to v13 (#1250)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [pino-pretty](https://redirect.github.com/pinojs/pino-pretty) |
[`^11.3.0` ->
`^13.0.0`](https://renovatebot.com/diffs/npm/pino-pretty/11.3.0/13.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/pino-pretty/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pino-pretty/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pino-pretty/11.3.0/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pino-pretty/11.3.0/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>pinojs/pino-pretty (pino-pretty)</summary>

###
[`v13.0.0`](https://redirect.github.com/pinojs/pino-pretty/releases/tag/v13.0.0)

[Compare
Source](https://redirect.github.com/pinojs/pino-pretty/compare/v12.1.0...v13.0.0)

#### What's Changed

- chore: replace readable-stream with built-in stream by
[@&#8203;benmccann](https://redirect.github.com/benmccann) in
[https://github.com/pinojs/pino-pretty/pull/542](https://redirect.github.com/pinojs/pino-pretty/pull/542)

#### New Contributors

- [@&#8203;benmccann](https://redirect.github.com/benmccann) made their
first contribution in
[https://github.com/pinojs/pino-pretty/pull/542](https://redirect.github.com/pinojs/pino-pretty/pull/542)

**Full Changelog**:
https://github.com/pinojs/pino-pretty/compare/v12.1.0...v13.0.0

###
[`v12.1.0`](https://redirect.github.com/pinojs/pino-pretty/releases/tag/v12.1.0)

[Compare
Source](https://redirect.github.com/pinojs/pino-pretty/compare/v12.0.0...v12.1.0)

#### What's Changed

- fix: unescape \ for levelKey by
[@&#8203;eliw00d](https://redirect.github.com/eliw00d) in
[https://github.com/pinojs/pino-pretty/pull/538](https://redirect.github.com/pinojs/pino-pretty/pull/538)

**Full Changelog**:
https://github.com/pinojs/pino-pretty/compare/v12.0.0...v12.1.0

###
[`v12.0.0`](https://redirect.github.com/pinojs/pino-pretty/releases/tag/v12.0.0)

[Compare
Source](https://redirect.github.com/pinojs/pino-pretty/compare/v11.3.0...v12.0.0)

#### What's Changed

- build(deps-dev): lock typescript minor version by
[@&#8203;Fdawgs](https://redirect.github.com/Fdawgs) in
[https://github.com/pinojs/pino-pretty/pull/534](https://redirect.github.com/pinojs/pino-pretty/pull/534)
- Bump typescript from 5.0.4 to 5.6.3 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/pinojs/pino-pretty/pull/535](https://redirect.github.com/pinojs/pino-pretty/pull/535)
- Drop support for Node.js 14 & 16 by
[@&#8203;eliw00d](https://redirect.github.com/eliw00d) in
[https://github.com/pinojs/pino-pretty/pull/540](https://redirect.github.com/pinojs/pino-pretty/pull/540)

#### New Contributors

- [@&#8203;eliw00d](https://redirect.github.com/eliw00d) made their
first contribution in
[https://github.com/pinojs/pino-pretty/pull/540](https://redirect.github.com/pinojs/pino-pretty/pull/540)

**Full Changelog**:
https://github.com/pinojs/pino-pretty/compare/v11.3.0...v12.0.0

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-19 22:18:44 -04:00
renovate[bot]
03ece335b8 fix(deps): update dependency jose to v6 (#1248)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [jose](https://redirect.github.com/panva/jose) | [`^5.9.6` ->
`^6.0.0`](https://renovatebot.com/diffs/npm/jose/5.10.0/6.0.10) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jose/6.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jose/6.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jose/5.10.0/6.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jose/5.10.0/6.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>panva/jose (jose)</summary>

###
[`v6.0.10`](https://redirect.github.com/panva/jose/blob/HEAD/CHANGELOG.md#6010-2025-03-12)

[Compare
Source](https://redirect.github.com/panva/jose/compare/v6.0.9...v6.0.10)

##### Refactor

- removed unused claims methods
([74719cf](74719cfcfb))
- reorganize jwt claim set utils
([1f12d88](1f12d88ee8))

###
[`v6.0.9`](https://redirect.github.com/panva/jose/blob/HEAD/CHANGELOG.md#609-2025-03-11)

[Compare
Source](https://redirect.github.com/panva/jose/compare/v6.0.8...v6.0.9)

##### Documentation

- add more symbol document, ignore ts-private fields
([8b73687](8b73687595))
- bump typedoc
([6163a8b](6163a8b6a7))
- drop cdnjs links in README
([a910038](a9100383ab))
- drop denoland/x links in README and add jsr
([3662b9e](3662b9ec44))
- fix key export links from docs/README.md
([c8edfc2](c8edfc2941))

##### Refactor

- always assume structuredClone is present
([f7898a9](f7898a9487))
- hide internal private fields and drop ProduceJWT inheritance
([ab18881](ab18881a57))
- less objects when JWE JWT Replicated Header Parameters are used
([c763a0e](c763a0e373))

###
[`v6.0.8`](https://redirect.github.com/panva/jose/blob/HEAD/CHANGELOG.md#608-2025-02-26)

[Compare
Source](https://redirect.github.com/panva/jose/compare/v6.0.7...v6.0.8)

##### Fixes

- export \[customFetch] symbol from the default entrypoint
([1615614](1615614964)),
closes [#&#8203;762](https://redirect.github.com/panva/jose/issues/762)

###
[`v6.0.7`](https://redirect.github.com/panva/jose/blob/HEAD/CHANGELOG.md#607-2025-02-25)

[Compare
Source](https://redirect.github.com/panva/jose/compare/v6.0.6...v6.0.7)

##### Documentation

- improve generate key/secret and import function descriptions
([cd06359](cd06359597))

##### Fixes

- use \[customFetch] when provided to createRemoteJWKSet
([35f6509](35f6509ff4)),
closes [#&#8203;760](https://redirect.github.com/panva/jose/issues/760)

###
[`v6.0.6`](https://redirect.github.com/panva/jose/blob/HEAD/CHANGELOG.md#606-2025-02-23)

[Compare
Source](https://redirect.github.com/panva/jose/compare/v6.0.5...v6.0.6)

##### Refactor

- move base64url around
([e1350ef](e1350eff87))

##### Documentation

- add various exported symbol descriptions
([3b8ff71](3b8ff717ad))
- add various exported symbol descriptions
([fc4e7da](fc4e7dab4c))
- add various exported symbol descriptions
([74f02c8](74f02c833e))
- update base64url function descriptions
([03d72c8](03d72c8a55))

###
[`v6.0.5`](https://redirect.github.com/panva/jose/blob/HEAD/CHANGELOG.md#605-2025-02-23)

[Compare
Source](https://redirect.github.com/panva/jose/compare/v6.0.4...v6.0.5)

##### Refactor

- **types:** make JWKParameters.kty compatible with
[@&#8203;types/node](https://redirect.github.com/types/node) and
[@&#8203;types/web](https://redirect.github.com/types/web)
([bb6ccfe](bb6ccfed3e))

##### Documentation

- add various exported symbol descriptions
([f52c2ff](f52c2ff0c3))

###
[`v6.0.4`](https://redirect.github.com/panva/jose/blob/HEAD/CHANGELOG.md#604-2025-02-22)

[Compare
Source](https://redirect.github.com/panva/jose/compare/v6.0.3...v6.0.4)

##### Refactor

- optimize base64 with tc39/proposal-arraybuffer-base64
([8a0da69](8a0da6968e)),
closes [#&#8203;752](https://redirect.github.com/panva/jose/issues/752)
- update getSPKI to use crypto.createPublicKey when available
([92392a0](92392a0aa2)),
closes [#&#8203;752](https://redirect.github.com/panva/jose/issues/752)
- use Double HMAC pattern for AES-CBC tag comparison
([f3ba4c7](f3ba4c715f)),
closes [#&#8203;752](https://redirect.github.com/panva/jose/issues/752)

###
[`v6.0.3`](https://redirect.github.com/panva/jose/blob/HEAD/CHANGELOG.md#603-2025-02-22)

[Compare
Source](https://redirect.github.com/panva/jose/compare/v6.0.2...v6.0.3)

##### Documentation

- remove root module tag so that README.md shows up on jsr.io
([ee70698](ee7069818b))

###
[`v6.0.2`](https://redirect.github.com/panva/jose/blob/HEAD/CHANGELOG.md#602-2025-02-22)

[Compare
Source](https://redirect.github.com/panva/jose/compare/v6.0.1...v6.0.2)

##### Documentation

- add module tags to all entrypoints
([a5687aa](a5687aaed4))

###
[`v6.0.1`](https://redirect.github.com/panva/jose/blob/HEAD/CHANGELOG.md#601-2025-02-22)

[Compare
Source](https://redirect.github.com/panva/jose/compare/v6.0.0...v6.0.1)

##### Fixes

- **types:** update build to include extensions in type imports
([9b96672](9b96672ef7))

###
[`v6.0.0`](https://redirect.github.com/panva/jose/blob/HEAD/CHANGELOG.md#600-2025-02-22)

[Compare
Source](https://redirect.github.com/panva/jose/compare/v5.10.0...v6.0.0)

##### ⚠ BREAKING CHANGES

-   The PEMImportOptions type interface is renamed to KeyImportOptions.
-   all builds and bundles now use ES2022 as target
- createRemoteJWKSet now uses fetch, because of that its Node.js only
options.agent property has been removed and new fetch-related options
were added
-   drop support for Ed448 and X448
- drop support for JWK key_ops and CryptoKey usages "(un)wrapKey" and
"deriveKey"
- resolved keys returned as part of verify/decrypt operations (when get
key functions are used) are always normalized to either Uint8Array /
CryptoKey depending on what's more efficient for the executed operation
-   Key "Type" Generics are removed
- CJS-style require is now only possible when require(esm) support is
present in the Node.js runtime
- private KeyObject instances can no longer be used for verify
operations
- private KeyObject instances can no longer be used for encryption
operations
- generateSecret, generateKeyPair, importPKCS8, importSPKI, importJWK,
and importX509 now yield a CryptoKey instead of a KeyObject in Node.js
-   drop support for Node.js 18.x and earlier
- runtime-specific npm releases (jose-browser-runtime,
jose-node-cjs-runtime, and jose-node-esm-runtime) are no longer
maintained or supported
-   removed secp256k1 JWS support
-   removed deprecated experimental APIs
-   removed RSA1\_5 JWE support

##### Features

- enable CryptoKey and KeyObject inputs in JWK thumbprint functions
([6fc9c44](6fc9c4461a))
- JSON Web Key is now an allowed input everywhere
([ebda967](ebda9674e9))

##### Refactor

- always use infered CryptoKey
([c4abaa2](c4abaa265e))
- backport the
[`Ed25519`](https://redirect.github.com/panva/jose/commit/Ed25519) JWS
Algorithm Identifier support
([7a94cb9](7a94cb997a))
- drop support for Ed448 and X448
([2fae1c4](2fae1c447b))
- drop support for JWK key_ops and CryptoKey usages "(un)wrapKey" and
"deriveKey"
([ef918be](ef918be8ba))
- ensure export functions continue to work with KeyObject inputs
([28e9e68](28e9e684bb))
- hardcode the cryptoRuntime export since it is now always WebCryptoAPI
([e00f273](e00f2737fd))
- JWK import extractable default for public keys is now true
([64dcebe](64dcebef36))
- PEM import extractable default for public keys is now true
([4e9f114](4e9f1143c7))
- removed deprecated APIs
([5352083](5352083dc6))
- removed secp256k1 JWS support
([e2b58a5](e2b58a5ca5))
- restructure src/lib and src/runtime now that runtime is fixed
([9b236ce](9b236cec4e))
- target is now ES2022 everywhere
([aa590d5](aa590d569f))
- update importJWK args to align with other import functions
([355a2dd](355a2dd33a))
- WebCryptoAPI is now the only crypto used
([161de46](161de466a2))

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-19 22:18:27 -04:00
Eli Bosley
7bc9949110 fix: make scripts executable when building the plugin (#1255)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced script functionality to automatically set correct executable
permissions for files within "scripts" directories, ensuring that all
relevant scripts run as expected.
- Added symbolic link management for various Node.js binaries, improving
accessibility and organization within the application.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-19 21:13:30 -04:00
renovate[bot]
ad3906e682 fix(deps): update all non-major dependencies (#1251)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [graphql-scalars](https://redirect.github.com/Urigo/graphql-scalars) |
[`1.24.1` ->
`1.24.2`](https://renovatebot.com/diffs/npm/graphql-scalars/1.24.1/1.24.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/graphql-scalars/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/graphql-scalars/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/graphql-scalars/1.24.1/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/graphql-scalars/1.24.1/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [nestjs-pino](https://redirect.github.com/iamolegga/nestjs-pino) |
[`4.3.1` ->
`4.4.0`](https://renovatebot.com/diffs/npm/nestjs-pino/4.3.1/4.4.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/nestjs-pino/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nestjs-pino/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nestjs-pino/4.3.1/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nestjs-pino/4.3.1/4.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.6.4` ->
`10.6.5`](https://renovatebot.com/diffs/npm/pnpm/10.6.4/10.6.5) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.6.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/10.6.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/10.6.4/10.6.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.6.4/10.6.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://redirect.github.com/vitest-dev/vitest)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`3.0.7` ->
`3.0.9`](https://renovatebot.com/diffs/npm/vitest/3.0.7/3.0.9) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.0.7/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.7/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [zx](https://google.github.io/zx/)
([source](https://redirect.github.com/google/zx)) | [`8.3.2` ->
`8.4.1`](https://renovatebot.com/diffs/npm/zx/8.3.2/8.4.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/zx/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/zx/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/zx/8.3.2/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zx/8.3.2/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>Urigo/graphql-scalars (graphql-scalars)</summary>

###
[`v1.24.2`](https://redirect.github.com/Urigo/graphql-scalars/blob/HEAD/CHANGELOG.md#1242)

[Compare
Source](https://redirect.github.com/Urigo/graphql-scalars/compare/v1.24.1...v1.24.2)

##### Patch Changes

-
[#&#8203;2791](https://redirect.github.com/graphql-hive/graphql-scalars/pull/2791)

[`3e1e924`](3e1e924b93)
Thanks [@&#8203;dotansimha](https://redirect.github.com/dotansimha)! -
Enable npm provenance

</details>

<details>
<summary>iamolegga/nestjs-pino (nestjs-pino)</summary>

###
[`v4.4.0`](https://redirect.github.com/iamolegga/nestjs-pino/releases/tag/4.4.0):
: allow publishing source map files

[Compare
Source](https://redirect.github.com/iamolegga/nestjs-pino/compare/4.3.1...4.4.0)

#### What's Changed

- build(deps-dev): bump prettier from 3.5.1 to 3.5.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2255](https://redirect.github.com/iamolegga/nestjs-pino/pull/2255)
- build(deps-dev): bump
[@&#8203;eslint/js](https://redirect.github.com/eslint/js) from 9.20.0
to 9.21.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2256](https://redirect.github.com/iamolegga/nestjs-pino/pull/2256)
- build(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from
22.13.4 to 22.13.5 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2257](https://redirect.github.com/iamolegga/nestjs-pino/pull/2257)
- build(deps-dev): bump ts-jest from 29.2.5 to 29.2.6 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2258](https://redirect.github.com/iamolegga/nestjs-pino/pull/2258)
- build(deps-dev): bump
[@&#8203;eslint/eslintrc](https://redirect.github.com/eslint/eslintrc)
from 3.2.0 to 3.3.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2261](https://redirect.github.com/iamolegga/nestjs-pino/pull/2261)
- build(deps-dev): bump
[@&#8203;eslint/compat](https://redirect.github.com/eslint/compat) from
1.2.6 to 1.2.7 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2262](https://redirect.github.com/iamolegga/nestjs-pino/pull/2262)
- build(deps-dev): bump rxjs from 7.8.1 to 7.8.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2259](https://redirect.github.com/iamolegga/nestjs-pino/pull/2259)
- build(deps-dev): bump eslint from 9.20.1 to 9.21.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2260](https://redirect.github.com/iamolegga/nestjs-pino/pull/2260)
- build(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://redirect.github.com/typescript-eslint/eslint-plugin)
from 8.24.1 to 8.25.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2263](https://redirect.github.com/iamolegga/nestjs-pino/pull/2263)
- build(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser)
from 8.24.1 to 8.25.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2264](https://redirect.github.com/iamolegga/nestjs-pino/pull/2264)
- build(deps-dev): bump eslint-config-prettier from 10.0.1 to 10.0.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2265](https://redirect.github.com/iamolegga/nestjs-pino/pull/2265)
- build(deps-dev): bump
[@&#8203;nestjs/testing](https://redirect.github.com/nestjs/testing)
from 11.0.10 to 11.0.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2267](https://redirect.github.com/iamolegga/nestjs-pino/pull/2267)
- build(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from
22.13.5 to 22.13.8 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2268](https://redirect.github.com/iamolegga/nestjs-pino/pull/2268)
- build(deps-dev): bump
[@&#8203;nestjs/platform-express](https://redirect.github.com/nestjs/platform-express)
from 11.0.10 to 11.0.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2269](https://redirect.github.com/iamolegga/nestjs-pino/pull/2269)
- build(deps-dev): bump prettier from 3.5.2 to 3.5.3 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2271](https://redirect.github.com/iamolegga/nestjs-pino/pull/2271)
- build(deps-dev): bump
[@&#8203;nestjs/core](https://redirect.github.com/nestjs/core) from
11.0.10 to 11.0.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2272](https://redirect.github.com/iamolegga/nestjs-pino/pull/2272)
- build(deps-dev): bump
[@&#8203;nestjs/platform-fastify](https://redirect.github.com/nestjs/platform-fastify)
from 11.0.10 to 11.0.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2273](https://redirect.github.com/iamolegga/nestjs-pino/pull/2273)
- build(deps-dev): bump
[@&#8203;nestjs/common](https://redirect.github.com/nestjs/common) from
11.0.10 to 11.0.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2274](https://redirect.github.com/iamolegga/nestjs-pino/pull/2274)
- build(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from
22.13.8 to 22.13.9 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2275](https://redirect.github.com/iamolegga/nestjs-pino/pull/2275)
- build(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://redirect.github.com/typescript-eslint/eslint-plugin)
from 8.25.0 to 8.26.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2276](https://redirect.github.com/iamolegga/nestjs-pino/pull/2276)
- build(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser)
from 8.25.0 to 8.26.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2277](https://redirect.github.com/iamolegga/nestjs-pino/pull/2277)
- build(deps-dev): bump eslint from 9.21.0 to 9.22.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2278](https://redirect.github.com/iamolegga/nestjs-pino/pull/2278)
- build(deps-dev): bump
[@&#8203;types/node](https://redirect.github.com/types/node) from
22.13.9 to 22.13.10 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2280](https://redirect.github.com/iamolegga/nestjs-pino/pull/2280)
- build(deps-dev): bump eslint-config-prettier from 10.0.2 to 10.1.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2281](https://redirect.github.com/iamolegga/nestjs-pino/pull/2281)
- build(deps-dev): bump
[@&#8203;typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser)
from 8.26.0 to 8.26.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2284](https://redirect.github.com/iamolegga/nestjs-pino/pull/2284)
- build(deps-dev): bump
[@&#8203;typescript-eslint/eslint-plugin](https://redirect.github.com/typescript-eslint/eslint-plugin)
from 8.26.0 to 8.26.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2285](https://redirect.github.com/iamolegga/nestjs-pino/pull/2285)
- build(deps-dev): bump typescript from 5.7.3 to 5.8.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/iamolegga/nestjs-pino/pull/2270](https://redirect.github.com/iamolegga/nestjs-pino/pull/2270)
- chore(package): allow publishing source map files by
[@&#8203;H4ad](https://redirect.github.com/H4ad) in
[https://github.com/iamolegga/nestjs-pino/pull/2288](https://redirect.github.com/iamolegga/nestjs-pino/pull/2288)

#### New Contributors

- [@&#8203;H4ad](https://redirect.github.com/H4ad) made their first
contribution in
[https://github.com/iamolegga/nestjs-pino/pull/2288](https://redirect.github.com/iamolegga/nestjs-pino/pull/2288)

**Full Changelog**:
https://github.com/iamolegga/nestjs-pino/compare/4.3.1...4.4.0

</details>

<details>
<summary>pnpm/pnpm (pnpm)</summary>

###
[`v10.6.5`](https://redirect.github.com/pnpm/pnpm/compare/v10.6.4...v10.6.5)

[Compare
Source](https://redirect.github.com/pnpm/pnpm/compare/v10.6.4...v10.6.5)

</details>

<details>
<summary>vitest-dev/vitest (vitest)</summary>

###
[`v3.0.9`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.9)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9)

#####    🐞 Bug Fixes

- Typings of `ctx.skip()` as `never`  -  by
[@&#8203;sirlancelot](https://redirect.github.com/sirlancelot) in
[https://github.com/vitest-dev/vitest/issues/7608](https://redirect.github.com/vitest-dev/vitest/issues/7608)
[<samp>(09f35)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/09f35301)
- Cleanup vitest in public `resolveConfig` API  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7623](https://redirect.github.com/vitest-dev/vitest/issues/7623)
[<samp>(db14a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/db14ab71)
- Fix `toHaveBeenCalledWith(asymmetricMatcher)` with `undefined`
arguments  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7624](https://redirect.github.com/vitest-dev/vitest/issues/7624)
[<samp>(0fb21)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0fb21faa)
- Race condition in RPC filesystem cache.  -  by
[@&#8203;dts](https://redirect.github.com/dts) in
[https://github.com/vitest-dev/vitest/issues/7531](https://redirect.github.com/vitest-dev/vitest/issues/7531)
[<samp>(b7f55)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b7f55261)
- Fix `getState().testPath` during collection with no isolation  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7640](https://redirect.github.com/vitest-dev/vitest/issues/7640)
[<samp>(3fb3f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3fb3fbf8)
- Support custom toString method in %s format  -  by
[@&#8203;pengooseDev](https://redirect.github.com/pengooseDev) in
[https://github.com/vitest-dev/vitest/issues/7637](https://redirect.github.com/vitest-dev/vitest/issues/7637)
[<samp>(46d93)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/46d93a2e)
-   **browser**:
- Fail playwright timeouts earlier than a test timeout  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7565](https://redirect.github.com/vitest-dev/vitest/issues/7565)
[<samp>(5eb4c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5eb4cd1f)
- Remove
[@&#8203;testing-library/dom](https://redirect.github.com/testing-library/dom)
from dependencies
[#&#8203;7555](https://redirect.github.com/vitest-dev/vitest/issues/7555))"
 -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7628](https://redirect.github.com/vitest-dev/vitest/issues/7628)
and
[https://github.com/vitest-dev/vitest/issues/7555](https://redirect.github.com/vitest-dev/vitest/issues/7555)
[<samp>(94b27)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/94b27af5)
-   **coverage**:
- Browser mode + `coverage.all`  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7597](https://redirect.github.com/vitest-dev/vitest/issues/7597)
[<samp>(422ba)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/422ba66b)
-   **runner**:
- Show stacktrace on hook timeout error  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7502](https://redirect.github.com/vitest-dev/vitest/issues/7502)
[<samp>(268a1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/268a19e1)
-   **vite-node**:
- Fix source map of inlined node_modules  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7557](https://redirect.github.com/vitest-dev/vitest/issues/7557)
[<samp>(34aa3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/34aa322b)
- Fix missing `buildStart`  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7652](https://redirect.github.com/vitest-dev/vitest/issues/7652)
[<samp>(29f5a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/29f5a848)
-   **web-worker**:
- Ensure `removeEventListener` is bound to worker  -  by
[@&#8203;joelgallant](https://redirect.github.com/joelgallant) in
[https://github.com/vitest-dev/vitest/issues/7631](https://redirect.github.com/vitest-dev/vitest/issues/7631)
[<samp>(ff42b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ff42bcb3)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9)

###
[`v3.0.8`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.8)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8)

#####    🐞 Bug Fixes

- Fix fetch cache multiple writes  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7546](https://redirect.github.com/vitest-dev/vitest/issues/7546)
[<samp>(1a8b4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1a8b4337)
- Use browser.isolate instead of config.isolate  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7560](https://redirect.github.com/vitest-dev/vitest/issues/7560)
[<samp>(4b5ed)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4b5ed902)
- Remove vestigial spy stub, import directly from `@vitest/spy`  -  by
[@&#8203;mrginglymus](https://redirect.github.com/mrginglymus) in
[https://github.com/vitest-dev/vitest/issues/7575](https://redirect.github.com/vitest-dev/vitest/issues/7575)
[<samp>(7f7ff)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7f7ff11c)
- Correctly split the argv string  -  by
[@&#8203;btea](https://redirect.github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/7533](https://redirect.github.com/vitest-dev/vitest/issues/7533)
[<samp>(4325a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4325ac67)
-   **browser**:
- Remove
[@&#8203;testing-library/dom](https://redirect.github.com/testing-library/dom)
from dependencies  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7555](https://redirect.github.com/vitest-dev/vitest/issues/7555)
[<samp>(5387a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5387a5b3)
- Improve source map handling for bundled files  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7534](https://redirect.github.com/vitest-dev/vitest/issues/7534)
[<samp>(e2c57)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e2c570b6)
- Print related test file and potential test in unhandled errors  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7564](https://redirect.github.com/vitest-dev/vitest/issues/7564)
[<samp>(fee90)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fee90d85)
-   **runner**:
- Fix `beforeEach/All` cleanup callback timeout  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7500](https://redirect.github.com/vitest-dev/vitest/issues/7500)
[<samp>(0c292)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0c2924b7)
- Fix and simplify `Task.suite` initialization  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7414](https://redirect.github.com/vitest-dev/vitest/issues/7414)
[<samp>(ca9ff)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ca9ffac5)
-   **snapshot**:
- Allow inline snapshot calls on same location with same snapshot  -  by
[@&#8203;jycouet](https://redirect.github.com/jycouet) and
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7464](https://redirect.github.com/vitest-dev/vitest/issues/7464)
[<samp>(d5cb8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d5cb8212)
-   **vite-node**:
- Fix `buildStart` on Vite 6  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7480](https://redirect.github.com/vitest-dev/vitest/issues/7480)
[<samp>(c0f47)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c0f47e03)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8)

</details>

<details>
<summary>google/zx (zx)</summary>

###
[`v8.4.1`](https://redirect.github.com/google/zx/releases/tag/8.4.1): –
Rusty Elbow

[Compare
Source](https://redirect.github.com/google/zx/compare/8.4.0...8.4.1)

Logger enhancements are arriving in this release.
[#&#8203;1119](https://redirect.github.com/google/zx/issues/1119)
[#&#8203;1122](https://redirect.github.com/google/zx/pull/1122)
[#&#8203;1123](https://redirect.github.com/google/zx/pull/1123)
[#&#8203;1125](https://redirect.github.com/google/zx/pull/1125)

- You can customize the output by defining your own formatters for each
log entry kind.

```ts
$.log.formatters = {
  cmd: (entry: LogEntry) => `CMD: ${entry.cmd}`,
  fetch: (entry: LogEntry) => `FETCH: ${entry.url}`
  //...
}
```

- Cmd highlighter now *should* properly detect bins and arguments. If
still not, please report it in
[#&#8203;1122](https://redirect.github.com/google/zx/pull/1122)
- Switched to TS 5.8
[#&#8203;1120](https://redirect.github.com/google/zx/pull/1120)
- Applied [zizmor](https://woodruffw.github.io/zizmor/) to check GHA
workflows
[#&#8203;1126](https://redirect.github.com/google/zx/pull/1126)
- Prettier is now enabled as a pre-commit hook
[#&#8203;1118](https://redirect.github.com/google/zx/pull/1118)

###
[`v8.4.0`](https://redirect.github.com/google/zx/releases/tag/8.4.0): –
Drip Detective

[Compare
Source](https://redirect.github.com/google/zx/compare/8.3.2...8.4.0)

Try the new batch of enhancements: `npm i zx@8.4.0`
https://www.npmjs.com/package/zx/v/8.4.0

#### Changes

- The CLI option `--prefer-local` now allows linking both external
binaries and packages
[#&#8203;1116](https://redirect.github.com/google/zx/pull/1116)
[#&#8203;1117](https://redirect.github.com/google/zx/pull/1117)

```js
const cwd = tmpdir()
const external = tmpdir()
await fs.outputJson(path.join(external, 'node_modules/a/package.json'), {
  name: 'a',
  version: '1.0.0',
  type: 'module',
  exports: './index.js',
})
await fs.outputFile(
  path.join(external, 'node_modules/a/index.js'),
  `
export const a = 'AAA'
`
)
const script = `
import {a} from 'a'
console.log(a);
`
const out = await $`zx --cwd=${cwd} --prefer-local=${external} --test <<< ${script}`
assert.equal(out.stdout, 'AAA\n')
```

- The `quote` has been slightly changed for a conner case, when zx
literal gets an array.
[#&#8203;999](https://redirect.github.com/google/zx/issues/999)
[#&#8203;1113](https://redirect.github.com/google/zx/issues/1113)

```js
const p = $({prefix: '', postfix: ''})`echo ${[1, '', '*', '2']}`

// before
p.cmd //  `echo 1  $'*' 2`) 

// after
p.cmd //  `echo 1 $'' $'*' 2`) 
```

- Provided support for custom script extensions via CLI
[#&#8203;1104](https://redirect.github.com/google/zx/pull/1104)
[#&#8203;1105](https://redirect.github.com/google/zx/pull/1105)

```bash
zx script.zx           # Unknown file extension "\.zx"
zx --ext=mjs script.zx # OK
```

- Enhanced `nothrow` option to suppress any errors
[#&#8203;1108](https://redirect.github.com/google/zx/pull/1108)
[#&#8203;1109](https://redirect.github.com/google/zx/pull/1109)

```js
const err = new Error('BrokenSpawn')
const o = await $({
  nothrow: true,
  spawn() {
    throw err
  },
})`echo foo`
o.ok       // false
o.exitCode // null
o.message  // BrokenSpawn...
o.cause    // err
```

- `@types/node` and `@types/fs-extra` deps replaced with triple-slash
typing refs
[#&#8203;1102](https://redirect.github.com/google/zx/pull/1102)
- Made `ProcessOutput` iterable
[#&#8203;1101](https://redirect.github.com/google/zx/pull/1101)
- Handle inappropriate `ProcessPromise` instantiation
[#&#8203;1097](https://redirect.github.com/google/zx/pull/1097)
[#&#8203;1098](https://redirect.github.com/google/zx/pull/1098)
- Pass origin error as `ProcessOuput` cause
[#&#8203;1110](https://redirect.github.com/google/zx/pull/1110)
- Separated build and release steps
[#&#8203;1106](https://redirect.github.com/google/zx/pull/1106)
-   Internal improvements
- Introduced API bus
[#&#8203;1083](https://redirect.github.com/google/zx/pull/1083)
- Optimized `ProcessOutput` inners
[#&#8203;1096](https://redirect.github.com/google/zx/pull/1096)
[#&#8203;1095](https://redirect.github.com/google/zx/pull/1095)
- Pinned deps
[#&#8203;1099](https://redirect.github.com/google/zx/pull/1099)
[#&#8203;1100](https://redirect.github.com/google/zx/pull/1100)
- Switched to explicit `.ts` extensions for relative imports
[#&#8203;1111](https://redirect.github.com/google/zx/pull/1111)

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-19 10:34:25 -04:00
Eli Bosley
a356bf03fb feat: make log viewer component dynamic (#1242)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced a new Log Viewer configuration component to enhance the
management and application of log settings.

- **Chores**
- Removed the legacy log viewer interface to streamline log management
and improve the overall user experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-19 10:33:12 -04:00
renovate[bot]
57a6c49f8a fix(deps): update all non-major dependencies (#1247)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@nestjs/common](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/common))
| [`11.0.11` ->
`11.0.12`](https://renovatebot.com/diffs/npm/@nestjs%2fcommon/11.0.11/11.0.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcommon/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcommon/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcommon/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcommon/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/core](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/core))
| [`11.0.11` ->
`11.0.12`](https://renovatebot.com/diffs/npm/@nestjs%2fcore/11.0.11/11.0.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fcore/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fcore/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fcore/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fcore/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/platform-fastify](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/platform-fastify))
| [`11.0.11` ->
`11.0.12`](https://renovatebot.com/diffs/npm/@nestjs%2fplatform-fastify/11.0.11/11.0.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fplatform-fastify/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fplatform-fastify/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fplatform-fastify/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fplatform-fastify/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@nestjs/testing](https://nestjs.com)
([source](https://redirect.github.com/nestjs/nest/tree/HEAD/packages/testing))
| [`11.0.11` ->
`11.0.12`](https://renovatebot.com/diffs/npm/@nestjs%2ftesting/11.0.11/11.0.12)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2ftesting/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2ftesting/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2ftesting/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2ftesting/11.0.11/11.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://redirect.github.com/vitest-dev/vitest)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`3.0.7` ->
`3.0.9`](https://renovatebot.com/diffs/npm/vitest/3.0.7/3.0.9) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.0.7/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.7/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [zx](https://google.github.io/zx/)
([source](https://redirect.github.com/google/zx)) | [`8.3.2` ->
`8.4.1`](https://renovatebot.com/diffs/npm/zx/8.3.2/8.4.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/zx/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/zx/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/zx/8.3.2/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zx/8.3.2/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nestjs/nest (@&#8203;nestjs/common)</summary>

###
[`v11.0.12`](https://redirect.github.com/nestjs/nest/compare/v11.0.11...c58f49a3cc7b48916a98dcb81764ce77950d535a)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v11.0.11...c58f49a3cc7b48916a98dcb81764ce77950d535a)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/core)</summary>

###
[`v11.0.12`](https://redirect.github.com/nestjs/nest/compare/v11.0.11...c58f49a3cc7b48916a98dcb81764ce77950d535a)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v11.0.11...c58f49a3cc7b48916a98dcb81764ce77950d535a)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/platform-fastify)</summary>

###
[`v11.0.12`](https://redirect.github.com/nestjs/nest/compare/v11.0.11...c58f49a3cc7b48916a98dcb81764ce77950d535a)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v11.0.11...c58f49a3cc7b48916a98dcb81764ce77950d535a)

</details>

<details>
<summary>nestjs/nest (@&#8203;nestjs/testing)</summary>

###
[`v11.0.12`](https://redirect.github.com/nestjs/nest/compare/v11.0.11...c58f49a3cc7b48916a98dcb81764ce77950d535a)

[Compare
Source](https://redirect.github.com/nestjs/nest/compare/v11.0.11...c58f49a3cc7b48916a98dcb81764ce77950d535a)

</details>

<details>
<summary>vitest-dev/vitest (vitest)</summary>

###
[`v3.0.9`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.9)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9)

#####    🐞 Bug Fixes

- Typings of `ctx.skip()` as `never`  -  by
[@&#8203;sirlancelot](https://redirect.github.com/sirlancelot) in
[https://github.com/vitest-dev/vitest/issues/7608](https://redirect.github.com/vitest-dev/vitest/issues/7608)
[<samp>(09f35)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/09f35301)
- Cleanup vitest in public `resolveConfig` API  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7623](https://redirect.github.com/vitest-dev/vitest/issues/7623)
[<samp>(db14a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/db14ab71)
- Fix `toHaveBeenCalledWith(asymmetricMatcher)` with `undefined`
arguments  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7624](https://redirect.github.com/vitest-dev/vitest/issues/7624)
[<samp>(0fb21)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0fb21faa)
- Race condition in RPC filesystem cache.  -  by
[@&#8203;dts](https://redirect.github.com/dts) in
[https://github.com/vitest-dev/vitest/issues/7531](https://redirect.github.com/vitest-dev/vitest/issues/7531)
[<samp>(b7f55)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b7f55261)
- Fix `getState().testPath` during collection with no isolation  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7640](https://redirect.github.com/vitest-dev/vitest/issues/7640)
[<samp>(3fb3f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3fb3fbf8)
- Support custom toString method in %s format  -  by
[@&#8203;pengooseDev](https://redirect.github.com/pengooseDev) in
[https://github.com/vitest-dev/vitest/issues/7637](https://redirect.github.com/vitest-dev/vitest/issues/7637)
[<samp>(46d93)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/46d93a2e)
-   **browser**:
- Fail playwright timeouts earlier than a test timeout  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7565](https://redirect.github.com/vitest-dev/vitest/issues/7565)
[<samp>(5eb4c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5eb4cd1f)
- Remove
[@&#8203;testing-library/dom](https://redirect.github.com/testing-library/dom)
from dependencies
[#&#8203;7555](https://redirect.github.com/vitest-dev/vitest/issues/7555))"
 -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7628](https://redirect.github.com/vitest-dev/vitest/issues/7628)
and
[https://github.com/vitest-dev/vitest/issues/7555](https://redirect.github.com/vitest-dev/vitest/issues/7555)
[<samp>(94b27)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/94b27af5)
-   **coverage**:
- Browser mode + `coverage.all`  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7597](https://redirect.github.com/vitest-dev/vitest/issues/7597)
[<samp>(422ba)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/422ba66b)
-   **runner**:
- Show stacktrace on hook timeout error  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7502](https://redirect.github.com/vitest-dev/vitest/issues/7502)
[<samp>(268a1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/268a19e1)
-   **vite-node**:
- Fix source map of inlined node_modules  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7557](https://redirect.github.com/vitest-dev/vitest/issues/7557)
[<samp>(34aa3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/34aa322b)
- Fix missing `buildStart`  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7652](https://redirect.github.com/vitest-dev/vitest/issues/7652)
[<samp>(29f5a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/29f5a848)
-   **web-worker**:
- Ensure `removeEventListener` is bound to worker  -  by
[@&#8203;joelgallant](https://redirect.github.com/joelgallant) in
[https://github.com/vitest-dev/vitest/issues/7631](https://redirect.github.com/vitest-dev/vitest/issues/7631)
[<samp>(ff42b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ff42bcb3)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9)

###
[`v3.0.8`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.8)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8)

#####    🐞 Bug Fixes

- Fix fetch cache multiple writes  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7546](https://redirect.github.com/vitest-dev/vitest/issues/7546)
[<samp>(1a8b4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1a8b4337)
- Use browser.isolate instead of config.isolate  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7560](https://redirect.github.com/vitest-dev/vitest/issues/7560)
[<samp>(4b5ed)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4b5ed902)
- Remove vestigial spy stub, import directly from `@vitest/spy`  -  by
[@&#8203;mrginglymus](https://redirect.github.com/mrginglymus) in
[https://github.com/vitest-dev/vitest/issues/7575](https://redirect.github.com/vitest-dev/vitest/issues/7575)
[<samp>(7f7ff)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7f7ff11c)
- Correctly split the argv string  -  by
[@&#8203;btea](https://redirect.github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/7533](https://redirect.github.com/vitest-dev/vitest/issues/7533)
[<samp>(4325a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4325ac67)
-   **browser**:
- Remove
[@&#8203;testing-library/dom](https://redirect.github.com/testing-library/dom)
from dependencies  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7555](https://redirect.github.com/vitest-dev/vitest/issues/7555)
[<samp>(5387a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5387a5b3)
- Improve source map handling for bundled files  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7534](https://redirect.github.com/vitest-dev/vitest/issues/7534)
[<samp>(e2c57)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e2c570b6)
- Print related test file and potential test in unhandled errors  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7564](https://redirect.github.com/vitest-dev/vitest/issues/7564)
[<samp>(fee90)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fee90d85)
-   **runner**:
- Fix `beforeEach/All` cleanup callback timeout  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7500](https://redirect.github.com/vitest-dev/vitest/issues/7500)
[<samp>(0c292)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0c2924b7)
- Fix and simplify `Task.suite` initialization  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7414](https://redirect.github.com/vitest-dev/vitest/issues/7414)
[<samp>(ca9ff)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ca9ffac5)
-   **snapshot**:
- Allow inline snapshot calls on same location with same snapshot  -  by
[@&#8203;jycouet](https://redirect.github.com/jycouet) and
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7464](https://redirect.github.com/vitest-dev/vitest/issues/7464)
[<samp>(d5cb8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d5cb8212)
-   **vite-node**:
- Fix `buildStart` on Vite 6  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7480](https://redirect.github.com/vitest-dev/vitest/issues/7480)
[<samp>(c0f47)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c0f47e03)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8)

</details>

<details>
<summary>google/zx (zx)</summary>

###
[`v8.4.1`](https://redirect.github.com/google/zx/releases/tag/8.4.1): –
Rusty Elbow

[Compare
Source](https://redirect.github.com/google/zx/compare/8.4.0...8.4.1)

Logger enhancements are arriving in this release.
[#&#8203;1119](https://redirect.github.com/google/zx/issues/1119)
[#&#8203;1122](https://redirect.github.com/google/zx/pull/1122)
[#&#8203;1123](https://redirect.github.com/google/zx/pull/1123)
[#&#8203;1125](https://redirect.github.com/google/zx/pull/1125)

- You can customize the output by defining your own formatters for each
log entry kind.

```ts
$.log.formatters = {
  cmd: (entry: LogEntry) => `CMD: ${entry.cmd}`,
  fetch: (entry: LogEntry) => `FETCH: ${entry.url}`
  //...
}
```

- Cmd highlighter now *should* properly detect bins and arguments. If
still not, please report it in
[#&#8203;1122](https://redirect.github.com/google/zx/pull/1122)
- Switched to TS 5.8
[#&#8203;1120](https://redirect.github.com/google/zx/pull/1120)
- Applied [zizmor](https://woodruffw.github.io/zizmor/) to check GHA
workflows
[#&#8203;1126](https://redirect.github.com/google/zx/pull/1126)
- Prettier is now enabled as a pre-commit hook
[#&#8203;1118](https://redirect.github.com/google/zx/pull/1118)

###
[`v8.4.0`](https://redirect.github.com/google/zx/releases/tag/8.4.0): –
Drip Detective

[Compare
Source](https://redirect.github.com/google/zx/compare/8.3.2...8.4.0)

Try the new batch of enhancements: `npm i zx@8.4.0`
https://www.npmjs.com/package/zx/v/8.4.0

#### Changes

- The CLI option `--prefer-local` now allows linking both external
binaries and packages
[#&#8203;1116](https://redirect.github.com/google/zx/pull/1116)
[#&#8203;1117](https://redirect.github.com/google/zx/pull/1117)

```js
const cwd = tmpdir()
const external = tmpdir()
await fs.outputJson(path.join(external, 'node_modules/a/package.json'), {
  name: 'a',
  version: '1.0.0',
  type: 'module',
  exports: './index.js',
})
await fs.outputFile(
  path.join(external, 'node_modules/a/index.js'),
  `
export const a = 'AAA'
`
)
const script = `
import {a} from 'a'
console.log(a);
`
const out = await $`zx --cwd=${cwd} --prefer-local=${external} --test <<< ${script}`
assert.equal(out.stdout, 'AAA\n')
```

- The `quote` has been slightly changed for a conner case, when zx
literal gets an array.
[#&#8203;999](https://redirect.github.com/google/zx/issues/999)
[#&#8203;1113](https://redirect.github.com/google/zx/issues/1113)

```js
const p = $({prefix: '', postfix: ''})`echo ${[1, '', '*', '2']}`

// before
p.cmd //  `echo 1  $'*' 2`) 

// after
p.cmd //  `echo 1 $'' $'*' 2`) 
```

- Provided support for custom script extensions via CLI
[#&#8203;1104](https://redirect.github.com/google/zx/pull/1104)
[#&#8203;1105](https://redirect.github.com/google/zx/pull/1105)

```bash
zx script.zx           # Unknown file extension "\.zx"
zx --ext=mjs script.zx # OK
```

- Enhanced `nothrow` option to suppress any errors
[#&#8203;1108](https://redirect.github.com/google/zx/pull/1108)
[#&#8203;1109](https://redirect.github.com/google/zx/pull/1109)

```js
const err = new Error('BrokenSpawn')
const o = await $({
  nothrow: true,
  spawn() {
    throw err
  },
})`echo foo`
o.ok       // false
o.exitCode // null
o.message  // BrokenSpawn...
o.cause    // err
```

- `@types/node` and `@types/fs-extra` deps replaced with triple-slash
typing refs
[#&#8203;1102](https://redirect.github.com/google/zx/pull/1102)
- Made `ProcessOutput` iterable
[#&#8203;1101](https://redirect.github.com/google/zx/pull/1101)
- Handle inappropriate `ProcessPromise` instantiation
[#&#8203;1097](https://redirect.github.com/google/zx/pull/1097)
[#&#8203;1098](https://redirect.github.com/google/zx/pull/1098)
- Pass origin error as `ProcessOuput` cause
[#&#8203;1110](https://redirect.github.com/google/zx/pull/1110)
- Separated build and release steps
[#&#8203;1106](https://redirect.github.com/google/zx/pull/1106)
-   Internal improvements
- Introduced API bus
[#&#8203;1083](https://redirect.github.com/google/zx/pull/1083)
- Optimized `ProcessOutput` inners
[#&#8203;1096](https://redirect.github.com/google/zx/pull/1096)
[#&#8203;1095](https://redirect.github.com/google/zx/pull/1095)
- Pinned deps
[#&#8203;1099](https://redirect.github.com/google/zx/pull/1099)
[#&#8203;1100](https://redirect.github.com/google/zx/pull/1100)
- Switched to explicit `.ts` extensions for relative imports
[#&#8203;1111](https://redirect.github.com/google/zx/pull/1111)

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-19 10:01:29 -04:00
renovate[bot]
9e54237670 fix(deps): update dependency @nestjs/passport to v11 (#1244)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@nestjs/passport](https://redirect.github.com/nestjs/passport) |
[`^10.0.3` ->
`^11.0.0`](https://renovatebot.com/diffs/npm/@nestjs%2fpassport/10.0.3/11.0.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs%2fpassport/11.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs%2fpassport/11.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs%2fpassport/10.0.3/11.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs%2fpassport/10.0.3/11.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>nestjs/passport (@&#8203;nestjs/passport)</summary>

###
[`v11.0.5`](https://redirect.github.com/nestjs/passport/releases/tag/11.0.5)

[Compare
Source](https://redirect.github.com/nestjs/passport/compare/11.0.4...11.0.5)

- fix: exclude last argument only if its of type function (cb)
([`1a7123a`](https://redirect.github.com/nestjs/passport/commit/1a7123a))

###
[`v11.0.4`](https://redirect.github.com/nestjs/passport/releases/tag/11.0.4)

[Compare
Source](https://redirect.github.com/nestjs/passport/compare/11.0.3...11.0.4)

- fix: remove redundant exclude unknown type
([`7a7ea87`](https://redirect.github.com/nestjs/passport/commit/7a7ea87))
- fix: strategy ctor overload type extractor generic. Solves
[#&#8203;1857](https://redirect.github.com/nestjs/passport/issues/1857)
([`99a3245`](https://redirect.github.com/nestjs/passport/commit/99a3245))

###
[`v11.0.3`](https://redirect.github.com/nestjs/passport/releases/tag/11.0.3)

[Compare
Source](77932e11eb...11.0.3)

- fix: use all ctor params type to include overloads
[#&#8203;1857](https://redirect.github.com/nestjs/passport/issues/1857)
([`84c8838`](https://redirect.github.com/nestjs/passport/commit/84c8838))

###
[`v11.0.2`](https://redirect.github.com/nestjs/passport/compare/11.0.1...77932e11eb15dd4e8a710953c3230e1105072caa)

[Compare
Source](https://redirect.github.com/nestjs/passport/compare/11.0.1...77932e11eb15dd4e8a710953c3230e1105072caa)

###
[`v11.0.1`](https://redirect.github.com/nestjs/passport/compare/11.0.0...11.0.1)

[Compare
Source](https://redirect.github.com/nestjs/passport/compare/11.0.0...11.0.1)

###
[`v11.0.0`](https://redirect.github.com/nestjs/passport/releases/tag/11.0.0)

[Compare
Source](https://redirect.github.com/nestjs/passport/compare/10.0.3...11.0.0)

### v11.0.0

-
[https://github.com/nestjs/passport/pull/1641](https://redirect.github.com/nestjs/passport/pull/1641)
-
[https://github.com/nestjs/passport/pull/1439](https://redirect.github.com/nestjs/passport/pull/1439)

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-18 16:52:09 -04:00
renovate[bot]
f56d6ce5a2 chore(deps): update dependency node to v22 (#1243)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [node](https://redirect.github.com/actions/node-versions) | uses-with
| major | `20.x` -> `22.x` |

---

### Release Notes

<details>
<summary>actions/node-versions (node)</summary>

###
[`v22.14.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.14.0-13265982013):
22.14.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.13.1-12900459766...22.14.0-13265982013)

Node.js 22.14.0

###
[`v22.13.1`](https://redirect.github.com/actions/node-versions/releases/tag/22.13.1-12900459766):
22.13.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.13.0-12671059536...22.13.1-12900459766)

Node.js 22.13.1

###
[`v22.13.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.13.0-12671059536):
22.13.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.12.0-12152383658...22.13.0-12671059536)

Node.js 22.13.0

###
[`v22.12.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.12.0-12152383658):
22.12.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.11.0-11593095476...22.12.0-12152383658)

Node.js 22.12.0

###
[`v22.11.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.11.0-11593095476):
22.11.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.10.0-11377615849...22.11.0-11593095476)

Node.js 22.11.0

###
[`v22.10.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.10.0-11377615849):
22.10.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.9.0-10914884886...22.10.0-11377615849)

Node.js 22.10.0

###
[`v22.9.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.9.0-10914884886):
22.9.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.8.0-10685632420...22.9.0-10914884886)

Node.js 22.9.0

###
[`v22.8.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.8.0-10685632420):
22.8.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.7.0-10511334152...22.8.0-10685632420)

Node.js 22.8.0

###
[`v22.7.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.7.0-10511334152):
22.7.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.6.0-10277432289...22.7.0-10511334152)

Node.js 22.7.0

###
[`v22.6.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.6.0-10277432289):
22.6.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.5.1-10010673511...22.6.0-10277432289)

Node.js 22.6.0

###
[`v22.5.1`](https://redirect.github.com/actions/node-versions/releases/tag/22.5.1-10010673511):
22.5.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.5.0-9985144103...22.5.1-10010673511)

Node.js 22.5.1

###
[`v22.5.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.5.0-9985144103):
22.5.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.4.1-9860948056...22.5.0-9985144103)

Node.js 22.5.0

###
[`v22.4.1`](https://redirect.github.com/actions/node-versions/releases/tag/22.4.1-9860948056):
22.4.1

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.4.0-9766506602...22.4.1-9860948056)

Node.js 22.4.1

###
[`v22.4.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.4.0-9766506602):
22.4.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.3.0-9569309553...22.4.0-9766506602)

Node.js 22.4.0

###
[`v22.3.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.3.0-9569309553):
22.3.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.2.0-9105861751...22.3.0-9569309553)

Node.js 22.3.0

###
[`v22.2.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.2.0-9105861751):
22.2.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.1.0-8926142033...22.2.0-9105861751)

Node.js 22.2.0

###
[`v22.1.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.1.0-8926142033):
22.1.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/22.0.0-8879734543...22.1.0-8926142033)

Node.js 22.1.0

###
[`v22.0.0`](https://redirect.github.com/actions/node-versions/releases/tag/22.0.0-8879734543):
22.0.0

[Compare
Source](https://redirect.github.com/actions/node-versions/compare/20.19.0-13838090974...22.0.0-8879734543)

Node.js 22.0.0

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-18 16:39:56 -04:00
renovate[bot]
590ab7327f fix(deps): update dependency ini to v5 (#1217)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ini](https://redirect.github.com/npm/ini) | [`^4.1.2` ->
`^5.0.0`](https://renovatebot.com/diffs/npm/ini/4.1.3/5.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ini/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ini/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ini/4.1.3/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ini/4.1.3/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>npm/ini (ini)</summary>

###
[`v5.0.0`](https://redirect.github.com/npm/ini/blob/HEAD/CHANGELOG.md#500-2024-09-03)

[Compare
Source](https://redirect.github.com/npm/ini/compare/v4.1.3...v5.0.0)

##### ⚠️ BREAKING CHANGES

-   `ini` now supports node `^18.17.0 || >=20.5.0`

##### Bug Fixes

-
[`3eca645`](3eca645de8)
[#&#8203;279](https://redirect.github.com/npm/ini/pull/279) align to npm
10 node engine range
([@&#8203;hashtagchris](https://redirect.github.com/hashtagchris))

##### Chores

-
[`c89e209`](c89e2090d7)
[#&#8203;279](https://redirect.github.com/npm/ini/pull/279) run
template-oss-apply
([@&#8203;hashtagchris](https://redirect.github.com/hashtagchris))
-
[`fc44750`](fc447500ef)
[#&#8203;276](https://redirect.github.com/npm/ini/pull/276) bump
[@&#8203;npmcli/eslint-config](https://redirect.github.com/npmcli/eslint-config)
from 4.0.5 to 5.0.0
([@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot])
-
[`21c20bb`](21c20bb172)
[#&#8203;277](https://redirect.github.com/npm/ini/pull/277) postinstall
for dependabot template-oss PR
([@&#8203;hashtagchris](https://redirect.github.com/hashtagchris))
-
[`44b3b50`](44b3b503fd)
[#&#8203;277](https://redirect.github.com/npm/ini/pull/277) bump
[@&#8203;npmcli/template-oss](https://redirect.github.com/npmcli/template-oss)
from 4.23.1 to 4.23.3
([@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot])

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODUuNCIsInVwZGF0ZWRJblZlciI6IjM5LjE4NS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-18 16:39:36 -04:00
renovate[bot]
9d63e56374 fix(deps): update all non-major dependencies (#1236)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vitest](https://redirect.github.com/vitest-dev/vitest)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`3.0.7` ->
`3.0.9`](https://renovatebot.com/diffs/npm/vitest/3.0.7/3.0.9) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.0.7/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.7/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vuetify](https://vuetifyjs.com)
([source](https://redirect.github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify))
| [`3.7.17` ->
`3.7.18`](https://renovatebot.com/diffs/npm/vuetify/3.7.17/3.7.18) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vuetify/3.7.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vuetify/3.7.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vuetify/3.7.17/3.7.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vuetify/3.7.17/3.7.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [zx](https://google.github.io/zx/)
([source](https://redirect.github.com/google/zx)) | [`8.3.2` ->
`8.4.1`](https://renovatebot.com/diffs/npm/zx/8.3.2/8.4.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/zx/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/zx/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/zx/8.3.2/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/zx/8.3.2/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest (vitest)</summary>

###
[`v3.0.9`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.9)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9)

#####    🐞 Bug Fixes

- Typings of `ctx.skip()` as `never`  -  by
[@&#8203;sirlancelot](https://redirect.github.com/sirlancelot) in
[https://github.com/vitest-dev/vitest/issues/7608](https://redirect.github.com/vitest-dev/vitest/issues/7608)
[<samp>(09f35)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/09f35301)
- Cleanup vitest in public `resolveConfig` API  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7623](https://redirect.github.com/vitest-dev/vitest/issues/7623)
[<samp>(db14a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/db14ab71)
- Fix `toHaveBeenCalledWith(asymmetricMatcher)` with `undefined`
arguments  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7624](https://redirect.github.com/vitest-dev/vitest/issues/7624)
[<samp>(0fb21)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0fb21faa)
- Race condition in RPC filesystem cache.  -  by
[@&#8203;dts](https://redirect.github.com/dts) in
[https://github.com/vitest-dev/vitest/issues/7531](https://redirect.github.com/vitest-dev/vitest/issues/7531)
[<samp>(b7f55)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b7f55261)
- Fix `getState().testPath` during collection with no isolation  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7640](https://redirect.github.com/vitest-dev/vitest/issues/7640)
[<samp>(3fb3f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3fb3fbf8)
- Support custom toString method in %s format  -  by
[@&#8203;pengooseDev](https://redirect.github.com/pengooseDev) in
[https://github.com/vitest-dev/vitest/issues/7637](https://redirect.github.com/vitest-dev/vitest/issues/7637)
[<samp>(46d93)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/46d93a2e)
-   **browser**:
- Fail playwright timeouts earlier than a test timeout  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7565](https://redirect.github.com/vitest-dev/vitest/issues/7565)
[<samp>(5eb4c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5eb4cd1f)
- Remove
[@&#8203;testing-library/dom](https://redirect.github.com/testing-library/dom)
from dependencies
[#&#8203;7555](https://redirect.github.com/vitest-dev/vitest/issues/7555))"
 -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7628](https://redirect.github.com/vitest-dev/vitest/issues/7628)
and
[https://github.com/vitest-dev/vitest/issues/7555](https://redirect.github.com/vitest-dev/vitest/issues/7555)
[<samp>(94b27)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/94b27af5)
-   **coverage**:
- Browser mode + `coverage.all`  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7597](https://redirect.github.com/vitest-dev/vitest/issues/7597)
[<samp>(422ba)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/422ba66b)
-   **runner**:
- Show stacktrace on hook timeout error  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7502](https://redirect.github.com/vitest-dev/vitest/issues/7502)
[<samp>(268a1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/268a19e1)
-   **vite-node**:
- Fix source map of inlined node_modules  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7557](https://redirect.github.com/vitest-dev/vitest/issues/7557)
[<samp>(34aa3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/34aa322b)
- Fix missing `buildStart`  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7652](https://redirect.github.com/vitest-dev/vitest/issues/7652)
[<samp>(29f5a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/29f5a848)
-   **web-worker**:
- Ensure `removeEventListener` is bound to worker  -  by
[@&#8203;joelgallant](https://redirect.github.com/joelgallant) in
[https://github.com/vitest-dev/vitest/issues/7631](https://redirect.github.com/vitest-dev/vitest/issues/7631)
[<samp>(ff42b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ff42bcb3)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9)

###
[`v3.0.8`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.8)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8)

#####    🐞 Bug Fixes

- Fix fetch cache multiple writes  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7546](https://redirect.github.com/vitest-dev/vitest/issues/7546)
[<samp>(1a8b4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1a8b4337)
- Use browser.isolate instead of config.isolate  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7560](https://redirect.github.com/vitest-dev/vitest/issues/7560)
[<samp>(4b5ed)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4b5ed902)
- Remove vestigial spy stub, import directly from `@vitest/spy`  -  by
[@&#8203;mrginglymus](https://redirect.github.com/mrginglymus) in
[https://github.com/vitest-dev/vitest/issues/7575](https://redirect.github.com/vitest-dev/vitest/issues/7575)
[<samp>(7f7ff)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7f7ff11c)
- Correctly split the argv string  -  by
[@&#8203;btea](https://redirect.github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/7533](https://redirect.github.com/vitest-dev/vitest/issues/7533)
[<samp>(4325a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4325ac67)
-   **browser**:
- Remove
[@&#8203;testing-library/dom](https://redirect.github.com/testing-library/dom)
from dependencies  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7555](https://redirect.github.com/vitest-dev/vitest/issues/7555)
[<samp>(5387a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5387a5b3)
- Improve source map handling for bundled files  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7534](https://redirect.github.com/vitest-dev/vitest/issues/7534)
[<samp>(e2c57)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e2c570b6)
- Print related test file and potential test in unhandled errors  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7564](https://redirect.github.com/vitest-dev/vitest/issues/7564)
[<samp>(fee90)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fee90d85)
-   **runner**:
- Fix `beforeEach/All` cleanup callback timeout  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7500](https://redirect.github.com/vitest-dev/vitest/issues/7500)
[<samp>(0c292)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0c2924b7)
- Fix and simplify `Task.suite` initialization  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7414](https://redirect.github.com/vitest-dev/vitest/issues/7414)
[<samp>(ca9ff)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ca9ffac5)
-   **snapshot**:
- Allow inline snapshot calls on same location with same snapshot  -  by
[@&#8203;jycouet](https://redirect.github.com/jycouet) and
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7464](https://redirect.github.com/vitest-dev/vitest/issues/7464)
[<samp>(d5cb8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d5cb8212)
-   **vite-node**:
- Fix `buildStart` on Vite 6  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7480](https://redirect.github.com/vitest-dev/vitest/issues/7480)
[<samp>(c0f47)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c0f47e03)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8)

</details>

<details>
<summary>vuetifyjs/vuetify (vuetify)</summary>

###
[`v3.7.18`](https://redirect.github.com/vuetifyjs/vuetify/compare/v3.7.17...b210f127992253f7daaae5ea3e5a504ee515b025)

[Compare
Source](https://redirect.github.com/vuetifyjs/vuetify/compare/v3.7.17...v3.7.18)

</details>

<details>
<summary>google/zx (zx)</summary>

###
[`v8.4.1`](https://redirect.github.com/google/zx/releases/tag/8.4.1): –
Rusty Elbow

[Compare
Source](https://redirect.github.com/google/zx/compare/8.4.0...8.4.1)

Logger enhancements are arriving in this release.
[#&#8203;1119](https://redirect.github.com/google/zx/issues/1119)
[#&#8203;1122](https://redirect.github.com/google/zx/pull/1122)
[#&#8203;1123](https://redirect.github.com/google/zx/pull/1123)
[#&#8203;1125](https://redirect.github.com/google/zx/pull/1125)

- You can customize the output by defining your own formatters for each
log entry kind.

```ts
$.log.formatters = {
  cmd: (entry: LogEntry) => `CMD: ${entry.cmd}`,
  fetch: (entry: LogEntry) => `FETCH: ${entry.url}`
  //...
}
```

- Cmd highlighter now *should* properly detect bins and arguments. If
still not, please report it in
[#&#8203;1122](https://redirect.github.com/google/zx/pull/1122)
- Switched to TS 5.8
[#&#8203;1120](https://redirect.github.com/google/zx/pull/1120)
- Applied [zizmor](https://woodruffw.github.io/zizmor/) to check GHA
workflows
[#&#8203;1126](https://redirect.github.com/google/zx/pull/1126)
- Prettier is now enabled as a pre-commit hook
[#&#8203;1118](https://redirect.github.com/google/zx/pull/1118)

###
[`v8.4.0`](https://redirect.github.com/google/zx/releases/tag/8.4.0): –
Drip Detective

[Compare
Source](https://redirect.github.com/google/zx/compare/8.3.2...8.4.0)

Try the new batch of enhancements: `npm i zx@8.4.0`
https://www.npmjs.com/package/zx/v/8.4.0

#### Changes

- The CLI option `--prefer-local` now allows linking both external
binaries and packages
[#&#8203;1116](https://redirect.github.com/google/zx/pull/1116)
[#&#8203;1117](https://redirect.github.com/google/zx/pull/1117)

```js
const cwd = tmpdir()
const external = tmpdir()
await fs.outputJson(path.join(external, 'node_modules/a/package.json'), {
  name: 'a',
  version: '1.0.0',
  type: 'module',
  exports: './index.js',
})
await fs.outputFile(
  path.join(external, 'node_modules/a/index.js'),
  `
export const a = 'AAA'
`
)
const script = `
import {a} from 'a'
console.log(a);
`
const out = await $`zx --cwd=${cwd} --prefer-local=${external} --test <<< ${script}`
assert.equal(out.stdout, 'AAA\n')
```

- The `quote` has been slightly changed for a conner case, when zx
literal gets an array.
[#&#8203;999](https://redirect.github.com/google/zx/issues/999)
[#&#8203;1113](https://redirect.github.com/google/zx/issues/1113)

```js
const p = $({prefix: '', postfix: ''})`echo ${[1, '', '*', '2']}`

// before
p.cmd //  `echo 1  $'*' 2`) 

// after
p.cmd //  `echo 1 $'' $'*' 2`) 
```

- Provided support for custom script extensions via CLI
[#&#8203;1104](https://redirect.github.com/google/zx/pull/1104)
[#&#8203;1105](https://redirect.github.com/google/zx/pull/1105)

```bash
zx script.zx           # Unknown file extension "\.zx"
zx --ext=mjs script.zx # OK
```

- Enhanced `nothrow` option to suppress any errors
[#&#8203;1108](https://redirect.github.com/google/zx/pull/1108)
[#&#8203;1109](https://redirect.github.com/google/zx/pull/1109)

```js
const err = new Error('BrokenSpawn')
const o = await $({
  nothrow: true,
  spawn() {
    throw err
  },
})`echo foo`
o.ok       // false
o.exitCode // null
o.message  // BrokenSpawn...
o.cause    // err
```

- `@types/node` and `@types/fs-extra` deps replaced with triple-slash
typing refs
[#&#8203;1102](https://redirect.github.com/google/zx/pull/1102)
- Made `ProcessOutput` iterable
[#&#8203;1101](https://redirect.github.com/google/zx/pull/1101)
- Handle inappropriate `ProcessPromise` instantiation
[#&#8203;1097](https://redirect.github.com/google/zx/pull/1097)
[#&#8203;1098](https://redirect.github.com/google/zx/pull/1098)
- Pass origin error as `ProcessOuput` cause
[#&#8203;1110](https://redirect.github.com/google/zx/pull/1110)
- Separated build and release steps
[#&#8203;1106](https://redirect.github.com/google/zx/pull/1106)
-   Internal improvements
- Introduced API bus
[#&#8203;1083](https://redirect.github.com/google/zx/pull/1083)
- Optimized `ProcessOutput` inners
[#&#8203;1096](https://redirect.github.com/google/zx/pull/1096)
[#&#8203;1095](https://redirect.github.com/google/zx/pull/1095)
- Pinned deps
[#&#8203;1099](https://redirect.github.com/google/zx/pull/1099)
[#&#8203;1100](https://redirect.github.com/google/zx/pull/1100)
- Switched to explicit `.ts` extensions for relative imports
[#&#8203;1111](https://redirect.github.com/google/zx/pull/1111)

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-18 16:36:33 -04:00
renovate[bot]
afa6087e95 chore(deps): update dependency eslint-plugin-vue to v10 (#1229)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-plugin-vue](https://eslint.vuejs.org)
([source](https://redirect.github.com/vuejs/eslint-plugin-vue)) |
[`^9.32.0` ->
`^10.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-vue/9.32.0/10.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-vue/10.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-vue/10.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-vue/9.32.0/10.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-vue/9.32.0/10.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vuejs/eslint-plugin-vue (eslint-plugin-vue)</summary>

###
[`v10.0.0`](https://redirect.github.com/vuejs/eslint-plugin-vue/releases/tag/v10.0.0)

[Compare
Source](https://redirect.github.com/vuejs/eslint-plugin-vue/compare/v9.33.0...v10.0.0)

#### 💥 Breaking changes

-
[#&#8203;2630](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2630)
Changed Versioning Policy:
- Allow minor versions of this plugin to enhance the checks for new
features in Vue and Nuxt.
- Allow updating deprecated/reserved HTML+SVG element tag names in minor
versions, see
[#&#8203;2171](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2171).
-
[#&#8203;2645](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2645)
Removed deprecated rules (see [removed
rules](https://eslint.vuejs.org/rules/#removed)).
-
[#&#8203;2669](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2669)
Dropped support for old versions of ESLint and Node.js. New minimum
requirements:
    -   Node.js: `^18.18.0 || ^20.9.0 || >=21.1.0`
    -   ESLint: `^8.57.0 || ^9.0.0`
-   Updated configs:
-
[#&#8203;2627](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2627)
Added
[`vue/block-order`](https://eslint.vuejs.org/rules/block-order.html)
rule to recommended configs (replaces the removed
`vue/component-tags-order` rule).
-
[#&#8203;2628](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2628)
Added
[`vue/no-deprecated-delete-set`](https://eslint.vuejs.org/rules/no-deprecated-delete-set.html)
rule to vue3-essential config.
-
[#&#8203;2629](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2629)
Added
[`vue/no-deprecated-model-definition`](https://eslint.vuejs.org/rules/no-deprecated-model-definition.html)
rule to vue3-essential config.
-
[#&#8203;2640](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2640)
Added
[`vue/no-required-prop-with-default`](https://eslint.vuejs.org/rules/no-required-prop-with-default.html)
rule to recommended configs.
-
[#&#8203;2653](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2653)
Added
[`vue/valid-define-options`](https://eslint.vuejs.org/rules/valid-define-options.html)
rule to vue3-essential config.
-
[#&#8203;2674](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2674)
Removed globals from configs.
-
[#&#8203;2648](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2648)
Renamed `.eslintrc` configs (to match `eslint.config.js` config names;
see PR for comparison).
-
[#&#8203;2668](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2668)
Changed `.eslintrc` base config so that
[vue-eslint-parser](https://redirect.github.com/vuejs/vue-eslint-parser)
is only used for `.vue` files.
-
[#&#8203;2670](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2670)
Changed
[vue-eslint-parser](https://redirect.github.com/vuejs/vue-eslint-parser)
to peer dependency.
-
[#&#8203;2697](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2697)
Upgraded
[vue-eslint-parser](https://redirect.github.com/vuejs/vue-eslint-parser)
to v10.
- This includes
[https://github.com/vuejs/vue-eslint-parser/pull/195](https://redirect.github.com/vuejs/vue-eslint-parser/pull/195),
which should make the parser much faster for large TypeScript projects

-
[#&#8203;2153](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2153)
Added `slots` and `expose` to the default order of
[`vue/order-in-components`](https://eslint.vuejs.org/rules/order-in-components.html)
rule.
-
[#&#8203;2626](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2626)
Removed legacy option from
[`vue/custom-event-name-casing`](https://eslint.vuejs.org/rules/custom-event-name-casing.html)
rule.
-
[#&#8203;2655](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2655)
Removed unused `runOutsideVue` option from
[`vue/sort-keys`](https://eslint.vuejs.org/rules/sort-keys.html) rule.
-
[#&#8203;2652](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2652)
Removed `setup-compiler-macros` environments.

####  Enhancements

-
[#&#8203;2693](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2693)
Improved type resolution for generic types and improved the rules for
checking type-only macros.
-
[#&#8203;2684](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2684)
Added
[`vue/no-import-compiler-macros`](https://eslint.vuejs.org/rules/no-import-compiler-macros.html)
rule that disallows importing Vue compiler macros.
-
[#&#8203;2694](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2694)
Added `except` option to
[`vue/prefer-true-attribute-shorthand`](https://eslint.vuejs.org/rules/prefer-true-attribute-shorthand.html)
rule.
-
[#&#8203;2311](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2311)
Improved the plugin to check for objects declared with Nuxt3
[`defineNuxtComponent()`](https://nuxt.com/docs/api/utils/define-nuxt-component).

#### ⚙️ Updates

-
[#&#8203;2171](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2171)
Updated resources.
-
[#&#8203;2675](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2675)
Deprecated Vue 2 only rules. They will be removed in eslint-plugin-vue
v11.

**Full Changelog**:
https://github.com/vuejs/eslint-plugin-vue/compare/v9.33.0...v10.0.0

###
[`v9.33.0`](https://redirect.github.com/vuejs/eslint-plugin-vue/releases/tag/v9.33.0)

[Compare
Source](https://redirect.github.com/vuejs/eslint-plugin-vue/compare/v9.32.0...v9.33.0)

####  Enhancements

-
[#&#8203;2639](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2639)
Added
[`vue/no-implicit-coercion`](https://eslint.vuejs.org/rules/no-implicit-coercion.html)
rule to disallow shorthand type conversions in `<template>`.
-
[#&#8203;2680](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2680)
Improved
[`vue/no-ref-as-operand`](https://eslint.vuejs.org/rules/no-ref-as-operand.html)
rule to check `emit` payloads.
-
[#&#8203;2679](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2679)
Added `ignoreProps` option to
[`vue/prop-name-casing`](https://eslint.vuejs.org/rules/prop-name-casing.html)
rule.

#### 🐛 Bug Fixes

-
[#&#8203;2636](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2636)
Fixed crash in
[`vue/prefer-use-template-ref`](https://eslint.vuejs.org/rules/prefer-use-template-ref.html)
rule when `setup` is an arrow function.
-
[#&#8203;2682](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2682)
Fixed regex matching order in
[`vue/no-bare-strings-in-template`](https://eslint.vuejs.org/rules/no-bare-strings-in-template.html)
rule.
-
[#&#8203;2683](https://redirect.github.com/vuejs/eslint-plugin-vue/issues/2683)
Fixed false positives for union type prop definitions in
[`vue/max-props`](https://eslint.vuejs.org/rules/max-props.html) rule.

**Full Changelog**:
https://github.com/vuejs/eslint-plugin-vue/compare/v9.32.0...v9.33.0

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-18 16:36:12 -04:00
renovate[bot]
c9789ac1f2 fix(deps): update dependency graphql-subscriptions to v3 (#1209)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[graphql-subscriptions](https://redirect.github.com/apollographql/graphql-subscriptions)
| [`^2.0.0` ->
`^3.0.0`](https://renovatebot.com/diffs/npm/graphql-subscriptions/2.0.0/3.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/graphql-subscriptions/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/graphql-subscriptions/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/graphql-subscriptions/2.0.0/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/graphql-subscriptions/2.0.0/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>apollographql/graphql-subscriptions
(graphql-subscriptions)</summary>

###
[`v3.0.0`](https://redirect.github.com/apollographql/graphql-subscriptions/blob/HEAD/CHANGELOG.md#300)

[Compare
Source](https://redirect.github.com/apollographql/graphql-subscriptions/compare/v2.0.0...v3.0.0)

- **\[BREAKING]** Replace `iterall` use with native
`Symbol.asyncIterator`. `PubSubEngine.asyncIterator` is now
`PubSubEngine.asyncIterableIterator`. <br/>
[@&#8203;n1ru4l](https://redirect.github.com/n1ru4l) in
[#&#8203;232](https://redirect.github.com/apollographql/graphql-subscriptions/pull/232)
-   Add an optional generic type map to `PubSub`. <br/>
[@&#8203;cursorsdottsx](https://redirect.github.com/cursorsdottsx) in
[#&#8203;245](https://redirect.github.com/apollographql/graphql-subscriptions/pull/245)
-   Support `readonly` arrays of event names. <br/>
[@&#8203;rh389](https://redirect.github.com/rh389) in
[#&#8203;234](https://redirect.github.com/apollographql/graphql-subscriptions/pull/234)
- Support returning a Promise of an `AsyncIterator` as the `withFilter`
resolver function. <br/>
[@&#8203;maclockard](https://redirect.github.com/maclockard) in
[#&#8203;220](https://redirect.github.com/apollographql/graphql-subscriptions/pull/220)
-   `withFilter` TypeScript improvements. <br/>
[@&#8203;HofmannZ](https://redirect.github.com/HofmannZ) in
[#&#8203;230](https://redirect.github.com/apollographql/graphql-subscriptions/pull/230)
- `withFilter` returns `AsyncIterableIterator` for compatibility with
Apollo Server subscriptions. <br/>
[@&#8203;tninesling](https://redirect.github.com/tninesling) in
[#&#8203;276](https://redirect.github.com/apollographql/graphql-subscriptions/pull/276)

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2025-03-18 16:35:56 -04:00
github-actions[bot]
14ff3398ba chore(main): release 4.3.1 (#1239)
🤖 I have created a release *beep* *boop*
---


## [4.3.1](https://github.com/unraid/api/compare/v4.3.0...v4.3.1)
(2025-03-18)


### Bug Fixes

* stepper fixes ([#1240](https://github.com/unraid/api/issues/1240))
([6c042cb](6c042cbe01))

---
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-03-18 13:23:26 -07:00
Eli Bosley
6c042cbe01 fix: stepper fixes (#1240)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Refactor**
- Streamlined the activation steps display with improved conditional
rendering and enhanced interactive button styling.
- **New Features**
- Introduced a new welcome page featuring a dummy server switcher and
refreshed welcome modal.
- Expanded the activation interface with a new activation code section
for clearer navigation.
- **Chores**
  - Removed the welcome modal from the home page to simplify the layout.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Zack Spear <hi@zackspear.com>
2025-03-18 16:21:40 -04:00
github-actions[bot]
3380929c04 chore(main): release 4.3.0 (#1237)
🤖 I have created a release *beep* *boop*
---


## [4.3.0](https://github.com/unraid/api/compare/v4.2.1...v4.3.0)
(2025-03-18)


### Features

* update production release flow to validate less strictly
([#1238](https://github.com/unraid/api/issues/1238))
([bd69b33](bd69b3383f))

---
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-03-18 11:53:30 -04:00
Eli Bosley
bd69b3383f feat: update production release flow to validate less strictly (#1238)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Bug Fixes**
- Enhanced error handling during plugin file validation to ensure that
any invalid XML inputs are promptly flagged and processed gracefully.

- **Chores**
- Updated the release workflow configuration to utilize a more flexible
XML parsing approach, improving overall validation stability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-18 11:52:43 -04:00
github-actions[bot]
a0021bf682 chore(main): release 4.2.1 (#1235)
🤖 I have created a release *beep* *boop*
---


## [4.2.1](https://github.com/unraid/api/compare/v4.2.0...v4.2.1)
(2025-03-18)


### Bug Fixes

* **deps:** update all non-major dependencies
([#1192](https://github.com/unraid/api/issues/1192))
([b5f3a37](b5f3a37863))

---
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-03-18 11:29:39 -04:00
renovate[bot]
b5f3a37863 fix(deps): update all non-major dependencies (#1192)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
| [@apollo/client](https://www.apollographql.com/docs/react/)
([source](https://redirect.github.com/apollographql/apollo-client)) |
[`3.13.1` ->
`3.13.4`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.13.1/3.13.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@apollo%2fclient/3.13.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@apollo%2fclient/3.13.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@apollo%2fclient/3.13.1/3.13.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@apollo%2fclient/3.13.1/3.13.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [@eslint/js](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint/tree/HEAD/packages/js))
| [`9.21.0` ->
`9.22.0`](https://renovatebot.com/diffs/npm/@eslint%2fjs/9.21.0/9.22.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@eslint%2fjs/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@eslint%2fjs/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@eslint%2fjs/9.21.0/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@eslint%2fjs/9.21.0/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@graphql-codegen/client-preset](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/presets/client))
| [`4.6.3` ->
`4.7.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fclient-preset/4.6.3/4.7.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2fclient-preset/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2fclient-preset/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2fclient-preset/4.6.3/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2fclient-preset/4.6.3/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@graphql-codegen/client-preset](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/presets/client))
| [`4.6.3` ->
`4.7.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fclient-preset/4.6.3/4.7.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2fclient-preset/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2fclient-preset/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2fclient-preset/4.6.3/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2fclient-preset/4.6.3/4.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
|
[@graphql-codegen/typed-document-node](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/typed-document-node))
| [`5.0.14` ->
`5.1.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftyped-document-node/5.0.14/5.1.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftyped-document-node/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2ftyped-document-node/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2ftyped-document-node/5.0.14/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftyped-document-node/5.0.14/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@graphql-codegen/typescript](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/typescript))
| [`4.1.4` ->
`4.1.5`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript/4.1.4/4.1.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2ftypescript/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2ftypescript/4.1.4/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript/4.1.4/4.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@graphql-codegen/typescript-operations](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/operations))
| [`4.5.0` ->
`4.5.1`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-operations/4.5.0/4.5.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript-operations/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2ftypescript-operations/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2ftypescript-operations/4.5.0/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript-operations/4.5.0/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@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.4.3` ->
`4.4.4`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-resolvers/4.4.3/4.4.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript-resolvers/4.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2ftypescript-resolvers/4.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2ftypescript-resolvers/4.4.3/4.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript-resolvers/4.4.3/4.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@graphql-tools/merge](https://redirect.github.com/ardatan/graphql-tools)
([source](https://redirect.github.com/ardatan/graphql-tools/tree/HEAD/packages/merge))
| [`9.0.20` ->
`9.0.24`](https://renovatebot.com/diffs/npm/@graphql-tools%2fmerge/9.0.20/9.0.24)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-tools%2fmerge/9.0.24?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-tools%2fmerge/9.0.24?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-tools%2fmerge/9.0.20/9.0.24?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-tools%2fmerge/9.0.20/9.0.24?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
|
[@graphql-tools/schema](https://redirect.github.com/ardatan/graphql-tools)
([source](https://redirect.github.com/ardatan/graphql-tools/tree/HEAD/packages/schema))
| [`10.0.19` ->
`10.0.23`](https://renovatebot.com/diffs/npm/@graphql-tools%2fschema/10.0.19/10.0.23)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-tools%2fschema/10.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-tools%2fschema/10.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-tools%2fschema/10.0.19/10.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-tools%2fschema/10.0.19/10.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
|
[@graphql-tools/utils](https://redirect.github.com/ardatan/graphql-tools)
([source](https://redirect.github.com/ardatan/graphql-tools/tree/HEAD/packages/utils))
| [`10.8.2` ->
`10.8.6`](https://renovatebot.com/diffs/npm/@graphql-tools%2futils/10.8.2/10.8.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-tools%2futils/10.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-tools%2futils/10.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-tools%2futils/10.8.2/10.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-tools%2futils/10.8.2/10.8.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [@nuxt/devtools](https://devtools.nuxt.com)
([source](https://redirect.github.com/nuxt/devtools/tree/HEAD/packages/devtools))
| [`2.1.0` ->
`2.3.0`](https://renovatebot.com/diffs/npm/@nuxt%2fdevtools/2.1.0/2.3.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxt%2fdevtools/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nuxt%2fdevtools/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nuxt%2fdevtools/2.1.0/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxt%2fdevtools/2.1.0/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [@nuxt/eslint](https://redirect.github.com/nuxt/eslint)
([source](https://redirect.github.com/nuxt/eslint/tree/HEAD/packages/module))
| [`1.1.0` ->
`1.2.0`](https://renovatebot.com/diffs/npm/@nuxt%2feslint/1.1.0/1.2.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxt%2feslint/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nuxt%2feslint/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nuxt%2feslint/1.1.0/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxt%2feslint/1.1.0/1.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@nuxtjs/tailwindcss](https://redirect.github.com/nuxt-modules/tailwindcss)
| [`6.13.1` ->
`6.13.2`](https://renovatebot.com/diffs/npm/@nuxtjs%2ftailwindcss/6.13.1/6.13.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxtjs%2ftailwindcss/6.13.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nuxtjs%2ftailwindcss/6.13.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nuxtjs%2ftailwindcss/6.13.1/6.13.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxtjs%2ftailwindcss/6.13.1/6.13.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [@reduxjs/toolkit](https://redux-toolkit.js.org)
([source](https://redirect.github.com/reduxjs/redux-toolkit)) | [`2.5.1`
->
`2.6.1`](https://renovatebot.com/diffs/npm/@reduxjs%2ftoolkit/2.5.1/2.6.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@reduxjs%2ftoolkit/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@reduxjs%2ftoolkit/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@reduxjs%2ftoolkit/2.5.1/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@reduxjs%2ftoolkit/2.5.1/2.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
|
[@rollup/plugin-node-resolve](https://redirect.github.com/rollup/plugins/tree/master/packages/node-resolve/#readme)
([source](https://redirect.github.com/rollup/plugins/tree/HEAD/packages/node-resolve))
| [`16.0.0` ->
`16.0.1`](https://renovatebot.com/diffs/npm/@rollup%2fplugin-node-resolve/16.0.0/16.0.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@rollup%2fplugin-node-resolve/16.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@rollup%2fplugin-node-resolve/16.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@rollup%2fplugin-node-resolve/16.0.0/16.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@rollup%2fplugin-node-resolve/16.0.0/16.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [@rollup/rollup-linux-x64-gnu](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) | [`4.34.8` ->
`4.36.0`](https://renovatebot.com/diffs/npm/@rollup%2frollup-linux-x64-gnu/4.34.8/4.36.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@rollup%2frollup-linux-x64-gnu/4.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@rollup%2frollup-linux-x64-gnu/4.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@rollup%2frollup-linux-x64-gnu/4.34.8/4.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@rollup%2frollup-linux-x64-gnu/4.34.8/4.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| optionalDependencies | minor |
|
[@storybook/addon-essentials](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/essentials)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials))
| [`8.5.8` ->
`8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/8.5.8/8.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-essentials/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-essentials/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-essentials/8.5.8/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-essentials/8.5.8/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@storybook/addon-interactions](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/interactions)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions))
| [`8.5.8` ->
`8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-interactions/8.5.8/8.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-interactions/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-interactions/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-interactions/8.5.8/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-interactions/8.5.8/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@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))
| [`8.5.8` ->
`8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/8.5.8/8.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-links/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-links/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-links/8.5.8/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-links/8.5.8/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@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))
| [`8.5.8` ->
`8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2fbuilder-vite/8.5.8/8.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fbuilder-vite/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fbuilder-vite/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fbuilder-vite/8.5.8/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fbuilder-vite/8.5.8/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@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))
| [`8.5.8` ->
`8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2fvue3-vite/8.5.8/8.6.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fvue3-vite/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fvue3-vite/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fvue3-vite/8.5.8/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fvue3-vite/8.5.8/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [@swc/core](https://swc.rs)
([source](https://redirect.github.com/swc-project/swc)) | [`1.10.18` ->
`1.11.11`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.10.18/1.11.11)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.11.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.11.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.10.18/1.11.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.10.18/1.11.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@types/dockerode](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/dockerode)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode))
| [`3.3.34` ->
`3.3.35`](https://renovatebot.com/diffs/npm/@types%2fdockerode/3.3.34/3.3.35)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fdockerode/3.3.35?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fdockerode/3.3.35?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fdockerode/3.3.34/3.3.35?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fdockerode/3.3.34/3.3.35?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@types/lodash](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash))
| [`4.17.15` ->
`4.17.16`](https://renovatebot.com/diffs/npm/@types%2flodash/4.17.15/4.17.16)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2flodash/4.17.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2flodash/4.17.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2flodash/4.17.15/4.17.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2flodash/4.17.15/4.17.16?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.13.4` ->
`22.13.10`](https://renovatebot.com/diffs/npm/@types%2fnode/22.13.4/22.13.10)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.13.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/22.13.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/22.13.4/22.13.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.13.4/22.13.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@types/ws](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/ws)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws))
| [`8.5.14` ->
`8.18.0`](https://renovatebot.com/diffs/npm/@types%2fws/8.5.14/8.18.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fws/8.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fws/8.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fws/8.5.14/8.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fws/8.5.14/8.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@vitejs/plugin-vue](https://redirect.github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme)
([source](https://redirect.github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue))
| [`5.2.1` ->
`5.2.3`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/5.2.1/5.2.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-vue/5.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-vue/5.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-vue/5.2.1/5.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-vue/5.2.1/5.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@vitejs/plugin-vue-jsx](https://redirect.github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue-jsx#readme)
([source](https://redirect.github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue-jsx))
| [`4.1.1` ->
`4.1.2`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue-jsx/4.1.1/4.1.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-vue-jsx/4.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-vue-jsx/4.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-vue-jsx/4.1.1/4.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-vue-jsx/4.1.1/4.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@vitest/coverage-v8](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-v8#readme)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8))
| [`3.0.6` ->
`3.0.9`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/3.0.6/3.0.9)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-v8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-v8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-v8/3.0.6/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-v8/3.0.6/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@vitest/ui](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/ui#readme)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui))
| [`3.0.6` ->
`3.0.9`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.0.6/3.0.9) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/3.0.6/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/3.0.6/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [@vue/apollo-composable](https://apollo.vuejs.org/)
([source](https://redirect.github.com/vuejs/vue-apollo/tree/HEAD/packages/vue-apollo-composable))
| [`4.2.1` ->
`4.2.2`](https://renovatebot.com/diffs/npm/@vue%2fapollo-composable/4.2.1/4.2.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2fapollo-composable/4.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2fapollo-composable/4.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2fapollo-composable/4.2.1/4.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2fapollo-composable/4.2.1/4.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [@vue/apollo-util](https://apollo.vuejs.org/)
([source](https://redirect.github.com/vuejs/vue-apollo/tree/HEAD/packages/vue-apollo-util))
| [`4.0.0-beta.6` ->
`4.2.2`](https://renovatebot.com/diffs/npm/@vue%2fapollo-util/4.0.0-beta.6/4.2.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2fapollo-util/4.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2fapollo-util/4.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2fapollo-util/4.0.0-beta.6/4.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2fapollo-util/4.0.0-beta.6/4.2.2?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))
| [`12.7.0` ->
`12.8.2`](https://renovatebot.com/diffs/npm/@vueuse%2fcomponents/12.7.0/12.8.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcomponents/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fcomponents/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fcomponents/12.7.0/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcomponents/12.7.0/12.8.2?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))
| [`12.7.0` ->
`12.8.2`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/12.7.0/12.8.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcore/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fcore/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fcore/12.7.0/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcore/12.7.0/12.8.2?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))
| [`12.7.0` ->
`12.8.2`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/12.7.0/12.8.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcore/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fcore/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fcore/12.7.0/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcore/12.7.0/12.8.2?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))
| [`12.7.0` ->
`12.8.2`](https://renovatebot.com/diffs/npm/@vueuse%2fintegrations/12.7.0/12.8.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fintegrations/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fintegrations/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fintegrations/12.7.0/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fintegrations/12.7.0/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
|
[@vueuse/nuxt](https://redirect.github.com/vueuse/vueuse/tree/main/packages/nuxt#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/nuxt))
| [`12.7.0` ->
`12.8.2`](https://renovatebot.com/diffs/npm/@vueuse%2fnuxt/12.7.0/12.8.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fnuxt/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fnuxt/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fnuxt/12.7.0/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fnuxt/12.7.0/12.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [autoprefixer](https://redirect.github.com/postcss/autoprefixer) |
[`10.4.20` ->
`10.4.21`](https://renovatebot.com/diffs/npm/autoprefixer/10.4.20/10.4.21)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/autoprefixer/10.4.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/autoprefixer/10.4.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/autoprefixer/10.4.20/10.4.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/autoprefixer/10.4.20/10.4.21?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [eslint](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint)) | [`9.21.0` ->
`9.22.0`](https://renovatebot.com/diffs/npm/eslint/9.21.0/9.22.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/9.21.0/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/9.21.0/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [eslint](https://eslint.org)
([source](https://redirect.github.com/eslint/eslint)) | [`9.20.1` ->
`9.22.0`](https://renovatebot.com/diffs/npm/eslint/9.20.1/9.22.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/9.20.1/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/9.20.1/9.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[eslint-config-prettier](https://redirect.github.com/prettier/eslint-config-prettier)
| [`10.0.1` ->
`10.1.1`](https://renovatebot.com/diffs/npm/eslint-config-prettier/10.0.1/10.1.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-config-prettier/10.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-config-prettier/10.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-config-prettier/10.0.1/10.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-config-prettier/10.0.1/10.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[eslint-plugin-n](https://redirect.github.com/eslint-community/eslint-plugin-n)
| [`17.15.1` ->
`17.16.2`](https://renovatebot.com/diffs/npm/eslint-plugin-n/17.15.1/17.16.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-n/17.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-n/17.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-n/17.15.1/17.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-n/17.15.1/17.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [eslint-plugin-vue](https://eslint.vuejs.org)
([source](https://redirect.github.com/vuejs/eslint-plugin-vue)) |
[`9.32.0` ->
`9.33.0`](https://renovatebot.com/diffs/npm/eslint-plugin-vue/9.32.0/9.33.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-vue/9.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-vue/9.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-vue/9.32.0/9.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-vue/9.32.0/9.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) |
[`17.1.4` ->
`17.4.4`](https://renovatebot.com/diffs/npm/happy-dom/17.1.4/17.4.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/17.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/17.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/17.1.4/17.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/17.1.4/17.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [lucide-vue-next](https://lucide.dev)
([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next))
| [`^0.475.0` ->
`^0.483.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.475.0/0.483.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-vue-next/0.483.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-vue-next/0.483.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-vue-next/0.475.0/0.483.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-vue-next/0.475.0/0.483.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [nest-authz](https://redirect.github.com/node-casbin/nest-authz) |
[`2.14.0` ->
`2.15.0`](https://renovatebot.com/diffs/npm/nest-authz/2.14.0/2.15.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/nest-authz/2.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nest-authz/2.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nest-authz/2.14.0/2.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nest-authz/2.14.0/2.15.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.16.0` ->
`3.17.0`](https://renovatebot.com/diffs/npm/nest-commander/3.16.0/3.17.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/nest-commander/3.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nest-commander/3.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nest-commander/3.16.0/3.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nest-commander/3.16.0/3.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [nestjs-pino](https://redirect.github.com/iamolegga/nestjs-pino) |
[`4.3.0` ->
`4.3.1`](https://renovatebot.com/diffs/npm/nestjs-pino/4.3.0/4.3.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/nestjs-pino/4.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nestjs-pino/4.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nestjs-pino/4.3.0/4.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nestjs-pino/4.3.0/4.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [nuxt](https://nuxt.com)
([source](https://redirect.github.com/nuxt/nuxt/tree/HEAD/packages/nuxt))
| [`3.15.4` ->
`3.16.0`](https://renovatebot.com/diffs/npm/nuxt/3.15.4/3.16.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/nuxt/3.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nuxt/3.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nuxt/3.15.4/3.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nuxt/3.15.4/3.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [pnpm](https://pnpm.io)
([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) |
[`10.4.1` ->
`10.6.4`](https://renovatebot.com/diffs/npm/pnpm/10.4.1/10.6.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/10.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/10.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/10.4.1/10.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/10.4.1/10.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| packageManager | minor |
| [prettier](https://prettier.io)
([source](https://redirect.github.com/prettier/prettier)) | [`3.5.1` ->
`3.5.3`](https://renovatebot.com/diffs/npm/prettier/3.5.1/3.5.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/3.5.1/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.5.1/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [prettier](https://prettier.io)
([source](https://redirect.github.com/prettier/prettier)) | [`3.5.2` ->
`3.5.3`](https://renovatebot.com/diffs/npm/prettier/3.5.2/3.5.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/3.5.2/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.5.2/3.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [python](https://redirect.github.com/actions/python-versions) | `3.10`
-> `3.13` |
[![age](https://developer.mend.io/api/mc/badges/age/github-releases/actions%2fpython-versions/3.13.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/github-releases/actions%2fpython-versions/3.13.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/github-releases/actions%2fpython-versions/3.10.16/3.13.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/actions%2fpython-versions/3.10.16/3.13.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| uses-with | minor |
| [radix-vue](https://redirect.github.com/unovue/radix-vue) | [`1.9.16`
-> `1.9.17`](https://renovatebot.com/diffs/npm/radix-vue/1.9.16/1.9.17)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/radix-vue/1.9.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/radix-vue/1.9.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/radix-vue/1.9.16/1.9.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/radix-vue/1.9.16/1.9.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [reka-ui](https://redirect.github.com/unovue/reka-ui) | [`2.0.2` ->
`2.1.0`](https://renovatebot.com/diffs/npm/reka-ui/2.0.2/2.1.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/reka-ui/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/reka-ui/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/reka-ui/2.0.2/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/reka-ui/2.0.2/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [shadcn-nuxt](https://redirect.github.com/unovue/shadcn-vue)
([source](https://redirect.github.com/unovue/shadcn-vue/tree/HEAD/packages/module))
| [`1.0.1` ->
`1.0.3`](https://renovatebot.com/diffs/npm/shadcn-nuxt/1.0.1/1.0.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/shadcn-nuxt/1.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shadcn-nuxt/1.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shadcn-nuxt/1.0.1/1.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shadcn-nuxt/1.0.1/1.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[storybook](https://redirect.github.com/storybookjs/storybook/tree/next/code/lib/cli)
([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/lib/cli))
| [`8.5.8` ->
`8.6.7`](https://renovatebot.com/diffs/npm/storybook/8.5.8/8.6.7) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/storybook/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/storybook/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/storybook/8.5.8/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/storybook/8.5.8/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [typescript](https://www.typescriptlang.org/)
([source](https://redirect.github.com/microsoft/TypeScript)) | [`5.7.3`
-> `5.8.2`](https://renovatebot.com/diffs/npm/typescript/5.7.3/5.8.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.7.3/5.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.7.3/5.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint))
| [`8.24.1` ->
`8.26.1`](https://renovatebot.com/diffs/npm/typescript-eslint/8.24.1/8.26.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript-eslint/8.26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript-eslint/8.24.1/8.26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.24.1/8.26.1?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))
| [`6.1.1` ->
`6.2.2`](https://renovatebot.com/diffs/npm/vite/6.1.1/6.2.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.1.1/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.1.1/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
| [vitest](https://redirect.github.com/vitest-dev/vitest)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`3.0.6` ->
`3.0.9`](https://renovatebot.com/diffs/npm/vitest/3.0.6/3.0.9) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.0.6/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.6/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [vitest](https://redirect.github.com/vitest-dev/vitest)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`3.0.7` ->
`3.0.9`](https://renovatebot.com/diffs/npm/vitest/3.0.7/3.0.9) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.0.7/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.7/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | 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))
| [`10.0.5` ->
`10.0.6`](https://renovatebot.com/diffs/npm/vue-i18n/10.0.5/10.0.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-i18n/10.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-i18n/10.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-i18n/10.0.5/10.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-i18n/10.0.5/10.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [vue-tsc](https://redirect.github.com/vuejs/language-tools)
([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`2.2.2` ->
`2.2.8`](https://renovatebot.com/diffs/npm/vue-tsc/2.2.2/2.2.8) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/2.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/2.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/2.2.2/2.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/2.2.2/2.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [vuetify](https://vuetifyjs.com)
([source](https://redirect.github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify))
| [`3.7.14` ->
`3.7.17`](https://renovatebot.com/diffs/npm/vuetify/3.7.14/3.7.17) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vuetify/3.7.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vuetify/3.7.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vuetify/3.7.14/3.7.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vuetify/3.7.14/3.7.17?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
|
[vuetify-nuxt-module](https://redirect.github.com/vuetifyjs/nuxt-module)
| [`0.18.3` ->
`0.18.4`](https://renovatebot.com/diffs/npm/vuetify-nuxt-module/0.18.3/0.18.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/vuetify-nuxt-module/0.18.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vuetify-nuxt-module/0.18.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vuetify-nuxt-module/0.18.3/0.18.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vuetify-nuxt-module/0.18.3/0.18.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [zx](https://google.github.io/zx/)
([source](https://redirect.github.com/google/zx)) | [`8.3.2` ->
`8.4.1`](https://renovatebot.com/diffs/npm/zx/8.3.2/8.4.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/zx/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/zx/8.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/zx/8.3.2/8.4.1?slim=true

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-18 11:17:21 -04:00
Pujit Mehrotra
7aa55883e2 add nix flake for development (#1233)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Chores**
- Refined repository settings to auto-exclude environment and
build-related files.
- Introduced a new configuration that streamlines local development and
displays key tool versions on setup.
- **Documentation**
- Expanded contribution guidelines with a dedicated developer resources
section linking to guides on development practices and repository
structure.
- Updated workflow instructions to better assist developers in setting
up their environment, especially for those using Nix.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-18 11:15:57 -04:00
github-actions[bot]
8cd7376db0 chore(main): release 4.2.0 (#1189)
🤖 I have created a release *beep* *boop*
---


## [4.2.0](https://github.com/unraid/api/compare/v4.1.3...v4.2.0)
(2025-03-18)


### Features

* add resolver for logging
([#1222](https://github.com/unraid/api/issues/1222))
([3f590c5](3f590c56e3))
* connect settings web component
([#1211](https://github.com/unraid/api/issues/1211))
([acbf46d](acbf46df3f))
* improve local dev with install path
([#1221](https://github.com/unraid/api/issues/1221))
([ce61fee](ce61fee41c))
* split plugin builds
([d63e54b](d63e54bdbc))
* swap to absolute paths for css
([#1224](https://github.com/unraid/api/issues/1224))
([dd9983c](dd9983c8b7))
* update theme application logic and color picker
([#1181](https://github.com/unraid/api/issues/1181))
([a030626](a0306269c6))
* use patch version if needed on update check
([#1227](https://github.com/unraid/api/issues/1227))
([12e16a6](12e16a6404))


### Bug Fixes

* add INELIGIBLE state to ConfigErrorState enum
([#1220](https://github.com/unraid/api/issues/1220))
([0f550f9](0f550f9d94))
* **api:** dynamix notifications dir during development
([#1216](https://github.com/unraid/api/issues/1216))
([2700722](270072266a))
* **api:** type imports from generated graphql types
([#1215](https://github.com/unraid/api/issues/1215))
([bce06cd](bce06cd76c))
* **deps:** update dependency @nestjs/schedule to v5
([#1197](https://github.com/unraid/api/issues/1197))
([85c8ef5](85c8ef53ad))
* **deps:** update dependency @vueuse/core to v12
([#1199](https://github.com/unraid/api/issues/1199))
([ff8eba3](ff8eba3df5))
* fix changelog thing again
([a9d5ca8](a9d5ca8899))
* fix invalid path to node with sh execution
([#1213](https://github.com/unraid/api/issues/1213))
([f1838bf](f1838bf69a))
* load tag correctly
([b24a575](b24a575cbb))
* log errors
([365dcae](365dcae04b))
* one-command dev & web env files
([#1214](https://github.com/unraid/api/issues/1214))
([4641894](4641894240))
* re-release fixed
([b491590](b49159022d))
* recreate watcher on path change
([#1203](https://github.com/unraid/api/issues/1203))
([bde37d6](bde37d6751))
* update brand loading variants for consistent sizing
([#1223](https://github.com/unraid/api/issues/1223))
([1b0fbaf](1b0fbaf81a))

---
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-03-18 11:04:13 -04:00
Pujit Mehrotra
a4f69dc539 restart when developer sandbox is toggled (#1232)
When the sandbox is toggled via api, the api now restarts after a 3 second delay. The Connect settings UI also informs users, when applicable, that the api will restart before and after they apply their settings.

## Summary by CodeRabbit

- **New Features**
- Improved deployment commands now allow specifying a target server,
streamlining the deployment process.
- Enhanced settings synchronization provides clear feedback on when a
system restart is required after updates.
- Automatic service restart is now triggered after applying connection
settings changes.
- User interface enhancements include added contextual descriptions for
toggle controls.
- New functionality to refetch connection settings after updates,
providing users with the latest information.

- **Bug Fixes**
- Improved user feedback regarding API restart status after settings
updates.
2025-03-18 10:33:09 -04:00
Eli Bosley
dd9983c8b7 feat: swap to absolute paths for css (#1224)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Style**
- Updated CSS file paths across multiple components to reference assets
absolutely, ensuring consistent and reliable styling across the user
interface.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-17 16:28:49 -04:00
Eli Bosley
12e16a6404 feat: use patch version if needed on update check (#1227)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced version management so that update checks now prioritize
combined version details obtained from patch data, ensuring more
consistent and reliable version handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-17 14:55:25 -04:00
Pujit Mehrotra
9285eb745e make log viewer vertically resizable (#1231)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- The log viewer now starts at a fixed size and supports vertical
resizing, giving users more control over the viewing area.
- The single log display has been updated to remove height restrictions,
allowing for a more flexible and extended view of log content.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-17 14:48:39 -04:00
Pujit Mehrotra
4969b19a5b fix searchability of extra origins setting (#1230)
Adds a hidden interface element with searchable entities to support legacy search compatibility for unraid connect settings.
2025-03-17 13:37:27 -04:00
Eli Bosley
3f590c56e3 feat: add resolver for logging (#1222)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced a comprehensive Log Viewer accessible from the web
interface and Unraid management, allowing users to easily view, refresh,
and download log files.
- Enabled real-time log updates with auto-scroll functionality for
seamless monitoring.
- Enhanced log display with syntax highlighting and detailed file
metadata for improved readability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-17 11:44:10 -04:00
Pujit Mehrotra
acbf46df3f feat: connect settings web component (#1211)
Replaces the Connect Settings form at Settings > Management Access with a webcomponent containing a generated form.

CodeRabbit:

- **New Features**
- Enhanced connection settings with an updated UI, including a new
custom element `<unraid-connect-settings>`.
- Introduced several new form components (e.g., `NumberField`,
`StringArrayField`, `Select`, `Switch`, `PreconditionsLabel`,
`ControlLayout`, and `VerticalLayout`) for a more dynamic experience.
- Added a notification system with the `Toaster` component for user
feedback.
- New GraphQL operations for managing connection settings and API
updates.
- **Chores**
- Upgraded multiple backend and frontend dependencies and refined
configuration files.
- **Tests**
- Expanded test coverage for CSV conversion, form settings merging, and
the new `csvStringToArray` function.
- **Documentation**
- Added introductory documentation for form components and a readme for
the forms directory.
2025-03-17 10:26:07 -04:00
Eli Bosley
ce61fee41c feat: improve local dev with install path (#1221)
- also add better watcher support

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

- **New Features**
- Added a helper that displays a local installation URL to simplify
setting up the plugin.

- **Chores**
- Updated service and container port configurations to ensure consistent
network connectivity (changed from 8080 to 5858).
- Refined container management to gracefully handle running instances
during startup.
- Improved build and installation routines for streamlined deployment
and enhanced reliability.
- Enhanced documentation to clarify installation and usage instructions
for better user experience.
- Introduced a new document outlining development workflows for better
guidance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1209561202532053
2025-03-17 09:44:10 -04:00
Zack Spear
1b0fbaf81a fix: update brand loading variants for consistent sizing (#1223)
I was seeing strange behavior on /Tools/Registration when forcing the
check that happens on page load to fire again. The brand logo SVG was
rendering very large. So I set the size to small. But the SVG was still
rendering strangely due to the square width and height classes.

In the SVG source code, I took `viewBox="0 0 133.52 76.97"` and
converted that to an aspect ratio, `133.52/76.97`. And for simpler
integers - `133.52/76.97 ≈ 1.735` which is close to `7/4 (1.75)`. So we
can use - `aspect-[7/4]`.

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

## Summary by CodeRabbit

- **Style**
- Enhanced the brand loading component’s appearance by enforcing a
consistent aspect ratio and streamlining its dimension settings to focus
solely on width parameters.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-14 10:05:32 -04:00
Zack Spear
0f550f9d94 fix: add INELIGIBLE state to ConfigErrorState enum (#1220) 2025-03-13 20:19:13 -04:00
Michael Datelle
3ea3953f4c chore: remove cors and implement helmet (#1219)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced API security by incorporating advanced HTTP header
protection.
- Streamlined CORS configuration to allow broader client compatibility
with defined methods and headers.
- Improved cookie handling in API requests for more robust and reliable
processing.

- **Bug Fixes**
- Resolved potential issues related to cookie validation during
cross-origin requests.

- **Type Safety Improvements**
- Enhanced type definitions for cookie handling methods to ensure
clarity and prevent errors related to undefined values.
- Introduced a mock request object for improved testing of cookie
validation scenarios.
- Updated request handling to enforce the presence of cookies and
headers in API requests.
- Updated import paths for core Fastify types to reflect new
organizational structure.
  
- **Security Changes**
- Removed authentication and rate limiting features from the API key
resolver methods.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-03-11 12:56:50 -04:00
Eli Bosley
c8d20eb01c chore: use the webguiGlobals to set the var state 2025-03-06 17:05:51 -05:00
Eli Bosley
d467f13a5d chore: hide notification bell when connect is not installed 2025-03-05 14:14:35 -05:00
Eli Bosley
f1838bf69a fix: fix invalid path to node with sh execution (#1213)
Hoping this will resolve:
https://forums.unraid.net/topic/187498-unable-to-install-my-server-plugin/


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

- **New Features**
- Improved command-line execution behavior for enhanced compatibility
across different environments.
- Enhanced the version retrieval process by allowing the system to
locate configuration details from multiple potential sources.
- Introduced a build enhancement that conditionally injects a startup
script into bundled outputs, improving script portability and user
experience.
- Specified the Node.js interpreter path in the application
configuration for better execution control.
- Added a symbolic link for the Node.js binary to enhance accessibility.

- **Bug Fixes**
- Enhanced error handling for locating the `package.json` file,
providing feedback when no valid file is found.

- **Chores**
- Removed unnecessary shell script that modified the system's `PATH`
environment variable.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-03-04 16:13:47 -05:00
Eli Bosley
dbcedad039 chore: revert fastify change 2025-03-04 16:07:33 -05:00
Eli Bosley
c20c7750a4 chore: fastify cookie type issue 2025-03-04 16:05:22 -05:00
Eli Bosley
a09bc85edd chore: delete package lock 2025-03-04 15:32:25 -05:00
Eli Bosley
f2d7abedf4 chore: cleanup deployment by using built in s3 cli (#1212) 2025-03-04 15:30:13 -05:00
renovate[bot]
74408c73bb chore(deps): update dependency @types/node to v22 (#1163) 2025-03-04 15:27:15 -05:00
Eli Bosley
d63e54bdbc feat: split plugin builds
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced containerized plugin deployment support with updated Docker
Compose configurations.
- Added continuous build watch modes for API, web, and UI components for
smoother development iterations.
  - Added a new job for API testing in the CI/CD workflow.
- Added a new shell script to determine the local host's IP address for
Docker configurations.
- Introduced a new entry point and HTTP server setup in the plugin's
Docker environment.
- Added new scripts for building and watching plugin changes in
real-time.
- Added a new script for building the project in watch mode for the API
and UI components.

- **Improvements**
- Streamlined the plugin installation process and refined release
workflows for a more reliable user experience.
- Enhanced overall CI/CD pipelines to ensure efficient, production-ready
deployments.
- Updated artifact upload paths and job definitions for clarity and
efficiency.
- Implemented new utility functions for better URL management and
changelog generation.
- Modified the `.dockerignore` file to ignore all contents within the
`node_modules` directory.
- Added new constants and functions for managing plugin paths and
configurations.
- Updated the build process in the Dockerfile to focus on release
operations.

- **Tests**
- Expanded automated testing to validate environment setups and build
stability, ensuring higher reliability during updates.
- Introduced new test suites for validating plugin environment setups
and configurations.
- Added tests for validating environment variables and handling of
manifest files.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Datelle <mdatelle@icloud.com>
Co-authored-by: mdatelle <mike@datelle.net>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com>
2025-03-04 15:18:04 -05:00
Pujit Mehrotra
270072266a fix(api): dynamix notifications dir during development (#1216)
In the `[notify]` section of the ./dev/dynamix config, updated the path from "/app/dev/notifications" to "./dev/notifications" to fix notification crud in local, non-docker development.
2025-03-03 15:03:14 -05:00
Pujit Mehrotra
bce06cd76c fix(api): type imports from generated graphql types (#1215)
## Summary by CodeRabbit

- Enhanced internal type handling by updating import statements to use
type-only syntax, ensuring clearer and more consistent type-checking
across modules.
- No changes to application behavior or user-facing functionality have
been introduced.
2025-03-03 14:54:01 -05:00
Pujit Mehrotra
4641894240 fix: one-command dev & web env files (#1214)
- fixes `pnpm dev`
- fixes `just setup`
- Prevents env pollution in nuxt dev/build
2025-03-03 13:14:08 -05:00
renovate[bot]
ff8eba3df5 fix(deps): update dependency @vueuse/core to v12 (#1199) 2025-02-26 14:16:31 -05:00
renovate[bot]
2cc8c9f675 chore(deps): update dependency eslint-plugin-n to v17 (#1206) 2025-02-26 14:16:13 -05:00
Eli Bosley
bde37d6751 fix: recreate watcher on path change (#1203)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Bug Fixes**
- Improved the notifications system by refreshing the monitoring process
only when configuration changes occur, leading to a more reliable
experience.

- **Chores**
- Updated internal synchronization timestamps in multiple files to
ensure consistency and accurate tracking of recent events.
- Removed logging functionality for notifications state to streamline
the logging process.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-26 14:04:24 -05:00
renovate[bot]
7044713508 chore(deps): replace dependency eslint-plugin-node with eslint-plugin-n ^14.0.0 (#1205)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-26 11:55:59 -05:00
Eli Bosley
a2ba518bae chore: remove catch-exit dependency (#1204) 2025-02-26 11:55:21 -05:00
renovate[bot]
a9469127cc chore(deps): update vitest monorepo to v3 (major) (#1195)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-26 11:53:37 -05:00
renovate[bot]
85c8ef53ad fix(deps): update dependency @nestjs/schedule to v5 (#1197)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-26 11:53:16 -05:00
Eli Bosley
ae47866724 chore: pure ESM (#1202) 2025-02-25 14:14:14 -05:00
Eli Bosley
d59ca415af chore: cleanup packages (#1198)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Updated configuration versions and connection status settings for
improved consistency.
- Restructured build and tooling processes with refined script
organization, including new commands for type checking and cleanup.
- Updated dependency management to support enhanced styling and state
management.
- Removed legacy scripts related to environment handling and CSS
utilities.

- **Refactor**
- Streamlined module imports to align with an updated theme management
structure.

- **Bug Fixes**
- Enhanced error handling in various components to provide more
informative error messages during operations.
	- Improved error reporting in the update cancellation process.
	- Improved error reporting in date difference calculations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-25 13:09:02 -05:00
Eli Bosley
90e4913ef7 chore: add a single changelog for releases (#1191)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Documentation**
	- Streamlined the release notes presentation for improved clarity.
- Consolidated historical release records and now highlights the latest
enhancements and fixes in version 4.1.3.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-24 14:19:36 -05:00
renovate[bot]
b4aafbbe48 chore(deps): update dependency @nuxt/devtools to v2 (#1159)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@nuxt/devtools](https://devtools.nuxt.com)
([source](https://redirect.github.com/nuxt/devtools/tree/HEAD/packages/devtools))
| [`^1.6.4` ->
`^2.0.0`](https://renovatebot.com/diffs/npm/@nuxt%2fdevtools/1.7.0/2.1.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxt%2fdevtools/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nuxt%2fdevtools/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nuxt%2fdevtools/1.7.0/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxt%2fdevtools/1.7.0/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v2.1.0`](https://redirect.github.com/nuxt/devtools/blob/HEAD/CHANGELOG.md#210-2025-02-16)

[Compare
Source](https://redirect.github.com/nuxt/devtools/compare/v2.0.0...v2.1.0)

##### Bug Fixes

- hide inspector button when not available
([684897f](684897f306))

##### Features

- allow override component inspector with `__NUXT_INSPECTOR__`
([9f3c8bf](9f3c8bf147))
- filter out installed modules in search result, closes
[#&#8203;780](https://redirect.github.com/nuxt/devtools/issues/780)
([#&#8203;786](https://redirect.github.com/nuxt/devtools/issues/786))
([fc8ced3](fc8ced33f4))
- option to disable `vueDevTools`
([3e5251c](3e5251cb1b))

###
[`v2.0.0`](https://redirect.github.com/nuxt/devtools/blob/HEAD/CHANGELOG.md#200-2025-02-06)

[Compare
Source](https://redirect.github.com/nuxt/devtools/compare/v1.7.0...v2.0.0)

##### Features

- add directives page
([#&#8203;740](https://redirect.github.com/nuxt/devtools/issues/740))
([c20c724](c20c724db0))

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-24 14:17:04 -05:00
renovate[bot]
d890fae296 chore(deps): update dependency rollup-plugin-node-externals to v8 (#1166)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[rollup-plugin-node-externals](https://redirect.github.com/Septh/rollup-plugin-node-externals)
| [`^7.1.3` ->
`^8.0.0`](https://renovatebot.com/diffs/npm/rollup-plugin-node-externals/7.1.3/8.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/rollup-plugin-node-externals/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rollup-plugin-node-externals/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rollup-plugin-node-externals/7.1.3/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup-plugin-node-externals/7.1.3/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>Septh/rollup-plugin-node-externals
(rollup-plugin-node-externals)</summary>

###
[`v8.0.0`](https://redirect.github.com/Septh/rollup-plugin-node-externals/releases/tag/v8.0.0)

[Compare
Source](https://redirect.github.com/Septh/rollup-plugin-node-externals/compare/v7.1.3...v8.0.0)

- Update devDependencies
[`cc6316b`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/cc6316b)
- Update README.md for v8
[`47728ca`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/47728ca)
- Cosmetic edits
[`607ed68`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/607ed68)
- Remove support for Rollup 3
[`fb47ce0`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/fb47ce0)
- Merge branch 'main' of
https://github.com/Septh/rollup-plugin-node-externals
[`30945fe`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/30945fe)
- Merge branch 'pr/segevfiner/33'
[`39986b1`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/39986b1)
- Add badges to README.md
[`1de5c7a`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/1de5c7a)
- Cosmetic edits
[`7c219c2`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/7c219c2)
- Merge pull request
[#&#8203;33](https://redirect.github.com/Septh/rollup-plugin-node-externals/issues/33)
from segevfiner/remove-order-pre
[`9ba4732`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/9ba4732)
- Remove order: 'pre' from resolveId
[`be98d35`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/be98d35)
- Add badges to README.md
[`e3a4ad0`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/e3a4ad0)
- Add LICENSE
[`72e6108`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/72e6108)
- Cleanup VS Code settings
[`e56d3be`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/e56d3be)
- Simplify package.json hunting
[`d24d066`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/d24d066)
- Remove useless await and imports
[`0ecd976`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/0ecd976)
- Remove spurious dep 'globals'
[`e1dd916`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/e1dd916)
- Enforce
[@&#8203;septh/ts-run](https://redirect.github.com/septh/ts-run) 1.2.6+
[`131a2ad`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/131a2ad)
- Tweak tsconfig
[`18d430e`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/18d430e)
- Use cmd.exe to run the build task in VS Code for Windows
[`3595b31`](https://redirect.github.com/Septh/rollup-plugin-node-externals/commit/3595b31)

***

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-24 14:10:56 -05:00
renovate[bot]
9a9ef54d2d chore(deps): update dependency happy-dom to v17 (#1165)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) |
[`^12.0.0` ->
`^17.0.0`](https://renovatebot.com/diffs/npm/happy-dom/12.10.3/17.1.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/17.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/17.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/12.10.3/17.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/12.10.3/17.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>

###
[`v17.1.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.1.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.1.0...v17.1.1)

##### 🎨 Features

- Adds support for the `@media` selector "forced-colors" - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1727](https://redirect.github.com/capricorn86/happy-dom/issues/1727)
- Read more about how to set the value in the [Wiki for
IBrowserSettings](https://redirect.github.com/capricorn86/happy-dom/wiki/IBrowserSettings)
under "device.forcedColors"

##### 👷‍♂️ Patch fixes

- Fixes issue where it was not possible to nest `@media`, `@supports`
and `@container` rules - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1727](https://redirect.github.com/capricorn86/happy-dom/issues/1727)
- Fixes issue where `CSSStyleSheet` was instantiated internally without
a Window context, causing errors to not be thrown correctly in
`CSSStyleSheet` methods - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1727](https://redirect.github.com/capricorn86/happy-dom/issues/1727)
- Changes errors thrown in `CSSStyleSheet` methods, so that they work
according to spec - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1727](https://redirect.github.com/capricorn86/happy-dom/issues/1727)

###
[`v17.1.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.1.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.0.4...v17.1.0)

##### 🎨 Features

- Add support for CSS media query rule "prefers-reduced-motion" - By
**[@&#8203;mwdiaz](https://redirect.github.com/mwdiaz)** in task
[#&#8203;1724](https://redirect.github.com/capricorn86/happy-dom/issues/1724)
- Read more about how to set this value under
[IBrowserSettings](https://redirect.github.com/capricorn86/happy-dom/wiki/IBrowserSettings)
in the Wiki.

###
[`v17.0.4`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.0.4)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.0.3...v17.0.4)

##### 👷‍♂️ Patch fixes

- The "slotchange" event should be fired after the element has been
connected to the DOM - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1722](https://redirect.github.com/capricorn86/happy-dom/issues/1722)

###
[`v17.0.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.0.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.0.2...v17.0.3)

##### 👷‍♂️ Patch fixes

- Fix bug where nested query selector is not returning the correct
result when there are multiple matching selectorGroups - By
\*\*[@&#8203;christiango](https://redirect.github.com/christiango) \*\*
in task
[#&#8203;1720](https://redirect.github.com/capricorn86/happy-dom/issues/1720)

###
[`v17.0.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.0.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.0.1...v17.0.2)

##### 👷‍♂️ Patch fixes

- The property "tabIndex" should return "0" by default in
`HTMLAnchorElement`, `HTMLAreaElement`, `HTMLButtonElement`,
`HTMLIFrameElement`, `HTMLInputElement`, `HTMLMediaElement`,
`HTMLObjectElement`, `HTMLSelectElement` and `HTMLTextAreaElement` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1714](https://redirect.github.com/capricorn86/happy-dom/issues/1714)

###
[`v17.0.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.0.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v17.0.0...v17.0.1)

##### 👷‍♂️ Patch fixes

- Ensure `querySelector()` returns the first item that appears in the
DOM for grouped selectors - By
**[@&#8203;christiango](https://redirect.github.com/christiango)** in
task
[#&#8203;1710](https://redirect.github.com/capricorn86/happy-dom/issues/1710)

###
[`v17.0.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v17.0.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.8.1...v17.0.0)

##### 💣 Breaking Changes

- Adds support for ECMAScript modules - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;320](https://redirect.github.com/capricorn86/happy-dom/issues/320)
- This change allows the use of `import` and `export` statements in
JavaScript files

##### 🎨 Features

- Adds support for tracing never ending tasks when using
`waitUntilComplete()` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1567](https://redirect.github.com/capricorn86/happy-dom/issues/1567)
- Read more about how to enable this feature under
`debug.traceWaitUntilComplete` in the Wiki for
[IBrowserSettings](https://redirect.github.com/capricorn86/happy-dom/wiki/IBrowserSettings)
- Adds support for preloading fetch, stylesheet, script and modules in
`HTMLLinkElement` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;320](https://redirect.github.com/capricorn86/happy-dom/issues/320)
- Adds support for `HTMLLinkElement.relList.supports()` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;320](https://redirect.github.com/capricorn86/happy-dom/issues/320)
- Adds support for `Request.mode` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;320](https://redirect.github.com/capricorn86/happy-dom/issues/320)
- Output failed requests to the console - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;320](https://redirect.github.com/capricorn86/happy-dom/issues/320)
- Adds support for `HTMLScriptElement.blocking`,
`HTMLScriptElement.crossOrigin`, `HTMLScriptElement.fetchPriority`,
`HTMLScriptElement.noModule`, `HTMLScriptElement.integrity`,
`HTMLScriptElement.referrerPolicy` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;320](https://redirect.github.com/capricorn86/happy-dom/issues/320)
- Use cache in virtual server requests - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;320](https://redirect.github.com/capricorn86/happy-dom/issues/320)
- Adds support for `credentials` and `referrerPolicy` when fetching
styles and scripts - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;320](https://redirect.github.com/capricorn86/happy-dom/issues/320)
- Disallow invalid attributes from being set in `Element.setAttribute()`
- By **[@&#8203;OlaviSau](https://redirect.github.com/OlaviSau)** in
task
[#&#8203;1706](https://redirect.github.com/capricorn86/happy-dom/issues/1706)

##### 👷‍♂️ Patch fixes

- Call `afterAsyncResponse` fetch interceptor in virtual server requests
- By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)**
in task
[#&#8203;320](https://redirect.github.com/capricorn86/happy-dom/issues/320)
- Fixes bug where children in a `ShadowRoot` of a custom element that
was upgraded from a `HTMLElement` wasn't considered connected to the DOM
- By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)**
in task
[#&#8203;320](https://redirect.github.com/capricorn86/happy-dom/issues/320)

###
[`v16.8.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.8.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.8.0...v16.8.1)

##### 👷‍♂️ Patch fixes

- Handle non-string values gracefully when removing an attribute - By
**[@&#8203;OlaviSau](https://redirect.github.com/OlaviSau)** in task
[#&#8203;1706](https://redirect.github.com/capricorn86/happy-dom/issues/1706)

###
[`v16.8.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.8.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.7.3...v16.8.0)

##### 🎨 Features

- Add support for `insertRow()` and `deleteRow()` to
`HTMLTableSectionElement` - By
**[@&#8203;christiango](https://redirect.github.com/christiango)** in
task
[#&#8203;1708](https://redirect.github.com/capricorn86/happy-dom/issues/1708)

###
[`v16.7.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.7.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.7.2...v16.7.3)

##### 👷‍♂️ Patch fixes

- Removes space from directory name that prevents the repo to be cloned
on MS Windows - By
**[@&#8203;kleinfreund](https://redirect.github.com/kleinfreund)** in
task
[#&#8203;1703](https://redirect.github.com/capricorn86/happy-dom/issues/1703)

###
[`v16.7.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.7.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.7.1...v16.7.2)

##### 👷‍♂️ Patch fixes

- Ignore invalid cookies in CookieContainer - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1693](https://redirect.github.com/capricorn86/happy-dom/issues/1693)

###
[`v16.7.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.7.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.7.0...v16.7.1)

##### 👷‍♂️ Patch fixes

- Adds `ICookie`, `IOptionalCookie`, `CookieSameSiteEnum` and
`IVirtualServer` as exports to the index file - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1693](https://redirect.github.com/capricorn86/happy-dom/issues/1693)
- Makes non-mandatory cookie properties optional in
`CookieContainer.addCookies()` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1693](https://redirect.github.com/capricorn86/happy-dom/issues/1693)

###
[`v16.7.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.7.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.6.0...v16.7.0)

##### 🎨 Features

- Adds support for simulating local HTTP servers that serves files from
the local file system - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1688](https://redirect.github.com/capricorn86/happy-dom/issues/1688)
- Read more about virtual servers in the
[Wiki](https://redirect.github.com/capricorn86/happy-dom/wiki/IVirtualServer)

###
[`v16.6.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.6.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.5.3...v16.6.0)

##### 🎨 Features

- Adds support for subsequent sibling combinator to `querySelector()`,
`querySelectorAll()` and `matches()` (e.g. ".a ~ .b") - By
**[@&#8203;karpiuMG](https://redirect.github.com/karpiuMG)** in task
[#&#8203;1683](https://redirect.github.com/capricorn86/happy-dom/issues/1683)

###
[`v16.5.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.5.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.5.2...v16.5.3)

##### 👷‍♂️ Patch fixes

- Fixes problem with encoding and decoding attribute values in HTML - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1678](https://redirect.github.com/capricorn86/happy-dom/issues/1678)
- Fixes issue where it was not possible to query selector by class when
the attribute value had line breaks in it - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1678](https://redirect.github.com/capricorn86/happy-dom/issues/1678)

###
[`v16.5.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.5.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.5.1...v16.5.2)

##### 👷‍♂️ Patch fixes

- `Event.target` should be the target element after an event has been
dispatched - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1529](https://redirect.github.com/capricorn86/happy-dom/issues/1529)

###
[`v16.5.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.5.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.5.0...v16.5.1)

##### 👷‍♂️ Patch fixes

- Fixes issue where `Comment`, `Text` and `DocumentFragment` are not
instances of their corresponding property on `Window` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1577](https://redirect.github.com/capricorn86/happy-dom/issues/1577)

###
[`v16.5.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.5.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.4.3...v16.5.0)

##### 🎨 Features

- Adds property `GlobalRegistrator.isRegistered` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1670](https://redirect.github.com/capricorn86/happy-dom/issues/1670)

###
[`v16.4.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.4.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.4.2...v16.4.3)

##### 👷‍♂️ Patch fixes

- Adds null check for if browser frame is available in `Response` during
tear down of the `Window` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1669](https://redirect.github.com/capricorn86/happy-dom/issues/1669)

###
[`v16.4.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.4.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.4.1...v16.4.2)

##### 👷‍♂️ Patch fixes

- Support using URL as an object for URL:s when using the Browser API -
By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1664](https://redirect.github.com/capricorn86/happy-dom/issues/1664)

###
[`v16.4.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.4.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.4.0...v16.4.1)

##### 👷‍♂️ Patch fixes

- Fixes issue where HTML assigned to
`document.documentElement.innerHTML` isnt parsed correctly since v16 -
By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1663](https://redirect.github.com/capricorn86/happy-dom/issues/1663)

###
[`v16.4.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.4.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.3.0...v16.4.0)

##### 🎨 Features

- Allow fetch to be intercepted and modified by sending in an
interceptor as a setting - By
**[@&#8203;OlaviSau](https://redirect.github.com/OlaviSau)** in task
[#&#8203;1502](https://redirect.github.com/capricorn86/happy-dom/issues/1502)
- Read more about this in the Wiki at
[IFetchInterceptor](https://redirect.github.com/capricorn86/happy-dom/wiki/IFetchInterceptor)

###
[`v16.3.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.3.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.9...v16.3.0)

##### 🎨 Features

- Adds support for child combinator to ":has()" pseudo selector (e.g.
"span:has(> video)") - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1642](https://redirect.github.com/capricorn86/happy-dom/issues/1642)

###
[`v16.2.9`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.9)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.8...v16.2.9)

##### 👷‍♂️ Patch fixes

- Fixes the `HTMLInputElement.defaultChecked` property - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1587](https://redirect.github.com/capricorn86/happy-dom/issues/1587)
- This issue caused React not to serialize the "checked" attribute
correctly

###
[`v16.2.8`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.8)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.7...v16.2.8)

##### 👷‍♂️ Patch fixes

- Fixes issue where the wrong event target was used when dispatching
events on `HTMLFormElement` or `HTMLSelectElement` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1628](https://redirect.github.com/capricorn86/happy-dom/issues/1628)

###
[`v16.2.7`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.7)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.6...v16.2.7)

##### 👷‍♂️ Patch fixes

- Fixes issue where text in `<script>` and `<style>` elements should not
be decoded or encoded - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1564](https://redirect.github.com/capricorn86/happy-dom/issues/1564)

###
[`v16.2.6`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.6)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.5...v16.2.6)

##### 👷‍♂️ Patch fixes

- Fixes problem where snapshots did not result in HTML for `<form>` and
`<select>` elements - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1608](https://redirect.github.com/capricorn86/happy-dom/issues/1608)

###
[`v16.2.5`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.5)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.4...v16.2.5)

##### 👷‍♂️ Patch fixes

- Fixes bug where the reference to a parent `HTMLFormElement` and
`HTMLSelectElement` was wrong which affected the methods `remove()`,
`replaceWith()`, `before()`, `after()`, `append()`, `prepend()`,
`replaceChildren()` and `insertAdjacentElement()` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1637](https://redirect.github.com/capricorn86/happy-dom/issues/1637)

###
[`v16.2.4`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.4)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.3...v16.2.4)

##### 👷‍♂️ Patch fixes

- Fixes bug where the incorrect location is set after a redirect in
`BrowserFrame.goto()` and `DetachedBrowserFrame.goto()` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1627](https://redirect.github.com/capricorn86/happy-dom/issues/1627)

###
[`v16.2.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.2...v16.2.3)

##### 👷‍♂️ Patch fixes

- Fixes the implementation for the `HTMLTableCellElement.headers`
property - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1634](https://redirect.github.com/capricorn86/happy-dom/issues/1634)

###
[`v16.2.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.1...v16.2.2)

##### 👷‍♂️ Patch fixes

- Improves error when a Symbol object is being sent to `querySelector()`
or `querySelectorAll()` as selector - By
**[@&#8203;chocolateboy](https://redirect.github.com/chocolateboy)** in
task
[#&#8203;1640](https://redirect.github.com/capricorn86/happy-dom/issues/1640)

###
[`v16.2.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.0...v16.2.1)

##### 👷‍♂️ Patch fixes

- Set request credentials to "same-origin" in `XMLHttpRequest` when
"withCredentials" is false - By
**[@&#8203;saitonakamura](https://redirect.github.com/saitonakamura)**
in task
[#&#8203;1631](https://redirect.github.com/capricorn86/happy-dom/issues/1631)

###
[`v16.2.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.1.0...v16.2.0)

##### 🎨 Features

- Adds support for `Window.scrollBy()` and `Element.scrollBy()` - By
**[@&#8203;OlaviSau](https://redirect.github.com/OlaviSau)** in task
[#&#8203;1623](https://redirect.github.com/capricorn86/happy-dom/issues/1623)

###
[`v16.1.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.1.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.0.1...v16.1.0)

##### 🎨 Features

- Add support for using whitespace-separated list to
`getElementsByClassName()` - By
**[@&#8203;kylehalleman](https://redirect.github.com/kylehalleman)** in
task
[#&#8203;1551](https://redirect.github.com/capricorn86/happy-dom/issues/1551)

###
[`v16.0.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.0.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.0.0...v16.0.1)

##### 👷‍♂️ Patch fixes

- Fixes problem with children of created documents (e.g.
`document.implementation.createHTMLDocument()`) not being considered as
connected to a DOM that was introduced in v16 - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1647](https://redirect.github.com/capricorn86/happy-dom/issues/1647)

###
[`v16.0.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.0.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.11.7...v16.0.0)

##### 💣 Breaking Changes

- Refactors XML and HTML parsing and serialization - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1615](https://redirect.github.com/capricorn86/happy-dom/issues/1615)
- This change may break your tests as the serialized output may differ
from v15

##### 🎨 Features

- Adds support for parsing XML in `DOMParser` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;284](https://redirect.github.com/capricorn86/happy-dom/issues/284)
- Improved performance in `document.write()` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1615](https://redirect.github.com/capricorn86/happy-dom/issues/1615)
    -   Elements are now added directly to the document during parsing

##### 👷‍♂️ Patch fixes

- Fix for handling `<html>`, `<head>` and `<body>` during parsing - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1615](https://redirect.github.com/capricorn86/happy-dom/issues/1615)
- Fix for handling HTML entities correctly when parsing and serializing
- By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)**
in task
[#&#8203;1494](https://redirect.github.com/capricorn86/happy-dom/issues/1494)
and
[#&#8203;1498](https://redirect.github.com/capricorn86/happy-dom/issues/1498)
- Fix for handling attribute names containing "\[" or "]" during parsing
- By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)**
in task
[#&#8203;1638](https://redirect.github.com/capricorn86/happy-dom/issues/1638)
- Fix for handling comments containing HTML tags - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1630](https://redirect.github.com/capricorn86/happy-dom/issues/1630)
- Fix for handling namespaces in `XMLSerializer` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1615](https://redirect.github.com/capricorn86/happy-dom/issues/1615)
- Handles rules for parsing table elements - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1126](https://redirect.github.com/capricorn86/happy-dom/issues/1126)
- Loads scripts asynchronously when "defer" is set or "type" is "module"
- By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)**
in task
[#&#8203;1615](https://redirect.github.com/capricorn86/happy-dom/issues/1615)

###
[`v15.11.7`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.11.7)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.11.6...v15.11.7)

##### 👷‍♂️ Patch fixes

- Allow for an URL to be a string or an URL object in
`History.pushState()` and `History.replaceState()` - By
**[@&#8203;sohailalam2](https://redirect.github.com/sohailalam2)** in
task
[#&#8203;1621](https://redirect.github.com/capricorn86/happy-dom/issues/1621)

###
[`v15.11.6`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.11.6)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.11.5...v15.11.6)

##### 👷‍♂️ Patch fixes

- Adds support for `window.TextEncoder` and `window.TextDecoder` - By
**[@&#8203;iradonov](https://redirect.github.com/iradonov)** in task
[#&#8203;1611](https://redirect.github.com/capricorn86/happy-dom/issues/1611)

###
[`v15.11.5`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.11.5)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.11.4...v15.11.5)

##### 👷‍♂️ Patch fixes

- `HTMLSelectElement` should not dispatch "change" event when changing
value or index - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1603](https://redirect.github.com/capricorn86/happy-dom/issues/1603)

###
[`v15.11.4`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.11.4)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.11.3...v15.11.4)

##### 👷‍♂️ Patch fixes

- Strings should be converted into numbers in setters for
`HTMLMeterElement` and `HTMLProgressElement` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1601](https://redirect.github.com/capricorn86/happy-dom/issues/1601)

###
[`v15.11.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.11.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.11.2...v15.11.3)

##### 👷‍♂️ Patch fixes

- Consider null as empty string in the setter for
`HTMLInputElement.value` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1604](https://redirect.github.com/capricorn86/happy-dom/issues/1604)

###
[`v15.11.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.11.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.11.1...v15.11.2)

##### 👷‍♂️ Patch fixes

- Fixes bug where pseudo selectors without an ending parentheses threw
an in invalid selector error - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1558](https://redirect.github.com/capricorn86/happy-dom/issues/1558)
- Fixes bug where it was not possible to use the characters ":" and "\\"
in attribute selectors - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1561](https://redirect.github.com/capricorn86/happy-dom/issues/1561)

###
[`v15.11.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.11.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.11.0...v15.11.1)

##### 👷‍♂️ Patch fixes

- Fixes bug where `Document.activeElement` is set to the wrong target
when triggering `HTMLSelectElement.focus()` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1592](https://redirect.github.com/capricorn86/happy-dom/issues/1592)
- `HTMLSelectElement` is a `Proxy` since v15 and `focus()` was setting
the target of the `Proxy` as the active element, but should set the
`Proxy`

###
[`v15.11.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.11.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.10.8...v15.11.0)

##### 🎨 Features

- Adds support for the `:disabled` pseudo-class in CSS and query
selectors - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1159](https://redirect.github.com/capricorn86/happy-dom/issues/1159)

###
[`v15.10.8`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.10.8)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.10.7...v15.10.8)

##### 👷‍♂️ Patch fixes

- Validate that object is of type `Blob` in
`FileReader.readAsArrayBuffer()`, `FileReader.readAsBinaryString()`,
`FileReader.readAsDataURL()` and `FileReader.readAsText()` - By
**[@&#8203;btea](https://redirect.github.com/btea)** in task
[#&#8203;1565](https://redirect.github.com/capricorn86/happy-dom/issues/1565)

###
[`v15.10.7`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.10.7)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.10.6...v15.10.7)

##### 👷‍♂️ Patch fixes

- Cookies with values that contains "=" should be supported - By
**[@&#8203;btea](https://redirect.github.com/btea)** in task
[#&#8203;1570](https://redirect.github.com/capricorn86/happy-dom/issues/1570)

###
[`v15.10.6`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.10.6)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.10.5...v15.10.6)

##### 👷‍♂️ Patch fixes

- Accept objects with a stringifier (such as a `URL` object) in
`Location.assign()` and `Location.replace()` - By
**[@&#8203;silverwind](https://redirect.github.com/silverwind)** in task
[#&#8203;1568](https://redirect.github.com/capricorn86/happy-dom/issues/1568)

###
[`v15.10.5`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.10.5)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.10.4...v15.10.5)

##### 👷‍♂️ Patch fixes

- Fixes incorrect serialization of special characters in raw text
elements such as `<script>` and `<style>` - By
**[@&#8203;BenjaminAster](https://redirect.github.com/BenjaminAster)**
in task
[#&#8203;1566](https://redirect.github.com/capricorn86/happy-dom/issues/1566)

###
[`v15.10.4`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.10.4)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.10.3...v15.10.4)

##### 👷‍♂️ Patch fixes

- Adds missing setter for the `HTMLMediaElement.srcObject` property - By
**[@&#8203;ewesemann](https://redirect.github.com/ewesemann)** in task
[#&#8203;1557](https://redirect.github.com/capricorn86/happy-dom/issues/1557)

###
[`v15.10.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.10.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.10.2...v15.10.3)

##### 👷‍♂️ Patch fixes

- Allow to set custom export conditions in `@happy-dom/jest-environment`
- By **[@&#8203;aearly](https://redirect.github.com/aearly)** in task
[#&#8203;1555](https://redirect.github.com/capricorn86/happy-dom/issues/1555)

###
[`v15.10.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.10.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.10.1...v15.10.2)

##### 👷‍♂️ Patch fixes

- Fixes a security vulnerability that allowed for server side code to be
executed by a `<script>` tag - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1585](https://redirect.github.com/capricorn86/happy-dom/issues/1585)
    -   There was a case that was missed with the first patch

###
[`v15.10.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.10.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.10.0...v15.10.1)

##### 👷‍♂️ Patch fixes

- Fixes a security vulnerability that allowed for server side code to be
executed by a `<script>` tag - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1585](https://redirect.github.com/capricorn86/happy-dom/issues/1585)

###
[`v15.10.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.10.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.9.0...v15.10.0)

##### 🎨 Features

- Adds a new setting called `disableSameOriginPolicy` that makes it
possible to bypass the same-origin policy in fetch requests - By
**[@&#8203;OlaviSau](https://redirect.github.com/OlaviSau)** in task
[#&#8203;1553](https://redirect.github.com/capricorn86/happy-dom/issues/1553)

###
[`v15.9.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.9.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.8.5...v15.9.0)

##### 🎨 Features

- Adds support for "aspect-ratio" to `CSSStyleDeclaration` - By
**[@&#8203;yinm](https://redirect.github.com/yinm)** in task
[#&#8203;1147](https://redirect.github.com/capricorn86/happy-dom/issues/1147)

###
[`v15.8.5`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.8.5)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.8.4...v15.8.5)

##### 👷‍♂️ Patch fixes

- Fixes bug where `Node.getRootNode()` returned null when it was within
a `ShadowRoot` that previously been disconnected from the `Document` -
By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1581](https://redirect.github.com/capricorn86/happy-dom/issues/1581)

###
[`v15.8.4`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.8.4)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.8.3...v15.8.4)

##### 👷‍♂️ Patch fixes

- Fixes bug where child nodes of `HTMLSelectElement` and
`HTMLFormElement` had the wrong reference to the parent - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1578](https://redirect.github.com/capricorn86/happy-dom/issues/1578)

###
[`v15.8.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.8.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.8.2...v15.8.3)

##### 👷‍♂️ Patch fixes

- Toggle "open" attribute on `HTMLDetailsElement` when dispatching a
click event on a summary element which is a child of the details element
- By
**[@&#8203;mikedidomizio](https://redirect.github.com/mikedidomizio)**
in task
[#&#8203;1534](https://redirect.github.com/capricorn86/happy-dom/issues/1534)

###
[`v15.8.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.8.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.8.1...v15.8.2)

##### 👷‍♂️ Patch fixes

- Use `globalThis` instead of `global` to make Happy DOM work in other
runtimes such as Cloudflare workers - By
**[@&#8203;mattallty](https://redirect.github.com/mattallty)** in task
[#&#8203;1546](https://redirect.github.com/capricorn86/happy-dom/issues/1546)

###
[`v15.8.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.8.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.8.0...v15.8.1)

##### 👷‍♂️ Patch fixes

- Always return `Promise<Blob>` from `ClipboardItem.getType()` - By
**[@&#8203;ezzatron](https://redirect.github.com/ezzatron)** in task
[#&#8203;1538](https://redirect.github.com/capricorn86/happy-dom/issues/1538)

###
[`v15.8.0`](https://redirect.github.com/capricorn86/happy-dom/compare/v15.7.4...33a72ca38277d2aab5341b4b66b0ca6380285c0b)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.7.4...v15.8.0)

###
[`v15.7.4`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.7.4)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.7.3...v15.7.4)

##### 👷‍♂️ Patch fixes

- Fixes incorrect handling of non-node items inserted using
`replaceWith()`, `before()` and `after()` - By
**[@&#8203;BenjaminAster](https://redirect.github.com/BenjaminAster)**
in task
[#&#8203;1533](https://redirect.github.com/capricorn86/happy-dom/issues/1533)

###
[`v15.7.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.7.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.7.2...v15.7.3)

##### 👷‍♂️ Patch fixes

- Fixes bug that occurs when checking if a symbol property exists on
`HTMLSelectElement` - By
**[@&#8203;Cherry](https://redirect.github.com/Cherry)** in task
[#&#8203;1526](https://redirect.github.com/capricorn86/happy-dom/issues/1526)

###
[`v15.7.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.7.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.7.1...v15.7.2)

##### 👷‍♂️ Patch fixes

- Fixes problem where it is not possible to observe again after
disconnecting in `MutationObserver` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1524](https://redirect.github.com/capricorn86/happy-dom/issues/1524)

###
[`v15.7.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.7.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.7.0...v15.7.1)

##### 👷‍♂️ Patch fixes

- Fixes selector validation and converts selectors to string (e.g.
`querySelector(['.class'])`) - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1507](https://redirect.github.com/capricorn86/happy-dom/issues/1507)

###
[`v15.7.0`](https://redirect.github.com/capricorn86/happy-dom/compare/v15.6.1...9bde659a1f05519c3986ec1a0bba9d12526525f7)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.6.1...v15.7.0)

###
[`v15.6.1`](https://redirect.github.com/capricorn86/happy-dom/compare/v15.6.0...86748dba632a1716247785851c0009d2256f23ef)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.6.0...v15.6.1)

###
[`v15.6.0`](https://redirect.github.com/capricorn86/happy-dom/compare/v15.5.0...71d243a6a3583cbc376dc90513d5739e96064691)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.5.0...v15.6.0)

###
[`v15.5.0`](https://redirect.github.com/capricorn86/happy-dom/compare/v15.4.3...fec1c0165753112715e1295cc57bb0c16b679b39)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.4.3...v15.5.0)

###
[`v15.4.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.4.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.4.2...v15.4.3)

##### 👷‍♂️ Patch fixes

- Adds support for supporting new lines and tabs as white-space
character in CSS selectors - By
**[@&#8203;syi0808](https://redirect.github.com/syi0808)** in task
[#&#8203;1414](https://redirect.github.com/capricorn86/happy-dom/issues/1414)

###
[`v15.4.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.4.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.4.1...v15.4.2)

##### 👷‍♂️ Patch fixes

- Typo in CORS rejection error message - By
**[@&#8203;rexxars](https://redirect.github.com/rexxars)** in task
[#&#8203;1485](https://redirect.github.com/capricorn86/happy-dom/issues/1485)

###
[`v15.4.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.4.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.4.0...v15.4.1)

##### 👷‍♂️ Patch fixes

- Throw error in `FormData.append()` when value parameter type is
incorrect - By **[@&#8203;btea](https://redirect.github.com/btea)** in
task
[#&#8203;1484](https://redirect.github.com/capricorn86/happy-dom/issues/1484)

###
[`v15.4.0`](https://redirect.github.com/capricorn86/happy-dom/compare/v15.3.2...5b23cc1cf711b8b3c0132d5f3241de6425bc2dc2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.3.2...v15.4.0)

###
[`v15.3.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.3.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.3.1...v15.3.2)

##### 👷‍♂️ Patch fixes

- Fixes the `HTMLInputElement.indeterminate`, so that it behaves
correctly - By **[@&#8203;malko](https://redirect.github.com/malko)** in
task
[#&#8203;1439](https://redirect.github.com/capricorn86/happy-dom/issues/1439)

###
[`v15.3.1`](https://redirect.github.com/capricorn86/happy-dom/compare/v15.3.0...530f535c01f72de9190d9e67d0c3540d3c44a5fa)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.3.0...v15.3.1)

###
[`v15.3.0`](https://redirect.github.com/capricorn86/happy-dom/compare/v15.2.0...a99364fa80f968da81dbb6ceb899ae15a8e5b902)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.2.0...v15.3.0)

###
[`v15.2.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.2.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.1.0...v15.2.0)

##### 🎨 Features

- Adds support for the static method `AbortSignal.any()` - By
**[@&#8203;ezzatron](https://redirect.github.com/ezzatron)** in task
[#&#8203;1468](https://redirect.github.com/capricorn86/happy-dom/issues/1468)

###
[`v15.1.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.1.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v15.0.0...v15.1.0)

##### 🎨 Features

- Refactor internal logic related to injecting the Window context for
classes that can be constructed using the "new" operator - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Improves the way classes can access the Browser context internally -
By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Refactor of the logic for `EventTarget.dispatchEvent()` to better
handle the event phases "none", "capture", "atTarget" and "bubbling" -
By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Adds support for `HTMLInputElement.popoverTargetElement`,
`HTMLInputElement.popoverTargetAction`,
`HTMLButtonElement.popoverTargetElement` and
`HTMLButtonElement.popoverTargetAction` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Adds support for `HTMLElement.popover` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Adds support for `PerformanceObserver`, `PerformanceEntry` and
`PerformanceObserverEntryList` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)

##### 👷‍♂️ Patch fixes

- Makes it possible for a polyfill to replace
`NodeList[Symbol.iterator]()` with `Array.prototype.values()` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Adds logic for canceling any request to start new async tasks while
the `Window` is closing (e.g. using `setTimeout()` or `fetch()`) - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Fixes issues with errors exiting the browser when using the setting
"errorCapture" set to "processLevel" - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Refactor internal logic, so that thrown errors are instances of unique
error classes assigned to the `Window`, which makes it possible for
`BrowserExceptionObserver` to know which `Window` the error originated
from
- Changes `Event.composedPath()` to not return the `Window` object if
the event type is "load", which is the same behaviour as the browser -
By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- This means that "load" events will not bubble up to the `Window`
object

###
[`v15.0.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v15.0.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.12.3...v15.0.0)

##### 💣 Breaking Changes

- Drops offical support for Node.js 16.x and 17.x - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- A lot of internal logic has been refactored, so if you rely on
internal APIs, this release may break your code - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)

##### 🎨 Features

- Adds support for `HTMLAreaElement`, `HTMLBodyElement`,
`HTMLQuoteElement`, `HTMLBRElement`, `HTMLTableCaptionElement`,
`HTMLTableColElement`, `HTMLTableColElement`, `HTMLDataElement`,
`HTMLDataListElement`, `HTMLModElement`, `HTMLDetailsElement`,
`HTMLDivElement`, `HTMLDListElement`, `HTMLEmbedElement`,
`HTMLFieldSetElement`, `HTMLHeadingElement`, `HTMLHeadElement`,
`HTMLHRElement`, `HTMLHtmlElement`, `HTMLModElement`,
`HTMLLegendElement`, `HTMLLIElement`, `HTMLMapElement`,
`HTMLMenuElement`, `HTMLMeterElement`, `HTMLObjectElement`,
`HTMLOListElement`, `HTMLOutputElement`, `HTMLParagraphElement`,
`HTMLParamElement`, `HTMLPictureElement`, `HTMLPreElement`,
`HTMLProgressElement`, `HTMLQuoteElement`, `HTMLSourceElement`,
`HTMLSpanElement`, `HTMLTableElement`, `HTMLTableSectionElement`,
`HTMLTableSectionElement`, `HTMLTitleElement`, `HTMLTableRowElement`,
`HTMLTrackElement`, `HTMLUListElement` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Adds basic support for `HTMLCanvasElement` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Adds support for History API - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Adds cache to `CSSStyleDeclaration`, `querySelector()`,
`querySelectorAll()`, `getElementById()`, `getElementsByClassName()`,
`getElementsByTagName()`, `getElementsByTagNameNS()`,
`getElementsByClassName()` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Uses proxy for `NodeList`, `HTMLCollection`, `DOMTokenList`,
`TextTrackList`, `HTMLFormElement`, `HTMLSelectElement`
- Makes `HTMLCollection` objects returned by `getElementsByClassName()`,
`getElementsByTagName()`, `getElementsByTagNameNS()` and
`getElementsByClassName()` live - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Improves support for `HTMLMediaElement` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- It now supports all methods and properties of the `HTMLMediaElement`
interface
- Adds support for `MediaStream`, `MediaStreamTrack`, `RemotePlayback`,
`TextTrack`, `TextTrackCue`, `TextTrackCueList`, `TextTrackList`,
`VTTCue`, `VTTRegion`, `CanvasCaptureMediaStream`, `ImageBitmap`,
`OffscreenCanvas` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Adds basic support for `IntersectionObserver` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Uses Array for nodes and elements in the DOM-tree to leverage the JiT
compiler better - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Adds support for `HTMLInputElement.list` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Improves support for `ShadowRoot` (it now supports `clonable`,
`serializable` and `slotAssignment`) - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Adds support for `Element.getHTML()` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Improves performance for some pseudo query selectors - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Improves support for `HTMLSlotElement` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- It now supports `assign()`, `assignedNodes()`, `assignedElements()`
and the `slotchange` event

##### 👷‍♂️ Patch fixes

- Attributes and text data wasn't escaped correctly in `XMLSerializer`
(used by features such as `innerHTML`) - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1265](https://redirect.github.com/capricorn86/happy-dom/issues/1265)
- `waitForNavigation()` would not resolve when navigating to some URLs
(e.g. "javascript" or "about:blank") - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- CSS rules for gradients where not parsed correctly - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Updates to CSSStyleDeclaration would not trigger listeners for the
"style" attribute - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Attributes where added to elements after they were added to the DOM
during parsing, causing problems for elements loading resources - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- `Attr.cloneNode()` would not clone internal values - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- `Document.title` included text data inside child elements, which it
shouldn't - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- `Event.preventDefault()` shouldn't cancel the default behaviour if
cancelable is not sent as an option in `EventTarget.dispatchEvent()` -
By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Source attributes containing URLs would not be resolved correctly in
some elements - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- Changes name on `TimeRange` to `TimeRanges` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)
- `Window.parent` and `Window.top` would not be set correctly in some
scenarios - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1332](https://redirect.github.com/capricorn86/happy-dom/issues/1332)

###
[`v14.12.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v14.12.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.12.2...v14.12.3)

##### 👷‍♂️ Patch fixes

- Element.insertBefore works when the node is already inserted - In task
[#&#8203;1429](https://redirect.github.com/capricorn86/happy-dom/issues/1429)

###
[`v14.12.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v14.12.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.12.1...v14.12.2)

##### 👷‍♂️ Patch fixes

- Fixes problem related to the cookie container using the wrong path
when caching cookies - By
**[@&#8203;matcic](https://redirect.github.com/matcic)** in task
[#&#8203;1455](https://redirect.github.com/capricorn86/happy-dom/issues/1455)

###
[`v14.12.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v14.12.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.12.0...v14.12.1)

##### 👷‍♂️ Patch fixes

- Fixes problem related to React click handler with `preventDefault` not
preventing navigation - By
**[@&#8203;amitdahan](https://redirect.github.com/amitdahan)** in task
[#&#8203;1464](https://redirect.github.com/capricorn86/happy-dom/issues/1464)

###
[`v14.12.0`](https://redirect.github.com/capricorn86/happy-dom/compare/v14.11.4...ef2dfeafc7673d53776f8db1a313fecaed5074f4)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.11.4...v14.12.0)

###
[`v14.11.4`](https://redirect.github.com/capricorn86/happy-dom/compare/v14.11.3...v14.11.4)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.11.3...v14.11.4)

###
[`v14.11.3`](https://redirect.github.com/capricorn86/happy-dom/compare/v14.11.2...f021a3305a20d0f0613d50c30ee694be831faa95)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.11.2...v14.11.3)

###
[`v14.11.2`](https://redirect.github.com/capricorn86/happy-dom/compare/v14.11.1...db97904b3a11e575269a15bbb70031399729ff45)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.11.1...v14.11.2)

###
[`v14.11.1`](https://redirect.github.com/capricorn86/happy-dom/compare/v14.11.0...6ada81698021c35f074e575ec232d1bb7bafb4bc)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.11.0...v14.11.1)

###
[`v14.11.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v14.11.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.10.3...v14.11.0)

##### 🎨 Features

- Adds support for `HTMLTimeElement` - By
**[@&#8203;r-thomson](https://redirect.github.com/r-thomson)** in task
[#&#8203;1431](https://redirect.github.com/capricorn86/happy-dom/issues/1431)

###
[`v14.10.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v14.10.3)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.10.2...v14.10.3)

##### 👷‍♂️ Patch fixes

- Adds check for if Window and MutationObserver has been destroyed when
triggering listeners - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1436](https://redirect.github.com/capricorn86/happy-dom/issues/1436)

###
[`v14.10.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v14.10.2)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.10.1...v14.10.2)

##### 👷‍♂️ Patch fixes

- `HTMLAnchorElement`, `HTMLButtonElement`, `HTMLInputElement` and
`HTMLLabelElement` checked that click events triggering native behavior
was of type `PointerEvent`, but should check that they are of type
`MouseEvent` - By
**[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in
task
[#&#8203;1397](https://redirect.github.com/capricorn86/happy-dom/issues/1397)

###
[`v14.10.1`](https://redirect.github.com/capricorn86/happy-dom/compare/v14.10.0...v14.10.1)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.10.0...v14.10.1)

###
[`v14.10.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v14.10.0)

[Compare
Source](https://redirect.github.com/capricorn86/happy-dom/compare/v14.9.0...v14.10.0)

##### 🎨 Features

- Adds support for `Document.elementFromPoint()` - By
**[@&#8203;TreyVigus](https://redirect.github.com/TreyVigus)** in task
[#&#8203;1400](https://redirect.github.com/capricorn86/happy-dom/issues/1400)
- The method will always return `null` as Happy DOM doesn't support
rendering and can't calculate an element's position based on where it is
r

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-24 14:09:46 -05:00
renovate[bot]
baa8eb7375 chore(deps): update dependency shadcn-nuxt to v1 (#1193)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [shadcn-nuxt](https://redirect.github.com/unovue/shadcn-vue)
([source](https://redirect.github.com/unovue/shadcn-vue/tree/HEAD/packages/module))
| [`^0.11.3` ->
`^1.0.0`](https://renovatebot.com/diffs/npm/shadcn-nuxt/0.11.3/1.0.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/shadcn-nuxt/1.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shadcn-nuxt/1.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shadcn-nuxt/0.11.3/1.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shadcn-nuxt/0.11.3/1.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>unovue/shadcn-vue (shadcn-nuxt)</summary>

###
[`v1.0.1`](https://redirect.github.com/unovue/shadcn-vue/releases/tag/v1.0.1)

[Compare
Source](https://redirect.github.com/unovue/shadcn-vue/compare/v1.0.0...v1.0.1)

#####    🐞 Bug Fixes

- **CLI**: Init, support js, update docs  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia) in
[https://github.com/unovue/shadcn-vue/issues/1053](https://redirect.github.com/unovue/shadcn-vue/issues/1053)
[<samp>(cdfe2)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/cdfe2e8e)

#####     [View changes on
GitHub](https://redirect.github.com/unovue/shadcn-vue/compare/v1.0.0...v1.0.1)

###
[`v1.0.0`](https://redirect.github.com/unovue/shadcn-vue/releases/tag/v1.0.0)

[Compare
Source](https://redirect.github.com/unovue/shadcn-vue/compare/v0.11.4...v1.0.0)

#####    🚀 Features

- Reka-ui & updated cli  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia) in
[https://github.com/unovue/shadcn-vue/issues/917](https://redirect.github.com/unovue/shadcn-vue/issues/917)
[<samp>(bc6da)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/bc6dae3d)

#####     [View changes on
GitHub](https://redirect.github.com/unovue/shadcn-vue/compare/v0.11.4...v1.0.0)

###
[`v0.11.4`](https://redirect.github.com/unovue/shadcn-vue/releases/tag/v0.11.4)

[Compare
Source](https://redirect.github.com/unovue/shadcn-vue/compare/v0.11.3...v0.11.4)

##### CLI

-   Modified to use updated registry url

   

##### 🐞 Bug Fixes

- Add missing `useMediaQuery` in `SidebarProvider.vue` new-york style
 -  by
[@&#8203;fabianbernhart](https://redirect.github.com/fabianbernhart) in
[https://github.com/unovue/shadcn-vue/issues/927](https://redirect.github.com/unovue/shadcn-vue/issues/927)
[<samp>(8a24d)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/8a24d11a)
- Only apply text-sidebar-foreground to sidebar  -  by
[@&#8203;benkroeger](https://redirect.github.com/benkroeger) in
[https://github.com/unovue/shadcn-vue/issues/986](https://redirect.github.com/unovue/shadcn-vue/issues/986)
[<samp>(1195a)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/1195a830)
- Sidebar not installable in JS projects  -  by
[@&#8203;4m1n0s](https://redirect.github.com/4m1n0s) in
[https://github.com/unovue/shadcn-vue/issues/1026](https://redirect.github.com/unovue/shadcn-vue/issues/1026)
[<samp>(efc4e)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/efc4e9f5)
- Calendar heading slots typing  -  by
[@&#8203;ZTL-UwU](https://redirect.github.com/ZTL-UwU) in
[https://github.com/unovue/shadcn-vue/issues/1038](https://redirect.github.com/unovue/shadcn-vue/issues/1038)
[<samp>(772b8)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/772b8d16)
- **RadioGroupItem**: Add peer class to RadioGroupItem  -  by
[@&#8203;wsehl](https://redirect.github.com/wsehl) in
[https://github.com/unovue/shadcn-vue/issues/1046](https://redirect.github.com/unovue/shadcn-vue/issues/1046)
[<samp>(86702)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/86702dd8)
- **Sidebar**: Component import and registry dependencies  -  by
[@&#8203;zernonia](https://redirect.github.com/zernonia)
[<samp>(693b0)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/693b0d2a)
- **navigation**: Add NavigationMenuIndicator export  -  by
[@&#8203;sanskar-mk2](https://redirect.github.com/sanskar-mk2) in
[https://github.com/unovue/shadcn-vue/issues/1012](https://redirect.github.com/unovue/shadcn-vue/issues/1012)
[<samp>(5572d)</samp>](https://redirect.github.com/unovue/shadcn-vue/commit/5572de2b)

#####     [View changes on
GitHub](https://redirect.github.com/unovue/shadcn-vue/compare/v0.11.3...v0.11.4)

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-24 14:09:20 -05:00
renovate[bot]
982b22b1b4 chore(deps): update szenius/set-timezone action to v2 (#1194)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[szenius/set-timezone](https://redirect.github.com/szenius/set-timezone)
| action | major | `v1.2` -> `v2.0` |

---

### Release Notes

<details>
<summary>szenius/set-timezone (szenius/set-timezone)</summary>

###
[`v2.0`](https://redirect.github.com/szenius/set-timezone/releases/tag/v2.0)

[Compare
Source](https://redirect.github.com/szenius/set-timezone/compare/v1.2...v2.0)

##### What's Changed

- update deps & make use of node 20 instead of node 16 by
[@&#8203;kwarkjes](https://redirect.github.com/kwarkjes) in
[https://github.com/szenius/set-timezone/pull/19](https://redirect.github.com/szenius/set-timezone/pull/19)

##### New Contributors

- [@&#8203;kwarkjes](https://redirect.github.com/kwarkjes) made their
first contribution in
[https://github.com/szenius/set-timezone/pull/19](https://redirect.github.com/szenius/set-timezone/pull/19)

**Full Changelog**:
https://github.com/szenius/set-timezone/compare/v1.2...v2.0

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-24 14:08:44 -05:00
Eli Bosley
d53577cd65 refactor: fix theme settings 2025-02-24 13:42:31 -05:00
renovate[bot]
3bcf7f5c29 chore(deps): update node.js to v22 (major) (#1179)
Updates node.js in plugin / monorepo
2025-02-24 12:18:07 -05:00
renovate[bot]
41252392d3 chore(deps): update dependency vite to v6 (#1171)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`^5.0.0` ->
`^6.0.0`](https://renovatebot.com/diffs/npm/vite/5.4.14/6.1.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.4.14/6.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.4.14/6.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://vite.dev)
([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite))
| [`^5.4.14` ->
`^6.0.0`](https://renovatebot.com/diffs/npm/vite/5.4.14/6.1.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.4.14/6.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.4.14/6.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v6.1.1`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small611-2025-02-19-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.1.0...v6.1.1)

- fix: ensure `.[cm]?[tj]sx?` static assets are JS mime
([#&#8203;19453](https://redirect.github.com/vitejs/vite/issues/19453))
([e7ba55e](e7ba55e7d5)),
closes
[#&#8203;19453](https://redirect.github.com/vitejs/vite/issues/19453)
- fix: ignore `*.ipv4` address in cert
([#&#8203;19416](https://redirect.github.com/vitejs/vite/issues/19416))
([973283b](973283bf84)),
closes
[#&#8203;19416](https://redirect.github.com/vitejs/vite/issues/19416)
- fix(css): run rewrite plugin if postcss plugin exists
([#&#8203;19371](https://redirect.github.com/vitejs/vite/issues/19371))
([bcdb51a](bcdb51a1ac)),
closes
[#&#8203;19371](https://redirect.github.com/vitejs/vite/issues/19371)
- fix(deps): bump tsconfck
([#&#8203;19375](https://redirect.github.com/vitejs/vite/issues/19375))
([746a583](746a583d42)),
closes
[#&#8203;19375](https://redirect.github.com/vitejs/vite/issues/19375)
- fix(deps): update all non-major dependencies
([#&#8203;19392](https://redirect.github.com/vitejs/vite/issues/19392))
([60456a5](60456a54fe)),
closes
[#&#8203;19392](https://redirect.github.com/vitejs/vite/issues/19392)
- fix(deps): update all non-major dependencies
([#&#8203;19440](https://redirect.github.com/vitejs/vite/issues/19440))
([ccac73d](ccac73d9d0)),
closes
[#&#8203;19440](https://redirect.github.com/vitejs/vite/issues/19440)
- fix(html): ignore malformed src attrs
([#&#8203;19397](https://redirect.github.com/vitejs/vite/issues/19397))
([aff7812](aff7812f0a)),
closes
[#&#8203;19397](https://redirect.github.com/vitejs/vite/issues/19397)
- fix(worker): fix web worker type detection
([#&#8203;19462](https://redirect.github.com/vitejs/vite/issues/19462))
([edc65ea](edc65eafa3)),
closes
[#&#8203;19462](https://redirect.github.com/vitejs/vite/issues/19462)
- refactor: remove custom .jxl mime
([#&#8203;19457](https://redirect.github.com/vitejs/vite/issues/19457))
([0c85464](0c854645bd)),
closes
[#&#8203;19457](https://redirect.github.com/vitejs/vite/issues/19457)
- feat: add support for injecting debug IDs
([#&#8203;18763](https://redirect.github.com/vitejs/vite/issues/18763))
([0ff556a](0ff556a6d9)),
closes
[#&#8203;18763](https://redirect.github.com/vitejs/vite/issues/18763)
- chore: update 6.1.0 changelog
([#&#8203;19363](https://redirect.github.com/vitejs/vite/issues/19363))
([fa7c211](fa7c211bf3)),
closes
[#&#8203;19363](https://redirect.github.com/vitejs/vite/issues/19363)

###
[`v6.1.0`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#610-2025-02-05)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.0.11...v6.1.0)

- refactor: deprecate `vite optimize` command
([#&#8203;19348](https://redirect.github.com/vitejs/vite/issues/19348))
([6e0e3c0](6e0e3c0b99)),
closes
[#&#8203;19348](https://redirect.github.com/vitejs/vite/issues/19348)
- feat: show hosts in cert in CLI
([#&#8203;19317](https://redirect.github.com/vitejs/vite/issues/19317))
([a5e306f](a5e306f2fc)),
closes
[#&#8203;19317](https://redirect.github.com/vitejs/vite/issues/19317)
- feat: support for env var for defining allowed hosts
([#&#8203;19325](https://redirect.github.com/vitejs/vite/issues/19325))
([4d88f6c](4d88f6c939)),
closes
[#&#8203;19325](https://redirect.github.com/vitejs/vite/issues/19325)
- feat: use native runtime to import the config
([#&#8203;19178](https://redirect.github.com/vitejs/vite/issues/19178))
([7c2a794](7c2a7942cc)),
closes
[#&#8203;19178](https://redirect.github.com/vitejs/vite/issues/19178)
- fix: avoid builtStart during vite optimize
([#&#8203;19356](https://redirect.github.com/vitejs/vite/issues/19356))
([fdb36e0](fdb36e0769)),
closes
[#&#8203;19356](https://redirect.github.com/vitejs/vite/issues/19356)
- fix(build): fix stale build manifest on watch rebuild
([#&#8203;19361](https://redirect.github.com/vitejs/vite/issues/19361))
([fcd5785](fcd578587b)),
closes
[#&#8203;19361](https://redirect.github.com/vitejs/vite/issues/19361)

###
[`v6.0.11`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small6011-2025-01-21-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.0.10...v6.0.11)

- fix: `preview.allowedHosts` with specific values was not respected
([#&#8203;19246](https://redirect.github.com/vitejs/vite/issues/19246))
([aeb3ec8](aeb3ec84a2)),
closes
[#&#8203;19246](https://redirect.github.com/vitejs/vite/issues/19246)
- fix: allow CORS from loopback addresses by default
([#&#8203;19249](https://redirect.github.com/vitejs/vite/issues/19249))
([3d03899](3d03899737)),
closes
[#&#8203;19249](https://redirect.github.com/vitejs/vite/issues/19249)

###
[`v6.0.10`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small6010-2025-01-20-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.0.9...v6.0.10)

- fix: try parse `server.origin` URL
([#&#8203;19241](https://redirect.github.com/vitejs/vite/issues/19241))
([2495022](2495022420)),
closes
[#&#8203;19241](https://redirect.github.com/vitejs/vite/issues/19241)

###
[`v6.0.9`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small609-2025-01-20-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.0.8...v6.0.9)

- fix!: check host header to prevent DNS rebinding attacks and introduce
`server.allowedHosts`
([bd896fb](bd896fb5f3))
- fix!: default `server.cors: false` to disallow fetching from untrusted
origins
([b09572a](b09572acc9))
- fix: verify token for HMR WebSocket connection
([029dcd6](029dcd6d77))

###
[`v6.0.8`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small608-2025-01-20-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.0.7...v6.0.8)

- fix: avoid SSR HMR for HTML files
([#&#8203;19193](https://redirect.github.com/vitejs/vite/issues/19193))
([3bd55bc](3bd55bcb7e)),
closes
[#&#8203;19193](https://redirect.github.com/vitejs/vite/issues/19193)
- fix: build time display 7m 60s
([#&#8203;19108](https://redirect.github.com/vitejs/vite/issues/19108))
([cf0d2c8](cf0d2c8e23)),
closes
[#&#8203;19108](https://redirect.github.com/vitejs/vite/issues/19108)
- fix: don't resolve URL starting with double slash
([#&#8203;19059](https://redirect.github.com/vitejs/vite/issues/19059))
([35942cd](35942cde11)),
closes
[#&#8203;19059](https://redirect.github.com/vitejs/vite/issues/19059)
- fix: ensure `server.close()` only called once
([#&#8203;19204](https://redirect.github.com/vitejs/vite/issues/19204))
([db81c2d](db81c2dada)),
closes
[#&#8203;19204](https://redirect.github.com/vitejs/vite/issues/19204)
- fix: resolve.conditions in ResolvedConfig was
`defaultServerConditions`
([#&#8203;19174](https://redirect.github.com/vitejs/vite/issues/19174))
([ad75c56](ad75c56dce)),
closes
[#&#8203;19174](https://redirect.github.com/vitejs/vite/issues/19174)
- fix: tree shake stringified JSON imports
([#&#8203;19189](https://redirect.github.com/vitejs/vite/issues/19189))
([f2aed62](f2aed62d0b)),
closes
[#&#8203;19189](https://redirect.github.com/vitejs/vite/issues/19189)
- fix: use shared sigterm callback
([#&#8203;19203](https://redirect.github.com/vitejs/vite/issues/19203))
([47039f4](47039f4643)),
closes
[#&#8203;19203](https://redirect.github.com/vitejs/vite/issues/19203)
- fix(deps): update all non-major dependencies
([#&#8203;19098](https://redirect.github.com/vitejs/vite/issues/19098))
([8639538](8639538e64)),
closes
[#&#8203;19098](https://redirect.github.com/vitejs/vite/issues/19098)
- fix(optimizer): use correct default install state path for yarn PnP
([#&#8203;19119](https://redirect.github.com/vitejs/vite/issues/19119))
([e690d8b](e690d8bb1e)),
closes
[#&#8203;19119](https://redirect.github.com/vitejs/vite/issues/19119)
- fix(types): improve `ESBuildOptions.include / exclude` type to allow
`readonly (string | RegExp)[]`
([ea53e70](ea53e70952)),
closes
[#&#8203;19146](https://redirect.github.com/vitejs/vite/issues/19146)
- chore(deps): update dependency pathe to v2
([#&#8203;19139](https://redirect.github.com/vitejs/vite/issues/19139))
([71506f0](71506f0a8d)),
closes
[#&#8203;19139](https://redirect.github.com/vitejs/vite/issues/19139)

###
[`v6.0.7`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small607-2025-01-02-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.0.6...v6.0.7)

- fix: fix `minify` when `builder.sharedPlugins: true`
([#&#8203;19025](https://redirect.github.com/vitejs/vite/issues/19025))
([f7b1964](f7b1964d3a)),
closes
[#&#8203;19025](https://redirect.github.com/vitejs/vite/issues/19025)
- fix: skip the plugin if it has been called before with the same id and
importer
([#&#8203;19016](https://redirect.github.com/vitejs/vite/issues/19016))
([b178c90](b178c90c7d)),
closes
[#&#8203;19016](https://redirect.github.com/vitejs/vite/issues/19016)
- fix(html): error while removing `vite-ignore` attribute for inline
script
([#&#8203;19062](https://redirect.github.com/vitejs/vite/issues/19062))
([a492253](a4922537a8)),
closes
[#&#8203;19062](https://redirect.github.com/vitejs/vite/issues/19062)
- fix(ssr): fix semicolon injection by ssr transform
([#&#8203;19097](https://redirect.github.com/vitejs/vite/issues/19097))
([1c102d5](1c102d517d)),
closes
[#&#8203;19097](https://redirect.github.com/vitejs/vite/issues/19097)
- perf: skip globbing for static path in warmup
([#&#8203;19107](https://redirect.github.com/vitejs/vite/issues/19107))
([677508b](677508bf82)),
closes
[#&#8203;19107](https://redirect.github.com/vitejs/vite/issues/19107)
- feat(css): show lightningcss warnings
([#&#8203;19076](https://redirect.github.com/vitejs/vite/issues/19076))
([b07c036](b07c036faf)),
closes
[#&#8203;19076](https://redirect.github.com/vitejs/vite/issues/19076)

###
[`v6.0.6`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small606-2024-12-26-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.0.5...v6.0.6)

- fix: replace runner-side path normalization with `fetchModule`-side
resolve
([#&#8203;18361](https://redirect.github.com/vitejs/vite/issues/18361))
([9f10261](9f10261e76)),
closes
[#&#8203;18361](https://redirect.github.com/vitejs/vite/issues/18361)
- fix(css): resolve style tags in HTML files correctly for lightningcss
([#&#8203;19001](https://redirect.github.com/vitejs/vite/issues/19001))
([afff05c](afff05c032)),
closes
[#&#8203;19001](https://redirect.github.com/vitejs/vite/issues/19001)
- fix(css): show correct error when unknown placeholder is used for CSS
modules pattern in lightningcs
([9290d85](9290d85b5d)),
closes
[#&#8203;19070](https://redirect.github.com/vitejs/vite/issues/19070)
- fix(resolve): handle package.json with UTF-8 BOM
([#&#8203;19000](https://redirect.github.com/vitejs/vite/issues/19000))
([902567a](902567ac53)),
closes
[#&#8203;19000](https://redirect.github.com/vitejs/vite/issues/19000)
- fix(ssrTransform): preserve line offset when transforming imports
([#&#8203;19004](https://redirect.github.com/vitejs/vite/issues/19004))
([1aa434e](1aa434e801)),
closes
[#&#8203;19004](https://redirect.github.com/vitejs/vite/issues/19004)
- chore: fix typo in comment
([#&#8203;19067](https://redirect.github.com/vitejs/vite/issues/19067))
([eb06ec3](eb06ec30bb)),
closes
[#&#8203;19067](https://redirect.github.com/vitejs/vite/issues/19067)
- chore: update comment about `build.target`
([#&#8203;19047](https://redirect.github.com/vitejs/vite/issues/19047))
([0e9e81f](0e9e81f622)),
closes
[#&#8203;19047](https://redirect.github.com/vitejs/vite/issues/19047)
- revert: unpin esbuild version
([#&#8203;19043](https://redirect.github.com/vitejs/vite/issues/19043))
([8bfe247](8bfe247511)),
closes
[#&#8203;19043](https://redirect.github.com/vitejs/vite/issues/19043)
- test(ssr): test virtual module with query
([#&#8203;19044](https://redirect.github.com/vitejs/vite/issues/19044))
([a1f4b46](a1f4b46896)),
closes
[#&#8203;19044](https://redirect.github.com/vitejs/vite/issues/19044)

###
[`v6.0.5`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small605-2024-12-20-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.0.4...v6.0.5)

- fix: esbuild regression (pin to 0.24.0)
([#&#8203;19027](https://redirect.github.com/vitejs/vite/issues/19027))
([4359e0d](4359e0d5b3)),
closes
[#&#8203;19027](https://redirect.github.com/vitejs/vite/issues/19027)

###
[`v6.0.4`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small604-2024-12-19-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.0.3...v6.0.4)

- fix: `this.resolve` skipSelf should not skip for different `id` or
`import`
([#&#8203;18903](https://redirect.github.com/vitejs/vite/issues/18903))
([4727320](472732057c)),
closes
[#&#8203;18903](https://redirect.github.com/vitejs/vite/issues/18903)
- fix: fallback terser to main thread when function options are used
([#&#8203;18987](https://redirect.github.com/vitejs/vite/issues/18987))
([12b612d](12b612d8be)),
closes
[#&#8203;18987](https://redirect.github.com/vitejs/vite/issues/18987)
- fix: merge client and ssr values for `pluginContainer.getModuleInfo`
([#&#8203;18895](https://redirect.github.com/vitejs/vite/issues/18895))
([258cdd6](258cdd637d)),
closes
[#&#8203;18895](https://redirect.github.com/vitejs/vite/issues/18895)
- fix(css): escape double quotes in `url()` when lightningcss is used
([#&#8203;18997](https://redirect.github.com/vitejs/vite/issues/18997))
([3734f80](3734f8099e)),
closes
[#&#8203;18997](https://redirect.github.com/vitejs/vite/issues/18997)
- fix(css): root relative import in sass modern API on Windows
([#&#8203;18945](https://redirect.github.com/vitejs/vite/issues/18945))
([c4b532c](c4b532cc90)),
closes
[#&#8203;18945](https://redirect.github.com/vitejs/vite/issues/18945)
- fix(css): skip non css in custom sass importer
([#&#8203;18970](https://redirect.github.com/vitejs/vite/issues/18970))
([21680bd](21680bdf9c)),
closes
[#&#8203;18970](https://redirect.github.com/vitejs/vite/issues/18970)
- fix(deps): update all non-major dependencies
([#&#8203;18967](https://redirect.github.com/vitejs/vite/issues/18967))
([d88d000](d88d0004a8)),
closes
[#&#8203;18967](https://redirect.github.com/vitejs/vite/issues/18967)
- fix(deps): update all non-major dependencies
([#&#8203;18996](https://redirect.github.com/vitejs/vite/issues/18996))
([2b4f115](2b4f115129)),
closes
[#&#8203;18996](https://redirect.github.com/vitejs/vite/issues/18996)
- fix(optimizer): keep NODE_ENV as-is when keepProcessEnv is `true`
([#&#8203;18899](https://redirect.github.com/vitejs/vite/issues/18899))
([8a6bb4e](8a6bb4e11d)),
closes
[#&#8203;18899](https://redirect.github.com/vitejs/vite/issues/18899)
- fix(ssr): recreate ssrCompatModuleRunner on restart
([#&#8203;18973](https://redirect.github.com/vitejs/vite/issues/18973))
([7d6dd5d](7d6dd5d1d6)),
closes
[#&#8203;18973](https://redirect.github.com/vitejs/vite/issues/18973)
- chore: better validation error message for dts build
([#&#8203;18948](https://redirect.github.com/vitejs/vite/issues/18948))
([63b82f1](63b82f1e29)),
closes
[#&#8203;18948](https://redirect.github.com/vitejs/vite/issues/18948)
- chore(deps): update all non-major dependencies
([#&#8203;18916](https://redirect.github.com/vitejs/vite/issues/18916))
([ef7a6a3](ef7a6a35e6)),
closes
[#&#8203;18916](https://redirect.github.com/vitejs/vite/issues/18916)
- chore(deps): update dependency
[@&#8203;rollup/plugin-node-resolve](https://redirect.github.com/rollup/plugin-node-resolve)
to v16
([#&#8203;18968](https://redirect.github.com/vitejs/vite/issues/18968))
([62fad6d](62fad6d79f)),
closes
[#&#8203;18968](https://redirect.github.com/vitejs/vite/issues/18968)
- refactor: make internal invoke event to use the same interface with
`handleInvoke`
([#&#8203;18902](https://redirect.github.com/vitejs/vite/issues/18902))
([27f691b](27f691b0c7)),
closes
[#&#8203;18902](https://redirect.github.com/vitejs/vite/issues/18902)
- refactor: simplify manifest plugin code
([#&#8203;18890](https://redirect.github.com/vitejs/vite/issues/18890))
([1bfe21b](1bfe21b944)),
closes
[#&#8203;18890](https://redirect.github.com/vitejs/vite/issues/18890)
- test: test `ModuleRunnerTransport` `invoke` API
([#&#8203;18865](https://redirect.github.com/vitejs/vite/issues/18865))
([e5f5301](e5f5301924)),
closes
[#&#8203;18865](https://redirect.github.com/vitejs/vite/issues/18865)
- test: test output hash changes
([#&#8203;18898](https://redirect.github.com/vitejs/vite/issues/18898))
([bfbb130](bfbb130fcc)),
closes
[#&#8203;18898](https://redirect.github.com/vitejs/vite/issues/18898)

###
[`v6.0.3`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small603-2024-12-05-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.0.2...v6.0.3)

- fix: handle postcss load unhandled rejections
([#&#8203;18886](https://redirect.github.com/vitejs/vite/issues/18886))
([d5fb653](d5fb653c15)),
closes
[#&#8203;18886](https://redirect.github.com/vitejs/vite/issues/18886)
- fix: make handleInvoke interface compatible with invoke
([#&#8203;18876](https://redirect.github.com/vitejs/vite/issues/18876))
([a1dd396](a1dd396da8)),
closes
[#&#8203;18876](https://redirect.github.com/vitejs/vite/issues/18876)
- fix: make result interfaces for `ModuleRunnerTransport#invoke` more
explicit
([#&#8203;18851](https://redirect.github.com/vitejs/vite/issues/18851))
([a75fc31](a75fc3193d)),
closes
[#&#8203;18851](https://redirect.github.com/vitejs/vite/issues/18851)
- fix: merge `environments.ssr.resolve` with root `ssr` config
([#&#8203;18857](https://redirect.github.com/vitejs/vite/issues/18857))
([3104331](310433106e)),
closes
[#&#8203;18857](https://redirect.github.com/vitejs/vite/issues/18857)
- fix: no permission to create vite config file
([#&#8203;18844](https://redirect.github.com/vitejs/vite/issues/18844))
([ff47778](ff47778004)),
closes
[#&#8203;18844](https://redirect.github.com/vitejs/vite/issues/18844)
- fix: remove CSS import in CJS correctly in some cases
([#&#8203;18885](https://redirect.github.com/vitejs/vite/issues/18885))
([690a36f](690a36ffdb)),
closes
[#&#8203;18885](https://redirect.github.com/vitejs/vite/issues/18885)
- fix(config): bundle files referenced with imports field
([#&#8203;18887](https://redirect.github.com/vitejs/vite/issues/18887))
([2b5926a](2b5926a0e7)),
closes
[#&#8203;18887](https://redirect.github.com/vitejs/vite/issues/18887)
- fix(config): make stacktrace path correct when sourcemap is enabled
([#&#8203;18833](https://redirect.github.com/vitejs/vite/issues/18833))
([20fdf21](20fdf210ee)),
closes
[#&#8203;18833](https://redirect.github.com/vitejs/vite/issues/18833)
- fix(css): rewrite url when image-set and url exist at the same time
([#&#8203;18868](https://redirect.github.com/vitejs/vite/issues/18868))
([d59efd8](d59efd8dfd)),
closes
[#&#8203;18868](https://redirect.github.com/vitejs/vite/issues/18868)
- fix(deps): update all non-major dependencies
([#&#8203;18853](https://redirect.github.com/vitejs/vite/issues/18853))
([5c02236](5c0223636f)),
closes
[#&#8203;18853](https://redirect.github.com/vitejs/vite/issues/18853)
- fix(html): allow unexpected question mark in tag name
([#&#8203;18852](https://redirect.github.com/vitejs/vite/issues/18852))
([1b54e50](1b54e506a4)),
closes
[#&#8203;18852](https://redirect.github.com/vitejs/vite/issues/18852)
- fix(module-runner): decode uri for file url passed to import
([#&#8203;18837](https://redirect.github.com/vitejs/vite/issues/18837))
([88e49aa](88e49aa041)),
closes
[#&#8203;18837](https://redirect.github.com/vitejs/vite/issues/18837)
- refactor: fix logic errors found by no-unnecessary-condition rule
([#&#8203;18891](https://redirect.github.com/vitejs/vite/issues/18891))
([ea802f8](ea802f8f8b)),
closes
[#&#8203;18891](https://redirect.github.com/vitejs/vite/issues/18891)
- chore: fix duplicate attributes issue number in comment
([#&#8203;18860](https://redirect.github.com/vitejs/vite/issues/18860))
([ffee618](ffee61893c)),
closes
[#&#8203;18860](https://redirect.github.com/vitejs/vite/issues/18860)

###
[`v6.0.2`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small602-2024-12-02-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.0.1...v6.0.2)

- chore: run typecheck in unit tests
([#&#8203;18858](https://redirect.github.com/vitejs/vite/issues/18858))
([49f20bb](49f20bb777)),
closes
[#&#8203;18858](https://redirect.github.com/vitejs/vite/issues/18858)
- chore: update broken links in changelog
([#&#8203;18802](https://redirect.github.com/vitejs/vite/issues/18802))
([cb754f8](cb754f8acc)),
closes
[#&#8203;18802](https://redirect.github.com/vitejs/vite/issues/18802)
- chore: update broken links in changelog
([#&#8203;18804](https://redirect.github.com/vitejs/vite/issues/18804))
([47ec49f](47ec49ffa1)),
closes
[#&#8203;18804](https://redirect.github.com/vitejs/vite/issues/18804)
- fix: don't store temporary vite config file in `node_modules` if deno
([#&#8203;18823](https://redirect.github.com/vitejs/vite/issues/18823))
([a20267b](a20267bb93)),
closes
[#&#8203;18823](https://redirect.github.com/vitejs/vite/issues/18823)
- fix(css): referencing aliased svg asset with lightningcss enabled
errored
([#&#8203;18819](https://redirect.github.com/vitejs/vite/issues/18819))
([ae68958](ae68958691)),
closes
[#&#8203;18819](https://redirect.github.com/vitejs/vite/issues/18819)
- fix(manifest): use `style.css` as a key for the style file for
`cssCodesplit: false`
([#&#8203;18820](https://redirect.github.com/vitejs/vite/issues/18820))
([ec51115](ec51115255)),
closes
[#&#8203;18820](https://redirect.github.com/vitejs/vite/issues/18820)
- fix(optimizer): resolve all promises when cancelled
([#&#8203;18826](https://redirect.github.com/vitejs/vite/issues/18826))
([d6e6194](d6e6194706)),
closes
[#&#8203;18826](https://redirect.github.com/vitejs/vite/issues/18826)
- fix(resolve): don't set builtinModules to `external` by default
([#&#8203;18821](https://redirect.github.com/vitejs/vite/issues/18821))
([2250ffa](2250ffac62)),
closes
[#&#8203;18821](https://redirect.github.com/vitejs/vite/issues/18821)
- fix(ssr): set `ssr.target: 'webworker'` defaults as fallback
([#&#8203;18827](https://redirect.github.com/vitejs/vite/issues/18827))
([b39e696](b39e69638b)),
closes
[#&#8203;18827](https://redirect.github.com/vitejs/vite/issues/18827)
- feat(css): format lightningcss error
([#&#8203;18818](https://redirect.github.com/vitejs/vite/issues/18818))
([dac7992](dac7992e87)),
closes
[#&#8203;18818](https://redirect.github.com/vitejs/vite/issues/18818)
- refactor: make properties of ResolvedServerOptions and
ResolvedPreviewOptions required
([#&#8203;18796](https://redirect.github.com/vitejs/vite/issues/18796))
([51a5569](51a5569e66)),
closes
[#&#8203;18796](https://redirect.github.com/vitejs/vite/issues/18796)

###
[`v6.0.1`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small601-2024-11-27-small)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v6.0.0...v6.0.1)

- fix: default empty server `proxy` prevents starting http2 server
([#&#8203;18788](https://redirect.github.com/vitejs/vite/issues/18788))
([bbaf514](bbaf514fb7)),
closes
[#&#8203;18788](https://redirect.github.com/vitejs/vite/issues/18788)
- fix(manifest): do not override existing js manifest entry
([#&#8203;18776](https://redirect.github.com/vitejs/vite/issues/18776))
([3b0837e](3b0837e0b9)),
closes
[#&#8203;18776](https://redirect.github.com/vitejs/vite/issues/18776)
- fix(server): close \_ssrCompatModuleRunner on server close
([#&#8203;18784](https://redirect.github.com/vitejs/vite/issues/18784))
([9b4c410](9b4c410ddd)),
closes
[#&#8203;18784](https://redirect.github.com/vitejs/vite/issues/18784)
- fix(server): skip hot channel client normalization for wsServer
([#&#8203;18782](https://redirect.github.com/vitejs/vite/issues/18782))
([cc7670a](cc7670abaf)),
closes
[#&#8203;18782](https://redirect.github.com/vitejs/vite/issues/18782)
- fix(worker): fix `applyToEnvironment` hooks on worker build
([#&#8203;18793](https://redirect.github.com/vitejs/vite/issues/18793))
([0c6cdb0](0c6cdb0f88)),
closes
[#&#8203;18793](https://redirect.github.com/vitejs/vite/issues/18793)
- chore: flat v6 config file
([#&#8203;18777](https://redirect.github.com/vitejs/vite/issues/18777))
([c7b3308](c7b3308326)),
closes
[#&#8203;18777](https://redirect.github.com/vitejs/vite/issues/18777)
- chore: split changelog
([#&#8203;18787](https://redirect.github.com/vitejs/vite/issues/18787))
([8542632](8542632b3b)),
closes
[#&#8203;18787](https://redirect.github.com/vitejs/vite/issues/18787)
- chore: update changelog for v6
([#&#8203;18773](https://redirect.github.com/vitejs/vite/issues/18773))
([b254fac](b254fac4aa)),
closes
[#&#8203;18773](https://redirect.github.com/vitejs/vite/issues/18773)
- revert: update moduleResolution value casing
([#&#8203;18409](https://redirect.github.com/vitejs/vite/issues/18409))
([#&#8203;18774](https://redirect.github.com/vitejs/vite/issues/18774))
([b0fc6e3](b0fc6e3c25)),
closes
[#&#8203;18409](https://redirect.github.com/vitejs/vite/issues/18409)
[#&#8203;18774](https://redirect.github.com/vitejs/vite/issues/18774)

###
[`v6.0.0`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#600-2024-11-26)

[Compare
Source](https://redirect.github.com/vitejs/vite/compare/v5.4.14...v6.0.0)

- fix: `createRunnableDevEnvironment` returns `RunnableDevEnvironment`,
not `DevEnvironment`
([#&#8203;18673](https://redirect.github.com/vitejs/vite/issues/18673))
([74221c3](74221c391b)),
closes
[#&#8203;18673](https://redirect.github.com/vitejs/vite/issues/18673)
- fix: `getModulesByFile` should return a `serverModule`
([#&#8203;18715](https://redirect.github.com/vitejs/vite/issues/18715))
([b80d5ec](b80d5ecbbc)),
closes
[#&#8203;18715](https://redirect.github.com/vitejs/vite/issues/18715)
- fix: catch error in full reload handler
([#&#8203;18713](https://redirect.github.com/vitejs/vite/issues/18713))
([a10e741](a10e741065)),
closes
[#&#8203;18713](https://redirect.github.com/vitejs/vite/issues/18713)
- fix: display pre-transform error details
([#&#8203;18764](https://redirect.github.com/vitejs/vite/issues/18764))
([554f45f](554f45f4d8)),
closes
[#&#8203;18764](https://redirect.github.com/vitejs/vite/issues/18764)
- fix: exit code on `SIGTERM`
([#&#8203;18741](https://redirect.github.com/vitejs/vite/issues/18741))
([cc55e36](cc55e36dd3)),
closes
[#&#8203;18741](https://redirect.github.com/vitejs/vite/issues/18741)
- fix: expose missing `InterceptorOptions` type
([#&#8203;18766](https://redirect.github.com/vitejs/vite/issues/18766))
([6252c60](6252c60356)),
closes
[#&#8203;18766](https://redirect.github.com/vitejs/vite/issues/18766)
- fix: log error when send in module runner failed
([#&#8203;18753](https://redirect.github.com/vitejs/vite/issues/18753))
([ba821bb](ba821bb63e)),
closes
[#&#8203;18753](https://redirect.github.com/vitejs/vite/issues/18753)
- fix(client): overlay not appearing when multiple vite clients were
loaded
([#&#8203;18647](https://redirect.github.com/vitejs/vite/issues/18647))
([27d70b5](27d70b5fa6)),
closes
[#&#8203;18647](https://redirect.github.com/vitejs/vite/issues/18647)
- fix(deps): update all non-major dependencies
([#&#8203;18691](https://redirect.github.com/vitejs/vite/issues/18691))
([f005461](f005461ecc)),
closes
[#&#8203;18691](https://redirect.github.com/vitejs/vite/issues/18691)
- fix(html): fix inline proxy modules invalidation
([#&#8203;18696](https://redirect.github.com/vitejs/vite/issues/18696))
([8ab04b7](8ab04b70ad)),
closes
[#&#8203;18696](https://redirect.github.com/vitejs/vite/issues/18696)
- fix(module-runner): make evaluator optional
([#&#8203;18672](https://redirect.github.com/vitejs/vite/issues/18672))
([fd1283f](fd1283fe27)),
closes
[#&#8203;18672](https://redirect.github.com/vitejs/vite/issues/18672)
- fix(optimizer): detect npm / yarn / pnpm dependency changes correctly
([#&#8203;17336](https://redirect.github.com/vitejs/vite/issues/17336))
([#&#8203;18560](https://redirect.github.com/vitejs/vite/issues/18560))
([818cf3e](818cf3e7bf)),
closes
[#&#8203;17336](https://redirect.github.com/vitejs/vite/issues/17336)
[#&#8203;18560](https://redirect.github.com/vitejs/vite/issues/18560)
- fix(optimizer): trigger onCrawlEnd after manual included deps are
registered
([#&#8203;18733](https://redirect.github.com/vitejs/vite/issues/18733))
([dc60410](dc6041099c)),
closes
[#&#8203;18733](https://redirect.github.com/vitejs/vite/issues/18733)
- fix(optimizer): workaround firefox's false warning for no sources
source map
([#&#8203;18665](https://redirect.github.com/vitejs/vite/issues/18665))
([473424e](473424ee8d)),
closes
[#&#8203;18665](https://redirect.github.com/vitejs/vite/issues/18665)
- fix(ssr): replace `__vite_ssr_identity__` with `(0, ...)` and inject
`;` between statements
([#&#8203;18748](https://redirect.github.com/vitejs/vite/issues/18748))
([94546be](94546be183)),
closes
[#&#8203;18748](https://redirect.github.com/vitejs/vite/issues/18748)
- chore: add 5.4.x changelogs
([#&#8203;18768](https://redirect.github.com/vitejs/vite/issues/18768))
([26b58c8](26b58c8130)),
closes
[#&#8203;18768](https://redirect.github.com/vitejs/vite/issues/18768)
- chore: add some comments about mimes
([#&#8203;18705](https://redirect.github.com/vitejs/vite/issues/18705))
([f07e9b9](f07e9b9d01)),
closes
[#&#8203;18705](https://redirect.github.com/vitejs/vite/issues/18705)
- chore(deps): update all non-major dependencies
([#&#8203;18746](https://redirect.github.com/vitejs/vite/issues/18746))
([0ad16e9](0ad16e92d5)),
closes
[#&#8203;18746](https://redirect.github.com/vitejs/vite/issues/18746)
- perf: reduce bundle size for `Object.keys(import.meta.glob(...))` /
\`Object.values(import.meta.glob(
([ed99a2c](ed99a2cd31)),
closes
[#&#8203;18666](https://redirect.github.com/vitejs/vite/issues/18666)
- perf(worker): inline worker without base64
([#&#8203;18752](https://redirect.github.com/vitejs/vite/issues/18752))
([90c66c9](90c66c95ab)),
closes
[#&#8203;18752](https://redirect.github.com/vitejs/vite/issues/18752)
- feat: add support for .cur type
([#&#8203;18680](https://redirect.github.com/vitejs/vite/issues/18680))
([5ec9eed](5ec9eedc80)),
closes
[#&#8203;18680](https://redirect.github.com/vitejs/vite/issues/18680)
- feat: enable HMR by default on ModuleRunner side
([#&#8203;18749](https://redirect.github.com/vitejs/vite/issues/18749))
([4d2abc7](4d2abc7bba)),
closes
[#&#8203;18749](https://redirect.github.com/vitejs/vite/issues/18749)
- feat: support `module-sync` condition when loading config if enabled
([#&#8203;18650](https://redirect.github.com/vitejs/vite/issues/18650))
([cf5028d](cf5028d4bf)),
closes
[#&#8203;18650](https://redirect.github.com/vitejs/vite/issues/18650)
- feat!: drop node 21 support in version ranges
([#&#8203;18729](https://redirect.github.com/vitejs/vite/issues/18729))
([a384d8f](a384d8fd39)),
closes
[#&#8203;18729](https://redirect.github.com/vitejs/vite/issues/18729)
- fix(deps)!: update dependency dotenv-expand to v12
([#&#8203;18697](https://redirect.github.com/vitejs/vite/issues/18697))
([0c658de](0c658de41f)),
closes
[#&#8203;18697](https://redirect.github.com/vitejs/vite/issues/18697)
- docs: rename `HotUpdateContext` to `HotUpdateOptions`
([#&#8203;18718](https://redirect.github.com/vitejs/vite/issues/18718))
([824c347](824c347fa2)),
closes
[#&#8203;18718](https://redirect.github.com/vitejs/vite/issues/18718)
- test: simplify `playground/json/__tests__/ssr`
([#&#8203;18701](https://redirect.github.com/vitejs/vite/issues/18701))
([f731ca2](f731ca21ea)),
closes
[#&#8203;18701](https://redirect.github.com/vitejs/vite/issues/18701)
- refactor: first character judgment replacement regexp
([#&#8203;18658](https://redirect.github.com/vitejs/vite/issues/18658))
([58f1df3](58f1df3288)),
closes
[#&#8203;18658](https://redirect.github.com/vitejs/vite/issues/18658)

</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 is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-24 11:32:50 -05:00
renovate[bot]
f6e4ba47d4 chore(deps): update dependency eslint-config-prettier to v10 (#1164)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[eslint-config-prettier](https://redirect.github.com/prettier/eslint-config-prettier)
| [`^9.1.0` ->
`^10.0.0`](https://renovatebot.com/diffs/npm/eslint-config-prettier/9.1.0/10.0.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-config-prettier/10.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-config-prettier/10.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-config-prettier/9.1.0/10.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-config-prettier/9.1.0/10.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prettier/eslint-config-prettier
(eslint-config-prettier)</summary>

###
[`v10.0.1`](https://redirect.github.com/prettier/eslint-config-prettier/releases/tag/v10.0.1)

[Compare
Source](https://redirect.github.com/prettier/eslint-config-prettier/compare/v10.0.0...v10.0.1)

### eslint-config-prettier

#### 10.0.1

#### What's Changed

- chore: migrate to changeset for automatically releasing by
[@&#8203;JounQin](https://redirect.github.com/JounQin) in
[https://github.com/prettier/eslint-config-prettier/pull/278](https://redirect.github.com/prettier/eslint-config-prettier/pull/278)
- add support for `@stylistic/eslint-plugin` by
[@&#8203;abrahamguo](https://redirect.github.com/abrahamguo) in
[https://github.com/prettier/eslint-config-prettier/pull/272](https://redirect.github.com/prettier/eslint-config-prettier/pull/272)

#### New Contributors

- [@&#8203;JounQin](https://redirect.github.com/JounQin) made their
first contribution in
[https://github.com/prettier/eslint-config-prettier/pull/278](https://redirect.github.com/prettier/eslint-config-prettier/pull/278)
- [@&#8203;abrahamguo](https://redirect.github.com/abrahamguo) made
their first contribution in
[https://github.com/prettier/eslint-config-prettier/pull/272](https://redirect.github.com/prettier/eslint-config-prettier/pull/272)

**Full Changelog**:
https://github.com/prettier/eslint-config-prettier/compare/v9.1.0...v10.0.1

###
[`v10.0.0`](https://redirect.github.com/prettier/eslint-config-prettier/blob/HEAD/CHANGELOG.md#1000)

[Compare
Source](https://redirect.github.com/prettier/eslint-config-prettier/compare/v9.1.0...v10.0.0)

##### Major Changes

-
[#&#8203;272](https://redirect.github.com/prettier/eslint-config-prettier/pull/272)
[`5be64be`](5be64bef68)
Thanks [@&#8203;abrahamguo](https://redirect.github.com/abrahamguo)! -
add support for
[@&#8203;stylistic](https://redirect.github.com/stylistic) formatting
rules

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-24 11:32:26 -05:00
renovate[bot]
89620e9189 chore(deps): update dependency @nuxt/eslint to v1 (#1161)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@nuxt/eslint](https://redirect.github.com/nuxt/eslint)
([source](https://redirect.github.com/nuxt/eslint/tree/HEAD/packages/module))
| [`^0.7.3` ->
`^1.0.0`](https://renovatebot.com/diffs/npm/@nuxt%2feslint/0.7.6/1.1.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@nuxt%2feslint/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nuxt%2feslint/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nuxt%2feslint/0.7.6/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nuxt%2feslint/0.7.6/1.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v1.1.0`](https://redirect.github.com/nuxt/eslint/releases/tag/v1.1.0)

[Compare
Source](https://redirect.github.com/nuxt/eslint/compare/v1.0.1...v1.1.0)

#####    🚀 Features

- Migrate to `unicorn` v57, `stylistic` v4  -  by
[@&#8203;antfu](https://redirect.github.com/antfu)
[<samp>(a9846)</samp>](https://redirect.github.com/nuxt/eslint/commit/a9846af)

#####     [View changes on
GitHub](https://redirect.github.com/nuxt/eslint/compare/v1.0.1...v1.1.0)

###
[`v1.0.1`](https://redirect.github.com/nuxt/eslint/releases/tag/v1.0.1)

[Compare
Source](https://redirect.github.com/nuxt/eslint/compare/v1.0.0...v1.0.1)

#####    🐞 Bug Fixes

- Support non-hoisted dts type, fix
[#&#8203;539](https://redirect.github.com/nuxt/eslint/issues/539)  -  by
[@&#8203;antfu](https://redirect.github.com/antfu) in
[https://github.com/nuxt/eslint/issues/539](https://redirect.github.com/nuxt/eslint/issues/539)
[<samp>(4f3c1)</samp>](https://redirect.github.com/nuxt/eslint/commit/4f3c1d9)

#####     [View changes on
GitHub](https://redirect.github.com/nuxt/eslint/compare/v1.0.0...v1.0.1)

###
[`v1.0.0`](https://redirect.github.com/nuxt/eslint/releases/tag/v1.0.0)

[Compare
Source](https://redirect.github.com/nuxt/eslint/compare/v0.7.6...v1.0.0)

#####    🚨 Breaking Changes

- Drop legacy configs, requires ESLint v9 and ESM  -  by
[@&#8203;antfu](https://redirect.github.com/antfu) in
[https://github.com/nuxt/eslint/issues/534](https://redirect.github.com/nuxt/eslint/issues/534)
[<samp>(cbcd6)</samp>](https://redirect.github.com/nuxt/eslint/commit/cbcd674)

#####     [View changes on
GitHub](https://redirect.github.com/nuxt/eslint/compare/v0.7.6...v1.0.0)

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-24 11:32:12 -05:00
Eli Bosley
a0306269c6 feat: update theme application logic and color picker (#1181)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Upgraded the theme customization interface with a dropdown that lets
you choose from multiple themes (Light, Dark, Azure, Gray). Users can
now adjust options like text colors, background color, gradients, and
banner display more intuitively.
- Introduced a structured approach to theme variables, enhancing
compatibility and customization options.

- **Style**
- Enhanced the header’s visual presentation by introducing dynamic
background imagery and refined layout adjustments for a more polished
look.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-24 11:31:46 -05:00
Eli Bosley
e11d5e976d docs: add license to package jsons (#1129)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Documentation**
- Added the complete GNU General Public License (GPL) Version 2 text to
the project’s licensing documentation, clarifying usage conditions and
disclaimers.

- **Chores**
- Updated licensing declarations across multiple project components,
ensuring all parts are now distributed under the GPL-2.0 license.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-24 09:27:23 -05:00
Eli Bosley
365dcae04b fix: log errors 2025-02-21 16:23:04 -05:00
Eli Bosley
a9d5ca8899 fix: fix changelog thing again 2025-02-21 16:20:51 -05:00
Eli Bosley
b24a575cbb fix: load tag correctly 2025-02-21 16:18:49 -05:00
Eli Bosley
b49159022d fix: re-release fixed 2025-02-21 16:14:38 -05:00
Eli Bosley
c0ad2e138c chore: allow editing releases and properly escape changelogs (#1190)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Enhanced the release process to update the plugin changelog more
reliably.
- Now supports updating release notes for both new and edited releases,
ensuring accurate and secure changelog information.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-21 16:09:53 -05:00
github-actions[bot]
d413be8dcb chore(main): release 4.1.3 (#1188)
🤖 I have created a release *beep* *boop*
---


## [4.1.3](https://github.com/unraid/api/compare/v4.1.2...v4.1.3)
(2025-02-21)


### Bug Fixes

* chown correctly ([#1185](https://github.com/unraid/api/issues/1185))
([46a05eb](46a05eb76d))
* create releases as drafts
([5483e9f](5483e9fee9))
* **deps:** update all non-major dependencies
([#1168](https://github.com/unraid/api/issues/1168))
([248d211](248d211050))
* revert config
([7957c2a](7957c2a681))
* small modal window
([#1183](https://github.com/unraid/api/issues/1183))
([08423b8](08423b8dae))

---
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-02-21 15:37:09 -05:00
github-actions[bot]
653b6df4d9 chore(main): release 4.1.2 (#1187)
🤖 I have created a release *beep* *boop*
---


## [4.1.2](https://github.com/unraid/api/compare/v4.1.3...v4.1.2)
(2025-02-21)


### Features

* add api key creation logic
([a1351b0](a1351b0469))
* add category.json
([e784391](e784391ac3))
* add command to package.json scripts
([3348a47](3348a47470))
* add csrf support to api & web components
([#999](https://github.com/unraid/api/issues/999))
([f0f5a30](f0f5a3057a))
* add description flag, remove console log, and update readme
([85cdb8f](85cdb8f525))
* add developer docs
([#1128](https://github.com/unraid/api/issues/1128))
([75474bd](75474bde47))
* add line about recommendation for sso command
([b63720a](b63720a6f2))
* add log rotation
([b1d9ad7](b1d9ad7ef1))
* add logging around fixture downloads
([fa16dcd](fa16dcd801))
* add logrotate cron again
([097415f](097415f6b8))
* add patch for auth-request.php
([b1a1779](b1a1779a8b))
* add unraid-ui documentation
([#1142](https://github.com/unraid/api/issues/1142))
([6378047](6378047bc4))
* add user with cli
([cb59090](cb59090698))
* address log level feedback
([bb95795](bb95795a31))
* allow csrf passing through querystring
([3a8c9b1](3a8c9b13ee))
* allow deletion and creation of files with patches
([1392bde](1392bdeecb))
* always ensureDirectory for keys exists
([8b93bce](8b93bcea08))
* always start the API and run npm link from script path
([bb6baf9](bb6baf9bf4))
* **api:** graphql sandbox on unraid servers
([#1047](https://github.com/unraid/api/issues/1047))
([5dd36d1](5dd36d1836))
* **api:** omit tz from sys time date format by default
([c36082e](c36082e82b))
* **api:** rm 2fa & t2fa from myservers config type
([#996](https://github.com/unraid/api/issues/996))
([f45719f](f45719fa6b))
* array iteration for restoring files
([349145b](349145ba53))
* async disk mapping
([f22b262](f22b262830))
* async hypervisor and FIXED vm listing
([cdfb3c7](cdfb3c772b))
* attempt to resolve performance issues with rm earlier in build …
([#1152](https://github.com/unraid/api/issues/1152))
([c74bdd8](c74bdd8890))
* attempt to start unraid-api with background task
([73a1249](73a12496d5))
* auto-docusaurus-prs
([#1127](https://github.com/unraid/api/issues/1127))
([8a57576](8a575765a9))
* automatic session setup for dev
([e885936](e88593620b))
* back to callbackUrl
([428ad15](428ad15ec7))
* begin building plugin with node instead of bash
([#1120](https://github.com/unraid/api/issues/1120))
([4f5c367](4f5c367fdf))
* begin fixing dark mode in the webcomponents
([2443561](24435613f8))
* begin nuking alpha beta gamma
([cb91fbb](cb91fbb054))
* better patch application
([445f3b5](445f3b50b1))
* better pm2 calls, log lines
([33dd90a](33dd90af04))
* bug report template
([d6fde34](d6fde34365))
* checkout correct branch on close
([#1123](https://github.com/unraid/api/issues/1123))
([e7b7caa](e7b7caae43))
* cleanup config entries
([c2e29df](c2e29dfb5f))
* cleanup disclaimer and command to add users
([3867dfa](3867dfacb2))
* cli Commands
([7fa849d](7fa849d2a0))
* CLI options for adding and deleting users
([bc04129](bc04129342))
* codeowners
([c4d7314](c4d731401c))
* coderabbit suggestion
([3cc3f27](3cc3f27dae))
* configure PM2 on startup
([b73623e](b73623e72a))
* contributing guide
([cc18239](cc18239748))
* convert to pnpm monorepo
([#1137](https://github.com/unraid/api/issues/1137))
([ad6b658](ad6b6589db))
* copy only needed files for nodejs
([cf08627](cf08627725))
* create key cli command logic and add to index command list
([796cb09](796cb09c61))
* csv validation
([89d756e](89d756ef4e))
* default value for option
([632775e](632775e435))
* delete unused imports
([0d6a003](0d6a0035aa))
* disable button on submit
([0da77d7](0da77d7119))
* disable casbin logging
([aa1ef1b](aa1ef1bd4c))
* do not move upgradepkg
([c12d8da](c12d8dae4e))
* docstrings
([935318d](935318dda6))
* dont pass entire server state for privacy
([b969f3a](b969f3a9ab))
* download fixtures from the web
([05f661e](05f661e0e5))
* download nodejs and install on legacy OS versions
([b1a2ba7](b1a2ba78cc))
* eliminate all alpha beta gamma variable usage
([4eda099](4eda0991d6))
* enable PR releases on non-mainline merges
([3419837](3419837eb5))
* enable sandbox in dev mode
([21208bf](21208bfcf6))
* enable sandbox with developer command
([9c5e418](9c5e418872))
* enable token sign in with comma separated subs in myservers.config
([e9bd18a](e9bd18a409))
* error state outside of button
([a1cf441](a1cf44162a))
* error when nodejs download fails
([af1994c](af1994cb62))
* exit cli after running command
([5ca225f](5ca225fe7a))
* extensive file checking
([4d45caf](4d45caf258))
* extract node to usr/local/
([9a0d63d](9a0d63d4ee))
* fallback to local
([36d8399](36d8399045))
* faster failure logic
([1f5c642](1f5c6424c7))
* feature request template
([0c0a63b](0c0a63b525))
* fix docusaurus build + update snapshot
([7a19c93](7a19c9331f))
* fix missing flash line
([5f1a61d](5f1a61d4aa))
* fix pm2 setup and add link command
([caf797c](caf797cf4a))
* force linting on build
([ad32cff](ad32cffd75))
* generate key one time
([1435155](143515560c))
* glob for files
([0652114](065211413d))
* group renovate updates
([d7b138b](d7b138b2a7))
* hide sign in from the dropdown text
([ea6ae83](ea6ae83919))
* hypervisor async imports
([f1e5383](f1e53831c8))
* ignore generated code
([0e9c91a](0e9c91af86))
* ignore nuxt-custom-elements and reflect-metadata
([8590a49](8590a49402))
* improve packing
([3c61a61](3c61a615f0))
* initial patcher implementation using the diff tool
([805bc5b](805bc5bfc0))
* initial setup of permissions on keys
([#1068](https://github.com/unraid/api/issues/1068))
([a554bde](a554bde5c2))
* initial version of modification service
([bb37140](bb37140d40))
* inject after form
([e5d1146](e5d1146613))
* kill timeout extended
([0c6f44d](0c6f44da35))
* log size and only tar files
([a6f6706](a6f67060b4))
* logrotate test
([5b0971e](5b0971ea8d))
* lots of progress on colors
([c6547a5](c6547a51fc))
* major release-please workflow improvements
([#1160](https://github.com/unraid/api/issues/1160))
([013cc1d](013cc1de7d))
* manually install libvirt in build process to ensure it is included in
the final build
([cea11da](cea11daf15))
* more pm2 fixes
([4655d72](4655d72fbb))
* move fixtures into __test__ folder
([dfb006e](dfb006e696))
* move ssoenabled to a boolean flag rather than ids
([6f5edb2](6f5edb2406))
* move variable declarations to theme.ts
([00b8ffe](00b8ffe87d))
* myservers_fb keepalive location
([69441d8](69441d890e))
* name package with PR number
([cf72c8b](cf72c8b359))
* nuxt config simplification and formatting
([2903542](29035429bd))
* only write config when a specific config update action occurs
([29ca582](29ca5829ff))
* or button on sign in page
([11ff890](11ff890bcc))
* **plugin:** rm Date & Time format settings from Notification Settings
([acba0b0](acba0b0365))
* properly read log level from environment
([8a374b5](8a374b5b27))
* public index
([8cbb3c4](8cbb3c4718))
* remove apiKey from server
([895d585](895d5857f9))
* remove nghttp3 and only bundle nodejs
([bb555f8](bb555f8296))
* remove sso if disabled on Unraid-API start
([daf904b](daf904bc1b))
* remove sso user command
([f302924](f30292484d))
* remove sso user options
([75d7e08](75d7e08824))
* remove unused config sections
([03e336b](03e336b72f))
* remove unused fields
([2d3892d](2d3892deb8))
* remove unused vars
([6f9977e](6f9977eea0))
* rename api key resource back to api_key
([8827483](8827483699))
* rename modification file
([5d909a8](5d909a856b))
* reorder index
([a4b3f8c](a4b3f8c6c3))
* responsive notifications
([cead975](cead97560c))
* restart the API when an SSO user is added
([dae5738](dae57389c6))
* restoring sso error
([3042ffa](3042ffa37e))
* revert local api key value
([6bfd8a2](6bfd8a2687))
* rollback if patch exists before applying
([a12181a](a12181a5e0))
* secondary changes
([cbb42dc](cbb42dc85e))
* separate install process
([9bbab0f](9bbab0f86c))
* service tests for modifier service
([d6fa35c](d6fa35cdee))
* session issues
([8026ef5](8026ef53e8))
* set background color on webcomponents
([7ef3286](7ef3286191))
* shared call to createPatch
([073a515](073a51572a))
* sidebar notification count
([a4e2a77](a4e2a77410))
* simplify docs
([1e4a4f0](1e4a4f0745))
* sso button token exchange
([3abf20b](3abf20b347))
* sso login boolean
([81f051e](81f051e02c))
* sso testing page and form disable on submit
([09f7415](09f741557b))
* state using crypto
([3734730](3734730bf7))
* style improvements
([a8211ce](a8211cef7d))
* swap to async exit hook
([c7d4e39](c7d4e39287))
* switch to nest-commander
([7ceac1b](7ceac1b184))
* try catch restart
([55100da](55100daed4))
* **ui:** webgui-compatible web component library
([#1075](https://github.com/unraid/api/issues/1075))
([61ee689](61ee689658))
* unnecessary comment
([f560df0](f560df0270))
* unraid single sign on with account app
([2b25537](2b25537e26))
* unraid ui component library
([#976](https://github.com/unraid/api/issues/976))
([91de6e6](91de6e6c1e))
* update based on review feedback
([16f00a0](16f00a0d8c))
* update packageManager field for pnpm
([eec9785](eec9785ba1))
* Update
plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/state.php
([336478c](336478c2e0))
* upgrade dependencies
([46c82ec](46c82ecae3))
* upgrade workflow and auto-assign reviewers
([59e48ad](59e48ad85c))
* use execa for start and stop
([05e77a4](05e77a4bc6))
* use plugin file for install and uninstall
([bbf2807](bbf28075c6))
* use state passing to validate requests
([bd58490](bd584902e0))
* use text-secondary-foreground instead of gray
([7828ef2](7828ef2648))
* use zod to parse config
([02c197f](02c197f244))
* validate entries correctly
([a39da15](a39da15be4))
* validate token format in both PHP and CLI
([b9d9105](b9d9105e3e))
* viewport watch refactor
([9d2405b](9d2405bd21))
* warning on missing fields
([c1fe95f](c1fe95fcb6))
* **web:** activation modal steps, updated copy
([#1079](https://github.com/unraid/api/issues/1079))
([d8a5b17](d8a5b1711a))
* **web:** add an 'all' option to notification filter
([939d7a3](939d7a304d))
* **web:** add confirmation before archiving or deleting all
notifications
([4c663dc](4c663dc69c))
* **web:** add count labels to notification tabs
([78ec466](78ec4663cc))
* **web:** add delete all notifications button to archive view in
notifications sidebar
([89eb841](89eb841b20))
* **web:** add link to settings in notification sidebar
([7296195](7296195495))
* **web:** add loading and error states to notification sidebar
([060fb91](060fb91546))
* **web:** clear notifications indicator after opening sidebar
([be7135e](be7135efdd))
* **web:** enhance notifications indicator in UPC
([#950](https://github.com/unraid/api/issues/950))
([0b469f5](0b469f5b3f))
* **web:** improve notification count syncing
([#1148](https://github.com/unraid/api/issues/1148))
([7588e0e](7588e0e3cf))
* **web:** move notification indicator icons to top-right of bell icon
([99704a9](99704a9dbb))
* **web:** open official release notes via header os version
([7dcf947](7dcf947527))
* **web:** pull date format from display/date and time settings
([7c8e8a0](7c8e8a0e53))
* **web:** remove notification indicator pulse
([bc4708f](bc4708f405))
* **web:** rm api-key validation from connect sign in
([#986](https://github.com/unraid/api/issues/986))
([939383e](939383e4ef))
* **web:** rm old notification bell upon plugin installation
([#979](https://github.com/unraid/api/issues/979))
([478254e](478254e134))
* **web:** support markdown in notification messages
([abcaa5a](abcaa5aedb))
* **web:** use Markdown helper class to interact with markdown
([2f4ff21](2f4ff21986))
* work intent
([c519ba2](c519ba28e4))
* work intent process
([8374af8](8374af8ee8))
* zod config no longer any
([6faef27](6faef27d7c))


### Bug Fixes

* 12 hour timestamp logic corrected
([6cbb9c0](6cbb9c07e4))
* add another missing symlink
([477c113](477c113ce1))
* allow concurrent testing with a shared patcher instance
([c007898](c00789865c))
* **api:** append time to formatted date when a custom date format is
selected
([b9cd8c4](b9cd8c426d))
* **api:** change log output location for diagnostic compatibility
([#1130](https://github.com/unraid/api/issues/1130))
([9bc8060](9bc8060a83))
* **api:** delay pm2 start until server has booted
([3c27b51](3c27b51ab8))
* **api:** exclude duplicates from legacy script in archive retrieval
([9c38fa6](9c38fa6a9c))
* **api:** improve defaults in PM2 service
([#1116](https://github.com/unraid/api/issues/1116))
([a21f39d](a21f39d617))
* **api:** logrotate modification & permissions
([#1145](https://github.com/unraid/api/issues/1145))
([b970fd9](b970fd9e6c))
* **api:** make cookie recognition during websocket connection more
([2a82ea4](2a82ea4765))
* **api:** pm2 start script & limit auto restarts
([#1040](https://github.com/unraid/api/issues/1040))
([b53bb3f](b53bb3f197))
* **api:** retry mothership connection up to 3x before logout
([#1069](https://github.com/unraid/api/issues/1069))
([c163998](c163998175))
* **api:** sanitize incoming user session id's
([3b2d61e](3b2d61efc2))
* **api:** slow init of unraid-api cli
([#1022](https://github.com/unraid/api/issues/1022))
([f37dda1](f37dda16c2))
* **api:** update deploy-dev script to dist instead of src
([2327b00](2327b00d30))
* **api:** validate cookie session data
([fe98295](fe98295496))
* apply and rollback error handling
([76711be](76711be3e8))
* authorization type error
([#987](https://github.com/unraid/api/issues/987))
([5f0446f](5f0446fa79))
* back to default configs
([a1a046f](a1a046f900))
* backup restore formatting
([0cfdd5a](0cfdd5a61b))
* basic test fixed
([bddda82](bddda823e1))
* better js file handling
([bb92c3f](bb92c3f9f8))
* better loader functionality and error handling
([a502134](a502134c0a))
* check width before changing viewport
([e2a1f27](e2a1f27b22))
* chown correctly ([#1185](https://github.com/unraid/api/issues/1185))
([46a05eb](46a05eb76d))
* cleaner logs for starting API
([eb1c62d](eb1c62d3d9))
* cleanup commands
([ef82ec5](ef82ec5af5))
* clearer error messaging
([f8393ee](f8393eeebe))
* code review feedback
([e7b689c](e7b689c546))
* completion script registration
([e338eb9](e338eb9788))
* connect breaks default css of header
([#1155](https://github.com/unraid/api/issues/1155))
([fb24723](fb2472399a))
* connect key role
([eff6c32](eff6c32ccd))
* create api key for connect on startup
([69cd92f](69cd92f974))
* create api key permissions
([14fe30e](14fe30e925))
* create connect key
([d88b1e9](d88b1e9660))
* create PR ignored
([dabe334](dabe334072))
* create releases as drafts
([5483e9f](5483e9fee9))
* cwd on ecosystem.config.json
([3fc4148](3fc41480a2))
* dark theme as array
([77558a5](77558a5cd9))
* default overwrite false test
([62824ba](62824ba76f))
* delete .original files
([547ae18](547ae180dd))
* delete unused line
([3e8c101](3e8c101edd))
* deprecated version warning
([a892a3c](a892a3ce35))
* **deps:** update all non-major dependencies
([#1158](https://github.com/unraid/api/issues/1158))
([48df88f](48df88f5c1))
* **deps:** update all non-major dependencies
([#1168](https://github.com/unraid/api/issues/1168))
([248d211](248d211050))
* **deps:** update apollo graphql packages
([1f9e282](1f9e282880))
* **deps:** update dependency @apollo/client to v3.12.6
([c0d3cf5](c0d3cf5782))
* **deps:** update dependency @apollo/client to v3.12.6
([91a9949](91a9949a5c))
* **deps:** update dependency @apollo/client to v3.12.9
([5b14be6](5b14be6b0f))
* **deps:** update dependency @floating-ui/dom to v1.6.13
([64d3765](64d3765a9a))
* **deps:** update dependency @floating-ui/dom to v1.6.13
([5dc1375](5dc13755df))
* **deps:** update dependency @floating-ui/vue to v1.1.6
([6cb28d5](6cb28d5f8f))
* **deps:** update dependency @floating-ui/vue to v1.1.6
([e5e1c43](e5e1c43bb3))
* **deps:** update dependency @graphql-tools/load-files to v7.0.1
([5f597f9](5f597f9d4c))
* **deps:** update dependency @nestjs/schedule to v4.1.2
([806bd63](806bd633ac))
* **deps:** update dependency chokidar to v4.0.3
([74b3e29](74b3e29c74))
* **deps:** update dependency dockerode to v4
([#830](https://github.com/unraid/api/issues/830))
([c311a89](c311a89aee))
* **deps:** update dependency dotenv to v16.4.7
([b32f84b](b32f84b105))
* **deps:** update dependency execa to v9.5.2
([6c54fa1](6c54fa14b1))
* **deps:** update dependency express to v4.21.2
([a947ff1](a947ff14fa))
* **deps:** update dependency focus-trap to v7.6.4
([8475204](84752043e5))
* **deps:** update dependency focus-trap to v7.6.4
([5dfd6d5](5dfd6d5ded))
* **deps:** update dependency got to v14.4.5
([71e2b70](71e2b70678))
* **deps:** update dependency graphql-ws to v5.16.2
([c112f19](c112f19c95))
* **deps:** update dependency graphql-ws to v5.16.2
([4daa54c](4daa54cfb5))
* **deps:** update dependency ini to v4.1.3
([c817cc4](c817cc4b7e))
* **deps:** update dependency node-window-polyfill to v1.0.4
([61ec04c](61ec04cb87))
* **deps:** update dependency openid-client to v6.1.7
([7ef3729](7ef3729769))
* **deps:** update dependency p-retry to v6.2.1
([46a368e](46a368e1b5))
* **deps:** update dependency pm2 to v5.4.3
([e366cad](e366cad0a4))
* **deps:** update dependency radix-vue to v1.9.12
([83344e0](83344e05c1))
* **deps:** update dependency radix-vue to v1.9.13
([c180728](c180728696))
* **deps:** update dependency uuid to v11.0.5
([0331e24](0331e24a74))
* **deps:** update graphql-tools monorepo
([344b023](344b023503))
* **deps:** update graphqlcodegenerator monorepo
([2bc9af2](2bc9af2578))
* **deps:** update graphqlcodegenerator monorepo
([8675653](8675653e4e))
* **deps:** update nest monorepo to v10.4.15
([2b597f9](2b597f9f02))
* **deps:** update nest-graphql monorepo to v12.2.2
([bd31e09](bd31e09bcf))
* dev mode
([aae38e3](aae38e3404))
* do not process.exit on restart or stop command
([e16763b](e16763b49b))
* docs creation workflow
([13b501a](13b501a342))
* don't check code for execa
([f62f0d3](f62f0d3a0f))
* don't specify pnpm version in install
([30ba5be](30ba5befdb))
* dont remove login file without a backup presetn
([1854aa9](1854aa9f28))
* downgrade marked to fix changelog preview issue
([943c907](943c907d03))
* edit settings padding issue
([4e9ab64](4e9ab645e6))
* empty manifest and version alignment
([b07828d](b07828d655))
* ensure directory exists before making connect key
([a6cd74d](a6cd74dc5c))
* excess spacing in api-key.service
([286ffc5](286ffc54e5))
* extra log line
([b56b215](b56b2157fa))
* extra spacing in config.ts
([84f4f67](84f4f67ce1))
* file modification service fixes
([e4ebfc8](e4ebfc8a13))
* finalize workflow fixes
([616be93](616be93be9))
* find by key, not ID
([124fb61](124fb610b1))
* fix libvirt bindings
([#1167](https://github.com/unraid/api/issues/1167))
([024719f](024719fa7a))
* format authrequest mod as other files
([8b75d6c](8b75d6cc99))
* formatting issue
([0042f14](0042f14ab3))
* further resolve sso sub ids issues
([b3551a1](b3551a1b69))
* improve typing and format lookup
([dfa27e2](dfa27e2c0d))
* initial feedback about report addressed
([060a199](060a1992c4))
* install as-integrations/fastify
([2fce2e9](2fce2e9a28))
* install syntax error
([a355a64](a355a64136))
* integration of `unraid-ui` tailwind config in `web`
([#1074](https://github.com/unraid/api/issues/1074))
([3acc0dc](3acc0dc9c0))
* length
([8481c9a](8481c9a9fb))
* lint
([133c8e0](133c8e0d70))
* lint
([42610d2](42610d290d))
* lint
([b1a993a](b1a993a8e9))
* lint
([6beafbe](6beafbe8ed))
* lint
([d38f3ef](d38f3ef49b))
* logrotate error
([7a009b6](7a009b6be7))
* lowercase or
([29a8689](29a8689ad8))
* main.yml release issue
([2b1e307](2b1e3076b0))
* make public not a part of folder structure in PR
([84611d7](84611d7691))
* marked single input
([d28fb24](d28fb24d68))
* missing server type
([76cf6f3](76cf6f35dc))
* mock ensureDirSync
([14abc13](14abc13cc8))
* more color work
([9a869a4](9a869a49e3))
* more generic test
([ddfc36f](ddfc36fd73))
* more verbose logging for node install to find issues
([c3f4cf5](c3f4cf53c1))
* oauth2 api prefix
([56cfa84](56cfa84794))
* only instantiate service one time
([b1b93e2](b1b93e2783))
* only run release if releases_create == 'true'
([00a444f](00a444fb92))
* only toast unread notifications, not archived ones
([8251c6f](8251c6f2d3))
* padding and glob function issues
([ae753d6](ae753d6bea))
* pass ssoSubIds only
([76a9ae9](76a9ae9386))
* pass token to password field
([9279931](92799312c9))
* patch-utils unused
([1d5c2c8](1d5c2c8338))
* paths now correct, better download logic
([9e12407](9e12407565))
* PHP Warning in state.php
([#1126](https://github.com/unraid/api/issues/1126))
([59d6c1b](59d6c1b678))
* properly log error with template string
([2ad612c](2ad612cef8))
* pull token from query not params
([1756cc5](1756cc5b4b))
* re-add manifest
([e721299](e72129953e))
* re-add type-check
([0fa41f5](0fa41f5690))
* recreate package-lock to fix issues
([e1515a1](e1515a118a))
* release-please upload single draft
([db134f0](db134f091d))
* remove console log
([d8f9f03](d8f9f03146))
* remove devDependencies from output package json
([d847815](d8478152e9))
* remove extra space
([000692c](000692ca50))
* remove isNaN in favor of number.isNaN
([e33c758](e33c7583f7))
* remove line from or in button
([961bcc5](961bcc5db6))
* remove memory key generation
([e58410b](e58410bd57))
* remove unused constructor
([ce92cb0](ce92cb06b7))
* remove unused date-fns
([0c1b89f](0c1b89ff41))
* remove unused login entries
([942b143](942b143fba))
* remove usage of Role.UPC
([ceac626](ceac6269b3))
* render function fixed
([833a99f](833a99fe18))
* report issues + pm2 issues
([4b3d6a7](4b3d6a7ba3))
* reset config to be closer to default
([d844903](d844903d78))
* resource busy when removing all subdirectories
([7b3834c](7b3834ca1f))
* restart command elegant
([b924954](b9249544fc))
* restore upgradepkg before install
([8f58145](8f5814589e))
* revert changelog
([efa7db3](efa7db3db6))
* revert changes to indicator.vue
([11ce9e2](11ce9e2644))
* revert config
([7957c2a](7957c2a681))
* revert dockerode upgrade
([#1140](https://github.com/unraid/api/issues/1140))
([2b163b3](2b163b361a))
* revert myservers.cfg
([7e5dd07](7e5dd07d4a))
* sandbox defaults in dev mode wrong
([d26ddef](d26ddef33e))
* sequential test execution for generic-modification
([9d1442b](9d1442b2ee))
* shell path to unraid-api
([44d3d93](44d3d939a7))
* shorten work intent form
([5b2403a](5b2403ad04))
* simplify api setup index
([5f29e6d](5f29e6d5e7))
* simplify upcoming features
([608151d](608151d84c))
* small modal window
([#1183](https://github.com/unraid/api/issues/1183))
([08423b8](08423b8dae))
* staging build issues
([63fcde8](63fcde8243))
* start command simplification
([27049d9](27049d9d91))
* stop command exits
([58f65ea](58f65eabba))
* storybook resolution issue
([#1153](https://github.com/unraid/api/issues/1153))
([5a3e8df](5a3e8df003))
* strip components from tar line
([bad7f71](bad7f71fea))
* swap to placeholder key
([39612cd](39612cd978))
* switch to useToggle
([5f8602b](5f8602b864))
* test issues
([4d8f2dd](4d8f2ddac6))
* test simplification to ensure no redownloads
([5347d54](5347d54b11))
* tests
([ed18945](ed18945088))
* tests and validate token clears screen
([6c46f94](6c46f9413f))
* theme store now uses singular variables object
([116efe6](116efe6f72))
* thorw on invalid token body
([1e6fb7e](1e6fb7e3e3))
* type error on element render
([45327ce](45327ce01d))
* type for generic test
([0163acb](0163acb7f3))
* unit test issues
([74b9fd0](74b9fd0159))
* unit tests updated
([0ab40fe](0ab40fefda))
* unneeded await on api-key service
([923e929](923e929878))
* unused imports
([0cb0fc9](0cb0fc9881))
* upc header text color
([d23a389](d23a38960b))
* Update renovate.json
([c47a655](c47a655b45))
* update tests
([b1ac0f9](b1ac0f9c83))
* upgradepkg
([6962cdd](6962cdd214))
* upload to correct tag directory on build
([f76c0f0](f76c0f05fb))
* upload to release by name
([2283e06](2283e064d5))
* use an enum and defaults for sandbox value
([2108ed0](2108ed0ecd))
* use batchProcess
([3c357e7](3c357e7e95))
* use cwd when running application
([e27776d](e27776df3d))
* use foreground text color for UPC
([d5f5921](d5f5921534))
* use placeholder in test API key
([5d72b5a](5d72b5a970))
* watch all events to load keys
([ff63535](ff63535b00))
* **web:** broken modals
([19208e5](19208e5fab))
* **web:** display error message in sidebar when api is offline
([#984](https://github.com/unraid/api/issues/984))
([4a29fc9](4a29fc9dda))
* **web:** edge case where archived notifications don't appear
([e40a9eb](e40a9ebecd))
* **web:** env var typo
([dffbfc2](dffbfc2dab))
* **web:** escaping html-encoded symbols like apostrophes in
translations ([#1002](https://github.com/unraid/api/issues/1002))
([4ee42a6](4ee42a6cf6))
* **web:** flash of disconnected api state on page load
([d0819b8](d0819b8d02))
* **web:** infinite scroll loop when there's only 1 page of
notifications
([eeb3289](eeb3289ae8))
* **web:** infinite trigger at bottom of infinite scroll
([001be86](001be86181))
* **web:** name of toaster component
([93980f9](93980f929d))
* **web:** notification styles & alignment
([#968](https://github.com/unraid/api/issues/968))
([547b75a](547b75a55e))
* **web:** refetch notifications for sidebar when new notifications
arrive
([23b1f1a](23b1f1ac73))
* **web:** remove warn and error console log removal
([#1086](https://github.com/unraid/api/issues/1086))
([e7d15ee](e7d15ee5ec))
* **web:** replaces dompurify with isomorphic-dompurify to enable
server-side usage with same syntax
([2724485](2724485989))
* **web:** reset infinite scroll when notification filters change
([3fe13d5](3fe13d5235))
* **web:** sanitize changelog markup after parsing
([83e00c6](83e00c640a))
* **web:** stop opening notification sidebar to archive tab
([ecfc797](ecfc797e7d))
* **web:** theme header differences
([#1085](https://github.com/unraid/api/issues/1085))
([1ecac5e](1ecac5ee4e))
* **web:** track 'notification seen' state across tabs & page loads
([#1121](https://github.com/unraid/api/issues/1121))
([321703e](321703e907))
* **web:** update unread total immediately upon archiving
([#982](https://github.com/unraid/api/issues/982))
([29d9371](29d9371cc3))


### Miscellaneous Chores

* release 4.1.2
([2323ee6](2323ee6838))

---
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-02-21 15:35:35 -05:00
Eli Bosley
5483e9fee9 fix: create releases as drafts 2025-02-21 15:30:28 -05:00
Eli Bosley
7957c2a681 fix: revert config 2025-02-21 15:30:13 -05:00
Eli Bosley
d47bc0277d Revert "chore: update release-please config, allow releases from main.yml (#1177)"
This reverts commit 6adb4484c3.
2025-02-21 15:29:41 -05:00
github-actions[bot]
950bee951e chore(main): release 4.1.3 (#1178)
# Hotfix Release Feb 21, 2025

### Bug Fixes

* fix ssh issues
* fix issues with uninstalling the plugin
2025-02-21 15:17:46 -05:00
Eli Bosley
46a05eb76d fix: chown correctly (#1185)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Updated the approach to managing directory ownership for improved
consistency across various environments.
- Enhanced error handling in directory permission and ownership
commands.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-21 15:14:15 -05:00
Michael Datelle
08423b8dae fix: small modal window (#1183)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Style**
- Adjusted the modal’s width during transitions for a consistent
full-width display.
- Refined responsive behavior for improved modal display on smaller
screens.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: mdatelle <mike@datelle.net>
2025-02-21 14:12:48 -05:00
Eli Bosley
364eb62726 fix/plugin-always-restores (#1184)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Enhanced the plugin uninstallation process to ensure that system files
are properly restored during removal. This update uses a temporary flag
to trigger restoration only when needed and cleans up afterward,
ensuring a smooth and reliable uninstallation experience.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-21 14:12:21 -05:00
Pujit Mehrotra
1718af1bb6 Revert "chore(web): prepare package.json and env files for monorepo tooling" (#1182)
Reverts unraid/api#1180

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

## Summary by CodeRabbit

- **New Features**
- Enhanced the repository setup process by separating configuration for
backend and website modules.
- Introduced a new web setup routine that automates environment
initialization and dependency installation.
- Expanded the development workflow with commands for live development,
linting, type checking, and code generation.

- **Chores**
- Reorganized project scripts and dependency management for improved
consistency.
- Streamlined cleanup routines and refined configuration settings for
staging environments.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-21 13:57:37 -05:00
Pujit Mehrotra
a50a2d9aeb chore(web): prepare package.json and env files for monorepo tooling (#1180)
- **Chores**
- Streamlined the installation and setup workflow by consolidating
multiple commands into a simpler process.
- Updated cleaning procedures to ensure complete removal of build
artifacts and dependencies.
- Adjusted environment file handling for clearer configuration
management.
2025-02-21 11:48:51 -05:00
renovate[bot]
248d211050 fix(deps): update all non-major dependencies (#1168)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@graphql-tools/merge](https://redirect.github.com/ardatan/graphql-tools)
([source](https://redirect.github.com/ardatan/graphql-tools/tree/HEAD/packages/merge))
| [`9.0.19` ->
`9.0.20`](https://renovatebot.com/diffs/npm/@graphql-tools%2fmerge/9.0.19/9.0.20)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-tools%2fmerge/9.0.20?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-tools%2fmerge/9.0.20?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-tools%2fmerge/9.0.19/9.0.20?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-tools%2fmerge/9.0.19/9.0.20?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-tools/schema](https://redirect.github.com/ardatan/graphql-tools)
([source](https://redirect.github.com/ardatan/graphql-tools/tree/HEAD/packages/schema))
| [`10.0.18` ->
`10.0.19`](https://renovatebot.com/diffs/npm/@graphql-tools%2fschema/10.0.18/10.0.19)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-tools%2fschema/10.0.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-tools%2fschema/10.0.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-tools%2fschema/10.0.18/10.0.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-tools%2fschema/10.0.18/10.0.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-tools/utils](https://redirect.github.com/ardatan/graphql-tools)
([source](https://redirect.github.com/ardatan/graphql-tools/tree/HEAD/packages/utils))
| [`10.8.1` ->
`10.8.2`](https://renovatebot.com/diffs/npm/@graphql-tools%2futils/10.8.1/10.8.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-tools%2futils/10.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-tools%2futils/10.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-tools%2futils/10.8.1/10.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-tools%2futils/10.8.1/10.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [ws](https://redirect.github.com/websockets/ws) | [`8.18.0` ->
`8.18.1`](https://renovatebot.com/diffs/npm/ws/8.18.0/8.18.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ws/8.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ws/8.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ws/8.18.0/8.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ws/8.18.0/8.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>ardatan/graphql-tools (@&#8203;graphql-tools/merge)</summary>

###
[`v9.0.20`](https://redirect.github.com/ardatan/graphql-tools/blob/HEAD/packages/merge/CHANGELOG.md#9020)

[Compare
Source](https://redirect.github.com/ardatan/graphql-tools/compare/@graphql-tools/merge@9.0.19...@graphql-tools/merge@9.0.20)

##### Patch Changes

-   Updated dependencies

\[[`3547bba`](3547bbadd3)]:
-
[@&#8203;graphql-tools/utils](https://redirect.github.com/graphql-tools/utils)[@&#8203;10](https://redirect.github.com/10).8.2

</details>

<details>
<summary>ardatan/graphql-tools (@&#8203;graphql-tools/schema)</summary>

###
[`v10.0.19`](https://redirect.github.com/ardatan/graphql-tools/blob/HEAD/packages/schema/CHANGELOG.md#10019)

[Compare
Source](https://redirect.github.com/ardatan/graphql-tools/compare/@graphql-tools/schema@10.0.18...@graphql-tools/schema@10.0.19)

##### Patch Changes

-   Updated dependencies

\[[`3547bba`](3547bbadd3)]:
-
[@&#8203;graphql-tools/utils](https://redirect.github.com/graphql-tools/utils)[@&#8203;10](https://redirect.github.com/10).8.2
-
[@&#8203;graphql-tools/merge](https://redirect.github.com/graphql-tools/merge)[@&#8203;9](https://redirect.github.com/9).0.20

</details>

<details>
<summary>ardatan/graphql-tools (@&#8203;graphql-tools/utils)</summary>

###
[`v10.8.2`](https://redirect.github.com/ardatan/graphql-tools/blob/HEAD/packages/utils/CHANGELOG.md#1082)

[Compare
Source](https://redirect.github.com/ardatan/graphql-tools/compare/@graphql-tools/utils@10.8.1...@graphql-tools/utils@10.8.2)

##### Patch Changes

-
[`3547bba`](3547bbadd3)
Thanks [@&#8203;ardatan](https://redirect.github.com/ardatan)! - Relax
`extensions` type

</details>

<details>
<summary>websockets/ws (ws)</summary>

###
[`v8.18.1`](https://redirect.github.com/websockets/ws/compare/8.18.0...8.18.1)

[Compare
Source](https://redirect.github.com/websockets/ws/compare/8.18.0...8.18.1)

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-21 10:24:22 -05:00
Eli Bosley
6adb4484c3 chore: update release-please config, allow releases from main.yml (#1177)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced the automated release process with integrated changelog
updates for better tracking of product changes.
- Expanded deployment support by distributing release assets through
additional cloud providers, ensuring more robust delivery.

- **Chores**
- Refined release configurations and streamlined component management
for a smoother rollout.
- Introduced file verification checks to prevent release interruptions
and maintain reliable updates.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-21 10:17:23 -05:00
renovate[bot]
dc2e02de86 chore(deps): update dependency vue-tsc to v2 (#1176)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vue-tsc](https://redirect.github.com/vuejs/language-tools)
([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`^1.8.0` ->
`^2.0.0`](https://renovatebot.com/diffs/npm/vue-tsc/1.8.27/2.2.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/1.8.27/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/1.8.27/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vuejs/language-tools (vue-tsc)</summary>

###
[`v2.2.2`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#222-supofficialsup-223-supinsiderssup-2025-02-15)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.2.0...v2.2.2)

##### Features

- feat(language-core): navigation support for `$attrs`, `$slots`,
`$refs` and `$el` in the template
([#&#8203;5056](https://redirect.github.com/vuejs/language-tools/issues/5056))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(language-service): support global directives completion
([#&#8203;4989](https://redirect.github.com/vuejs/language-tools/issues/4989))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(language-core): type support of `useAttrs`
([#&#8203;5106](https://redirect.github.com/vuejs/language-tools/issues/5106))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(language-core): add options for fine-grained configuration of
`strictTemplates`
([#&#8203;5138](https://redirect.github.com/vuejs/language-tools/issues/5138))
- feat(language-service): display deprecated info of props in completion
([#&#8203;5134](https://redirect.github.com/vuejs/language-tools/issues/5134))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(component-meta): collect destructured props defaults
([#&#8203;5101](https://redirect.github.com/vuejs/language-tools/issues/5101))
- Thanks to [@&#8203;Akryum](https://redirect.github.com/Akryum)!
- feat(language-core): add `checkUnknownDirectives` option
([#&#8203;5141](https://redirect.github.com/vuejs/language-tools/issues/5141))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- feat(language-core): support `<script vapor>` - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- fix(language-core): ignore ts errors in function-scoped declare
expressions
([#&#8203;5090](https://redirect.github.com/vuejs/language-tools/issues/5090))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- fix(language-core, typescript-plugin): handle self-reference component
correctly
([#&#8203;5102](https://redirect.github.com/vuejs/language-tools/issues/5102))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): do not generate element for `<template>` with
`v-slot`
([#&#8203;5077](https://redirect.github.com/vuejs/language-tools/issues/5077))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-service): set code action kinds to avoid warning
([#&#8203;5096](https://redirect.github.com/vuejs/language-tools/issues/5096))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
-   fix(language-core): handle parentheses in v-for exp
- fix(language-core): slot exp formatting virtual code syntax incorrect
- fix(language-core): arrow function formatting virtual code syntax
incorrect in interpolation
-   fix(language-core): improve multiple lines event formatting result
-   fix(language-core): prefer `loc.source` instead of node content
- fix(language-core): intersect local `$attrs` with `__VLS_ctx.$attrs`
([#&#8203;5113](https://redirect.github.com/vuejs/language-tools/issues/5113))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): only generate model modifiers for components -
Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-plugin-pug): ignore duplicate attribute error of `class`
([#&#8203;5100](https://redirect.github.com/vuejs/language-tools/issues/5100))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): align types of `v-for` with core
([#&#8203;5084](https://redirect.github.com/vuejs/language-tools/issues/5084))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): map interpolation error with multiple variables
correctly
([#&#8203;5158](https://redirect.github.com/vuejs/language-tools/issues/5158))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(vscode): ask user to reload extension host when configuration
changes
([#&#8203;5160](https://redirect.github.com/vuejs/language-tools/issues/5160))
- Thanks to
[@&#8203;typed-sigterm](https://redirect.github.com/typed-sigterm)!
- fix(typescript-plugin): update component names correctly for the first
time - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): add `undefined` to first param type of optional
model emits
([#&#8203;5171](https://redirect.github.com/vuejs/language-tools/issues/5171))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): intersect `__VLS_slots` with `__VLS_ctx.$slots`
([#&#8203;5083](https://redirect.github.com/vuejs/language-tools/issues/5083))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- fix(language-core): complete codegen of slot name prop
([#&#8203;5139](https://redirect.github.com/vuejs/language-tools/issues/5139))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Other Changes

- refactor(language-service): read ast from codegen instead of parsing
it repeatedly
([#&#8203;5086](https://redirect.github.com/vuejs/language-tools/issues/5086))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(language-core): rewrite `vueCompilerOptions` resolution logic
- refactor(component-meta): read `scriptSetupRanges` from codegen -
Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(component-meta): read node directly instead of creating sub
ast - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(component-meta): read ast from `sfc.script` - Thanks to
[@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(language-core): generate the type of slots with function
property
([#&#8203;5173](https://redirect.github.com/vuejs/language-tools/issues/5173))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(language-core): reduce codegen size of template returns -
Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor(language-core): remove semantic highlight of directives -
Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- refactor: update alien-signals to 1.0.3
([#&#8203;5181](https://redirect.github.com/vuejs/language-tools/issues/5181))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

###
[`v2.2.0`](https://redirect.github.com/vuejs/language-tools/compare/v2.1.10...5babca774658d4b9afbe877ac7c8cafdaecf2c3e)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.10...v2.2.0)

###
[`v2.1.10`](https://redirect.github.com/vuejs/language-tools/compare/v2.1.8...b0af30caee2f8dfb1a8393c1b400f38e31fa4883)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.8...v2.1.10)

###
[`v2.1.8`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#218-supofficialsup-219-supinsiderssup-2024-10-26)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.6...v2.1.8)

##### Features

- **vscode:** reactions visualization now identifies more use cases
<sup>Insiders</sup>
- **language-core:** auto infer `$el` type
([#&#8203;4805](https://redirect.github.com/vuejs/language-tools/issues/4805))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** typed directive arg and modifiers
([#&#8203;4813](https://redirect.github.com/vuejs/language-tools/issues/4813))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- **language-core:** avoid generic type loss due to destructured props
([#&#8203;4821](https://redirect.github.com/vuejs/language-tools/issues/4821))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** handle `v-for` with `v-once` correctly
([#&#8203;4830](https://redirect.github.com/vuejs/language-tools/issues/4830))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** avoid generating zero-length mappings for
interpolation edges
- **language-core:** don't assign `this` to `__VLS_ctx`
([#&#8203;4845](https://redirect.github.com/vuejs/language-tools/issues/4845))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** initialize scope with null prototype object
([#&#8203;4855](https://redirect.github.com/vuejs/language-tools/issues/4855))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** inlay hints for `<component :is>` and `<slot
:name>`
([#&#8203;4661](https://redirect.github.com/vuejs/language-tools/issues/4661))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX),
[@&#8203;so1ve](https://redirect.github.com/so1ve)!
- **language-core:** should error when invalid syntax at script end
([#&#8203;4692](https://redirect.github.com/vuejs/language-tools/issues/4692))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** correct type inference of `defineModel` &
`defineEmits` in generic
([#&#8203;4823](https://redirect.github.com/vuejs/language-tools/issues/4823))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** inject generics of `useTemplateRef` into correct
location
([#&#8203;4829](https://redirect.github.com/vuejs/language-tools/issues/4829))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** prevent the generation of generics in JS
([#&#8203;4836](https://redirect.github.com/vuejs/language-tools/issues/4836))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX),
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** generate correct reference for `v-on` on `<slot>`
([#&#8203;4864](https://redirect.github.com/vuejs/language-tools/issues/4864))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** match classname before `)`
([#&#8203;4887](https://redirect.github.com/vuejs/language-tools/issues/4887))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** handle internal item key with leading slash
correctly
([#&#8203;4894](https://redirect.github.com/vuejs/language-tools/issues/4894))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** correctly obtain the index of style modules
([#&#8203;4907](https://redirect.github.com/vuejs/language-tools/issues/4907))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** refer absolute path of global types file
([#&#8203;4924](https://redirect.github.com/vuejs/language-tools/issues/4924))
- Thanks to
[@&#8203;depressedX](https://redirect.github.com/depressedX)!
- **component-meta:** error when signatures is undefined
([#&#8203;4930](https://redirect.github.com/vuejs/language-tools/issues/4930))
- Thanks to
[@&#8203;Hannesrasmussen](https://redirect.github.com/Hannesrasmussen)!
- **language-core:** intersect props of generic component with attrs
([#&#8203;4886](https://redirect.github.com/vuejs/language-tools/issues/4886))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** fix incorrect syntax for class component virtual
code
- **language-core:** generate `value` instead of model name into tuple
([#&#8203;4892](https://redirect.github.com/vuejs/language-tools/issues/4892))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** infer template ref's type of native elements with
`v-for` correctly
([#&#8203;4933](https://redirect.github.com/vuejs/language-tools/issues/4933))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** should wrap item with `Reactive` on `v-for`
([#&#8203;4902](https://redirect.github.com/vuejs/language-tools/issues/4902))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Performance

- **language-service:** find destructured props only with enabled
setting
([#&#8203;4815](https://redirect.github.com/vuejs/language-tools/issues/4815))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Other Changes

-   Upgraded Volar from `v2.4.1` to `v2.4.8`:
- Changing vue files causes internal state to desync in Sublime Text
([#&#8203;4909](https://redirect.github.com/vuejs/language-tools/issues/4909))
- Thanks to [@&#8203;rchl](https://redirect.github.com/rchl)!
- The syntax highlighting is not applied when destructuring props
([#&#8203;4811](https://redirect.github.com/vuejs/language-tools/issues/4811))
- chore: fix nvim config snippet in README
([#&#8203;4881](https://redirect.github.com/vuejs/language-tools/issues/4881))
- Thanks to
[@&#8203;LiamEderzeel](https://redirect.github.com/LiamEderzeel)!
- chore: remove side effects
([#&#8203;4871](https://redirect.github.com/vuejs/language-tools/issues/4871))
- Thanks to [@&#8203;vikingair](https://redirect.github.com/vikingair)!
- chore: remove `importsNotUsedAsValues`
([#&#8203;4897](https://redirect.github.com/vuejs/language-tools/issues/4897))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- chore(vscode): switch to `"module": "CommonJS"`
([#&#8203;4944](https://redirect.github.com/vuejs/language-tools/issues/4944))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- test: fix incorrect default value
([#&#8203;4934](https://redirect.github.com/vuejs/language-tools/issues/4934))
- Thanks to [@&#8203;jh-leong](https://redirect.github.com/jh-leong)!
-   test(tsc): add a test case for class component

###
[`v2.1.6`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#216-supofficialsup-217-supinsiderssup-2024-09-05)

[Compare
Source](a95b51ac0b...v2.1.6)

##### Features

- **language-plugin-pug:** support initial indentation
([#&#8203;4774](https://redirect.github.com/vuejs/language-tools/issues/4774))
- **language-service:** JSDoc display support when typing props on
component template
([#&#8203;4796](https://redirect.github.com/vuejs/language-tools/issues/4796))
- Thanks to [@&#8203;joy-yu](https://redirect.github.com/joy-yu)!
- **language-core:** typed directives in template
([#&#8203;4807](https://redirect.github.com/vuejs/language-tools/issues/4807))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- **language-core:** wrap template refs with `unref` in interpolation
([#&#8203;4777](https://redirect.github.com/vuejs/language-tools/issues/4777))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** ensure to pass tsc on inline global types
([#&#8203;4782](https://redirect.github.com/vuejs/language-tools/issues/4782))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** infer native template ref as build-in element
interface
([#&#8203;4786](https://redirect.github.com/vuejs/language-tools/issues/4786))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** generate `__VLS_StyleModules` after template
([#&#8203;4790](https://redirect.github.com/vuejs/language-tools/issues/4790))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** make `expose` of non-generic template ref required
([#&#8203;4795](https://redirect.github.com/vuejs/language-tools/issues/4795))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** avoid using `__typeProps` with runtime props
([#&#8203;4800](https://redirect.github.com/vuejs/language-tools/issues/4800))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** ignore unknown attrs error when strictTemplates is
not enabled
([#&#8203;4785](https://redirect.github.com/vuejs/language-tools/issues/4785))
- **language-core:** prevent append globalTypes to virtual file
([#&#8203;4806](https://redirect.github.com/vuejs/language-tools/issues/4806))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** prevent type error when use defineSlots and
non-template
([#&#8203;4809](https://redirect.github.com/vuejs/language-tools/issues/4809))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **typescript-plugin:** disconnect socket on error
([#&#8203;4672](https://redirect.github.com/vuejs/language-tools/issues/4672))

##### Performance

- **language-core:** don't emit event lnlayhint when content is none
([#&#8203;4776](https://redirect.github.com/vuejs/language-tools/issues/4776))
- Thanks to [@&#8203;Gehbt](https://redirect.github.com/Gehbt)!

##### Other Changes

- **language-core:** split `__VLS_templateResult`
([#&#8203;4781](https://redirect.github.com/vuejs/language-tools/issues/4781))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** wrap template virtual code into a function
([#&#8203;4784](https://redirect.github.com/vuejs/language-tools/issues/4784))
- **language-core:** move `templateRef` into `composibles`
([#&#8203;4791](https://redirect.github.com/vuejs/language-tools/issues/4791))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** generate global types for the first parsed Vue
component if cannot write global types file

##### Tests

- **language-server:** add renaming case for template `ref()`
([#&#8203;4794](https://redirect.github.com/vuejs/language-tools/issues/4794))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **tsc:** update to Vue 3.5
([#&#8203;4725](https://redirect.github.com/vuejs/language-tools/issues/4725))
- **tsc:** unknown props on non-strict generic component
([#&#8203;4792](https://redirect.github.com/vuejs/language-tools/issues/4792))

###
[`v2.1.5`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#214-supofficialsup-215-supinsiderssup-2024-09-01)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.4...a95b51ac0b0db8825f77fbba37e29932b5be61e4)

##### Features

- **typescript-plugin, language-server:** generate global types file
into `node_modules/.vue-global-types`
([#&#8203;4752](https://redirect.github.com/vuejs/language-tools/issues/4752))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** navigation support for template-ref
([#&#8203;4726](https://redirect.github.com/vuejs/language-tools/issues/4726))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

##### Bug Fixes

- **language-core, typescript-plugin, language-server:** apply snake
case on globalTypes filename
([#&#8203;4749](https://redirect.github.com/vuejs/language-tools/issues/4749))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** hoist `$refs` type
([#&#8203;4763](https://redirect.github.com/vuejs/language-tools/issues/4763))
- **language-core:** disable lib check on global types file
([#&#8203;4767](https://redirect.github.com/vuejs/language-tools/issues/4767))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** prevent circular reference of templateRef
([#&#8203;4768](https://redirect.github.com/vuejs/language-tools/issues/4768))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
-   **language-core:** using interface merging for `GlobalComponents`
- **language-core:** `fallthroughAttributes` causes global components to
be self-referential
([#&#8203;4761](https://redirect.github.com/vuejs/language-tools/issues/4761))
- **language-core:** auto-completion for the last line of template block
([#&#8203;4771](https://redirect.github.com/vuejs/language-tools/issues/4771))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** update ast correctly on repeated `v-for`
modifications
([#&#8203;4772](https://redirect.github.com/vuejs/language-tools/issues/4772))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-server:** leaking named pipes
([#&#8203;4672](https://redirect.github.com/vuejs/language-tools/issues/4672))
- **typescript-plugin:** compatible with Yarn PnP
([#&#8203;4751](https://redirect.github.com/vuejs/language-tools/issues/4751))
- **vscode:** whitelist `ms-dynamics-smb.al` extension for Vue Hybrid
Mode.
([#&#8203;4765](https://redirect.github.com/vuejs/language-tools/issues/4765))
- Thanks to
[@&#8203;kyleweishaupt](https://redirect.github.com/kyleweishaupt)!

##### Other Changes

- Add optional "dependencies" textarea to issue template
([#&#8203;4758](https://redirect.github.com/vuejs/language-tools/issues/4758))
- Thanks to
[@&#8203;davidmatter](https://redirect.github.com/davidmatter)!

###
[`v2.1.4`](https://redirect.github.com/vuejs/language-tools/compare/v2.1.2...5e197d08eaef57209ff2927c943ba1db3bf4eff6)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.2...v2.1.4)

###
[`v2.1.2`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#212-supofficialsup-213-supinsiderssup-2024-08-29)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.1.0...v2.1.2)

##### Bug Fixes

- **language-core, typescript-plugin, language-server:** write
globalTypes into dist for correct export
([#&#8203;4740](https://redirect.github.com/vuejs/language-tools/issues/4740))
([#&#8203;4737](https://redirect.github.com/vuejs/language-tools/issues/4737))
([#&#8203;4738](https://redirect.github.com/vuejs/language-tools/issues/4738))
([#&#8203;4739](https://redirect.github.com/vuejs/language-tools/issues/4739))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** don't default `vueCompilerOptions.lib` to
`@vue/runtime-dom` for Vue 2

###
[`v2.1.0`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#210-supofficialsup-211-supinsiderssup-2024-08-29)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.29...v2.1.0)

##### Features

- **language-core:** inlay hints for destructured props
([#&#8203;4634](https://redirect.github.com/vuejs/language-tools/issues/4634))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** typed fallthrough attributes
([#&#8203;4103](https://redirect.github.com/vuejs/language-tools/issues/4103))
- Thanks to [@&#8203;A5rocks](https://redirect.github.com/A5rocks),
[@&#8203;so1ve](https://redirect.github.com/so1ve)!
- **language-core:** document links for classname within `:class`
([#&#8203;4642](https://redirect.github.com/vuejs/language-tools/issues/4642))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** auto infer type for $refs & useTemplateRef
([#&#8203;4644](https://redirect.github.com/vuejs/language-tools/issues/4644))
- Thanks to
[@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)!
- **language-core:** type support for CSS Modules API
([#&#8203;4674](https://redirect.github.com/vuejs/language-tools/issues/4674))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** better completion for directives
([#&#8203;4640](https://redirect.github.com/vuejs/language-tools/issues/4640))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** better sorting & filtering of completion
([#&#8203;4671](https://redirect.github.com/vuejs/language-tools/issues/4671))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** add style scoped and module completion
([#&#8203;4705](https://redirect.github.com/vuejs/language-tools/issues/4705))
- Thanks to [@&#8203;runyasak](https://redirect.github.com/runyasak)!

##### Bug Fixes

- **vscode:** type of `vue.server.hybridMode` config
([#&#8203;4703](https://redirect.github.com/vuejs/language-tools/issues/4703))
- Thanks to [@&#8203;KermanX](https://redirect.github.com/KermanX)!
- **language-core:** dependency on vulnerable version of
`vue-template-compiler`
([#&#8203;4613](https://redirect.github.com/vuejs/language-tools/issues/4613))
- Thanks to [@&#8203;yyx990803](https://redirect.github.com/yyx990803)!
- **language-core:** support parse method to access ctx var in object
([#&#8203;4609](https://redirect.github.com/vuejs/language-tools/issues/4609))
- Thanks to [@&#8203;linghaoSu](https://redirect.github.com/linghaoSu)!
- **language-core:** escape \ and ' in className avoid type error
([#&#8203;4619](https://redirect.github.com/vuejs/language-tools/issues/4619))
- Thanks to [@&#8203;linghaoSu](https://redirect.github.com/linghaoSu)!
- **language-core:** semantic highlight of the end tag of namespaced
elements
([#&#8203;4623](https://redirect.github.com/vuejs/language-tools/issues/4623))
- Thanks to [@&#8203;KermanX](https://redirect.github.com/KermanX)!
- **language-core:** nullable modelvalues
([#&#8203;4648](https://redirect.github.com/vuejs/language-tools/issues/4648))
- Thanks to
[@&#8203;davidmatter](https://redirect.github.com/davidmatter)!
- **language-core:** should try casting dynamic slot name into constant
([#&#8203;4669](https://redirect.github.com/vuejs/language-tools/issues/4669))
- Thanks to [@&#8203;KermanX](https://redirect.github.com/KermanX)!
- **language-core:** local name support for prop using runtime api
([#&#8203;4650](https://redirect.github.com/vuejs/language-tools/issues/4650))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** optimize matching of scoped class and `v-bind()`
([#&#8203;4679](https://redirect.github.com/vuejs/language-tools/issues/4679))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** should preserve generic info in directive
([#&#8203;4686](https://redirect.github.com/vuejs/language-tools/issues/4686))
- Thanks to [@&#8203;KermanX](https://redirect.github.com/KermanX)!
- **language-core:** generate `ref` as identifier instead of
interpolation
([#&#8203;4688](https://redirect.github.com/vuejs/language-tools/issues/4688))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** correct type narrowing from script to template
([#&#8203;4689](https://redirect.github.com/vuejs/language-tools/issues/4689))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** should camelize prop name in
`experimentalModelPropName`
([#&#8203;4691](https://redirect.github.com/vuejs/language-tools/issues/4691))
- Thanks to [@&#8203;KermanX](https://redirect.github.com/KermanX)!
- **language-core:** drop duplicate hints on incomplete tag
([#&#8203;4696](https://redirect.github.com/vuejs/language-tools/issues/4696))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** correct inlay hints for v-bind with modifier
([#&#8203;4721](https://redirect.github.com/vuejs/language-tools/issues/4721))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-core:** transform range of `file-md` correctly
([#&#8203;4735](https://redirect.github.com/vuejs/language-tools/issues/4735))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-plugin-pug:** should cache proxyed object
([#&#8203;4626](https://redirect.github.com/vuejs/language-tools/issues/4626))
- Thanks to [@&#8203;KermanX](https://redirect.github.com/KermanX)!
- **language-plugin-pug:** compute offset correctly of pug class
([#&#8203;4652](https://redirect.github.com/vuejs/language-tools/issues/4652))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** completion documentations for binding attributes
([#&#8203;4667](https://redirect.github.com/vuejs/language-tools/issues/4667))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** avoid converting internal id of special tags
([#&#8203;4643](https://redirect.github.com/vuejs/language-tools/issues/4643))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** reinstate the completion for modifiers
([#&#8203;4639](https://redirect.github.com/vuejs/language-tools/issues/4639))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **language-service:** consistent data from provider for sfc completion
([#&#8203;4645](https://redirect.github.com/vuejs/language-tools/issues/4645))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!
- **typescript-plugin:** unknown request type warning
([#&#8203;4715](https://redirect.github.com/vuejs/language-tools/issues/4715))
- Thanks to
[@&#8203;davidmatter](https://redirect.github.com/davidmatter)!

##### Refactors

-   **language-core:** extract SFC root tags to separate virtual code
-   **language-core:** removed `__hint` trick from codegen
-   **language-core:** rewrite a part of confusing codegen code
- **language-core:** reduce virtual code generated by component tags
([#&#8203;4714](https://redirect.github.com/vuejs/language-tools/issues/4714))
- **language-core:** do not wrap template virtual code with function
([#&#8203;4731](https://redirect.github.com/vuejs/language-tools/issues/4731))
- **language-core**: write real files to FS for shared global types
([#&#8203;4736](https://redirect.github.com/vuejs/language-tools/issues/4736))
- **component-meta:** remove deprecated
`createComponentMetaCheckerByJsonConfig`, `createComponentMetaChecker`
api

##### Other Changes

-   Upgraded Volar from `v2.4.0-alpha.18` to `v2.4.1`:
- Ensure unopened files are synced to project
([#&#8203;4711](https://redirect.github.com/vuejs/language-tools/issues/4711))
([#&#8203;4632](https://redirect.github.com/vuejs/language-tools/issues/4632))
- Thanks to
[@&#8203;davidmatter](https://redirect.github.com/davidmatter)!
- **ci:** integrated
[pkg.pr.new](https://redirect.github.com/stackblitz-labs/pkg.pr.new)
- **tsc:** test all typecheck cases in one tsconfig
([#&#8203;4723](https://redirect.github.com/vuejs/language-tools/issues/4723))
- **tsc:** add test for TS-next
([#&#8203;4724](https://redirect.github.com/vuejs/language-tools/issues/4724))
- **tsc:** add tests for for
[#&#8203;3779](https://redirect.github.com/vuejs/language-tools/issues/3779),
[#&#8203;3820](https://redirect.github.com/vuejs/language-tools/issues/3820)
([#&#8203;3838](https://redirect.github.com/vuejs/language-tools/issues/3838))
- Thanks to [@&#8203;so1ve](https://redirect.github.com/so1ve)!
- **vscode:** add grammar test
([#&#8203;3861](https://redirect.github.com/vuejs/language-tools/issues/3861))
- Thanks to [@&#8203;so1ve](https://redirect.github.com/so1ve)!
- **language-service:** migrate tests to `@volar/test-utils`
([#&#8203;4719](https://redirect.github.com/vuejs/language-tools/issues/4719))
- **language-core:** add scoped classes renaming case
([#&#8203;4727](https://redirect.github.com/vuejs/language-tools/issues/4727))
- Thanks to [@&#8203;KazariEX](https://redirect.github.com/KazariEX)!

###
[`v2.0.29`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2028-supofficialsup-2029-supinsiderssup-2024-07-22)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.28...v2.0.29)

##### Features

- **vscode:** focus mode <sup>Insiders</sup>
([https://github.com/volarjs/insiders/pull/24](https://redirect.github.com/volarjs/insiders/pull/24))
-   **language-core:** Plugin API 2.1
    -   Added plugin hooks: `getLanguageId`, `isValidFile`, `parseSFC2`
- Improve backward compatibility
([#&#8203;4585](https://redirect.github.com/vuejs/language-tools/issues/4585))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** support default prop when using \__typeProps
([#&#8203;4602](https://redirect.github.com/vuejs/language-tools/issues/4602))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** improve nested plugins
([#&#8203;4581](https://redirect.github.com/vuejs/language-tools/issues/4581))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-service:** remove `v-bind` code action
([#&#8203;4601](https://redirect.github.com/vuejs/language-tools/issues/4601))
- **vscode:** add empty pattern to codeblock attributes scope
([#&#8203;4590](https://redirect.github.com/vuejs/language-tools/issues/4590))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)

##### Fixes

- **tsc:** errors should be thrown instead of being console.log printed
- **language-server:** observe named pipes changes when server startup
([#&#8203;4292](https://redirect.github.com/vuejs/language-tools/issues/4292))
- **language-core:** infer define model type from options type
([#&#8203;4545](https://redirect.github.com/vuejs/language-tools/issues/4545))
- Thanks [@&#8203;davidmatter](https://redirect.github.com/davidmatter)
- **language-core:** type-checking not working with hyphen in slot name
with JS
([#&#8203;4478](https://redirect.github.com/vuejs/language-tools/issues/4478))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)
- **language-core:** add type check for v-model without argument
([#&#8203;4598](https://redirect.github.com/vuejs/language-tools/issues/4598))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-service:** filter special tags
([#&#8203;4596](https://redirect.github.com/vuejs/language-tools/issues/4596))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- **typescript-plugin:** improve named pipes reliability
([#&#8203;4603](https://redirect.github.com/vuejs/language-tools/issues/4603))
- **language-core:** property access is incorrectly identified as
compound expression
([#&#8203;4600](https://redirect.github.com/vuejs/language-tools/issues/4600))
- **language-core:** fix compatibility of generic component virtual code
with TS 5.5
([#&#8203;4577](https://redirect.github.com/vuejs/language-tools/issues/4577))
- **tsc:** TS4082 not reported for functional component
([#&#8203;4569](https://redirect.github.com/vuejs/language-tools/issues/4569))

##### Other Changes

-   Upgraded Volar from `v2.4.0-alpha.15` to `v2.4.0-alpha.18`:
- Fix VS Code IntelliSense will be lost in new created files
([#&#8203;4424](https://redirect.github.com/vuejs/language-tools/issues/4424))
- Add workspace symbols support in Hybrid Mode
([#&#8203;4595](https://redirect.github.com/vuejs/language-tools/issues/4595))
- Add workspace `addMissingImports` action support in Hybrid Mode
([#&#8203;4586](https://redirect.github.com/vuejs/language-tools/issues/4586))
- Fix yarn 4 compatibility
([#&#8203;4587](https://redirect.github.com/vuejs/language-tools/issues/4587))
- Add vue vine to hybrid mode compatible list
([#&#8203;4543](https://redirect.github.com/vuejs/language-tools/issues/4543))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- Add global components prop validation test
([#&#8203;4542](https://redirect.github.com/vuejs/language-tools/issues/4542))
- Thanks [@&#8203;davidmatter](https://redirect.github.com/davidmatter)

###
[`v2.0.28`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2028-supofficialsup-2029-supinsiderssup-2024-07-22)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.26...v2.0.28)

##### Features

-   **vscode:** focus mode <sup>Insiders</sup>
-   **language-core:** Plugin API 2.1
    -   Added plugin hooks: `getLanguageId`, `isValidFile`, `parseSFC2`
- Improve backward compatibility
([#&#8203;4585](https://redirect.github.com/vuejs/language-tools/issues/4585))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** support default prop when using \__typeProps
([#&#8203;4602](https://redirect.github.com/vuejs/language-tools/issues/4602))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** improve nested plugins
([#&#8203;4581](https://redirect.github.com/vuejs/language-tools/issues/4581))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-service:** remove `v-bind` code action
([#&#8203;4601](https://redirect.github.com/vuejs/language-tools/issues/4601))
- **vscode:** add empty pattern to codeblock attributes scope
([#&#8203;4590](https://redirect.github.com/vuejs/language-tools/issues/4590))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)

##### Fixes

- **tsc:** errors should be thrown instead of being console.log printed
- **language-server:** observe named pipes changes when server startup
([#&#8203;4292](https://redirect.github.com/vuejs/language-tools/issues/4292))
- **language-core:** infer define model type from options type
([#&#8203;4545](https://redirect.github.com/vuejs/language-tools/issues/4545))
- Thanks [@&#8203;davidmatter](https://redirect.github.com/davidmatter)
- **language-core:** type-checking not working with hyphen in slot name
with JS
([#&#8203;4478](https://redirect.github.com/vuejs/language-tools/issues/4478))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)
- **language-core:** add type check for v-model without argument
([#&#8203;4598](https://redirect.github.com/vuejs/language-tools/issues/4598))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-service:** filter special tags
([#&#8203;4596](https://redirect.github.com/vuejs/language-tools/issues/4596))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- **typescript-plugin:** improve named pipes reliability
([#&#8203;4603](https://redirect.github.com/vuejs/language-tools/issues/4603))
- **language-core** property access is incorrectly identified as
compound expression
([#&#8203;4600](https://redirect.github.com/vuejs/language-tools/issues/4600))
- **language-core** fix compatibility of generic component virtual code
with TS 5.5
([#&#8203;4577](https://redirect.github.com/vuejs/language-tools/issues/4577))
- **tsc** TS4082 not reported for functional component
([#&#8203;4569](https://redirect.github.com/vuejs/language-tools/issues/4569))

##### Other Changes

-   Upgraded Volar from `v2.4.0-alpha.15` to `v2.4.0-alpha.18`:
- Fix VS Code IntelliSense will be lost in new created files
([#&#8203;4424](https://redirect.github.com/vuejs/language-tools/issues/4424))
- Add workspace symbols support in Hybrid Mode
([#&#8203;4595](https://redirect.github.com/vuejs/language-tools/issues/4595))
- Add workspace `addMissingImports` action support in Hybrid Mode
([#&#8203;4586](https://redirect.github.com/vuejs/language-tools/issues/4586))
- Fix yarn 4 compatibility
([#&#8203;4587](https://redirect.github.com/vuejs/language-tools/issues/4587))
- Add vue vine to hybrid mode compatible list
([#&#8203;4543](https://redirect.github.com/vuejs/language-tools/issues/4543))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- Add global components prop validation test
([#&#8203;4542](https://redirect.github.com/vuejs/language-tools/issues/4542))
- Thanks [@&#8203;davidmatter](https://redirect.github.com/davidmatter)

###
[`v2.0.26`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2026-supofficialsup-2027-supinsiderssup-2024-07-04)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.24...v2.0.26)

##### Features

- **language-service:** Support auto-complete for more preprocessing
languages.
- **language-core:** Improve type compatibility with Vue 3.5.
([#&#8203;4474](https://redirect.github.com/vuejs/language-tools/issues/4474))
- Thanks, [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj).

##### Bug Fixes

- **vscode:** Fix insider version display condition. <sup>Insiders</sup>
- **language-service:** Fix `vue-twoslash-queries` not working in LSP
mode.
- **language-service:** Add null handling for script tag completion
items.
([#&#8203;4520](https://redirect.github.com/vuejs/language-tools/issues/4520))
- **language-core:** Fix `any` in templates if the first checked file
was not root.
([#&#8203;4526](https://redirect.github.com/vuejs/language-tools/issues/4526))
- Thanks,
[@&#8203;daniluk4000](https://redirect.github.com/daniluk4000).

##### Other Changes

-   Upgraded Volar from `v2.4.0-alpha.2` to `v2.4.0-alpha.14`:
- Fixed an issue where, when Hybrid Mode is disabled, TS support for Vue
files not included in tsconfig may be missing.
- Improved the consistency of `vue-tsc` and `tsc` behavior.
([#&#8203;3526](https://redirect.github.com/vuejs/language-tools/issues/3526))
    -   Fixed the `--clean` flag support for `vue-tsc`.
-   Updated the high-level overview mermaid diagram.
- Added 'expected' and 'actually happening' sections to the bug report
template.
([#&#8203;4515](https://redirect.github.com/vuejs/language-tools/issues/4515))
- Thanks,
[@&#8203;davidmatter](https://redirect.github.com/davidmatter).

###
[`v2.0.24`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2024-supofficialsup-2025-supinsiderssup-2024-06-30)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.22...v2.0.24)

##### Features

- **vscode:** pop message box if new insiders version available
<sup>insiders</sup>
- **vscode:** if insiders versions information failed to fetch from
GitHub, try to fetch from CDN <sup>insiders</sup>
- **language-service:** better sfc-level tag name completion
([#&#8203;4506](https://redirect.github.com/vuejs/language-tools/issues/4506))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)

##### Bug Fixes

- **tsc:** update required volar version
([#&#8203;4498](https://redirect.github.com/vuejs/language-tools/issues/4498))
- Thanks [@&#8203;davidmatter](https://redirect.github.com/davidmatter)
- **tsc:** bump peer typescript version
([#&#8203;4513](https://redirect.github.com/vuejs/language-tools/issues/4513))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)

##### Refactors

- **language-server:** reorganize the code structure
([#&#8203;4507](https://redirect.github.com/vuejs/language-tools/issues/4507))

##### Other Changes

-   Upgrade Volar from `v2.3.1` to `v2.4.0-alpha.2`.
- Hybrid Mode compatibility improvements with other TS plugins
([https://github.com/volarjs/volar.js/issues/216](https://redirect.github.com/volarjs/volar.js/issues/216))
- **docs:** add nvim-cmp integration
([#&#8203;4463](https://redirect.github.com/vuejs/language-tools/issues/4463))
- Thanks
[@&#8203;RayGuo-ergou](https://redirect.github.com/RayGuo-ergou)
-   **docs:** update mermaid
- The following extensions have been added to Hybrid Mode’s
compatibility whitelist
([#&#8203;4206](https://redirect.github.com/vuejs/language-tools/issues/4206)):
    -   `p42ai.refactor`
    -   `nrwl.angular-console`
    -   `styled-components.vscode-styled-components`
    -   `Divlo.vscode-styled-jsx-languageserver`

###
[`v2.0.22`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2022-2024-06-22)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.21...v2.0.22)

##### Bug Fixes

- **vscode:** directive syntax highlighting
([#&#8203;4482](https://redirect.github.com/vuejs/language-tools/issues/4482))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)
- **language-core:** move declare defineProp out of function scope
([#&#8203;4454](https://redirect.github.com/vuejs/language-tools/issues/4454))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** compatible with TS 5.5
([#&#8203;4492](https://redirect.github.com/vuejs/language-tools/issues/4492))

##### Other Changes

-   Upgrade Volar from `v2.3.0-alpha.14` to `v2.3.1`.
- Error tolerant to `contentChanges` length
([#&#8203;4457](https://redirect.github.com/vuejs/language-tools/issues/4457))
- Add feature request template
([#&#8203;4490](https://redirect.github.com/vuejs/language-tools/issues/4490))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- **docs:** fix wrong links in CHANGELOG.md
([#&#8203;4475](https://redirect.github.com/vuejs/language-tools/issues/4475))
- Thanks [@&#8203;KermanX](https://redirect.github.com/KermanX)

###
[`v2.0.21`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2021-2024-06-08)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.20...v2.0.21)

##### Bug Fixes

- fix(typescript-plugin): TS plugin cause type checking broken in .ts
files
([#&#8203;4453](https://redirect.github.com/vuejs/language-tools/issues/4453))

###
[`v2.0.20`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2020-2024-06-08)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.19...v2.0.20)

##### Features

-   feat(language-service): add localization support for zh-hk/zh-tw
- feat(vscode): enable syntax highlighting of cue code blocks in MDX
([#&#8203;4425](https://redirect.github.com/vuejs/language-tools/issues/4425))
- Thanks
[@&#8203;remcohaszing](https://redirect.github.com/remcohaszing)

##### Bug Fixes

- fix(vscode): fix "as"/"instanceof" expressions syntax highlight
([#&#8203;4412](https://redirect.github.com/vuejs/language-tools/issues/4412))
- fix(language-core): `ForIteratorExpression`'s `returns` property may
be undefined
([#&#8203;4418](https://redirect.github.com/vuejs/language-tools/issues/4418))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- fix(language-core): use defineEmits calls instead of type infer
([#&#8203;4430](https://redirect.github.com/vuejs/language-tools/issues/4430))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- fix(tsc): log catched errors to console
([#&#8203;4451](https://redirect.github.com/vuejs/language-tools/issues/4451))
- Thanks [@&#8203;mik3ybark3r](https://redirect.github.com/mik3ybark3r)
- fix(typescript-plugin): TS not working in template when tsconfig
missing
([#&#8203;4452](https://redirect.github.com/vuejs/language-tools/issues/4452))
- fix(language-core): use type infer instead of await import
([#&#8203;4436](https://redirect.github.com/vuejs/language-tools/issues/4436))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- feat(language-core): ignore type error for new functional component
([#&#8203;4445](https://redirect.github.com/vuejs/language-tools/issues/4445))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- fix(language-core): ignore type error for possible component name
([#&#8203;4446](https://redirect.github.com/vuejs/language-tools/issues/4446))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
-   fix(language-service): filter internal props in template completion
-   fix(language-service): sort component props in template completion
- fix(language-core): duplicate completion appears at the beginning of
script setup block

##### Other Changes

-   Upgrade Volar from `v2.2.4` to `v2.3.0-alpha.14`.
    -   LSP server performance improved
- Language server now responds with the exact server capabilities for
initialization requests
- Auto insertion requests can now exit early in the language client
- The following extensions have been added to Hybrid Mode’s
compatibility whitelist:
- `kimuson.ts-type-expand` - Thanks
[@&#8203;zcf0508](https://redirect.github.com/zcf0508)

###
[`v2.0.19`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2019-2024-05-16)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.18...v2.0.19)

##### Bug Fixes

- **language-core:** property 'xyz' does not exist on type 'abc' when
using v-for
([#&#8203;4386](https://redirect.github.com/vuejs/language-tools/issues/4386))
- **language-core:** avoid report error when events do not accept
parameters
([#&#8203;4387](https://redirect.github.com/vuejs/language-tools/issues/4387))
- **language-core:** inline dynamic event handlers should not expect
commas
([#&#8203;4387](https://redirect.github.com/vuejs/language-tools/issues/4387))

###
[`v2.0.18`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2018-2024-05-15)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.17...v2.0.18)

##### Features

- feat(language-core): report unknown events when strictTemplates is
enabled
([#&#8203;3718](https://redirect.github.com/vuejs/language-tools/issues/3718))
- feat(language-core): add `compileSFCScript` plugin hook
([#&#8203;3200](https://redirect.github.com/vuejs/language-tools/issues/3200))
-   feat(vscode): add coffeescript syntax highlight support

##### Bug Fixes

- fix(language-core): fix event handler type for hyphen-case event names
- fix(language-core): allow binding multiple events with the same name
([#&#8203;4369](https://redirect.github.com/vuejs/language-tools/issues/4369))
- fix(language-core): variable used in `key` appears as unused in v-for
template tag
([#&#8203;329](https://redirect.github.com/vuejs/language-tools/issues/329))
([#&#8203;3421](https://redirect.github.com/vuejs/language-tools/issues/3421))
- fix(language-core): generics with slots don't work with Vue 2.7
([#&#8203;3241](https://redirect.github.com/vuejs/language-tools/issues/3241))
- fix(language-core): template language of .md files should be markdown
([#&#8203;4299](https://redirect.github.com/vuejs/language-tools/issues/4299))
- fix(language-core): no template class links when
`experimentalResolveStyleCssClasses` is set to `always`
([#&#8203;4379](https://redirect.github.com/vuejs/language-tools/issues/4379))

##### Other Changes

-   Upgrade Volar from `v2.2.2` to `v2.2.4`.
    -   Fixed a few URI conversion issues
- fix(typescript): empty items list should be valid completion result
([#&#8203;4368](https://redirect.github.com/vuejs/language-tools/issues/4368))
    -   fix(typescript): path completion not working for meta files
-   Upgrade Volar services from `v0.0.44` to `v0.0.45`.
    -   fix(typescript-twoslash-queries): inlay hints not working
    -   fix(css, html, json, yaml): failed to resolve relative path
- feat(emmet): port VSCode emmet extension client logic
([https://github.com/volarjs/services/issues/95](https://redirect.github.com/volarjs/services/issues/95))
- The following extensions have been added to Hybrid Mode’s
compatibility whitelist:
    -   `miaonster.vscode-tsx-arrow-definition`
    -   `runem.lit-plugin`

###
[`v2.0.17`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2017-2024510)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.16...v2.0.17)

##### Features

- **language-core:** add JSDod support for component
([#&#8203;2377](https://redirect.github.com/vuejs/language-tools/issues/2377))
- **language-core:** add JSDoc support for script setup binding
variables
([#&#8203;3409](https://redirect.github.com/vuejs/language-tools/issues/3409))
- **language-core:** add class component support
([#&#8203;4354](https://redirect.github.com/vuejs/language-tools/issues/4354))
- **language-service:** re-support scoped class links in template
([#&#8203;4357](https://redirect.github.com/vuejs/language-tools/issues/4357))
- **typescript-plugin:** create script setup block when auto import if
needed
- **typescript-plugin:** add JSDoc support for events in template
([#&#8203;4365](https://redirect.github.com/vuejs/language-tools/issues/4365))
-   **component-meta:** add JSDoc tags support for events
- **language-core:** support defineOptions
([#&#8203;4362](https://redirect.github.com/vuejs/language-tools/issues/4362))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)

##### Bug Fixes

- **language-core:** hover not working for intrinsic element event name
- **language-core:** showing false *declared but not used* errors for
functions used in `v-on="{}"`
([#&#8203;4333](https://redirect.github.com/vuejs/language-tools/issues/4333))
-   **language-core:** fix nameless event expression formatting
- **language-core:** types imported in the `<script setup>` should not
be used as a variable in template
([#&#8203;4353](https://redirect.github.com/vuejs/language-tools/issues/4353))
- **language-core:** renaming classname within `scoped` not working
([#&#8203;4355](https://redirect.github.com/vuejs/language-tools/issues/4355))
- **language-core:** `<style>` completions and html custom data
completions not provided in some cases
([#&#8203;4092](https://redirect.github.com/vuejs/language-tools/issues/4092))
-   **language-core:** improve code action edits mapping fault tolerance
- **language-core:** support defineModel for generic component
([#&#8203;4345](https://redirect.github.com/vuejs/language-tools/issues/4345))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
-   **language-service:** completion cannot trigger in SFC root
-   **component-meta:** `forceUseTs` options not working

##### Other Changes

-   Upgrade Volar from `v2.2.0` to `v2.2.2`.
- fix(language-server): pass correct languageId when creating virtual
code
([https://github.com/volarjs/volar.js/issues/173](https://redirect.github.com/volarjs/volar.js/issues/173))
- fix(typescript): additional completion not working in plugin
([#&#8203;4323](https://redirect.github.com/vuejs/language-tools/issues/4323))
-   Upgrade Volar services from `v0.0.42` to `v0.0.44`.
- feat(typescript): code action edits respect editor formatting settings
([https://github.com/volarjs/services/issues/30](https://redirect.github.com/volarjs/services/issues/30))
- fix(typescript): not being able to jump to shims module definition
- fix(typescript): `allowTextChangesInNewFiles` never true for embedded
documents
- perf(typescript): check `command` resolve capability only for specific
refactors
([https://github.com/volarjs/services/issues/94](https://redirect.github.com/volarjs/services/issues/94))
- The following extensions have been added to Hybrid Mode’s
compatibility whitelist:
    -   `mxsdev.typescript-explorer`
- Deprecated `vueCompilerOptions.experimentalUseElementAccessInTemplate`
- Specify `packageManager`
([#&#8203;4358](https://redirect.github.com/vuejs/language-tools/issues/4358))
- Thanks [@&#8203;so1ve](https://redirect.github.com/so1ve)
- **docs:** emoved possibly redundant duplicate reference
([#&#8203;4348](https://redirect.github.com/vuejs/language-tools/issues/4348))
- Thanks [@&#8203;artshade](https://redirect.github.com/artshade)
- **language-service:** temporarily remove references codeLens
([#&#8203;4364](https://redirect.github.com/vuejs/language-tools/issues/4364))
-   **vscode:** auto enabling hybrid mode allows

###
[`v2.0.16`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2016-202451)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.15...v2.0.16)

##### Bug Fixes

- **language-core:** virtual document language ID is not updated when
changing SFC style block lang
- **language-core:** correct logic for `defineSlots` destructuring
([#&#8203;4326](https://redirect.github.com/vuejs/language-tools/issues/4326))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **language-core:** ObjectDirective does not work with `defineSlots`
([#&#8203;4327](https://redirect.github.com/vuejs/language-tools/issues/4327))
- **language-service:** emmet not working in postcss style block
([https://github.com/volarjs/volar.js/issues/169](https://redirect.github.com/volarjs/volar.js/issues/169))

##### Other Changes

- Upgrade to [Volar
2.2](https://redirect.github.com/volarjs/volar.js/releases/tag/v2.2.0)
- **language-core:** export `VueEmbeddedCode`
([#&#8203;4265](https://redirect.github.com/vuejs/language-tools/issues/4265))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/zhiyuanzmj)
- **typescript-plugin:** expose `FileRegistry` to `project.program`
([#&#8203;3963](https://redirect.github.com/vuejs/language-tools/issues/3963))
- Thanks [@&#8203;zcf0508](https://redirect.github.com/zcf0508)
- **vscode:** remove outdated formatters section
([#&#8203;4243](https://redirect.github.com/vuejs/language-tools/issues/4243))
- Thanks [@&#8203;BBboy01](https://redirect.github.com/BBboy01)

###
[`v2.0.15`](https://redirect.github.com/vuejs/language-tools/blob/HEAD/CHANGELOG.md#2015-2024430)

[Compare
Source](https://redirect.github.com/vuejs/language-tools/compare/v2.0.14...v2.0.15)

##### Features

- Redesign additional extensions, VitePress, PetiteVue support
([#&#8203;4321](https://redirect.github.com/vuejs/language-tools/issues/4321))
- Fix custom file extensions not working in Hybrid Mode
([#&#8203;4251](https://redirect.github.com/vuejs/language-tools/issues/4251))
- **vscode:** prompt when Hybrid Mode is explicitly enabled but known
incompatible extensions are installed
- **language-core:** use internal options for directly exposing user
props/emits types
([vuejs/core#10801](https://redirect.github.com/vuejs/core/pull/10801))
- **language-core:** support defineSlots destructuring
([#&#8203;4312](https://redirect.github.com/vuejs/language-tools/issues/4312))
- Thanks [@&#8203;zhiyuanzmj](https://redirect.github.com/

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-21 07:30:32 -05:00
renovate[bot]
f9f47cbab3 chore(deps): update dependency @rollup/plugin-node-resolve to v16 (#1162)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-20 19:50:41 -05:00
github-actions[bot]
d5e607797a chore: release main 4.1.2 (#1174) 2025-02-20 19:29:50 -05:00
Eli Bosley
616be93be9 fix: finalize workflow fixes 2025-02-20 19:26:21 -05:00
Eli Bosley
050f7f74ef Revert "chore: release main 4.1.2 (#1173)"
This reverts commit 0f131d4a95.
2025-02-20 19:26:01 -05:00
github-actions[bot]
0f131d4a95 chore: release main 4.1.2 (#1173) 2025-02-20 19:16:54 -05:00
Eli Bosley
aea8f1abd6 chore: fix changelog naming 2025-02-20 19:12:56 -05:00
Eli Bosley
b74ec6b5c6 chore: revert changelog again 2025-02-20 19:12:39 -05:00
Eli Bosley
2283e064d5 fix: upload to release by name 2025-02-20 19:11:09 -05:00
github-actions[bot]
64b20c9b95 chore: release main 4.1.2 (#1170) 2025-02-20 19:04:54 -05:00
Eli Bosley
efa7db3db6 fix: revert changelog 2025-02-20 19:00:27 -05:00
Eli Bosley
db134f091d fix: release-please upload single draft 2025-02-20 18:07:05 -05:00
github-actions[bot]
3ccf7d6e02 chore: release main (#1157)
🤖 I have created a release *beep* *boop*
---


<details><summary>4.1.2</summary>

## 4.1.2 (2025-02-20)


### Features

* add api key creation logic
([a1351b0](a1351b0469))
* add category.json
([e784391](e784391ac3))
* add command to package.json scripts
([3348a47](3348a47470))
* add csrf support to api & web components
([#999](https://github.com/unraid/api/issues/999))
([f0f5a30](f0f5a3057a))
* add description flag, remove console log, and update readme
([85cdb8f](85cdb8f525))
* add developer docs
([#1128](https://github.com/unraid/api/issues/1128))
([75474bd](75474bde47))
* add line about recommendation for sso command
([b63720a](b63720a6f2))
* add log rotation
([b1d9ad7](b1d9ad7ef1))
* add logging around fixture downloads
([fa16dcd](fa16dcd801))
* add logrotate cron again
([097415f](097415f6b8))
* add patch for auth-request.php
([b1a1779](b1a1779a8b))
* add user with cli
([cb59090](cb59090698))
* address log level feedback
([bb95795](bb95795a31))
* allow csrf passing through querystring
([3a8c9b1](3a8c9b13ee))
* allow deletion and creation of files with patches
([1392bde](1392bdeecb))
* always ensureDirectory for keys exists
([8b93bce](8b93bcea08))
* **api:** graphql sandbox on unraid servers
([#1047](https://github.com/unraid/api/issues/1047))
([5dd36d1](5dd36d1836))
* **api:** omit tz from sys time date format by default
([c36082e](c36082e82b))
* **api:** rm 2fa & t2fa from myservers config type
([#996](https://github.com/unraid/api/issues/996))
([f45719f](f45719fa6b))
* async disk mapping
([f22b262](f22b262830))
* async hypervisor and FIXED vm listing
([cdfb3c7](cdfb3c772b))
* auto-docusaurus-prs
([#1127](https://github.com/unraid/api/issues/1127))
([8a57576](8a575765a9))
* begin building plugin with node instead of bash
([#1120](https://github.com/unraid/api/issues/1120))
([4f5c367](4f5c367fdf))
* better patch application
([445f3b5](445f3b50b1))
* better pm2 calls, log lines
([33dd90a](33dd90af04))
* cleanup config entries
([c2e29df](c2e29dfb5f))
* cleanup disclaimer and command to add users
([3867dfa](3867dfacb2))
* cli Commands
([7fa849d](7fa849d2a0))
* CLI options for adding and deleting users
([bc04129](bc04129342))
* coderabbit suggestion
([3cc3f27](3cc3f27dae))
* configure PM2 on startup
([b73623e](b73623e72a))
* convert to pnpm monorepo
([#1137](https://github.com/unraid/api/issues/1137))
([ad6b658](ad6b6589db))
* create key cli command logic and add to index command list
([796cb09](796cb09c61))
* csv validation
([89d756e](89d756ef4e))
* default value for option
([632775e](632775e435))
* disable casbin logging
([aa1ef1b](aa1ef1bd4c))
* docstrings
([935318d](935318dda6))
* dont pass entire server state for privacy
([b969f3a](b969f3a9ab))
* download fixtures from the web
([05f661e](05f661e0e5))
* enable sandbox in dev mode
([21208bf](21208bfcf6))
* enable sandbox with developer command
([9c5e418](9c5e418872))
* enable token sign in with comma separated subs in myservers.config
([e9bd18a](e9bd18a409))
* exit cli after running command
([5ca225f](5ca225fe7a))
* extensive file checking
([4d45caf](4d45caf258))
* fallback to local
([36d8399](36d8399045))
* faster failure logic
([1f5c642](1f5c6424c7))
* fix docusaurus build + update snapshot
([7a19c93](7a19c9331f))
* force linting on build
([ad32cff](ad32cffd75))
* generate key one time
([1435155](143515560c))
* glob for files
([0652114](065211413d))
* hypervisor async imports
([f1e5383](f1e53831c8))
* ignore generated code
([0e9c91a](0e9c91af86))
* improve packing
([3c61a61](3c61a615f0))
* initial patcher implementation using the diff tool
([805bc5b](805bc5bfc0))
* initial setup of permissions on keys
([#1068](https://github.com/unraid/api/issues/1068))
([a554bde](a554bde5c2))
* initial version of modification service
([bb37140](bb37140d40))
* inject after form
([e5d1146](e5d1146613))
* kill timeout extended
([0c6f44d](0c6f44da35))
* log size and only tar files
([a6f6706](a6f67060b4))
* logrotate test
([5b0971e](5b0971ea8d))
* manually install libvirt in build process to ensure it is included in
the final build
([cea11da](cea11daf15))
* more pm2 fixes
([4655d72](4655d72fbb))
* move fixtures into __test__ folder
([dfb006e](dfb006e696))
* myservers_fb keepalive location
([69441d8](69441d890e))
* only write config when a specific config update action occurs
([29ca582](29ca5829ff))
* properly read log level from environment
([8a374b5](8a374b5b27))
* public index
([8cbb3c4](8cbb3c4718))
* remove sso if disabled on Unraid-API start
([daf904b](daf904bc1b))
* remove sso user command
([f302924](f30292484d))
* remove sso user options
([75d7e08](75d7e08824))
* remove unused config sections
([03e336b](03e336b72f))
* remove unused fields
([2d3892d](2d3892deb8))
* remove unused vars
([6f9977e](6f9977eea0))
* rename api key resource back to api_key
([8827483](8827483699))
* rename modification file
([5d909a8](5d909a856b))
* reorder index
([a4b3f8c](a4b3f8c6c3))
* restart the API when an SSO user is added
([dae5738](dae57389c6))
* restoring sso error
([3042ffa](3042ffa37e))
* revert local api key value
([6bfd8a2](6bfd8a2687))
* rollback if patch exists before applying
([a12181a](a12181a5e0))
* secondary changes
([cbb42dc](cbb42dc85e))
* service tests for modifier service
([d6fa35c](d6fa35cdee))
* session issues
([8026ef5](8026ef53e8))
* shared call to createPatch
([073a515](073a51572a))
* simplify docs
([1e4a4f0](1e4a4f0745))
* style improvements
([a8211ce](a8211cef7d))
* swap to async exit hook
([c7d4e39](c7d4e39287))
* switch to nest-commander
([7ceac1b](7ceac1b184))
* try catch restart
([55100da](55100daed4))
* **ui:** webgui-compatible web component library
([#1075](https://github.com/unraid/api/issues/1075))
([61ee689](61ee689658))
* unnecessary comment
([f560df0](f560df0270))
* unraid single sign on with account app
([2b25537](2b25537e26))
* update packageManager field for pnpm
([eec9785](eec9785ba1))
* upgrade dependencies
([46c82ec](46c82ecae3))
* use execa for start and stop
([05e77a4](05e77a4bc6))
* use zod to parse config
([02c197f](02c197f244))
* validate token format in both PHP and CLI
([b9d9105](b9d9105e3e))
* **web:** add delete all notifications button to archive view in
notifications sidebar
([89eb841](89eb841b20))
* **web:** enhance notifications indicator in UPC
([#950](https://github.com/unraid/api/issues/950))
([0b469f5](0b469f5b3f))
* **web:** pull date format from display/date and time settings
([7c8e8a0](7c8e8a0e53))
* **web:** rm api-key validation from connect sign in
([#986](https://github.com/unraid/api/issues/986))
([939383e](939383e4ef))
* zod config no longer any
([6faef27](6faef27d7c))


### Bug Fixes

* allow concurrent testing with a shared patcher instance
([c007898](c00789865c))
* **api:** append time to formatted date when a custom date format is
selected
([b9cd8c4](b9cd8c426d))
* **api:** change log output location for diagnostic compatibility
([#1130](https://github.com/unraid/api/issues/1130))
([9bc8060](9bc8060a83))
* **api:** delay pm2 start until server has booted
([3c27b51](3c27b51ab8))
* **api:** exclude duplicates from legacy script in archive retrieval
([9c38fa6](9c38fa6a9c))
* **api:** improve defaults in PM2 service
([#1116](https://github.com/unraid/api/issues/1116))
([a21f39d](a21f39d617))
* **api:** logrotate modification & permissions
([#1145](https://github.com/unraid/api/issues/1145))
([b970fd9](b970fd9e6c))
* **api:** make cookie recognition during websocket connection more
([2a82ea4](2a82ea4765))
* **api:** pm2 start script & limit auto restarts
([#1040](https://github.com/unraid/api/issues/1040))
([b53bb3f](b53bb3f197))
* **api:** retry mothership connection up to 3x before logout
([#1069](https://github.com/unraid/api/issues/1069))
([c163998](c163998175))
* **api:** sanitize incoming user session id's
([3b2d61e](3b2d61efc2))
* **api:** slow init of unraid-api cli
([#1022](https://github.com/unraid/api/issues/1022))
([f37dda1](f37dda16c2))
* **api:** update deploy-dev script to dist instead of src
([2327b00](2327b00d30))
* **api:** validate cookie session data
([fe98295](fe98295496))
* apply and rollback error handling
([76711be](76711be3e8))
* authorization type error
([#987](https://github.com/unraid/api/issues/987))
([5f0446f](5f0446fa79))
* back to default configs
([a1a046f](a1a046f900))
* backup restore formatting
([0cfdd5a](0cfdd5a61b))
* basic test fixed
([bddda82](bddda823e1))
* better js file handling
([bb92c3f](bb92c3f9f8))
* better loader functionality and error handling
([a502134](a502134c0a))
* better logging when error
([972a19b](972a19be04))
* cleaner logs for starting API
([eb1c62d](eb1c62d3d9))
* clearer error messaging
([f8393ee](f8393eeebe))
* code review feedback
([e7b689c](e7b689c546))
* completion script registration
([e338eb9](e338eb9788))
* connect key role
([eff6c32](eff6c32ccd))
* create api key for connect on startup
([69cd92f](69cd92f974))
* create api key permissions
([14fe30e](14fe30e925))
* create connect key
([d88b1e9](d88b1e9660))
* cwd on ecosystem.config.json
([3fc4148](3fc41480a2))
* default overwrite false test
([62824ba](62824ba76f))
* delete .original files
([547ae18](547ae180dd))
* deprecated version warning
([a892a3c](a892a3ce35))
* **deps:** update all non-major dependencies
([#1158](https://github.com/unraid/api/issues/1158))
([48df88f](48df88f5c1))
* **deps:** update apollo graphql packages
([1f9e282](1f9e282880))
* **deps:** update dependency @apollo/client to v3.12.6
([91a9949](91a9949a5c))
* **deps:** update dependency @apollo/client to v3.12.9
([5b14be6](5b14be6b0f))
* **deps:** update dependency @graphql-tools/load-files to v7.0.1
([5f597f9](5f597f9d4c))
* **deps:** update dependency @nestjs/schedule to v4.1.2
([806bd63](806bd633ac))
* **deps:** update dependency chokidar to v4.0.3
([74b3e29](74b3e29c74))
* **deps:** update dependency dockerode to v4
([#830](https://github.com/unraid/api/issues/830))
([c311a89](c311a89aee))
* **deps:** update dependency dotenv to v16.4.7
([b32f84b](b32f84b105))
* **deps:** update dependency execa to v9.5.2
([6c54fa1](6c54fa14b1))
* **deps:** update dependency express to v4.21.2
([a947ff1](a947ff14fa))
* **deps:** update dependency got to v14.4.5
([71e2b70](71e2b70678))
* **deps:** update dependency graphql-ws to v5.16.2
([4daa54c](4daa54cfb5))
* **deps:** update dependency ini to v4.1.3
([c817cc4](c817cc4b7e))
* **deps:** update dependency node-window-polyfill to v1.0.4
([61ec04c](61ec04cb87))
* **deps:** update dependency openid-client to v6.1.7
([7ef3729](7ef3729769))
* **deps:** update dependency p-retry to v6.2.1
([46a368e](46a368e1b5))
* **deps:** update dependency pm2 to v5.4.3
([e366cad](e366cad0a4))
* **deps:** update dependency uuid to v11.0.5
([0331e24](0331e24a74))
* **deps:** update graphql-tools monorepo
([344b023](344b023503))
* **deps:** update graphqlcodegenerator monorepo
([2bc9af2](2bc9af2578))
* **deps:** update graphqlcodegenerator monorepo
([8675653](8675653e4e))
* **deps:** update nest monorepo to v10.4.15
([2b597f9](2b597f9f02))
* **deps:** update nest-graphql monorepo to v12.2.2
([bd31e09](bd31e09bcf))
* do not process.exit on restart or stop command
([e16763b](e16763b49b))
* don't check code for execa
([f62f0d3](f62f0d3a0f))
* dont remove login file without a backup presetn
([1854aa9](1854aa9f28))
* ensure directory exists before making connect key
([a6cd74d](a6cd74dc5c))
* excess spacing in api-key.service
([286ffc5](286ffc54e5))
* extra log line
([b56b215](b56b2157fa))
* extra spacing in config.ts
([84f4f67](84f4f67ce1))
* file modification service fixes
([e4ebfc8](e4ebfc8a13))
* find by key, not ID
([124fb61](124fb610b1))
* fix libvirt bindings
([#1167](https://github.com/unraid/api/issues/1167))
([024719f](024719fa7a))
* forced restarting on commands
([abd8e09](abd8e09908))
* format authrequest mod as other files
([8b75d6c](8b75d6cc99))
* initial feedback about report addressed
([060a199](060a1992c4))
* install as-integrations/fastify
([2fce2e9](2fce2e9a28))
* length
([8481c9a](8481c9a9fb))
* lint
([133c8e0](133c8e0d70))
* lint
([42610d2](42610d290d))
* lint
([b1a993a](b1a993a8e9))
* lint
([6beafbe](6beafbe8ed))
* lint
([d38f3ef](d38f3ef49b))
* logrotate error
([7a009b6](7a009b6be7))
* mock ensureDirSync
([14abc13](14abc13cc8))
* more generic test
([ddfc36f](ddfc36fd73))
* only instantiate service one time
([b1b93e2](b1b93e2783))
* only toast unread notifications, not archived ones
([8251c6f](8251c6f2d3))
* padding and glob function issues
([ae753d6](ae753d6bea))
* patch-utils unused
([1d5c2c8](1d5c2c8338))
* paths now correct, better download logic
([9e12407](9e12407565))
* properly log error with template string
([2ad612c](2ad612cef8))
* pull token from query not params
([1756cc5](1756cc5b4b))
* remove devDependencies from output package json
([d847815](d8478152e9))
* remove isNaN in favor of number.isNaN
([e33c758](e33c7583f7))
* remove memory key generation
([e58410b](e58410bd57))
* remove uneeded env variable
([c8da8fe](c8da8fe314))
* remove unused constructor
([ce92cb0](ce92cb06b7))
* remove usage of Role.UPC
([ceac626](ceac6269b3))
* report issues + pm2 issues
([4b3d6a7](4b3d6a7ba3))
* reset config to be closer to default
([d844903](d844903d78))
* resource busy when removing all subdirectories
([7b3834c](7b3834ca1f))
* restart command elegant
([b924954](b9249544fc))
* revert dockerode upgrade
([#1140](https://github.com/unraid/api/issues/1140))
([2b163b3](2b163b361a))
* revert myservers.cfg
([7e5dd07](7e5dd07d4a))
* sandbox defaults in dev mode wrong
([d26ddef](d26ddef33e))
* sequential test execution for generic-modification
([9d1442b](9d1442b2ee))
* shell path to unraid-api
([44d3d93](44d3d939a7))
* simplify api setup index
([5f29e6d](5f29e6d5e7))
* simplify upcoming features
([608151d](608151d84c))
* staging build issues
([63fcde8](63fcde8243))
* start command simplification
([27049d9](27049d9d91))
* stop command exits
([58f65ea](58f65eabba))
* swap to placeholder key
([39612cd](39612cd978))
* test issues
([4d8f2dd](4d8f2ddac6))
* test simplification to ensure no redownloads
([5347d54](5347d54b11))
* tests
([ed18945](ed18945088))
* tests and validate token clears screen
([6c46f94](6c46f9413f))
* type for generic test
([0163acb](0163acb7f3))
* unit test issues
([74b9fd0](74b9fd0159))
* unit tests updated
([0ab40fe](0ab40fefda))
* unneeded await on api-key service
([923e929](923e929878))
* unused imports
([0cb0fc9](0cb0fc9881))
* update tests
([b1ac0f9](b1ac0f9c83))
* use an enum and defaults for sandbox value
([2108ed0](2108ed0ecd))
* use batchProcess
([3c357e7](3c357e7e95))
* use cwd when running application
([e27776d](e27776df3d))
* use placeholder in test API key
([5d72b5a](5d72b5a970))
* watch all events to load keys
([ff63535](ff63535b00))
* **web:** name of toaster component
([93980f9](93980f929d))


### Miscellaneous Chores

* release 4.1.2
([2323ee6](2323ee6838))
</details>

<details><summary>4.1.2</summary>

## 4.1.2 (2025-02-20)


### Features

* add csrf support to api & web components
([#999](https://github.com/unraid/api/issues/999))
([f0f5a30](f0f5a3057a))
* allow csrf passing through querystring
([3a8c9b1](3a8c9b13ee))
* automatic session setup for dev
([e885936](e88593620b))
* back to callbackUrl
([428ad15](428ad15ec7))
* begin fixing dark mode in the webcomponents
([2443561](24435613f8))
* begin nuking alpha beta gamma
([cb91fbb](cb91fbb054))
* convert to pnpm monorepo
([#1137](https://github.com/unraid/api/issues/1137))
([ad6b658](ad6b6589db))
* delete unused imports
([0d6a003](0d6a0035aa))
* disable button on submit
([0da77d7](0da77d7119))
* dont pass entire server state for privacy
([b969f3a](b969f3a9ab))
* eliminate all alpha beta gamma variable usage
([4eda099](4eda0991d6))
* error state outside of button
([a1cf441](a1cf44162a))
* hide sign in from the dropdown text
([ea6ae83](ea6ae83919))
* lots of progress on colors
([c6547a5](c6547a51fc))
* move ssoenabled to a boolean flag rather than ids
([6f5edb2](6f5edb2406))
* move variable declarations to theme.ts
([00b8ffe](00b8ffe87d))
* nuxt config simplification and formatting
([2903542](29035429bd))
* or button on sign in page
([11ff890](11ff890bcc))
* remove apiKey from server
([895d585](895d5857f9))
* remove sso if disabled on Unraid-API start
([daf904b](daf904bc1b))
* responsive notifications
([cead975](cead97560c))
* set background color on webcomponents
([7ef3286](7ef3286191))
* sidebar notification count
([a4e2a77](a4e2a77410))
* sso button token exchange
([3abf20b](3abf20b347))
* sso testing page and form disable on submit
([09f7415](09f741557b))
* state using crypto
([3734730](3734730bf7))
* style improvements
([a8211ce](a8211cef7d))
* **ui:** webgui-compatible web component library
([#1075](https://github.com/unraid/api/issues/1075))
([61ee689](61ee689658))
* unraid single sign on with account app
([2b25537](2b25537e26))
* unraid ui component library
([#976](https://github.com/unraid/api/issues/976))
([91de6e6](91de6e6c1e))
* update based on review feedback
([16f00a0](16f00a0d8c))
* update packageManager field for pnpm
([eec9785](eec9785ba1))
* use state passing to validate requests
([bd58490](bd584902e0))
* use text-secondary-foreground instead of gray
([7828ef2](7828ef2648))
* viewport watch refactor
([9d2405b](9d2405bd21))
* warning on missing fields
([c1fe95f](c1fe95fcb6))
* **web:** activation modal steps, updated copy
([#1079](https://github.com/unraid/api/issues/1079))
([d8a5b17](d8a5b1711a))
* **web:** add an 'all' option to notification filter
([939d7a3](939d7a304d))
* **web:** add confirmation before archiving or deleting all
notifications
([4c663dc](4c663dc69c))
* **web:** add count labels to notification tabs
([78ec466](78ec4663cc))
* **web:** add delete all notifications button to archive view in
notifications sidebar
([89eb841](89eb841b20))
* **web:** add link to settings in notification sidebar
([7296195](7296195495))
* **web:** add loading and error states to notification sidebar
([060fb91](060fb91546))
* **web:** clear notifications indicator after opening sidebar
([be7135e](be7135efdd))
* **web:** enhance notifications indicator in UPC
([#950](https://github.com/unraid/api/issues/950))
([0b469f5](0b469f5b3f))
* **web:** improve notification count syncing
([#1148](https://github.com/unraid/api/issues/1148))
([7588e0e](7588e0e3cf))
* **web:** move notification indicator icons to top-right of bell icon
([99704a9](99704a9dbb))
* **web:** open official release notes via header os version
([7dcf947](7dcf947527))
* **web:** pull date format from display/date and time settings
([7c8e8a0](7c8e8a0e53))
* **web:** remove notification indicator pulse
([bc4708f](bc4708f405))
* **web:** support markdown in notification messages
([abcaa5a](abcaa5aedb))
* **web:** use Markdown helper class to interact with markdown
([2f4ff21](2f4ff21986))


### Bug Fixes

* 12 hour timestamp logic corrected
([6cbb9c0](6cbb9c07e4))
* **api:** make cookie recognition during websocket connection more
([2a82ea4](2a82ea4765))
* authorization type error
([#987](https://github.com/unraid/api/issues/987))
([5f0446f](5f0446fa79))
* check width before changing viewport
([e2a1f27](e2a1f27b22))
* connect breaks default css of header
([#1155](https://github.com/unraid/api/issues/1155))
([fb24723](fb2472399a))
* dark theme as array
([77558a5](77558a5cd9))
* **deps:** update all non-major dependencies
([#1158](https://github.com/unraid/api/issues/1158))
([48df88f](48df88f5c1))
* **deps:** update apollo graphql packages
([1f9e282](1f9e282880))
* **deps:** update dependency @apollo/client to v3.12.6
([c0d3cf5](c0d3cf5782))
* **deps:** update dependency @apollo/client to v3.12.6
([91a9949](91a9949a5c))
* **deps:** update dependency @apollo/client to v3.12.9
([5b14be6](5b14be6b0f))
* **deps:** update dependency @floating-ui/dom to v1.6.13
([64d3765](64d3765a9a))
* **deps:** update dependency @floating-ui/dom to v1.6.13
([5dc1375](5dc13755df))
* **deps:** update dependency @floating-ui/vue to v1.1.6
([6cb28d5](6cb28d5f8f))
* **deps:** update dependency @floating-ui/vue to v1.1.6
([e5e1c43](e5e1c43bb3))
* **deps:** update dependency focus-trap to v7.6.4
([8475204](84752043e5))
* **deps:** update dependency focus-trap to v7.6.4
([5dfd6d5](5dfd6d5ded))
* **deps:** update dependency graphql-ws to v5.16.2
([c112f19](c112f19c95))
* **deps:** update dependency graphql-ws to v5.16.2
([4daa54c](4daa54cfb5))
* **deps:** update dependency radix-vue to v1.9.12
([83344e0](83344e05c1))
* **deps:** update dependency radix-vue to v1.9.13
([c180728](c180728696))
* **deps:** update graphqlcodegenerator monorepo
([2bc9af2](2bc9af2578))
* dev mode
([aae38e3](aae38e3404))
* downgrade marked to fix changelog preview issue
([943c907](943c907d03))
* edit settings padding issue
([4e9ab64](4e9ab645e6))
* empty manifest and version alignment
([b07828d](b07828d655))
* further resolve sso sub ids issues
([b3551a1](b3551a1b69))
* improve typing and format lookup
([dfa27e2](dfa27e2c0d))
* integration of `unraid-ui` tailwind config in `web`
([#1074](https://github.com/unraid/api/issues/1074))
([3acc0dc](3acc0dc9c0))
* lowercase or
([29a8689](29a8689ad8))
* marked single input
([d28fb24](d28fb24d68))
* missing server type
([76cf6f3](76cf6f35dc))
* more color work
([9a869a4](9a869a49e3))
* oauth2 api prefix
([56cfa84](56cfa84794))
* only toast unread notifications, not archived ones
([8251c6f](8251c6f2d3))
* padding and glob function issues
([ae753d6](ae753d6bea))
* pass token to password field
([9279931](92799312c9))
* re-add type-check
([0fa41f5](0fa41f5690))
* recreate package-lock to fix issues
([e1515a1](e1515a118a))
* remove console log
([d8f9f03](d8f9f03146))
* remove extra space
([000692c](000692ca50))
* remove line from or in button
([961bcc5](961bcc5db6))
* remove unused date-fns
([0c1b89f](0c1b89ff41))
* remove unused login entries
([942b143](942b143fba))
* render function fixed
([833a99f](833a99fe18))
* revert changes to indicator.vue
([11ce9e2](11ce9e2644))
* switch to useToggle
([5f8602b](5f8602b864))
* theme store now uses singular variables object
([116efe6](116efe6f72))
* thorw on invalid token body
([1e6fb7e](1e6fb7e3e3))
* type error on element render
([45327ce](45327ce01d))
* upc header text color
([d23a389](d23a38960b))
* use foreground text color for UPC
([d5f5921](d5f5921534))
* **web:** broken modals
([19208e5](19208e5fab))
* **web:** display error message in sidebar when api is offline
([#984](https://github.com/unraid/api/issues/984))
([4a29fc9](4a29fc9dda))
* **web:** edge case where archived notifications don't appear
([e40a9eb](e40a9ebecd))
* **web:** env var typo
([dffbfc2](dffbfc2dab))
* **web:** escaping html-encoded symbols like apostrophes in
translations ([#1002](https://github.com/unraid/api/issues/1002))
([4ee42a6](4ee42a6cf6))
* **web:** flash of disconnected api state on page load
([d0819b8](d0819b8d02))
* **web:** infinite scroll loop when there's only 1 page of
notifications
([eeb3289](eeb3289ae8))
* **web:** infinite trigger at bottom of infinite scroll
([001be86](001be86181))
* **web:** notification styles & alignment
([#968](https://github.com/unraid/api/issues/968))
([547b75a](547b75a55e))
* **web:** refetch notifications for sidebar when new notifications
arrive
([23b1f1a](23b1f1ac73))
* **web:** remove warn and error console log removal
([#1086](https://github.com/unraid/api/issues/1086))
([e7d15ee](e7d15ee5ec))
* **web:** replaces dompurify with isomorphic-dompurify to enable
server-side usage with same syntax
([2724485](2724485989))
* **web:** reset infinite scroll when notification filters change
([3fe13d5](3fe13d5235))
* **web:** sanitize changelog markup after parsing
([83e00c6](83e00c640a))
* **web:** stop opening notification sidebar to archive tab
([ecfc797](ecfc797e7d))
* **web:** theme header differences
([#1085](https://github.com/unraid/api/issues/1085))
([1ecac5e](1ecac5ee4e))
* **web:** track 'notification seen' state across tabs & page loads
([#1121](https://github.com/unraid/api/issues/1121))
([321703e](321703e907))
* **web:** update unread total immediately upon archiving
([#982](https://github.com/unraid/api/issues/982))
([29d9371](29d9371cc3))


### Miscellaneous Chores

* release 4.1.2
([2323ee6](2323ee6838))
</details>

<details><summary>4.1.2</summary>

## 4.1.2 (2025-02-20)


### Features

* add unraid-ui documentation
([#1142](https://github.com/unraid/api/issues/1142))
([6378047](6378047bc4))
* attempt to resolve performance issues with rm earlier in build …
([#1152](https://github.com/unraid/api/issues/1152))
([c74bdd8](c74bdd8890))
* convert to pnpm monorepo
([#1137](https://github.com/unraid/api/issues/1137))
([ad6b658](ad6b6589db))
* style improvements
([a8211ce](a8211cef7d))
* **ui:** webgui-compatible web component library
([#1075](https://github.com/unraid/api/issues/1075))
([61ee689](61ee689658))
* unraid ui component library
([#976](https://github.com/unraid/api/issues/976))
([91de6e6](91de6e6c1e))
* update packageManager field for pnpm
([eec9785](eec9785ba1))


### Bug Fixes

* **deps:** update all non-major dependencies
([#1158](https://github.com/unraid/api/issues/1158))
([48df88f](48df88f5c1))
* **deps:** update dependency radix-vue to v1.9.12
([83344e0](83344e05c1))
* **deps:** update dependency radix-vue to v1.9.13
([c180728](c180728696))
* empty manifest and version alignment
([b07828d](b07828d655))
* integration of `unraid-ui` tailwind config in `web`
([#1074](https://github.com/unraid/api/issues/1074))
([3acc0dc](3acc0dc9c0))
* storybook resolution issue
([#1153](https://github.com/unraid/api/issues/1153))
([5a3e8df](5a3e8df003))


### Miscellaneous Chores

* release 4.1.2
([2323ee6](2323ee6838))
</details>

<details><summary>4.1.2</summary>

## 4.1.2 (2025-02-20)


### Features

* add validation step to ensure that variables are set
([ddb8772](ddb8772692))
* always start the API and run npm link from script path
([bb6baf9](bb6baf9bf4))
* **api:** rm 2fa & t2fa from myservers config type
([#996](https://github.com/unraid/api/issues/996))
([f45719f](f45719fa6b))
* array iteration for restoring files
([349145b](349145ba53))
* attempt to resolve performance issues with rm earlier in build …
([#1152](https://github.com/unraid/api/issues/1152))
([c74bdd8](c74bdd8890))
* attempt to start unraid-api with background task
([73a1249](73a12496d5))
* begin building plugin with node instead of bash
([#1120](https://github.com/unraid/api/issues/1120))
([4f5c367](4f5c367fdf))
* cleanup disclaimer and command to add users
([3867dfa](3867dfacb2))
* convert to pnpm monorepo
([#1137](https://github.com/unraid/api/issues/1137))
([ad6b658](ad6b6589db))
* copy only needed files for nodejs
([cf08627](cf08627725))
* do not move upgradepkg
([c12d8da](c12d8dae4e))
* dont pass entire server state for privacy
([b969f3a](b969f3a9ab))
* download nodejs and install on legacy OS versions
([b1a2ba7](b1a2ba78cc))
* error when nodejs download fails
([af1994c](af1994cb62))
* extract node to usr/local/
([9a0d63d](9a0d63d4ee))
* fix missing flash line
([5f1a61d](5f1a61d4aa))
* fix pm2 setup and add link command
([caf797c](caf797cf4a))
* move ssoenabled to a boolean flag rather than ids
([6f5edb2](6f5edb2406))
* move variable declarations to theme.ts
([00b8ffe](00b8ffe87d))
* name package with PR number
([cf72c8b](cf72c8b359))
* nodejs issues with version 2
([106b2e4](106b2e42c0))
* **plugin:** rm Date & Time format settings from Notification Settings
([acba0b0](acba0b0365))
* remove nghttp3 and only bundle nodejs
([bb555f8](bb555f8296))
* separate install process
([9bbab0f](9bbab0f86c))
* sso login boolean
([81f051e](81f051e02c))
* track node version in slackware
([9d2796f](9d2796f2c9))
* **ui:** webgui-compatible web component library
([#1075](https://github.com/unraid/api/issues/1075))
([61ee689](61ee689658))
* unraid single sign on with account app
([2b25537](2b25537e26))
* update packageManager field for pnpm
([eec9785](eec9785ba1))
* Update
plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/state.php
([336478c](336478c2e0))
* upload files directly to cloudflare
([84b234c](84b234c9cf))
* use plugin file for install and uninstall
([bbf2807](bbf28075c6))
* validate entries correctly
([a39da15](a39da15be4))
* **web:** activation modal steps, updated copy
([#1079](https://github.com/unraid/api/issues/1079))
([d8a5b17](d8a5b1711a))
* **web:** rm old notification bell upon plugin installation
([#979](https://github.com/unraid/api/issues/979))
([478254e](478254e134))


### Bug Fixes

* add another missing symlink
([477c113](477c113ce1))
* add error check to nodejs
([e844304](e84430471d))
* attempt to restore upgradepkg if install failed
([504283f](504283f227))
* capitalize name
([902c76c](902c76c759))
* cleanup commands
([ef82ec5](ef82ec5af5))
* delete unused line
([3e8c101](3e8c101edd))
* delete upgradepkg
([deb42f6](deb42f6a81))
* dnserr on new line
([9bfc04c](9bfc04c2a5))
* empty manifest and version alignment
([b07828d](b07828d655))
* formatting issue
([0042f14](0042f14ab3))
* further resolve sso sub ids issues
([b3551a1](b3551a1b69))
* install syntax error
([a355a64](a355a64136))
* more verbose logging for node install to find issues
([c3f4cf5](c3f4cf53c1))
* node_txz naming
([5e50f24](5e50f24d70))
* pass ssoSubIds only
([76a9ae9](76a9ae9386))
* PHP Warning in state.php
([#1126](https://github.com/unraid/api/issues/1126))
([59d6c1b](59d6c1b678))
* pkg_build
([2d60045](2d60045784))
* proper file replacements
([787f8b9](787f8b9bf5))
* restore upgradepkg before install
([8f58145](8f5814589e))
* strip components from tar line
([bad7f71](bad7f71fea))
* upgradepkg
([6962cdd](6962cdd214))
* used TGZ instead of TXZ for nghttp3
([d7bab9f](d7bab9f443))
* variables passed properly
([61ba324](61ba324ca0))


### Miscellaneous Chores

* release 4.1.2
([2323ee6](2323ee6838))
</details>

---
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-02-20 17:58:42 -05:00
Eli Bosley
024719fa7a fix: fix libvirt bindings (#1167)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Upgraded the `@unraid/libvirt` library dependency to version `^1.1.3`,
which may offer improved performance, stability, and bug fixes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-20 17:54:13 -05:00
renovate[bot]
48df88f5c1 fix(deps): update all non-major dependencies (#1158)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@apollo/client](https://www.apollographql.com/docs/react/)
([source](https://redirect.github.com/apollographql/apollo-client)) |
[`3.12.11` ->
`3.13.1`](https://renovatebot.com/diffs/npm/@apollo%2fclient/3.12.11/3.13.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@apollo%2fclient/3.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@apollo%2fclient/3.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@apollo%2fclient/3.12.11/3.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@apollo%2fclient/3.12.11/3.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-codegen/client-preset](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/presets/client))
| [`4.6.2` ->
`4.6.3`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fclient-preset/4.6.2/4.6.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2fclient-preset/4.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2fclient-preset/4.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2fclient-preset/4.6.2/4.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2fclient-preset/4.6.2/4.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-codegen/typed-document-node](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/typed-document-node))
| [`5.0.13` ->
`5.0.14`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftyped-document-node/5.0.13/5.0.14)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftyped-document-node/5.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2ftyped-document-node/5.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2ftyped-document-node/5.0.13/5.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftyped-document-node/5.0.13/5.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-codegen/typescript](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/typescript))
| [`4.1.3` ->
`4.1.4`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript/4.1.3/4.1.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript/4.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2ftypescript/4.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2ftypescript/4.1.3/4.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript/4.1.3/4.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@graphql-codegen/typescript-operations](https://redirect.github.com/dotansimha/graphql-code-generator)
([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/operations))
| [`4.4.1` ->
`4.5.0`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-operations/4.4.1/4.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript-operations/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2ftypescript-operations/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2ftypescript-operations/4.4.1/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript-operations/4.4.1/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@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.4.2` ->
`4.4.3`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-resolvers/4.4.2/4.4.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript-resolvers/4.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2ftypescript-resolvers/4.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2ftypescript-resolvers/4.4.2/4.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript-resolvers/4.4.2/4.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@pinia/nuxt](https://redirect.github.com/vuejs/pinia/tree/v3/packages/nuxt#readme)
([source](https://redirect.github.com/vuejs/pinia)) | [`^0.9.0` ->
`^0.10.0`](https://renovatebot.com/diffs/npm/@pinia%2fnuxt/0.9.0/0.10.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@pinia%2fnuxt/0.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@pinia%2fnuxt/0.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@pinia%2fnuxt/0.9.0/0.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@pinia%2fnuxt/0.9.0/0.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@rollup/rollup-linux-x64-gnu](https://rollupjs.org/)
([source](https://redirect.github.com/rollup/rollup)) | [`4.34.6` ->
`4.34.8`](https://renovatebot.com/diffs/npm/@rollup%2frollup-linux-x64-gnu/4.34.6/4.34.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@rollup%2frollup-linux-x64-gnu/4.34.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@rollup%2frollup-linux-x64-gnu/4.34.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@rollup%2frollup-linux-x64-gnu/4.34.6/4.34.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@rollup%2frollup-linux-x64-gnu/4.34.6/4.34.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@swc/core](https://swc.rs)
([source](https://redirect.github.com/swc-project/swc)) | [`1.10.16` ->
`1.10.18`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.10.16/1.10.18)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.10.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.10.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.10.16/1.10.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.10.16/1.10.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`22.13.2` ->
`22.13.4`](https://renovatebot.com/diffs/npm/@types%2fnode/22.13.2/22.13.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.13.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/22.13.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/22.13.2/22.13.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/22.13.2/22.13.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.17.18` ->
`20.17.19`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.18/20.17.19)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.17.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.17.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.17.18/20.17.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.17.18/20.17.19?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitest/coverage-v8](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-v8#readme)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8))
| [`3.0.5` ->
`3.0.6`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/3.0.5/3.0.6)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-v8/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-v8/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-v8/3.0.5/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-v8/3.0.5/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitest/ui](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/ui#readme)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui))
| [`3.0.5` ->
`3.0.6`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.0.5/3.0.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/3.0.5/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/3.0.5/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vueuse/components](https://redirect.github.com/vueuse/vueuse/tree/main/packages/components#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/components))
| [`12.5.0` ->
`12.7.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcomponents/12.5.0/12.7.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcomponents/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fcomponents/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fcomponents/12.5.0/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcomponents/12.5.0/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@vueuse/core](https://redirect.github.com/vueuse/vueuse)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core))
| [`12.5.0` ->
`12.7.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/12.5.0/12.7.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fcore/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fcore/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fcore/12.5.0/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fcore/12.5.0/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vueuse/integrations](https://redirect.github.com/vueuse/vueuse/tree/main/packages/integrations#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/integrations))
| [`12.5.0` ->
`12.7.0`](https://renovatebot.com/diffs/npm/@vueuse%2fintegrations/12.5.0/12.7.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fintegrations/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fintegrations/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fintegrations/12.5.0/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fintegrations/12.5.0/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vueuse/nuxt](https://redirect.github.com/vueuse/vueuse/tree/main/packages/nuxt#readme)
([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/nuxt))
| [`12.5.0` ->
`12.7.0`](https://renovatebot.com/diffs/npm/@vueuse%2fnuxt/12.5.0/12.7.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vueuse%2fnuxt/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vueuse%2fnuxt/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vueuse%2fnuxt/12.5.0/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vueuse%2fnuxt/12.5.0/12.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [convert](https://convert.js.org/)
([source](https://redirect.github.com/jonahsnider/convert)) | [`5.7.0`
-> `5.8.0`](https://renovatebot.com/diffs/npm/convert/5.7.0/5.8.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/convert/5.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/convert/5.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/convert/5.7.0/5.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/convert/5.7.0/5.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [cron](https://redirect.github.com/kelektiv/node-cron) | [`3.2.1` ->
`3.5.0`](https://renovatebot.com/diffs/npm/cron/3.2.1/3.5.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/cron/3.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/cron/3.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/cron/3.2.1/3.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cron/3.2.1/3.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[isomorphic-dompurify](https://redirect.github.com/kkomelin/isomorphic-dompurify)
| [`2.21.0` ->
`2.22.0`](https://renovatebot.com/diffs/npm/isomorphic-dompurify/2.21.0/2.22.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/isomorphic-dompurify/2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/isomorphic-dompurify/2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/isomorphic-dompurify/2.21.0/2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/isomorphic-dompurify/2.21.0/2.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [jose](https://redirect.github.com/panva/jose) | [`5.9.6` ->
`5.10.0`](https://renovatebot.com/diffs/npm/jose/5.9.6/5.10.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/jose/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jose/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jose/5.9.6/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jose/5.9.6/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [lucide-vue-next](https://lucide.dev)
([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next))
| [`^0.468.0` ->
`^0.475.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.468.0/0.475.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-vue-next/0.475.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-vue-next/0.475.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-vue-next/0.468.0/0.475.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-vue-next/0.468.0/0.475.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [postcss](https://postcss.org/)
([source](https://redirect.github.com/postcss/postcss)) | [`8.5.2` ->
`8.5.3`](https://renovatebot.com/diffs/npm/postcss/8.5.2/8.5.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/postcss/8.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/postcss/8.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/postcss/8.5.2/8.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/postcss/8.5.2/8.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [prettier](https://prettier.io)
([source](https://redirect.github.com/prettier/prettier)) | [`3.4.2` ->
`3.5.1`](https://renovatebot.com/diffs/npm/prettier/3.4.2/3.5.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/prettier/3.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/prettier/3.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/prettier/3.4.2/3.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/prettier/3.4.2/3.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [radix-vue](https://redirect.github.com/unovue/radix-vue) | [`1.9.14`
-> `1.9.16`](https://renovatebot.com/diffs/npm/radix-vue/1.9.14/1.9.16)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/radix-vue/1.9.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/radix-vue/1.9.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/radix-vue/1.9.14/1.9.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/radix-vue/1.9.14/1.9.16?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [shadcn-vue](https://redirect.github.com/unovue/shadcn-vue)
([source](https://redirect.github.com/unovue/shadcn-vue/tree/HEAD/packages/cli))
| [`0.11.3` ->
`0.11.4`](https://renovatebot.com/diffs/npm/shadcn-vue/0.11.3/0.11.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/shadcn-vue/0.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shadcn-vue/0.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shadcn-vue/0.11.3/0.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shadcn-vue/0.11.3/0.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [tsx](https://tsx.is)
([source](https://redirect.github.com/privatenumber/tsx)) | [`4.19.2` ->
`4.19.3`](https://renovatebot.com/diffs/npm/tsx/4.19.2/4.19.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/tsx/4.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tsx/4.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tsx/4.19.2/4.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tsx/4.19.2/4.19.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint)
([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint))
| [`8.24.0` ->
`8.24.1`](https://renovatebot.com/diffs/npm/typescript-eslint/8.24.0/8.24.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript-eslint/8.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript-eslint/8.24.0/8.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.24.0/8.24.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [uuid](https://redirect.github.com/uuidjs/uuid) | [`11.0.5` ->
`11.1.0`](https://renovatebot.com/diffs/npm/uuid/11.0.5/11.1.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/uuid/11.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/uuid/11.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/uuid/11.0.5/11.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/uuid/11.0.5/11.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://redirect.github.com/vitest-dev/vitest)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`3.0.5` ->
`3.0.6`](https://renovatebot.com/diffs/npm/vitest/3.0.5/3.0.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.0.5/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.5/3.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue-tsc](https://redirect.github.com/vuejs/language-tools)
([source](https://redirect.github.com/vuejs/language-tools/tree/HEAD/packages/tsc))
| [`2.2.0` ->
`2.2.2`](https://renovatebot.com/diffs/npm/vue-tsc/2.2.0/2.2.2) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue-tsc/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue-tsc/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue-tsc/2.2.0/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue-tsc/2.2.0/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>apollographql/apollo-client (@&#8203;apollo/client)</summary>

###
[`v3.13.1`](https://redirect.github.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#3131)

[Compare
Source](https://redirect.github.com/apollographql/apollo-client/compare/v3.13.0...v3.13.1)

##### Patch Changes

-
[#&#8203;12369](https://redirect.github.com/apollographql/apollo-client/pull/12369)
[`bdfc5b2`](bdfc5b2e38)
Thanks [@&#8203;phryneas](https://redirect.github.com/phryneas)! -
`ObervableQuery.refetch`: don't refetch with `cache-and-network`, swich
to `network-only` instead

-
[#&#8203;12375](https://redirect.github.com/apollographql/apollo-client/pull/12375)
[`d3f8f13`](d3f8f13071)
Thanks [@&#8203;jerelmiller](https://redirect.github.com/jerelmiller)! -
Export the `UseSuspenseFragmentOptions` type.

###
[`v3.13.0`](https://redirect.github.com/apollographql/apollo-client/blob/HEAD/CHANGELOG.md#3130)

[Compare
Source](https://redirect.github.com/apollographql/apollo-client/compare/v3.12.11...v3.13.0)

##### Minor Changes

-
[#&#8203;12066](https://redirect.github.com/apollographql/apollo-client/pull/12066)
[`c01da5d`](c01da5da63)
Thanks [@&#8203;jerelmiller](https://redirect.github.com/jerelmiller)! -
Adds a new `useSuspenseFragment` hook.

`useSuspenseFragment` suspends until `data` is complete. It is a drop-in
replacement for `useFragment` when you prefer to use Suspense to control
the loading state of a fragment. See the
[documentation](https://www.apollographql.com/docs/react/data/fragments#usesuspensefragment)
for more details.

-
[#&#8203;12174](https://redirect.github.com/apollographql/apollo-client/pull/12174)
[`ba5cc33`](ba5cc330f8)
Thanks [@&#8203;jerelmiller](https://redirect.github.com/jerelmiller)! -
Ensure errors thrown in the `onCompleted` callback from `useMutation`
don't call `onError`.

-
[#&#8203;12340](https://redirect.github.com/apollographql/apollo-client/pull/12340)
[`716d02e`](716d02ec9c)
Thanks [@&#8203;phryneas](https://redirect.github.com/phryneas)! -
Deprecate the `onCompleted` and `onError` callbacks of `useQuery` and
`useLazyQuery`.
For more context, please see the [related
issue](https://redirect.github.com/apollographql/apollo-client/issues/12352)
on GitHub.

-
[#&#8203;12276](https://redirect.github.com/apollographql/apollo-client/pull/12276)
[`670f112`](670f112a7d)
Thanks [@&#8203;Cellule](https://redirect.github.com/Cellule)! - Provide
a more type-safe option for the previous data value passed to
`observableQuery.updateQuery`. Using it could result in crashes at
runtime as this callback could be called with partial data even though
its type reported the value as a complete result.

The `updateQuery` callback function is now called with a new type-safe
`previousData` property and a new `complete` property in the 2nd
argument that determines whether `previousData` is a complete or partial
result.

As a result of this change, it is recommended to use the `previousData`
property passed to the 2nd argument of the callback rather than using
the previous data value from the first argument since that value is not
type-safe. The first argument is now deprecated and will be removed in a
future version of Apollo Client.

    ```ts
    observableQuery.updateQuery(
      (unsafePreviousData, { previousData, complete }) => {
        previousData;
        // ^? TData | DeepPartial<TData> | undefined

        if (complete) {
          previousData;
          // ^? TData
        } else {
          previousData;
          // ^? DeepPartial<TData> | undefined
        }
      }
    );
    ```

-
[#&#8203;12174](https://redirect.github.com/apollographql/apollo-client/pull/12174)
[`ba5cc33`](ba5cc330f8)
Thanks [@&#8203;jerelmiller](https://redirect.github.com/jerelmiller)! -
Reject the mutation promise if errors are thrown in the `onCompleted`
callback of `useMutation`.

##### Patch Changes

-
[#&#8203;12276](https://redirect.github.com/apollographql/apollo-client/pull/12276)
[`670f112`](670f112a7d)
Thanks [@&#8203;Cellule](https://redirect.github.com/Cellule)! - Fix the
return type of the `updateQuery` function to allow for `undefined`.
`updateQuery` had the ability to bail out of the update by returning a
falsey value, but the return type enforced a query value.

    ```ts
    observableQuery.updateQuery(
      (unsafePreviousData, { previousData, complete }) => {
        if (!complete) {
          // Bail out of the update by returning early
          return;
        }

        // ...
      }
    );
    ```

-
[#&#8203;12296](https://redirect.github.com/apollographql/apollo-client/pull/12296)
[`2422df2`](2422df202a)
Thanks [@&#8203;Cellule](https://redirect.github.com/Cellule)! -
Deprecate option `ignoreResults` in `useMutation`.
Once this option is removed, existing code still using it might see
increase in re-renders.
If you don't want to synchronize your component state with the mutation,
please use `useApolloClient` to get your ApolloClient instance and call
`client.mutate` directly.

-
[#&#8203;12338](https://redirect.github.com/apollographql/apollo-client/pull/12338)
[`67c16c9`](67c16c9389)
Thanks [@&#8203;phryneas](https://redirect.github.com/phryneas)! - In
case of a multipart response (e.g. with `@defer`), query deduplication
will
    now keep going until the final chunk has been received.

-
[#&#8203;12276](https://redirect.github.com/apollographql/apollo-client/pull/12276)
[`670f112`](670f112a7d)
Thanks [@&#8203;Cellule](https://redirect.github.com/Cellule)! - Fix the
type of the `variables` property passed as the 2nd argument to the
`subscribeToMore` callback. This was previously reported as the
`variables` type for the subscription itself, but is now properly typed
as the query `variables`.

</details>

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

###
[`v4.6.3`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/presets/client/CHANGELOG.md#463)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/client-preset@4.6.2...@graphql-codegen/client-preset@4.6.3)

##### Patch Changes

-
[#&#8203;10298](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10298)
[`3efc472`](3efc472b97)
Thanks [@&#8203;dotansimha](https://redirect.github.com/dotansimha)! -
Fix a bug where fragment spreads with `@client` directives is not being
removed from the generated persisted documents

- Updated dependencies
\[[`6d7c1d7`](6d7c1d7c0a)]:
-
[@&#8203;graphql-codegen/visitor-plugin-common](https://redirect.github.com/graphql-codegen/visitor-plugin-common)[@&#8203;5](https://redirect.github.com/5).7.0
-
[@&#8203;graphql-codegen/typescript-operations](https://redirect.github.com/graphql-codegen/typescript-operations)[@&#8203;4](https://redirect.github.com/4).5.0
-
[@&#8203;graphql-codegen/gql-tag-operations](https://redirect.github.com/graphql-codegen/gql-tag-operations)[@&#8203;4](https://redirect.github.com/4).0.15
-
[@&#8203;graphql-codegen/typed-document-node](https://redirect.github.com/graphql-codegen/typed-document-node)[@&#8203;5](https://redirect.github.com/5).0.14
-
[@&#8203;graphql-codegen/typescript](https://redirect.github.com/graphql-codegen/typescript)[@&#8203;4](https://redirect.github.com/4).1.4

</details>

<details>
<summary>dotansimha/graphql-code-generator
(@&#8203;graphql-codegen/typed-document-node)</summary>

###
[`v5.0.14`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/typescript/typed-document-node/CHANGELOG.md#5014)

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/typed-document-node@5.0.13...@graphql-codegen/typed-document-node@5.0.14)

##### Patch Changes

- Updated dependencies
\[[`6d7c1d7`](6d7c1d7c0a)]:
-
[@&#8203;graphql-codegen/visitor-plugin-common](https://redirect.github.com/graphql-codegen/visitor-plugin-common)[@&#8203;5](https://redirect.github.com/5).7.0

</details>

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

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

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

##### Patch Changes

- Updated dependencies
\[[`6d7c1d7`](6d7c1d7c0a)]:
-
[@&#8203;graphql-codegen/visitor-plugin-common](https://redirect.github.com/graphql-codegen/visitor-plugin-common)[@&#8203;5](https://redirect.github.com/5).7.0

</details>

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

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

[Compare
Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/typescript-operations@4.4.1...@graphql-codegen/typescript-operations@4.5.0)

##### Minor Changes

-
[#&#8203;10270](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10270)
[`6d7c1d7`](6d7c1d7c0a)
Thanks [@&#8203;adapap](https://redirect.github.com/adapap)! - feat:
implement `includeExternalFragments: boolean` option

##### Patch Changes

- Updated dependencies
\[[`6d7c1d7`](6d7c1d7c0a)]:
-
[@&#8203;graphql-codegen/visitor-plugin-common](https://redirect.github.com/graphql-codegen/visitor-plugin-common)[@&#8203;5](https://redirect.github.com/5).7.0
-
[@&#8203;graphql-codegen/typescript](https://redirect.github.com/graphql-codegen/typescript)[@&#8203;4](https://redirect.github.com/4).1.4

</details>

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

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

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

##### Patch Changes

- Updated dependencies
\[[`6d7c1d7`](6d7c1d7c0a)]:
-
[@&#8203;graphql-codegen/visitor-plugin-common](https://redirect.github.com/graphql-codegen/visitor-plugin-common)[@&#8203;5](https://redirect.github.com/5).7.0
-
[@&#8203;graphql-codegen/typescript](https://redirect.github.com/graphql-codegen/typescript)[@&#8203;4](https://redirect.github.com/4).1.4

</details>

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

###
[`v0.10.0`](https://redirect.github.com/vuejs/pinia/compare/@pinia/nuxt@0.9.0...@pinia/nuxt@0.10.0)

[Compare
Source](https://redirect.github.com/vuejs/pinia/compare/@pinia/nuxt@0.9.0...@pinia/nuxt@0.10.0)

</details>

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

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

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

*2025-02-17*

##### Bug Fixes

- Do not make assumptions about the value of nested paths in logical
expressions if the expression cannot be simplified
([#&#8203;5846](https://redirect.github.com/rollup/rollup/issues/5846))

##### Pull Requests

- [#&#8203;5846](https://redirect.github.com/rollup/rollup/pull/5846):
return UnknownValue if the usedbranch is unkown and the path is not
empty ([@&#8203;TrickyPi](https://redirect.github.com/TrickyPi))

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

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

*2025-02-14*

##### Bug Fixes

- Ensure that calls to parameters are included correctly when using
try-catch deoptimization
([#&#8203;5842](https://redirect.github.com/rollup/rollup/issues/5842))

##### Pull Requests

- [#&#8203;5840](https://redirect.github.com/rollup/rollup/pull/5840):
fix(deps): lock file maintenance minor/patch updates
([@&#8203;renovate](https://redirect.github.com/renovate)\[bot])
- [#&#8203;5842](https://redirect.github.com/rollup/rollup/pull/5842):
Fix prop inclusion with try-catch-deoptimization
([@&#8203;lukastaegert](https://redirect.github.com/lukastaegert))

</details>

<details>
<summary>swc-project/swc (@&#8203;swc/core)</summary>

###
[`v1.10.18`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#11018---2025-02-19)

[Compare
Source](https://redirect.github.com/swc-project/swc/compare/v1.10.17...v1.10.18)

##### Bug Fixes

- **(hstr)** Prevent memory leak for global stores
([#&#8203;10047](https://redirect.github.com/swc-project/swc/issues/10047))
([4718bc0](4718bc0df9))

##### Miscellaneous Tasks

- **(es/minifier)** Make `minify-all` example ignore parsing errors
([#&#8203;10045](https://redirect.github.com/swc-project/swc/issues/10045))
([6c7ec46](6c7ec46ee4))

##### Build

- **(es)** Select optimization level for each crates
([#&#8203;10046](https://redirect.github.com/swc-project/swc/issues/10046))
([c28d494](c28d4942c5))

###
[`v1.10.17`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#11017---2025-02-18)

[Compare
Source](https://redirect.github.com/swc-project/swc/compare/v1.10.16...v1.10.17)

##### Bug Fixes

- **(deps)** Update cargo (patch)
([#&#8203;10021](https://redirect.github.com/swc-project/swc/issues/10021))
([ffb7734](ffb77342d9))

- **(typescript)** Improve type inferring for undefined and null
([#&#8203;10038](https://redirect.github.com/swc-project/swc/issues/10038))
([5059ece](5059ece95a))

- **(typescript)** Remove the usages of private members
([#&#8203;10037](https://redirect.github.com/swc-project/swc/issues/10037))
([8410b59](8410b59621))

##### Performance

- **(hstr)** Use thin arc for hash and length
([#&#8203;10033](https://redirect.github.com/swc-project/swc/issues/10033))
([2bea793](2bea793bf3))

- **(hstr)** Skip interning if the text is long enough
([#&#8203;10035](https://redirect.github.com/swc-project/swc/issues/10035))
([2622e4e](2622e4e1d0))

##### Testing

- **(hstr)** Add tests
([#&#8203;10043](https://redirect.github.com/swc-project/swc/issues/10043))
([32b58f0](32b58f0b21))

- **(ts/fast-strip)** Add tests for `declare module` error cases
([#&#8203;10040](https://redirect.github.com/swc-project/swc/issues/10040))
([37672e0](37672e024e))

</details>

<details>
<summary>vitest-dev/vitest (@&#8203;vitest/coverage-v8)</summary>

###
[`v3.0.6`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.6)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.5...v3.0.6)

#####    🐞 Bug Fixes

- Fix `getMockedSystemTime` for `useFakeTimer`  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7405](https://redirect.github.com/vitest-dev/vitest/issues/7405)
[<samp>(03912)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/03912b43)
- Compat for jest-image-snapshot  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7390](https://redirect.github.com/vitest-dev/vitest/issues/7390)
[<samp>(9542b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9542b699)
- Ensure project names are readable in dark terminals  -  by
[@&#8203;rgrove](https://redirect.github.com/rgrove) in
[https://github.com/vitest-dev/vitest/issues/7371](https://redirect.github.com/vitest-dev/vitest/issues/7371)
[<samp>(bb94c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bb94c19f)
- Exclude `queueMicrotask` from default fake timers to not break node
fetch  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7505](https://redirect.github.com/vitest-dev/vitest/issues/7505)
[<samp>(167a9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/167a98d7)
-   **browser**:
- Fix mocking modules out of root  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7415](https://redirect.github.com/vitest-dev/vitest/issues/7415)
[<samp>(d3acb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d3acbd8b)
- Fix `toHaveClass` typing  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7383](https://redirect.github.com/vitest-dev/vitest/issues/7383)
[<samp>(7ef23)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7ef238c0)
- Relax locator selectors methods  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7422](https://redirect.github.com/vitest-dev/vitest/issues/7422)
[<samp>(1b8c5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1b8c5c9e)
- Resolve thread count from `maxWorkers`  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7483](https://redirect.github.com/vitest-dev/vitest/issues/7483)
[<samp>(adbb2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/adbb25ab)
- Cleanup timeout on resolve and give more information in the error  - 
by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/7487](https://redirect.github.com/vitest-dev/vitest/issues/7487)
[<samp>(5a45a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5a45a7ca)
-   **coverage**:
- `vite-node` to pass correct execution wrapper offset  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7417](https://redirect.github.com/vitest-dev/vitest/issues/7417)
[<samp>(1f2e5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1f2e5552)
- Preserve moduleExecutionInfo in non-isolated runs  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7486](https://redirect.github.com/vitest-dev/vitest/issues/7486)
[<samp>(f31a0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f31a07bb)
-   **deps**:
- Update all non-major dependencies  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7363](https://redirect.github.com/vitest-dev/vitest/issues/7363)
[<samp>(e348b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e348bd4c)
- Update all non-major dependencies  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7507](https://redirect.github.com/vitest-dev/vitest/issues/7507)
[<samp>(6cc40)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6cc408d6)
-   **init**:
- Invalid browser config  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7475](https://redirect.github.com/vitest-dev/vitest/issues/7475)
[<samp>(8fe64)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8fe641b4)
-   **reporters**:
- Render tasks in tree when in TTY  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7503](https://redirect.github.com/vitest-dev/vitest/issues/7503)
[<samp>(027ce)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/027ce9bb)
-   **vite-node**:
- Remove fake first line mapping on Vite 6  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/issues/7124](https://redirect.github.com/vitest-dev/vitest/issues/7124)
[<samp>(b9973)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b997355b)
-   **watch**:
- Properly remove cache after removing existing test files  -  by
[@&#8203;soc221b](https://redirect.github.com/soc221b) in
[https://github.com/vitest-dev/vitest/issues/7399](https://redirect.github.com/vitest-dev/vitest/issues/7399)
[<samp>(01a59)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/01a59721)
-   **workspace**:
- Forward `inspect` related cli options  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/7373](https://redirect.github.com/vitest-dev/vitest/issues/7373)
[<samp>(ed15b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ed15b5b3)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.5...v3.0.6)

</details>

<details>
<summary>vueuse/vueuse (@&#8203;vueuse/components)</summary>

###
[`v12.7.0`](https://redirect.github.com/vueuse/vueuse/releases/tag/v12.7.0)

[Compare
Source](https://redirect.github.com/vueuse/vueuse/compare/v12.6.1...v12.7.0)

#####    🚀 Features

- **useRafFn**: Add `once` option  -  by
[@&#8203;btea](https://redirect.github.com/btea) in
[https://github.com/vueuse/vueuse/issues/4583](https://redirect.github.com/vueuse/vueuse/issues/4583)
[<samp>(3041e)</samp>](https://redirect.github.com/vueuse/vueuse/commit/3041e78b)

#####    🐞 Bug Fixes

- **useFetch**: Partial overwrite when `{combination: 'overwrite'}`  - 
by [@&#8203;pkc918](https://redirect.github.com/pkc918) and
[@&#8203;antfu](https://redirect.github.com/antfu) in
[https://github.com/vueuse/vueuse/issues/4430](https://redirect.github.com/vueuse/vueuse/issues/4430)
[<samp>(3ca0d)</samp>](https://redirect.github.com/vueuse/vueuse/commit/3ca0d92c)
- **useTextareaAutosize**: Improve resize handling with
requestAnimationFrame  -  by
[@&#8203;ilyaliao](https://redirect.github.com/ilyaliao), **Robin** and
[@&#8203;antfu](https://redirect.github.com/antfu) in
[https://github.com/vueuse/vueuse/issues/4557](https://redirect.github.com/vueuse/vueuse/issues/4557)
[<samp>(e1a7e)</samp>](https://redirect.github.com/vueuse/vueuse/commit/e1a7ef38)

#####     [View changes on
GitHub](https://redirect.github.com/vueuse/vueuse/compare/v12.6.1...v12.7.0)

###
[`v12.6.1`](https://redirect.github.com/vueuse/vueuse/releases/tag/v12.6.1)

[Compare
Source](https://redirect.github.com/vueuse/vueuse/compare/v12.6.0...v12.6.1)

*No significant changes*

#####     [View changes on
GitHub](https://redirect.github.com/vueuse/vueuse/compare/v12.6.0...v12.6.1)

###
[`v12.6.0`](https://redirect.github.com/vueuse/vueuse/releases/tag/v12.6.0)

[Compare
Source](https://redirect.github.com/vueuse/vueuse/compare/v12.5.0...v12.6.0)

#####    🚀 Features

- **createReusableTemplate**: Explicit props  -  by
[@&#8203;antfu](https://redirect.github.com/antfu) in
[https://github.com/vueuse/vueuse/issues/4535](https://redirect.github.com/vueuse/vueuse/issues/4535)
[<samp>(18031)</samp>](https://redirect.github.com/vueuse/vueuse/commit/18031fc9)
- **onClickOutside**: Add `controls`  -  by
[@&#8203;sibbng](https://redirect.github.com/sibbng) and
[@&#8203;antfu](https://redirect.github.com/antfu) in
[https://github.com/vueuse/vueuse/issues/4537](https://redirect.github.com/vueuse/vueuse/issues/4537)
[<samp>(ab116)</samp>](https://redirect.github.com/vueuse/vueuse/commit/ab116abf)
- **useDateFormat**: Add `z...zzzz` for timezone information  -  by
[@&#8203;OrbisK](https://redirect.github.com/OrbisK) in
[https://github.com/vueuse/vueuse/issues/4553](https://redirect.github.com/vueuse/vueuse/issues/4553)
[<samp>(cd6d7)</samp>](https://redirect.github.com/vueuse/vueuse/commit/cd6d7e07)
- **useElementVisibility**: Add `once` options  -  by
[@&#8203;ilyaliao](https://redirect.github.com/ilyaliao) in
[https://github.com/vueuse/vueuse/issues/4577](https://redirect.github.com/vueuse/vueuse/issues/4577)
[<samp>(f2f94)</samp>](https://redirect.github.com/vueuse/vueuse/commit/f2f94bf9)
- **useTimtoutFn,useTimeoutPoll**: Align behavior  -  by
[@&#8203;ilyaliao](https://redirect.github.com/ilyaliao) in
[https://github.com/vueuse/vueuse/issues/4543](https://redirect.github.com/vueuse/vueuse/issues/4543)
[<samp>(64c53)</samp>](https://redirect.github.com/vueuse/vueuse/commit/64c533fa)
- **watchPausable**: Add `options.initialState` to control the initial
active value  -  by [@&#8203;OrbisK](https://redirect.github.com/OrbisK)
in
[https://github.com/vueuse/vueuse/issues/4533](https://redirect.github.com/vueuse/vueuse/issues/4533)
[<samp>(ceb56)</samp>](https://redirect.github.com/vueuse/vueuse/commit/ceb567bc)

#####    🐞 Bug Fixes

- **createEventHook**: Type check for multiple arguments  -  by
[@&#8203;isimehmeti](https://redirect.github.com/isimehmeti) and
[@&#8203;ilyaliao](https://redirect.github.com/ilyaliao) in
[https://github.com/vueuse/vueuse/issues/4555](https://redirect.github.com/vueuse/vueuse/issues/4555)
[<samp>(636b8)</samp>](https://redirect.github.com/vueuse/vueuse/commit/636b8664)
- **nuxt**: Check if packages exist in any layer  -  by
[@&#8203;dgrayvold](https://redirect.github.com/dgrayvold) in
[https://github.com/vueuse/vueuse/issues/4571](https://redirect.github.com/vueuse/vueuse/issues/4571)
[<samp>(45e5c)</samp>](https://redirect.github.com/vueuse/vueuse/commit/45e5cdd7)
- **reactiveComputed**: Computed fn should be `ComputedGetter`  -  by
[@&#8203;OrbisK](https://redirect.github.com/OrbisK) in
[https://github.com/vueuse/vueuse/issues/4528](https://redirect.github.com/vueuse/vueuse/issues/4528)
[<samp>(bea31)</samp>](https://redirect.github.com/vueuse/vueuse/commit/bea3184c)
- **useAnimate**: Clear animate when element is gone  -  by
[@&#8203;babu-ch](https://redirect.github.com/babu-ch) in
[https://github.com/vueuse/vueuse/issues/4579](https://redirect.github.com/vueuse/vueuse/issues/4579)
[<samp>(1a934)</samp>](https://redirect.github.com/vueuse/vueuse/commit/1a934182)
- **useCountdown**: `start()` should accept a custom initial value  - 
by [@&#8203;ralacerda](https://redirect.github.com/ralacerda) in
[https://github.com/vueuse/vueuse/issues/4554](https://redirect.github.com/vueuse/vueuse/issues/4554)
[<samp>(93591)</samp>](https://redirect.github.com/vueuse/vueuse/commit/93591c46)
- **useCssVar**: New Behavior  -  by
[@&#8203;ilyaliao](https://redirect.github.com/ilyaliao) and **OrbisK**
in
[https://github.com/vueuse/vueuse/issues/4500](https://redirect.github.com/vueuse/vueuse/issues/4500)
[<samp>(d5dd8)</samp>](https://redirect.github.com/vueuse/vueuse/commit/d5dd8fda)
- **useMouse**: Check for `MouseEvent` instead of `Touch` to work with
FF  -  by [@&#8203;OrbisK](https://redirect.github.com/OrbisK) and
[@&#8203;antfu](https://redirect.github.com/antfu) in
[https://github.com/vueuse/vueuse/issues/4457](https://redirect.github.com/vueuse/vueuse/issues/4457)
[<samp>(ce9e5)</samp>](https://redirect.github.com/vueuse/vueuse/commit/ce9e5d7f)
- **useSpeechRecognition**: Improve start and stop method behavior  - 
by [@&#8203;ilyaliao](https://redirect.github.com/ilyaliao) in
[https://github.com/vueuse/vueuse/issues/4565](https://redirect.github.com/vueuse/vueuse/issues/4565)
[<samp>(4f104)</samp>](https://redirect.github.com/vueuse/vueuse/commit/4f104263)

#####     [View changes on
GitHub](https://redirect.github.com/vueuse/vueuse/compare/v12.5.0...v12.6.0)

</details>

<details>
<summary>jonahsnider/convert (convert)</summary>

###
[`v5.8.0`](https://redirect.github.com/jonahsnider/convert/blob/HEAD/CHANGELOG.md#580-2025-02-19)

[Compare
Source](https://redirect.github.com/jonahsnider/convert/compare/v5.7.0...v5.8.0)

##### Features

- **pressure:** add inches of water and inches of mercury units
([#&#8203;729](https://redirect.github.com/jonahsnider/convert/issues/729))
([534fe1c](534fe1cdf0))

</details>

<details>
<summary>kelektiv/node-cron (cron)</summary>

###
[`v3.5.0`](https://redirect.github.com/kelektiv/node-cron/blob/HEAD/CHANGELOG.md#350-2025-01-10)

[Compare
Source](https://redirect.github.com/kelektiv/node-cron/compare/v3.4.0...v3.5.0)

#####  Features

- throw instead of silently rewriting invalid cron expressions
([#&#8203;937](https://redirect.github.com/kelektiv/node-cron/issues/937))
([dcc5b93](dcc5b939fb))

##### ⚙️ Continuous Integrations

- **action:** update step-security/harden-runner action to v2.10.3
([#&#8203;943](https://redirect.github.com/kelektiv/node-cron/issues/943))
([cd7ee9f](cd7ee9f62f))

##### ♻️ Chores

- **deps:** update dependency
[@&#8203;types](https://redirect.github.com/types)/node to v20.17.12
([2a867f9](2a867f9c34))
- **deps:** update dependency
[@&#8203;types](https://redirect.github.com/types)/node to v22
([#&#8203;900](https://redirect.github.com/kelektiv/node-cron/issues/900))
([f7548bd](f7548bd3b6))

###
[`v3.4.0`](https://redirect.github.com/kelektiv/node-cron/blob/HEAD/CHANGELOG.md#340-2025-01-09)

[Compare
Source](https://redirect.github.com/kelektiv/node-cron/compare/v3.3.2...v3.4.0)

#####  Features

- error handling on ticks
([#&#8203;861](https://redirect.github.com/kelektiv/node-cron/issues/861))
([0d3161f](0d3161ff78)),
closes
[#&#8203;426](https://redirect.github.com/kelektiv/node-cron/issues/426)

##### 📚 Documentation

- **contributing:** add "Submitting a Pull Request" & "Coding Rules"
sections
([#&#8203;936](https://redirect.github.com/kelektiv/node-cron/issues/936))
([ddd8988](https://redirect.github.com/kelektiv/node-cron/commit/ddd89881bcb2f3737e1ea50296

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-20 16:36:54 -05:00
Eli Bosley
8590a49402 feat: ignore nuxt-custom-elements and reflect-metadata 2025-02-20 14:38:06 -05:00
Eli Bosley
00a444fb92 fix: only run release if releases_create == 'true' 2025-02-20 13:06:01 -05:00
Eli Bosley
2323ee6838 chore: release 4.1.2
Release-As: 4.1.2
2025-02-20 12:37:24 -05:00
Eli Bosley
b07828d655 fix: empty manifest and version alignment 2025-02-20 12:30:01 -05:00
Eli Bosley
e72129953e fix: re-add manifest 2025-02-20 12:26:42 -05:00
Eli Bosley
30ba5befdb fix: don't specify pnpm version in install 2025-02-20 12:24:07 -05:00
Eli Bosley
013cc1de7d feat: major release-please workflow improvements (#1160)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Expanded release configuration now covers additional components for
broader integration.

- **Chores**
- Streamlined automated release workflows for more efficient asset
uploads.
- Refined job triggers to focus release creation on updates to the main
branch.
  - Removed outdated version tracking to simplify the release process.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-20 12:22:08 -05:00
Eli Bosley
eec9785ba1 feat: update packageManager field for pnpm 2025-02-20 12:21:25 -05:00
Eli Bosley
d7b138b2a7 feat: group renovate updates 2025-02-20 11:53:34 -05:00
Eli Bosley
c47a655b45 fix: Update renovate.json 2025-02-20 11:48:50 -05:00
Eli Bosley
b9bb346ab9 chore(release): 4.1.1 2025-02-20 11:32:38 -05:00
Eli Bosley
2b1e3076b0 fix: main.yml release issue 2025-02-20 11:32:30 -05:00
Eli Bosley
be6dbe587f chore(release): 4.1.0 2025-02-20 11:26:39 -05:00
Michael Datelle
fb2472399a fix: connect breaks default css of header (#1155)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced theme customization with new options for custom gradients,
delivering dynamic and visually cohesive banner effects.
- Improved header styling with refined color handling to adapt
seamlessly across both dark and light modes.
- Added new CSS variables for gradient management in theme definitions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-02-20 11:18:12 -05:00
Eli Bosley
6084b9df93 Update renovate.json 2025-02-20 10:38:00 -05:00
Eli Bosley
c74bdd8890 feat: attempt to resolve performance issues with rm earlier in build … (#1152)
…process

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

- **Refactor**
- Enhanced file integrity validation during installation for more
reliable performance.

- **Chores**
- Streamlined the setup process by adding a cleanup step to remove
outdated components post-installation.
- Improved error handling and validation logic for checksum
verification.
	- Adjusted command sequence for better clarity and control flow.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-20 10:36:52 -05:00
Eli Bosley
5a3e8df003 fix: storybook resolution issue (#1153)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Enhanced the Storybook configuration by integrating improvements for
build efficiency.
- Updated build settings to optimize dependency handling during
Storybook execution.
- Updated several Storybook-related package versions and added new
dependencies.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-20 10:13:21 -05:00
Michael Datelle
62dc8294e8 refactor: make stepper responsive (#1144)
This PR adds a responsive layout for the Stepper component on small
screens. There's a vertical orientation version but the changes here
won't be compatible. If we need a verticle version we can just create a
separate component folder for the vertical only version.

<img width="171" alt="image"
src="https://github.com/user-attachments/assets/4e38ac68-ca17-400a-b07b-2bfcb2c0a192"
/>

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

## Summary by CodeRabbit

- **Style**
- Enhanced the visual design of the stepper components with improved
responsive layouts—displaying vertically on smaller screens and
horizontally on medium and larger screens.
- **New Features**
- Added an interactive demo showcasing the stepper workflow in
Storybook.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-02-19 14:40:11 -05:00
Pujit Mehrotra
7588e0e3cf feat(web): improve notification count syncing (#1148)
## Summary by CodeRabbit

- **New Features**
- Added a refresh button in the notifications sidebar, allowing users to
update notification counts on demand.
- Introduced real-time updates for notification counts through a new
subscription.
- Enhanced GraphQL functionality to support recalculating notification
counts for archived and unread notifications.
  - Added a new mutation for recalculating the notifications overview.
- Implemented a new subscription to receive updates on notification
counts.
- Minor formatting update to the notifications title for improved
readability.
2025-02-19 14:25:04 -05:00
Michael Datelle
6378047bc4 feat: add unraid-ui documentation (#1142)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Improved repository management to prevent unnecessary tracking of the
`.pnpm-store` directory.
- **Documentation**
- Updated installation and configuration guidelines for the UI component
library.
- Refined instructions for Tailwind configuration, now utilizing
TypeScript.
- Expanded guidance for component development and Storybook best
practices, providing clearer examples and workflows.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-02-19 14:23:52 -05:00
Eli Bosley
ad6b6589db feat: convert to pnpm monorepo (#1137)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced enhanced project management scripts for building, testing,
and deploying the monorepo.
- Added an automated testing pipeline for improved reliability of the
Libvirt functionality.
- Provided a new plugin installation script that ensures thorough
cleanup during removal.

- **Improvements**
- Updated container mappings and dependency configurations for more
stable and efficient operations.
- Refined web application settings and build commands for smoother
performance.
- Streamlined continuous integration workflows with optimized caching
and dependency management.
  - Updated allowed origins in configuration for enhanced security.

- **Chores/Refactor**
- Removed outdated configuration files to simplify maintenance and
enhance consistency.
- Enhanced event listener management in the web application for better
error handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-19 13:41:23 -05:00
Pujit Mehrotra
93980f929d fix(web): name of toaster component
changed `unraid-toaster` to `uui-toaster`
2025-02-19 12:04:03 -05:00
Pujit Mehrotra
19208e5fab fix(web): broken modals 2025-02-19 12:04:03 -05:00
Pujit Mehrotra
b970fd9e6c fix(api): logrotate modification & permissions (#1145)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
- Updated deployment and build commands to use a more efficient package
manager.
- **Refactor**
- Improved the internal file modification structure for enhanced
flexibility and maintainability.
- **New Features**
- Enhanced log management by adding functionality for proper permission
handling and cleanup after operations.
- Introduced a new log rotation configuration for managing log files
effectively.
- Updated timestamps for various components to reflect the latest
download times.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-19 09:13:43 -05:00
renovate[bot]
7539a3ed75 chore(deps): update dependency vite-plugin-vue-devtools to v7.7.2 (#1134)
This PR contains the following updates:

<details>
<summary>vuejs/devtools (vite-plugin-vue-devtools)</summary>

###
[`v7.7.2`](https://redirect.github.com/vuejs/devtools/releases/tag/v7.7.2)

[Compare
Source](https://redirect.github.com/vuejs/devtools/compare/v7.7.1...v7.7.2)

🐞 Bug Fixes

- **api**: Allow treeshaking  -  by
[@&#8203;posva](https://redirect.github.com/posva) in
[https://github.com/vuejs/devtools/issues/795](https://redirect.github.com/vuejs/devtools/issues/795)
[<samp>(81cac)</samp>](https://redirect.github.com/vuejs/devtools/commit/81cacec)

#####     [View changes on
GitHub](https://redirect.github.com/vuejs/devtools/compare/v7.7.1...v7.7.2)

</details>

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-19 09:12:01 -05:00
Pujit Mehrotra
0b8df2a43e chore(web): add pinia store and select dropdown for dummy server state (#1143)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced an interactive server selector that lets users toggle
between different server modes (e.g., Default and OEM Activation) via a
dropdown.
- Integrated reactive state management across key pages, ensuring
dynamic UI updates.
  - Added new popover components for enhanced UI interactions.
- Introduced a settings interface for developers, allowing access to
server selection within a popover.

- **Bug Fixes**
- Restored functionality for the downgrade feature that was previously
removed.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1209127325997642
2025-02-19 08:53:54 -05:00
Pujit Mehrotra
9bc8060a83 fix(api): change log output location for diagnostic compatibility (#1130)
now outputs logs to `/var/log/graphql-api.log` instead of
`/var/log/unraid-api/unraid-api.log`

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

- **Chores**
  - Updated the logging file destination to `/var/log/graphql-api.log`.
  - Streamlined configuration formatting for enhanced clarity.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2025-02-18 09:47:42 -05:00
Eli Bosley
2b163b361a fix: revert dockerode upgrade (#1140)
Reverts unraid/api#830
2025-02-12 21:12:04 -05:00
Michael Datelle
741e8532ab refactor: unraid-ui-web-migration (#1106)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced enhanced stepper components for smoother multi-step
interactions.
- Added new loading indicators and improved the loading experience with
customizable variants.
  
- **UI Improvements**
- Refreshed the global color palette and updated styling across buttons,
badges, and loading indicators for a more modern, consistent experience.
- Improved the organization and readability of templates and styles
across various components.

- **Code & Dependency Updates**
- Updated key dependencies and revised the theme and configuration
settings to improve performance and maintainability.
- Introduced new environment variables for better configuration
management.

- **Legacy Cleanup**
- Removed deprecated components and streamlined registrations to
simplify the codebase without affecting end-user functionality.
- Eliminated unused utility functions and legacy code to enhance overall
code quality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2025-02-12 18:00:06 -05:00
Eli Bosley
f76c0f05fb fix: upload to correct tag directory on build 2025-02-12 16:31:16 -05:00
renovate[bot]
d439fcc7bb chore(deps): update dependency @graphql-codegen/client-preset to v4.6.2 (#1131) 2025-02-12 11:29:04 -05:00
renovate[bot]
45006a1e4c chore(deps): update dependency @types/node to v22.13.1 (#1110) 2025-02-12 11:28:35 -05:00
renovate[bot]
4ee85eb121 chore(deps): update dependency postcss to v8.5.2 (#1115) 2025-02-12 11:27:41 -05:00
renovate[bot]
eff7507605 chore(deps): update dependency typescript-eslint to v8.24.0 (#1117) 2025-02-12 11:26:59 -05:00
renovate[bot]
c311a89aee fix(deps): update dependency dockerode to v4 (#830) 2025-02-12 11:26:37 -05:00
renovate[bot]
b7b4a3974b chore(deps): update dependency nuxt to v3.15.4 (#1114) 2025-02-12 11:26:07 -05:00
renovate[bot]
b4d48335c4 chore(deps): update dependency vue-tsc to v2.2.0 (#1118) 2025-02-12 11:25:45 -05:00
renovate[bot]
797695535e chore(deps): update storybook monorepo to v8.5.4 (#1119) 2025-02-12 11:25:27 -05:00
renovate[bot]
16620a249b chore(deps): update vitest monorepo (#1109)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@vitest/coverage-v8](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-v8#readme)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8))
| [`1.6.0` ->
`1.6.1`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/1.6.0/1.6.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-v8/1.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-v8/1.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-v8/1.6.0/1.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-v8/1.6.0/1.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitest/ui](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/ui#readme)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui))
| [`1.6.0` ->
`1.6.1`](https://renovatebot.com/diffs/npm/@vitest%2fui/1.6.0/1.6.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/1.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/1.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/1.6.0/1.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/1.6.0/1.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://redirect.github.com/vitest-dev/vitest)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`2.1.8` ->
`2.1.9`](https://renovatebot.com/diffs/npm/vitest/2.1.8/2.1.9) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/2.1.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/2.1.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/2.1.8/2.1.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/2.1.8/2.1.9?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://redirect.github.com/vitest-dev/vitest)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`1.6.0` ->
`1.6.1`](https://renovatebot.com/diffs/npm/vitest/1.6.0/1.6.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/1.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/1.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/1.6.0/1.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/1.6.0/1.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest (@&#8203;vitest/coverage-v8)</summary>

###
[`v1.6.1`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v1.6.1)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v1.6.0...v1.6.1)

This release includes security patches for:

- [Remote Code Execution when accessing a malicious website while Vitest
API server is listening |
CVE-2025-24964](https://redirect.github.com/vitest-dev/vitest/security/advisories/GHSA-9crc-q9x8-hgqq)

#####    🐞 Bug Fixes

- backport
[https://github.com/vitest-dev/vitest/issues/7317](https://redirect.github.com/vitest-dev/vitest/issues/7317)
to v1 - by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[https://github.com/vitest-dev/vitest/pull/7319](https://redirect.github.com/vitest-dev/vitest/pull/7319)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v1.6.0...v1.6.1)

</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 is behind base branch, 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-12 11:25:04 -05:00
Eli Bosley
cc18239748 feat: contributing guide 2025-02-12 10:39:22 -05:00
Eli Bosley
8374af8ee8 feat: work intent process 2025-02-12 10:35:11 -05:00
Eli Bosley
5b2403ad04 fix: shorten work intent form 2025-02-12 10:32:40 -05:00
Eli Bosley
c519ba28e4 feat: work intent 2025-02-12 10:31:21 -05:00
Eli Bosley
0c0a63b525 feat: feature request template 2025-02-12 10:28:18 -05:00
Eli Bosley
d6fde34365 feat: bug report template 2025-02-12 10:25:49 -05:00
Eli Bosley
a4b3f8c6c3 feat: reorder index 2025-02-12 09:23:10 -05:00
Eli Bosley
5f29e6d5e7 fix: simplify api setup index 2025-02-12 09:16:09 -05:00
Eli Bosley
1e4a4f0745 feat: simplify docs 2025-02-11 21:32:50 -05:00
Eli Bosley
608151d84c fix: simplify upcoming features 2025-02-11 19:08:24 -05:00
Eli Bosley
8cbb3c4718 feat: public index 2025-02-11 15:56:54 -05:00
Eli Bosley
e784391ac3 feat: add category.json 2025-02-11 15:48:45 -05:00
Eli Bosley
84611d7691 fix: make public not a part of folder structure in PR 2025-02-11 15:40:37 -05:00
Eli Bosley
dabe334072 fix: create PR ignored 2025-02-11 15:36:15 -05:00
Eli Bosley
59e48ad85c feat: upgrade workflow and auto-assign reviewers 2025-02-11 15:34:56 -05:00
Eli Bosley
13b501a342 fix: docs creation workflow 2025-02-11 15:26:17 -05:00
Eli Bosley
75474bde47 feat: add developer docs (#1128)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Documentation**
- Improved the API documentation update process to enhance clarity and
maintain consistent content.
- Introduced a comprehensive guide outlining the API's repository
organization and system architecture.
- Streamlined the documentation by removing outdated developer guides on
API introspection and feature implementation.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-11 15:14:59 -05:00
Eli Bosley
7a19c9331f feat: fix docusaurus build + update snapshot 2025-02-11 14:47:34 -05:00
Eli Bosley
8a575765a9 feat: auto-docusaurus-prs (#1127)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Documentation**
- Expanded the Unraid API guides with comprehensive CLI command details
for managing services, logs, configuration, and authentication.
- Updated the API usage instructions to include steps for enabling a
GraphQL sandbox, example queries, error handling, and best practices.
- Added an implementation overview detailing component capabilities and
a release roadmap outlining upcoming improvements across core
infrastructure, security, and user interface.

- **Chores**
- Introduced automation that streamlines the updating of API
documentation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-11 14:45:03 -05:00
Eli Bosley
753f1588b8 Feat/local-plugin (#1125)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit


• New Features  
 - Enhanced the login experience with improved session management and
two-factor authentication.
 - Introduced a comprehensive README for the Unraid Plugin Builder,
detailing development workflows and commands.

• Chores  
 - Streamlined build, packaging, and deployment processes with updated
dependency and environment configurations.
 - Updated Docker configurations to support pnpm as the package manager.
 - Added new environment variables for better configuration management.
 - Introduced new scripts for improved build and packaging processes.  

• Tests  
 - Removed outdated test cases and simplified test setups.  

• Refactor  
 - Modernized internal code structure and asynchronous handling for
improved overall performance.
 - Transitioned imports from lodash to lodash-es for better module
handling.
 - Updated environment variable management and configuration settings.  
 - Enhanced the build script for improved deployment processes.  
 - Updated the notification handling structure to improve efficiency.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-11 11:45:26 -05:00
ljm42
59d6c1b678 fix: PHP Warning in state.php (#1126)
PHP 8.4.4 (Unraid 7.1.0): Implicitly marking parameter $subkey as
nullable is deprecated

Related: https://github.com/unraid/webgui/pull/2009

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

## Summary by CodeRabbit

- **Refactor**
- Improved internal handling of optional details, enhancing system
robustness and flexibility when certain inputs are omitted. This update
contributes to smoother, more reliable operations without affecting
visible functionality.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-10 10:58:30 -08:00
Eli Bosley
6abddd85d2 chore(release): 4.0.1 2025-02-06 16:18:02 -05:00
Eli Bosley
29fd61be6c Update release-production.yml 2025-02-06 16:17:05 -05:00
Eli Bosley
92f72e33ec chore(release): 4.0.0 2025-02-06 16:02:28 -05:00
Michael Datelle
26639d5139 refactor: update config and scripts to ensure production mode (#1122)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Refactor**
- Updated the user profile’s loading indicator for a smoother visual
experience during system restart.
- **Chores**
- Improved environment-specific configurations and asset management,
streamlining production builds and deployment.
	- Enhanced the development tools behavior based on the environment.
- Updated scripts for building and serving the application to align with
production settings.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-02-06 13:39:52 -05:00
Eli Bosley
19f9261025 chore: add missing descriptions on commands (#1124)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Documentation**
	- Enhanced CLI help text by adding and refining command descriptions:
		• Logs command now clearly displays “View logs.”
		• Restart command now focuses solely on restarting the API.
		• Start command now shows “Start the Unraid API.”
		• Stop command now explicitly states its stopping action.
• Environment switch command now indicates its role in switching the API
environment.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-06 13:39:30 -05:00
Eli Bosley
e7b7caae43 feat: checkout correct branch on close (#1123)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **Chores**
- Refined our deployment process to ensure staging updates now reflect
the fully merged changes.
	- Made minor formatting tweaks for improved clarity.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-06 12:53:00 -05:00
Eli Bosley
4f5c367fdf feat: begin building plugin with node instead of bash (#1120)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced automated build and release processes with containerized
builds, improved caching, and refined artifact handling.
- Introduced new configuration options to strengthen versioning,
integrity checks, and pull request tracking.
	- Added a new Dockerfile for building the Node.js application.
- Added new environment variables for API versioning and validation
control.
	- Implemented comprehensive management of PM2 processes and state.
- Introduced a new GitHub Actions workflow for automating staging plugin
deployment upon pull request closure.
	- Updated logic for handling plugin installation and error feedback.
	- Added new asynchronous methods for managing PM2 processes.
	- Updated logging configurations for better control over log outputs.
	- Added Prettier configuration for consistent code formatting.
- Introduced a configuration to prevent the application from watching
for file changes.

- **Bug Fixes**
- Improved error handling and user feedback during the installation of
staging versions.

- **Documentation**
- Removed outdated introductory documentation to streamline project
information.

- **Chores**
- Updated deployment routines and validation steps to improve release
consistency and error handling.
- Simplified packaging and build scripts for smoother staging and
production workflows.
	- Excluded sensitive files from the Docker build context.
- Updated the `.gitignore` file to prevent unnecessary files from being
tracked.
- Adjusted the test timeout configuration for improved test reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-06 12:32:41 -05:00
Pujit Mehrotra
321703e907 fix(web): track 'notification seen' state across tabs & page loads (#1121)
**New Features**
	- Enhanced notifications tracking that updates seen status in real time.
	- Improved notification indicators provide a more consistent and responsive experience.
	- Persistent state management ensures your viewed notifications remain accurately reflected across sessions.
	- New composable functions introduced for better management of notification visibility and interaction.
	- Streamlined notification handling by simplifying state management processes.
2025-02-06 12:00:53 -05:00
Pujit Mehrotra
a21f39d617 fix(api): improve defaults in PM2 service (#1116)
* change default execa opts in pm2 service (disable `extendEnv` and add default bash shell)

* change default log level of `pm2.run` to `trace`

* add tsdoc for `pm2.run`
2025-02-05 09:57:33 -05:00
Eli Bosley
3c357e7e95 fix: use batchProcess 2025-02-04 14:36:39 -05:00
Eli Bosley
f22b262830 feat: async disk mapping 2025-02-04 14:36:39 -05:00
Eli Bosley
e16763b49b fix: do not process.exit on restart or stop command 2025-02-04 13:57:51 -05:00
Eli Bosley
133c8e0d70 fix: lint 2025-02-04 13:57:51 -05:00
Eli Bosley
1392bdeecb feat: allow deletion and creation of files with patches 2025-02-04 13:57:51 -05:00
Eli Bosley
2fce2e9a28 fix: install as-integrations/fastify 2025-02-04 13:20:08 -05:00
renovate[bot]
430656f6af chore(deps): update dependency graphql-codegen-typescript-validation-schema to ^0.17.0 2025-02-04 13:10:53 -05:00
renovate[bot]
d7887c2183 chore(deps): update dependency @rollup/rollup-linux-x64-gnu to v4.34.2 2025-02-04 13:10:41 -05:00
renovate[bot]
ebd1a391b6 chore(deps): update dependency @types/node to v20.17.17 2025-02-04 13:10:26 -05:00
renovate[bot]
1f42bbb4aa chore(deps): update dependency zx to v8.3.2 2025-02-04 13:10:18 -05:00
renovate[bot]
5f59d31ab3 chore(deps): update dependency @swc/core to v1.10.14 2025-02-04 13:10:10 -05:00
Eli Bosley
d8478152e9 fix: remove devDependencies from output package json 2025-02-04 13:06:56 -05:00
Eli Bosley
63fcde8243 fix: staging build issues 2025-02-04 13:01:56 -05:00
renovate[bot]
2bc9af2578 fix(deps): update graphqlcodegenerator monorepo 2025-02-04 12:15:54 -05:00
renovate[bot]
5b14be6b0f fix(deps): update dependency @apollo/client to v3.12.9 2025-02-04 12:15:33 -05:00
renovate[bot]
9ef56d8c05 chore(deps): update dependency eslint to v9.19.0 2025-02-04 12:15:21 -05:00
renovate[bot]
c4204d89aa chore(deps): update dependency @nuxt/eslint to v0.7.6 2025-02-04 12:15:10 -05:00
renovate[bot]
048a0a88dc chore(deps): update dependency prettier-plugin-tailwindcss to v0.6.11 2025-02-04 12:14:57 -05:00
Eli Bosley
7b3834ca1f fix: resource busy when removing all subdirectories 2025-02-04 12:14:41 -05:00
Eli Bosley
0e9c91af86 feat: ignore generated code 2025-02-04 12:14:41 -05:00
Eli Bosley
a6f67060b4 feat: log size and only tar files 2025-02-04 12:14:41 -05:00
Eli Bosley
3c61a615f0 feat: improve packing 2025-02-04 12:14:41 -05:00
Eli Bosley
073a51572a feat: shared call to createPatch 2025-02-04 12:05:56 -05:00
Eli Bosley
c00789865c fix: allow concurrent testing with a shared patcher instance 2025-02-04 12:05:56 -05:00
Eli Bosley
9d1442b2ee fix: sequential test execution for generic-modification 2025-02-04 12:05:56 -05:00
Eli Bosley
935318dda6 feat: docstrings 2025-02-04 12:05:56 -05:00
Eli Bosley
dfb006e696 feat: move fixtures into __test__ folder 2025-02-04 12:05:56 -05:00
Eli Bosley
445f3b50b1 feat: better patch application 2025-02-04 12:05:56 -05:00
Eli Bosley
a12181a5e0 feat: rollback if patch exists before applying 2025-02-04 12:05:56 -05:00
Eli Bosley
0cb0fc9881 fix: unused imports 2025-02-04 12:05:56 -05:00
Eli Bosley
42610d290d fix: lint 2025-02-04 12:05:56 -05:00
Eli Bosley
9e12407565 fix: paths now correct, better download logic 2025-02-04 12:05:56 -05:00
Eli Bosley
bb92c3f9f8 fix: better js file handling 2025-02-04 12:05:56 -05:00
Eli Bosley
5b0971ea8d feat: logrotate test 2025-02-04 12:05:56 -05:00
Eli Bosley
7f997663f9 Update api/src/unraid-api/unraid-file-modifier/modifications/auth-request.modification.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-04 12:05:56 -05:00
Eli Bosley
8b75d6cc99 fix: format authrequest mod as other files 2025-02-04 12:05:56 -05:00
Eli Bosley
b1a993a8e9 fix: lint 2025-02-04 12:05:56 -05:00
Eli Bosley
b1a1779a8b feat: add patch for auth-request.php 2025-02-04 12:05:56 -05:00
Eli Bosley
36d8399045 feat: fallback to local 2025-02-04 12:05:56 -05:00
Eli Bosley
6beafbe8ed fix: lint 2025-02-04 12:05:56 -05:00
Eli Bosley
a502134c0a fix: better loader functionality and error handling 2025-02-04 12:05:56 -05:00
Eli Bosley
fa16dcd801 feat: add logging around fixture downloads 2025-02-04 12:05:56 -05:00
Eli Bosley
d38f3ef49b fix: lint 2025-02-04 12:05:56 -05:00
Eli Bosley
ce92cb06b7 fix: remove unused constructor 2025-02-04 12:05:56 -05:00
Eli Bosley
1d5c2c8338 fix: patch-utils unused 2025-02-04 12:05:56 -05:00
Eli Bosley
0163acb7f3 fix: type for generic test 2025-02-04 12:05:56 -05:00
Eli Bosley
5347d54b11 fix: test simplification to ensure no redownloads 2025-02-04 12:05:56 -05:00
Eli Bosley
547ae180dd fix: delete .original files 2025-02-04 12:05:56 -05:00
Eli Bosley
05f661e0e5 feat: download fixtures from the web 2025-02-04 12:05:56 -05:00
Eli Bosley
5d909a856b feat: rename modification file 2025-02-04 12:05:56 -05:00
Eli Bosley
4d45caf258 feat: extensive file checking 2025-02-04 12:05:56 -05:00
Eli Bosley
805bc5bfc0 feat: initial patcher implementation using the diff tool 2025-02-04 12:05:56 -05:00
Pujit Mehrotra
81d33f6b3a refactor(api): pm2 usage in cli (#1104)
* invoke pm2 via PM2Service

* fix `unraid-api logs` command

* default to LOG_LEVEL=debug in non-production envs

* rm pm2 dump file after `pm2 update`

* add PM2_HOME to `@app/environment`
2025-02-04 11:39:29 -05:00
Pujit Mehrotra
2a82ea4765 fix(api): make cookie recognition during websocket connection more
robust
2025-02-04 11:30:57 -05:00
Pujit Mehrotra
6bb3d55e3c chore(web): suppress activation code view in dev server startup 2025-02-04 11:30:57 -05:00
Pujit Mehrotra
8251c6f2d3 fix: only toast unread notifications, not archived ones 2025-02-04 11:30:57 -05:00
Eli Bosley
ad32cffd75 feat: force linting on build 2025-01-31 11:02:55 -05:00
Eli Bosley
2b213619db chore: lint api codebase 2025-01-31 11:02:55 -05:00
Pujit Mehrotra
61ee689658 feat(ui): webgui-compatible web component library (#1075)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>

- **CI/CD**
	- Updated GitHub Actions workflow to build Unraid UI Web Components.
	- Adjusted artifact naming and download configurations.

- **Web Components**
	- Added new web components and registration mechanism.
	- Implemented toast notifications.
	- Enhanced UI component library.

- **Notifications**
	- Added real-time notification subscription.
	- Created notification settings page.
	- Implemented notification toast system.

- **API Improvements**
	- Refactored GraphQL schema loading.
	- Updated authentication and cookie handling.
	- Improved error logging and server initialization.

- **Development Tools**
	- Updated ESLint configuration.
	- Enhanced import path management.
	- Added new development dependencies.
2025-01-31 10:47:03 -05:00
renovate[bot]
904cd466db chore(deps): update dependency vite to v5.4.14 2025-01-30 17:42:47 -05:00
renovate[bot]
6cb28d5f8f fix(deps): update dependency @floating-ui/vue to v1.1.6 2025-01-30 15:21:39 -05:00
renovate[bot]
c180728696 fix(deps): update dependency radix-vue to v1.9.13 2025-01-30 15:21:26 -05:00
renovate[bot]
84752043e5 fix(deps): update dependency focus-trap to v7.6.4 2025-01-30 15:21:04 -05:00
renovate[bot]
c112f19c95 fix(deps): update dependency graphql-ws to v5.16.2 2025-01-30 15:20:44 -05:00
renovate[bot]
9acb2926da chore(deps): update dependency @types/node to v20.17.16 2025-01-30 15:20:30 -05:00
renovate[bot]
29d216ece7 chore(deps): update dependency @types/node to v22.12.0 2025-01-30 15:20:16 -05:00
renovate[bot]
5f597f9d4c fix(deps): update dependency @graphql-tools/load-files to v7.0.1 2025-01-30 15:19:56 -05:00
Eli Bosley
d26ddef33e fix: sandbox defaults in dev mode wrong 2025-01-30 15:05:34 -05:00
Eli Bosley
21208bfcf6 feat: enable sandbox in dev mode 2025-01-30 15:05:34 -05:00
Eli Bosley
6c46f9413f fix: tests and validate token clears screen 2025-01-30 15:05:34 -05:00
Eli Bosley
b56b2157fa fix: extra log line 2025-01-30 15:05:34 -05:00
Eli Bosley
2108ed0ecd fix: use an enum and defaults for sandbox value 2025-01-30 15:05:34 -05:00
Eli Bosley
9c5e418872 feat: enable sandbox with developer command 2025-01-30 15:05:34 -05:00
Eli Bosley
c4d731401c feat: codeowners 2025-01-30 14:41:10 -05:00
Eli Bosley
7e5dd07d4a fix: revert myservers.cfg 2025-01-30 14:37:33 -05:00
Eli Bosley
62824ba76f fix: default overwrite false test 2025-01-30 14:37:33 -05:00
Eli Bosley
e58410bd57 fix: remove memory key generation 2025-01-30 14:37:33 -05:00
Eli Bosley
e88593620b feat: automatic session setup for dev 2025-01-30 14:37:33 -05:00
Eli Bosley
8026ef53e8 feat: session issues 2025-01-30 14:37:33 -05:00
Zack Spear
1ecac5ee4e fix(web): theme header differences (#1085)
* feat(theme): add default header colors for theme differences

* refactor(theme): update UserProfile component colors to use theme variables

* fix(theme): safely handle default header colors for themes
2025-01-30 11:14:30 -08:00
Zack Spear
e7d15ee5ec fix(web): remove warn and error console log removal (#1086)
* fix(web): remove warn and error console log removal

* chore: comment explaining VITE_ALLOW_CONSOLE_LOGS
2025-01-30 11:14:10 -08:00
Eli Bosley
c3f4cf53c1 fix: more verbose logging for node install to find issues 2025-01-29 15:50:07 -05:00
Zack Spear
d8a5b1711a feat(web): activation modal steps, updated copy (#1079)
* feat(stepper): add shadcn stepper components

* chore(serverState): remove partnerLogo property from server state configuration

* refactor(web): modal add subfooter slot

- adds ability to display content below the modal's content box

* feat(modal): add ActivationSteps component to subFooter slot in WelcomeModal and ActivationModal

* refactor: improve activation modal buttons responsiveness

* refactor: update activation flow messaging and UI

* feat: web/deploy-dev.sh add dynamic web component JS file whitelisting in auth-request.php

* fix: remove test UTM parameters from Unraid docs links in activation modal

* refactor: improve konami code handling and add type safety to activation steps

* chore: remove extra semicolon in serverState.ts

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-29 11:08:23 -08:00
Eli Bosley
8481c9a9fb fix: length 2025-01-29 13:53:59 -05:00
Eli Bosley
ddfc36fd73 fix: more generic test 2025-01-29 13:53:59 -05:00
Eli Bosley
3cc3f27dae feat: coderabbit suggestion 2025-01-29 13:53:59 -05:00
Eli Bosley
097415f6b8 feat: add logrotate cron again 2025-01-29 13:53:59 -05:00
Eli Bosley
b1d9ad7ef1 feat: add log rotation 2025-01-29 13:53:59 -05:00
Eli Bosley
c7d4e39287 feat: swap to async exit hook 2025-01-29 13:33:19 -05:00
Eli Bosley
0c6f44da35 feat: kill timeout extended 2025-01-29 13:33:19 -05:00
Eli Bosley
4655d72fbb feat: more pm2 fixes 2025-01-29 13:33:19 -05:00
Eli Bosley
4b3d6a7ba3 fix: report issues + pm2 issues 2025-01-29 13:33:19 -05:00
Eli Bosley
ed18945088 fix: tests 2025-01-29 12:57:20 -05:00
Eli Bosley
69cd92f974 fix: create api key for connect on startup 2025-01-29 12:55:10 -05:00
Eli Bosley
74b9fd0159 fix: unit test issues 2025-01-28 16:19:04 -05:00
Eli Bosley
ff63535b00 fix: watch all events to load keys 2025-01-28 16:19:04 -05:00
Eli Bosley
76711be3e8 fix: apply and rollback error handling 2025-01-28 16:19:04 -05:00
Eli Bosley
961bcc5db6 fix: remove line from or in button 2025-01-28 16:19:04 -05:00
Eli Bosley
0cfdd5a61b fix: backup restore formatting 2025-01-28 16:19:04 -05:00
Eli Bosley
8d905974be Update api/src/utils.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-28 16:19:04 -05:00
Eli Bosley
132840b0ef Update api/src/utils.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-28 16:19:04 -05:00
Eli Bosley
e4ebfc8a13 fix: file modification service fixes 2025-01-28 16:19:04 -05:00
Eli Bosley
8483143a40 Update api/src/unraid-api/unraid-file-modifier/modifications/sso.modification.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-28 16:19:04 -05:00
Eli Bosley
d6fa35cdee feat: service tests for modifier service 2025-01-28 16:19:04 -05:00
Eli Bosley
8a374b5b27 feat: properly read log level from environment 2025-01-28 16:19:04 -05:00
Eli Bosley
b73623e72a feat: configure PM2 on startup 2025-01-28 16:19:04 -05:00
Eli Bosley
bddda823e1 fix: basic test fixed 2025-01-28 16:19:04 -05:00
Eli Bosley
bb37140d40 feat: initial version of modification service 2025-01-28 16:19:04 -05:00
Eli Bosley
4d8f2ddac6 fix: test issues 2025-01-28 14:58:34 -05:00
Eli Bosley
5afa76043f Update api/src/unraid-api/graph/resolvers/vms/vms.resolver.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-28 14:58:34 -05:00
Eli Bosley
14fe30e925 fix: create api key permissions 2025-01-28 14:58:34 -05:00
Eli Bosley
eb1c62d3d9 fix: cleaner logs for starting API 2025-01-28 14:58:34 -05:00
Eli Bosley
f62f0d3a0f fix: don't check code for execa 2025-01-28 14:58:34 -05:00
Eli Bosley
e7b689c546 fix: code review feedback 2025-01-28 14:58:34 -05:00
Eli Bosley
b9249544fc fix: restart command elegant 2025-01-28 14:58:34 -05:00
Eli Bosley
cdfb3c772b feat: async hypervisor and FIXED vm listing 2025-01-28 14:58:34 -05:00
Eli Bosley
f1e53831c8 feat: hypervisor async imports 2025-01-28 14:58:34 -05:00
Eli Bosley
32f9c50227 Update api/src/unraid-api/cli/start.command.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-28 09:12:54 -05:00
Eli Bosley
a8211cef7d feat: style improvements 2025-01-28 09:12:54 -05:00
Eli Bosley
e338eb9788 fix: completion script registration 2025-01-27 13:34:32 -05:00
Eli Bosley
dae57389c6 feat: restart the API when an SSO user is added 2025-01-27 13:34:32 -05:00
Eli Bosley
44d3d939a7 fix: shell path to unraid-api 2025-01-27 13:34:32 -05:00
Eli Bosley
6bfd8a2687 feat: revert local api key value 2025-01-27 13:34:32 -05:00
Eli Bosley
923e929878 fix: unneeded await on api-key service 2025-01-27 13:34:32 -05:00
Eli Bosley
2ad612cef8 fix: properly log error with template string 2025-01-27 13:34:32 -05:00
Eli Bosley
1756cc5b4b fix: pull token from query not params 2025-01-27 13:34:32 -05:00
Eli Bosley
3a8c9b13ee feat: allow csrf passing through querystring 2025-01-27 13:34:32 -05:00
Eli Bosley
daf904bc1b feat: remove sso if disabled on Unraid-API start 2025-01-27 13:34:32 -05:00
Eli Bosley
632775e435 feat: default value for option 2025-01-27 13:34:32 -05:00
Eli Bosley
e33c7583f7 fix: remove isNaN in favor of number.isNaN 2025-01-27 13:34:32 -05:00
Eli Bosley
55100daed4 feat: try catch restart 2025-01-27 13:34:32 -05:00
Eli Bosley
b9d9105e3e feat: validate token format in both PHP and CLI 2025-01-27 13:34:32 -05:00
Eli Bosley
3734730bf7 feat: state using crypto 2025-01-27 13:34:32 -05:00
Eli Bosley
c1fe95fcb6 feat: warning on missing fields 2025-01-27 13:34:32 -05:00
Eli Bosley
a1351b0469 feat: add api key creation logic 2025-01-27 13:34:32 -05:00
Eli Bosley
f0395bdf47 chore: update readme 2025-01-27 13:34:32 -05:00
Eli Bosley
76cf6f35dc fix: missing server type 2025-01-27 13:34:32 -05:00
Eli Bosley
ca94cc8602 Update web/components/SsoButton.ce.vue
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-27 13:34:32 -05:00
Eli Bosley
f560df0270 feat: unnecessary comment 2025-01-27 13:34:32 -05:00
Eli Bosley
bb95795a31 feat: address log level feedback 2025-01-27 13:34:32 -05:00
Eli Bosley
cbb42dc85e feat: secondary changes 2025-01-27 13:34:32 -05:00
Eli Bosley
060a1992c4 fix: initial feedback about report addressed 2025-01-27 13:34:32 -05:00
Eli Bosley
a1cf44162a feat: error state outside of button 2025-01-27 13:34:32 -05:00
Eli Bosley
1e6fb7e3e3 fix: thorw on invalid token body 2025-01-27 13:34:32 -05:00
Eli Bosley
336478c2e0 feat: Update plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/include/state.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-01-27 13:34:32 -05:00
Eli Bosley
895d5857f9 feat: remove apiKey from server 2025-01-27 13:34:32 -05:00
Eli Bosley
5ca225fe7a feat: exit cli after running command 2025-01-27 13:34:32 -05:00
Eli Bosley
6faef27d7c feat: zod config no longer any 2025-01-27 13:34:32 -05:00
Eli Bosley
bc04129342 feat: CLI options for adding and deleting users 2025-01-27 13:34:32 -05:00
Eli Bosley
b63720a6f2 feat: add line about recommendation for sso command 2025-01-27 13:34:32 -05:00
Eli Bosley
29a8689ad8 fix: lowercase or 2025-01-27 13:34:32 -05:00
Eli Bosley
3042ffa37e feat: restoring sso error 2025-01-27 13:34:32 -05:00
Eli Bosley
942b143fba fix: remove unused login entries 2025-01-27 13:34:32 -05:00
Eli Bosley
75d7e08824 feat: remove sso user options 2025-01-27 13:34:32 -05:00
Eli Bosley
f30292484d feat: remove sso user command 2025-01-27 13:34:32 -05:00
Eli Bosley
3867dfacb2 feat: cleanup disclaimer and command to add users 2025-01-27 13:34:32 -05:00
Eli Bosley
0da77d7119 feat: disable button on submit 2025-01-27 13:34:32 -05:00
Eli Bosley
09f741557b feat: sso testing page and form disable on submit 2025-01-27 13:34:32 -05:00
Eli Bosley
ae753d6bea fix: padding and glob function issues 2025-01-27 13:34:32 -05:00
Eli Bosley
56cfa84794 fix: oauth2 api prefix 2025-01-27 13:34:32 -05:00
Eli Bosley
065211413d feat: glob for files 2025-01-27 13:34:32 -05:00
Eli Bosley
1854aa9f28 fix: dont remove login file without a backup presetn 2025-01-27 13:34:32 -05:00
Eli Bosley
cb59090698 feat: add user with cli 2025-01-27 13:34:32 -05:00
Eli Bosley
81f051e02c feat:sso login boolean 2025-01-27 13:34:32 -05:00
Eli Bosley
11ff890bcc feat: or button on sign in page 2025-01-27 13:34:32 -05:00
Eli Bosley
3abf20b347 feat: sso button token exchange 2025-01-27 13:34:32 -05:00
Eli Bosley
6f5edb2406 feat: move ssoenabled to a boolean flag rather than ids 2025-01-27 13:34:32 -05:00
Eli Bosley
428ad15ec7 feat: back to callbackUrl 2025-01-27 13:34:32 -05:00
Eli Bosley
bd584902e0 feat: use state passing to validate requests 2025-01-27 13:34:32 -05:00
Eli Bosley
aae38e3404 fix: dev mode 2025-01-27 13:34:32 -05:00
Eli Bosley
e5d1146613 feat: inject after form 2025-01-27 13:34:32 -05:00
Eli Bosley
b3551a1b69 fix: further resolve sso sub ids issues 2025-01-27 13:34:32 -05:00
Eli Bosley
76a9ae9386 fix: pass ssoSubIds only 2025-01-27 13:34:32 -05:00
Eli Bosley
92799312c9 fix: pass token to password field 2025-01-27 13:34:32 -05:00
Eli Bosley
b969f3a9ab feat: dont pass entire server state for privacy 2025-01-27 13:34:32 -05:00
Eli Bosley
3419837eb5 feat: enable PR releases on non-mainline merges 2025-01-27 13:34:32 -05:00
Eli Bosley
2b25537e26 feat: unraid single sign on with account app 2025-01-27 13:34:32 -05:00
Eli Bosley
2d3892deb8 feat: remove unused fields 2025-01-27 13:34:32 -05:00
Eli Bosley
0ab40fefda fix: unit tests updated 2025-01-27 13:34:32 -05:00
Eli Bosley
58f65eabba fix: stop command exits 2025-01-27 13:34:32 -05:00
Eli Bosley
89d756ef4e feat: csv validation 2025-01-27 13:34:32 -05:00
Eli Bosley
a1a046f900 fix: back to default configs 2025-01-27 13:34:32 -05:00
Eli Bosley
d844903d78 fix: reset config to be closer to default 2025-01-27 13:34:32 -05:00
Eli Bosley
29ca5829ff feat: only write config when a specific config update action occurs 2025-01-27 13:34:32 -05:00
Eli Bosley
27049d9d91 fix: start command simplification 2025-01-27 13:34:32 -05:00
Eli Bosley
03e336b72f feat: remove unused config sections 2025-01-27 13:34:32 -05:00
Eli Bosley
c2e29dfb5f feat: cleanup config entries 2025-01-27 13:34:32 -05:00
Eli Bosley
e9bd18a409 feat: enable token sign in with comma separated subs in myservers.config 2025-01-27 13:34:32 -05:00
Eli Bosley
02c197f244 feat: use zod to parse config 2025-01-27 13:34:32 -05:00
Eli Bosley
6f9977eea0 feat: remove unused vars 2025-01-27 13:34:32 -05:00
Eli Bosley
05e77a4bc6 feat: use execa for start and stop 2025-01-27 13:34:32 -05:00
Eli Bosley
a892a3ce35 fix: deprecated version warning 2025-01-27 13:34:32 -05:00
Eli Bosley
33dd90af04 feat: better pm2 calls, log lines 2025-01-27 13:34:32 -05:00
Eli Bosley
7fa849d2a0 feat: cli Commands 2025-01-27 13:34:32 -05:00
Eli Bosley
7ceac1b184 feat: switch to nest-commander 2025-01-27 13:34:32 -05:00
mdatelle
3348a47470 feat: add command to package.json scripts 2025-01-27 13:34:32 -05:00
mdatelle
85cdb8f525 feat: add description flag, remove console log, and update readme 2025-01-27 13:34:32 -05:00
mdatelle
796cb09c61 feat: create key cli command logic and add to index command list 2025-01-27 13:34:32 -05:00
Eli Bosley
a554bde5c2 feat: initial setup of permissions on keys (#1068)
* feat: initial setup of permissions on keys

* fix: remove API keys

* test: update me resolver, findByIdWithSecret, findByKey and saveApiKey tests

* test: update and fix the rest of the failing api key tests

* fix: add reflect-metadata to test setup in vite config

* fix: revert myservers.cfg to original

* fix: update User type on me resolver

* fix: make permissions nullable and rerun codegen

* fix: update import syntax in me resolver

* refactor: move create-local-connect-api-key to api key service and handle in onModuleInit

* test: add tests for createLocalApiKeyForConnectIfNecessary

* refactor: add validation to me resolver

* refactor: address code rabbit suggestions

* refactor: update me resolver tests and fix hasOwnProperty error

* refactor: remove console log

* test: add additional coverage for me resolver tests

* test: fix failing test

* refactor: address review comments, add new api-key service test, and remove deprecated keys

* refactor: address review comments

---------

Co-authored-by: mdatelle <mike@datelle.net>
2025-01-23 15:37:15 -05:00
Pujit Mehrotra
3acc0dc9c0 fix: integration of unraid-ui tailwind config in web (#1074)
* fix: integration of unraid-ui tailwind config in web

* chore(ci): inline unraid-ui build
2025-01-21 15:48:25 -05:00
Pujit Mehrotra
c163998175 fix(api): retry mothership connection up to 3x before logout (#1069)
* fix(api): retry mothership connection up to 3x before logout

* refactor: add variable for max # of retry attempts
2025-01-16 16:15:58 -05:00
renovate[bot]
4fbbbd7f6a chore(deps): update dependency tailwindcss to v3.4.17 2025-01-16 10:44:52 -05:00
renovate[bot]
203c2b88ac chore(deps): update dependency prettier-plugin-tailwindcss to v0.6.10 2025-01-16 10:44:34 -05:00
renovate[bot]
746d1a8aaa chore(deps): update dependency typescript to v5.7.3 2025-01-16 10:44:14 -05:00
renovate[bot]
c0d3cf5782 fix(deps): update dependency @apollo/client to v3.12.6 2025-01-16 10:44:05 -05:00
renovate[bot]
64d3765a9a fix(deps): update dependency @floating-ui/dom to v1.6.13 2025-01-16 10:43:53 -05:00
Pujit Mehrotra
5dd36d1836 feat(api): graphql sandbox on unraid servers (#1047)
Enables a sandbox at /graphql for developers wanting to interact with the unraid api.

* chore(api): enable introspection by default in deploy-dev script

* refactor(api): load emhttp state during init

so emhttp settings are always available, even at module load time.

* feat(api): add csrf token to graphql playground

* Revert "refactor(api): load emhttp state during init"

* feat(api): use custom apollo plugin to render sandbox
2025-01-16 10:17:09 -05:00
renovate[bot]
4264557789 chore(deps): update dependency @ianvs/prettier-plugin-sort-imports to v4.4.1 2025-01-15 12:49:39 -05:00
renovate[bot]
344b023503 fix(deps): update graphql-tools monorepo 2025-01-15 12:49:23 -05:00
renovate[bot]
0331e24a74 fix(deps): update dependency uuid to v11.0.5 2025-01-15 11:45:04 -05:00
renovate[bot]
2b597f9f02 fix(deps): update nest monorepo to v10.4.15 2025-01-15 11:44:43 -05:00
renovate[bot]
bd31e09bcf fix(deps): update nest-graphql monorepo to v12.2.2 2025-01-15 11:44:34 -05:00
renovate[bot]
6c73cbf4ad chore(deps): update dependency @nuxt/devtools to v1.7.0 2025-01-15 11:44:17 -05:00
renovate[bot]
4b4aadb5f1 chore(deps): update dependency @nuxtjs/tailwindcss to v6.13.1 2025-01-15 11:43:49 -05:00
renovate[bot]
5ddecce21c chore(deps): update dependency @vue/tsconfig to ^0.7.0 2025-01-15 11:43:37 -05:00
Michael Datelle
6669a963af refactor: unraid ui cleanup and migration (#998)
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com>
Co-authored-by: mdatelle <mike@datelle.net>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Spear <zackspear@users.noreply.github.com>
2025-01-15 11:15:52 -05:00
Eli Bosley
8d386043ae chore: comment to detail archived count 2025-01-14 18:14:42 -05:00
Eli Bosley
16f00a0d8c feat: update based on review feedback 2025-01-14 18:14:42 -05:00
Eli Bosley
a4e2a77410 feat: sidebar notification count 2025-01-14 18:14:42 -05:00
renovate[bot]
91a9949a5c fix(deps): update dependency @apollo/client to v3.12.6 2025-01-14 16:46:15 -05:00
renovate[bot]
235746c0ba chore(deps): update dependency @types/node to v20.17.13 2025-01-14 16:46:07 -05:00
renovate[bot]
e366cad0a4 fix(deps): update dependency pm2 to v5.4.3 2025-01-14 16:45:59 -05:00
renovate[bot]
83344e05c1 fix(deps): update dependency radix-vue to v1.9.12 2025-01-14 16:45:50 -05:00
renovate[bot]
61ec04cb87 fix(deps): update dependency node-window-polyfill to v1.0.4 2025-01-14 15:20:05 -05:00
renovate[bot]
a947ff14fa fix(deps): update dependency express to v4.21.2 2025-01-14 15:19:55 -05:00
renovate[bot]
5dfd6d5ded fix(deps): update dependency focus-trap to v7.6.4 2025-01-14 15:19:45 -05:00
renovate[bot]
71e2b70678 fix(deps): update dependency got to v14.4.5 2025-01-14 15:19:30 -05:00
renovate[bot]
4daa54cfb5 fix(deps): update dependency graphql-ws to v5.16.2 2025-01-14 15:19:19 -05:00
renovate[bot]
7ef3729769 fix(deps): update dependency openid-client to v6.1.7 2025-01-14 15:18:57 -05:00
renovate[bot]
46a368e1b5 fix(deps): update dependency p-retry to v6.2.1 2025-01-14 15:18:45 -05:00
Pujit Mehrotra
b53bb3f197 fix(api): pm2 start script & limit auto restarts (#1040)
* fix(api): limit auto restarts to 10

so persistent errors (e.g. during server boot) don't cause an infinite
loop that's difficult for users to see

* fix(api): invoke js directly from pm2 instead of npm script

npm script wraps it in a child process, so we lose ipc.

* fix(api): update api key service test for ensureDir change

* chore: increase max_restart threshold to 10s per cycle
2025-01-14 14:27:00 -05:00
renovate[bot]
1935ba1a7f chore(config): migrate config renovate.json 2025-01-14 13:15:34 -05:00
Eli Bosley
14abc13cc8 fix: mock ensureDirSync 2025-01-14 11:07:46 -05:00
renovate[bot]
c3548d5122 chore(deps): update dependency @types/node to v22.10.6 2025-01-13 16:17:24 -05:00
renovate[bot]
6c54fa14b1 fix(deps): update dependency execa to v9.5.2 2025-01-13 16:17:12 -05:00
Eli Bosley
8b93bcea08 feat: always ensureDirectory for keys exists 2025-01-13 15:58:43 -05:00
Eli Bosley
a6cd74dc5c fix: ensure directory exists before making connect key 2025-01-13 15:56:17 -05:00
Eli Bosley
aa1ef1bd4c feat: disable casbin logging 2025-01-13 15:41:09 -05:00
renovate[bot]
2cdc02f64a chore(deps): update dependency @ianvs/prettier-plugin-sort-imports to v4.4.1 2025-01-13 13:20:48 -05:00
Pujit Mehrotra
d0819b8d02 fix(web): flash of disconnected api state on page load
Changes initial unraidApiStatus to connecting instead of offline. This
prevents a flash of the offline state on page loads and navigation.
2025-01-13 13:20:32 -05:00
renovate[bot]
74b3e29c74 fix(deps): update dependency chokidar to v4.0.3 2025-01-13 13:20:18 -05:00
renovate[bot]
b32f84b105 fix(deps): update dependency dotenv to v16.4.7 2025-01-13 13:20:09 -05:00
renovate[bot]
806bd633ac fix(deps): update dependency @nestjs/schedule to v4.1.2 2025-01-13 13:05:26 -05:00
renovate[bot]
e5e1c43bb3 fix(deps): update dependency @floating-ui/vue to v1.1.6 2025-01-13 11:56:11 -05:00
Pujit Mehrotra
3b2d61efc2 fix(api): sanitize incoming user session id's 2025-01-13 11:50:24 -05:00
Pujit Mehrotra
fe98295496 fix(api): validate cookie session data 2025-01-13 11:50:24 -05:00
Pujit Mehrotra
b9947108a4 doc(api): document ready signal during nest server boot 2025-01-13 10:55:26 -05:00
Pujit Mehrotra
3c27b51ab8 fix(api): delay pm2 start until server has booted
prior to this, pm2 would mark unraid-api as started as soon as the
node process started. The Nest server wouldn't finish booting until
later. This meant unraid-api could "start", but the webgui wouldn't be
fully functional because it couldn't connect to the api yet. This was a
sucky user & dev experience.
2025-01-13 10:55:26 -05:00
Pujit Mehrotra
2327b00d30 fix(api): update deploy-dev script to dist instead of src 2025-01-13 10:55:26 -05:00
renovate[bot]
bf3b00fbaf chore(deps): update dependency @types/node to v20.17.12 2025-01-13 10:52:54 -05:00
renovate[bot]
4f04f93033 chore(deps): update dependency nodemon to v3.1.9 2025-01-13 10:52:44 -05:00
renovate[bot]
5dc13755df fix(deps): update dependency @floating-ui/dom to v1.6.13 2025-01-13 10:52:31 -05:00
renovate[bot]
69a34aca14 chore(deps): update dependency vite-tsconfig-paths to v5.1.4 2025-01-13 10:52:20 -05:00
renovate[bot]
bbc1e02782 chore(deps): update dependency vite to v5.4.11 2025-01-13 10:52:11 -05:00
renovate[bot]
e77db18870 chore(deps): update dependency tailwindcss to v3.4.17 2025-01-13 10:52:03 -05:00
renovate[bot]
b6805d439e chore(deps): update dependency typescript to v5.7.3 2025-01-13 10:51:52 -05:00
Pujit Mehrotra
f37dda16c2 fix(api): slow init of unraid-api cli (#1022)
* lazy load debug stuff

* refactor(api): lazy load cli help command
2025-01-13 10:26:38 -05:00
renovate[bot]
88be62317f chore(deps): update dependency @swc/core to v1.10.7 2025-01-10 10:18:51 -05:00
renovate[bot]
6b5e012950 chore(deps): update dependency @nuxt/eslint to v0.7.5 2025-01-10 10:18:42 -05:00
renovate[bot]
e05a05926d chore(deps): update dependency @types/bytes to v3.1.5 2025-01-10 09:23:57 -05:00
renovate[bot]
c817cc4b7e fix(deps): update dependency ini to v4.1.3 2025-01-10 09:23:46 -05:00
renovate[bot]
491b5fe8bc chore(deps): update dependency @rollup/plugin-node-resolve to v15.3.1 2025-01-10 09:23:37 -05:00
renovate[bot]
8675653e4e fix(deps): update graphqlcodegenerator monorepo 2025-01-10 09:23:17 -05:00
renovate[bot]
1f9e282880 fix(deps): update apollo graphql packages 2025-01-10 09:23:05 -05:00
renovate[bot]
90cf2c8a16 chore(deps): update dependency @types/dockerode to v3.3.34 2025-01-10 09:22:53 -05:00
renovate[bot]
729ed42329 chore(deps): update dependency @types/node to v22.10.5 2025-01-10 09:22:39 -05:00
Zack Spear
309d221542 feat / OEM whitelabel support (#973)
* feat: begin fixing dark mode in the webcomponents

* feat: lots of progress on colors

* feat: begin nuking alpha beta gamma

* feat: set background color on webcomponents

* fix: more color work

* feat: eliminate all alpha beta gamma variable usage

* feat: move variable declarations to theme.ts

* feat: begin fixing dark mode in the webcomponents

* feat: lots of progress on colors

* feat: begin nuking alpha beta gamma

* feat: set background color on webcomponents

* fix: more color work

* feat: eliminate all alpha beta gamma variable usage

* feat: download nodejs and install on legacy OS versions

* feat: do not move upgradepkg

* feat: array iteration for restoring files

* feat: separate install process

* feat: extract node to usr/local/

* feat: move variable declarations to theme.ts

* feat: remove nghttp3 and only bundle nodejs

* feat: validate entries correctly

* fix: upgradepkg

* feat: copy only needed files for nodejs

* fix: install syntax error

* fix: strip components from tar line

* feat: error when nodejs download fails

* feat(php): add OEM data extraction functionality

* feat(web): WIP add OEM activation modal and integrate OEM data handling

* refactor: replace oem etamology with activation

* feat(web): enhance activation modal with header and main title options

* refactor(web): update activation modal title to handle partner name conditionally

* feat: make partnerName optional in activation code data

* refactor: remove activationCodeStore from UserProfile component

* feat: integrate activation code data into server store

* feat: enhance activation code store to include callback actions and improve modal visibility logic

* refactor: remove unused theme reference from ColorSwitcher component

* fix: update partnerName in activationCodeData for clarity

* refactor: adjust gap spacing in Modal component for improved layout

* feat: enhance Activation Modal component with dynamic title and description, and add documentation buttons

* feat: implement localization for Activation Modal component titles and button texts

* feat: add new translations for activation prompts and welcome messages in the WebComponentTranslations class

* feat: implement key sequence to close Activation Modal and persist visibility state

* feat: update activation logic to conditionally activate or redeem based on activation code presence

* feat(plg): plg install / remove partner banner

* feat(plg): on install update config to enable display settings banner and on remove banner setting if no custom banner used

* fix(plg): plg remove, display banner no if no custom image

* feat(plg): implement partner banner handling and system model identification from activation JSON

* feat(web): add loading and error states to notification sidebar

* refactor(web): add container for loading & error states

* feat(web): add count labels to notification tabs

* refactor(web): lift notifications overview query to Sidebar from Indicator

* fix(web): refetch notifications for sidebar when new notifications arrive

* feat(web): move notification indicator icons to top-right of bell icon

previously, icons were placed next to bell icon because the status indicators
were not accessible to color-blind users. this commit replaces circular
status indicators with the icons.

* feat(web): remove notification indicator pulse

the pulse was initially added to provide visual feedback when:

1. a new notification arrived
2. an alert notification was unread

because we began using the legacy notify script, we now get a toast
on new notifications. re:2, feedback on the pulse was mixed, so i'm
removing it.

* refactor(plg): improve conditional for activation & partner setup

* feat(plg): add case model icon handling based on activation JSON

* feat(plg): enhance partner setup process with detailed logging and system identification updates and setup flag

* feat(plg): add setup flag file creation and logging for activation changes

* feat(plg): update activation setup flag checks for banner, case model icon, and system identity

* fix(plg): add error handling for invalid activation JSON and improve conditional checks for setup flags

* fix(plg): improve partner banner and case model icon setup logic with enhanced checks and comments

* fix(plg): update case model icon configuration to prevent newline issues in parsing

* fix(plg): remove unnecessary echo debug statements and improve setup flag handling for partner details

* fix(plg): remove unnecessary registration page check from activation code modal logic

* fix(plg): add overlay opacity prop to modal components for customizable background transparency

* fix(plg): enhance modal component with vertical centering option and adjust max-width

* fix(plg): enhance configuration handling by dynamically updating multiple header parameters in the config file

* fix(plg): improve comments and enhance setup flag handling for custom icons in activation logic

* fix(translations): correct capitalization and punctuation in user prompts for consistency

* fix(store): enhance activation code data structure with additional properties and correct partner URL reference

* fix(modal): enhance activation modal with dynamic partner logo and improved title handling

* fix(store): update activation code data structure with additional properties and correct partner details

* fix(index): refactor badge and button color handling with typed constants for improved maintainability

* fix(dependencies): add vue-tsc for improved TypeScript support in Vue projects

* refactor(plugin): remove unnecessary comments and clean up code structure

* refactor(plugin): remove todo comment for custom header logo

* fix(Modal): add partnerUrl handling for logo link and improve code structure

* fix(serverState): update partnerLogoPath to use a placeholder image for development

* feat(plugin): add rsync activation script for testing activation modal & installs

* refactor(activationCode): remove debug log for modal visibility check

* feat(plugin): enhance activation process by adding logo and case model handling

* refactor(activationCode): rename partnerLogoPath to partnerLogo and update handling for logo file type

* refactor(activationCode): remove debug log for partnerLogo watcher

* chore(nuxt.config): add ignore rule for webGui images directory

* refactor(plugin): rename params array to DISPLAY_PARAMS and update handling for configuration updates

* fix(web): partner logo handling for themes

* fix(plg): activation oem, custom case icon cfg handling

* fix(plugin): replace sed with awk for config file updates in DISPLAY_PARAMS handling

* fix(web): add target and rel attributes to partner logo link for security

* feat(plugin): add theme parameter to DISPLAY_PARAMS and activation code interface

* fix(plugin): replace sed with parameter expansion and awk for config file updates

* fix(plugin): reboot logic for plg install to prevent settings overwrite

* feat(plugin): streamline activation and partner setup by abstracting scripts for better maintainability

* fix(plugin): update script source paths for activation and partner setup

* fix(plugin): update script source paths for activation and partner setup to use relative paths

* fix(plugin): update script source paths for activation and partner setup to use absolute paths

* fix(plugin): add debug mode support to activation scripts and update setup flag handling

* fix(plugin): enhance activation scripts with debug mode and conditional execution for safety

* refactor(plugin): reposition execution of activation_code setup / remove scripts

* fix(plugin): add checks for activation_code_setup script existence and improve deletion logging

* fix(plugin): add option to remove setup flag after script execution

* fix(plugin): streamline activation script execution by removing unnecessary checks

* fix(plugin): remove duplicate activation_code_setup script sourcing

* feat(modal): add overlay color prop and enhance class binding for modal background

* feat(activation): update modal overlay color and opacity

* feat(plg): add WebComponentsExtractor class for managing JS file retrieval

* feat(plugin): myservers1.phpintegrate WebComponentsExtractor for dynamic script tag generation

* feat(activation): enhance getData method to support JSON output and add getDataForHtmlAttr for HTML-safe JSON

* refactor(activation): simplify getData method by removing parameters

* feat(plugin): add welcome-modal.php for displaying server state and web components

* refactor(web): activation code store rename modal visibility variables for clarity

* feat(web): add WelcomeModal component for user onboarding and server setup

* feat(plugin): activation_code setup and remove script support welcome modal

* refactor(plugin): streamline activation code setup script by removing some comments

* fix(plugin): update activation code setup script to prepend items to auth request allow list array

* feat: enhance ActivationCodeExtractor with partner logo handling and metadata extraction

- Added constants for document root and web GUI images directory.
- Introduced properties for partner name, URL, logo path, and logo file type.
- Implemented methods to retrieve partner logo path, render logo string, partner name, and URL.
- Enhanced data extraction logic to include partner-related information from JSON data.
- Added debug method for outputting internal state for troubleshooting.

* refactor: update activation-data.php to include debug output for ActivationCodeExtractor

- Removed JSON response and replaced it with a debug output wrapped in <pre> tags.
- This change allows for easier troubleshooting by displaying internal state information directly on the page.

* feat: inject partner logo into DefaultPageLayout and update JS file paths

- Modified the activation code setup script to change the path of JavaScript files to be relative to the web GUI's webroot.
- Added functionality to inject a partner logo into the DefaultPageLayout by replacing the existing logo string.
- Implemented a conditional backup mechanism for the DefaultPageLayout file before making changes.
- Included debug output to confirm successful injection or report errors during the process.

* feat: add partner logo display functionality and style adjustments

- Introduced a new file for displaying the partner logo, which retrieves the logo and URL based on the activation code.
- Added CSS styles to adjust the display properties of the partner logo in the header, ensuring proper sizing and alignment.
- Enhanced the integration of the partner logo into the existing plugin structure.

* refactor: simplify partner logo injection debug output in activation code setup script

- Removed syntax check for the DefaultPageLayout file after injecting the partner logo.
- Streamlined debug output to confirm successful injection without additional checks, enhancing clarity and reducing complexity.

* style: adjust partner logo height in myservers1.php

* style: update partner logo width in PartnerLogoImg.vue

- Changed the CSS class for the partner logo image from a max height constraint to a fixed width of 72 units, ensuring better responsiveness and alignment in the layout.

* fix: update modal title attribute for conditional close behavior

- Modified the title attribute of the modal overlay to conditionally display the close instruction based on the showCloseX property. This change improves accessibility by ensuring the title is only set when the close button is visible.

* refactor: update partner logo handling in activation code scripts and extractor

- Changed the partner logo file name to 'partner-logo.svg' in ActivationCodeExtractor.
- Simplified logo path handling by removing unnecessary file type checks and directly using the SVG file.
- Updated CSS in myservers1.php to target only the SVG logo.
- Modified activation code setup and removal scripts to consistently reference the SVG logo, improving clarity and maintainability.

* feat: enhance activation code setup script to include server name handling

- Added logic to retrieve and set the server name from the activation JSON if the current system model or comment is not set, or if the current name is "Tower".
- Improved debug output to include the partner server name, enhancing visibility during the activation process.
- Sanitized the partner server name to remove quotes and backslashes for better handling.

* feat: validate activation JSON before proceeding with setup

- Added validation for the activation JSON file to ensure it is correctly formatted before executing the setup process.
- Enhanced debug output to indicate whether the JSON is valid or not, improving troubleshooting capabilities.
- The setup will now only proceed if the activation JSON is confirmed to be valid, preventing potential errors during execution.

* fix(plg): improve warning message for invalid activation JSON in setup script

* feat: enhance activation code handling with partner logo integration

- Added a new optional property 'partnerLogo' to the ActivationCodeExtractor class and updated related interfaces to support boolean values for logo display.
- Removed the PNG logo reference from the activation code setup script, streamlining the logo handling process.
- Updated the server state to utilize the new 'partnerLogo' property, ensuring consistent logo display logic across the application.
- Adjusted computed properties in the activation code store to reflect the changes in logo handling, improving clarity and maintainability.

* fix: correct activation JSON validation in setup script

- Updated the activation code setup script to use 'jq empty' for validating the activation JSON file, ensuring proper error handling and validation.
- This change improves the robustness of the setup process by accurately checking the JSON format before proceeding.

* fix: correct comment formatting in dynamix.unraid.net.plg

- Fixed a formatting issue in the comment regarding the use of myservers.cfg values to prevent conflicts during installation. This change improves code readability and clarity.

* chore: update rsync activation script comments for clarity

- Revised comments in the rsync-activation-dir.sh script to better describe its purpose and usage.
- Enhanced documentation with an example usage to improve user understanding of the script's functionality.

* refactor: clean up activation data and extractor files

- Removed outdated copyright comments from activation-data.php and activation-code-extractor.php for improved readability.
- Simplified the debug output in activation-data.php by using short PHP tags.
- Updated the comment in the ActivationCodeExtractor class to be more concise, enhancing clarity for future developers.

* fix: remove unnecessary CSS properties in myservers1.php

- Eliminated redundant display and margin properties from the CSS in myservers1.php to streamline the styling and improve code clarity.

* refactor: streamline WebComponentsExtractor class and update method names

- Removed outdated copyright comments from web-components-extractor.php for improved readability.
- Renamed method getJsFileUrl() to getJSFileRelativePath() to enhance clarity and consistency in naming conventions.
- Adjusted indentation for better code formatting and readability.

* refactor: simplify partner logo handling in activation code script

- Removed unnecessary variable initialization and included only essential requires for improved clarity.
- Streamlined the code in partner-logo.php to focus on the core functionality of displaying the partner logo.
- Enhanced maintainability by reducing complexity in the script.

* refactor: clean up activation and server state files

- Removed outdated copyright comments and unnecessary variable initializations from activation-data.php and server-state.php for improved readability.
- Streamlined the code by eliminating redundant require statements, focusing on essential functionality.
- Enhanced maintainability and clarity by simplifying the structure of both files.

* feat: add password creation prompts to translations

- Introduced new translation strings for password creation in both PHP and JSON files.
- Enhanced user guidance by providing detailed messages about the importance of the password for system access and management.
- Improved overall user experience by ensuring clarity in the password setup process.

* refactor: update activation code setup script comments

* refactor: enhance activation code removal script functionality

- Updated the activation code removal script to delete additional related files, including PHP and setup scripts, for a more thorough cleanup.
- Improved comments for clarity on script usage and options, particularly regarding the self-delete functionality.
- Streamlined the deletion process by using an array to manage files to be removed, enhancing maintainability and readability.

* fix: update WelcomeModal to disable close button

* refactor: reorganize activation code setup and improve script clarity

- Moved the activation and partner setup section to follow the web component timestamp check to ensure correct targeting during setup.
- Updated comments for better clarity regarding the activation code setup process.
- Retained the warning message about not closing the window yet for user guidance.

* refactor: enhance activation code setup script with improved comments and logic

- Updated comments to clarify the purpose of server name, model, and description checks.
- Modified conditional logic to include additional checks for server identification.
- Added a TODO note regarding the necessity of updating the ident.cfg file, ensuring future review for potential optimizations.

* refactor: update activation code scripts to use .done flag

* refactor: introduce constant for activation modal storage key

- Added a new constant for the activation code modal hidden storage key to improve code maintainability and clarity.
- Updated the activation code store to utilize the new constant, replacing hardcoded string references.

* feat: enhance user onboarding and modal components

- Added new translation strings for activating Unraid licenses and creating Unraid.net accounts to improve user onboarding experience.
- Updated the WelcomeModal and Activation Modal components to reflect new messaging and improved styling options, including the ability to disable shadows.
- Implemented a workaround in the WelcomeModal to address font-size inconsistencies between login and authenticated pages.
- Refactored the index page to correctly pass server data to the WelcomeModal component.

* chore: comment out WelcomeModalCe component for testing

* feat: add disableOverlayClose prop to Modal and WelcomeModal components

- Introduced a new prop `disableOverlayClose` to the Modal component, allowing users to prevent closing the modal by clicking on the overlay.
- Updated the WelcomeModal component to utilize the new `disableOverlayClose` prop, enhancing modal behavior customization.

* refactor: update activation code removal script to delete by default

- Changed the activation code removal script to use a dry-run flag instead of a self-delete flag, enhancing safety during execution.
- Updated the plugin file to reflect the removal of the --delete option, ensuring consistency with the new script behavior.

---------

Co-authored-by: Eli Bosley <ekbosley@gmail.com>
Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com>
2025-01-09 16:06:10 -05:00
renovate[bot]
859440386e chore(deps): update dependency @types/lodash to v4.17.14 2025-01-08 15:38:03 -05:00
Eli Bosley
ceac6269b3 fix: remove usage of Role.UPC 2025-01-08 14:47:47 -05:00
Eli Bosley
286ffc54e5 fix: excess spacing in api-key.service 2025-01-08 14:47:47 -05:00
Eli Bosley
84f4f67ce1 fix: extra spacing in config.ts 2025-01-08 14:47:47 -05:00
Eli Bosley
8827483699 feat: rename api key resource back to api_key 2025-01-08 14:47:47 -05:00
Eli Bosley
f8393eeebe fix: clearer error messaging 2025-01-08 14:47:47 -05:00
Eli Bosley
5d72b5a970 fix: use placeholder in test API key 2025-01-08 14:47:47 -05:00
Eli Bosley
1f5c6424c7 feat: faster failure logic 2025-01-08 14:47:47 -05:00
Eli Bosley
39612cd978 fix: swap to placeholder key 2025-01-08 14:47:47 -05:00
Eli Bosley
b1b93e2783 fix: only instantiate service one time 2025-01-08 14:47:47 -05:00
Eli Bosley
eff6c32ccd fix: connect key role 2025-01-08 14:47:47 -05:00
Eli Bosley
b1ac0f9c83 fix: update tests 2025-01-08 14:47:47 -05:00
Eli Bosley
d88b1e9660 fix: create connect key 2025-01-08 14:47:47 -05:00
Eli Bosley
124fb610b1 fix: find by key, not ID 2025-01-08 14:47:47 -05:00
Eli Bosley
143515560c feat: generate key one time 2025-01-08 14:47:47 -05:00
Pujit Mehrotra
f0f5a3057a feat: add csrf support to api & web components (#999) 2025-01-08 14:22:06 -05:00
Pujit Mehrotra
4404208deb chore(web): mock user session cookie during development (#997)
* chore(web): mock user session cookie during development

* refactor(scripts): change default mock session name to mock-user-session

* tmp: log cookies in production

* refactor(api): add dev fixture for a mock user session

* fix(web): only mock session cookie during development

* fix(web): type coercion of MOCK_USER_SESSION env flag
2025-01-08 14:15:46 -05:00
Pujit Mehrotra
f45719fa6b feat(api): rm 2fa & t2fa from myservers config type (#996)
* feat(api): rm 2fa & t2fa from myservers config type

* feat(api): rm 2fa & T2fa from config normalizer

* doc(plugin): rm obsolete documentation on 2fa/t2fa feature
2025-01-08 14:15:15 -05:00
Pujit Mehrotra
acba0b0365 feat(plugin): rm Date & Time format settings from Notification Settings 2025-01-08 14:14:41 -05:00
renovate[bot]
8760a66907 chore(deps): update dependency @tailwindcss/typography to v0.5.16 2025-01-08 13:13:29 -05:00
renovate[bot]
5f81c4bd27 chore(deps): update dependency @swc/core to v1.10.6 2025-01-08 13:04:57 -05:00
renovate[bot]
2310d53684 chore(deps): update dependency @nuxt/eslint to v0.7.4 2025-01-08 13:02:39 -05:00
renovate[bot]
5b3ec8304c chore(deps): update dependency jiti to v2.4.2 2025-01-08 12:58:13 -05:00
Eli Bosley
7a009b6be7 fix: logrotate error 2025-01-08 11:04:10 -05:00
Pujit Mehrotra
be7135efdd feat(web): clear notifications indicator after opening sidebar 2025-01-08 10:48:06 -05:00
Pujit Mehrotra
939383e4ef feat(web): rm api-key validation from connect sign in (#986)
* feat(api): rm api-key validation from connect sign in

This will now happen at the mothership layer.

* chore(api): rm redundant validate-api-key helper

* chore(api): rm obsolete api-key-check-job tests

* chore(api): suppress noisy notification loading logs

* feat(api): rm client-side mothership api key validation

refactor(api): encapsulate mothership jobs lifecycle

* fix(api): mothership gql client lifecycle & error handling

the api would crash when an invalid mothership api key was detected/invalidated *after* the inital server start/connection.

* refactor(api): rm mothership API_KEY_STATUS enum
2025-01-08 10:25:28 -05:00
Eli Bosley
0042f14ab3 fix: formatting issue 2025-01-08 10:16:34 -05:00
Eli Bosley
3e8c101edd fix: delete unused line 2025-01-08 10:16:34 -05:00
Eli Bosley
477c113ce1 fix: add another missing symlink 2025-01-08 10:16:34 -05:00
Eli Bosley
caf797cf4a feat: fix pm2 setup and add link command 2025-01-08 10:16:34 -05:00
Eli Bosley
73a12496d5 feat: attempt to start unraid-api with background task 2025-01-08 10:16:34 -05:00
Eli Bosley
cea11daf15 feat: manually install libvirt in build process to ensure it is included in the final build 2025-01-08 10:16:34 -05:00
Eli Bosley
bb6baf9bf4 feat: always start the API and run npm link from script path 2025-01-08 10:16:34 -05:00
Eli Bosley
5f1a61d4aa feat: fix missing flash line 2025-01-08 10:16:34 -05:00
Eli Bosley
bbf28075c6 feat: use plugin file for install and uninstall 2025-01-08 10:16:34 -05:00
Pujit Mehrotra
7dcf947527 feat(web): open official release notes via header os version 2025-01-07 09:59:36 -08:00
Pujit Mehrotra
4ee42a6cf6 fix(web): escaping html-encoded symbols like apostrophes in translations (#1002)
e.g. end user would see `&apos;` from translations
2025-01-06 14:59:36 -05:00
Michael Datelle
91de6e6c1e feat: unraid ui component library (#976) 2024-12-20 14:08:34 -05:00
Eli Bosley
e2a1f27b22 fix: check width before changing viewport 2024-12-18 14:22:28 -05:00
Eli Bosley
4e9ab645e6 fix: edit settings padding issue 2024-12-18 14:22:28 -05:00
Eli Bosley
7828ef2648 feat: use text-secondary-foreground instead of gray 2024-12-18 14:22:28 -05:00
Eli Bosley
dfa27e2c0d fix: improve typing and format lookup 2024-12-18 14:22:28 -05:00
Eli Bosley
9d2405bd21 feat: viewport watch refactor 2024-12-18 14:22:28 -05:00
Eli Bosley
e1515a118a fix: recreate package-lock to fix issues 2024-12-18 14:22:28 -05:00
Eli Bosley
961c343f5d Update web/components/Notifications/Sidebar.vue
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-12-18 14:22:28 -05:00
Eli Bosley
6cbb9c07e4 fix: 12 hour timestamp logic corrected 2024-12-18 14:22:28 -05:00
Eli Bosley
833a99fe18 fix: render function fixed 2024-12-18 14:22:28 -05:00
Eli Bosley
943c907d03 fix: downgrade marked to fix changelog preview issue 2024-12-18 14:22:28 -05:00
Eli Bosley
d28fb24d68 fix: marked single input 2024-12-18 14:22:28 -05:00
Eli Bosley
0c1b89ff41 fix: remove unused date-fns 2024-12-18 14:22:28 -05:00
Eli Bosley
cead97560c feat: responsive notifications 2024-12-18 14:22:28 -05:00
Michael Datelle
5f0446fa79 fix: authorization type error (#987)
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2024-12-18 12:03:28 -05:00
Eli Bosley
000692ca50 fix: remove extra space 2024-12-17 11:48:45 -05:00
Eli Bosley
d8f9f03146 fix: remove console log 2024-12-17 11:48:45 -05:00
Eli Bosley
29035429bd feat: nuxt config simplification and formatting 2024-12-17 11:48:45 -05:00
Eli Bosley
5f8602b864 fix: switch to useToggle 2024-12-17 11:48:45 -05:00
Eli Bosley
77558a5cd9 fix: dark theme as array 2024-12-17 11:48:45 -05:00
Eli Bosley
116efe6f72 fix: theme store now uses singular variables object 2024-12-17 11:48:45 -05:00
Eli Bosley
8e0962adba Update web/components/ColorSwitcher.ce.vue
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-12-17 11:48:45 -05:00
Eli Bosley
d23a38960b fix: upc header text color 2024-12-17 11:48:45 -05:00
Eli Bosley
d5f5921534 fix: use foreground text color for UPC 2024-12-17 11:48:45 -05:00
Eli Bosley
a52cc7861c Update web/components/ColorSwitcher.ce.vue
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-12-17 11:48:45 -05:00
Eli Bosley
0d6a0035aa feat: delete unused imports 2024-12-17 11:48:45 -05:00
Eli Bosley
0fa41f5690 fix: re-add type-check 2024-12-17 11:48:45 -05:00
Eli Bosley
45327ce01d fix: type error on element render 2024-12-17 11:48:45 -05:00
Eli Bosley
11ce9e2644 fix: revert changes to indicator.vue 2024-12-17 11:48:45 -05:00
Eli Bosley
00b8ffe87d feat: move variable declarations to theme.ts 2024-12-17 11:48:45 -05:00
Eli Bosley
4eda0991d6 feat: eliminate all alpha beta gamma variable usage 2024-12-17 11:48:45 -05:00
Eli Bosley
9a869a49e3 fix: more color work 2024-12-17 11:48:45 -05:00
Eli Bosley
7ef3286191 feat: set background color on webcomponents 2024-12-17 11:48:45 -05:00
Eli Bosley
cb91fbb054 feat: begin nuking alpha beta gamma 2024-12-17 11:48:45 -05:00
Eli Bosley
c6547a51fc feat: lots of progress on colors 2024-12-17 11:48:45 -05:00
Eli Bosley
24435613f8 feat: begin fixing dark mode in the webcomponents 2024-12-17 11:48:45 -05:00
Pujit Mehrotra
4a29fc9dda fix(web): display error message in sidebar when api is offline (#984)
* fix(web): display error message in sidebar when api is offline

* refactor(web): move offline error derivation to UnraidApiStore

* feat(web): display error in upc when api is offline
2024-12-17 10:25:05 -05:00
Michael Datelle
2ef9fbb20e refactor: permissions system rewrite (#942)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
2024-12-16 15:25:01 -05:00
Pujit Mehrotra
a09f7c935d refactor(api): delete only archived notifications in deleteAll (#983)
* refactor(api): delete only archived notifications in deleteAll

* refactor: rename deleteAllNotifications mutation to deleteArchivedNotifications

* fix: update mutation name for deleting archived notifications

* chore(web): update codegen dependencies to fix codegen issues

* chore(web): update vue-tsc to fix build typechecking
2024-12-13 14:50:33 -05:00
Pujit Mehrotra
29d9371cc3 fix(web): update unread total immediately upon archiving (#982) 2024-12-13 12:28:56 -05:00
Eli Bosley
ef82ec5af5 fix: cleanup commands 2024-12-13 12:14:23 -05:00
Eli Bosley
cf72c8b359 feat: name package with PR number 2024-12-13 12:14:23 -05:00
Zack Spear
0705764385 refactor(web): remove unused connectPluginInstalled from dropdown trigger 2024-12-13 11:40:01 -05:00
Eli Bosley
ea6ae83919 feat: hide sign in from the dropdown text 2024-12-13 11:40:01 -05:00
Pujit Mehrotra
478254e134 feat(web): rm old notification bell upon plugin installation (#979)
* feat(web): rm old notification bell upon plugin installation

* refactor: use grep flag to unescape regex operator

* fix: preserve DefaultPageLayout.php
2024-12-13 11:16:09 -05:00
Eli Bosley
8f5814589e fix: restore upgradepkg before install 2024-12-12 10:40:14 -05:00
Pujit Mehrotra
dab6985297 refactor(web): evict notification list on archival instead of manually modifying cache 2024-12-11 16:32:05 -05:00
Pujit Mehrotra
e40a9ebecd fix(web): edge case where archived notifications don't appear
if the archive has already been fetched/loaded.
2024-12-11 16:32:05 -05:00
Pujit Mehrotra
bc4708f405 feat(web): remove notification indicator pulse
the pulse was initially added to provide visual feedback when:

1. a new notification arrived
2. an alert notification was unread

because we began using the legacy notify script, we now get a toast
on new notifications. re:2, feedback on the pulse was mixed, so i'm
removing it.
2024-12-10 14:24:52 -05:00
Pujit Mehrotra
99704a9dbb feat(web): move notification indicator icons to top-right of bell icon
previously, icons were placed next to bell icon because the status indicators
were not accessible to color-blind users. this commit replaces circular
status indicators with the icons.
2024-12-10 14:24:52 -05:00
Pujit Mehrotra
23b1f1ac73 fix(web): refetch notifications for sidebar when new notifications arrive 2024-12-10 13:01:35 -05:00
Pujit Mehrotra
a5cf63fe28 refactor(web): lift notifications overview query to Sidebar from Indicator 2024-12-10 13:01:35 -05:00
Pujit Mehrotra
78ec4663cc feat(web): add count labels to notification tabs 2024-12-10 13:01:35 -05:00
Pujit Mehrotra
a3b171f58d refactor(web): add container for loading & error states 2024-12-06 12:56:58 -05:00
Pujit Mehrotra
060fb91546 feat(web): add loading and error states to notification sidebar 2024-12-06 12:56:58 -05:00
Eli Bosley
af1994cb62 feat: error when nodejs download fails 2024-12-05 16:04:16 -05:00
Eli Bosley
bad7f71fea fix: strip components from tar line 2024-12-05 16:04:16 -05:00
Eli Bosley
a355a64136 fix: install syntax error 2024-12-05 16:04:16 -05:00
Eli Bosley
cf08627725 feat: copy only needed files for nodejs 2024-12-05 16:04:16 -05:00
Eli Bosley
6962cdd214 fix: upgradepkg 2024-12-05 16:04:16 -05:00
Eli Bosley
a39da15be4 feat: validate entries correctly 2024-12-05 16:04:16 -05:00
Eli Bosley
bb555f8296 feat: remove nghttp3 and only bundle nodejs 2024-12-05 16:04:16 -05:00
Eli Bosley
9a0d63d4ee feat: extract node to usr/local/ 2024-12-05 16:04:16 -05:00
Eli Bosley
9bbab0f86c feat: separate install process 2024-12-05 16:04:16 -05:00
Eli Bosley
349145ba53 feat: array iteration for restoring files 2024-12-05 16:04:16 -05:00
Eli Bosley
c12d8dae4e feat: do not move upgradepkg 2024-12-05 16:04:16 -05:00
Eli Bosley
b1a2ba78cc feat: download nodejs and install on legacy OS versions 2024-12-05 16:04:16 -05:00
Pujit Mehrotra
2409ef2dd6 chore(api): auto-restart dev server on source file changes (#971) 2024-12-04 15:00:16 -05:00
Pujit Mehrotra
0055637602 chore: improve dx for scripting & setup (#969)
* chore: rm vs code visual customizations

* chore(api): fix vscode eslint extension

* chore(web): update env.example for local development

* chore: add justfiles to simplify workflows

* chore: stub monorepo readme

* chore: add nvmrc to monorepo root

* refactor: improve error handling in `just ignore`

* doc(web): explain TAILWIND_BASE_FONT_SIZE in .env.example

* chore: add logo to readme
2024-12-02 10:07:56 -05:00
Pujit Mehrotra
547b75a55e fix(web): notification styles & alignment (#968)
* fix(web): notification icon & indicator colors

* fix(web): notification item text size & weights

* fix(web): notification button styles

* fix(web): notification filter styles

* fix(web): Tab List styles

* fix(web): link button styles

* fix(web): vertical spacing in notifications sidebar

* fix(web): notification sidebar link styles

* refactor(web): change default button border radius to rounded instead of rounded-md

* fix(web): Notification Item alignment with other elements

* refactor(web): add tw color palettes for unraid-green & unraid-red
2024-11-25 12:12:26 -05:00
Pujit Mehrotra
c36082e82b feat(api): omit tz from sys time date format by default 2024-11-22 12:23:03 -05:00
Pujit Mehrotra
0f3bebf859 chore(api): update dynamix config types 2024-11-22 12:23:03 -05:00
Pujit Mehrotra
96f3902b57 refactor(api): pull date-time formatting into utils 2024-11-22 12:23:03 -05:00
Pujit Mehrotra
b9cd8c426d fix(api): append time to formatted date when a custom date format is selected 2024-11-22 12:23:03 -05:00
Pujit Mehrotra
7c8e8a0e53 feat(web): pull date format from display/date and time settings 2024-11-22 12:23:03 -05:00
Pujit Mehrotra
801abac06b chore(api): improve Notify config types
Pulled from `/boot/config/plugins/dynamix/dynamix.cfg` by changing
the relevant notification settings (display, date, time).
2024-11-22 12:23:03 -05:00
Pujit Mehrotra
3fe13d5235 fix(web): reset infinite scroll when notification filters change 2024-11-21 08:55:37 -05:00
Pujit Mehrotra
eeb3289ae8 fix(web): infinite scroll loop when there's only 1 page of notifications 2024-11-19 14:22:08 -05:00
Pujit Mehrotra
939d7a304d feat(web): add an 'all' option to notification filter
allows users to "reset" after selecting a filter. ideally, we'd be able to
clear the filter if it was clicked again, but I couldn't find a way to listen
to a second/repeat click on a SelectItem, so I added a new filter item instead.
2024-11-19 14:22:08 -05:00
Pujit Mehrotra
acccb3694c chore(web): add testing step to github actions 2024-11-19 13:21:41 -05:00
Pujit Mehrotra
2724485989 test(web): Markdown sanitization & extensibility
fix(web): replaces dompurify with isomorphic-dompurify to enable server-side usage with same syntax
2024-11-19 13:21:41 -05:00
Pujit Mehrotra
2f4ff21986 feat(web): use Markdown helper class to interact with markdown 2024-11-19 13:21:41 -05:00
Pujit Mehrotra
83e00c640a fix(web): sanitize changelog markup after parsing 2024-11-19 13:21:41 -05:00
Pujit Mehrotra
abcaa5aedb feat(web): support markdown in notification messages 2024-11-19 13:21:41 -05:00
Pujit Mehrotra
4c663dc69c feat(web): add confirmation before archiving or deleting all notifications 2024-11-18 14:44:20 -05:00
Pujit Mehrotra
89eb841b20 feat(web): add delete all notifications button to archive view in notifications sidebar 2024-11-18 14:44:20 -05:00
Pujit Mehrotra
7296195495 feat(web): add link to settings in notification sidebar 2024-11-18 14:44:20 -05:00
Pujit Mehrotra
696b55de6c refactor(web): use optional chaining for graphql errors
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-11-14 15:24:20 -05:00
Pujit Mehrotra
aa5fad39f3 refactor(web): improve incoming notifications var name in infinite scroll loader 2024-11-14 15:24:20 -05:00
Pujit Mehrotra
9c38fa6a9c fix(api): exclude duplicates from legacy script in archive retrieval 2024-11-14 15:24:20 -05:00
Pujit Mehrotra
da5d1132d1 chore(web): remove noisy console log in apollo disable link 2024-11-14 15:24:20 -05:00
Pujit Mehrotra
001be86181 fix(web): infinite trigger at bottom of infinite scroll 2024-11-14 15:24:20 -05:00
Pujit Mehrotra
ecfc797e7d fix(web): stop opening notification sidebar to archive tab 2024-11-14 15:24:20 -05:00
Pujit Mehrotra
dffbfc2dab fix(web): env var typo 2024-11-14 15:24:20 -05:00
Pujit Mehrotra
e5f029830b chore: add import organizer to prettier config (#959)
* chore(web): add import organizer plugin to prettier config

* chore(api): add import organizer plugin to prettier config

* chore(api): sort imports in notifications resolver & service

as a demonstration

* chore(web): sort imports in notifications indicator

as a demonstration
2024-11-12 09:46:29 -05:00
Pujit Mehrotra
1a33e6343a chore(web): add prettier config & tailwind class sorting (#955) 2024-11-08 13:17:10 -05:00
Eli Bosley
69441d890e feat: myservers_fb keepalive location 2024-11-08 10:17:45 -05:00
Eli Bosley
46c82ecae3 feat: upgrade dependencies 2024-11-08 10:17:45 -05:00
Pujit Mehrotra
0b469f5b3f feat(web): enhance notifications indicator in UPC (#950)
* feat(web): scaffold ui for notifications indicator

* refactor(web): poll for notification overview instead of subscription

* test: rm failing notifications.resolver test stub

* feat(web): pulse indicator when new notifications are received
2024-11-07 14:36:30 -05:00
Eli Bosley
3fc41480a2 fix: cwd on ecosystem.config.json 2024-11-06 15:29:11 -05:00
Eli Bosley
e27776df3d fix: use cwd when running application 2024-11-06 15:27:02 -05:00
Eli Bosley
abd8e09908 fix: forced restarting on commands 2024-11-06 15:21:08 -05:00
Eli Bosley
504283f227 fix: attempt to restore upgradepkg if install failed 2024-11-06 15:11:51 -05:00
Eli Bosley
ff7e09e15c Revert "fix: delete upgradepkg"
This reverts commit dc1c4fb6ec.
2024-11-06 15:03:21 -05:00
Eli Bosley
deb42f6a81 fix: delete upgradepkg 2024-11-06 15:03:21 -05:00
Eli Bosley
95d018ea05 Update plugin/source/dynamix.unraid.net/pkg_build.sh
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-11-06 15:03:21 -05:00
Eli Bosley
106b2e42c0 feat: nodejs issues with version 2 2024-11-06 15:03:21 -05:00
Eli Bosley
1c5ff58d2d Update plugin/plugins/dynamix.unraid.net.plg
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-11-06 15:03:21 -05:00
Eli Bosley
d7bab9f443 fix: used TGZ instead of TXZ for nghttp3 2024-11-06 15:03:21 -05:00
Eli Bosley
902c76c759 fix: capitalize name 2024-11-06 15:03:21 -05:00
Eli Bosley
5e50f24d70 fix: node_txz naming 2024-11-06 15:03:21 -05:00
Eli Bosley
4f0210d16a feat: nghttp3 sha256 missing 2024-11-06 15:03:21 -05:00
Eli Bosley
ddb8772692 feat: add validation step to ensure that variables are set 2024-11-06 15:03:21 -05:00
Eli Bosley
787f8b9bf5 fix: proper file replacements 2024-11-06 15:03:21 -05:00
Eli Bosley
61ba324ca0 fix: variables passed properly 2024-11-06 15:03:21 -05:00
Eli Bosley
a230a33df5 fix: pull node version directly from nvmrc 2024-11-06 15:03:21 -05:00
Eli Bosley
84b234c9cf feat: upload files directly to cloudflare 2024-11-06 15:03:21 -05:00
Eli Bosley
9bfc04c2a5 fix: dnserr on new line 2024-11-06 15:03:21 -05:00
Eli Bosley
e84430471d fix: add error check to nodejs 2024-11-06 15:03:21 -05:00
Eli Bosley
2d60045784 fix: pkg_build 2024-11-06 15:03:21 -05:00
Eli Bosley
e9137f2553 Update plugin/source/dynamix.unraid.net/pkg_build.sh
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-11-06 15:03:21 -05:00
Eli Bosley
dbe0dd5dfb Update plugin/source/dynamix.unraid.net/pkg_build.sh
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-11-06 15:03:21 -05:00
Eli Bosley
9d2796f2c9 feat: track node version in slackware 2024-11-06 15:03:21 -05:00
Eli Bosley
972a19be04 fix: better logging when error 2024-11-05 16:11:21 -05:00
Eli Bosley
c8da8fe314 fix: remove uneeded env variable 2024-11-05 16:11:21 -05:00
Eli Bosley
353132b67a feat: code review changes 2024-11-05 16:11:21 -05:00
Eli Bosley
88b7cbfe95 feat: actually exit on stop and start 2024-11-05 16:11:21 -05:00
Eli Bosley
3ed1d10c98 fix: properly restart the API when installed 2024-11-05 16:11:21 -05:00
Eli Bosley
62693cfcc0 feat: cleanup unused variables 2024-11-05 16:11:21 -05:00
Eli Bosley
810708f775 fix: use unraid binary path to call unraid commands 2024-11-05 16:11:21 -05:00
Eli Bosley
08f6d6df65 fix: no vite-node in non-dev mode 2024-11-05 16:11:21 -05:00
Eli Bosley
da673c3f2b feat: exit after running status 2024-11-05 16:11:21 -05:00
Eli Bosley
cb463bfdd0 feat: add ecosystem.config.json to files 2024-11-05 16:11:21 -05:00
Eli Bosley
7177171b75 feat: vite dev mode 2024-11-05 16:11:21 -05:00
Eli Bosley
9f0ab7fa38 feat: start command path 2024-11-05 16:11:21 -05:00
Eli Bosley
a32374a3ac feat: attempt to fix pm2 2024-11-05 16:11:21 -05:00
Eli Bosley
cb6534d9d9 feat: pm2 fixes 2024-11-05 16:11:21 -05:00
Eli Bosley
2eaf175515 fix: load PM2 from node_modules 2024-11-05 16:11:21 -05:00
Eli Bosley
50376a0d66 fix: make cli.js executable 2024-11-05 16:11:21 -05:00
Eli Bosley
4b2007b689 fix: plugin download route and add env node to cli script 2024-11-05 16:11:21 -05:00
Eli Bosley
72fcaca4f3 feat: process env fixed and copy gql files 2024-11-05 16:11:21 -05:00
Eli Bosley
2f48ddf942 feat: fix more imports 2024-11-05 16:11:21 -05:00
Eli Bosley
62dfa6c83a fix: invalid type 2024-11-05 16:11:21 -05:00
Eli Bosley
27bb375460 feat: vite 2024-11-05 16:11:21 -05:00
Eli Bosley
cc4d5bdefb feat: substantial docs updates 2024-11-05 16:11:21 -05:00
Eli Bosley
f55302c130 feat: add web gitignore 2024-11-05 16:11:21 -05:00
Eli Bosley
b8dbe3f9d9 fix: execa upgrade snapshots fixed 2024-11-05 16:11:21 -05:00
Eli Bosley
20771f61a8 feat: fix header strategy 2024-11-05 16:11:21 -05:00
Eli Bosley
b9b8bbe871 fix: unit test failure 2024-11-05 16:11:21 -05:00
Eli Bosley
b8e61007e3 fix: changelog parser 2024-11-05 16:11:21 -05:00
Eli Bosley
49536032df fix: handle special chars better 2024-11-05 16:11:21 -05:00
Eli Bosley
9229cf3df6 fix: version and EOF key 2024-11-05 16:11:21 -05:00
Eli Bosley
58665a4e98 fix: trigger loading correctly 2024-11-05 16:11:21 -05:00
Eli Bosley
885d1537b6 feat: fix issues with permissions and invalid modules 2024-11-05 16:11:21 -05:00
Eli Bosley
198cfe5015 fix: unraid-api in usr/bin 2024-11-05 16:11:21 -05:00
Eli Bosley
42189dd451 fix: detection script path bin instead of sbin 2024-11-05 16:11:21 -05:00
Eli Bosley
6122b3c001 feat: comment URL for plugin on PR 2024-11-05 16:11:21 -05:00
Eli Bosley
cda7368d3d fix: connect plugin location 2024-11-05 16:11:21 -05:00
Eli Bosley
447cecd19d feat: fix missing import in ESM 2024-11-05 16:11:21 -05:00
Eli Bosley
7321bd0088 fix: add ecosystem config 2024-11-05 16:11:21 -05:00
Eli Bosley
67e898efe1 fix: missing ip-regex module 2024-11-05 16:11:21 -05:00
Eli Bosley
41e5de83a2 feat: remove many unneded simple libraries 2024-11-05 16:11:21 -05:00
Eli Bosley
5c020a62d6 feat: package scripts 2024-11-05 16:11:21 -05:00
Eli Bosley
1393e967fa fix: production env for web build 2024-11-05 16:11:21 -05:00
Eli Bosley
f07c14354f feat: pack everything in API 2024-11-05 16:11:21 -05:00
Eli Bosley
d42a426244 fix: actually install dependencies 2024-11-05 16:11:21 -05:00
Eli Bosley
125bc29166 feat: also copy in other files 2024-11-05 16:11:21 -05:00
Eli Bosley
a6333bf5a2 fix: more filename fixes and PR var passing 2024-11-05 16:11:21 -05:00
Eli Bosley
e8e985ad6a feat: properly set outputs 2024-11-05 16:11:21 -05:00
Eli Bosley
1a598885cc feat: copy 2024-11-05 16:11:21 -05:00
Eli Bosley
d73f267245 feat: copy node modules 2024-11-05 16:11:21 -05:00
Eli Bosley
7c1873249e feat: more process improvements 2024-11-05 16:11:21 -05:00
Eli Bosley
09f33a0127 fix: don't LS in the release folder 2024-11-05 16:11:21 -05:00
Eli Bosley
db00d7442d feat: diff 2024-11-05 16:11:21 -05:00
Eli Bosley
724159314c fix: PR build missing files 2024-11-05 16:11:21 -05:00
Eli Bosley
180f115b71 feat: plg builder improvements to be more explicit 2024-11-05 16:11:21 -05:00
Eli Bosley
eb38eb219e feat: PR builds 2024-11-05 16:11:21 -05:00
Eli Bosley
3da701a53b fix: local variable assignment 2024-11-05 16:11:21 -05:00
Eli Bosley
6e5b2f1f67 fix: unused import 2024-11-05 16:11:21 -05:00
Eli Bosley
812053d7a4 feat: simplify getting version 2024-11-05 16:11:21 -05:00
Eli Bosley
a929c7e3b3 fix: pass env through to docker 2024-11-05 16:11:21 -05:00
Eli Bosley
c0179c8351 fix: env correct 2024-11-05 16:11:21 -05:00
Eli Bosley
d5c7be54b0 fix: only test when API is changed 2024-11-05 16:11:21 -05:00
Eli Bosley
32478f34c2 fix: variable naming 2024-11-05 16:11:21 -05:00
Eli Bosley
4daa09b340 fix: only test if API was changed 2024-11-05 16:11:21 -05:00
Eli Bosley
346ce91f73 fix: EOF 2024-11-05 16:11:21 -05:00
Eli Bosley
cee3a6d0ef fix: env input 2024-11-05 16:11:21 -05:00
Eli Bosley
e90f606f43 feat: pass env into builder 2024-11-05 16:11:21 -05:00
Eli Bosley
05fa344454 feat: mount git folder to builder 2024-11-05 16:11:21 -05:00
Eli Bosley
406c400bd2 fix: proper directory in rc.unraid-api 2024-11-05 16:11:21 -05:00
Eli Bosley
1ae466899e fix: rm rf to fix build issues 2024-11-05 16:11:21 -05:00
Eli Bosley
5178e131ce fix: docker formatting and build mkdir issues 2024-11-05 16:11:21 -05:00
Eli Bosley
0bd11bce5a feat: don't remove directory, only files 2024-11-05 16:11:21 -05:00
Eli Bosley
fddde33977 fix: remove unused job dependency 2024-11-05 16:11:21 -05:00
Eli Bosley
1f5df845eb feat: build and pack in docker 2024-11-05 16:11:21 -05:00
Eli Bosley
ef54af655e fix: build issues based on removed code 2024-11-05 16:11:21 -05:00
Eli Bosley
bb44862b7b fix: builder cache 2024-11-05 16:11:21 -05:00
Eli Bosley
9709dc82ea feat: swap to action 2024-11-05 16:11:21 -05:00
Eli Bosley
38f0699e19 feat: linting continues on error 2024-11-05 16:11:21 -05:00
Eli Bosley
6ca9f421eb fix: apollo client lint issues 2024-11-05 16:11:21 -05:00
Eli Bosley
935825571b fix: load builder image to cache 2024-11-05 16:11:21 -05:00
Eli Bosley
9beaa78820 feat: move to singular build and test step 2024-11-05 16:11:21 -05:00
Eli Bosley
420c2c1afd feat: buildx build caching 2024-11-05 16:11:21 -05:00
Eli Bosley
7c0cb07b83 feat: only run mainline build 2024-11-05 16:11:21 -05:00
Eli Bosley
c6a7137f19 feat: right workin directory 2024-11-05 16:11:21 -05:00
Eli Bosley
44f9ba0e7f fix: subdependenies 2024-11-05 16:11:21 -05:00
Eli Bosley
1c61e64169 feat: workflow changes 2024-11-05 16:11:21 -05:00
Eli Bosley
cf0eeebd31 feat: remove more unused calls 2024-11-05 16:11:21 -05:00
Eli Bosley
f118597e47 feat: massive rc.unraid-api updates to facilitate installing and linking 2024-11-05 16:11:21 -05:00
Eli Bosley
6f2fcffd3e fix: remove unused imports 2024-11-05 16:11:21 -05:00
Eli Bosley
8f7748404c chore: dependency updates 2024-11-05 16:11:21 -05:00
Eli Bosley
88c2605d4f fix: delete boot script and update nvmrc 2024-11-05 16:11:21 -05:00
Eli Bosley
c2d645612a feat: add exclude to vite.config 2024-11-05 16:11:21 -05:00
Eli Bosley
b20f69c208 feat: pm2 fully working 2024-11-05 16:11:21 -05:00
Eli Bosley
b9cedb70ff fix: logging location 2024-11-05 16:11:21 -05:00
Eli Bosley
a11978aa33 fix: app running 2024-11-05 16:11:21 -05:00
Eli Bosley
b0efcc0d51 feat: pm2 initial setup 2024-11-05 16:11:21 -05:00
Eli Bosley
92b5f2226e fix: eslint config 2024-11-05 16:11:21 -05:00
Eli Bosley
98f2603525 feat: more cleanup 2024-11-05 16:11:21 -05:00
Eli Bosley
cfb1d50c8e feat: remove wtfnode 2024-11-05 16:11:21 -05:00
Eli Bosley
545ccf1938 feat: working 2024-11-05 16:11:21 -05:00
Eli Bosley
0c79995107 feat: almost working 2024-11-05 16:11:21 -05:00
Pujit Mehrotra
9d3397a687 refactor(web): reduce magic in identifying apollo cache item 2024-11-05 09:27:43 -05:00
Pujit Mehrotra
11c160835a feat(web): display error when a notification mutation fails 2024-11-05 09:27:43 -05:00
Pujit Mehrotra
e388b37aa6 refactor(web): simplify naming of notification mutations 2024-11-05 09:27:43 -05:00
Pujit Mehrotra
1da882b807 refactor(web): extract notification object cache prefix to a constant 2024-11-05 09:27:43 -05:00
Pujit Mehrotra
d9d5a24b70 feat(web): delete notifications from archive view 2024-11-05 09:27:43 -05:00
Pujit Mehrotra
24e3cad882 feat(web): make empty notification message clearer 2024-11-01 12:18:20 -04:00
Pujit Mehrotra
323a4a17cf feat(web): add empty state to notifications list 2024-11-01 12:18:20 -04:00
Pujit Mehrotra
9968e0f7df feat(web): implement notification filtering 2024-11-01 12:18:20 -04:00
Pujit Mehrotra
2ccc53630b doc(web): using codegen scripts & graphql fragments 2024-11-01 09:53:46 -04:00
Pujit Mehrotra
d7bb3defc3 doc(web): intro to using graphql 2024-11-01 09:53:46 -04:00
Pujit Mehrotra
ddb8bf8a5c refactor(web): improve signature & readability of mergeAndDedup cache function 2024-10-28 10:00:23 -04:00
Pujit Mehrotra
6234d61ae5 fix(web): dedupe incoming notifications during cache merge 2024-10-28 10:00:23 -04:00
Pujit Mehrotra
a665ee3ec6 fix(web): remove unused infinite-scroll emit from SheetContent 2024-10-28 10:00:23 -04:00
Pujit Mehrotra
7ca3efe8b8 doc(web): possibly ambiguous css & confusing cache policies/types 2024-10-28 10:00:23 -04:00
Pujit Mehrotra
28f4952599 fix(web): replace manual height hack in notifications infinite scroll 2024-10-28 10:00:23 -04:00
Pujit Mehrotra
7e4022518d feat(web): reconcile pagination with notifications apollo cache 2024-10-28 10:00:23 -04:00
Pujit Mehrotra
4d1656eaa8 feat(web): make notifications list scrollable inside the sheet & tabs 2024-10-28 10:00:23 -04:00
Michael Datelle
5b2421cb0c feat: add date formatting helper (#938) 2024-10-25 10:43:38 -04:00
Pujit Mehrotra
0578b066f1 refactor(web): extract notifications list for cleaner state management 2024-10-23 16:19:33 -04:00
Pujit Mehrotra
57fdcf3e60 refactor(api): parameterize max iterations of updateObject util 2024-10-23 16:19:33 -04:00
Pujit Mehrotra
eb7bdb6a85 feat(api): sort notifications file listing by date (latest first) 2024-10-23 16:19:33 -04:00
Pujit Mehrotra
ebd671e7b6 refactor(web): move archiveAll cache invalidation into apollo client config 2024-10-23 16:19:33 -04:00
Pujit Mehrotra
15a1a3ac15 feat(web): update cache & view when archiving notifications 2024-10-23 16:19:33 -04:00
Pujit Mehrotra
9a0c7fe9c8 refactor(Notifications): return modified notification when mutated
updated archiveNotification & unreadNotification mutations to return the
modified notification instead of an overview to improve default caching mechanics
when updating/moving notifications.
2024-10-23 16:19:33 -04:00
Pujit Mehrotra
91bcbc3d6f fix(api): strip server id prefixes from graphql request variables 2024-10-23 16:19:33 -04:00
Eli Bosley
b3d046f4ea feat: actual install url 2024-10-23 09:57:46 -04:00
Eli Bosley
0f13e34562 feat: install nghttp3 2024-10-23 09:37:12 -04:00
Eli Bosley
e18cd87180 fix: add max var 2024-10-22 16:15:23 -04:00
Eli Bosley
421949a9f8 fix: node install process improvements 2024-10-22 16:15:23 -04:00
Eli Bosley
8c7c580f3f fix: no more node_dl_server 2024-10-22 16:15:23 -04:00
Eli Bosley
c616641044 fix: no nodehost 2024-10-22 16:15:23 -04:00
Eli Bosley
fd16243287 fix: unused node dl line 2024-10-22 16:15:23 -04:00
Eli Bosley
7352bbe77a feat: install node 2024-10-22 16:15:23 -04:00
Eli Bosley
4d33908e01 fix: always mangle 2024-10-22 11:16:03 -04:00
Pujit Mehrotra
adabe92f72 refactor(web): move cn utility inside shadcn for modularization 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
958f9e57e1 refactor(api): use a type wrapper around fastify request in cookie.strategy 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
ac5032df83 feat(api): add default dynamix config to dev docker container 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
5f4cc07473 fix(api): load dynamix config in the same way as the webgui
merge defaults + custom config

see original php implementation in the webgui:
[link](95c6913c62/emhttp/plugins/dynamix/include/Wrappers.php (L42))
2024-10-18 11:42:38 -04:00
Pujit Mehrotra
38524bce88 fix(web): add default values to optional vue component props 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
64db2f19a7 fix(web): replace incorrect custom types with codegen from gql & update values to match expected shapes 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
8fe1e80bbd feat(web): add gql archival mutations to notifications sidebar & item 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
1c4506cf50 refactor(web): shadcn styles for consistency 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
84fe7f6df6 refactor(web): rm shadcn border radius overrides for consistency & simplicity 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
5c7e650b3b fix(web): inline shadcn variables into tailwind config to simplify build 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
6cac078e15 refactor(web): instantiate apollo client statically instead of dynamically 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
4e555021a7 fix: type & build errors 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
b1e2f043b1 chore(web): fix lint errors about imports 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
bc69852333 chore(web): omit notifications sidebar from UPC in staging & prod 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
2c79ccc883 fix(NotificationItem): icon & text alignment in header 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
c240fab58a refactor(NotificationItem): use button to view link instead of making the whole notification a clickable target 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
3c50022ac3 fix(NotificationsSidebar): occupy full viewport on small screens 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
9201136cb1 refactor(NotificationsItem): component design & layout 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
ff52f75abf refactor(NotificationsSidebar): de-emphasize archive-all & filter 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
eed40f7875 test(api): update permissions snapshots 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
754d4560ea feat: integrate cross-domain authentication to api 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
f6d09f4ba2 refactor(web): use tabs instead of buttons in NotificationsSidebar header 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
a1f0dac42d chore(web): display NotificationsSidebar in UserProfile component 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
fff935cf02 chore(api): add script to create mock user session in api container 2024-10-18 11:42:38 -04:00
Pujit Mehrotra
0849468fc2 chore(web): restore lockfile to correct state 2024-10-18 11:42:38 -04:00
Zack Spear
6a57924fbf feat: WIP sidebar filter select 2024-10-18 11:42:38 -04:00
mdatelle
57802c2ea0 feat(web): wip query api for notifications 2024-10-18 11:42:38 -04:00
mdatelle
924df0dc9e refactor(api): local dev permissions for notifications 2024-10-18 11:42:38 -04:00
Zack Spear
d04001e052 feat: WIP create teleport composable 2024-10-18 11:42:38 -04:00
Zack Spear
92ec931aff refactor: Update connectPluginInstalled value in serverState.ts 2024-10-18 11:42:38 -04:00
Eli Bosley
30f92374d0 fix: floating-ui fixes 2024-10-18 11:42:38 -04:00
Zack Spear
6bfd221cd1 test: sidebar tabs 2024-10-18 11:42:38 -04:00
Zack Spear
ceb537ae91 refactor: Update NotificationItemProps interface
- Add 'event' and 'date' properties to the NotificationItemProps interface
- Add 'view' property to the NotificationItemProps interface
- Remove trailing newline at the end of the file
2024-10-18 11:42:38 -04:00
Zack Spear
81b197a9aa refactor: Remove duplicate declaration of 'combinations' in terserReservations function 2024-10-18 11:42:38 -04:00
Zack Spear
54b4ad0df8 refactor: Remove extra whitespace in Notifications Sidebar and optimize Terser options in nuxt.config.ts 2024-10-18 11:42:38 -04:00
Zack Spear
e84c3ebe14 feat: WIP notifications w/ shadcn
Currently the build doesn't work in webgui
2024-10-18 11:42:38 -04:00
Zack Spear
81acf1d947 feat: wip Notification UI starter 2024-10-18 11:42:38 -04:00
renovate[bot]
80bfc231e0 chore(deps): update dependency @swc/core to v1.7.36 2024-10-18 10:06:20 -04:00
Zack Spear
b1409684db refactor: conditionally skip removeConsole plugin based on VITE_ALLOW_CONSOLE_LOGS env 2024-10-11 10:58:36 -04:00
Zack Spear
14d9448e4c refactor: build removeConsole conditionally skip via VITE_ALLOW_CONSOLE_LOGS env 2024-10-11 10:58:36 -04:00
Eli Bosley
924fa699eb fix: linter error 2024-10-10 09:42:38 -04:00
Eli Bosley
999a8e39eb fix: remove console logs with vue plugin 2024-10-10 09:41:12 -04:00
Eli Bosley
5a1c85d739 fix: remove unused disableProductionConsoleLogs call 2024-10-09 13:49:57 -04:00
Eli Bosley
ba77ff4a4c feat: remove console log disabler 2024-10-09 13:49:57 -04:00
Pujit Mehrotra
05765495c4 test(NotificationsService): add snapshot test to legacy script execution error 2024-10-09 13:12:15 -04:00
Pujit Mehrotra
f7cccc8c37 test(NotificationsService): add special characters to legacy script test 2024-10-09 13:12:15 -04:00
Pujit Mehrotra
85e0f7993e feat(NotificationsService): use existing notifier script to create notifications when possible 2024-10-09 13:12:15 -04:00
Pujit Mehrotra
d5a424ebe1 refactor(api): directly accept importance level in UnraidLocalNotifier 2024-10-09 13:12:15 -04:00
Pujit Mehrotra
01441961c3 doc(cors): update name of bypass flag 2024-10-08 15:52:43 -04:00
Pujit Mehrotra
836f64d28f test(api): add auth-sessions to paths test snapshot 2024-10-08 15:52:43 -04:00
Pujit Mehrotra
79bb4e585b refactor(CookieService): use paths store to get default sessions directory instead of a literal 2024-10-08 15:52:43 -04:00
Pujit Mehrotra
409e88b727 refactor(cors): use BYPASS_CORS_CHECKS flag to ignore cors failures instead of BYPASS_PERMISSION_CHECKS 2024-10-08 15:52:43 -04:00
Pujit Mehrotra
5034a8981a chore(CookieService): remove unused CookieGuard 2024-10-08 15:52:43 -04:00
Pujit Mehrotra
e61d9f195d fix(CookieService): potential race condition in unit tests 2024-10-08 15:52:43 -04:00
Pujit Mehrotra
b3e213ba04 refactor(CookieService): rename SESSION_COOKIE_OPTIONS to SESSION_COOKIE_CONFIG for clearer semantics 2024-10-08 15:52:43 -04:00
Pujit Mehrotra
a7ea678683 fix(cors): excessive instantiation of CookieService to improve memory overhead 2024-10-08 15:52:43 -04:00
Pujit Mehrotra
791e16ce52 test(CookieService): reading valid & invalid session cookies 2024-10-08 15:52:43 -04:00
Pujit Mehrotra
173da0e65b refactor(CookieService): make cookie prefix & session directory injectable via Nest.js 2024-10-08 15:52:43 -04:00
Pujit Mehrotra
287aabfda7 feat(auth): make cors aware of authenticated sessions 2024-10-08 15:52:43 -04:00
Pujit Mehrotra
d8656cc6b3 fix: replace express cookie parser with fastify's 2024-10-08 15:52:43 -04:00
Pujit Mehrotra
a3500c9bc9 feat(Auth): add cookie guard to check for valid sessions 2024-10-08 15:52:43 -04:00
Zack Spear
b513cbe614 refactor(web): update README.md with instructions for dev testing and builds 2024-10-03 13:47:12 -07:00
Zack Spear
b5c525a9c2 refactor(web): tailwind config use .env VITE_TAILWIND_BASE_FONT_SIZE 2024-10-03 13:47:12 -07:00
Zack Spear
648b560148 refactor(package.json): update build scripts for dev and webgui
- Update the prebuild and postbuild scripts in package.json to handle environment variables and file paths correctly for the dev and webgui builds.
2024-10-03 13:47:12 -07:00
Zack Spear
6eb34c3501 refactor(prebuild-webgui-set-env.sh): update default file paths and handle requested env file
This commit updates the default file paths in the prebuild-webgui-set-env.sh script to use the requested env file instead of always using .env.production. If a specific env file is provided as an argument, its contents will be copied to .env. If the requested env file is not found, an error message will be displayed.
2024-10-03 13:47:12 -07:00
Zack Spear
21544bd2dc refactor(UserProfile): update text classes in banner section 2024-10-03 13:47:12 -07:00
Eli Bosley
3e115f84d7 fix: text classes 2024-10-02 16:02:01 -04:00
Eli Bosley
ba586fc438 feat: rem converter 2024-10-02 16:02:01 -04:00
Pujit Mehrotra
e6cbed14a9 fix(NotificationsService): edge-case in deleteAllNotifications by adding fs-extra package 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
f531e68b87 doc(NotificationService): rm obsolete note about race conditions 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
53f718e240 test: fix test definition for safely encoding top-level fields into INI strings 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
de36bfab99 chore: fix lint issues 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
1e2f57a4cd feat(NotificationService): endpoint to manually recalculate notification overview 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
46aa3a3e24 refactor(NotificationService): batchProcess util, gql Notifications->list instead of ->data to get notifications 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
0c627d1ade refactor(NotificationService): replace removeFromOverview
with `decrement` & `publishOverview`
2024-10-02 12:30:12 -04:00
Pujit Mehrotra
f20349fb2a chore: update vitest major version 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
dc72d63481 fix(NotificationService): file watcher initialization 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
e9efed8067 test(NotificationService): compatibility of outputs & combine archival filter tests 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
71ce064008 fix: rm getServerIdentifier wrapping Notifications id 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
b67b0ea633 test: filtering notifications 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
bf3d46d190 test,fix: crud'ing notifications, timestamp format consistency 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
a1fa3462eb feat,refactor: update notifications by filter & by id's 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
c84175e763 feat: implement mutations for updating many notifications at once 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
0f9fe18379 refactor: unraid timestamp into src/utils 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
76c0d35783 feat: make notification id logic 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
3ece0d1acc chore: update uuid@10.0.0 for v7 uuids
v7 uuids are basically v4 uuids that are sortable (by creation time)
2024-10-02 12:30:12 -04:00
Pujit Mehrotra
0473c9b676 fix: use correct ini encoder in notification service 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
1956227f63 fix: mv paths() to top of NotificationsService to make it more intuitive 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
c515d08d5c fix: race condition when updating notification types 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
0bd9820c00 feat: expose mutations for notifications over graphql 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
0c2299cfcd feat: add deletion & update methods to NotificationService
also stubs create method
2024-10-02 12:30:12 -04:00
Pujit Mehrotra
12fdfac467 chore: update prettier line width limit to 105ch
to prevent over-aggressive line breaks & wraps.
2024-10-02 12:30:12 -04:00
Pujit Mehrotra
3fc20ec593 fix: disable permissions bypass to avoid incorrect role assignment to api keys 2024-10-02 12:30:12 -04:00
Pujit Mehrotra
69a6163e29 feat: wrap Notifications in a GraphQL Node & implement notification overviews 2024-10-02 12:30:12 -04:00
mdatelle
00294699f0 fix: add return to resolver and update jsdoc for getNotifications 2024-10-02 12:30:12 -04:00
mdatelle
90ff980a00 refactor: update notifications.resolver to handle filtering
- Updates the getNotifications function to use the refactored getNotificationsFromPaths function
- Adds filtering logic to the updated  getNotificationsFromPaths function
- Update JSdocs
2024-10-02 12:30:12 -04:00
Pujit Mehrotra
17e7d2a2de fix: load notifications from file system instead of redux state
- Adds a Nest.js service for notifications
- Helps improve our memory footprint!
2024-10-02 12:30:12 -04:00
Eli Bosley
d2a88df5bf fix: lint issues 2024-09-27 13:57:47 -04:00
Eli Bosley
9471f5c918 fix: swap to flexible IDs in tests 2024-09-27 13:57:47 -04:00
Eli Bosley
492d45f363 feat: server identifier changes 2024-09-27 13:57:47 -04:00
Eli Bosley
2951d68f9d feat: ID prefixer improvement 2024-09-27 13:57:47 -04:00
Eli Bosley
4857bc0478 fix: convert updateId function to iterative instead of recursive 2024-09-27 13:57:47 -04:00
Eli Bosley
c794a1d1a1 feat: add ID prefix plugin to prefix IDs with server identifier 2024-09-27 13:57:47 -04:00
Zack Spear
d2a34acfb9 refactor: always show footer in CheckUpdateResponseModal 2024-09-12 20:14:10 -07:00
Zack Spear
3dc60b6106 feat: add deviceCount to serverAccountPayload for callbacks 2024-09-12 20:14:10 -07:00
Eli Bosley
57587b9175 chore(release): 3.11.0 2024-09-11 13:25:19 -04:00
ljm42
5ee7cb2647 feat: reduce how often rc.flashbackup checks for changes
Instead of checking once per minute, check once every 30 minutes
2024-09-10 12:48:40 -04:00
ljm42
911a3f8f1a feat: send api_version to flash/activate endpoint
also use _var() function in a few more places for consistency
2024-09-10 09:30:17 -07:00
ljm42
d426001372 feat: update ProvisionCert.php to clean hosts file when it runs 2024-09-09 12:49:15 -07:00
ljm42
2d0c65aaf4 fix: remove local flash backup ratelimit file on uninstall/update 2024-09-06 16:38:10 -07:00
ljm42
fd4605b956 chore: prevent corner case issue and fix php warning
* Update remoteerror in flashback.ini if it gets out of sync with gitratelimit (can happen during testing if you delete flashbackup.ini)
* Fix php warning for retry_after
2024-09-06 11:27:17 -07:00
Eli Bosley
3f84b6bbfd chore(release): 3.10.1 2024-09-03 14:43:08 -04:00
github-actions[bot]
5ad10af303 chore: release main 2024-09-03 14:36:05 -04:00
Eli Bosley
9aa11faaaa fix: don't release to github 2024-09-03 14:32:04 -04:00
Eli Bosley
bfa98574f1 fix: single tag for both components 2024-09-03 14:30:03 -04:00
github-actions[bot]
dd2dc40ff1 chore: release main 2024-09-03 14:24:36 -04:00
ljm42
8a3265d7b1 Feat: flash backup supports keyserver rate limits 2024-09-03 11:14:56 -07:00
ljm42
a240a031a8 feat: set OS minver to 6.12.0 2024-08-30 12:50:44 -07:00
ljm42
979e41fe41 fix: remove hard-coded entry for keyserver from hosts file 2024-08-30 10:52:50 -04:00
ljm42
03dc404aa7 Use "go links" when linking to Docs 2024-08-29 16:35:02 -07:00
Eli Bosley
364320ffc9 fix: unify pull requests for release-please 2024-08-28 16:51:26 -04:00
Eli Bosley
2492f4cec9 feat: web version set 2024-08-28 16:37:15 -04:00
Eli Bosley
1a643b3eef feat: set API version 2024-08-28 16:36:34 -04:00
Eli Bosley
58ee3b958b feat: remove plugin as part of release please 2024-08-28 16:15:00 -04:00
Eli Bosley
2928cf5821 fix: add manifest 2024-08-28 15:58:02 -04:00
Eli Bosley
b21b276151 fix: infer release type 2024-08-28 15:55:58 -04:00
Eli Bosley
d80f25dc96 feat: begin release-please setup 2024-08-28 15:53:24 -04:00
Eli Bosley
f5f5a081e6 fix: unused import 2024-08-28 15:44:03 -04:00
Eli Bosley
f60474b4d7 fix: lint 2024-08-28 15:44:03 -04:00
Eli Bosley
364373df0c fix: revert myservers.cfg to fix test 2024-08-28 15:44:03 -04:00
Eli Bosley
bb38533bb2 fix: update snapshots 2024-08-28 15:44:03 -04:00
Eli Bosley
836801c524 feat: dynamic remote access using remote queries 2024-08-28 15:44:03 -04:00
Eli Bosley
b54cf5ede9 feat: move dynamic remote access to be fully api controlled 2024-08-28 15:44:03 -04:00
Eli Bosley
1a20c66c02 fix: permission for dashboard payload 2024-08-28 15:44:03 -04:00
Eli Bosley
587bbb3b4d feat: create stable hash based on apikey rather than hostname 2024-08-28 15:44:03 -04:00
Eli Bosley
e95f7a1a03 feat: remove dashboard types 2024-08-28 15:44:03 -04:00
Eli Bosley
9c75f6e2ca feat: update tests and snapshots 2024-08-28 15:44:03 -04:00
Eli Bosley
822042ab9c feat: remove dashboard resolver completely in favor of direct field resolvers 2024-08-28 15:44:03 -04:00
Eli Bosley
3a843b6e16 feat: disable all legacy dashboard and network logic 2024-08-28 15:44:03 -04:00
renovate[bot]
6072387c37 chore(deps): update dependency @types/node to v18.19.46 (#795)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 14:27:11 -04:00
renovate[bot]
313162dbf2 fix(deps): update dependency wtfnode to v0.9.3 (#901)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 14:26:50 -04:00
Eli Bosley
495515abac feat: move FQDN urls to a generic parser (#899)
* feat: move FQDN urls to a generic parser

* feat: update myservers.cfg

* feat: update parser to begin changing ID fields

* fix: ID parser issues resolved

* fix: remove console log

* fix: update snapshots
2024-08-21 10:38:16 -04:00
Zack Spear
09087040e9 fix: flash backup activated detection in account payload (#898)
fix: flash backup activated detection in account payload to warn users to download back before unregistering with connect
2024-08-16 10:08:42 -04:00
Eli Bosley
4423829911 feat: add global agent (#897)
* feat: add global agent

* feat: add proxy setup to rc.unraid-api

* feat: update myservers.cfg to latest version
2024-08-14 14:52:36 -04:00
Eli Bosley
c8f469c4fb chore(release): 3.8.1 2024-08-13 14:11:02 -04:00
Zack Spear
bc61b45f9f refactor: registration component remove contact support 2024-08-13 14:04:54 -04:00
Eli Bosley
f530d9ea82 chore(release): 3.8.0 2024-08-13 13:50:07 -04:00
ljm42
2046fa5310 refactor: change flag that skips delete on uninstall (#892) 2024-08-13 13:40:18 -04:00
Zack Spear
9ea2327fa0 refactor: registration transfer check ineligible copy 2024-08-13 10:31:50 -07:00
Zack Spear
ff67b54a1b refactor: doc urls use /go links 2024-08-13 10:31:31 -07:00
ljm42
e6bd7a54be feat: always force push 2024-08-13 10:30:49 -07:00
Eli Bosley
5827b5ffa3 feat: swap to docker compose from docker-compose 2024-08-07 11:04:54 -04:00
ljm42
572a1310e0 Use "go links" when linking to Docs (#891) 2024-08-07 10:41:57 -04:00
ljm42
c1403d3826 feat: don't allow flash backup repos larger than 500MB (#890)
* feat: don't allow flash backup repos larger than 500MB

* fix: don't backup dynamix.file.integrity/logs

* feat: max file size for backup limited to 10mb

* feat: limit max repo size to 100MB

* feat: delete large repo again after 90 days
2024-08-07 10:41:36 -04:00
Eli Bosley
29afe9b9e8 feat: settings through the API (#867)
* feat: api settings fully working
* refactor: nuxt config ConnectSettings

---------

Co-authored-by: Zack Spear <hi@zackspear.com>
2024-07-03 13:38:09 -04:00
Zack Spear
e9ff33d263 feat: downgradeOs callback for non stable osCurrentBranch 2024-05-28 11:57:05 -07:00
Zack Spear
a62f60a436 fix: update status button alignment 2024-05-28 11:57:05 -07:00
Eli Bosley
838964c6ef chore: update package.json with new dependencies (#886)
* chore: update package.json with new dependencies

* feat: run codegen

* fix: got and reflect metadata revert version

* fix: pino version mismatch

* feat: update package-lock.json
2024-05-17 11:21:55 -04:00
Zack Spear
800fc12c15 refactor: server state refresh and response mutations 2024-05-16 14:13:01 -07:00
Zack Spear
80175241e3 fix: lint error for web components 2024-05-16 14:13:01 -07:00
Zack Spear
5d801f22f5 chore: ts-expect-error description for webgui troubleshoot form 2024-05-16 14:13:01 -07:00
Zack Spear
ba772add54 refactor: instantiation of web components 2024-05-16 14:13:01 -07:00
Zack Spear
ff24f12cae refactor: optional chaining for click props 2024-05-16 14:13:01 -07:00
Eli Bosley
487f5c1865 fix: tailwind config types 2024-05-16 14:13:01 -07:00
Eli Bosley
e0c90037fb fix: swap undefined to null 2024-05-16 14:13:01 -07:00
Eli Bosley
aa5f603cba fix: apolloClient types 2024-05-16 14:13:01 -07:00
Eli Bosley
409db43973 fix: ts-expect-error unneeded 2024-05-16 14:13:01 -07:00
Zack Spear
cef1b29355 fix: type check 2024-05-16 14:13:01 -07:00
Zack Spear
045750c87e fix: lint issues 2024-05-16 14:13:01 -07:00
Zack Spear
85802e7af7 fix: formattedRegTm type 2024-05-16 14:13:01 -07:00
Zack Spear
4bfdb66d46 fix: i18n t prop type 2024-05-16 14:13:01 -07:00
Zack Spear
81a6a52d9f fix: type errors round 1 2024-05-16 14:13:01 -07:00
Zack Spear
7759fe1dc3 chore(web): update deps + eslint (#887)
* chore: update deps + eslint

* fix: lint + type errors
2024-05-16 09:26:39 -04:00
renovate[bot]
3b2acb29b5 chore(deps): update dependency @vueuse/nuxt to v10.9.0 (#797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 15:23:11 -04:00
renovate[bot]
5f2b949ecf chore(deps): update dependency @nuxtjs/tailwindcss to v6.12.0 (#794)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 15:22:43 -04:00
renovate[bot]
1b956d563e fix(deps): update dependency @vue/apollo-composable to v4.0.2 (#787)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-15 15:22:30 -04:00
Eli Bosley
c6a97f5082 chore(release): 3.7.1 2024-05-15 14:33:43 -04:00
Zack Spear
7f512e47e9 fix: reboot required and available edge case (#885)
* fix: reboot required and available edge case

* chore: add missing web component translations

* chore: translations sort unique ascending, case insensitive

* fix: translation json
2024-05-15 12:24:06 -04:00
Eli Bosley
5d725b0e76 chore(release): 3.7.0 2024-05-14 15:18:07 -04:00
renovate[bot]
fe63607260 chore(deps): update dependency @types/dockerode to v3.3.29 (#768)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 16:03:35 -04:00
Zack Spear
0a1d4daf6e refactor: update os status updateAvailable 2024-05-13 10:52:30 -07:00
Zack Spear
9e9e385bef chore: UnraidUpdateCancel reorganize 2024-05-13 10:52:30 -07:00
Zack Spear
6fed39e05b chore: update cancel comment 2024-05-13 10:52:30 -07:00
Zack Spear
3dec53d13d chore: UpdateOS Status unused import 2024-05-13 10:52:30 -07:00
Zack Spear
f0ded9f5be fix: update os cancel refresh on update page 2024-05-13 10:52:30 -07:00
Zack Spear
7d55a1c2cd chore: UpdateOS Status unused import 2024-05-13 10:52:30 -07:00
Zack Spear
f3dc9663b8 feat: UI Update OS Cancel 2024-05-13 10:52:30 -07:00
Zack Spear
05c7c481a9 chore: update cancel script 2024-05-13 10:52:30 -07:00
Zack Spear
adcc1543f0 feat: UnraidUpdateCancel script 2024-05-13 10:52:30 -07:00
Zack Spear
95f873c752 refactor: UnraidCheck use current unRAIDServer.plg 2024-05-13 10:52:30 -07:00
Zack Spear
ec90f8b295 fix: plugin file deployment script 2024-05-13 10:52:30 -07:00
Zack Spear
f84195a98d fix(web): lint unused rebootVersion 2024-05-13 10:52:30 -07:00
Zack Spear
5e98a68e2e feat: ui to allow second update without reboot 2024-05-13 10:52:30 -07:00
Zack Spear
b91dbca144 refactor: btnStyle prop for CallbackButton component 2024-05-13 10:52:30 -07:00
Zack Spear
79a01da18d refactor: ButtonStyle type 2024-05-13 10:52:30 -07:00
Zack Spear
14951d3004 refactor: reboot details added to server payload to account 2024-05-13 10:52:30 -07:00
Zack Spear
64c2061bea chore: dev deployment script improvements 2024-05-13 10:52:30 -07:00
Zack Spear
e3adc9a29a chore: dev deployment script improvements 2024-05-13 10:52:30 -07:00
ljm42
6b689ffcce Chore: sync http_get_contents() with webgui (#883) 2024-05-10 12:57:57 -07:00
ljm42
c995a4c5c8 Fix: rc.flashbackup needs to check both signed in and connected (#882)
because /var/local/emhttp/myservers.cfg does not clear the connected status when the user signs out
2024-05-10 10:44:21 -07:00
Zack Spear
8d1e0f67d1 refactor: simplify version_compare in reboot-details 2024-05-08 12:47:29 -07:00
Zack Spear
7877a5dca2 refactor: reboot type detection for downgrade via callback 2024-05-08 12:47:29 -07:00
Zack Spear
16db278ffd feat: downgradeOs callback 2024-05-08 12:47:29 -07:00
ljm42
521b4381f2 Fix bug in flash backup rate limiter (#880)
Don't try to read from an empty file
2024-05-07 17:11:36 -07:00
ljm42
9ae9d40f94 fix: keep minor enhancements from #872 (#878) 2024-05-07 08:39:46 -07:00
Zack Spear
1d562d404c fix(web): registration component remove unused ref 2024-05-06 10:44:16 -07:00
Zack Spear
7ac1b268d9 refactor(web): registration linked learn more callback to my keys 2024-05-06 10:44:16 -07:00
Zack Spear
4833e9dccf chore: translations 2024-05-06 10:44:16 -07:00
Zack Spear
f28b7510fa feat(web): Registration key linked to account status 2024-05-06 10:44:16 -07:00
Zack Spear
37b717b142 refactor(web): button component no style option 2024-05-06 10:44:16 -07:00
Zack Spear
fd8b40d9aa feat(web): callback types myKeys & linkKey 2024-05-06 10:44:16 -07:00
Eli Bosley
1d944781cf feat: add a timestamp to flash backup (#877)
* feat: add a timestamp to flash backup

* feat: update gitignore

* feat: random interval is now 30 minutes
2024-05-06 13:40:42 -04:00
Zack Spear
1f4c64d022 feat(plg): install prevent downgrade of shared page & php files (#873)
* feat(plg): install prevent downgrade of shared page & php files

* chore(plg): remove debug echo

* fix(plg): remove extra char
2024-05-02 14:08:38 -07:00
Zack Spear
f69b5130a3 refactor(web): copy Ineligible for feature updates (#875)
* refactor(web): copy Ineligible for feature updates

* refactor(web): Eligible for free feature updates
2024-05-02 14:04:16 -07:00
Zack Spear
f8b143904b fix: prevent corrupt case model in state.php (#874)
fix: prevent corruprt case model in state.php
2024-05-02 14:00:29 -07:00
Zack Spear
31a5413643 feat(web): registration page array status messaging 2024-05-01 12:21:24 -07:00
Zack Spear
a95fc5ed07 chore: lint fix 2024-05-01 12:21:24 -07:00
Zack Spear
fcd7bb790e refactor(web): ineligible release messaging 2024-05-01 12:21:24 -07:00
Zack Spear
008e10948e fix: prevent local dev from throwing ssl error 2024-05-01 12:21:24 -07:00
Zack Spear
c97a4f1268 feat: registration page server error heading + subheading 2024-05-01 12:21:24 -07:00
Zack Spear
3eba95b8cc feat: array state on registration page 2024-05-01 12:21:24 -07:00
Zack Spear
2bf8f0b937 fix(api): readme discord url 2024-04-30 17:34:46 -07:00
Zack Spear
9ae45d1258 fix(web): discord url 2024-04-30 17:34:46 -07:00
Zack Spear
1835a4cf3f chore(plg): comment explain web component downgrade prevention 2024-04-30 17:12:33 -07:00
Zack Spear
2ab44b894d feat(plg): plg install prevent web component downgrade 2024-04-30 17:12:33 -07:00
Zack Spear
1108f49b07 feat: postbuild script to add timestamp to web component manifest 2024-04-30 17:12:33 -07:00
ljm42
cc69213beb Feat: Flash Backup requires connection to mothership (#868)
* fix: branding

* feat: flash backup requires connection to mothership

* feat: flash backup requires connection to mothership
2024-04-26 12:01:42 -04:00
ljm42
460e557dd8 Flash Backup: exclude large files from repo (#866) 2024-04-23 21:21:01 -04:00
Zack Spear
05e29468d2 refactor: trial messaging replace pro with unleashed (#865)
* refactor: trial messaging replace pro with unleashed

* fix: trial messaging grammar

* refactor: web component translations trial messaging
2024-04-03 13:46:25 -04:00
ljm42
4d3a311fb4 Feat: add support for outgoing proxies (#863) 2024-03-27 15:14:18 -07:00
Zack Spear
bc62d210ec refactor: config error messages (#862) 2024-03-26 12:30:34 -04:00
Eli Bosley
43d3ea6553 chore(release): 3.6.0 2024-03-26 10:19:31 -04:00
Zack Spear
882e3e1ef4 feat: server config enum message w/ ineligible support (#861)
* test: serverState local components data tweaks

* feat: server config enum message w/ ineligible support

* refactor: config error messages

* chore: lint
2024-03-26 09:57:04 -04:00
Eli Bosley
b33c86c99c chore(release): 3.5.3 2024-03-25 09:22:14 -04:00
Zack Spear
cd0248e4c9 refactor: upgrade action button for unleashed to lifetime (#859) 2024-03-20 10:27:33 -04:00
Zack Spear
ecb3ed5003 fix: regDevs usage to allow more flexibility for STARTER (#860)
* fix: regDevs usage to allow more flexibility for STARTER

* fix: lint and type-check
2024-03-20 08:50:02 -04:00
Zack Spear
0569339a41 refactor(upc): remove UpdateDNS requests 2024-03-12 16:36:04 -07:00
ljm42
3e9faead43 Replace UpdateDNS.php with a stub (#857)
* This new stub file makes no network calls and always returns success
* It is meant to be backwards compatible with older releases of Unraid that expect the script to exist
2024-03-12 15:57:17 -04:00
Eli Bosley
6e700b2385 chore(release): 3.5.2 2024-03-06 10:20:09 -05:00
renovate[bot]
464fc4993c fix(deps): update dependency vue-i18n to v9.10.1 (#813)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-05 15:08:22 -05:00
renovate[bot]
4316c72809 chore(deps): update dependency terser to v5.28.1 (#802)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-05 15:08:05 -05:00
renovate[bot]
ce0cebe09c chore(deps): update dependency node to v18.19.1 (#801)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-05 15:07:51 -05:00
renovate[bot]
23b90a0d56 fix(deps): update dependency wretch to v2.8.0 (#814)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-05 15:07:38 -05:00
Zack Spear
3f8b3536b5 refactor: ENOKEYFILE messaging + button order (#856) 2024-03-05 15:07:20 -05:00
Zack Spear
0dcf785b45 fix: update os check modal button conditionals 2024-02-29 14:49:20 -08:00
Zack Spear
8cf4aff622 fix: update os check modal ineligible date format 2024-02-29 14:16:09 -08:00
Eli Bosley
cefda7c42b chore(release): 3.5.1 2024-02-29 12:43:48 -05:00
Eli Bosley
0393b2382c fix: build docker command updated to use dc.sh script 2024-02-29 12:43:41 -05:00
renovate[bot]
23e900f7fd chore(deps): update docker/setup-buildx-action action to v3 (#827)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-29 09:36:32 -05:00
renovate[bot]
2d6aafc257 chore(deps): update dependency eslint to v8.57.0 (#798)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-29 09:29:55 -05:00
renovate[bot]
b191efece1 chore(deps): update vitest monorepo to v1.3.1 (#784)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-29 09:29:40 -05:00
renovate[bot]
2a7f0043f5 fix(deps): update dependency @heroicons/vue to v2.1.1 (#804)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-29 09:29:17 -05:00
renovate[bot]
607c7e3704 fix(deps): update dependency @apollo/client to v3.9.5 (#785)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-29 09:29:01 -05:00
renovate[bot]
c246a443c5 fix(deps): update dependency graphql-ws to v5.15.0 (#790)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-29 09:25:35 -05:00
renovate[bot]
fd495e1f5c fix(deps): update dependency focus-trap to v7.5.4 (#788)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-29 09:24:58 -05:00
Zack Spear
621a06cafa fix: unraid-api.php $param1 fallback 2024-02-28 21:11:21 -08:00
Zack Spear
f890b05151 fix: unraid-api missing start command + var defaults 2024-02-28 21:11:21 -08:00
Zack Spear
567d8fdd6d fix: state php special chars for html attributes (#853)
* fix: state php special chars for html attributes

* refactor: upc description as v-html to latest state php change
2024-02-28 13:42:11 -05:00
ljm42
7d996906ad fix: date format in UnraidCheck.php (#852) 2024-02-27 13:43:01 -05:00
Zack Spear
b5ec076279 fix: os updates rc to stable 2024-02-23 13:47:35 -08:00
Zack Spear
de8dfe3dba fix: state php breaking with double quotes in server description 2024-02-23 13:46:09 -08:00
Zack Spear
7249956d40 fix: state connect values without connect installed 2024-02-23 13:46:09 -08:00
Zack Spear
e6eb56466e fix: display dropdown for pro key no connect installed (#848) 2024-02-14 11:10:28 -05:00
Zack Spear
8954700bcb fix: dropdown reboot link text (#849)
fix: dropdown reboot link
2024-02-14 10:50:03 -05:00
Eli Bosley
eb595cea9e chore(release): 3.5.0 2024-02-07 12:51:01 -05:00
Eli Bosley
9a1a0a54e6 feat: ship production to different bucket (#846) 2024-02-07 12:47:35 -05:00
Zack Spear
134396b602 refactor: state class webgui global fallback 2024-02-05 12:58:15 -08:00
Zack Spear
2aa65fdb68 fix: state php usage from cli 2024-02-05 12:58:15 -08:00
Zack Spear
a9c4d7d5dd chore: comment to handle error on sha256 fetch 2024-02-05 12:58:15 -08:00
Zack Spear
2cbbd5ee40 refactor: remove client side auto renewal 2024-02-05 12:58:15 -08:00
Zack Spear
c84c55761c fix: State Class usage in other files 2024-02-05 12:58:15 -08:00
Zack Spear
77eed36990 refactor: replaceRenewCheck only fire on Tools > Registration 2024-02-05 12:58:15 -08:00
Eli Bosley
5c2d84d8b4 feat: ship preview to different bucket (#845) 2024-02-02 12:01:18 -05:00
Eli Bosley
9883f0f82f feat: also ship to cloudflare (#844) 2024-02-02 10:53:24 -05:00
Zack Spear
e62b05b6f6 fix: extraLinks when no updates available 2024-02-01 12:38:10 -08:00
Zack Spear
8e6ee8b770 refactor: copy Extend Key to Extend License 2024-02-01 12:11:38 -08:00
Zack Spear
666b51a28a refactor: update os response modal button ordering 2024-02-01 11:48:14 -08:00
Zack Spear
1962097a66 refactor: callback modal button icons 2024-01-31 18:45:42 -08:00
Zack Spear
7f010854b5 refactor: availableWithRenewal determined by updateOsResponse isEligible
refactor: updateOsResponse changelogPretty key renamed
2024-01-31 14:52:04 -08:00
Zack Spear
17288a4c02 refactor: removing ignored release uncheck ignoreThisRelease 2024-01-31 14:52:04 -08:00
ljm42
ea48def9fc fix: backport _var() PHP function to older versions of Unraid 2024-01-31 14:06:15 -08:00
Zack Spear
a1d5c29ffb fix: state data humanReadable switch fallthrus 2024-01-31 13:33:34 -08:00
Zack Spear
bf99eb25c8 feat: update os notifications enabled usage + link to enable & more options to account app 2024-01-31 12:39:14 -08:00
Zack Spear
b35a440792 refactor: callback modal spacing 2024-01-31 11:02:37 -08:00
Zack Spear
58f9eec8b1 refactor: targeting keyType strings for Starter / Unleashed 2024-01-31 11:02:37 -08:00
Zack Spear
26841aa10d refactor: Registration component onBeforeMount 2024-01-31 11:02:37 -08:00
Zack Spear
e18a8d670e refactor: UnraidCheck writeJsonFile JSON_UNESCAPED_SLASHES 2024-01-31 11:02:37 -08:00
Zack Spear
49d077db97 refactor: UnraidCheck removeAllIgnored fail silently 2024-01-31 11:02:37 -08:00
Zack Spear
9dafe165b0 chore: UnraidCheck.checkForUpdate todo comment 2024-01-31 11:02:37 -08:00
Zack Spear
cce1953cb8 fix: ServerUpdateOsResponse type 2024-01-31 11:02:37 -08:00
Zack Spear
7e33b25593 refactor: header os version update status only when no state error 2024-01-31 11:02:37 -08:00
Zack Spear
78fb49a6fc refactor: only display UPC update links when no stateDataError 2024-01-31 11:02:37 -08:00
Zack Spear
f1e0d93bc5 refactor: header os version reboot type status simplify 2024-01-31 11:02:37 -08:00
Zack Spear
195a178d15 refactor: unraidcheck to use UnraidCheck class 2024-01-31 11:02:37 -08:00
Zack Spear
b9257fce28 refactor: state php to use UnraidCheck class 2024-01-31 11:02:37 -08:00
Zack Spear
41eaf4ef1b fix: lint 2024-01-31 11:02:37 -08:00
Zack Spear
93d0c08955 fix: check update response modal expired key button styles 2024-01-31 11:02:37 -08:00
Zack Spear
c5bc3454ff refactor: UnraidCheck clean up 2024-01-31 11:02:37 -08:00
Zack Spear
c33b4ef709 refactor: consolidate UpdateOS php files into a single class 2024-01-31 11:02:37 -08:00
Zack Spear
ce3ba7d070 refactor: update os check conditional altUrl param 2024-01-31 11:02:37 -08:00
Zack Spear
639eb08291 refactor: modal close button spacing 2024-01-31 11:02:37 -08:00
Zack Spear
6d109b4c4c refactor: upc dropdown conditional update os buttons 2024-01-31 11:02:37 -08:00
Zack Spear
6f3971dc47 refactor: check update response modal copy + alignment 2024-01-31 11:02:37 -08:00
Zack Spear
2ccb503dc8 refactor: lint clean up 2024-01-31 11:02:37 -08:00
Zack Spear
3cb9fdf102 refactor: modal spacing 2024-01-31 11:02:37 -08:00
Zack Spear
40d81a4081 refactor: translations 2024-01-31 11:02:37 -08:00
Zack Spear
5a85f55be8 refactor: header os version update os status pills 2024-01-31 11:02:37 -08:00
Zack Spear
5455e211bc chore: @todo for changelog_pretty 2024-01-31 11:02:37 -08:00
Zack Spear
cb4cc989c7 fix: missing translations 2024-01-31 11:02:37 -08:00
Zack Spear
037aa479bf refactor: improve responsive modal 2024-01-31 11:02:37 -08:00
Zack Spear
08567f287a fix: marked-base-url install 2024-01-31 11:02:37 -08:00
Zack Spear
a57f1d890d fix: changlog relative links and external links 2024-01-31 11:02:37 -08:00
Zack Spear
3ab406e012 refactor: modal styles & content scrollable 2024-01-31 11:02:37 -08:00
Zack Spear
f36f4702a2 fix: lint unused value 2024-01-31 11:02:37 -08:00
Zack Spear
62697f7972 feat: updateOs check response determines if update auth is required 2024-01-31 11:02:37 -08:00
Zack Spear
ec8d2bc0e8 feat: getOsReleaseBySha256 cached endpoint with keyfile header 2024-01-31 11:02:37 -08:00
Zack Spear
d83664b6a3 refactor: update os change modal continue button 2024-01-31 11:02:37 -08:00
Zack Spear
6910a020d2 chore: clean up console log 2024-01-31 11:02:37 -08:00
Zack Spear
60e5c6e3e8 fix: regTm format when already set 2024-01-31 11:02:37 -08:00
Zack Spear
90b1432875 fix: regTm format after key install without page refresh 2024-01-31 11:02:37 -08:00
Zack Spear
f1059aa381 refactor: header os update available badge open update modal 2024-01-31 11:02:37 -08:00
Zack Spear
01b4937f35 refactor: update os ignore release text 2024-01-31 11:02:37 -08:00
Zack Spear
3e051815c5 feat: update os ignore release 2024-01-31 11:02:37 -08:00
Zack Spear
e976daf8b0 refactor: ignore release switch colors 2024-01-31 11:02:37 -08:00
Zack Spear
422046dc03 refactor: registration item label text-right 2024-01-31 11:02:37 -08:00
Zack Spear
9a270971d1 refactor: center registration item without label 2024-01-31 11:02:37 -08:00
Zack Spear
0742382ae1 refactor: registration page conditionals 2024-01-31 11:02:37 -08:00
Zack Spear
763c38430e feat: add manage account link to all versions of upc dropdown 2024-01-31 11:02:37 -08:00
Zack Spear
4d926bba8e refactor: remove update os callback link from upc dropdown 2024-01-31 11:02:37 -08:00
Zack Spear
4acc4ea9a9 fix: ignore release localStorage 2024-01-31 11:02:37 -08:00
Zack Spear
565bf47818 fix: translations 2024-01-31 11:02:37 -08:00
Zack Spear
176a0f30be refactor: check update modal styles 2024-01-31 11:02:37 -08:00
Zack Spear
6f4d983d89 chore: uninstall pinia-plugin-persistedstate 2024-01-31 11:02:37 -08:00
Zack Spear
6a0e258cf2 test: component viewer 2024-01-31 11:02:37 -08:00
Zack Spear
8d82064888 refactor: translations 2024-01-31 11:02:37 -08:00
Zack Spear
4300179b67 refactor: check update response modal styling 2024-01-31 11:02:37 -08:00
Zack Spear
7e31ae2ebf refactor: changelog modal improvements 2024-01-31 11:02:37 -08:00
Zack Spear
7a27560b0d fix: type issue with changlelog modal visibility 2024-01-31 11:02:37 -08:00
Zack Spear
93655fef62 refactor: tailwind prose styles 2024-01-31 11:02:37 -08:00
Zack Spear
a581a95cb4 chore: formatting 2024-01-31 11:02:37 -08:00
Zack Spear
261fdda47c test: update data 2024-01-31 11:02:37 -08:00
Zack Spear
7a2a243a21 refactor: translations for new check update modals 2024-01-31 11:02:37 -08:00
Zack Spear
bead4256af feat: new check update buttons in dropdown 2024-01-31 11:02:37 -08:00
Zack Spear
e8dfd7e3b3 feat: update modals 2024-01-31 11:02:37 -08:00
Zack Spear
e456b7fcac feat: changelog modal 2024-01-31 11:02:37 -08:00
Zack Spear
fbe5e417ef feat: check update response modal 2024-01-31 11:02:37 -08:00
Zack Spear
5f80053a33 refactor: test page 2024-01-31 11:02:37 -08:00
Zack Spear
fa520a2d3e feat: button add underline-hover-red style option 2024-01-31 11:02:37 -08:00
Zack Spear
cf54f01945 chore: install marked 2024-01-31 11:02:37 -08:00
Zack Spear
44d2d58f12 refactor: modal spacing 2024-01-31 11:02:37 -08:00
Zack Spear
daba2a352f feat: updateOs store call local server-side endpoint & add modal support 2024-01-31 11:02:37 -08:00
Zack Spear
d1ff2b1fad refactor: button props type usage 2024-01-31 11:02:37 -08:00
Zack Spear
b1bd71f2e2 refactor: updateOs callback button action 2024-01-31 11:02:37 -08:00
Zack Spear
7f49816275 refactor: use account store updateOs callback 2024-01-31 11:02:37 -08:00
Zack Spear
d73d460e88 feat: create WebguiCheckForUpdate endpoint 2024-01-31 11:02:37 -08:00
Zack Spear
ab1e852b6c refactor: abstract button compnoent props type 2024-01-31 11:02:37 -08:00
Zack Spear
117b7430db chore: organize npm scripts & install pinia-plugin-persistedstate 2024-01-31 11:02:37 -08:00
Zack Spear
2e73f9e37a refactor: account updateOs callback 2024-01-31 11:02:37 -08:00
Zack Spear
d3158983b4 refactor: ServerUpdateOsResponse type 2024-01-31 11:02:37 -08:00
Zack Spear
dae7baa6ad refactor: server state parsedRegExp & set updateOsResponse 2024-01-31 11:02:37 -08:00
Zack Spear
e29f5e1adf feat: WebguiCheckForUpdate using server-side check 2024-01-31 11:02:37 -08:00
Zack Spear
e8d15c7dbb refactor: nuxt auto import components 2024-01-31 11:02:37 -08:00
Zack Spear
58be009da4 feat: unraidcheck callable from webgui with altUrl & json output 2024-01-31 11:02:37 -08:00
Eli Bosley
d4eb0ce3f2 feat: add new staging url for connect website (#841)
* feat: add new staging url for connect website

* feat: add url to plg
2024-01-12 13:42:15 -05:00
Eli Bosley
d73324a141 feat: upgrade a ton of dependencies (#842)
* feat: upgrade a ton of dependencies
2024-01-12 13:05:51 -05:00
renovate[bot]
7061be60f4 chore(deps): update docker/build-push-action action to v5 (#826)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-12 11:03:19 -05:00
renovate[bot]
2a65f64ac1 fix(deps): update dependency ws to v8.16.0 (#815)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-12 11:03:02 -05:00
Eli Bosley
120ba3e447 chore(release): 3.4.0 2024-01-11 17:28:39 -05:00
Eli Bosley
a527c7183a fix: run hourly 2024-01-11 17:25:57 -05:00
Eli Bosley
a0dfbb4e15 feat: add logrotate to cron in nestjs (#839)
* feat: add logrotate to cron in nestjs

* fix: set max size to 5m and remove old logs

* fix: logrotate command invalid
2024-01-11 17:17:23 -05:00
Eli Bosley
764f65ff61 fix: allow failure for log deletion 2024-01-11 16:44:25 -05:00
Eli Bosley
1615e8623c fix: excessive logging 2024-01-11 16:34:10 -05:00
Eli Bosley
d7bb9ff073 fix: allowed origins check not working without spaces (#838)
* fix: allowed origins check not working without spaces

* fix: broken test
2024-01-11 10:52:42 -05:00
1382 changed files with 144243 additions and 72119 deletions

View File

@@ -0,0 +1,31 @@
{
"permissions": {
"allow": [
"Bash(rg:*)",
"Bash(find:*)",
"Bash(pnpm codegen:*)",
"Bash(pnpm dev:*)",
"Bash(pnpm build:*)",
"Bash(pnpm test:*)",
"Bash(grep:*)",
"Bash(pnpm type-check:*)",
"Bash(pnpm lint:*)",
"Bash(pnpm --filter ./api lint)",
"Bash(mv:*)",
"Bash(ls:*)",
"mcp__ide__getDiagnostics",
"Bash(pnpm --filter \"*connect*\" test connect-status-writer.service.spec)",
"Bash(pnpm add:*)",
"Bash(npx tsc:*)",
"Bash(pnpm list:*)",
"Bash(rm:*)",
"Bash(pnpm --filter ./api test)",
"Bash(pnpm i:*)",
"Bash(pnpm:*)",
"Bash(corepack prepare:*)",
"Bash(nvm:*)",
"Bash(git config:*)"
]
},
"enableAllProjectMcpServers": false
}

View File

@@ -0,0 +1,13 @@
---
description:
globs: api/**/*,api/*
alwaysApply: false
---
* pnpm ONLY
* always run scripts from api/package.json unless requested
* prefer adding new files to the nest repo located at api/src/unraid-api/ instead of the legacy code
* Test suite is VITEST, do not use jest
pnpm --filter ./api test
* Prefer to not mock simple dependencies

View File

@@ -0,0 +1,8 @@
---
description:
globs:
alwaysApply: true
---
Never add comments unless they are needed for clarity of function
Be CONCISE, keep replies shorter than a paragraph if at all passible.

View File

@@ -0,0 +1,6 @@
---
description:
globs:
alwaysApply: true
---
Never add comments for obvious things, and avoid commenting when starting and ending code blocks

View File

@@ -0,0 +1,9 @@
---
description:
globs: web/**/*
alwaysApply: false
---
* Always run `pnpm codegen` for GraphQL code generation in the web directory
* GraphQL queries must be placed in `.query.ts` files
* GraphQL mutations must be placed in `.mutation.ts` files
* All GraphQL under `web/` and follow this naming convention

View File

@@ -0,0 +1,240 @@
---
description:
globs: **/*.test.ts,**/__test__/components/**/*.ts,**/__test__/store/**/*.ts,**/__test__/mocks/**/*.ts
alwaysApply: false
---
## Vue Component Testing Best Practices
- This is a Nuxt.js app but we are testing with vitest outside of the Nuxt environment
- Nuxt is currently set to auto import so some vue files may need compute or ref imported
- Use pnpm when running termical commands and stay within the web directory.
- The directory for tests is located under `web/__test__` when running test just run `pnpm test`
### Setup
- Use `mount` from Vue Test Utils for component testing
- Stub complex child components that aren't the focus of the test
- Mock external dependencies and services
```typescript
import { mount } from '@vue/test-utils';
import { beforeEach, describe, expect, it, vi } from 'vitest';
import { createTestingPinia } from '@pinia/testing'
import { useSomeStore } from '@/stores/myStore'
import YourComponent from '~/components/YourComponent.vue';
// Mock dependencies
vi.mock('~/helpers/someHelper', () => ({
SOME_CONSTANT: 'mocked-value',
}));
describe('YourComponent', () => {
beforeEach(() => {
vi.clearAllMocks();
});
it('renders correctly', () => {
const wrapper = mount(YourComponent, {
global: {
plugins: [createTestingPinia()],
stubs: {
// Stub child components when needed
ChildComponent: true,
},
},
});
const store = useSomeStore() // uses the testing pinia!
// state can be directly manipulated
store.name = 'my new name'
// actions are stubbed by default, meaning they don't execute their code by default.
// See below to customize this behavior.
store.someAction()
expect(store.someAction).toHaveBeenCalledTimes(1)
// Assertions on components
expect(wrapper.text()).toContain('Expected content');
});
});
```
### Testing Patterns
- Test component behavior and output, not implementation details
- Verify that the expected elements are rendered
- Test component interactions (clicks, inputs, etc.)
- Check for expected prop handling and event emissions
- Use `createTestingPinia()` for mocking stores in components
### Finding Elements
- Use semantic queries like `find('button')` or `find('[data-test="id"]')` but prefer not to use data test ID's
- Find components with `findComponent(ComponentName)`
- Use `findAll` to check for multiple elements
### Assertions
- Assert on rendered text content with `wrapper.text()`
- Assert on element attributes with `element.attributes()`
- Verify element existence with `expect(element.exists()).toBe(true)`
- Check component state through rendered output
### Component Interaction
- Trigger events with `await element.trigger('click')`
- Set input values with `await input.setValue('value')`
- Test emitted events with `wrapper.emitted()`
### Mocking
- Mock external services and API calls
- Prefer not using mocks whenever possible
- Use `vi.mock()` for module-level mocks
- Specify return values for component methods with `vi.spyOn()`
- Reset mocks between tests with `vi.clearAllMocks()`
- Frequently used mocks are stored under `web/test/mocks`
### Async Testing
- Use `await nextTick()` for DOM updates
- Use `flushPromises()` for more complex promise chains
- Always await async operations before making assertions
## Store Testing with Pinia
### Basic Setup
- When testing Store files use `createPinia` and `setActivePinia`
```typescript
import { createPinia, setActivePinia } from 'pinia';
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import { useYourStore } from '~/store/your-store';
// Mock declarations must be at top level due to hoisting
const mockDependencyFn = vi.fn();
// Module mocks must use factory functions
vi.mock('~/store/dependency', () => ({
useDependencyStore: () => ({
someMethod: mockDependencyFn,
someProperty: 'mockValue'
})
}));
describe('Your Store', () => {
let store: ReturnType<typeof useYourStore>;
beforeEach(() => {
setActivePinia(createPinia());
store = useYourStore();
vi.clearAllMocks();
});
afterEach(() => {
vi.resetAllMocks();
});
it('tests some action', () => {
store.someAction();
expect(mockDependencyFn).toHaveBeenCalled();
});
});
```
### Important Guidelines
1. **Store Initialization**
- Use `createPinia()` instead of `createTestingPinia()` for most cases
- Only use `createTestingPinia` if you specifically need its testing features
- Let stores initialize with their natural default state instead of forcing initial state
- Do not mock the store we're actually testing in the test file. That's why we're using `createPinia()`
2. **Vue Reactivity**
- Ensure Vue reactivity imports are added to original store files as they may be missing because Nuxt auto import was turned on
- Don't rely on Nuxt auto-imports in tests
```typescript
// Required in store files, even with Nuxt auto-imports
import { computed, ref, watchEffect } from 'vue';
```
3. **Mocking Best Practices**
- Place all mock declarations at the top level
- Use factory functions for module mocks to avoid hoisting issues
```typescript
// ❌ Wrong - will cause hoisting issues
const mockFn = vi.fn();
vi.mock('module', () => ({ method: mockFn }));
// ✅ Correct - using factory function
vi.mock('module', () => {
const mockFn = vi.fn();
return { method: mockFn };
});
```
4. **Testing Actions**
- Test action side effects and state changes
- Verify actions are called with correct parameters
- Mock external dependencies appropriately
```typescript
it('should handle action correctly', () => {
store.yourAction();
expect(mockDependencyFn).toHaveBeenCalledWith(
expectedArg1,
expectedArg2
);
expect(store.someState).toBe(expectedValue);
});
```
5. **Common Pitfalls**
- Don't mix mock declarations and module mocks incorrectly
- Avoid relying on Nuxt's auto-imports in test environment
- Clear mocks between tests to ensure isolation
- Remember that `vi.mock()` calls are hoisted
### Testing State & Getters
- Test computed properties by accessing them directly
- Verify state changes after actions
- Test getter dependencies are properly mocked
```typescript
it('computes derived state correctly', () => {
store.setState('new value');
expect(store.computedValue).toBe('expected result');
});
```
### Testing Complex Interactions
- Test store interactions with other stores
- Verify proper error handling
- Test async operations completely
```typescript
it('handles async operations', async () => {
const promise = store.asyncAction();
expect(store.status).toBe('loading');
await promise;
expect(store.status).toBe('success');
});
```
### Testing Actions
- Verify actions are called with the right parameters
- Test action side effects if not stubbed
- Override specific action implementations when needed
```typescript
// Test action calls
store.yourAction(params);
expect(store.yourAction).toHaveBeenCalledWith(params);
// Test with real implementation
const pinia = createTestingPinia({
createSpy: vi.fn,
stubActions: false,
});
```
### Testing State & Getters
- Set initial state for focused testing
- Test computed properties by accessing them directly
- Verify state changes by updating the store

20
.github/CODEOWNERS vendored Normal file
View File

@@ -0,0 +1,20 @@
# Default owners for everything in the repo
* @elibosley @pujitm @mdatelle @zackspear
# API specific files
/api/ @elibosley @pujitm @mdatelle
# Web frontend files
/web/ @elibosley @mdatelle @zackspear
# Plugin related files
/plugin/ @elibosley
# Unraid UI specific files
/unraid-ui/ @mdatelle @zackspear @pujitm
# GitHub workflows and configuration
/.github/ @elibosley
# Documentation
*.md @elibosley @pujitm @mdatelle @zackspear

45
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,45 @@
---
name: Bug Report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
<!--
IMPORTANT: If your issue is related to Unraid Connect features (Flash Backup, connect.myunraid.net, mothership errors with connectivity, etc.) please submit a ticket here: [LINK TO FRESHDESK FORM FOR CONNECT] and choose Unraid Connect in the dropdown.
-->
## Environment
**Unraid OS Version:**
<!-- Please specify your Unraid version (e.g. 7.0.0) -->
**Are you using a reverse proxy?**
<!-- Please answer Yes/No. If yes, have you tested the issue by accessing your server directly? -->
<!-- Note: Reverse proxies are not officially supported by Unraid and can cause issues with various components of Unraid OS -->
## Pre-submission Checklist
<!-- Please check all that apply by replacing [ ] with [x] -->
- [ ] I have verified that my Unraid OS is up to date
- [ ] I have tested this issue by accessing my server directly (not through a reverse proxy)
- [ ] This is not an Unraid Connect related issue (if it is, please submit via the support form instead)
## Issue Description
<!-- Please provide a clear and concise description of the issue -->
## Steps to Reproduce
1.
2.
3.
## Expected Behavior
<!-- What did you expect to happen? -->
## Actual Behavior
<!-- What actually happened? -->
## Additional Context
<!-- Add any other context, screenshots, or error messages about the problem here -->

View File

@@ -0,0 +1,34 @@
---
name: Feature Request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''
---
<!--
IMPORTANT: If your feature request is related to Unraid Connect features (Flash Backup, connect.myunraid.net, etc.) please submit it here: [LINK TO FRESHDESK FORM FOR CONNECT] and choose Unraid Connect in the dropdown.
-->
## Is your feature request related to a problem?
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
## Describe the solution you'd like
<!-- A clear and concise description of what you want to happen -->
## Describe alternatives you've considered
<!-- A clear and concise description of any alternative solutions or features you've considered -->
## Additional context
<!-- Add any other context, mockups, or screenshots about the feature request here -->
## Environment (if relevant)
**Unraid OS Version:**
<!-- Please specify your Unraid version (e.g. 7.0.0) if the feature request is version-specific -->
## Pre-submission Checklist
<!-- Please check all that apply by replacing [ ] with [x] -->
- [ ] I have searched existing issues to ensure this feature hasn't already been requested
- [ ] This is not an Unraid Connect related feature (if it is, please submit via the support form instead)
- [ ] I have provided clear examples or use cases for the feature

41
.github/ISSUE_TEMPLATE/work_intent.md vendored Normal file
View File

@@ -0,0 +1,41 @@
---
name: Work Intent
about: Request approval for planned development work (must be approved before starting)
title: 'Work Intent: '
labels: work-intent, unapproved
assignees: 'elibosley'
---
<!--
IMPORTANT: This work intent must be approved by a core developer before beginning any development work.
The 'unapproved' label will be removed once approved.
-->
## Overview
<!-- Provide a high-level description of what you want to work on and why -->
## Technical Approach
<!-- Brief description of how you plan to implement this -->
## Scope
<!-- Check components that will be modified -->
- [ ] API
- [ ] Plugin
- [ ] Web UI
- [ ] Build/Deploy Process
- [ ] Documentation
## Timeline & Impact
<!-- Quick details about timing and effects -->
- Estimated time needed:
- Potential impacts:
## Pre-submission Checklist
<!-- Please check all that apply -->
- [ ] I have searched for similar work/issues
- [ ] I understand this needs approval before starting
- [ ] I am willing to make adjustments based on feedback
<!--
For Reviewers: Remove 'unapproved' label and add 'approved' label if accepted
-->

49
.github/codeql/README.md vendored Normal file
View File

@@ -0,0 +1,49 @@
# CodeQL Security Analysis for Unraid API
This directory contains custom CodeQL queries and configurations for security analysis of the Unraid API codebase.
## Overview
The analysis is configured to run:
- On all pushes to the main branch
- On all pull requests
- Weekly via scheduled runs
## Custom Queries
The following custom queries are implemented:
1. **API Authorization Bypass Detection**
Identifies API handlers that may not properly check authorization before performing operations.
2. **GraphQL Injection Detection**
Detects potential injection vulnerabilities in GraphQL queries and operations.
3. **Hardcoded Secrets Detection**
Finds potential hardcoded secrets or credentials in the codebase.
4. **Insecure Cryptographic Implementations**
Identifies usage of weak cryptographic algorithms or insecure random number generation.
5. **Path Traversal Vulnerability Detection**
Detects potential path traversal vulnerabilities in file system operations.
## Configuration
The CodeQL analysis is configured in:
- `.github/workflows/codeql-analysis.yml` - Workflow configuration
- `.github/codeql/codeql-config.yml` - CodeQL engine configuration
## Running Locally
To run these queries locally:
1. Install the CodeQL CLI: https://github.com/github/codeql-cli-binaries/releases
2. Create a CodeQL database:
```
codeql database create <db-name> --language=javascript --source-root=.
```
3. Run a query:
```
codeql query run .github/codeql/custom-queries/javascript/api-auth-bypass.ql --database=<db-name>
```

16
.github/codeql/codeql-config.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
name: "Unraid API CodeQL Configuration"
disable-default-queries: false
queries:
- name: Extended Security Queries
uses: security-extended
- name: Custom Unraid API Queries
uses: ./.github/codeql/custom-queries
query-filters:
- exclude:
problem.severity:
- warning
- recommendation
tags contain: security

View File

@@ -0,0 +1,45 @@
/**
* @name Potential API Authorization Bypass
* @description Functions that process API requests without verifying authorization may lead to security vulnerabilities.
* @kind problem
* @problem.severity error
* @precision medium
* @id js/api-auth-bypass
* @tags security
* external/cwe/cwe-285
*/
import javascript
/**
* Identifies functions that appear to handle API requests
*/
predicate isApiHandler(Function f) {
exists(f.getAParameter()) and
(
f.getName().regexpMatch("(?i).*(api|handler|controller|resolver|endpoint).*") or
exists(CallExpr call |
call.getCalleeName().regexpMatch("(?i).*(get|post|put|delete|patch).*") and
call.getArgument(1) = f
)
)
}
/**
* Identifies expressions that appear to perform authorization checks
*/
predicate isAuthCheck(DataFlow::Node node) {
exists(CallExpr call |
call.getCalleeName().regexpMatch("(?i).*(authorize|authenticate|isAuth|checkAuth|verifyAuth|hasPermission|isAdmin|canAccess).*") and
call.flow().getASuccessor*() = node
)
}
from Function apiHandler
where
isApiHandler(apiHandler) and
not exists(DataFlow::Node authCheck |
isAuthCheck(authCheck) and
authCheck.getEnclosingExpr().getEnclosingFunction() = apiHandler
)
select apiHandler, "API handler function may not perform proper authorization checks."

View File

@@ -0,0 +1,77 @@
/**
* @name Potential GraphQL Injection
* @description User-controlled input used directly in GraphQL queries may lead to injection vulnerabilities.
* @kind path-problem
* @problem.severity error
* @precision high
* @id js/graphql-injection
* @tags security
* external/cwe/cwe-943
*/
import javascript
import DataFlow::PathGraph
class GraphQLQueryExecution extends DataFlow::CallNode {
GraphQLQueryExecution() {
exists(string name |
name = this.getCalleeName() and
(
name = "execute" or
name = "executeQuery" or
name = "query" or
name.regexpMatch("(?i).*graphql.*query.*")
)
)
}
DataFlow::Node getQuery() {
result = this.getArgument(0)
}
}
class UserControlledInput extends DataFlow::Node {
UserControlledInput() {
exists(DataFlow::ParameterNode param |
param.getName().regexpMatch("(?i).*(query|request|input|args|variables|params).*") and
this = param
)
or
exists(DataFlow::PropRead prop |
prop.getPropertyName().regexpMatch("(?i).*(query|request|input|args|variables|params).*") and
this = prop
)
}
}
/**
* Holds if `node` is a string concatenation.
*/
predicate isStringConcatenation(DataFlow::Node node) {
exists(BinaryExpr concat |
concat.getOperator() = "+" and
concat.flow() = node
)
}
class GraphQLInjectionConfig extends TaintTracking::Configuration {
GraphQLInjectionConfig() { this = "GraphQLInjectionConfig" }
override predicate isSource(DataFlow::Node source) {
source instanceof UserControlledInput
}
override predicate isSink(DataFlow::Node sink) {
exists(GraphQLQueryExecution exec | sink = exec.getQuery())
}
override predicate isAdditionalTaintStep(DataFlow::Node pred, DataFlow::Node succ) {
// Add any GraphQL-specific taint steps if needed
isStringConcatenation(succ) and
succ.(DataFlow::BinaryExprNode).getAnOperand() = pred
}
}
from GraphQLInjectionConfig config, DataFlow::PathNode source, DataFlow::PathNode sink
where config.hasFlowPath(source, sink)
select sink.getNode(), source, sink, "GraphQL query may contain user-controlled input from $@.", source.getNode(), "user input"

View File

@@ -0,0 +1,53 @@
/**
* @name Hardcoded Secrets
* @description Hardcoded secrets or credentials in source code can lead to security vulnerabilities.
* @kind problem
* @problem.severity error
* @precision medium
* @id js/hardcoded-secrets
* @tags security
* external/cwe/cwe-798
*/
import javascript
/**
* Identifies variable declarations or assignments that may contain secrets
*/
predicate isSensitiveAssignment(DataFlow::Node node) {
exists(DataFlow::PropWrite propWrite |
propWrite.getPropertyName().regexpMatch("(?i).*(secret|key|password|token|credential|auth).*") and
propWrite.getRhs() = node
)
or
exists(VariableDeclarator decl |
decl.getName().regexpMatch("(?i).*(secret|key|password|token|credential|auth).*") and
decl.getInit().flow() = node
)
}
/**
* Identifies literals that look like secrets
*/
predicate isSecretLiteral(StringLiteral literal) {
// Match alphanumeric strings of moderate length that may be secrets
literal.getValue().regexpMatch("[A-Za-z0-9_\\-]{8,}") and
not (
// Skip likely non-sensitive literals
literal.getValue().regexpMatch("(?i)^(true|false|null|undefined|localhost|development|production|staging)$") or
// Skip URLs without credentials
literal.getValue().regexpMatch("^https?://[^:@/]+")
)
}
from DataFlow::Node source
where
isSensitiveAssignment(source) and
(
exists(StringLiteral literal |
literal.flow() = source and
isSecretLiteral(literal)
)
)
select source, "This assignment may contain a hardcoded secret or credential."

View File

@@ -0,0 +1,90 @@
/**
* @name Insecure Cryptographic Implementation
* @description Usage of weak cryptographic algorithms or improper implementations can lead to security vulnerabilities.
* @kind problem
* @problem.severity error
* @precision high
* @id js/insecure-crypto
* @tags security
* external/cwe/cwe-327
*/
import javascript
/**
* Identifies calls to crypto functions with insecure algorithms
*/
predicate isInsecureCryptoCall(CallExpr call) {
// Node.js crypto module uses
exists(string methodName |
methodName = call.getCalleeName() and
(
// Detect MD5 usage
methodName.regexpMatch("(?i).*md5.*") or
methodName.regexpMatch("(?i).*sha1.*") or
// Insecure crypto constructors
(
methodName = "createHash" or
methodName = "createCipheriv" or
methodName = "createDecipher"
) and
(
exists(StringLiteral algo |
algo = call.getArgument(0) and
(
algo.getValue().regexpMatch("(?i).*(md5|md4|md2|sha1|des|rc4|blowfish).*") or
algo.getValue().regexpMatch("(?i).*(ecb).*") // ECB mode
)
)
)
)
)
or
// Browser crypto API uses
exists(MethodCallExpr mce, string propertyName |
propertyName = mce.getMethodName() and
(
propertyName = "subtle" and
exists(MethodCallExpr subtleCall |
subtleCall.getReceiver() = mce and
subtleCall.getMethodName() = "encrypt" and
exists(ObjectExpr obj |
obj = subtleCall.getArgument(0) and
exists(Property p |
p = obj.getAProperty() and
p.getName() = "name" and
exists(StringLiteral algo |
algo = p.getInit() and
algo.getValue().regexpMatch("(?i).*(rc4|des|aes-cbc).*")
)
)
)
)
)
)
}
/**
* Identifies usage of Math.random() for security-sensitive operations
*/
predicate isInsecureRandomCall(CallExpr call) {
exists(PropertyAccess prop |
prop.getPropertyName() = "random" and
prop.getBase().toString() = "Math" and
call.getCallee() = prop
)
}
from Expr insecureExpr, string message
where
(
insecureExpr instanceof CallExpr and
isInsecureCryptoCall(insecureExpr) and
message = "Using potentially insecure cryptographic algorithm or mode."
) or (
insecureExpr instanceof CallExpr and
isInsecureRandomCall(insecureExpr) and
message = "Using Math.random() for security-sensitive operation. Consider using crypto.getRandomValues() instead."
)
select insecureExpr, message

View File

@@ -0,0 +1,130 @@
/**
* @name Path Traversal Vulnerability
* @description User-controlled inputs used in file operations may allow for path traversal attacks.
* @kind path-problem
* @problem.severity error
* @precision high
* @id js/path-traversal
* @tags security
* external/cwe/cwe-22
*/
import javascript
import DataFlow::PathGraph
/**
* Identifies sources of user-controlled input
*/
class UserInput extends DataFlow::Node {
UserInput() {
// HTTP request parameters
exists(DataFlow::ParameterNode param |
param.getName().regexpMatch("(?i).*(req|request|param|query|body|user|input).*") and
this = param
)
or
// Access to common request properties
exists(DataFlow::PropRead prop |
(
prop.getPropertyName() = "query" or
prop.getPropertyName() = "body" or
prop.getPropertyName() = "params" or
prop.getPropertyName() = "files"
) and
this = prop
)
}
}
/**
* Identifies fs module imports
*/
class FileSystemAccess extends DataFlow::CallNode {
FileSystemAccess() {
// Node.js fs module functions
exists(string name |
name = this.getCalleeName() and
(
name = "readFile" or
name = "readFileSync" or
name = "writeFile" or
name = "writeFileSync" or
name = "appendFile" or
name = "appendFileSync" or
name = "createReadStream" or
name = "createWriteStream" or
name = "openSync" or
name = "open"
)
)
or
// File system operations via require('fs')
exists(DataFlow::SourceNode fsModule, string methodName |
(fsModule.getAPropertyRead("promises") or fsModule).flowsTo(this.getReceiver()) and
methodName = this.getMethodName() and
(
methodName = "readFile" or
methodName = "writeFile" or
methodName = "appendFile" or
methodName = "readdir" or
methodName = "stat"
)
)
}
DataFlow::Node getPathArgument() {
result = this.getArgument(0)
}
}
/**
* Identifies sanitization of file paths
*/
predicate isPathSanitized(DataFlow::Node node) {
// Check for path normalization or validation
exists(DataFlow::CallNode call |
(
call.getCalleeName() = "resolve" or
call.getCalleeName() = "normalize" or
call.getCalleeName() = "isAbsolute" or
call.getCalleeName() = "relative" or
call.getCalleeName().regexpMatch("(?i).*(sanitize|validate|check).*path.*")
) and
call.flowsTo(node)
)
or
// Check for path traversal mitigation patterns
exists(DataFlow::CallNode call |
call.getCalleeName() = "replace" and
exists(StringLiteral regex |
regex = call.getArgument(0).(DataFlow::RegExpCreationNode).getSource().getAChildExpr() and
regex.getValue().regexpMatch("(\\.\\./|\\.\\.\\\\)")
) and
call.flowsTo(node)
)
}
/**
* Configuration for tracking flow from user input to file system operations
*/
class PathTraversalConfig extends TaintTracking::Configuration {
PathTraversalConfig() { this = "PathTraversalConfig" }
override predicate isSource(DataFlow::Node source) {
source instanceof UserInput
}
override predicate isSink(DataFlow::Node sink) {
exists(FileSystemAccess fileAccess |
sink = fileAccess.getPathArgument()
)
}
override predicate isSanitizer(DataFlow::Node node) {
isPathSanitized(node)
}
}
from PathTraversalConfig config, DataFlow::PathNode source, DataFlow::PathNode sink
where config.hasFlowPath(source, sink)
select sink.getNode(), source, sink, "File system operation depends on a user-controlled value $@.", source.getNode(), "user input"

1
.github/unraid.svg vendored Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" version="1.2" viewBox="0 0 1000 1000"><defs><linearGradient id="a" x1="-900" x2="-100" y1="-100" y2="-900" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#e32929"/><stop offset="1" stop-color="#ff8d30"/></linearGradient></defs><path fill="url(#a)" d="M1000 500.1v376.4c0 57.5-43.4 110.1-100 120.9-8.4 1.6-17.1 2.5-25.6 2.5-250.1.1-500.2.1-750.3.1-61.3 0-114.8-47-122.8-108q-.3-2.1-.6-4.1-.2-2-.3-4.1-.2-2-.3-4v-4.1C0 624.9 0 374.2 0 123.5 0 66 43.4 13.3 100 2.6 108.4 1 117.1.1 125.6.1 375.9 0 626.2 0 876.5 0 934 0 986.7 43.4 997.4 100c1.5 8.4 2.5 17.1 2.5 25.6.1 124.8.1 249.7.1 374.5z"/><path fill="#fff" d="M481.6 392.1h36.5v216.2h-36.5zm-356 0h36.5v216.2h-36.5zm178 242h36.5v82.5h-36.5zm-89.3-92.7h36.5v133.7h-36.5zm178 0h36.5V675h-36.5zm445.8-149.3h36.5v216.1h-36.5zm-178-107.8h36.5v82.6h-36.5zm89.3 41.5h36.5v133.1h-36.5zm-178.6 0h36.5v133h-36.5z"/></svg>

After

Width:  |  Height:  |  Size: 915 B

183
.github/workflows/build-plugin.yml vendored Normal file
View File

@@ -0,0 +1,183 @@
name: Build Plugin Component
on:
workflow_call:
inputs:
RELEASE_CREATED:
type: string
required: true
description: "Whether a release was created"
RELEASE_TAG:
type: string
required: false
description: "Name of the tag when a release is created"
TAG:
type: string
required: false
description: "Tag for the build (e.g. PR number or version)"
BUCKET_PATH:
type: string
required: true
description: "Path in the bucket where artifacts should be stored"
BASE_URL:
type: string
required: true
description: "Base URL for the plugin builds"
BUILD_NUMBER:
type: string
required: true
description: "Build number for the plugin builds"
secrets:
CF_ACCESS_KEY_ID:
required: true
CF_SECRET_ACCESS_KEY:
required: true
CF_BUCKET_PREVIEW:
required: true
CF_ENDPOINT:
required: true
jobs:
build-plugin:
name: Build and Deploy Plugin
defaults:
run:
working-directory: plugin
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Get API Version
id: vars
run: |
GIT_SHA=$(git rev-parse --short HEAD)
IS_TAGGED=$(git describe --tags --abbrev=0 --exact-match || echo '')
PACKAGE_LOCK_VERSION=$(jq -r '.version' package.json)
API_VERSION=$([[ -n "$IS_TAGGED" ]] && echo "$PACKAGE_LOCK_VERSION" || echo "${PACKAGE_LOCK_VERSION}+${GIT_SHA}")
echo "API_VERSION=${API_VERSION}" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: |
cd ${{ github.workspace }}
pnpm install --frozen-lockfile --filter @unraid/connect-plugin
- name: Download Unraid UI Components
uses: actions/download-artifact@v4
with:
name: unraid-wc-ui
path: ${{ github.workspace }}/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/unraid-components/uui
merge-multiple: true
- name: Download Unraid Web Components
uses: actions/download-artifact@v4
with:
pattern: unraid-wc-rich
path: ${{ github.workspace }}/plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/unraid-components/nuxt
merge-multiple: true
- name: Download Unraid API
uses: actions/download-artifact@v4
with:
name: unraid-api
path: ${{ github.workspace }}/plugin/api/
- name: Extract Unraid API
run: |
mkdir -p ${{ github.workspace }}/plugin/source/dynamix.unraid.net/usr/local/unraid-api
tar -xzf ${{ github.workspace }}/plugin/api/unraid-api.tgz -C ${{ github.workspace }}/plugin/source/dynamix.unraid.net/usr/local/unraid-api
- name: Build Plugin and TXZ Based on Event and Tag
id: build-plugin
run: |
cd ${{ github.workspace }}/plugin
pnpm run build:txz --tag="${{ inputs.TAG }}" --base-url="${{ inputs.BASE_URL }}" --api-version="${{ steps.vars.outputs.API_VERSION }}" --build-number="${{ inputs.BUILD_NUMBER }}"
pnpm run build:plugin --tag="${{ inputs.TAG }}" --base-url="${{ inputs.BASE_URL }}" --api-version="${{ steps.vars.outputs.API_VERSION }}" --build-number="${{ inputs.BUILD_NUMBER }}"
- name: Ensure Plugin Files Exist
run: |
ls -al ./deploy
if [ ! -f ./deploy/*.plg ]; then
echo "Error: .plg file not found in plugin/deploy/"
exit 1
fi
if [ ! -f ./deploy/*.txz ]; then
echo "Error: .txz file not found in plugin/deploy/"
exit 1
fi
- name: Upload to GHA
uses: actions/upload-artifact@v4
with:
name: unraid-plugin-${{ github.run_id }}-${{ inputs.RELEASE_TAG }}
path: plugin/deploy/
- name: Upload Release Assets
if: inputs.RELEASE_CREATED == 'true'
env:
GITHUB_TOKEN: ${{ github.token }}
RELEASE_TAG: ${{ inputs.RELEASE_TAG }}
run: |
# For each file in release directory
for file in deploy/*; do
echo "Uploading $file to release..."
gh release upload "${RELEASE_TAG}" "$file" --clobber
done
- name: Workflow Dispatch and wait
if: inputs.RELEASE_CREATED == 'true'
uses: the-actions-org/workflow-dispatch@v4.0.0
with:
workflow: release-production.yml
inputs: '{ "version": "${{ steps.vars.outputs.API_VERSION }}" }'
token: ${{ secrets.WORKFLOW_TRIGGER_PAT }}
- name: Upload to Cloudflare
if: inputs.RELEASE_CREATED == 'false'
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CF_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CF_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: auto
run: |
# Sync the deploy directory to the Cloudflare bucket with explicit content encoding and public-read ACL
aws s3 sync deploy/ s3://${{ secrets.CF_BUCKET_PREVIEW }}/${{ inputs.BUCKET_PATH }} \
--endpoint-url ${{ secrets.CF_ENDPOINT }} \
--checksum-algorithm CRC32 \
--no-guess-mime-type \
--content-encoding none \
--acl public-read
- name: Comment URL
if: github.event_name == 'pull_request'
uses: thollander/actions-comment-pull-request@v3
with:
comment-tag: prlink
mode: recreate
message: |
This plugin has been deployed to Cloudflare R2 and is available for testing.
Download it at this URL:
```
${{ inputs.BASE_URL }}/tag/${{ inputs.TAG }}/dynamix.unraid.net.plg
```

40
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: "CodeQL Security Analysis"
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
- cron: '0 0 * * 0' # Run weekly on Sundays
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript', 'typescript' ]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
config-file: ./.github/codeql/codeql-config.yml
queries: +security-and-quality
- name: Autobuild
uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3

View File

@@ -0,0 +1,59 @@
name: Update API Documentation
on:
push:
branches:
- main
paths:
- 'api/docs/**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# Add permissions for GITHUB_TOKEN
permissions:
contents: write
pull-requests: write
jobs:
create-docs-pr:
runs-on: ubuntu-latest
steps:
- name: Checkout source repository
uses: actions/checkout@v4
with:
path: source-repo
- name: Checkout docs repository
uses: actions/checkout@v4
with:
repository: unraid/docs
path: docs-repo
token: ${{ secrets.DOCS_PAT_UNRAID_BOT }}
- name: Copy updated docs
run: |
if [ ! -d "source-repo/api/docs" ]; then
echo "Source directory does not exist!"
exit 1
fi
rm -rf docs-repo/docs/API/
mkdir -p docs-repo/docs/API
cp -r source-repo/api/docs/public/. docs-repo/docs/API/
- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.DOCS_PAT_UNRAID_BOT }}
path: docs-repo
commit-message: 'docs: update API documentation'
title: 'Update API Documentation'
body: |
This PR updates the API documentation based on changes from the main repository.
Changes were automatically generated from api/docs/* directory.
@coderabbitai ignore
reviewers: ljm42, elibosley, pujitm, mdatelle
branch: update-api-docs
base: main
delete-branch: true

76
.github/workflows/deploy-storybook.yml vendored Normal file
View File

@@ -0,0 +1,76 @@
name: Deploy Storybook to Cloudflare Workers
permissions:
contents: read
pull-requests: write
issues: write
on:
push:
branches:
- main
paths:
- 'unraid-ui/**'
pull_request:
paths:
- 'unraid-ui/**'
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy Storybook
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
run_install: false
- name: Cache APT Packages
uses: awalsh128/cache-apt-pkgs-action@v1.5.1
with:
packages: bash procps python3 libvirt-dev jq zstd git build-essential libvirt-daemon-system
version: 1.0
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build Storybook
run: |
cd unraid-ui
pnpm build-storybook
- name: Deploy to Cloudflare Workers (Staging)
id: deploy_staging
if: github.event_name == 'pull_request'
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_DEPLOY_TOKEN }}
command: deploy --env staging
workingDirectory: unraid-ui
- name: Deploy to Cloudflare Workers (Production)
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_DEPLOY_TOKEN }}
command: deploy
workingDirectory: unraid-ui
- name: Comment PR with deployment URL
if: github.event_name == 'pull_request'
uses: actions/github-script@v7
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `🚀 Storybook has been deployed to staging: ${{ steps.deploy_staging.outputs['deployment-url'] }}`
})

View File

@@ -1,74 +0,0 @@
name: Lint, Test, and Build Web Components
on:
workflow_dispatch:
jobs:
lint-web:
defaults:
run:
working-directory: web
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Create env file
run: |
touch .env
echo VITE_ACCOUNT=${{ vars.VITE_ACCOUNT }} >> .env
echo VITE_CONNECT=${{ vars.VITE_CONNECT }} >> .env
echo VITE_UNRAID_NET=${{ vars.VITE_UNRAID_NET }} >> .env
echo VITE_CALLBACK_KEY=${{ vars.VITE_CALLBACK_KEY }} >> .env
cat .env
- name: Install node
uses: actions/setup-node@v4
with:
cache: "npm"
cache-dependency-path: "web/package-lock.json"
node-version-file: "web/.nvmrc"
- name: Installing node deps
run: npm install
- name: Lint files
run: npm run lint
build-web:
defaults:
run:
working-directory: web
runs-on: ubuntu-latest
needs: [lint-web]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Create env file
run: |
touch .env
echo VITE_ACCOUNT=${{ vars.VITE_ACCOUNT }} >> .env
echo VITE_CONNECT=${{ vars.VITE_CONNECT }} >> .env
echo VITE_UNRAID_NET=${{ vars.VITE_UNRAID_NET }} >> .env
echo VITE_CALLBACK_KEY=${{ vars.VITE_CALLBACK_KEY }} >> .env
cat .env
- name: Install node
uses: actions/setup-node@v4
with:
cache: "npm"
cache-dependency-path: "web/package-lock.json"
node-version-file: "web/.nvmrc"
- name: Installing node deps
run: npm install
- name: Build
run: npm run build
- name: Upload build to Github artifacts
uses: actions/upload-artifact@v4
with:
name: unraid-web
path: web/.nuxt/nuxt-custom-elements/dist/unraid-components

View File

@@ -1,188 +1,301 @@
name: CI - Main (API)
on:
pull_request:
push:
branches:
- main
tags:
- "v*"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
start:
# This prevents a tag running twice as it'll have a "tag" and a "commit" event
# We only want the tag to run the action as it'll be able to create the release notes
if: (startsWith(github.event.ref, 'refs/heads/') && !startsWith(github.event.head_commit.message, 'chore(release)')) || (startsWith(github.event.ref, 'refs/tags/') && startsWith(github.event.head_commit.message, 'chore(release)'))
release-please:
name: Release Please
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Validate branch and tag
run: exit 0
lint-api:
continue-on-error: true
defaults:
run:
working-directory: api
runs-on: ubuntu-latest
steps:
- name: Checkout repo
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Reconfigure git to use HTTP authenti:cation
run: >
git config --global url."https://github.com/".insteadOf
ssh://git@github.com/
- name: Install node
uses: actions/setup-node@v4
with:
node-version-file: "api/.nvmrc"
# - name: Get npm cache directory
# id: npm-cache
# run: echo "::set-output name=dir::$(npm config get cache)"
# - name: Load npm cache
# uses: actions/cache@v3
# with:
# path: ${{ steps.npm-cache.outputs.dir }}
# key: ${{ runner.os }}-npm-cache-${{ hashFiles('**/package-lock.json') }}
- name: Install libvirt-dev
run: sudo apt-get update && sudo apt-get install libvirt-dev
- name: Installing node deps
run: npm install
- name: Lint files
run: npm run lint
# Only run release-please on pushes to main
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
- id: release
uses: googleapis/release-please-action@v4
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
outputs:
releases_created: ${{ steps.release.outputs.releases_created || 'false' }}
tag_name: ${{ steps.release.outputs.tag_name || '' }}
test-api:
name: Test API
defaults:
run:
working-directory: api
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Reconfigure git to use HTTP authentication
run: >
git config --global url."https://github.com/".insteadOf
ssh://git@github.com/
- name: Build Docker Compose
run: |
docker network create mothership_default
GIT_SHA=$(git rev-parse --short HEAD) IS_TAGGED=$(git describe --tags --abbrev=0 --exact-match || echo '') docker-compose build builder
- name: Run Docker Compose
run: GIT_SHA=$(git rev-parse --short HEAD) IS_TAGGED=$(git describe --tags --abbrev=0 --exact-match || echo '') docker-compose run builder npm run coverage
lint-web:
defaults:
run:
working-directory: web
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Create env file
run: |
touch .env
echo VITE_ACCOUNT=${{ vars.VITE_ACCOUNT }} >> .env
echo VITE_CONNECT=${{ vars.VITE_CONNECT }} >> .env
echo VITE_UNRAID_NET=${{ vars.VITE_UNRAID_NET }} >> .env
echo VITE_CALLBACK_KEY=${{ vars.VITE_CALLBACK_KEY }} >> .env
cat .env
- name: Install node
- name: Install Node
uses: actions/setup-node@v4
with:
cache: "npm"
cache-dependency-path: "web/package-lock.json"
node-version-file: "web/.nvmrc"
node-version-file: ".nvmrc"
- name: Installing node deps
run: npm install
- name: Cache APT Packages
uses: awalsh128/cache-apt-pkgs-action@v1.5.1
with:
packages: bash procps python3 libvirt-dev jq zstd git build-essential libvirt-daemon-system
version: 1.0
- name: Lint files
run: npm run lint
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: PNPM Install
run: pnpm install --frozen-lockfile
- name: Lint
run: pnpm run lint
- name: Type Check
run: pnpm run type-check
- name: Setup libvirt
run: |
# Create required groups (if they don't already exist)
sudo groupadd -f libvirt
sudo groupadd -f kvm
# Create libvirt user if not present, and add it to the kvm group
sudo useradd -m -s /bin/bash -g libvirt libvirt || true
sudo usermod -aG kvm libvirt || true
# Set up libvirt directories and permissions
sudo mkdir -p /var/run/libvirt /var/log/libvirt /etc/libvirt
sudo chown root:libvirt /var/run/libvirt /var/log/libvirt
sudo chmod g+w /var/run/libvirt /var/log/libvirt
# Configure libvirt by appending required settings
sudo tee -a /etc/libvirt/libvirtd.conf > /dev/null <<EOF
unix_sock_group = "libvirt"
unix_sock_rw_perms = "0770"
auth_unix_rw = "none"
EOF
# Add the current user to libvirt and kvm groups (note: this change won't apply to the current session)
sudo usermod -aG libvirt,kvm $USER
sudo mkdir -p /var/run/libvirt
sudo chown root:libvirt /var/run/libvirt
sudo chmod 775 /var/run/libvirt
# Start libvirtd in the background
sudo /usr/sbin/libvirtd --daemon
# Wait a bit longer for libvirtd to start
sleep 5
# Verify libvirt is running using sudo to bypass group membership delays
sudo virsh list --all || true
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Run Tests Concurrently
run: |
set -e
# Run all tests in parallel with labeled output
echo "🚀 Starting API coverage tests..."
pnpm run coverage > api-test.log 2>&1 &
API_PID=$!
echo "🚀 Starting Connect plugin tests..."
(cd ../packages/unraid-api-plugin-connect && pnpm test) > connect-test.log 2>&1 &
CONNECT_PID=$!
echo "🚀 Starting Shared package tests..."
(cd ../packages/unraid-shared && pnpm test) > shared-test.log 2>&1 &
SHARED_PID=$!
# Wait for all processes and capture exit codes
wait $API_PID && echo "✅ API tests completed" || { echo "❌ API tests failed"; API_EXIT=1; }
wait $CONNECT_PID && echo "✅ Connect tests completed" || { echo "❌ Connect tests failed"; CONNECT_EXIT=1; }
wait $SHARED_PID && echo "✅ Shared tests completed" || { echo "❌ Shared tests failed"; SHARED_EXIT=1; }
# Display all outputs
echo "📋 API Test Results:" && cat api-test.log
echo "📋 Connect Plugin Test Results:" && cat connect-test.log
echo "📋 Shared Package Test Results:" && cat shared-test.log
# Exit with error if any test failed
if [[ ${API_EXIT:-0} -eq 1 || ${CONNECT_EXIT:-0} -eq 1 || ${SHARED_EXIT:-0} -eq 1 ]]; then
exit 1
fi
build-api:
name: Build API
runs-on: ubuntu-latest
outputs:
build_number: ${{ steps.buildnumber.outputs.build_number }}
defaults:
run:
working-directory: api
runs-on: ubuntu-latest
outputs:
API_VERSION: ${{ steps.build-pack-binary.outputs.API_VERSION }}
API_MD5: ${{ steps.set-hashes.outputs.API_MD5 }}
API_SHA256: ${{ steps.set-hashes.outputs.API_SHA256 }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Add SSH deploy key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.UNRAID_BOT_SSH_KEY }}
known_hosts: ${{ secrets.KNOWN_HOSTS }}
- name: Install node
- name: Install Node
uses: actions/setup-node@v4
with:
node-version-file: "api/.nvmrc"
node-version-file: ".nvmrc"
- name: Install libvirt-dev
run: sudo apt-get update && sudo apt-get install libvirt-dev
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
run_install: false
- name: Installing node deps
run: npm install
- name: Install pkg and node-prune
run: npm i -g pkg && curl -sf https://gobinaries.com/tj/node-prune | sh
# See https://github.com/apollographql/subscriptions-transport-ws/issues/433
- name: Patch subscriptions-transport-ws
run: npm run patch:subscriptions-transport-ws
- name: Build and Pack
id: build-pack-binary
run: WORKDIR=${{ github.workspace }} && npm run build-pkg
- name: Set Hashes
id: set-hashes
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
API_MD5=$(md5sum ${{ github.workspace }}/api/deploy/release/*.tgz | awk '{ print $1 }')
API_SHA256=$(sha256sum ${{ github.workspace }}/api/deploy/release/*.tgz | awk '{ print $1 }')
echo "::set-output name=API_MD5::${API_MD5}"
echo "::set-output name=API_SHA256::${API_SHA256}"
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Cache APT Packages
uses: awalsh128/cache-apt-pkgs-action@v1.5.1
with:
packages: bash procps python3 libvirt-dev jq zstd git build-essential
version: 1.0
- name: PNPM Install
run: |
cd ${{ github.workspace }}
pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
- name: Get Git Short Sha and API version
id: vars
run: |
GIT_SHA=$(git rev-parse --short HEAD)
IS_TAGGED=$(git describe --tags --abbrev=0 --exact-match || echo '')
PACKAGE_LOCK_VERSION=$(jq -r '.version' package.json)
API_VERSION=$([[ -n "$IS_TAGGED" ]] && echo "$PACKAGE_LOCK_VERSION" || echo "${PACKAGE_LOCK_VERSION}+${GIT_SHA}")
export API_VERSION
echo "API_VERSION=${API_VERSION}" >> $GITHUB_ENV
echo "PACKAGE_LOCK_VERSION=${PACKAGE_LOCK_VERSION}" >> $GITHUB_OUTPUT
- name: Generate build number
id: buildnumber
uses: onyxmueller/build-tag-number@v1
with:
token: ${{secrets.github_token}}
prefix: ${{steps.vars.outputs.PACKAGE_LOCK_VERSION}}
- name: Build
run: |
pnpm run build:release
tar -czf deploy/unraid-api.tgz -C deploy/pack/ .
- name: Upload tgz to Github artifacts
uses: actions/upload-artifact@v4
with:
name: unraid-api
path: ${{ github.workspace }}/api/deploy/release/*.tgz
path: ${{ github.workspace }}/api/deploy/unraid-api.tgz
build-unraid-ui-webcomponents:
name: Build Unraid UI Library (Webcomponent Version)
defaults:
run:
working-directory: unraid-ui
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Cache APT Packages
uses: awalsh128/cache-apt-pkgs-action@v1.5.1
with:
packages: bash procps python3 libvirt-dev jq zstd git build-essential
version: 1.0
- name: Install dependencies
run: |
cd ${{ github.workspace }}
pnpm install --frozen-lockfile --filter @unraid/ui
- name: Lint
run: pnpm run lint
- name: Build
run: pnpm run build:wc
- name: Upload Artifact to Github
uses: actions/upload-artifact@v4
with:
name: unraid-wc-ui
path: unraid-ui/dist-wc/
build-web:
# needs: [build-unraid-ui]
name: Build Web App
defaults:
run:
working-directory: web
runs-on: ubuntu-latest
environment:
name: production
needs: [lint-web]
steps:
- name: Checkout repo
uses: actions/checkout@v4
@@ -190,143 +303,104 @@ jobs:
- name: Create env file
run: |
touch .env
echo VITE_ACCOUNT=${{ vars.VITE_ACCOUNT }} >> .env
echo VITE_CONNECT=${{ vars.VITE_CONNECT }} >> .env
echo VITE_UNRAID_NET=${{ vars.VITE_UNRAID_NET }} >> .env
echo VITE_CALLBACK_KEY=${{ vars.VITE_CALLBACK_KEY }} >> .env
echo VITE_ACCOUNT=${{ secrets.VITE_ACCOUNT }} >> .env
echo VITE_CONNECT=${{ secrets.VITE_CONNECT }} >> .env
echo VITE_UNRAID_NET=${{ secrets.VITE_UNRAID_NET }} >> .env
echo VITE_CALLBACK_KEY=${{ secrets.VITE_CALLBACK_KEY }} >> .env
cat .env
- name: Install node
- name: Install Node
uses: actions/setup-node@v4
with:
cache: "npm"
cache-dependency-path: "web/package-lock.json"
node-version-file: "web/.nvmrc"
node-version-file: ".nvmrc"
- name: Installing node deps
run: npm install
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: PNPM Install
run: |
cd ${{ github.workspace }}
pnpm install --frozen-lockfile --filter @unraid/web --filter @unraid/ui
- name: Build Unraid UI
run: |
cd ${{ github.workspace }}/unraid-ui
pnpm run build
- name: Lint files
run: pnpm run lint
- name: Type Check
run: pnpm run type-check
- name: Test
run: pnpm run test:ci
- name: Build
run: npm run build
run: pnpm run build
- name: Upload build to Github artifacts
uses: actions/upload-artifact@v4
with:
name: unraid-web
name: unraid-wc-rich
path: web/.nuxt/nuxt-custom-elements/dist/unraid-components
build-plugin:
needs: [lint-api, lint-web, test-api, build-api, build-web]
defaults:
run:
working-directory: plugin
runs-on: ubuntu-latest
steps:
- name: Set Timezone
uses: szenius/set-timezone@v1.2
with:
timezoneLinux: "America/Los_Angeles"
- name: Checkout repo
uses: actions/checkout@v4
- name: Download unraid web components
uses: actions/download-artifact@v4
with:
name: unraid-web
path: ./plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/unraid-components
- name: Build Plugin
run: |
cd source/dynamix.unraid.net
export API_VERSION=${{needs.build-api.outputs.API_VERSION}}
export API_MD5=${{needs.build-api.outputs.API_MD5}}
export API_SHA256=${{needs.build-api.outputs.API_SHA256}}
bash ./pkg_build.sh s
bash ./pkg_build.sh p
- name: Upload binary txz and plg to Github artifacts
uses: actions/upload-artifact@v4
with:
name: connect-files
path: |
${{ github.workspace }}/plugin/archive/*.txz
${{ github.workspace }}/plugin/plugins/*.plg
retention-days: 5
if-no-files-found: error
build-plugin-staging-pr:
name: Build and Deploy Plugin
needs:
- release-please
- build-api
- build-web
- build-unraid-ui-webcomponents
- test-api
uses: ./.github/workflows/build-plugin.yml
with:
RELEASE_CREATED: false
TAG: ${{ github.event.pull_request.number && format('PR{0}', github.event.pull_request.number) || '' }}
BUCKET_PATH: ${{ github.event.pull_request.number && format('unraid-api/tag/PR{0}', github.event.pull_request.number) || 'unraid-api' }}
BASE_URL: "https://preview.dl.unraid.net/unraid-api"
BUILD_NUMBER: ${{ needs.build-api.outputs.build_number }}
secrets:
CF_ACCESS_KEY_ID: ${{ secrets.CF_ACCESS_KEY_ID }}
CF_SECRET_ACCESS_KEY: ${{ secrets.CF_SECRET_ACCESS_KEY }}
CF_BUCKET_PREVIEW: ${{ secrets.CF_BUCKET_PREVIEW }}
CF_ENDPOINT: ${{ secrets.CF_ENDPOINT }}
release-staging:
# Only release if this is a push to the main branch
if: startsWith(github.ref, 'refs/heads/main')
runs-on: ubuntu-latest
needs: [build-plugin]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Make Staging Release Folder
run: mkdir staging-release/
- name: Download unraid-api binary tgz
uses: actions/download-artifact@v4
with:
name: unraid-api
path: staging-release
- name: Download plugin binary tgz
uses: actions/download-artifact@v4
with:
name: connect-files
- name: Parse Changelog
id: changelog
uses: ocavue/changelog-parser-action@v1
with:
removeMarkdown: false
filePath: "./api/CHANGELOG.md"
- name: Run LS in unraid-api folder
run: |
cp archive/dynamix.unraid.net.staging-*.txz staging-release/
cp plugins/dynamix.unraid.net.staging.plg staging-release/
ls -al staging-release
- name: Upload Staging Plugin to DO Spaces
uses: BetaHuhn/do-spaces-action@v2
with:
access_key: ${{ secrets.DO_ACCESS_KEY }}
secret_key: ${{ secrets.DO_SECRET_KEY }}
space_name: ${{ secrets.DO_SPACE_NAME }}
space_region: ${{ secrets.DO_SPACE_REGION }}
source: staging-release
out_dir: unraid-api
create-draft-release:
# Only create new draft if this is a version tag
if: |
startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
needs: [build-plugin]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Download unraid-api binary tgz
uses: actions/download-artifact@v4
with:
name: unraid-api
- name: Download plugin binary tgz
uses: actions/download-artifact@v4
with:
name: connect-files
- name: Create Github release
uses: softprops/action-gh-release@v1
with:
draft: true
prerelease: false
files: |
unraid-api-*.tgz
plugins/dynamix.unraid.net*
archive/dynamix.unraid.net*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-plugin-production:
if: ${{ needs.release-please.outputs.releases_created == 'true' }}
name: Build and Deploy Production Plugin
needs:
- release-please
- build-api
- build-web
- build-unraid-ui-webcomponents
- test-api
uses: ./.github/workflows/build-plugin.yml
with:
RELEASE_CREATED: true
RELEASE_TAG: ${{ needs.release-please.outputs.tag_name }}
TAG: ""
BUCKET_PATH: unraid-api
BASE_URL: "https://stable.dl.unraid.net/unraid-api"
BUILD_NUMBER: ${{ needs.build-api.outputs.build_number }}
secrets:
CF_ACCESS_KEY_ID: ${{ secrets.CF_ACCESS_KEY_ID }}
CF_SECRET_ACCESS_KEY: ${{ secrets.CF_SECRET_ACCESS_KEY }}
CF_BUCKET_PREVIEW: ${{ secrets.CF_BUCKET_PREVIEW }}
CF_ENDPOINT: ${{ secrets.CF_ENDPOINT }}

View File

@@ -1,82 +0,0 @@
name: Pull Request Web
on:
pull_request:
paths:
- 'web/**'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-web
cancel-in-progress: true
jobs:
lint-web:
defaults:
run:
working-directory: web
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Create env file
run: |
touch .env
echo VITE_ACCOUNT=${{ vars.VITE_ACCOUNT }} >> .env
echo VITE_CONNECT=${{ vars.VITE_CONNECT }} >> .env
echo VITE_UNRAID_NET=${{ vars.VITE_UNRAID_NET }} >> .env
echo VITE_CALLBACK_KEY=${{ vars.VITE_CALLBACK_KEY }} >> .env
cat .env
- name: Install node
uses: actions/setup-node@v4
with:
cache: "npm"
cache-dependency-path: "web/package-lock.json"
node-version-file: "web/.nvmrc"
- name: Installing node deps
run: npm install
- name: Lint files
run: npm run lint
build-web:
defaults:
run:
working-directory: web
runs-on: ubuntu-latest
environment:
name: production
needs: [lint-web]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Create env file
run: |
touch .env
echo VITE_ACCOUNT=${{ vars.VITE_ACCOUNT }} >> .env
echo VITE_CONNECT=${{ vars.VITE_CONNECT }} >> .env
echo VITE_UNRAID_NET=${{ vars.VITE_UNRAID_NET }} >> .env
echo VITE_CALLBACK_KEY=${{ vars.VITE_CALLBACK_KEY }} >> .env
cat .env
- name: Install node
uses: actions/setup-node@v4
with:
cache: "npm"
cache-dependency-path: "web/package-lock.json"
node-version-file: "web/.nvmrc"
- name: Installing node deps
run: npm install
- name: Build
run: npm run build
- name: Upload build to Github artifacts
uses: actions/upload-artifact@v4
with:
name: unraid-web
path: web/.nuxt/nuxt-custom-elements/dist/unraid-components

View File

@@ -1,183 +0,0 @@
name: Pull Request
on:
pull_request:
paths:
- api/**
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
lint-api:
services:
registry: # Using a local registry is ~3x faster than exporting the image to docker agent
image: registry:2
ports:
- 5000:5000
continue-on-error: true
defaults:
run:
working-directory: api
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
persist-credentials: true
- uses: docker/setup-buildx-action@v2
with:
# network=host driver-opt needed to push to local registry
driver-opts: network=host
- name: Build and push
uses: docker/build-push-action@v4
with:
context: api
target: builder
push: true
tags: localhost:5000/unraid-api:builder
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Lint
run: |
docker run localhost:5000/unraid-api:builder npm run lint
test-api:
services:
registry: # Using a local registry is ~3x faster than exporting the image to docker agent
image: registry:2
ports:
- 5000:5000
defaults:
run:
working-directory: api
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
persist-credentials: true
- uses: docker/setup-buildx-action@v2
with:
# network=host driver-opt needed to push to local registry
driver-opts: network=host
- name: Build and push
uses: docker/build-push-action@v4
with:
context: api
target: builder
push: true
tags: localhost:5000/unraid-api:builder
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Test
run: |
docker run localhost:5000/unraid-api:builder npm run coverage
build-api:
services:
registry: # Using a local registry is ~3x faster than exporting the image to docker agent
image: registry:2
ports:
- 5000:5000
defaults:
run:
working-directory: api
runs-on: ubuntu-latest
outputs:
API_VERSION: ${{ steps.build-pack-binary.outputs.API_VERSION }}
API_MD5: ${{ steps.set-hashes.outputs.API_MD5 }}
API_SHA256: ${{ steps.set-hashes.outputs.API_SHA256 }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
persist-credentials: true
- uses: docker/setup-buildx-action@v2
with:
# network=host driver-opt needed to push to local registry
driver-opts: network=host
- name: Build and push
uses: docker/build-push-action@v4
with:
context: api
target: builder
push: true
tags: localhost:5000/unraid-api:builder
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Run Build
run: docker run -e GIT_SHA=$(git rev-parse --short HEAD) -e IS_TAGGED=$(git describe --tags --abbrev=0 --exact-match) -v $(pwd)/deploy:/app/deploy/ localhost:5000/unraid-api:builder npm run build-pkg
- name: Set Hashes
id: set-hashes
run: |
API_MD5=$(md5sum ${{ github.workspace }}/api/deploy/release/*.tgz | awk '{ print $1 }')
API_SHA256=$(sha256sum ${{ github.workspace }}/api/deploy/release/*.tgz | awk '{ print $1 }')
echo "::set-output name=API_MD5::${API_MD5}"
echo "::set-output name=API_SHA256::${API_SHA256}"
- name: Upload tgz to Github artifacts
uses: actions/upload-artifact@v4
with:
name: unraid-api
path: ${{ github.workspace }}/api/deploy/release/*.tgz
- name: Parse Changelog
id: changelog
uses: ocavue/changelog-parser-action@v1
with:
removeMarkdown: false
filePath: "./api/CHANGELOG.md"
- name: View release notes
run: |
escapedNotes=$(sed -e 's/[&\\/]/\\&/g; s/$/\\/' -e '$s/\\$//' <<<"${{steps.changelog.outputs.latestBody}}")
echo "${escapedNotes}"
build-plugin:
defaults:
run:
working-directory: plugin
runs-on: ubuntu-latest
needs: [lint-api, test-api, build-api]
steps:
- name: Set Timezone
uses: szenius/set-timezone@v1.2
with:
timezoneLinux: "America/Los_Angeles"
- name: Checkout repo
uses: actions/checkout@v4
- name: Build Plugin
run: |
cd source/dynamix.unraid.net
export API_VERSION=${{needs.build-api.outputs.API_VERSION}}
export API_MD5=${{needs.build-api.outputs.API_MD5}}
export API_SHA256=${{needs.build-api.outputs.API_SHA256}}
bash ./pkg_build.sh s
bash ./pkg_build.sh p
- name: Create release notes
run: |
LAST_RELEASE=$(git tag --list --sort=v:refname | tail -1)
echo ${LAST_RELEASE}
RELEASE_NOTES=$(git log "$LAST_RELEASE...HEAD" --pretty=format:"- %s [\`%h\`](http://github.com/$GITHUB_REPOSITORY/commit/%H)" --reverse)
echo "${RELEASE_NOTES}"
# escapedNotes=$(sed -e 's/[&\\/]/\\&/g; s/$/\\/' -e '$s/\\$//' <<<"${RELEASE_NOTES}")
# sed -i -z -E "s/<CHANGES>(.*)<\/CHANGES>/<CHANGES>\n${escapedNotes}\n<\/CHANGES>/g" "plugins/dynamix.unraid.net.staging.plg"
- name: Upload binary txz and plg to Github artifacts
uses: actions/upload-artifact@v4
with:
name: connect-files
path: |
${{ github.workspace }}/plugin/archive/*.txz
${{ github.workspace }}/plugin/plugins/*.plg
retention-days: 5
if-no-files-found: error

View File

@@ -0,0 +1,82 @@
name: Push Staging Plugin on PR Close
on:
pull_request:
types:
- closed
workflow_dispatch:
inputs:
pr_number:
description: "PR number to test with"
required: true
type: string
pr_merged:
description: "Simulate merged PR"
required: true
type: boolean
default: true
jobs:
push-staging:
if: (github.event_name == 'pull_request' && github.event.pull_request.merged == true) || (github.event_name == 'workflow_dispatch' && inputs.pr_merged == true)
runs-on: ubuntu-latest
permissions:
contents: read
actions: read
steps:
- name: Set Timezone
uses: szenius/set-timezone@v2.0
with:
timezoneLinux: "America/Los_Angeles"
- name: Set PR number
id: pr_number
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
echo "pr_number=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT
else
echo "pr_number=${{ inputs.pr_number }}" >> $GITHUB_OUTPUT
fi
- name: Download artifact
uses: dawidd6/action-download-artifact@v11
with:
name_is_regexp: true
name: unraid-plugin-.*
path: connect-files
pr: ${{ steps.pr_number.outputs.pr_number }}
workflow_conclusion: success
workflow_search: true
search_artifacts: true
- name: Update Downloaded Staging Plugin to New Date
run: |
# Find the .plg file in the downloaded artifact
plgfile=$(find connect-files -name "*.plg" -type f | head -1)
if [ ! -f "$plgfile" ]; then
echo "ERROR: .plg file not found in connect-files/"
ls -la connect-files/
exit 1
fi
echo "Found plugin file: $plgfile"
version=$(date +"%Y.%m.%d.%H%M")
sed -i -E "s#(<!ENTITY version \").*(\">)#\1${version}\2#g" "${plgfile}" || exit 1
# Change the plugin url to point to staging
url="https://preview.dl.unraid.net/unraid-api/dynamix.unraid.net.plg"
sed -i -E "s#(<!ENTITY plugin_url \").*?(\">)#\1${url}\2#g" "${plgfile}" || exit 1
cat "${plgfile}"
mkdir -p pr-release
mv "${plgfile}" pr-release/dynamix.unraid.net.plg
- name: Upload to Cloudflare
uses: jakejarvis/s3-sync-action@v0.5.1
env:
AWS_S3_ENDPOINT: ${{ secrets.CF_ENDPOINT }}
AWS_S3_BUCKET: ${{ secrets.CF_BUCKET_PREVIEW }}
AWS_ACCESS_KEY_ID: ${{ secrets.CF_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CF_SECRET_ACCESS_KEY }}
AWS_REGION: "auto"
SOURCE_DIR: pr-release
DEST_DIR: unraid-api/tag/PR${{ steps.pr_number.outputs.pr_number }}

126
.github/workflows/release-production.yml vendored Normal file
View File

@@ -0,0 +1,126 @@
name: Publish Release
on:
workflow_dispatch:
inputs:
version:
description: 'Tag to release - will replace active release'
required: true
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Download Release Artifacts (Plugins)
uses: dsaltares/fetch-gh-release-asset@master
with:
file: ".*"
regex: true
token: ${{ secrets.GITHUB_TOKEN }}
target: "./"
version: ${{ inputs.version && format('tags/{0}', inputs.version) || 'latest' }}
- uses: cardinalby/git-get-release-action@v1
id: release-info
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
latest: true
prerelease: false
- uses: actions/setup-node@v4
with:
node-version: '22.17.0'
- run: |
cat << 'EOF' > release-notes.txt
${{ steps.release-info.outputs.body }}
EOF
- run: npm install html-escaper@2 xml2js
- name: Update Plugin Changelog
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const { escape } = require('html-escaper');
const releaseNotes = escape(fs.readFileSync('release-notes.txt', 'utf8'));
if (!releaseNotes) {
console.error('No release notes found');
process.exit(1);
}
// Read the plugin file
const pluginPath = 'dynamix.unraid.net.plg';
if (!fs.existsSync(pluginPath)) {
console.error('Plugin file not found:', pluginPath);
process.exit(1);
}
let pluginContent = fs.readFileSync(pluginPath, 'utf8');
// Replace the changelog section using CDATA
pluginContent = pluginContent.replace(
/<CHANGES>[\s\S]*?<\/CHANGES>/,
`<CHANGES>\n${releaseNotes}\n</CHANGES>`
);
// Validate the plugin file is valid XML
const xml2js = require('xml2js');
const parser = new xml2js.Parser({
explicitCharkey: true,
trim: true,
explicitRoot: true,
explicitArray: false,
attrkey: 'ATTR',
charkey: 'TEXT',
xmlnskey: 'XMLNS',
normalizeTags: false,
normalize: false,
strict: false // Try with less strict parsing
});
parser.parseStringPromise(pluginContent).then((result) => {
if (!result) {
console.error('Plugin file is not valid XML');
process.exit(1);
}
console.log('Plugin file is valid XML');
// Write back to file
fs.writeFileSync(pluginPath, pluginContent);
}).catch((err) => {
console.error('Plugin file is not valid XML', err);
process.exit(1);
});
- name: Cleanup Inline Scripts
run: |
rm -rf node_modules/
- name: Upload Release Files to DO Spaces
env:
AWS_ACCESS_KEY_ID: ${{ secrets.DO_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.DO_SECRET_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.DO_SPACE_REGION }}
AWS_ENDPOINT_URL: https://${{ secrets.DO_SPACE_REGION }}.digitaloceanspaces.com
run: |
# Upload files with explicit content encoding and public-read ACL
aws s3 sync . s3://${{ secrets.DO_SPACE_NAME }}/unraid-api \
--checksum-algorithm CRC32 \
--no-guess-mime-type \
--content-encoding none \
--acl public-read
- name: Upload Release Files to Cloudflare Bucket
env:
AWS_ACCESS_KEY_ID: ${{ secrets.CF_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CF_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: auto
AWS_ENDPOINT_URL: ${{ secrets.CF_ENDPOINT }}
run: |
# Upload files with explicit content encoding and public-read ACL
aws s3 sync . s3://${{ secrets.CF_BUCKET }}/unraid-api \
--checksum-algorithm CRC32 \
--no-guess-mime-type \
--content-encoding none \
--acl public-read

71
.github/workflows/test-libvirt.yml vendored Normal file
View File

@@ -0,0 +1,71 @@
name: Test Libvirt
on:
push:
branches:
- main
paths:
- "libvirt/**"
pull_request:
paths:
- "libvirt/**"
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./libvirt
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-python@v5
with:
python-version: "3.13.5"
- name: Cache APT Packages
uses: awalsh128/cache-apt-pkgs-action@v1.5.1
with:
packages: libvirt-dev
version: 1.0
- name: Set Node.js
uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('libvirt/package.json') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: pnpm install
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm run build
- name: test
run: pnpm run test

31
.gitignore vendored
View File

@@ -24,6 +24,7 @@ build/Release
# Dependency directories
node_modules/
jspm_packages/
unraid-ui/node_modules/
# TypeScript v1 declaration files
typings/
@@ -51,15 +52,20 @@ typings/
# Visual Studio Code workspace
.vscode/sftp.json
.history/
# OSX
.DS_Store
# Jetbrains Settings Files
.idea
# Temp dir for tests
test/__temp__/*
# Built files
dist
unraid-ui/storybook-static
# Typescript
typescript
@@ -70,7 +76,7 @@ typescript
# Github actions
RELEASE_NOTES.md
# Docker Deploy Folder
# Docker Deploy Folder
deploy/*
!deploy/.gitkeep
@@ -82,5 +88,24 @@ deploy/*
.nitro
.cache
.output
.env*
!.env.example
!.env.example
fb_keepalive
# pnpm store
.pnpm-store
# Nix
result
result-*
.direnv/
.envrc
# Webgui sync script helpers
web/scripts/.sync-webgui-repo-*
# Activation code data
plugin/source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/data/activation-data.php
# Config file that changes between versions
api/dev/Unraid.net/myservers.cfg

12
.husky/_/pre-commit Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/sh
if [ "$SKIP_SIMPLE_GIT_HOOKS" = "1" ]; then
echo "[INFO] SKIP_SIMPLE_GIT_HOOKS is set to 1, skipping hook."
exit 0
fi
if [ -f "$SIMPLE_GIT_HOOKS_RC" ]; then
. "$SIMPLE_GIT_HOOKS_RC"
fi
pnpm lint-staged

1
.npmrc Normal file
View File

@@ -0,0 +1 @@

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
22.17.0

1
.rclone-version Normal file
View File

@@ -0,0 +1 @@
1.69.1

View File

@@ -0,0 +1 @@
{".":"4.9.5"}

View File

@@ -1,8 +1,6 @@
{
"recommendations": [
"natizyskunk.sftp",
"davidanson.vscode-markdownlint",
"bmewburn.vscode-intelephense-client",
"foxundermoon.shell-format",
"timonwong.shellcheck",
"esbenp.prettier-vscode"

31
.vscode/settings.json vendored
View File

@@ -6,28 +6,9 @@
"source.fixAll": "never",
"source.fixAll.eslint": "explicit"
},
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#78797d",
"activityBar.background": "#78797d",
"activityBar.foreground": "#e7e7e7",
"activityBar.inactiveForeground": "#e7e7e799",
"activityBarBadge.background": "#df9fac",
"activityBarBadge.foreground": "#15202b",
"commandCenter.border": "#e7e7e799",
"sash.hoverBorder": "#78797d",
"statusBar.background": "#5f6063",
"statusBar.foreground": "#e7e7e7",
"statusBarItem.hoverBackground": "#78797d",
"statusBarItem.remoteBackground": "#5f6063",
"statusBarItem.remoteForeground": "#e7e7e7",
"titleBar.activeBackground": "#5f6063",
"titleBar.activeForeground": "#e7e7e7",
"titleBar.inactiveBackground": "#5f606399",
"titleBar.inactiveForeground": "#e7e7e799"
},
"peacock.color": "#5f6063",
"i18n-ally.localesPaths": [
"locales"
],
"i18n-ally.keystyle": "flat"
}
"i18n-ally.localesPaths": ["locales"],
"i18n-ally.keystyle": "flat",
"eslint.experimental.useFlatConfig": true,
"typescript.preferences.importModuleSpecifier": "non-relative",
"javascript.preferences.importModuleSpecifier": "non-relative"
}

View File

@@ -19,3 +19,4 @@
".DS_Store"
]
}

137
CLAUDE.md Normal file
View File

@@ -0,0 +1,137 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
This is the Unraid API monorepo containing multiple packages that provide API functionality for Unraid servers. It uses pnpm workspaces with the following structure:
- `/api` - Core NestJS API server with GraphQL
- `/web` - Nuxt.js frontend application
- `/unraid-ui` - Vue 3 component library
- `/plugin` - Unraid plugin package (.plg)
- `/packages` - Shared packages and API plugins
## Essential Commands
### Development
```bash
pnpm install # Install all dependencies
pnpm dev # Run all dev servers concurrently
pnpm build # Build all packages
pnpm build:watch # Watch mode with local plugin build
```
### Testing & Code Quality
```bash
pnpm test # Run all tests
pnpm lint # Run linting
pnpm lint:fix # Fix linting issues
pnpm type-check # TypeScript type checking
```
### API Development
```bash
cd api && pnpm dev # Run API server (http://localhost:3001)
cd api && pnpm test:watch # Run tests in watch mode
cd api && pnpm codegen # Generate GraphQL types
```
### Deployment
```bash
pnpm unraid:deploy <SERVER_IP> # Deploy all to Unraid server
```
## Architecture Notes
### API Structure (NestJS)
- Modules: `auth`, `config`, `plugins`, `emhttp`, `monitoring`
- GraphQL API with Apollo Server at `/graphql`
- Redux store for state management in `src/store/`
- Plugin system for extending functionality
- Entry points: `src/index.ts` (server), `src/cli.ts` (CLI)
### Key Patterns
- TypeScript imports use `.js` extensions (ESM compatibility)
- NestJS dependency injection with decorators
- GraphQL schema-first approach with code generation
- API plugins follow specific structure (see `api/docs/developer/api-plugins.md`)
### Authentication
- API key authentication via headers
- Cookie-based session management
- Keys stored in `/boot/config/plugins/unraid-api/`
### Development Workflow
1. Work Intent required before starting development
2. Fork from `main` branch
3. Reference Work Intent in PR
4. No direct pushes to main
### Debug Mode
```bash
LOG_LEVEL=debug unraid-api start --debug
```
Enables GraphQL playground at `http://tower.local/graphql`
## Coding Guidelines
### General Rules
- Never add comments unless they are needed for clarity of function
- Never add comments for obvious things, and avoid commenting when starting and ending code blocks
- Be CONCISE, keep replies shorter than a paragraph if at all possible
### API Development Rules (`api/**/*`)
- Use pnpm ONLY for package management
- Always run scripts from api/package.json unless requested
- Prefer adding new files to the NestJS repo located at `api/src/unraid-api/` instead of the legacy code
- Test suite is VITEST, do not use jest
- Run tests with: `pnpm --filter ./api test`
- Prefer to not mock simple dependencies
### Web Development Rules (`web/**/*`)
- Always run `pnpm codegen` for GraphQL code generation in the web directory
- GraphQL queries must be placed in `.query.ts` files
- GraphQL mutations must be placed in `.mutation.ts` files
- All GraphQL under `web/` must follow this naming convention
### Testing Guidelines
#### Vue Component Testing
- This is a Nuxt.js app but we are testing with vitest outside of the Nuxt environment
- Nuxt is currently set to auto import so some vue files may need compute or ref imported
- Use pnpm when running terminal commands and stay within the web directory
- Tests are located under `web/__test__`, run with `pnpm test`
- Use `mount` from Vue Test Utils for component testing
- Stub complex child components that aren't the focus of the test
- Mock external dependencies and services
- Test component behavior and output, not implementation details
- Use `createTestingPinia()` for mocking stores in components
- Find elements with semantic queries like `find('button')` rather than data-test IDs
- Use `await nextTick()` for DOM updates
- Always await async operations before making assertions
#### Store Testing with Pinia
- Use `createPinia()` and `setActivePinia` when testing Store files
- Only use `createTestingPinia` if you specifically need its testing features
- Let stores initialize with their natural default state
- Don't mock the store being tested
- Ensure Vue reactivity imports are added to store files (computed, ref, watchEffect)
- Place all mock declarations at the top level
- Use factory functions for module mocks to avoid hoisting issues
- Clear mocks between tests to ensure isolation

80
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,80 @@
# Contributing to Unraid Connect
Thank you for your interest in contributing to Unraid Connect! We want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
## TypeScript Import Extensions in the API Directory
When working with the API directory, you'll notice that TypeScript files are imported with `.js` extensions (e.g., `import { something } from './file.js'`) even though the actual files have `.ts` extensions. This is because:
1. We use ECMAScript modules (ESM) in our TypeScript configuration
2. When TypeScript compiles `.ts` files to `.js`, the import paths in the compiled code need to reference `.js` files
3. TypeScript doesn't automatically change the extensions in import statements during compilation
4. Using `.js` extensions in imports ensures that both TypeScript during development and Node.js in production can resolve the modules correctly
This approach follows the [official TypeScript ESM recommendation](https://www.typescriptlang.org/docs/handbook/esm-node.html) and ensures compatibility across development and production environments.
## Development Process
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
### 1. Work Intent Process
**Before starting any development work**, you must submit a Work Intent and have it approved:
1. **Create a Work Intent**
- Go to [Issues → New Issue → Work Intent](https://github.com/unraid/api/issues/new?template=work_intent.md)
- Fill out the brief template describing what you want to work on
- The issue will be automatically labeled as `work-intent` and `unapproved`
2. **Wait for Approval**
- A core developer will review your Work Intent
- They may ask questions or suggest changes
- Once approved, the `unapproved` label will be removed
3. **Begin Development**
- Only start coding after your Work Intent is approved
- Follow the approach outlined in your approved Work Intent
- Reference the Work Intent in your future PR
### 2. Making Changes
1. Fork the repo and create your branch from `main`
2. Make your changes
3. Ensure your commits are clear and descriptive
4. Keep your changes focused - solve one thing at a time
### 3. Pull Request Process
1. Create a pull request from your fork to our `main` branch
2. Reference the approved Work Intent in your PR description
3. Ensure the PR description clearly describes the problem and solution
4. Include screenshots or examples if applicable
5. Wait for review from the core team
**Note:** Direct pushes to the main branch are not allowed. All changes must go through the PR process.
## Developer Documentation
For detailed information about development workflows, repository organization, and other technical details, please refer to our developer documentation:
- [Development Guide](api/docs/developer/development.md) - Setup, building, and debugging instructions
- [Development Workflows](api/docs/developer/workflows.md) - Detailed workflows for local development, building, and deployment
- [Repository Organization](api/docs/developer/repo-organization.md) - High-level architecture and project structure
## Bug Reports and Feature Requests
We use GitHub issues to track bugs and feature requests:
- **Bug Report**: Use the [Bug Report Template](https://github.com/unraid/api/issues/new?template=bug_report.md)
- **Feature Request**: Use the [Feature Request Template](https://github.com/unraid/api/issues/new?template=feature_request.md)
For Unraid Connect specific issues (Flash Backup, connect.myunraid.net, mothership connectivity), please submit through our support portal instead.
## License
By contributing, you agree that your contributions will be licensed under the same terms as the main project.

352
LICENSE.txt Normal file
View File

@@ -0,0 +1,352 @@
Project License Notice
----------------------
This project is licensed under the terms of the GNU General Public License version 2,
**or (at your option) any later version** published by the Free Software Foundation.
The full text of the GNU GPL v2.0 is provided below for reference.
----------------------
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
<https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
Unraid API - Core API functionality for Unraid systems
Copyright (C) 2024 Lime Technology, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
For questions about licensing or to report issues:
- Website: https://unraid.net
- Email: support@unraid.net
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Moe Ghoul>, 1 April 1989
Moe Ghoul, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@@ -1,11 +1,21 @@
PATHS_UNRAID_DATA=./dev/data # Where we store plugin data (e.g. permissions.json)
PATHS_STATES=./dev/states # Where .ini files live (e.g. vars.ini)
PATHS_AUTH_SESSIONS=./dev/sessions # Where user sessions live
PATHS_AUTH_KEY=./dev/keys # Auth key directory
PATHS_DYNAMIX_BASE=./dev/dynamix # Dynamix's data directory
PATHS_DYNAMIX_CONFIG_DEFAULT=./dev/dynamix/default.cfg # Dynamix's default config file, which ships with unraid
PATHS_DYNAMIX_CONFIG=./dev/dynamix/dynamix.cfg # Dynamix's config file
PATHS_MY_SERVERS_CONFIG=./dev/Unraid.net/myservers.cfg # My servers config file
PATHS_MY_SERVERS_FB=./dev/Unraid.net/fb_keepalive # My servers flashbackup timekeeper file
PATHS_KEYFILE_BASE=./dev/Unraid.net # Keyfile location
PATHS_MACHINE_ID=./dev/data/machine-id
PATHS_PARITY_CHECKS=./dev/states/parity-checks.log
PATHS_CONFIG_MODULES=./dev/configs
PATHS_ACTIVATION_BASE=./dev/activation
PATHS_PASSWD=./dev/passwd
PATHS_RCLONE_SOCKET=./dev/rclone-socket
PATHS_LOG_BASE=./dev/log # Where we store logs
PATHS_BACKUP_JOBS=./dev/api/backup
ENVIRONMENT="development"
NODE_ENV="development"
PORT="3001"
@@ -13,6 +23,8 @@ PLAYGROUND=true
INTROSPECTION=true
MOTHERSHIP_GRAPHQL_LINK="http://authenticator:3000/graphql"
NODE_TLS_REJECT_UNAUTHORIZED=0
BYPASS_PERMISSION_CHECKS=true
BYPASS_CORS_CHECKS=false
BYPASS_PERMISSION_CHECKS=false
BYPASS_CORS_CHECKS=true
CHOKIDAR_USEPOLLING=true
LOG_TRANSPORT=console
LOG_LEVEL=debug # Change to trace for extremely noisy logging

5
api/.env.production Normal file
View File

@@ -0,0 +1,5 @@
ENVIRONMENT="production"
NODE_ENV="production"
PORT="/var/run/unraid-api.sock"
MOTHERSHIP_GRAPHQL_LINK="https://mothership.unraid.net/ws"
PATHS_CONFIG_MODULES="/boot/config/plugins/dynamix.my.servers/configs"

5
api/.env.staging Normal file
View File

@@ -0,0 +1,5 @@
ENVIRONMENT="staging"
NODE_ENV="production"
PORT="/var/run/unraid-api.sock"
MOTHERSHIP_GRAPHQL_LINK="https://staging.mothership.unraid.net/ws"
PATHS_CONFIG_MODULES="/boot/config/plugins/dynamix.my.servers/configs"

17
api/.env.test Normal file
View File

@@ -0,0 +1,17 @@
PATHS_UNRAID_DATA=./dev/data # Where we store plugin data (e.g. permissions.json)
PATHS_STATES=./dev/states # Where .ini files live (e.g. vars.ini)
PATHS_AUTH_SESSIONS=./dev/sessions # Where user sessions live
PATHS_AUTH_KEY=./dev/keys # Auth key directory
PATHS_DYNAMIX_BASE=./dev/dynamix # Dynamix's data directory
PATHS_DYNAMIX_CONFIG_DEFAULT=./dev/dynamix/default.cfg # Dynamix's default config file, which ships with unraid
PATHS_DYNAMIX_CONFIG=./dev/dynamix/dynamix.cfg # Dynamix's config file
PATHS_MY_SERVERS_CONFIG=./dev/Unraid.net/myservers.cfg # My servers config file
PATHS_MY_SERVERS_FB=./dev/Unraid.net/fb_keepalive # My servers flashbackup timekeeper file
PATHS_KEYFILE_BASE=./dev/Unraid.net # Keyfile location
PATHS_MACHINE_ID=./dev/data/machine-id
PATHS_PARITY_CHECKS=./dev/states/parity-checks.log
PATHS_CONFIG_MODULES=./dev/configs
PATHS_ACTIVATION_BASE=./dev/activation
PATHS_PASSWD=./dev/passwd
PORT=5000
NODE_ENV="test"

View File

@@ -1,47 +0,0 @@
/** @type {import('eslint').Linter.Config} */
module.exports = {
root: true,
plugins: [
'@typescript-eslint/eslint-plugin',
'unused-imports',
'eslint-plugin-unicorn',
],
ignorePatterns: ['src/graphql/generated/**/*.ts', '*.test.ts', 'tsup.config.ts', 'vite.config.ts'],
parser: '@typescript-eslint/parser',
rules: {
'@typescript-eslint/no-redundant-type-constituents': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/naming-convention': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unsafe-return': 'off',
'@typescript-eslint/ban-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/consistent-type-imports': [
'warn',
{ fixStyle: 'inline-type-imports' },
],
'unicorn/numeric-separators-style': [
'error',
{ number: { minimumDigits: 0, groupLength: 3 } },
],
'import/no-cycle': 'off', // Change this to "error" to find circular imports
'@typescript-eslint/no-use-before-define': ['error'],
'no-multiple-empty-lines': ['error', { max: 1, maxBOF: 0, maxEOF: 1 }],
},
overrides: [
{
files: ['*.ts'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
],
parserOptions: {
project: true,
tsconfigRootDir: __dirname,
},
rules: {
'@typescript-eslint/no-explicit-any': 'off',
},
},
],
};

57
api/.eslintrc.ts Normal file
View File

@@ -0,0 +1,57 @@
import eslint from '@eslint/js';
import importPlugin from 'eslint-plugin-import';
import noRelativeImportPaths from 'eslint-plugin-no-relative-import-paths';
import prettier from 'eslint-plugin-prettier';
import tseslint from 'typescript-eslint';
export default tseslint.config(eslint.configs.recommended, ...tseslint.configs.recommended, {
plugins: {
'no-relative-import-paths': noRelativeImportPaths,
prettier: prettier,
import: importPlugin,
},
rules: {
'@typescript-eslint/no-redundant-type-constituents': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/naming-convention': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unsafe-return': 'off',
'@typescript-eslint/ban-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-empty-object-type': 'off',
'no-use-before-define': ['off'],
'no-multiple-empty-lines': ['error', { max: 1, maxBOF: 0, maxEOF: 1 }],
'@typescript-eslint/no-unused-vars': 'off',
'@typescript-eslint/no-unused-expressions': 'off',
'import/no-unresolved': 'off',
'import/no-absolute-path': 'off',
'import/prefer-default-export': 'off',
'no-relative-import-paths/no-relative-import-paths': [
'error',
{ allowSameFolder: false, rootDir: 'src', prefix: '@app' },
],
'prettier/prettier': 'error',
'import/extensions': [
'error',
'ignorePackages',
{
js: 'always',
ts: 'always',
},
],
'no-restricted-globals': [
'error',
{
name: '__dirname',
message: 'Use import.meta.url instead of __dirname in ESM',
},
{
name: '__filename',
message: 'Use import.meta.url instead of __filename in ESM',
},
],
'eol-last': ['error', 'always'],
},
ignores: ['src/graphql/generated/client/**/*', 'scripts/**/*'],
});

84
api/.gitignore vendored Normal file
View File

@@ -0,0 +1,84 @@
# Logs
./logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
coverage-ts
# nyc test coverage
.nyc_output
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# next.js build output
.next
# Visual Studio Code workspace
.vscode/*
!.vscode/extensions.json
# OSX
.DS_Store
# Temp dir for tests
test/__temp__/*
# Built files
dist
# Typescript
typescript
# Ultra runner
.ultra.cache.json
# Github actions
RELEASE_NOTES.md
# Docker Deploy Folder
deploy/*
!deploy/.gitkeep
# pkg cache
.pkg-cache
# IDE Settings Files
.idea
!**/*.login.*

5
api/.gqlconfig Normal file
View File

@@ -0,0 +1,5 @@
{
schema: {
files: 'src/graphql/schema/types/**/*.graphql'
}
}

View File

@@ -1 +0,0 @@
18.17.1

7
api/.prettierignore Normal file
View File

@@ -0,0 +1,7 @@
!src/*
# Downloaded Fixtures (For File Modifications)
src/unraid-api/unraid-file-modifier/modifications/__fixtures__/downloaded/*
# Generated Types
src/graphql/generated/client/*.ts

38
api/.prettierrc.cjs Normal file
View File

@@ -0,0 +1,38 @@
/**
* @see https://prettier.io/docs/en/configuration.html
* @type {import("prettier").Config}
*/
module.exports = {
trailingComma: 'es5',
tabWidth: 4,
semi: true,
singleQuote: true,
printWidth: 105,
plugins: ['@ianvs/prettier-plugin-sort-imports'],
// decorators-legacy lets the import sorter transform files with decorators
importOrderParserPlugins: ['typescript', 'decorators-legacy'],
importOrder: [
/**----------------------
* Nest.js & node.js imports
*------------------------**/
'<TYPES>^@nestjs(/.*)?$',
'^@nestjs(/.*)?$', // matches imports starting with @nestjs
'<TYPES>^(node:)',
'<BUILTIN_MODULES>', // Node.js built-in modules
'',
/**----------------------
* Third party packages
*------------------------**/
'<TYPES>',
'<THIRD_PARTY_MODULES>', // Imports not matched by other special words or groups.
'',
/**----------------------
* Application Code
*------------------------**/
'<TYPES>^@app(/.*)?$', // matches type imports starting with @app
'^@app(/.*)?$',
'',
'<TYPES>^[.]',
'^[.]', // relative imports
],
};

11
api/.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,11 @@
{
"recommendations": [
"mikestead.dotenv",
"eamodio.gitlens",
"dbaeumer.vscode-eslint",
"antfu.goto-alias",
"bierner.markdown-mermaid",
"github.vscode-pull-request-github",
"bierner.markdown-preview-github-styles"
]
}

9
api/.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,9 @@
{
"eslint.lintTask.options": "--flag unstable_ts_config",
"eslint.options": {
"flags": ["unstable_ts_config"],
"overrideConfigFile": ".eslintrc.ts"
},
"typescript.preferences.importModuleSpecifier": "non-relative",
"javascript.preferences.importModuleSpecifier": "non-relative"
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
###########################################################
# Development/Build Image
###########################################################
FROM node:18.17.1-bookworm-slim As development
FROM node:22.17.0-bookworm-slim AS development
# Install build tools and dependencies
RUN apt-get update -y && apt-get install -y \
@@ -19,22 +19,18 @@ WORKDIR /app
# Set app env
ENV NODE_ENV=development
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
# Setup cache for pkg
ENV PKG_CACHE_PATH /app/.pkg-cache
RUN mkdir -p ${PKG_CACHE_PATH}
# Install pnpm
RUN corepack enable && corepack prepare pnpm@8.15.4 --activate && npm i -g npm@latest
COPY tsconfig.json tsup.config.ts .eslintrc.cjs .npmrc .env.production .env.staging ./
COPY package.json package-lock.json ./
# Install pkg
RUN npm i -g pkg zx
COPY tsconfig.json .eslintrc.ts .prettierrc.cjs .npmrc .env.production .env.staging package.json pnpm-lock.yaml .npmrc ./
# Install deps
RUN npm i
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
EXPOSE 4000
EXPOSE 3001
###########################################################
# Builder Image
@@ -42,6 +38,8 @@ EXPOSE 4000
FROM development AS builder
ENV NODE_ENV=production
COPY . .
CMD ["npm", "run", "build-pkg"]
CMD ["pnpm", "run", "build:release"]

76
api/README.md Normal file
View File

@@ -0,0 +1,76 @@
# @unraid/api
## Installation
Install the production plugin via the apps tab (search for "Unraid Connect")
Manual install can be done with the following routes:
[production](https://stable.dl.unraid.net/unraid-api/dynamix.unraid.net.plg)
[staging](https://preview.dl.unraid.net/unraid-api/dynamix.unraid.net.staging.plg)
## CLI
If you're on a unraid v6.9.2 or later machine this should be available by running `unraid-api` in any directory.
```bash
root@Devon:~# unraid-api
Unraid API
Thanks for using the official Unraid API
Usage:
$ unraid-api command <options>
Commands:
start/stop/restart/version/status/report/switch-env
Options:
-h, --help Prints this usage guide.
-d, --debug Enabled debug mode.
-p, --port string Set the graphql port.
--environment production/staging/development Set the working environment.
--log-level ALL/TRACE/DEBUG/INFO/WARN/ERROR/FATAL/MARK/OFF Set the log level.
Copyright © 2024 Lime Technology, Inc.
```
## Key
To create and work with Unraid API keys, used for the local API, run the following command to view all available options. These options may change over time.
```sh
unraid-api key --help
```
## Report
To view the current status of the unraid-api and its connection to mothership, run:
```sh
unraid-api report
```
To view verbose data (anonymized), run:
```sh
unraid-api report -v
```
To view non-anonymized verbose data, run:
```sh
unraid-api report -vv
```
## Secrets
If you found this file you're likely a developer. If you'd like to know more about the API and when it's available please join [our discord](https://discord.unraid.net/).
## License
Copyright Lime Technology Inc. All rights reserved.

68
api/codegen.ts Normal file
View File

@@ -0,0 +1,68 @@
import type { CodegenConfig } from '@graphql-codegen/cli';
const config: CodegenConfig = {
overwrite: true,
emitLegacyCommonJSImports: false,
verbose: true,
config: {
namingConvention: {
enumValues: 'change-case-all#upperCase',
transformUnderscore: true,
useTypeImports: true,
},
scalars: {
DateTime: 'string',
Long: 'number',
JSON: 'Record<string, any>',
URL: 'URL',
Port: 'number',
UUID: 'string',
},
scalarSchemas: {
URL: 'z.instanceof(URL)',
Long: 'z.number()',
JSON: 'z.record(z.string(), z.any())',
Port: 'z.number()',
UUID: 'z.string()',
},
},
generates: {
// Generate Types for Mothership GraphQL Client
'src/graphql/generated/client/': {
documents: './src/graphql/mothership/*.ts',
schema: {
[process.env.MOTHERSHIP_GRAPHQL_LINK as string]: {
headers: {
origin: 'https://forums.unraid.net',
},
},
},
preset: 'client',
presetConfig: {
gqlTagName: 'graphql',
},
config: {
useTypeImports: true,
withObjectType: true,
},
plugins: [{ add: { content: '/* eslint-disable */' } }],
},
'src/graphql/generated/client/validators.ts': {
schema: {
[process.env.MOTHERSHIP_GRAPHQL_LINK as string]: {
headers: {
origin: 'https://forums.unraid.net',
},
},
},
plugins: ['typescript-validation-schema', { add: { content: '/* eslint-disable */' } }],
config: {
importFrom: '@app/graphql/generated/client/graphql.js',
strictScalars: false,
schema: 'zod',
},
},
},
};
export default config;

View File

@@ -1,77 +0,0 @@
overwrite: true
emitLegacyCommonJSImports: false
verbose: true
require:
- ts-node/register
config:
namingConvention:
typeNames: './fix-array-type.cjs'
enumValues: 'change-case#upperCase'
useTypeImports: true
scalars:
DateTime: string
Long: number
JSON: "{ [key: string]: any }"
URL: URL
Port: number
UUID: string
generates:
src/graphql/generated/client/:
documents: './src/graphql/mothership/*.ts'
schema:
'${MOTHERSHIP_GRAPHQL_LINK}':
headers:
origin: 'https://forums.unraid.net'
preset: client
presetConfig:
gqlTagName: graphql
config:
useTypeImports: true
withObjectType: true
plugins:
- add: { content: '/* eslint-disable */' }
# Generate Types for the API Server
src/graphql/generated/api/types.ts:
schema:
- './src/graphql/types.ts'
- './src/graphql/schema/types/**/*.graphql'
plugins:
- typescript
- typescript-resolvers
- add: { content: '/* eslint-disable */' }
config:
contextType: '@app/graphql/schema/utils#Context'
useIndexSignature: true
# Generate Operations for any built in API Server Operations (ie report.ts)
src/graphql/generated/api/operations.ts:
documents: './src/graphql/client/api/*.ts'
schema:
- './src/graphql/types.ts'
- './src/graphql/schema/types/**/*.graphql'
preset: import-types
presetConfig:
typesPath: '@app/graphql/generated/api/types'
plugins:
- typescript-validation-schema
- typescript-operations
- typed-document-node
- add: { content: '/* eslint-disable */' }
config:
importFrom: '@app/graphql/generated/api/types'
strictScalars: false
schema: 'zod'
withObjectType: true
src/graphql/generated/client/validators.ts:
schema:
'${MOTHERSHIP_GRAPHQL_LINK}':
headers:
origin: 'https://forums.unraid.net'
plugins:
- typescript-validation-schema
- add: { content: '/* eslint-disable */'}
config:
importFrom: '@app/graphql/generated/client/graphql'
strictScalars: false
schema: 'zod'

1
api/commitlint.config.js Normal file
View File

@@ -0,0 +1 @@
module.exports = { extends: ['@commitlint/config-conventional'] };

View File

@@ -0,0 +1 @@
┘[5╢╦О яb┴ ю└;R╛леЩ²ДА├y÷шd│яя╛Еlя▓ё"Hи╜ь;QДs≈@Вы▄╠╩1·Qy╓к|й╔+╨фM)X9jя▄тГО⌠1а2WHщ'│.ЕJё-╨MPгS╜╧:Ю▓]o9^ЮО0┴$"░ l^`╪ >3к:╦я ЯО┤q~ёш≈└с ш5ёЗ=р╟─]╗IWf╥и ⌡?:У2ВоE5[р╨Ш(÷╤Е+о│ШIмAч²%╞╓дq:ё╤эb╣┼

View File

@@ -1,21 +1,20 @@
[api]
version="3.2.3+6c0ccb2b"
extraOrigins=""
version="4.4.1"
extraOrigins="https://google.com,https://test.com"
[local]
[notifier]
apikey="unnotify_30994bfaccf839c65bae75f7fa12dd5ee16e69389f754c3b98ed7d5"
sandbox="yes"
[remote]
wanaccess="yes"
wanport="8443"
upnpEnabled="no"
apikey="_______________________BIG_API_KEY_HERE_________________________"
localApiKey="_______________________LOCAL_API_KEY_HERE_________________________"
email="test@example.com"
username="zspearmint"
avatar="https://via.placeholder.com/200"
regWizTime="1611175408732_0951-1653-3509-FBA155FA23C0"
idtoken=""
accesstoken=""
idtoken=""
refreshtoken=""
dynamicRemoteAccessType="DISABLED"
[upc]
apikey="unupc_fab6ff6ffe51040595c6d9ffb63a353ba16cc2ad7d93f813a2e80a5810"
ssoSubIds=""

View File

@@ -0,0 +1,20 @@
[api]
version="4.4.1"
extraOrigins="https://google.com,https://test.com"
[local]
sandbox="yes"
[remote]
wanaccess="yes"
wanport="8443"
upnpEnabled="no"
apikey="_______________________BIG_API_KEY_HERE_________________________"
localApiKey="_______________________LOCAL_API_KEY_HERE_________________________"
email="test@example.com"
username="zspearmint"
avatar="https://via.placeholder.com/200"
regWizTime="1611175408732_0951-1653-3509-FBA155FA23C0"
accesstoken=""
idtoken=""
refreshtoken=""
dynamicRemoteAccessType="DISABLED"
ssoSubIds=""

View File

@@ -0,0 +1,13 @@
{
"code": "EXAMPLE_CODE_123",
"partnerName": "MyPartner Inc.",
"partnerUrl": "https://partner.example.com",
"serverName": "MyAwesomeServer",
"sysModel": "CustomBuild v1.0",
"comment": "This is a test activation code for development.",
"header": "#336699",
"headermetacolor": "#FFFFFF",
"background": "#F0F0F0",
"showBannerGradient": "yes",
"theme": "black"
}

View File

@@ -0,0 +1 @@
true

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="442" height="221">
<defs>
<linearGradient id="gradient_0" gradientUnits="userSpaceOnUse" x1="608.84924" y1="48.058002" x2="447.47684" y2="388.15295">
<stop offset="0" stop-color="#ECC02F"/>
<stop offset="1" stop-color="#B8436B"/>
</linearGradient>
</defs>
<path fill="url(#gradient_0)" transform="scale(0.431641 0.431641)" d="M126.543 236.139C141.269 184.983 170.747 148.08 228.938 144.823C240.378 144.182 259.66 144.749 271.333 145.215C299.585 144.391 350.558 142.667 377.842 145.685C414.099 149.696 443.185 175.429 472.192 195.251L586.561 274.337C636.114 308.874 627.234 309.151 685.21 309.042L778.304 309.082C799.091 309.099 813.482 308.867 828.82 292.529C857.893 261.561 843.003 209.317 800.506 200.17C790.505 198.018 779.334 199.535 769.11 199.523L702.658 199.488C690.005 186.062 675.199 151.817 658.182 145.215L739.199 145.198C765.636 145.196 796.164 142.886 821.565 150.344C923.889 180.389 922.324 331.136 816.611 357.807C802.524 361.361 788.425 361.034 774.035 361.031L663.497 361.009C623.773 360.859 603.599 349.313 572.35 327.596L430.421 229.848C415.731 219.804 401.419 209.118 386.451 199.488C377.579 199.501 368.42 200.01 359.582 199.488L272.561 199.497C258.582 199.485 235.352 198.06 222.607 200.981C192.741 207.825 177.956 234.361 180.015 263.294C177.545 260.392 178.63 254.678 178.838 251.164C179.877 233.569 187.409 224.968 197.345 212.22C184.786 202.853 156.933 193.749 149.447 186.645C143.454 196.583 136.881 205.628 132.955 216.732C130.766 222.921 130.678 230.967 127.506 236.625L126.543 236.139Z"/>
<path fill="#308DAF" transform="scale(0.431641 0.431641)" d="M149.447 186.645C156.933 193.749 184.786 202.853 197.345 212.22C187.409 224.968 179.877 233.569 178.838 251.164C178.63 254.678 177.545 260.392 180.015 263.294C192.489 309.751 221.563 309.078 263.512 309.07L322.096 309.048C333.708 325.984 348.958 344.904 361.795 361.006L232.654 361.03C176.801 360.579 130.605 315.939 126.498 260.613C125.893 252.473 126.453 244.293 126.543 236.139L127.506 236.625C130.678 230.967 130.766 222.921 132.955 216.732C136.881 205.628 143.454 196.583 149.447 186.645Z"/>
<defs>
<linearGradient id="gradient_1" gradientUnits="userSpaceOnUse" x1="620.42566" y1="140.57172" x2="611.08759" y2="282.2207">
<stop offset="0" stop-color="#F5A22C"/>
<stop offset="1" stop-color="#E17543"/>
</linearGradient>
</defs>
<path fill="url(#gradient_1)" transform="scale(0.431641 0.431641)" d="M570.215 137.504C646.214 133.055 670.623 188.789 707.064 241.977L726.71 270.658C729.065 274.1 737.591 284.13 737.576 287.916L674.645 287.916C674.5 287.132 659.251 264.134 658.182 263.294C658.133 262.92 623.915 212.832 620.593 208.697C602.652 186.369 565.856 181.796 545.393 203.424C542.002 207.007 539.705 211.779 535.713 214.764C534.409 212.586 496.093 187.105 490.641 183.32C508.306 154.99 539.004 142.872 570.215 137.504Z"/>
<path fill="#308DAF" transform="scale(0.431641 0.431641)" d="M286.656 221.485L350.512 221.485C354.248 227.374 358.556 232.986 362.565 238.698L379.9 263.82C397.44 289.065 410.994 321.185 447.698 317.317C464.599 315.536 476.472 305.449 486.751 292.741C494.293 298.818 530.089 320.341 533.124 324.28C532.441 328.231 526.229 334.319 522.861 336.255C521.587 339.958 509.164 348.519 505.635 350.88C463.781 378.879 411.472 377.537 373.808 343.464C365.331 335.795 359.734 326.969 353.351 317.641L336.798 293.614C320.035 269.591 302.915 245.863 286.656 221.485Z"/>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,25 @@
[
{
"id": "a68667b6-f4ef-4c47-aec3-d9886be78487",
"name": "Test",
"sourceType": "RAW",
"destinationType": "RCLONE",
"schedule": "0 2 * * *",
"enabled": true,
"sourceConfig": {
"label": "Raw file backup",
"sourcePath": "/Users/elibosley/Desktop",
"excludePatterns": [],
"includePatterns": []
},
"destinationConfig": {
"type": "RCLONE",
"remoteName": "google_drives",
"destinationPath": "desktop"
},
"createdAt": "2025-05-27T15:02:31.655Z",
"updatedAt": "2025-05-27T15:11:40.547Z",
"lastRunAt": "2025-05-27T15:07:37.139Z",
"lastRunStatus": "Failed: RClone group backup-job_1748358397105_sbo5j322k failed or timed out."
}
]

12
api/dev/configs/api.json Normal file
View File

@@ -0,0 +1,12 @@
{
"version": "4.9.5",
"extraOrigins": [
"https://google.com",
"https://test.com"
],
"sandbox": true,
"ssoSubIds": [],
"plugins": [
"unraid-api-plugin-connect"
]
}

View File

@@ -0,0 +1,16 @@
{
"wanaccess": false,
"wanport": 0,
"upnpEnabled": false,
"apikey": "",
"localApiKey": "",
"email": "",
"username": "",
"avatar": "",
"regWizTime": "",
"accesstoken": "",
"idtoken": "",
"refreshtoken": "",
"dynamicRemoteAccessType": "DISABLED",
"ssoSubIds": []
}

1
api/dev/data/machine-id Normal file
View File

@@ -0,0 +1 @@
d0b5433294c110f1eed72bdb63910a9a

View File

@@ -1,191 +0,0 @@
{
"admin": {
"extends": "user",
"permissions": [
{
"resource": "apikey",
"action": "read:any",
"attributes": "*"
},
{
"resource": "array",
"action": "read:any",
"attributes": "*"
},
{
"resource": "cpu",
"action": "read:any",
"attributes": "*"
},
{
"resource": "device",
"action": "read:any",
"attributes": "*"
},
{
"resource": "device/unassigned",
"action": "read:any",
"attributes": "*"
},
{
"resource": "disk",
"action": "read:any",
"attributes": "*"
},
{
"resource": "disk/settings",
"action": "read:any",
"attributes": "*"
},
{
"resource": "display",
"action": "read:any",
"attributes": "*"
},
{
"resource": "docker/container",
"action": "read:any",
"attributes": "*"
},
{
"resource": "docker/network",
"action": "read:any",
"attributes": "*"
},
{
"resource": "info",
"action": "read:any",
"attributes": "*"
},
{
"resource": "license-key",
"action": "read:any",
"attributes": "*"
},
{
"resource": "machine-id",
"action": "read:any",
"attributes": "*"
},
{
"resource": "memory",
"action": "read:any",
"attributes": "*"
},
{
"resource": "notifications",
"action": "read:any",
"attributes": "*"
},
{
"resource": "online",
"action": "read:any",
"attributes": "*"
},
{
"resource": "os",
"action": "read:any",
"attributes": "*"
},
{
"resource": "parity-history",
"action": "read:any",
"attributes": "*"
},
{
"resource": "permission",
"action": "read:any",
"attributes": "*"
},
{
"resource": "servers",
"action": "read:any",
"attributes": "*"
},
{
"resource": "service",
"action": "read:any",
"attributes": "*"
},
{
"resource": "service/emhttpd",
"action": "read:any",
"attributes": "*"
},
{
"resource": "service/unraid-api",
"action": "read:any",
"attributes": "*"
},
{
"resource": "services",
"action": "read:any",
"attributes": "*"
},
{
"resource": "share",
"action": "read:any",
"attributes": "*"
},
{
"resource": "software-versions",
"action": "read:any",
"attributes": "*"
},
{
"resource": "unraid-version",
"action": "read:any",
"attributes": "*"
},
{
"resource": "user",
"action": "read:any",
"attributes": "*"
},
{
"resource": "var",
"action": "read:any",
"attributes": "*"
},
{
"resource": "vars",
"action": "read:any",
"attributes": "*"
},
{
"resource": "vm/domain",
"action": "read:any",
"attributes": "*"
},
{
"resource": "vm/network",
"action": "read:any",
"attributes": "*"
}
]
},
"user": {
"extends": "guest",
"permissions": [
{
"resource": "apikey",
"action": "read:own",
"attributes": "*"
},
{
"resource": "permission",
"action": "read:any",
"attributes": "*"
}
]
},
"guest": {
"permissions": [
{
"resource": "welcome",
"action": "read:any",
"attributes": "*"
}
]
}
}

View File

@@ -0,0 +1 @@
version="6.12.0-beta5"

BIN
api/dev/dynamix/banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

View File

@@ -0,0 +1 @@
case-model.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -0,0 +1,80 @@
[confirm]
down="1"
stop="1"
[display]
width=""
font=""
tty="15"
date="%c"
time="%R"
number=".,"
unit="C"
scale="-1"
resize="0"
wwn="0"
total="1"
banner=""
header=""
background=""
tabs="1"
users="Tasks:3"
usage="0"
text="1"
warning="70"
critical="90"
hot="45"
max="55"
hotssd="60"
maxssd="70"
power=""
theme="white"
locale=""
raw=""
rtl=""
headermetacolor=""
headerdescription="yes"
showBannerGradient="yes"
[parity]
mode="0"
hour="0 0"
dotm="1"
month="1"
day="0"
cron=""
write="NOCORRECT"
[notify]
display="0"
life="5"
date="d-m-Y"
time="H:i"
position="top-right"
path="/tmp/notifications"
system="*/1 * * * *"
entity="1"
normal="1"
warning="1"
alert="1"
unraid="1"
plugin="1"
docker_notify="1"
language_notify="1"
report="1"
unraidos=""
version=""
docker_update=""
language_update=""
status=""
[ssmtp]
root=""
RcptTo=""
SetEmailPriority="True"
Subject="Unraid Status: "
server="smtp.gmail.com"
port="465"
UseTLS="YES"
UseSTARTTLS="NO"
UseTLSCert="NO"
TLSCert=""
AuthMethod="login"
AuthUser=""
AuthPass=""

View File

@@ -1,35 +1,42 @@
[display]
date="%c"
number=".,"
scale="-1"
tabs="1"
users="Tasks:3"
resize="0"
wwn="0"
total="1"
usage="0"
banner="image"
dashapps="icons"
theme="white"
text="1"
unit="C"
warning="70"
critical="90"
hot="45"
max="55"
sysinfo="/Tools/SystemProfiler"
date=%c
time=%I:%M %p
number=.,
scale=-1
tabs=1
users=Tasks:3
resize=0
wwn=0
total=1
usage=0
banner=image
dashapps=icons
theme=black
text=1
unit=C
warning=70
critical=90
hot=45
max=55
sysinfo=/Tools/SystemProfiler
header=336699
headermetacolor=FFFFFF
background=F0F0F0
showBannerGradient=yes
[notify]
entity="1"
normal="1"
warning="1"
alert="1"
unraid="1"
plugin="1"
docker_notify="1"
report="1"
display="0"
date="d-m-Y"
time="H:i"
position="top-right"
path="/app/dev/notifications"
system="*/1 * * * *"
entity=1
normal=1
warning=1
alert=1
unraid=1
plugin=1
docker_notify=1
report=1
display=0
date=d-m-Y
time=H:i
position=top-right
path=./dev/notifications
system=*/1 * * * *

36
api/dev/ident.cfg Normal file
View File

@@ -0,0 +1,36 @@
# Generated settings:
NAME="Unraid"
timeZone="America/New_York"
COMMENT="Media server"
SECURITY="user"
WORKGROUP="WORKGROUP"
DOMAIN=""
DOMAIN_SHORT=""
hideDotFiles="no"
enableFruit="yes"
USE_NETBIOS="no"
localMaster="yes"
serverMultiChannel="no"
USE_WSD="yes"
WSD_OPT=""
WSD2_OPT=""
USE_NTP="yes"
NTP_SERVER1="time1.google.com"
NTP_SERVER2="time2.google.com"
NTP_SERVER3="time3.google.com"
NTP_SERVER4="time4.google.com"
DOMAIN_LOGIN="Administrator"
DOMAIN_PASSWD=""
SYS_MODEL="Custom"
SYS_ARRAY_SLOTS="24"
USE_SSL="yes"
PORT="80"
PORTSSL="8443"
LOCAL_TLD="local"
BIND_MGT="no"
USE_TELNET="no"
PORTTELNET="23"
USE_SSH="yes"
PORTSSH="22"
USE_UPNP="yes"
START_PAGE="Main"

View File

@@ -0,0 +1,11 @@
{
"createdAt": "2025-01-27T16:22:56.501Z",
"description": "API key for Connect user",
"id": "b5b4aa3d-8e40-4c92-bc40-d50182071886",
"key": "_______________________LOCAL_API_KEY_HERE_________________________",
"name": "Connect",
"permissions": [],
"roles": [
"CONNECT"
]
}

View File

@@ -1,5 +0,0 @@
timestamp=1683971161
event=Unraid Parity check
subject=Notice [UNRAID] - Parity check finished (0 errors)
description=Canceled
importance=warning

View File

@@ -3,3 +3,4 @@ event=Unraid Parity check
subject=Notice [UNRAID] - Parity check finished (0 errors)
description=Canceled
importance=warning
link=/

View File

@@ -0,0 +1 @@
unraid_login|i:1736523078;unraid_user|s:4:"root";locale|s:0:"";buildDate|s:8:"20241202";

View File

@@ -1,24 +1,24 @@
[api]
version="3.2.3+6c0ccb2b"
extraOrigins=""
version="4.8.0"
extraOrigins="https://google.com,https://test.com"
[local]
[notifier]
apikey="unnotify_30994bfaccf839c65bae75f7fa12dd5ee16e69389f754c3b98ed7d5"
sandbox="yes"
[remote]
wanaccess="yes"
wanport="8443"
upnpEnabled="no"
apikey="_______________________BIG_API_KEY_HERE_________________________"
localApiKey="_______________________LOCAL_API_KEY_HERE_________________________"
email="test@example.com"
username="zspearmint"
avatar="https://via.placeholder.com/200"
regWizTime="1611175408732_0951-1653-3509-FBA155FA23C0"
idtoken=""
accesstoken=""
idtoken=""
refreshtoken=""
allowedOrigins="/var/run/unraid-notifications.sock, /var/run/unraid-php.sock, /var/run/unraid-cli.sock, http://localhost:8080, https://localhost:4443, https://tower.local:4443, https://192.168.1.150:4443, https://tower:4443, https://192-168-1-150.thisisfourtyrandomcharacters012345678900.myunraid.net:4443, https://85-121-123-122.thisisfourtyrandomcharacters012345678900.myunraid.net:8443, https://10-252-0-1.hash.myunraid.net:4443, https://10-252-1-1.hash.myunraid.net:4443, https://10-253-3-1.hash.myunraid.net:4443, https://10-253-4-1.hash.myunraid.net:4443, https://10-253-5-1.hash.myunraid.net:4443, https://connect.myunraid.net, https://staging.connect.myunraid.net, https://dev-my.myunraid.net:4000, https://studio.apollographql.com"
dynamicRemoteAccessType="DISABLED"
[upc]
apikey="unupc_fab6ff6ffe51040595c6d9ffb63a353ba16cc2ad7d93f813a2e80a5810"
ssoSubIds=""
allowedOrigins="/var/run/unraid-notifications.sock, /var/run/unraid-php.sock, /var/run/unraid-cli.sock, http://localhost:8080, https://localhost:4443, https://tower.local:4443, https://192.168.1.150:4443, https://tower:4443, https://192-168-1-150.thisisfourtyrandomcharacters012345678900.myunraid.net:4443, https://85-121-123-122.thisisfourtyrandomcharacters012345678900.myunraid.net:8443, https://10-252-0-1.hash.myunraid.net:4443, https://10-252-1-1.hash.myunraid.net:4443, https://10-253-3-1.hash.myunraid.net:4443, https://10-253-4-1.hash.myunraid.net:4443, https://10-253-5-1.hash.myunraid.net:4443, https://10-100-0-1.hash.myunraid.net:4443, https://10-100-0-2.hash.myunraid.net:4443, https://10-123-1-2.hash.myunraid.net:4443, https://221-123-121-112.hash.myunraid.net:4443, https://google.com, https://test.com, https://connect.myunraid.net, https://connect-staging.myunraid.net, https://dev-my.myunraid.net:4000, https://studio.apollographql.com"
[connectionStatus]
minigraph="ERROR_RETRYING"
minigraph="PRE_INIT"
upnpStatus=""

View File

@@ -0,0 +1,30 @@
[eth0]
DHCP_KEEPRESOLV="no"
DNS_SERVER1="1.1.1.1"
DNS_SERVER2="8.8.8.8"
DHCP6_KEEPRESOLV="no"
BONDING="yes"
BONDNAME=""
BONDNICS="eth0,eth1,eth2,eth3"
BONDING_MODE="1"
BONDING_MIIMON="100"
BRIDGING="yes"
BRNAME=""
BRNICS="bond0"
BRSTP="0"
BRFD="0"
DESCRIPTION:0=""
PROTOCOL:0=""
USE_DHCP:0="yes"
IPADDR:0="192.168.1.150"
NETMASK:0="255.255.255.0"
GATEWAY:0="192.168.1.1"
METRIC:0=""
USE_DHCP6:0=""
IPADDR6:0=""
NETMASK6:0=""
GATEWAY6:0=""
METRIC6:0=""
PRIVACY6:0=""
MTU=""
TYPE="access"

26
api/dev/states/nginx.ini Normal file
View File

@@ -0,0 +1,26 @@
NGINX_LANIP="192.168.1.150"
NGINX_LANIP6=""
NGINX_LANNAME="Tower"
NGINX_LANMDNS="Tower.local"
NGINX_CERTPATH="/boot/config/ssl/certs/certificate_bundle.pem"
NGINX_USESSL="yes"
NGINX_PORT="8080"
NGINX_PORTSSL="4443"
NGINX_DEFAULTURL="https://Tower.local:4443"
NGINX_CERTNAME="*.thisisfourtyrandomcharacters012345678900.myunraid.net"
NGINX_LANFQDN="192-168-1-150.thisisfourtyrandomcharacters012345678900.myunraid.net"
NGINX_LANFQDN6=""
NGINX_WANACCESS=""
NGINX_WANIP=""
NGINX_WANIP6=""
NGINX_WANFQDN="85-121-123-122.thisisfourtyrandomcharacters012345678900.myunraid.net"
NGINX_WANFQDN6=""
NGINX_WG0FQDN="10-252-0-1.hash.myunraid.net"
NGINX_WG1FQDN="10-252-1-1.hash.myunraid.net"
NGINX_WG3FQDN="10-253-3-1.hash.myunraid.net"
NGINX_WG4FQDN="10-253-4-1.hash.myunraid.net"
NGINX_WG55FQDN="10-253-5-1.hash.myunraid.net"
NGINX_TAILSCALEFQDN="10-100-0-1.hash.myunraid.net"
NGINX_TAILSCALE0FQDN="10-100-0-2.hash.myunraid.net"
NGINX_CUSTOMFQDN="10-123-1-2.hash.myunraid.net"
NGINX_CUSTOMFQDN6="221-123-121-112.hash.myunraid.net"

190
api/dev/states/sec.ini Normal file
View File

@@ -0,0 +1,190 @@
["disk1"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk2"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk3"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk4"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk5"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk6"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk7"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk8"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk9"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk10"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk11"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk12"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk13"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk14"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk15"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk16"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk17"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk18"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk19"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk20"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk21"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["disk22"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["abc"]
export="e"
fruit="no"
caseSensitive="auto"
security="public"
readList=""
writeList=""
volsizelimit=""
["flash"]
export="e"
fruit="no"
security="public"
readList=""
writeList=""

View File

@@ -0,0 +1,92 @@
["disk1"]
export="-"
security="public"
hostList=""
["disk2"]
export="-"
security="public"
hostList=""
["disk3"]
export="-"
security="public"
hostList=""
["disk4"]
export="-"
security="public"
hostList=""
["disk5"]
export="-"
security="public"
hostList=""
["disk6"]
export="-"
security="public"
hostList=""
["disk7"]
export="-"
security="public"
hostList=""
["disk8"]
export="-"
security="public"
hostList=""
["disk9"]
export="-"
security="public"
hostList=""
["disk10"]
export="-"
security="public"
hostList=""
["disk11"]
export="-"
security="public"
hostList=""
["disk12"]
export="-"
security="public"
hostList=""
["disk13"]
export="-"
security="public"
hostList=""
["disk14"]
export="-"
security="public"
hostList=""
["disk15"]
export="-"
security="public"
hostList=""
["disk16"]
export="-"
security="public"
hostList=""
["disk17"]
export="-"
security="public"
hostList=""
["disk18"]
export="-"
security="public"
hostList=""
["disk19"]
export="-"
security="public"
hostList=""
["disk20"]
export="-"
security="public"
hostList=""
["disk21"]
export="-"
security="public"
hostList=""
["disk22"]
export="-"
security="public"
hostList=""
["abc"]
export="-"
security="public"
hostList=""

68
api/dev/states/shares.ini Normal file
View File

@@ -0,0 +1,68 @@
["appdata"]
name="appdata"
nameOrig="appdata"
comment=""
allocator="highwater"
splitLevel=""
floor="0"
include=""
exclude=""
useCache="no"
cachePool="cache"
cow="auto"
color="yellow-on"
size="0"
free="9091184"
used="32831348"
luksStatus="0"
["domains"]
name="domains"
nameOrig="domains"
comment="saved VM instances"
allocator="highwater"
splitLevel="1"
floor="0"
include=""
exclude=""
useCache="prefer"
cachePool="cache"
cow="auto"
color="yellow-on"
size="0"
free="9091184"
used="32831348"
luksStatus="0"
["isos"]
name="isos"
nameOrig="isos"
comment="ISO images"
allocator="highwater"
splitLevel=""
floor="0"
include=""
exclude=""
useCache="yes"
cachePool="cache"
cow="auto"
color="yellow-on"
size="0"
free="9091184"
used="32831348"
luksStatus="0"
["system"]
name="system"
nameOrig="system"
comment="system data"
allocator="highwater"
splitLevel="1"
floor="0"
include=""
exclude=""
useCache="prefer"
cachePool="cache"
cow="auto"
color="yellow-on"
size="0"
free="9091184"
used="32831348"
luksStatus="0"

15
api/dev/states/users.ini Normal file
View File

@@ -0,0 +1,15 @@
["root"]
idx="0"
name="root"
desc="Console and webGui login account"
passwd="yes"
["xo"]
idx="1"
name="xo"
desc=""
passwd="yes"
["test_user"]
idx="2"
name="test_user"
desc=""
passwd="no"

View File

@@ -87,7 +87,7 @@ shareAvahiSMBModel="Xserve"
shfs_logging="1"
safeMode="no"
startMode="Normal"
configValid="yes"
configValid="ineligible"
joinStatus="Not joined"
deviceCount="4"
flashGUID="0000-0000-0000-000000000000"
@@ -102,6 +102,7 @@ regTm="1833409182"
regTm2="0"
regExp=""
regGen="0"
regState="ENOKEYFILE"
sbName="/boot/config/super.dat"
sbVersion="2.9.13"
sbUpdated="1596079143"

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 222.36 39.04"><defs><linearGradient id="header-logo" x1="47.53" y1="79.1" x2="170.71" y2="-44.08" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#e32929"/><stop offset="1" stop-color="#ff8d30"/></linearGradient></defs><title>unraid.net</title><path d="M146.7,29.47H135l-3,9h-6.49L138.93,0h8l13.41,38.49h-7.09L142.62,6.93l-5.83,16.88h8ZM29.69,0V25.4c0,8.91-5.77,13.64-14.9,13.64S0,34.31,0,25.4V0H6.54V25.4c0,5.17,3.19,7.92,8.25,7.92s8.36-2.75,8.36-7.92V0ZM50.86,12v26.5H44.31V0h6.11l17,26.5V0H74V38.49H67.9ZM171.29,0h6.54V38.49h-6.54Zm51.07,24.69c0,9-5.88,13.8-15.17,13.8H192.67V0H207.3c9.18,0,15.06,4.78,15.06,13.8ZM215.82,13.8c0-5.28-3.3-8.14-8.52-8.14h-8.08V32.77h8c5.33,0,8.63-2.8,8.63-8.08ZM108.31,23.92c4.34-1.6,6.93-5.28,6.93-11.55C115.24,3.68,110.18,0,102.48,0H88.84V38.49h6.55V5.66h6.87c3.8,0,6.21,1.82,6.21,6.71s-2.41,6.76-6.21,6.76H98.88l9.21,19.36h7.53Z" fill="url(#header-logo)"/></svg>

After

Width:  |  Height:  |  Size: 1008 B

View File

@@ -1,37 +1,16 @@
version: '3.8'
x-volumes: &volumes
x-common: &common
volumes:
- ./dev:/app/dev
- ./src:/app/src
- ./patches:/app/patches
- ./package.json:/app/package.json
- ./package-lock.json:/app/package-lock.json
- ./tsconfig.json:/app/tsconfig.json
- ./tsup.config.ts:/app/tsup.config.ts
- ./vite.config.ts:/app/vite.config.ts
- ./dist/:/app/dist/
- ./deploy/:/app/deploy/
- ./README.md:/app/README.md
- ./scripts/:/app/scripts/
- ../.git/:/app/.git/
- ./.env.production:/app/.env.production
- ./.env.staging:/app/.env.staging
- ./.env.test:/app/.env.test
- ./.env.development:/app/.env.development
- ./.pkg-cache:/app/.pkg-cache
- ./codegen.yml:/app/codegen.yml
- ./fix-array-type.cjs:/app/fix-array-type.cjs
- /var/run/docker.sock:/var/run/docker.sock
- ./:/app
- pnpm-store:/pnpm/store
- ../libvirt:/libvirt
environment:
- IS_DOCKER=true
- GIT_SHA=${GIT_SHA:-unknown}
- IS_TAGGED=${IS_TAGGED:-false}
networks:
mothership_default:
services:
dev:
networks:
- mothership_default
image: unraid-api:development
ports:
- "3001:3001"
@@ -39,20 +18,14 @@ services:
context: .
target: development
dockerfile: Dockerfile
<<: *volumes
<<: *common
stdin_open: true
tty: true
entrypoint: /bin/bash
environment:
- IS_DOCKER=true
- GIT_SHA=${GIT_SHA:?err}
- IS_TAGGED=${IS_TAGGED}
profiles:
- builder
local:
networks:
- mothership_default
image: unraid-api:development
ports:
- "3001:3001"
@@ -60,24 +33,23 @@ services:
context: .
target: development
dockerfile: Dockerfile
<<: *volumes
<<: *common
command: npm run start:dev
environment:
- IS_DOCKER=true
- GIT_SHA=${GIT_SHA:?err}
- IS_TAGGED=${IS_TAGGED}
profiles:
- builder
builder:
image: unraid-api:builder
environment:
- GIT_SHA=${GIT_SHA:?err}
- IS_TAGGED=${IS_TAGGED}
build:
context: .
target: builder
dockerfile: Dockerfile
<<: *volumes
<<: *common
profiles:
- builder
- builder
volumes:
pnpm-store:
name: "pnpm-store"
pnpm-cache:
name: "pnpm-cache"

View File

@@ -0,0 +1,124 @@
# Working with API plugins
Under the hood, API plugins (i.e. plugins to the `@unraid/api` project) are represented
as npm `peerDependencies`. This is npm's intended package plugin mechanism, and given that
peer dependencies are installed by default as of npm v7, it supports bi-directional plugin functionality,
where the API provides dependencies for the plugin while the plugin provides functionality to the API.
## Private Workspace plugins
### Adding a local workspace package as an API plugin
The challenge with local workspace plugins is that they aren't available via npm during production.
To solve this, we vendor them during the build process. Here's the complete process:
#### 1. Configure the build system
Add your workspace package to the vendoring configuration in `api/scripts/build.ts`:
```typescript
const WORKSPACE_PACKAGES_TO_VENDOR = {
'@unraid/shared': 'packages/unraid-shared',
'unraid-api-plugin-connect': 'packages/unraid-api-plugin-connect',
'your-plugin-name': 'packages/your-plugin-path', // Add your plugin here
} as const;
```
#### 2. Configure Vite
Add your workspace package to the Vite configuration in `api/vite.config.ts`:
```typescript
const workspaceDependencies = {
'@unraid/shared': 'packages/unraid-shared',
'unraid-api-plugin-connect': 'packages/unraid-api-plugin-connect',
'your-plugin-name': 'packages/your-plugin-path', // Add your plugin here
};
```
This ensures the package is:
- Excluded from Vite's optimization during development
- Marked as external during the build process
- Properly handled in SSR mode
#### 3. Configure the API package.json
Add your workspace package as a peer dependency in `api/package.json`:
```json
{
"peerDependencies": {
"unraid-api-plugin-connect": "workspace:*",
"your-plugin-name": "workspace:*"
},
"peerDependenciesMeta": {
"unraid-api-plugin-connect": {
"optional": true
},
"your-plugin-name": {
"optional": true
}
}
}
```
By marking the workspace dependency "optional", npm will not attempt to install it during development.
The "workspace:*" identifier will be invalid during build-time and run-time, but won't cause problems
because the package gets vendored instead.
#### 4. Plugin package setup
Your workspace plugin package should:
1. **Export types and main entry**: Set up proper `main`, `types`, and `exports` fields:
```json
{
"name": "your-plugin-name",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"type": "module",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js"
}
},
"files": ["dist"]
}
```
2. **Use peer dependencies**: Declare shared dependencies as peer dependencies to avoid duplication:
```json
{
"peerDependencies": {
"@nestjs/common": "^11.0.11",
"@nestjs/core": "^11.0.11",
"graphql": "^16.9.0"
}
}
```
3. **Include build script**: Add a build script that compiles TypeScript:
```json
{
"scripts": {
"build": "tsc",
"prepare": "npm run build"
}
}
```
#### 5. Build process
During production builds:
1. The build script (`api/scripts/build.ts`) will automatically pack and install your workspace package as a tarball
2. This happens after `npm install --omit=dev` in the pack directory
3. The vendored package becomes a regular node_modules dependency in the final build
#### 6. Development vs Production
- **Development**: Vite resolves workspace packages directly from their source
- **Production**: Packages are vendored as tarballs in `node_modules`
This approach ensures that workspace plugins work seamlessly in both development and production environments.

View File

@@ -0,0 +1,116 @@
# Development
## Installation
Manual install of the staging and production plugins can be done with the following routes:
[production](https://stable.dl.unraid.net/unraid-api/dynamix.unraid.net.plg)
[staging](https://preview.dl.unraid.net/unraid-api/dynamix.unraid.net.staging.plg)
## Connecting to the API
### HTTP
This can be accessed by default via `http://tower.local/graphql`.
See <https://graphql.org/learn/serving-over-http/#http-methods-headers-and-body>
## Building in Docker
To get a development environment for testing start by running this docker command:
`npm run build:docker`
`npm run start:ddev`
which will give you an interactive shell inside of the newly build linux container.
To automatically build the plugin run the command below:
`npm run build:docker`
The builder command will build the plugin into deploy/release, and the interactive plugin lets you build the plugin or install node modules how you like.
## Logs
Logging can be configured via environment variables.
Log levels can be set when the api starts via `LOG_LEVEL=all/trace/debug/info/warn/error/fatal/mark/off`.
Additional detail for the log entry can be added with `LOG_CONTEXT=true` (warning, generates a lot of data).
By default, logs will be sent to syslog. Or you can set `LOG_TRANSPORT=file` to have logs saved in `/var/log/unraid-api/stdout.log`. Or enable debug mode to view logs inline.
Examples:
- `unraid-api start`
- `LOG_LEVEL=debug unraid-api start --debug`
- `LOG_LEVEL=trace LOG_CONTEXT=true LOG_TRANSPORT=file unraid-api start`
## Viewing data sent to mothership
If the environment variable `LOG_MOTHERSHIP_MESSAGES=true` exists, any data the unraid-api sends to mothership will be saved in clear text here: `/var/log/unraid-api/relay-messages.log`
Examples:
- `LOG_MOTHERSHIP_MESSAGES=true unraid-api start`
- `LOG_MOTHERSHIP_MESSAGES=true LOG_LEVEL=debug unraid-api start --debug`
## Debug Logging
To view debug logs, change the log level when starting the API. Then type unraid-api logs to trail the logs.
Examples:
- `LOG_LEVEL=debug unraid-api start`
- `unraid-api logs`
## Switching between staging and production environments
1. Stop the api: `unraid-api stop`
2. Switch environments: `unraid-api switch-env`
3. Start the api: `unraid-api start`
4. Confirm the environment: `unraid-api report`
## Playground
The playground can be access via `http://tower.local/graphql` while in debug mode.
To get your API key open a terminal on your server and run `cat /boot/config/plugins/dynamix.my.servers/myservers.cfg | grep apikey=\"unraid | cut -d '"' -f2`. Add that API key in the "HTTP headers" panel of the playground.
```json
{
"x-api-key": "__REPLACE_ME_WITH_API_KEY__"
}
```
Next add the query you want to run and hit the play icon.
```gql
query welcome {
welcome {
message
}
}
```
You should get something like this back.
```json
{
"data": {
"welcome": {
"message": "Welcome root to this Unraid 6.10.0 server"
}
}
}
```
Click the "Schema" and "Docs" button on the right side of the playground to learn more.
## Create a new release
To create a new version run `npm run release` and then run **ONLY** the `git push` section of the commands it returns.
To create a new prerelease run `npm run release -- --prerelease alpha`.
Pushing to this repo will cause an automatic "rolling" release to be built which can be accessed via the page for the associated Github action run.
## Using a custom version (e.g. testing a new release)
Find the Pull Request you'd like to install, and a link will be present as a comment to install a PR-specific version.

View File

@@ -0,0 +1,82 @@
# Repository Organization
This document describes the high-level architecture of the Unraid API repository.
## Overview
The repository consists of:
- API Server (NestJS)
- Redux Store
- Core Modules
- Tests
## API Server Architecture
The API server is built with NestJS and provides the core functionality for interacting with Unraid systems.
### Key Components
- `src/unraid-api/` - Core NestJS implementation
- `src/core/` - Legacy business logic and utilities
- `src/store/` - Redux store and state management
- `src/common/` - Shared utilities and types
## Redux Store
The store manages application state through several modules:
### Store Modules
- `config` - User settings, authentication, and API configuration
- `emhttp` - Unraid system and array state
- `registration` - License management
- `cache` - Application caching
- `docker` - Container management
- `upnp` - UPnP functionality
- `dynamix` - Plugin state
- `minigraph` - Mothership connectivity
- `notifications` - System notifications
### Store Listeners
Key listeners that handle side effects:
- Array state changes
- Configuration updates
- Remote access changes
- Server state updates
- UPnP changes
- WAN access changes
### Store Synchronization
The store syncs data in two ways:
- Flash Storage - Persistent configuration
- Memory Storage - Runtime state
## Project Structure
The repository is organized into several packages:
- `api/` - NestJS API server
- `plugin/` - Unraid plugin package
- `web/` - Frontend application
- `unraid-ui/` - Shared UI components
## Development Flow
New development should focus on the NestJS implementation in `src/unraid-api/`:
1. Create new features in `src/unraid-api/` using NestJS patterns
2. Use dependency injection and NestJS modules
3. Legacy code in `src/core/` should be gradually migrated
4. State management still uses Redux store when needed
## Best Practices
1. Follow NestJS architectural patterns
2. Use TypeScript decorators and strong typing
3. Implement proper dependency injection
4. Write unit tests for new services

View File

@@ -0,0 +1,219 @@
# Unraid API Development Workflows
This document outlines the various workflow styles available for developing, building, and deploying the Unraid API monorepo.
## Repository Structure
The Unraid API monorepo consists of several packages:
- `api`: The Unraid API backend
- `web`: The web frontend components
- `plugin`: The Unraid plugin
- `unraid-ui`: UI components library
## Development Workflows
### Local Development
To start all development servers in the monorepo:
```bash
pnpm dev
```
This command runs all development servers concurrently:
- API server: <http://localhost:3001>
- Web components: <http://localhost:4321>
- UI components: <http://localhost:5173>
### Package-Specific Development
If you want to work on a specific package, you can run its development server individually:
#### API Development
```bash
cd api
pnpm dev
```
#### Web Development
```bash
cd web
pnpm dev
```
#### UI Component Development
```bash
cd unraid-ui
pnpm dev
```
## Building Workflows
### Building All Packages
To build all packages in the monorepo:
```bash
pnpm build
```
### Watch Mode Building
For continuous building during development:
```bash
pnpm build:watch
```
This is useful when you want to see your changes reflected without manually rebuilding. This will also allow you to install a local plugin to test your changes.
### Package-Specific Building
#### API Building
```bash
cd api
pnpm build
```
#### Web Building
```bash
cd web
pnpm build
```
#### Development Build for Web
```bash
cd web
pnpm build:dev
```
## Deployment Workflows
### Deploying to Development Unraid Server
To deploy to a development Unraid server:
```bash
pnpm unraid:deploy <SERVER_IP>
```
This command builds and deploys all components to the specified Unraid server.
### Package-Specific Deployment
#### API Deployment
```bash
cd api
pnpm unraid:deploy <SERVER_IP>
```
#### Web Deployment
```bash
cd web
pnpm unraid:deploy <SERVER_IP>
```
#### Plugin Deployment
```bash
cd plugin
pnpm unraid:deploy <SERVER_IP>
```
## Testing
To run tests across all packages:
```bash
pnpm test
```
### Package-Specific Testing
```bash
cd <package-directory>
pnpm test
```
## Code Quality Workflows
### Linting
To lint all packages:
```bash
pnpm lint
```
To automatically fix linting issues:
```bash
pnpm lint:fix
```
### Type Checking
To run type checking across all packages:
```bash
pnpm type-check
```
## GraphQL Codegen Workflows
For packages that use GraphQL, you can generate types from your schema:
```bash
cd <package-directory>
pnpm codegen
```
To watch for changes and regenerate types:
```bash
cd <package-directory>
pnpm codegen:watch
```
## Docker Workflows
The API package supports Docker-based development:
```bash
cd api
pnpm container:build # Build the Docker container
pnpm container:start # Start the container
pnpm container:stop # Stop the container
pnpm container:enter # Enter the container shell
pnpm container:test # Run tests in the container
```
## CLI Commands
When working with a deployed Unraid API, you can use the CLI:
```bash
unraid-api --help
```
## Recommended Workflow for New Developers
1. Clone the repository: `git clone git@github.com:unraid/api.git`
2. Set up the monorepo: `just setup` or `pnpm install`
3. Start development servers: `pnpm dev`
4. Make your changes
5. Test your changes: `pnpm test`
6. Deploy to a development server: `pnpm unraid:deploy <SERVER_IP>`
7. Verify your changes on the Unraid server
If using nix, run `nix develop` from the root of the repo before Step 2.

View File

@@ -1,34 +0,0 @@
# How to enable introspection and view possible API endpoints for the Unraid API
1. Install the API on your machine
2. Stop the running api with `unraid-api stop`
3. Enable an allowed origin for Apollo Studio:
- Edit the file at `/boot/config/plugins/dynamix.my.servers/myservers.cfg
- Add the line `extraOrigins="studio.apollographql.com"` inside of the `[api]` block
```ini
[api]
...
extraOrigins="studio.apollographql.com"
[local]
...rest
```
- Also copy out the `[upc] -> apikey` setting, it should look something like `unupc_52e45431703b1e79cef709bfaf7ddc469bafc12e091b7c9bca0f6e96dc`
4. Enable introspection
```sh
INTROSPECTION=true LOG_LEVEL=trace LOG_TYPE=pretty unraid-api start --debug
```
- If you run this command and it says the Unraid API is already started, run `unraid-api stop` before trying it again.
5. Use introspection to your server with Apollo Sandbox:
- Navigate your *Chrome* browser to [Apollo Sandbox](https://studio.apollographql.com/sandbox/explorer/)
- Click the settings icon in the top right corner and set the URL to your servers URL + /graphql. For example a server URL might be: `https://192-168-1-3.277ace5dd0892eacd83f517b39fb3d1dd32078b5.myunraid.net:8443/graphql` or `http://tower.local/graphql`
- Also set the API key you copied earlier in the header section. Set the key as `x-api-key` and the value to the API key you copied in Step 2.
![Image of connection settings window with proper settings](./images/connection_settings.png)
6. Now that your server should be connected, you should see the schema populate. To perform queries, click the plus icon on the field on the left side to add them to a query and then click to run icon on the right.

View File

@@ -0,0 +1,4 @@
{
"label": "Unraid API",
"position": 4
}

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