This PR contains the following updates: | Package | Change | Age | Confidence | Type | Update | |---|---|---|---|---|---| | [@eslint/js](https://eslint.org) ([source](https://redirect.github.com/eslint/eslint/tree/HEAD/packages/js)) | [`9.34.0` -> `9.35.0`](https://renovatebot.com/diffs/npm/@eslint%2fjs/9.34.0/9.35.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@graphql-codegen/typescript-resolvers](https://redirect.github.com/dotansimha/graphql-code-generator) ([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/resolvers)) | [`4.5.1` -> `4.5.2`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-resolvers/4.5.1/4.5.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@ianvs/prettier-plugin-sort-imports](https://redirect.github.com/ianvs/prettier-plugin-sort-imports) | [`4.6.3` -> `4.7.0`](https://renovatebot.com/diffs/npm/@ianvs%2fprettier-plugin-sort-imports/4.6.3/4.7.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@manypkg/cli](https://redirect.github.com/Thinkmill/manypkg) ([source](https://redirect.github.com/Thinkmill/manypkg/tree/HEAD/packages/cli)) | [`0.25.0` -> `0.25.1`](https://renovatebot.com/diffs/npm/@manypkg%2fcli/0.25.0/0.25.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@nuxt/ui](https://ui.nuxt.com) ([source](https://redirect.github.com/nuxt/ui)) | [`4.0.0-alpha.0` -> `4.0.0-alpha.1`](https://renovatebot.com/diffs/npm/@nuxt%2fui/4.0.0-alpha.0/4.0.0-alpha.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@reduxjs/toolkit](https://redux-toolkit.js.org) ([source](https://redirect.github.com/reduxjs/redux-toolkit)) | [`2.8.2` -> `2.9.0`](https://renovatebot.com/diffs/npm/@reduxjs%2ftoolkit/2.8.2/2.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@rollup/rollup-linux-x64-gnu](https://rollupjs.org/) ([source](https://redirect.github.com/rollup/rollup)) | [`4.49.0` -> `4.50.1`](https://renovatebot.com/diffs/npm/@rollup%2frollup-linux-x64-gnu/4.49.0/4.50.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | optionalDependencies | minor | | [@storybook/addon-docs](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/docs) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/docs)) | [`9.1.3` -> `9.1.5`](https://renovatebot.com/diffs/npm/@storybook%2faddon-docs/9.1.3/9.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@storybook/addon-links](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/links) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/links)) | [`9.1.3` -> `9.1.5`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/9.1.3/9.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@storybook/builder-vite](https://redirect.github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/builders/builder-vite)) | [`9.1.3` -> `9.1.5`](https://renovatebot.com/diffs/npm/@storybook%2fbuilder-vite/9.1.3/9.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@storybook/vue3-vite](https://redirect.github.com/storybookjs/storybook/tree/next/code/frameworks/vue3-vite) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/frameworks/vue3-vite)) | [`9.1.3` -> `9.1.5`](https://renovatebot.com/diffs/npm/@storybook%2fvue3-vite/9.1.3/9.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@tailwindcss/cli](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-cli)) | [`4.1.12` -> `4.1.13`](https://renovatebot.com/diffs/npm/@tailwindcss%2fcli/4.1.12/4.1.13) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@tailwindcss/vite](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite)) | [`4.1.12` -> `4.1.13`](https://renovatebot.com/diffs/npm/@tailwindcss%2fvite/4.1.12/4.1.13) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`22.18.0` -> `22.18.1`](https://renovatebot.com/diffs/npm/@types%2fnode/22.18.0/22.18.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/semver](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/semver) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/semver)) | [`7.7.0` -> `7.7.1`](https://renovatebot.com/diffs/npm/@types%2fsemver/7.7.0/7.7.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)) | [`8.41.0` -> `8.43.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/8.41.0/8.43.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@vueuse/components](https://redirect.github.com/vueuse/vueuse/tree/main/packages/components#readme) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/components)) | [`13.8.0` -> `13.9.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcomponents/13.8.0/13.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@vueuse/core](https://redirect.github.com/vueuse/vueuse) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core)) | [`13.8.0` -> `13.9.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/13.8.0/13.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@vueuse/core](https://redirect.github.com/vueuse/vueuse) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/core)) | [`13.8.0` -> `13.9.0`](https://renovatebot.com/diffs/npm/@vueuse%2fcore/13.8.0/13.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@vueuse/integrations](https://redirect.github.com/vueuse/vueuse/tree/main/packages/integrations#readme) ([source](https://redirect.github.com/vueuse/vueuse/tree/HEAD/packages/integrations)) | [`13.8.0` -> `13.9.0`](https://renovatebot.com/diffs/npm/@vueuse%2fintegrations/13.8.0/13.9.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [chalk](https://redirect.github.com/chalk/chalk) | [`5.6.0` -> `5.6.2`](https://renovatebot.com/diffs/npm/chalk/5.6.0/5.6.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [dayjs](https://day.js.org) ([source](https://redirect.github.com/iamkun/dayjs)) | [`1.11.14` -> `1.11.18`](https://renovatebot.com/diffs/npm/dayjs/1.11.14/1.11.18) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [dockerode](https://redirect.github.com/apocas/dockerode) | [`4.0.7` -> `4.0.8`](https://renovatebot.com/diffs/npm/dockerode/4.0.7/4.0.8) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [dotenv](https://redirect.github.com/motdotla/dotenv) | [`17.2.1` -> `17.2.2`](https://renovatebot.com/diffs/npm/dotenv/17.2.1/17.2.2) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [eslint](https://eslint.org) ([source](https://redirect.github.com/eslint/eslint)) | [`9.34.0` -> `9.35.0`](https://renovatebot.com/diffs/npm/eslint/9.34.0/9.35.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [eslint-plugin-storybook](https://redirect.github.com/storybookjs/storybook/code/lib/eslint-plugin#readme) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/lib/eslint-plugin)) | [`9.1.3` -> `9.1.5`](https://renovatebot.com/diffs/npm/eslint-plugin-storybook/9.1.3/9.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [fast-check](https://fast-check.dev/) ([source](https://redirect.github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check)) | [`4.2.0` -> `4.3.0`](https://renovatebot.com/diffs/npm/fast-check/4.2.0/4.3.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [fastify](https://fastify.dev/) ([source](https://redirect.github.com/fastify/fastify)) | [`5.5.0` -> `5.6.0`](https://renovatebot.com/diffs/npm/fastify/5.5.0/5.6.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [got](https://redirect.github.com/sindresorhus/got) | [`14.4.7` -> `14.4.8`](https://renovatebot.com/diffs/npm/got/14.4.7/14.4.8) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | patch | | [got](https://redirect.github.com/sindresorhus/got) | [`14.4.7` -> `14.4.8`](https://renovatebot.com/diffs/npm/got/14.4.7/14.4.8) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [got](https://redirect.github.com/sindresorhus/got) | [`14.4.7` -> `14.4.8`](https://renovatebot.com/diffs/npm/got/14.4.7/14.4.8) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [jose](https://redirect.github.com/panva/jose) | [`6.0.13` -> `6.1.0`](https://renovatebot.com/diffs/npm/jose/6.0.13/6.1.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | minor | | [jose](https://redirect.github.com/panva/jose) | [`6.0.13` -> `6.1.0`](https://renovatebot.com/diffs/npm/jose/6.0.13/6.1.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [jose](https://redirect.github.com/panva/jose) | [`6.0.13` -> `6.1.0`](https://renovatebot.com/diffs/npm/jose/6.0.13/6.1.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [lint-staged](https://redirect.github.com/lint-staged/lint-staged) | [`16.1.5` -> `16.1.6`](https://renovatebot.com/diffs/npm/lint-staged/16.1.5/16.1.6) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [lucide-vue-next](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-vue-next)) | [`0.542.0` -> `0.543.0`](https://renovatebot.com/diffs/npm/lucide-vue-next/0.542.0/0.543.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [nest-commander](https://nest-commander.jaymcdoniel.dev) ([source](https://redirect.github.com/jmcdo29/nest-commander/tree/HEAD/pacakges/nest-commander)) | [`3.19.0` -> `3.19.1`](https://renovatebot.com/diffs/npm/nest-commander/3.19.0/3.19.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [node](https://nodejs.org) ([source](https://redirect.github.com/nodejs/node)) | `22.18.0` -> `22.19.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | minor | | [node](https://redirect.github.com/actions/node-versions) | `22.18.0` -> `22.19.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | uses-with | minor | | [node](https://redirect.github.com/nodejs/node) | `22.18.0-bookworm-slim` -> `22.19.0-bookworm-slim` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | final | minor | | [openid-client](https://redirect.github.com/panva/openid-client) | [`6.6.4` -> `6.7.1`](https://renovatebot.com/diffs/npm/openid-client/6.6.4/6.7.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [pino](https://getpino.io) ([source](https://redirect.github.com/pinojs/pino)) | [`9.9.0` -> `9.9.4`](https://renovatebot.com/diffs/npm/pino/9.9.0/9.9.4) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [pm2](http://pm2.keymetrics.io/) ([source](https://redirect.github.com/Unitech/pm2)) | [`6.0.8` -> `6.0.10`](https://renovatebot.com/diffs/npm/pm2/6.0.8/6.0.10) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`10.15.0` -> `10.15.1`](https://renovatebot.com/diffs/npm/pnpm/10.15.0/10.15.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | packageManager | patch | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | [`10.15.0` -> `10.15.1`](https://renovatebot.com/diffs/npm/pnpm/10.15.0/10.15.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | engines | patch | | [pnpm](https://pnpm.io) ([source](https://redirect.github.com/pnpm/pnpm/tree/HEAD/pnpm)) | `10.15.0` -> `10.15.1` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | uses-with | patch | | [rollup-plugin-node-externals](https://redirect.github.com/Septh/rollup-plugin-node-externals) | [`8.1.0` -> `8.1.1`](https://renovatebot.com/diffs/npm/rollup-plugin-node-externals/8.1.0/8.1.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [storybook](https://storybook.js.org) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/core)) | [`9.1.3` -> `9.1.5`](https://renovatebot.com/diffs/npm/storybook/9.1.3/9.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.1.12` -> `4.1.13`](https://renovatebot.com/diffs/npm/tailwindcss/4.1.12/4.1.13) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.1.12` -> `4.1.13`](https://renovatebot.com/diffs/npm/tailwindcss/4.1.12/4.1.13) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | patch | | [terser](https://terser.org) ([source](https://redirect.github.com/terser/terser)) | [`5.43.1` -> `5.44.0`](https://renovatebot.com/diffs/npm/terser/5.43.1/5.44.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [tw-animate-css](https://redirect.github.com/Wombosvideo/tw-animate-css) | [`1.3.7` -> `1.3.8`](https://renovatebot.com/diffs/npm/tw-animate-css/1.3.7/1.3.8) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [tw-animate-css](https://redirect.github.com/Wombosvideo/tw-animate-css) | [`1.3.7` -> `1.3.8`](https://renovatebot.com/diffs/npm/tw-animate-css/1.3.7/1.3.8) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)) | [`8.41.0` -> `8.43.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.41.0/8.43.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`7.1.3` -> `7.1.5`](https://renovatebot.com/diffs/npm/vite/7.1.3/7.1.5) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme) ([source](https://redirect.github.com/vuejs/core)) | [`3.5.20` -> `3.5.21`](https://renovatebot.com/diffs/npm/vue/3.5.20/3.5.21) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vue](https://redirect.github.com/vuejs/core/tree/main/packages/vue#readme) ([source](https://redirect.github.com/vuejs/core)) | [`3.5.20` -> `3.5.21`](https://renovatebot.com/diffs/npm/vue/3.5.20/3.5.21) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | peerDependencies | patch | | [vue-i18n](https://redirect.github.com/intlify/vue-i18n/tree/master/packages/vue-i18n#readme) ([source](https://redirect.github.com/intlify/vue-i18n/tree/HEAD/packages/vue-i18n)) | [`11.1.11` -> `11.1.12`](https://renovatebot.com/diffs/npm/vue-i18n/11.1.11/11.1.12) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [vuetify](https://vuetifyjs.com) ([source](https://redirect.github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify)) | [`3.9.6` -> `3.9.7`](https://renovatebot.com/diffs/npm/vuetify/3.9.6/3.9.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [wrangler](https://redirect.github.com/cloudflare/workers-sdk) ([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | [`4.33.0` -> `4.34.0`](https://renovatebot.com/diffs/npm/wrangler/4.33.0/4.34.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | --- ### Release Notes <details> <summary>eslint/eslint (@​eslint/js)</summary> ### [`v9.35.0`](https://redirect.github.com/eslint/eslint/compare/v9.34.0...af2a0870fdc646091d027516601888923e5bc202) [Compare Source](https://redirect.github.com/eslint/eslint/compare/v9.34.0...v9.35.0) </details> <details> <summary>dotansimha/graphql-code-generator (@​graphql-codegen/typescript-resolvers)</summary> ### [`v4.5.2`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/typescript/resolvers/CHANGELOG.md#452) [Compare Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/typescript-resolvers@4.5.1...@graphql-codegen/typescript-resolvers@4.5.2) ##### Patch Changes - [#​10419](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10419) [`2fc3869`](2fc3869de2) Thanks [@​chdanielmueller](https://redirect.github.com/chdanielmueller)! - Fix enum resolver for partially mapped enumValues </details> <details> <summary>ianvs/prettier-plugin-sort-imports (@​ianvs/prettier-plugin-sort-imports)</summary> ### [`v4.7.0`](https://redirect.github.com/IanVS/prettier-plugin-sort-imports/releases/tag/v4.7.0) [Compare Source](https://redirect.github.com/ianvs/prettier-plugin-sort-imports/compare/v4.6.3...v4.7.0) #### What's Changed This project began as a fork because I wanted a plugin that would not move side-effect imports around and mess with my CSS cascade. So its first and most distinguishing feature is that side-effect imports do not move, and other imports are not sorted across them. This works fine in most cases, but some people have side-effect imports that they know *can* be sorted safely. For those, there is now an "escape hatch" option named `importOrderSafeSideEffects`. It is an array of glob pattern strings (similar to `importOrder`) which, when they match against a side-effect import, allow that import to be sorted as if it were a standard import. Suggestions for safe use: - Use `^` at the start of your pattern and `$` at the end, to avoid accidentally matching part of an import name. For example, `"^server-only$"`, to avoid matching against `import "not-server-only"`. - Use extreme caution if matching against relative files or CSS files. If you decide to sort CSS imports and a file ever imports more than one CSS file, your cascade may change. - You can still use `// prettier-ignore` to stop sorting a particular import that would otherwise be sorted. Feedback on this feature is welcome. ##### Features - Add `importOrderSafeSideEffects` option by [@​IanVS](https://redirect.github.com/IanVS) in [IanVS#240](https://redirect.github.com/IanVS/prettier-plugin-sort-imports/pull/240) ##### Internal - Clean up options & remove explicit function types by [@​IanVS](https://redirect.github.com/IanVS) in [IanVS#239](https://redirect.github.com/IanVS/prettier-plugin-sort-imports/pull/239) **Full Changelog**: <https://github.com/IanVS/prettier-plugin-sort-imports/compare/v4.6.3...v4.7.0> </details> <details> <summary>Thinkmill/manypkg (@​manypkg/cli)</summary> ### [`v0.25.1`](https://redirect.github.com/Thinkmill/manypkg/blob/HEAD/packages/cli/CHANGELOG.md#0251) [Compare Source](https://redirect.github.com/Thinkmill/manypkg/compare/@manypkg/cli@0.25.0...@manypkg/cli@0.25.1) ##### Patch Changes - [#​260](https://redirect.github.com/Thinkmill/manypkg/pull/260) [`5854938`](585493847a) Thanks [@​jasekiw](https://redirect.github.com/jasekiw)! - Keep detected line endings flavor of `package.json` files on Windows when updating those files </details> <details> <summary>nuxt/ui (@​nuxt/ui)</summary> ### [`v4.0.0-alpha.1`](https://redirect.github.com/nuxt/ui/blob/HEAD/CHANGELOG.md#400-alpha1-2025-09-01) [Compare Source](https://redirect.github.com/nuxt/ui/compare/v4.0.0-alpha.0...v4.0.0-alpha.1) ##### ⚠ BREAKING CHANGES - **components:** rename `nullify` modifier to `nullable` and add `optional` ([#​4838](https://redirect.github.com/nuxt/ui/issues/4838)) - **module:** update compatibility to nuxt 4 - **PageAccordion:** remove in favor of `Accordion` ([#​4734](https://redirect.github.com/nuxt/ui/issues/4734)) - **Marquee:** rename from `PageMarquee` ([#​4741](https://redirect.github.com/nuxt/ui/issues/4741)) - **FieldGroup:** rename from `ButtonGroup` ([#​4596](https://redirect.github.com/nuxt/ui/issues/4596)) - **components:** upgrade `ai-sdk` to v5 ([#​4698](https://redirect.github.com/nuxt/ui/issues/4698)) ##### Features - **components:** rename `nullify` modifier to `nullable` and add `optional` ([#​4838](https://redirect.github.com/nuxt/ui/issues/4838)) ([83b0306](83b0306a30)) - **components:** upgrade `ai-sdk` to v5 ([#​4698](https://redirect.github.com/nuxt/ui/issues/4698)) ([de7822f](de7822f6a1)) - **FieldGroup:** rename from `ButtonGroup` ([#​4596](https://redirect.github.com/nuxt/ui/issues/4596)) ([a0963eb](a0963eba82)) - **Icon:** allow passing a component instead of a name ([#​4766](https://redirect.github.com/nuxt/ui/issues/4766)) ([61b603f](61b603fff4)) - import `@nuxt/ui-pro` components ([#​4675](https://redirect.github.com/nuxt/ui/issues/4675)) ([5cb65cf](5cb65cfbd0)) - **Marquee:** rename from `PageMarquee` ([#​4741](https://redirect.github.com/nuxt/ui/issues/4741)) ([b6edce2](b6edce2662)) - **module:** update compatibility to nuxt 4 ([2aca598](2aca598792)) - **PageAccordion:** remove in favor of `Accordion` ([#​4734](https://redirect.github.com/nuxt/ui/issues/4734)) ([f70a3ff](f70a3ff13f)) ##### Bug Fixes - **AuthForm:** use `error` from form field ([#​4738](https://redirect.github.com/nuxt/ui/issues/4738)) ([00dfb6b](00dfb6b586)) - **BlogPost:** ensure date slot renders ([#​4743](https://redirect.github.com/nuxt/ui/issues/4743)) ([4514880](4514880902)) - **ChangelogVersion/ChangelogVersions:** handle RTL mode ([#​4777](https://redirect.github.com/nuxt/ui/issues/4777)) ([f91c408](f91c4081e5)) - **ContentSearch/DashboardSearch:** make `ui.modal` work ([946c2ec](946c2ec887)) - **module:** add `[@source](https://redirect.github.com/source)` on components ([a16465f](a16465f3da)), closes [#​4773](https://redirect.github.com/nuxt/ui/issues/4773) - **PageCard:** improve keyboard accessibility ([#​4733](https://redirect.github.com/nuxt/ui/issues/4733)) ([3029568](3029568465)) - **ProseImg:** ensure unique motion layout id for images ([#​4720](https://redirect.github.com/nuxt/ui/issues/4720)) ([9480a0b](9480a0baa4)) - **unplugin:** handle components overrides in subdirectories ([#​4781](https://redirect.github.com/nuxt/ui/issues/4781)) ([69ee75e](69ee75e5b2)) </details> <details> <summary>reduxjs/redux-toolkit (@​reduxjs/toolkit)</summary> ### [`v2.9.0`](https://redirect.github.com/reduxjs/redux-toolkit/releases/tag/v2.9.0) [Compare Source](https://redirect.github.com/reduxjs/redux-toolkit/compare/v2.8.2...v2.9.0) This **feature release** rewrites RTK Query's internal subscription and polling systems and the `useStableQueryArgs` hook for better perf, adds automatic `AbortSignal` handling to requests still in progress when a cache entry is removed, fixes a bug with the `transformResponse` option for queries, adds a new `builder.addAsyncThunk` method, and fixes assorted other issues. #### Changelog ##### RTK Query Performance Improvements We had reports that [RTK Query could get very slow when there were thousands of subscriptions to the same cache entry](https://redirect.github.com/reduxjs/redux-toolkit/issues/5052). After investigation, we found that the internal polling logic was attempting to recalculate the minimum polling time after every new subscription was added. This was highly inefficient, as most subscriptions don't change polling settings, and it required repeated O(n) iteration over the growing list of subscriptions. We've rewritten that logic to debounce the update check and ensure a max of one polling value update per tick for the entire API instance. Related, while working on the request abort changes, testing showed that use of plain `Record`s to hold subscription data was inefficient because we have to iterate keys to check size. We've rewritten the subscription handling internals to use `Map`s instead, as well as restructuring some additional checks around in-flight requests. These two improvements drastically improved runtime perf for the thousands-of-subscriptions-one-cache-entry repro, eliminating RTK methods as visible hotspots in the perf profiles. It likely also improves perf for general usage as well. We've also changed the implementation of our internal `useStableQueryArgs` hook to avoid calling `serializeQueryArgs` on its value, which can avoid potential perf issues when a query takes a very large object as its cache key. > \[!NOTE] > The internal logic switched from serializing the query arg to doing reference checks on nested values. This means that if you are passing a non-POJO value in a query arg, such as `useSomeQuery({a: new Set()})`, *and* you have `refetchOnMountOrArgChange` enabled, this will now trigger refeteches each time as the `Set` references are now considered different based on equality instead of serialization. ##### Abort Signal Handling on Cleanup We've had numerous requests over time for various forms of "abort in-progress requests when the data is no longer needed / params change / component unmounts / some expensive request is taking too long". This is a complex topic with multiple potential use cases, and our standard answer has been that we *don't* want to abort those requests - after all, cache entries default to staying in memory for 1 minute after the last subscription is removed, so RTKQ's cache can still be updated when the request completes. That also means that it doesn't make sense to abort a request "on unmount". However, it does then make sense to abort an in-progress request if the cache entry itself is removed. Given that, we've updated our cache handling to automatically call the existing `resPromise.abort()` method in that case, triggering the `AbortSignal` attached to the `baseQuery`. The handling at that point depends on your app - `fetchBaseQuery` should handle that, a custom `baseQuery` or `queryFn` would need to listen to the `AbortSignal`. We do have [an open issue asking for further discussions of potential abort / cancelation use cases](https://redirect.github.com/reduxjs/redux-toolkit/issues/2444) and would appreciate further feedback. ##### New Options The builder callback used in `createReducer` and `createSlice.extraReducers` now has `builder.addAsyncThunk` available, which allows handling specific actions from a thunk in the same way that you could define a thunk inside `createSlice.reducers`: ```ts const slice = createSlice({ name: 'counter', initialState: { loading: false, errored: false, value: 0, }, reducers: {}, extraReducers: (builder) => builder.addAsyncThunk(asyncThunk, { pending(state) { state.loading = true }, fulfilled(state, action) { state.value = action.payload }, rejected(state) { state.errored = true }, settled(state) { state.loading = false }, }), }) ``` `createApi` and individual endpoint definitions now accept a `skipSchemaValidation` option with an array of schema types to skip, or `true` to skip validation entirely (in case you want to use a schema for its types, but the actual validation is expensive). ##### Bug Fixes The infinite query implementation accidentally changed the query internals to *always* run `transformResponse` if provided, including if you were using `upsertQueryData()`, which then broke. It's been fixed to only run on an actual query request. The internal changes to the structure of the `state.api.provided` structure broke our handling of `extractRehydrationInfo` - we've updated that to handle the changed structure. The infinite query status fields like `hasNextPage` are now a looser type of `boolean` initially, rather than strictly `false`. ##### TS Types We now export Immer's `WritableDraft` type to fix another non-portable types issue. We've added an `api.endpoints.myEndpoint.types.RawResultType` types-only field to match the other available fields. #### What's Changed - Add RawResultType as a type-only property on endpoints by [@​EskiMojo14](https://redirect.github.com/EskiMojo14) in [#​5037](https://redirect.github.com/reduxjs/redux-toolkit/pull/5037) - allow passing an array of specific schemas to skip by [@​EskiMojo14](https://redirect.github.com/EskiMojo14) in [#​5042](https://redirect.github.com/reduxjs/redux-toolkit/pull/5042) - fix(types): re-exporting WritableDraft from immer by [@​marinsokol5](https://redirect.github.com/marinsokol5) in [#​5015](https://redirect.github.com/reduxjs/redux-toolkit/pull/5015) - Remove Serialisation from useStableQueryArgs by [@​riqts](https://redirect.github.com/riqts) in [#​4996](https://redirect.github.com/reduxjs/redux-toolkit/pull/4996) - add addAsyncThunk method to reducer map builder by [@​EskiMojo14](https://redirect.github.com/EskiMojo14) in [#​5007](https://redirect.github.com/reduxjs/redux-toolkit/pull/5007) - Only run `transformResponse` when a `query` is used by [@​markerikson](https://redirect.github.com/markerikson) in [#​5049](https://redirect.github.com/reduxjs/redux-toolkit/pull/5049) - Assorted bugfixes for 2.8.3 by [@​markerikson](https://redirect.github.com/markerikson) in [#​5060](https://redirect.github.com/reduxjs/redux-toolkit/pull/5060) - Abort pending requests if the cache entry is removed by [@​markerikson](https://redirect.github.com/markerikson) in [#​5061](https://redirect.github.com/reduxjs/redux-toolkit/pull/5061) - Update TS CI config by [@​markerikson](https://redirect.github.com/markerikson) in [#​5065](https://redirect.github.com/reduxjs/redux-toolkit/pull/5065) - Rewrite subscription handling and polling calculations for better perf by [@​markerikson](https://redirect.github.com/markerikson) in [#​5064](https://redirect.github.com/reduxjs/redux-toolkit/pull/5064) **Full Changelog**: <https://github.com/reduxjs/redux-toolkit/compare/v2.8.2...v2.9.0> </details> <details> <summary>rollup/rollup (@​rollup/rollup-linux-x64-gnu)</summary> ### [`v4.50.1`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4501) [Compare Source](https://redirect.github.com/rollup/rollup/compare/v4.50.0...v4.50.1) *2025-09-07* ##### Bug Fixes - Resolve a situation where a destructuring default value was removed ([#​6090](https://redirect.github.com/rollup/rollup/issues/6090)) ##### Pull Requests - [#​6088](https://redirect.github.com/rollup/rollup/pull/6088): feat(www): shorter repl shareables ([@​cyyynthia](https://redirect.github.com/cyyynthia), [@​lukastaegert](https://redirect.github.com/lukastaegert)) - [#​6090](https://redirect.github.com/rollup/rollup/pull/6090): Call includeNode for self or children nodes in includeDestructuredIfNecessary ([@​TrickyPi](https://redirect.github.com/TrickyPi)) - [#​6091](https://redirect.github.com/rollup/rollup/pull/6091): fix(deps): update rust crate swc\_compiler\_base to v33 ([@​renovate](https://redirect.github.com/renovate)\[bot]) - [#​6092](https://redirect.github.com/rollup/rollup/pull/6092): chore(deps): lock file maintenance minor/patch updates ([@​renovate](https://redirect.github.com/renovate)\[bot]) - [#​6094](https://redirect.github.com/rollup/rollup/pull/6094): perf: replace startsWith with strict equality ([@​btea](https://redirect.github.com/btea)) ### [`v4.50.0`](https://redirect.github.com/rollup/rollup/blob/HEAD/CHANGELOG.md#4500) [Compare Source](https://redirect.github.com/rollup/rollup/compare/v4.49.0...v4.50.0) *2025-08-31* ##### Features - Support openharmony-arm64 platform ([#​6081](https://redirect.github.com/rollup/rollup/issues/6081)) ##### Bug Fixes - Fix loading of extensionless imports in config files ([#​6084](https://redirect.github.com/rollup/rollup/issues/6084)) ##### Pull Requests - [#​6081](https://redirect.github.com/rollup/rollup/pull/6081): Add support for openharmony-arm64 platform ([@​hqzing](https://redirect.github.com/hqzing), [@​lukastaegert](https://redirect.github.com/lukastaegert)) - [#​6084](https://redirect.github.com/rollup/rollup/pull/6084): Return null to defer to the default resolution behavior ([@​TrickyPi](https://redirect.github.com/TrickyPi)) </details> <details> <summary>storybookjs/storybook (@​storybook/addon-docs)</summary> ### [`v9.1.5`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#915) [Compare Source](https://redirect.github.com/storybookjs/storybook/compare/v9.1.4...v9.1.5) - CSF: Support `satisfies x as y` syntax - [#​32169](https://redirect.github.com/storybookjs/storybook/pull/32169), thanks [@​diagramatics](https://redirect.github.com/diagramatics)! - Vitest addon: Handle Playwright installation errors gracefully - [#​32329](https://redirect.github.com/storybookjs/storybook/pull/32329), thanks [@​ndelangen](https://redirect.github.com/ndelangen)! ### [`v9.1.4`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#914) [Compare Source](https://redirect.github.com/storybookjs/storybook/compare/v9.1.3...v9.1.4) - Angular: Properly merge builder options and browserTarget options - [#​32272](https://redirect.github.com/storybookjs/storybook/pull/32272), thanks [@​kroeder](https://redirect.github.com/kroeder)! - Core: Optimize bundlesize, by reusing internal/babel in mocking-utils - [#​32350](https://redirect.github.com/storybookjs/storybook/pull/32350), thanks [@​ndelangen](https://redirect.github.com/ndelangen)! - Svelte & Vue: Add framework-specific `docgen` option to disable docgen processing - [#​32319](https://redirect.github.com/storybookjs/storybook/pull/32319), thanks [@​copilot-swe-agent](https://redirect.github.com/copilot-swe-agent)! - Svelte: Support `@sveltejs/vite-plugin-svelte` v6 - [#​32320](https://redirect.github.com/storybookjs/storybook/pull/32320), thanks [@​JReinhold](https://redirect.github.com/JReinhold)! </details> <details> <summary>tailwindlabs/tailwindcss (@​tailwindcss/cli)</summary> ### [`v4.1.13`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4113---2025-09-03) [Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.1.12...v4.1.13) ##### Changed - Drop warning from browser build ([#​18731](https://redirect.github.com/tailwindlabs/tailwindcss/issues/18731)) - Drop exact duplicate declarations when emitting CSS ([#​18809](https://redirect.github.com/tailwindlabs/tailwindcss/issues/18809)) ##### Fixed - Don't transition `visibility` when using `transition` ([#​18795](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18795)) - Discard matched variants with unknown named values ([#​18799](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18799)) - Discard matched variants with non-string values ([#​18799](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18799)) - Show suggestions for known `matchVariant` values ([#​18798](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18798)) - Replace deprecated `clip` with `clip-path` in `sr-only` ([#​18769](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18769)) - Hide internal fields from completions in `matchUtilities` ([#​18820](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18820)) - Ignore `.vercel` folders by default (can be overridden by `@source …` rules) ([#​18855](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18855)) - Consider variants starting with `@-` to be invalid (e.g. `@-2xl:flex`) ([#​18869](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18869)) - Do not allow custom variants to start or end with a `-` or `_` ([#​18867](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18867), [#​18872](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18872)) - Upgrade: Migrate `aria` theme keys to `@custom-variant` ([#​18815](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18815)) - Upgrade: Migrate `data` theme keys to `@custom-variant` ([#​18816](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18816)) - Upgrade: Migrate `supports` theme keys to `@custom-variant` ([#​18817](https://redirect.github.com/tailwindlabs/tailwindcss/pull/18817)) </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v8.43.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#8430-2025-09-08) [Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.42.0...v8.43.0) ##### 🚀 Features - **typescript-estree:** disallow empty type parameter/argument lists ([#​11563](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11563)) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-return-this-type] don't report an error when returning a union type that includes a classType ([#​11432](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11432)) - **eslint-plugin:** \[no-deprecated] should report deprecated exports and reexports ([#​11359](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11359)) - **eslint-plugin:** \[no-floating-promises] allowForKnownSafeCalls now supports function names ([#​11423](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11423), [#​11430](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11430)) - **eslint-plugin:** \[consistent-type-exports] fix declaration shadowing ([#​11457](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11457)) - **eslint-plugin:** \[no-unnecessary-type-conversion] only report \~\~ on integer literal types ([#​11517](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11517)) - **scope-manager:** exclude Program from DefinitionBase node types ([#​11469](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11469)) - **eslint-plugin:** \[no-non-null-assertion] do not suggest optional chain on LHS of assignment ([#​11489](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11489)) - **type-utils:** add union type support to TypeOrValueSpecifier ([#​11526](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/11526)) ##### ❤️ Thank You - Dima [@​dbarabashh](https://redirect.github.com/dbarabashh) - Kirk Waiblinger [@​kirkwaiblinger](https://redirect.github.com/kirkwaiblinger) - mdm317 - tao - Victor Genaev [@​mainframev](https://redirect.github.com/mainframev) - Yukihiro Hasegawa [@​y-hsgw](https://redirect.github.com/y-hsgw) - 민감자(Minji Kim) [@​mouse0429](https://redirect.github.com/mouse0429) - 송재욱 You can read about our [versioning strategy](https://typescript-eslint.io/users/versioning) and [releases](https://typescript-eslint.io/users/releases) on our website. ### [`v8.42.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plug </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/unraid/api). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi43IiwidXBkYXRlZEluVmVyIjoiNDEuOTcuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Unraid API
Monorepo for the Unraid API and Unraid Connect.
Explore the docs »
·
Report Bug
·
Request Feature
·
Submit Work Intent
🔌 Plugin Downloads
Production: https://stable.dl.unraid.net/unraid-api/dynamix.unraid.net.plg
Staging: https://preview.dl.unraid.net/unraid-api/dynamix.unraid.net.plg
Table of Contents
About The Project
Built With
Getting Started
This section will guide you through the steps necessary to get the monorepo projects running and communicating with each other.
Prerequisites
Make sure the following software is installed before proceeding.
- Bash
- Docker (for macOS folks, Orbstack works too)
- Node.js (v22)
- Just (optional)
- libvirt (macOS folks can run
brew install libvirt) - rclone (for development)
- An Unraid server for development
Alternative: Using Nix Flake
If you have Nix installed, you can use the provided flake to automatically set up all development dependencies:
nix develop
This will provide all the required tools (Node.js, Docker, Just, libvirt, rclone, etc.) without needing to install them manually.
SSH Key Setup
Next, create an SSH key if you haven't already. Once you have your key pair, add your public SSH key to your Unraid server:
- Log in to your Unraid development server.
- Use the navigation menu to go to 'Users'.
- Click on the user you logged in with (e.g.
root) - Paste your SSH public key into 'SSH authorized keys' and click 'Save'.
Installation
-
Clone and enter the repo
git clone git@github.com:unraid/api.git cd apiIf using Nix, enter the development environment:
nix develop -
Run the monorepo setup command.
pnpm install -
Run the build watcher to build the components and serve a local plugin file that can be installed on your Unraid server.
pnpm build:watchNavigate to Plugins->Install and install the local plugin file that is output to the console.
Tip
View other workflows (local dev, etc.) in the Developer Workflows
Usage
See How to Use the API.
For more examples, please refer to the Documentation
Contributing
For a complete guide on contributing to the project, including our code of conduct and development process, please see our Contributing Guide. Please read this before contributing.
Developer Documentation
For more information about development workflows, repository organization, and other technical details, please refer to the developer documentation inside this repository:
- Development Guide - Setup, building, and debugging instructions
- Development Workflows - Detailed workflows for local development, building, and deployment
- Repository Organization - High-level architecture and project structure
Work Intent Process
Before starting development work on this project, you must submit a Work Intent and have it approved by a core developer. This helps prevent duplicate work and ensures changes align with the project's goals.
-
Create a Work Intent
- Go to Issues → New Issue → Work Intent
- Fill out the brief template describing what you want to work on
- The issue will be automatically labeled as
work-intentandunapproved
-
Wait for Approval
- A core developer will review your Work Intent
- They may ask questions or suggest changes
- Once approved, the
unapprovedlabel will be removed
-
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
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Top contributors
Community
Contact
@UnraidOfficial - contact@unraid.net
Project Link: https://github.com/unraid/api