Files
api/web/package.json
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

124 lines
4.2 KiB
JSON

{
"name": "@unraid/web",
"version": "4.3.1",
"private": true,
"license": "GPL-2.0-only",
"scripts": {
"// Development": "",
"predev": "pnpm --filter=@unraid/ui build",
"dev": "nuxt dev --dotenv .env.example",
"preview": "nuxt preview",
"serve": "NODE_ENV=production PORT=${PORT:-4321} node .output/server/index.mjs",
"// Build": "",
"prebuild:dev": "pnpm predev",
"build:dev": "nuxi build --dotenv .env.staging && pnpm run manifest-ts && pnpm run deploy-to-unraid:dev",
"build:webgui": "pnpm run type-check && nuxi build --dotenv .env.production && pnpm run manifest-ts && pnpm run copy-to-webgui-repo",
"build": "NODE_ENV=production nuxi build --dotenv .env.production && pnpm run manifest-ts",
"build:watch": "nuxi build --dotenv .env.production --watch && pnpm run manifest-ts",
"generate": "nuxt generate",
"manifest-ts": "node ./scripts/add-timestamp-webcomponent-manifest.js",
"// Deployment": "",
"unraid:deploy": "pnpm build:dev",
"deploy-to-unraid:dev": "./scripts/deploy-dev.sh",
"copy-to-webgui-repo": "./scripts/copy-to-webgui-repo.sh",
"// Code Quality": "",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"type-check": "nuxi typecheck",
"clean": "rm -rf .nuxt .output dist",
"// GraphQL Codegen": "",
"codegen": "graphql-codegen --config codegen.ts -r dotenv/config",
"codegen:watch": "graphql-codegen --config codegen.ts --watch -r dotenv/config",
"// Testing": "",
"test": "vitest",
"test:ci": "vitest run",
"// Nuxt": "",
"postinstall": "nuxt prepare"
},
"devDependencies": {
"@graphql-codegen/cli": "^5.0.3",
"@graphql-codegen/client-preset": "^4.5.1",
"@graphql-codegen/introspection": "^4.0.3",
"@graphql-typed-document-node/core": "^3.2.0",
"@ianvs/prettier-plugin-sort-imports": "^4.4.0",
"@nuxt/devtools": "^2.0.0",
"@nuxt/eslint": "^1.0.0",
"@nuxtjs/tailwindcss": "^6.12.2",
"@rollup/plugin-strip": "^3.0.4",
"@tailwindcss/typography": "^0.5.15",
"@types/crypto-js": "^4.2.2",
"@types/eslint-config-prettier": "^6.11.3",
"@types/node": "^22",
"@types/semver": "^7.5.8",
"@unraid/tailwind-rem-to-rem": "^1.1.0",
"@vue/apollo-util": "^4.0.0-beta.6",
"@vueuse/core": "^13.0.0",
"@vueuse/nuxt": "^13.0.0",
"eslint": "^9.21.0",
"eslint-config-prettier": "^10.0.0",
"lodash-es": "^4.17.21",
"nuxt": "^3.14.1592",
"nuxt-custom-elements": "2.0.0-beta.18",
"prettier": "3.5.3",
"prettier-plugin-tailwindcss": "^0.6.9",
"shadcn-nuxt": "^1.0.0",
"tailwindcss": "^3.0.0",
"tailwindcss-animate": "^1.0.7",
"terser": "^5.37.0",
"typescript": "^5.7.3",
"vite-plugin-remove-console": "^2.2.0",
"vitest": "^3.0.0",
"vue-tsc": "^2.1.10",
"vuetify-nuxt-module": "0.18.4"
},
"dependencies": {
"@apollo/client": "^3.12.3",
"@floating-ui/dom": "^1.6.12",
"@floating-ui/utils": "^0.2.8",
"@floating-ui/vue": "^1.1.5",
"@headlessui/vue": "^1.7.23",
"@heroicons/vue": "^2.2.0",
"@jsonforms/core": "^3.5.1",
"@jsonforms/vue": "^3.5.1",
"@jsonforms/vue-vanilla": "^3.5.1",
"@jsonforms/vue-vuetify": "^3.5.1",
"@nuxtjs/color-mode": "^3.5.2",
"@pinia/nuxt": "^0.10.0",
"@unraid/ui": "link:../unraid-ui",
"@vue/apollo-composable": "^4.2.1",
"@vueuse/components": "^13.0.0",
"@vueuse/integrations": "^13.0.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"crypto-js": "^4.2.0",
"dayjs": "^1.11.13",
"focus-trap": "^7.6.2",
"graphql": "^16.9.0",
"graphql-tag": "^2.12.6",
"graphql-ws": "^6.0.0",
"hex-to-rgba": "^2.0.1",
"highlight.js": "^11.11.1",
"isomorphic-dompurify": "^2.19.0",
"lucide-vue-next": "^0.483.0",
"marked": "^12.0.2",
"marked-base-url": "^1.1.6",
"pinia": "^3.0.1",
"radix-vue": "^1.9.13",
"semver": "^7.6.3",
"tailwind-merge": "^2.5.5",
"vue-i18n": "^11.0.0",
"vuetify": "^3.7.14",
"wretch": "^2.11.0"
},
"optionalDependencies": {
"@rollup/rollup-linux-x64-gnu": "^4.30.1"
},
"overrides": {
"vue": "latest",
"radix-vue": {
"@floating-ui/vue": "^1.1.5"
}
},
"packageManager": "pnpm@10.6.5"
}