Compare commits

...

4 Commits

Author SHA1 Message Date
Eli Bosley
4c964ec2d0 fix(deps): downgrade @nestjs/apollo and @nestjs/graphql to 13.1.0
- Updated the versions of @nestjs/apollo and @nestjs/graphql from 13.2.3 to 13.1.0 in multiple package.json files to ensure compatibility across the project.
- Adjusted pnpm-lock.yaml to reflect these version changes, maintaining consistency in dependency management.
2025-12-26 23:59:07 -05:00
Eli Bosley
55176d9b8c fix(deps): downgrade cron package to 4.3.5
- Updated the cron package version from 4.4.0 to 4.3.5 in both `pnpm-lock.yaml` and `package.json` to address compatibility issues.
- Removed deprecated entries for several packages in `pnpm-lock.yaml` to streamline dependencies.
- Updated auto-imports in `auto-imports.d.ts` to reflect the new version of the @nuxt/ui package, ensuring compatibility with the latest features.
2025-12-26 21:49:29 -05:00
Eli Bosley
1e1cf3bd07 refactor: clean up import statements for consistency
- Updated import statements in multiple files to use a consistent formatting style, improving readability and maintainability.
- Adjusted imports in `sandbox-plugin.ts`, `docker-config.service.spec.ts`, `oidc.service.test.ts`, and `organizer.validation.test.ts` to align with the new style.
2025-12-23 15:50:03 -05:00
renovate[bot]
e31a4c00da fix(deps): update all non-major dependencies 2025-12-23 17:38:43 +00:00
23 changed files with 6554 additions and 4746 deletions

View File

@@ -55,7 +55,7 @@ jobs:
cache: 'pnpm'
- name: Cache APT Packages
uses: awalsh128/cache-apt-pkgs-action@v1.5.3
uses: awalsh128/cache-apt-pkgs-action@v1.6.0
with:
packages: bash procps python3 libvirt-dev jq zstd git build-essential
version: 1.0
@@ -128,7 +128,7 @@ jobs:
cache: 'pnpm'
- name: Cache APT Packages
uses: awalsh128/cache-apt-pkgs-action@v1.5.3
uses: awalsh128/cache-apt-pkgs-action@v1.6.0
with:
packages: bash procps python3 libvirt-dev jq zstd git build-essential
version: 1.0

View File

@@ -34,7 +34,7 @@ jobs:
cache: 'pnpm'
- name: Cache APT Packages
uses: awalsh128/cache-apt-pkgs-action@v1.5.3
uses: awalsh128/cache-apt-pkgs-action@v1.6.0
with:
packages: bash procps python3 libvirt-dev jq zstd git build-essential libvirt-daemon-system
version: 1.0

View File

@@ -39,7 +39,7 @@ jobs:
cache: 'pnpm'
- name: Cache APT Packages
uses: awalsh128/cache-apt-pkgs-action@v1.5.3
uses: awalsh128/cache-apt-pkgs-action@v1.6.0
with:
packages: bash procps python3 libvirt-dev jq zstd git build-essential libvirt-daemon-system php-cli
version: 1.0

View File

@@ -30,7 +30,7 @@ jobs:
prerelease: false
- uses: actions/setup-node@v6
with:
node-version: 22.19.0
node-version: 22.21.1
- run: |
cat << 'EOF' > release-notes.txt
${{ steps.release-info.outputs.body }}

2
.nvmrc
View File

@@ -1 +1 @@
22.18.0
22.21.1

View File

@@ -1,7 +1,7 @@
###########################################################
# Development/Build Image
###########################################################
FROM node:22.18.0-bookworm-slim AS development
FROM node:22.21.1-bookworm-slim AS development
# Install build tools and dependencies
RUN apt-get update -y && apt-get install -y \

View File

@@ -10,7 +10,7 @@
"author": "Lime Technology, Inc. <unraid.net>",
"license": "GPL-2.0-or-later",
"engines": {
"pnpm": "10.15.0"
"pnpm": "10.26.2"
},
"scripts": {
"// Development": "",
@@ -57,94 +57,94 @@
"@apollo/server": "4.12.2",
"@as-integrations/fastify": "2.1.1",
"@fastify/cookie": "11.0.2",
"@fastify/helmet": "13.0.1",
"@graphql-codegen/client-preset": "5.0.0",
"@fastify/helmet": "13.0.2",
"@graphql-codegen/client-preset": "5.2.2",
"@graphql-tools/load-files": "7.0.1",
"@graphql-tools/merge": "9.1.1",
"@graphql-tools/schema": "10.0.25",
"@graphql-tools/utils": "10.9.1",
"@jsonforms/core": "3.6.0",
"@graphql-tools/merge": "9.1.6",
"@graphql-tools/schema": "10.0.30",
"@graphql-tools/utils": "10.11.0",
"@jsonforms/core": "3.7.0",
"@nestjs/apollo": "13.1.0",
"@nestjs/cache-manager": "3.0.1",
"@nestjs/common": "11.1.6",
"@nestjs/cache-manager": "3.1.0",
"@nestjs/common": "11.1.10",
"@nestjs/config": "4.0.2",
"@nestjs/core": "11.1.6",
"@nestjs/core": "11.1.10",
"@nestjs/event-emitter": "3.0.1",
"@nestjs/graphql": "13.1.0",
"@nestjs/passport": "11.0.5",
"@nestjs/platform-fastify": "11.1.6",
"@nestjs/schedule": "6.0.0",
"@nestjs/throttler": "6.4.0",
"@reduxjs/toolkit": "2.8.2",
"@nestjs/platform-fastify": "11.1.10",
"@nestjs/schedule": "6.1.0",
"@nestjs/throttler": "6.5.0",
"@reduxjs/toolkit": "2.11.2",
"@runonflux/nat-upnp": "1.0.2",
"@types/diff": "8.0.0",
"@unraid/libvirt": "2.1.0",
"@unraid/shared": "workspace:*",
"accesscontrol": "2.2.1",
"atomically": "2.0.3",
"atomically": "2.1.0",
"bycontract": "2.0.11",
"bytes": "3.1.2",
"cache-manager": "7.2.0",
"cache-manager": "7.2.7",
"cacheable-lookup": "7.0.0",
"camelcase-keys": "10.0.0",
"casbin": "5.38.0",
"camelcase-keys": "10.0.1",
"casbin": "5.45.1",
"change-case": "5.4.4",
"chokidar": "4.0.3",
"class-transformer": "0.5.1",
"class-validator": "0.14.2",
"class-validator": "0.14.3",
"cli-table": "0.3.11",
"command-exists": "1.2.9",
"convert": "5.12.0",
"cookie": "1.0.2",
"cron": "4.3.0",
"convert": "5.14.1",
"cookie": "1.1.1",
"cron": "4.3.5",
"cross-fetch": "4.1.0",
"diff": "8.0.2",
"dockerode": "4.0.7",
"dotenv": "17.2.1",
"dockerode": "4.0.9",
"dotenv": "17.2.3",
"escape-html": "1.0.3",
"execa": "9.6.0",
"execa": "9.6.1",
"exit-hook": "4.0.0",
"fast-xml-parser": "^5.3.0",
"fastify": "5.5.0",
"filenamify": "7.0.0",
"fs-extra": "11.3.1",
"glob": "11.0.3",
"fastify": "5.6.2",
"filenamify": "7.0.1",
"fs-extra": "11.3.3",
"glob": "11.1.0",
"global-agent": "3.0.0",
"got": "14.4.7",
"graphql": "16.11.0",
"got": "14.6.5",
"graphql": "16.12.0",
"graphql-fields": "2.0.3",
"graphql-scalars": "1.24.2",
"graphql-scalars": "1.25.0",
"graphql-subscriptions": "3.0.0",
"graphql-tag": "2.12.6",
"graphql-ws": "6.0.6",
"html-entities": "^2.6.0",
"ini": "5.0.0",
"ip": "2.0.1",
"jose": "6.0.13",
"json-bigint-patch": "0.0.8",
"lodash-es": "4.17.21",
"jose": "6.1.3",
"json-bigint-patch": "0.0.9",
"lodash-es": "4.17.22",
"multi-ini": "2.3.2",
"mustache": "4.2.0",
"nest-authz": "2.17.0",
"nest-commander": "3.19.0",
"nestjs-pino": "4.4.0",
"nest-commander": "3.20.1",
"nestjs-pino": "4.5.0",
"node-cache": "5.1.2",
"node-window-polyfill": "1.0.4",
"openid-client": "6.6.4",
"p-retry": "7.0.0",
"openid-client": "6.8.1",
"p-retry": "7.1.1",
"passport-custom": "1.1.1",
"passport-http-header-strategy": "1.1.0",
"path-type": "6.0.0",
"pino": "9.9.0",
"pino": "9.14.0",
"pino-http": "10.5.0",
"pino-pretty": "13.1.1",
"pm2": "6.0.8",
"pino-pretty": "13.1.3",
"pm2": "6.0.14",
"reflect-metadata": "^0.1.14",
"rxjs": "7.8.2",
"semver": "7.7.2",
"semver": "7.7.3",
"strftime": "0.10.3",
"systeminformation": "5.27.8",
"undici": "7.15.0",
"systeminformation": "5.27.16",
"undici": "7.16.0",
"uuid": "13.0.0",
"ws": "8.18.3",
"zen-observable-ts": "1.1.0",
@@ -159,37 +159,37 @@
}
},
"devDependencies": {
"@eslint/js": "9.34.0",
"@eslint/js": "9.39.2",
"@graphql-codegen/add": "6.0.0",
"@graphql-codegen/cli": "6.0.0",
"@graphql-codegen/cli": "6.1.0",
"@graphql-codegen/fragment-matcher": "6.0.0",
"@graphql-codegen/import-types-preset": "3.0.1",
"@graphql-codegen/typed-document-node": "6.0.0",
"@graphql-codegen/typescript": "5.0.0",
"@graphql-codegen/typescript-operations": "5.0.0",
"@graphql-codegen/typescript-resolvers": "5.0.0",
"@graphql-codegen/typed-document-node": "6.1.5",
"@graphql-codegen/typescript": "5.0.7",
"@graphql-codegen/typescript-operations": "5.0.7",
"@graphql-codegen/typescript-resolvers": "5.1.5",
"@graphql-typed-document-node/core": "3.2.0",
"@ianvs/prettier-plugin-sort-imports": "4.6.3",
"@nestjs/testing": "11.1.6",
"@ianvs/prettier-plugin-sort-imports": "4.7.0",
"@nestjs/testing": "11.1.10",
"@originjs/vite-plugin-commonjs": "1.0.3",
"@rollup/plugin-node-resolve": "16.0.1",
"@swc/core": "1.13.5",
"@rollup/plugin-node-resolve": "16.0.3",
"@swc/core": "1.15.7",
"@types/async-exit-hook": "2.0.2",
"@types/bytes": "3.1.5",
"@types/cli-table": "0.3.4",
"@types/command-exists": "1.2.3",
"@types/cors": "2.8.19",
"@types/dockerode": "3.3.43",
"@types/dockerode": "3.3.47",
"@types/graphql-fields": "1.3.9",
"@types/graphql-type-uuid": "0.2.6",
"@types/ini": "4.1.1",
"@types/ip": "1.1.3",
"@types/lodash": "4.17.20",
"@types/lodash": "4.17.21",
"@types/lodash-es": "4.17.12",
"@types/mustache": "4.2.6",
"@types/node": "22.18.0",
"@types/node": "22.19.3",
"@types/pify": "6.1.0",
"@types/semver": "7.7.0",
"@types/semver": "7.7.1",
"@types/sendmail": "1.4.7",
"@types/stoppable": "1.1.3",
"@types/strftime": "0.9.8",
@@ -199,29 +199,29 @@
"@types/wtfnode": "0.10.0",
"@vitest/coverage-v8": "3.2.4",
"@vitest/ui": "3.2.4",
"eslint": "9.34.0",
"eslint": "9.39.2",
"eslint-plugin-import": "2.32.0",
"eslint-plugin-no-relative-import-paths": "1.6.1",
"eslint-plugin-prettier": "5.5.4",
"jiti": "2.5.1",
"nodemon": "3.1.10",
"prettier": "3.6.2",
"rollup-plugin-node-externals": "8.1.0",
"jiti": "2.6.1",
"nodemon": "3.1.11",
"prettier": "3.7.4",
"rollup-plugin-node-externals": "8.1.2",
"supertest": "7.1.4",
"tsx": "4.20.5",
"type-fest": "5.0.0",
"typescript": "5.9.2",
"typescript-eslint": "8.41.0",
"unplugin-swc": "1.5.7",
"vite": "7.1.3",
"tsx": "4.21.0",
"type-fest": "5.3.1",
"typescript": "5.9.3",
"typescript-eslint": "8.50.1",
"unplugin-swc": "1.5.9",
"vite": "7.3.0",
"vite-plugin-node": "7.0.0",
"vite-tsconfig-paths": "5.1.4",
"vitest": "3.2.4",
"zx": "8.8.1"
"zx": "8.8.5"
},
"overrides": {
"eslint": {
"jiti": "2.5.1"
"jiti": "2.6.1"
},
"@as-integrations/fastify": {
"fastify": "$fastify"
@@ -232,5 +232,5 @@
}
},
"private": true,
"packageManager": "pnpm@10.15.0"
"packageManager": "pnpm@10.26.2"
}

View File

@@ -41,9 +41,8 @@ describe('DockerConfigService - validate', () => {
const inputConfig = { updateCheckCronSchedule: '0 6 * * *' };
const validatedConfig = { updateCheckCronSchedule: '0 6 * * *' };
const { validateObject } = await import(
'@app/unraid-api/graph/resolvers/validation.utils.js'
);
const { validateObject } =
await import('@app/unraid-api/graph/resolvers/validation.utils.js');
const { validateCronExpression } = await import('cron');
vi.mocked(validateObject).mockResolvedValue(validatedConfig);
@@ -60,9 +59,8 @@ describe('DockerConfigService - validate', () => {
const inputConfig = { updateCheckCronSchedule: CronExpression.EVERY_DAY_AT_6AM };
const validatedConfig = { updateCheckCronSchedule: CronExpression.EVERY_DAY_AT_6AM };
const { validateObject } = await import(
'@app/unraid-api/graph/resolvers/validation.utils.js'
);
const { validateObject } =
await import('@app/unraid-api/graph/resolvers/validation.utils.js');
const { validateCronExpression } = await import('cron');
vi.mocked(validateObject).mockResolvedValue(validatedConfig);
@@ -79,9 +77,8 @@ describe('DockerConfigService - validate', () => {
const inputConfig = { updateCheckCronSchedule: 'invalid-cron' };
const validatedConfig = { updateCheckCronSchedule: 'invalid-cron' };
const { validateObject } = await import(
'@app/unraid-api/graph/resolvers/validation.utils.js'
);
const { validateObject } =
await import('@app/unraid-api/graph/resolvers/validation.utils.js');
const { validateCronExpression } = await import('cron');
vi.mocked(validateObject).mockResolvedValue(validatedConfig);
@@ -99,9 +96,8 @@ describe('DockerConfigService - validate', () => {
const inputConfig = { updateCheckCronSchedule: '' };
const validatedConfig = { updateCheckCronSchedule: '' };
const { validateObject } = await import(
'@app/unraid-api/graph/resolvers/validation.utils.js'
);
const { validateObject } =
await import('@app/unraid-api/graph/resolvers/validation.utils.js');
const { validateCronExpression } = await import('cron');
vi.mocked(validateObject).mockResolvedValue(validatedConfig);
@@ -119,9 +115,8 @@ describe('DockerConfigService - validate', () => {
const inputConfig = { updateCheckCronSchedule: '* * * *' };
const validatedConfig = { updateCheckCronSchedule: '* * * *' };
const { validateObject } = await import(
'@app/unraid-api/graph/resolvers/validation.utils.js'
);
const { validateObject } =
await import('@app/unraid-api/graph/resolvers/validation.utils.js');
const { validateCronExpression } = await import('cron');
vi.mocked(validateObject).mockResolvedValue(validatedConfig);
@@ -140,9 +135,8 @@ describe('DockerConfigService - validate', () => {
const validationError = new ValidationError();
validationError.property = 'updateCheckCronSchedule';
const { validateObject } = await import(
'@app/unraid-api/graph/resolvers/validation.utils.js'
);
const { validateObject } =
await import('@app/unraid-api/graph/resolvers/validation.utils.js');
vi.mocked(validateObject).mockRejectedValue(validationError);
@@ -155,9 +149,8 @@ describe('DockerConfigService - validate', () => {
const inputConfig = { updateCheckCronSchedule: '0 0,12 * * 1-5' };
const validatedConfig = { updateCheckCronSchedule: '0 0,12 * * 1-5' };
const { validateObject } = await import(
'@app/unraid-api/graph/resolvers/validation.utils.js'
);
const { validateObject } =
await import('@app/unraid-api/graph/resolvers/validation.utils.js');
const { validateCronExpression } = await import('cron');
vi.mocked(validateObject).mockResolvedValue(validatedConfig);
@@ -177,9 +170,8 @@ describe('DockerConfigService - validate', () => {
};
const validatedConfig = { updateCheckCronSchedule: '0 6 * * *' };
const { validateObject } = await import(
'@app/unraid-api/graph/resolvers/validation.utils.js'
);
const { validateObject } =
await import('@app/unraid-api/graph/resolvers/validation.utils.js');
const { validateCronExpression } = await import('cron');
vi.mocked(validateObject).mockResolvedValue(validatedConfig);

View File

@@ -235,9 +235,8 @@ describe('OidcService Integration', () => {
claimsService.validateClaims.mockReturnValue('user123');
// Mock the OidcStateExtractor's static method
const OidcStateExtractor = await import(
'@app/unraid-api/graph/resolvers/sso/session/oidc-state-extractor.util.js'
);
const OidcStateExtractor =
await import('@app/unraid-api/graph/resolvers/sso/session/oidc-state-extractor.util.js');
vi.spyOn(OidcStateExtractor.OidcStateExtractor, 'extractAndValidateState').mockResolvedValue(
{
providerId: 'test-provider',
@@ -317,9 +316,8 @@ describe('OidcService Integration', () => {
);
// Mock the OidcStateExtractor's static method
const OidcStateExtractor = await import(
'@app/unraid-api/graph/resolvers/sso/session/oidc-state-extractor.util.js'
);
const OidcStateExtractor =
await import('@app/unraid-api/graph/resolvers/sso/session/oidc-state-extractor.util.js');
vi.spyOn(OidcStateExtractor.OidcStateExtractor, 'extractAndValidateState').mockResolvedValue(
{
providerId: 'test-provider',

View File

@@ -29,9 +29,8 @@ const preconditionFailed = (preconditionName: string) => {
};
export const getSandboxPlugin = async (csrfToken: string) => {
const { ApolloServerPluginLandingPageLocalDefault } = await import(
'@apollo/server/plugin/landingPage/default'
);
const { ApolloServerPluginLandingPageLocalDefault } =
await import('@apollo/server/plugin/landingPage/default');
const plugin = ApolloServerPluginLandingPageLocalDefault({
footer: false,
includeCookies: true,

View File

@@ -600,9 +600,8 @@ describe('organizer.validation', () => {
};
// Import the validateObject function to test the actual transformation
const { validateObject } = await import(
'@app/unraid-api/graph/resolvers/validation.utils.js'
);
const { validateObject } =
await import('@app/unraid-api/graph/resolvers/validation.utils.js');
const validated = await validateObject(OrganizerV1, plainConfig);

View File

@@ -198,9 +198,9 @@ export class ErrorExtractor {
static isOAuthResponseError(extracted: ExtractedError): boolean {
return Boolean(
extracted.code === 'OAUTH_RESPONSE_IS_NOT_JSON' ||
extracted.code === 'OAUTH_PARSE_ERROR' ||
extracted.message.includes('unexpected response content-type') ||
extracted.message.includes('parsing error')
extracted.code === 'OAUTH_PARSE_ERROR' ||
extracted.message.includes('unexpected response content-type') ||
extracted.message.includes('parsing error')
);
}
@@ -211,11 +211,11 @@ export class ErrorExtractor {
static isNetworkError(extracted: ExtractedError): boolean {
return Boolean(
extracted.code === 'ECONNREFUSED' ||
extracted.code === 'ENOTFOUND' ||
extracted.code === 'ETIMEDOUT' ||
extracted.code === 'ECONNRESET' ||
extracted.message.includes('network') ||
extracted.message.includes('connect')
extracted.code === 'ENOTFOUND' ||
extracted.code === 'ETIMEDOUT' ||
extracted.code === 'ECONNRESET' ||
extracted.message.includes('network') ||
extracted.message.includes('connect')
);
}

View File

@@ -21,8 +21,8 @@
},
"pnpm": {
"overrides": {
"graphql": "16.11.0",
"@graphql-tools/utils": "10.9.1"
"graphql": "16.12.0",
"@graphql-tools/utils": "10.11.0"
},
"peerDependencyRules": {
"allowAny": [
@@ -51,13 +51,13 @@
]
},
"dependencies": {
"@manypkg/cli": "0.25.0",
"chalk": "5.6.0",
"@manypkg/cli": "0.25.1",
"chalk": "5.6.2",
"diff": "8.0.2",
"ignore": "7.0.5"
},
"devDependencies": {
"lint-staged": "16.1.5",
"lint-staged": "16.2.7",
"simple-git-hooks": "2.13.1"
},
"simple-git-hooks": {
@@ -74,5 +74,5 @@
"pnpm --filter @unraid/ui lint:fix"
]
},
"packageManager": "pnpm@10.15.0"
"packageManager": "pnpm@10.26.2"
}

View File

@@ -25,44 +25,44 @@
"description": "Unraid Connect plugin for Unraid API",
"devDependencies": {
"@apollo/client": "3.14.0",
"@faker-js/faker": "10.0.0",
"@graphql-codegen/cli": "6.0.0",
"@faker-js/faker": "10.1.0",
"@graphql-codegen/cli": "6.1.0",
"@graphql-typed-document-node/core": "3.2.0",
"@ianvs/prettier-plugin-sort-imports": "4.6.3",
"@jsonforms/core": "3.6.0",
"@ianvs/prettier-plugin-sort-imports": "4.7.0",
"@jsonforms/core": "3.7.0",
"@nestjs/apollo": "13.1.0",
"@nestjs/common": "11.1.6",
"@nestjs/common": "11.1.10",
"@nestjs/config": "4.0.2",
"@nestjs/core": "11.1.6",
"@nestjs/core": "11.1.10",
"@nestjs/event-emitter": "3.0.1",
"@nestjs/graphql": "13.1.0",
"@nestjs/schedule": "6.0.0",
"@nestjs/graphql": "13.2.3",
"@nestjs/schedule": "6.1.0",
"@runonflux/nat-upnp": "1.0.2",
"@types/ini": "4.1.1",
"@types/ip": "1.1.3",
"@types/lodash-es": "4.17.12",
"@types/node": "22.18.0",
"@types/node": "22.19.3",
"@types/ws": "8.18.1",
"camelcase-keys": "10.0.0",
"camelcase-keys": "10.0.1",
"class-transformer": "0.5.1",
"class-validator": "0.14.2",
"execa": "9.6.0",
"fast-check": "4.2.0",
"got": "14.4.7",
"graphql": "16.11.0",
"graphql-scalars": "1.24.2",
"class-validator": "0.14.3",
"execa": "9.6.1",
"fast-check": "4.5.2",
"got": "14.6.5",
"graphql": "16.12.0",
"graphql-scalars": "1.25.0",
"graphql-subscriptions": "3.0.0",
"graphql-ws": "6.0.6",
"ini": "5.0.0",
"jose": "6.0.13",
"lodash-es": "4.17.21",
"jose": "6.1.3",
"lodash-es": "4.17.22",
"nest-authz": "2.17.0",
"prettier": "3.6.2",
"rimraf": "6.0.1",
"prettier": "3.7.4",
"rimraf": "6.1.2",
"rxjs": "7.8.2",
"type-fest": "5.0.0",
"typescript": "5.9.2",
"undici": "7.15.0",
"type-fest": "5.3.1",
"typescript": "5.9.3",
"undici": "7.16.0",
"vitest": "3.2.4",
"ws": "8.18.3",
"zen-observable-ts": "1.1.0"
@@ -75,30 +75,30 @@
"peerDependencies": {
"@apollo/client": "3.14.0",
"@graphql-typed-document-node/core": "3.2.0",
"@jsonforms/core": "3.6.0",
"@jsonforms/core": "3.7.0",
"@nestjs/apollo": "13.1.0",
"@nestjs/common": "11.1.6",
"@nestjs/common": "11.1.10",
"@nestjs/config": "4.0.2",
"@nestjs/core": "11.1.6",
"@nestjs/core": "11.1.10",
"@nestjs/event-emitter": "3.0.1",
"@nestjs/graphql": "13.1.0",
"@nestjs/schedule": "6.0.0",
"@nestjs/schedule": "6.1.0",
"@runonflux/nat-upnp": "1.0.2",
"camelcase-keys": "10.0.0",
"camelcase-keys": "10.0.1",
"class-transformer": "0.5.1",
"class-validator": "0.14.2",
"execa": "9.6.0",
"got": "14.4.7",
"graphql": "16.11.0",
"graphql-scalars": "1.24.2",
"class-validator": "0.14.3",
"execa": "9.6.1",
"got": "14.6.5",
"graphql": "16.12.0",
"graphql-scalars": "1.25.0",
"graphql-subscriptions": "3.0.0",
"graphql-ws": "6.0.6",
"ini": "5.0.0",
"jose": "6.0.13",
"lodash-es": "4.17.21",
"jose": "6.1.3",
"lodash-es": "4.17.22",
"nest-authz": "2.17.0",
"rxjs": "7.8.2",
"undici": "7.15.0",
"undici": "7.16.0",
"ws": "8.18.3",
"zen-observable-ts": "1.1.0"
}

View File

@@ -10,25 +10,25 @@
"prepare": "npm run build"
},
"dependencies": {
"chalk": "5.6.0",
"chalk": "5.6.2",
"change-case": "5.4.4",
"commander": "14.0.0",
"commander": "14.0.2",
"create-create-app": "7.3.0",
"fs-extra": "11.3.1",
"inquirer": "12.9.4",
"fs-extra": "11.3.3",
"inquirer": "12.11.1",
"validate-npm-package-name": "6.0.2"
},
"devDependencies": {
"@nestjs/common": "11.1.6",
"@nestjs/common": "11.1.10",
"@nestjs/config": "4.0.2",
"@nestjs/core": "11.1.6",
"@nestjs/core": "11.1.10",
"@nestjs/graphql": "13.1.0",
"@types/fs-extra": "11.0.4",
"@types/inquirer": "9.0.9",
"@types/node": "22.18.0",
"@types/node": "22.19.3",
"@types/validate-npm-package-name": "4.0.2",
"class-transformer": "0.5.1",
"class-validator": "0.14.2",
"typescript": "5.9.2"
"class-validator": "0.14.3",
"typescript": "5.9.3"
}
}

View File

@@ -16,18 +16,18 @@
"license": "GPL-2.0-or-later",
"description": "Example Health plugin for Unraid API",
"devDependencies": {
"@nestjs/common": "11.1.6",
"@nestjs/common": "11.1.10",
"@nestjs/config": "4.0.2",
"@nestjs/core": "11.1.6",
"@nestjs/core": "11.1.10",
"@nestjs/graphql": "13.1.0",
"nest-authz": "2.17.0",
"typescript": "5.9.2",
"typescript": "5.9.3",
"pify": "6.1.0"
},
"peerDependencies": {
"@nestjs/common": "11.1.6",
"@nestjs/common": "11.1.10",
"@nestjs/config": "4.0.2",
"@nestjs/core": "11.1.6",
"@nestjs/core": "11.1.10",
"@nestjs/graphql": "13.1.0",
"nest-authz": "2.17.0"
}

View File

@@ -30,45 +30,45 @@
"license": "GPL-2.0-or-later",
"description": "Shared utilities and types for Unraid API ecosystem",
"devDependencies": {
"@graphql-tools/utils": "10.9.1",
"@jsonforms/core": "3.6.0",
"@nestjs/common": "11.1.6",
"@graphql-tools/utils": "10.11.0",
"@jsonforms/core": "3.7.0",
"@nestjs/common": "11.1.10",
"@nestjs/graphql": "13.1.0",
"@nestjs/testing": "11.1.6",
"@types/bun": "1.2.21",
"@nestjs/testing": "11.1.10",
"@types/bun": "1.3.5",
"@types/lodash-es": "4.17.12",
"@types/node": "22.18.0",
"@types/node": "22.19.3",
"@types/ws": "8.18.1",
"class-transformer": "0.5.1",
"class-validator": "0.14.2",
"graphql": "16.11.0",
"graphql-scalars": "1.24.2",
"class-validator": "0.14.3",
"graphql": "16.12.0",
"graphql-scalars": "1.25.0",
"graphql-ws": "6.0.6",
"lodash-es": "4.17.21",
"lodash-es": "4.17.22",
"nest-authz": "2.17.0",
"pify": "6.1.0",
"rimraf": "6.0.1",
"type-fest": "5.0.0",
"typescript": "5.9.2",
"rimraf": "6.1.2",
"type-fest": "5.3.1",
"typescript": "5.9.3",
"vitest": "3.2.4",
"ws": "8.18.3"
},
"peerDependencies": {
"@apollo/client": "3.14.0",
"@graphql-tools/utils": "10.9.1",
"@jsonforms/core": "3.6.0",
"@nestjs/common": "11.1.6",
"@graphql-tools/utils": "10.11.0",
"@jsonforms/core": "3.7.0",
"@nestjs/common": "11.1.10",
"@nestjs/config": "4.0.2",
"@nestjs/graphql": "13.1.0",
"atomically": "2.0.3",
"class-validator": "0.14.2",
"graphql": "16.11.0",
"graphql-scalars": "1.24.2",
"atomically": "2.1.0",
"class-validator": "0.14.3",
"graphql": "16.12.0",
"graphql-scalars": "1.25.0",
"graphql-ws": "6.0.6",
"lodash-es": "4.17.21",
"lodash-es": "4.17.22",
"nest-authz": "2.17.0",
"rxjs": "7.8.2",
"undici": "7.15.0",
"undici": "7.16.0",
"ws": "8.18.3"
}
}

View File

@@ -1,4 +1,4 @@
FROM node:22.18.0-bookworm-slim AS plugin-builder
FROM node:22.21.1-bookworm-slim AS plugin-builder
# Install build tools and dependencies
RUN apt-get update -y && apt-get install -y \

View File

@@ -7,12 +7,12 @@
"conventional-changelog": "7.1.1",
"conventional-changelog-conventionalcommits": "9.1.0",
"date-fns": "4.1.0",
"glob": "11.0.3",
"glob": "11.1.0",
"html-sloppy-escaper": "0.1.0",
"semver": "7.7.2",
"tsx": "4.20.5",
"semver": "7.7.3",
"tsx": "4.21.0",
"zod": "3.25.76",
"zx": "8.8.1"
"zx": "8.8.5"
},
"type": "module",
"license": "GPL-2.0-or-later",
@@ -39,8 +39,8 @@
},
"devDependencies": {
"http-server": "14.1.1",
"nodemon": "3.1.10",
"nodemon": "3.1.11",
"vitest": "3.2.4"
},
"packageManager": "pnpm@10.15.0"
"packageManager": "pnpm@10.26.2"
}

10609
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -43,79 +43,79 @@
},
"peerDependencies": {
"ajv": "8.17.1",
"tailwindcss": "4.1.12",
"vue": "3.5.20"
"tailwindcss": "4.1.18",
"vue": "3.5.26"
},
"dependencies": {
"@headlessui/vue": "1.7.23",
"@heroicons/vue": "2.2.0",
"@internationalized/number": "3.6.5",
"@jsonforms/core": "3.6.0",
"@jsonforms/vue": "3.6.0",
"@jsonforms/vue-vanilla": "3.6.0",
"@tailwindcss/cli": "4.1.12",
"@vueuse/core": "13.8.0",
"@jsonforms/core": "3.7.0",
"@jsonforms/vue": "3.7.0",
"@jsonforms/vue-vanilla": "3.7.0",
"@tailwindcss/cli": "4.1.18",
"@vueuse/core": "13.9.0",
"ajv-errors": "3.0.0",
"class-variance-authority": "0.7.1",
"clsx": "2.1.1",
"dompurify": "3.2.6",
"dompurify": "3.3.1",
"kebab-case": "2.0.2",
"lucide-vue-next": "0.542.0",
"marked": "16.2.1",
"reka-ui": "2.5.0",
"shadcn-vue": "2.2.0",
"lucide-vue-next": "0.562.0",
"marked": "16.4.2",
"reka-ui": "2.7.0",
"shadcn-vue": "2.4.3",
"tailwind-merge": "2.6.0",
"tw-animate-css": "1.3.7",
"vue-sonner": "2.0.8"
"tw-animate-css": "1.4.0",
"vue-sonner": "2.0.9"
},
"devDependencies": {
"@eslint/js": "9.34.0",
"@ianvs/prettier-plugin-sort-imports": "4.6.3",
"@storybook/addon-docs": "9.1.3",
"@storybook/addon-links": "9.1.3",
"@storybook/builder-vite": "9.1.3",
"@storybook/vue3-vite": "9.1.3",
"@tailwindcss/vite": "4.1.12",
"@eslint/js": "9.39.2",
"@ianvs/prettier-plugin-sort-imports": "4.7.0",
"@storybook/addon-docs": "9.1.17",
"@storybook/addon-links": "9.1.17",
"@storybook/builder-vite": "9.1.17",
"@storybook/vue3-vite": "9.1.17",
"@tailwindcss/vite": "4.1.18",
"@testing-library/vue": "8.1.0",
"@types/jsdom": "21.1.7",
"@types/node": "22.18.0",
"@types/node": "22.19.3",
"@types/testing-library__vue": "5.3.0",
"@typescript-eslint/eslint-plugin": "8.41.0",
"@vitejs/plugin-vue": "6.0.1",
"@typescript-eslint/eslint-plugin": "8.50.1",
"@vitejs/plugin-vue": "6.0.3",
"@vitest/coverage-v8": "3.2.4",
"@vitest/ui": "3.2.4",
"@vue/test-utils": "2.4.6",
"@vue/tsconfig": "0.8.1",
"ajv": "8.17.1",
"concurrently": "9.2.1",
"eslint": "9.34.0",
"eslint": "9.39.2",
"eslint-config-prettier": "10.1.8",
"eslint-plugin-import": "2.32.0",
"eslint-plugin-no-relative-import-paths": "1.6.1",
"eslint-plugin-prettier": "5.5.4",
"eslint-plugin-storybook": "9.1.3",
"eslint-plugin-vue": "10.4.0",
"eslint-plugin-storybook": "9.1.17",
"eslint-plugin-vue": "10.6.2",
"happy-dom": "18.0.1",
"jiti": "2.5.1",
"jiti": "2.6.1",
"postcss": "8.5.6",
"prettier": "3.6.2",
"prettier-plugin-tailwindcss": "0.6.14",
"rimraf": "6.0.1",
"storybook": "9.1.3",
"tailwindcss": "4.1.12",
"typescript": "5.9.2",
"typescript-eslint": "8.41.0",
"vite": "7.1.3",
"prettier": "3.7.4",
"prettier-plugin-tailwindcss": "0.7.2",
"rimraf": "6.1.2",
"storybook": "9.1.17",
"tailwindcss": "4.1.18",
"typescript": "5.9.3",
"typescript-eslint": "8.50.1",
"vite": "7.3.0",
"vite-plugin-dts": "3.9.1",
"vite-plugin-vue-devtools": "8.0.1",
"vite-plugin-vue-devtools": "8.0.5",
"vitest": "3.2.4",
"vue": "3.5.20",
"vue": "3.5.26",
"vue-eslint-parser": "10.2.0",
"vue-tsc": "3.0.6",
"wrangler": "4.33.0"
"vue-tsc": "3.2.1",
"wrangler": "4.56.0"
},
"optionalDependencies": {
"@rollup/rollup-linux-x64-gnu": "4.49.0"
"@rollup/rollup-linux-x64-gnu": "4.54.0"
},
"exports": {
".": {
@@ -126,5 +126,5 @@
"./styles": "./dist/style.css",
"./styles/*": "./src/styles/*"
},
"packageManager": "pnpm@10.15.0"
"packageManager": "pnpm@10.26.2"
}

93
web/auto-imports.d.ts vendored
View File

@@ -6,57 +6,64 @@
// biome-ignore lint: disable
export {}
declare global {
const avatarGroupInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useAvatarGroup.js')['avatarGroupInjectionKey']
const defineLocale: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/defineLocale.js')['defineLocale']
const defineShortcuts: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/defineShortcuts.js')['defineShortcuts']
const extendLocale: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/defineLocale.js')['extendLocale']
const extractShortcuts: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/defineShortcuts.js')['extractShortcuts']
const fieldGroupInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useFieldGroup.js')['fieldGroupInjectionKey']
const formBusInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js')['formBusInjectionKey']
const formFieldInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js')['formFieldInjectionKey']
const formInputsInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js')['formInputsInjectionKey']
const formLoadingInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js')['formLoadingInjectionKey']
const formOptionsInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js')['formOptionsInjectionKey']
const inputIdInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js')['inputIdInjectionKey']
const kbdKeysMap: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useKbd.js')['kbdKeysMap']
const localeContextInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useLocale.js')['localeContextInjectionKey']
const portalTargetInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/usePortal.js')['portalTargetInjectionKey']
const useAppConfig: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/vue/composables/useAppConfig.js')['useAppConfig']
const useAvatarGroup: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useAvatarGroup.js')['useAvatarGroup']
const useComponentIcons: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useComponentIcons.js')['useComponentIcons']
const useContentSearch: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useContentSearch.js')['useContentSearch']
const useFieldGroup: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useFieldGroup.js')['useFieldGroup']
const useFileUpload: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useFileUpload.js')['useFileUpload']
const useFormField: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js')['useFormField']
const useKbd: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useKbd.js')['useKbd']
const useLocale: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useLocale.js')['useLocale']
const useOverlay: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useOverlay.js')['useOverlay']
const usePortal: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/usePortal.js')['usePortal']
const useResizable: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useResizable.js')['useResizable']
const useScrollspy: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useScrollspy.js')['useScrollspy']
const useToast: typeof import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useToast.js')['useToast']
const avatarGroupInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useAvatarGroup.js').avatarGroupInjectionKey
const defineLocale: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/defineLocale.js').defineLocale
const defineShortcuts: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/defineShortcuts.js').defineShortcuts
const extendLocale: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/defineLocale.js').extendLocale
const extractShortcuts: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/defineShortcuts.js').extractShortcuts
const fieldGroupInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFieldGroup.js').fieldGroupInjectionKey
const formBusInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js').formBusInjectionKey
const formErrorsInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js').formErrorsInjectionKey
const formFieldInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js').formFieldInjectionKey
const formInputsInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js').formInputsInjectionKey
const formLoadingInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js').formLoadingInjectionKey
const formOptionsInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js').formOptionsInjectionKey
const formStateInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js').formStateInjectionKey
const inputIdInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js').inputIdInjectionKey
const kbdKeysMap: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useKbd.js').kbdKeysMap
const localeContextInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useLocale.js').localeContextInjectionKey
const portalTargetInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/usePortal.js').portalTargetInjectionKey
const toastMaxInjectionKey: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useToast.js').toastMaxInjectionKey
const useAppConfig: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/vue/composables/useAppConfig.js').useAppConfig
const useAvatarGroup: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useAvatarGroup.js').useAvatarGroup
const useComponentIcons: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useComponentIcons.js').useComponentIcons
const useContentSearch: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useContentSearch.js').useContentSearch
const useEditorMenu: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useEditorMenu.js').useEditorMenu
const useFieldGroup: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFieldGroup.js').useFieldGroup
const useFileUpload: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFileUpload.js').useFileUpload
const useFormField: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFormField.js').useFormField
const useKbd: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useKbd.js').useKbd
const useLocale: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useLocale.js').useLocale
const useOverlay: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useOverlay.js').useOverlay
const usePortal: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/usePortal.js').usePortal
const useResizable: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useResizable.js').useResizable
const useScrollspy: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useScrollspy.js').useScrollspy
const useToast: typeof import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useToast.js').useToast
}
// for type re-export
declare global {
// @ts-ignore
export type { ShortcutConfig, ShortcutsConfig, ShortcutsOptions } from '../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/defineShortcuts.d'
import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/defineShortcuts.d')
export type { ShortcutConfig, ShortcutsConfig, ShortcutsOptions } from '../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/defineShortcuts.d'
import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/defineShortcuts.d')
// @ts-ignore
export type { UseComponentIconsProps } from '../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useComponentIcons.d'
import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useComponentIcons.d')
export type { UseComponentIconsProps } from '../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useComponentIcons.d'
import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useComponentIcons.d')
// @ts-ignore
export type { UseFileUploadOptions } from '../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useFileUpload.d'
import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useFileUpload.d')
export type { EditorMenuOptions } from '../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useEditorMenu.d'
import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useEditorMenu.d')
// @ts-ignore
export type { KbdKey, KbdKeySpecific } from '../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useKbd.d'
import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useKbd.d')
export type { UseFileUploadOptions } from '../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFileUpload.d'
import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useFileUpload.d')
// @ts-ignore
export type { OverlayOptions, Overlay } from '../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useOverlay.d'
import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useOverlay.d')
export type { KbdKey, KbdKeySpecific } from '../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useKbd.d'
import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useKbd.d')
// @ts-ignore
export type { UseResizableProps, UseResizableReturn } from '../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useResizable.d'
import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useResizable.d')
export type { OverlayOptions, Overlay } from '../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useOverlay.d'
import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useOverlay.d')
// @ts-ignore
export type { Toast } from '../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useToast.d'
import('../node_modules/.pnpm/@nuxt+ui@4.0.0-alpha.0_@babel+parser@7.28.4_@netlify+blobs@9.1.2_change-case@5.4.4_db0@_655bac6707ae017754653173419b3890/node_modules/@nuxt/ui/dist/runtime/composables/useToast.d')
export type { UseResizableProps, UseResizableReturn } from '../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useResizable.d'
import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useResizable.d')
// @ts-ignore
export type { Toast } from '../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useToast.d'
import('../node_modules/.pnpm/@nuxt+ui@4.3.0_cdaa3b74b93b104f2dcd142e5c7bf0b7/node_modules/@nuxt/ui/dist/runtime/composables/useToast.d')
}

View File

@@ -44,58 +44,58 @@
"test:standalone": "pnpm run build && vite --config vite.test.config.ts"
},
"devDependencies": {
"@eslint/js": "9.34.0",
"@graphql-codegen/cli": "6.0.0",
"@graphql-codegen/client-preset": "5.0.0",
"@eslint/js": "9.39.2",
"@graphql-codegen/cli": "6.1.0",
"@graphql-codegen/client-preset": "5.2.2",
"@graphql-codegen/introspection": "5.0.0",
"@graphql-typed-document-node/core": "3.2.0",
"@ianvs/prettier-plugin-sort-imports": "4.6.3",
"@pinia/testing": "1.0.2",
"@ianvs/prettier-plugin-sort-imports": "4.7.0",
"@pinia/testing": "1.0.3",
"@rollup/plugin-strip": "3.0.4",
"@tailwindcss/typography": "0.5.16",
"@tailwindcss/vite": "4.1.12",
"@tailwindcss/typography": "0.5.19",
"@tailwindcss/vite": "4.1.18",
"@testing-library/vue": "8.1.0",
"@types/crypto-js": "4.2.2",
"@types/eslint-config-prettier": "6.11.3",
"@types/node": "22.18.0",
"@types/node": "22.19.3",
"@types/nunjucks": "^3.2.6",
"@types/semver": "7.7.0",
"@typescript-eslint/eslint-plugin": "8.41.0",
"@types/semver": "7.7.1",
"@typescript-eslint/eslint-plugin": "8.50.1",
"@unraid/tailwind-rem-to-rem": "2.0.0",
"@vitejs/plugin-vue": "6.0.1",
"@vitejs/plugin-vue": "6.0.3",
"@vitest/coverage-v8": "3.2.4",
"@vue/apollo-util": "4.2.2",
"@vue/compiler-sfc": "3.5.20",
"@vue/compiler-sfc": "3.5.26",
"@vue/test-utils": "2.4.6",
"@vueuse/core": "13.8.0",
"eslint": "9.34.0",
"@vueuse/core": "13.9.0",
"eslint": "9.39.2",
"eslint-config-prettier": "10.1.8",
"eslint-import-resolver-typescript": "4.4.4",
"eslint-plugin-import": "2.32.0",
"eslint-plugin-no-relative-import-paths": "1.6.1",
"eslint-plugin-storybook": "9.1.3",
"eslint-plugin-vue": "10.4.0",
"glob": "11.0.3",
"globals": "16.3.0",
"eslint-plugin-storybook": "9.1.17",
"eslint-plugin-vue": "10.6.2",
"glob": "11.1.0",
"globals": "16.5.0",
"happy-dom": "18.0.1",
"kebab-case": "2.0.2",
"lodash-es": "4.17.21",
"lodash-es": "4.17.22",
"nunjucks": "3.2.4",
"prettier": "3.6.2",
"prettier-plugin-tailwindcss": "0.6.14",
"tailwindcss": "4.1.12",
"terser": "5.43.1",
"tw-animate-css": "1.3.7",
"typescript": "5.9.2",
"typescript-eslint": "8.41.0",
"vite": "7.1.3",
"prettier": "3.7.4",
"prettier-plugin-tailwindcss": "0.7.2",
"tailwindcss": "4.1.18",
"terser": "5.44.1",
"tw-animate-css": "1.4.0",
"typescript": "5.9.3",
"typescript-eslint": "8.50.1",
"vite": "7.3.0",
"vite-plugin-remove-console": "2.2.0",
"vite-plugin-vue-tracer": "1.0.0",
"vite-plugin-vue-tracer": "1.2.0",
"vitest": "3.2.4",
"vue": "3.5.20",
"vue": "3.5.26",
"vue-eslint-parser": "10.2.0",
"vue-i18n-extract": "2.0.4",
"vue-tsc": "3.0.6"
"vue-i18n-extract": "2.0.7",
"vue-tsc": "3.2.1"
},
"dependencies": {
"@apollo/client": "3.14.0",
@@ -105,47 +105,47 @@
"@formkit/auto-animate": "^0.9.0",
"@headlessui/vue": "1.7.23",
"@heroicons/vue": "2.2.0",
"@jsonforms/core": "3.6.0",
"@jsonforms/vue": "3.6.0",
"@jsonforms/vue-vanilla": "3.6.0",
"@jsonforms/vue-vuetify": "3.6.0",
"@nuxt/ui": "4.0.0-alpha.0",
"@jsonforms/core": "3.7.0",
"@jsonforms/vue": "3.7.0",
"@jsonforms/vue-vanilla": "3.7.0",
"@jsonforms/vue-vuetify": "3.7.0",
"@nuxt/ui": "4.3.0",
"@tanstack/vue-table": "^8.21.3",
"@unraid/shared-callbacks": "3.0.0",
"@unraid/ui": "link:../unraid-ui",
"@vue/apollo-composable": "4.2.2",
"@vueuse/components": "13.8.0",
"@vueuse/integrations": "13.8.0",
"@vueuse/components": "13.9.0",
"@vueuse/integrations": "13.9.0",
"ajv": "8.17.1",
"ansi_up": "6.0.6",
"class-variance-authority": "0.7.1",
"clsx": "2.1.1",
"convert": "5.12.0",
"convert": "5.14.1",
"crypto-js": "4.2.0",
"dayjs": "1.11.14",
"focus-trap": "7.6.5",
"graphql": "16.11.0",
"dayjs": "1.11.19",
"focus-trap": "7.7.0",
"graphql": "16.12.0",
"graphql-tag": "2.12.6",
"graphql-ws": "6.0.6",
"hex-to-rgba": "2.0.1",
"highlight.js": "11.11.1",
"isomorphic-dompurify": "2.26.0",
"lucide-vue-next": "0.542.0",
"marked": "16.2.1",
"marked-base-url": "1.1.7",
"pinia": "3.0.3",
"isomorphic-dompurify": "2.34.0",
"lucide-vue-next": "0.562.0",
"marked": "16.4.2",
"marked-base-url": "1.1.8",
"pinia": "3.0.4",
"pinia-plugin-persistedstate": "4.7.1",
"postcss-import": "16.1.1",
"semver": "7.7.2",
"semver": "7.7.3",
"tailwind-merge": "2.6.0",
"vue-i18n": "11.1.11",
"vue-router": "4.5.1",
"vue-i18n": "11.2.7",
"vue-router": "4.6.4",
"vue-web-component-wrapper": "1.7.7",
"vuetify": "3.9.6",
"wretch": "2.11.0"
"vuetify": "3.11.4",
"wretch": "2.11.1"
},
"optionalDependencies": {
"@rollup/rollup-linux-x64-gnu": "4.49.0"
"@rollup/rollup-linux-x64-gnu": "4.54.0"
},
"packageManager": "pnpm@10.15.0"
"packageManager": "pnpm@10.26.2"
}