mirror of
https://github.com/unraid/api.git
synced 2026-01-06 00:30:22 -06:00
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added developer CLI tools for toggling GraphQL sandbox and modal testing utilities. * Introduced a "Show Activation Modal" developer component for UI testing. * Added system initial setup detection and related GraphQL queries. * Enhanced login and welcome pages with dynamic server info and initial setup state. * Improved SSO button with internationalization and error handling. * Added internal CLI admin API key management service and internal GraphQL client service. * Introduced comprehensive API report generation service for system and service status. * Added CLI commands and GraphQL mutations/queries for plugin and SSO user management. * Added new modal target components and improved teleport target detection. * **Enhancements** * Refined modal dialog targeting and teleportation for flexible UI placement. * Updated modal components and stores for improved activation/welcome modal control. * Improved plugin and SSO user management via CLI through GraphQL API. * Refactored partner logo components to use props instead of store dependencies. * Enhanced styling and accessibility for buttons and modals. * Streamlined Tailwind CSS integration with shared styles and updated theme variables. * Improved GraphQL module configuration to avoid directive conflicts in tests. * Adjusted Vite config for better dependency handling in test mode. * Improved error handling and logging in CLI commands and services. * Reordered imports and refined component class bindings for UI consistency. * **Bug Fixes** * Resolved issues with duplicate script tags and component registration in the web UI. * Fixed modal close button visibility and activation modal state handling. * Added error handling and logging improvements across CLI commands and services. * Fixed newline issues in last-download-time fixture files. * **Chores** * Added and updated numerous tests for CLI commands, services, and UI components. * Updated translation files and localization resources for new UI messages. * Adjusted environment, configuration, and dependency files for improved development and test workflows. * Cleaned up unused imports and mocks in tests. * Reorganized exports and barrel files in shared and UI modules. * Added integration and dependency resolution tests for core modules. * **Removals & Refactoring** * Removed legacy Redux state management, configuration, and UPnP logic from the backend. * Eliminated deprecated GraphQL subscriptions and client code related to registration and mothership. * Removed direct store manipulation and replaced with service-based approaches in CLI commands. * Deleted unused or redundant test files and configuration listeners. * Refactored SSO user service to consolidate add/remove operations into a single update method. * Simplified API key services with new methods for automatic key management. * Replaced direct plugin and SSO user service calls with GraphQL client interactions in CLI commands. * Removed complex theme fallback and dark mode CSS rules, replacing with streamlined static theme variables. * Cleaned up Tailwind CSS configuration and removed deprecated local styles. * Removed multiple internal utility files and replaced with simplified or centralized implementations. * Removed deprecated local configuration and synchronization files and listeners. * Removed UPnP helper functions and job management classes. * Refactored server resolver to dynamically construct local server data internally. * Removed CORS handler and replaced with simplified or externalized logic. * Removed store synchronization and registration event pubsub handling. * Removed GraphQL client creation utilities for internal API communication. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
136 lines
4.7 KiB
JSON
136 lines
4.7 KiB
JSON
{
|
|
"name": "@unraid/web",
|
|
"version": "4.10.0",
|
|
"private": true,
|
|
"license": "GPL-2.0-or-later",
|
|
"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 && pnpm run validate:css",
|
|
"prebuild:watch": "pnpm predev",
|
|
"build:watch": "nuxi build --dotenv .env.production --watch && pnpm run manifest-ts",
|
|
"generate": "nuxt generate",
|
|
"manifest-ts": "node ./scripts/add-timestamp-webcomponent-manifest.js",
|
|
"validate:css": "node ./scripts/validate-custom-elements-css.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 run",
|
|
"test:watch": "vitest",
|
|
"test:ci": "vitest run",
|
|
"// Nuxt": "",
|
|
"postinstall": "nuxt prepare"
|
|
},
|
|
"devDependencies": {
|
|
"@graphql-codegen/cli": "5.0.7",
|
|
"@graphql-codegen/client-preset": "4.8.3",
|
|
"@graphql-codegen/introspection": "4.0.3",
|
|
"@graphql-typed-document-node/core": "3.2.0",
|
|
"@ianvs/prettier-plugin-sort-imports": "4.5.1",
|
|
"@nuxt/devtools": "2.6.2",
|
|
"@nuxt/eslint": "1.5.2",
|
|
"@nuxt/test-utils": "3.19.2",
|
|
"@pinia/testing": "1.0.2",
|
|
"@rollup/plugin-strip": "3.0.4",
|
|
"@tailwindcss/typography": "0.5.16",
|
|
"@tailwindcss/vite": "4.1.11",
|
|
"@testing-library/vue": "8.1.0",
|
|
"@types/crypto-js": "4.2.2",
|
|
"@types/eslint-config-prettier": "6.11.3",
|
|
"@types/node": "22.16.4",
|
|
"@types/semver": "7.7.0",
|
|
"@typescript-eslint/eslint-plugin": "8.37.0",
|
|
"@unraid/tailwind-rem-to-rem": "2.0.0",
|
|
"@vitejs/plugin-vue": "6.0.0",
|
|
"@vitest/coverage-v8": "3.2.4",
|
|
"@vue/apollo-util": "4.2.2",
|
|
"@vue/test-utils": "2.4.6",
|
|
"@vueuse/core": "13.5.0",
|
|
"@vueuse/nuxt": "13.5.0",
|
|
"eslint": "9.31.0",
|
|
"eslint-config-prettier": "10.1.5",
|
|
"eslint-import-resolver-typescript": "4.4.4",
|
|
"eslint-plugin-import": "2.32.0",
|
|
"happy-dom": "18.0.1",
|
|
"lodash-es": "4.17.21",
|
|
"nuxt": "3.17.7",
|
|
"nuxt-custom-elements": "2.0.0-beta.32",
|
|
"prettier": "3.6.2",
|
|
"shadcn-nuxt": "2.2.0",
|
|
"tailwindcss": "4.1.11",
|
|
"terser": "5.43.1",
|
|
"tw-animate-css": "^1.3.5",
|
|
"typescript": "5.8.3",
|
|
"vite": "7.0.4",
|
|
"vite-plugin-remove-console": "2.2.0",
|
|
"vite-plugin-vue-tracer": "1.0.0",
|
|
"vitest": "3.2.4",
|
|
"vue": "3.5.17",
|
|
"vue-tsc": "3.0.1",
|
|
"vuetify-nuxt-module": "0.18.7"
|
|
},
|
|
"dependencies": {
|
|
"@apollo/client": "3.13.8",
|
|
"@floating-ui/dom": "1.7.2",
|
|
"@floating-ui/utils": "0.2.10",
|
|
"@floating-ui/vue": "1.1.7",
|
|
"@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": "3.2.0",
|
|
"@nuxtjs/color-mode": "3.5.2",
|
|
"@pinia/nuxt": "0.11.1",
|
|
"@unraid/shared-callbacks": "1.1.1",
|
|
"@unraid/ui": "link:../unraid-ui",
|
|
"@vue/apollo-composable": "4.2.2",
|
|
"@vueuse/components": "13.5.0",
|
|
"@vueuse/integrations": "13.5.0",
|
|
"class-variance-authority": "0.7.1",
|
|
"clsx": "2.1.1",
|
|
"crypto-js": "4.2.0",
|
|
"dayjs": "1.11.13",
|
|
"focus-trap": "7.6.5",
|
|
"graphql": "16.11.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.525.0",
|
|
"marked": "16.0.0",
|
|
"marked-base-url": "1.1.7",
|
|
"pinia": "3.0.3",
|
|
"postcss-import": "16.1.1",
|
|
"semver": "7.7.2",
|
|
"tailwind-merge": "2.6.0",
|
|
"vue-i18n": "11.1.9",
|
|
"vue-web-component-wrapper": "1.7.7",
|
|
"vuetify": "3.9.0",
|
|
"wretch": "2.11.0"
|
|
},
|
|
"optionalDependencies": {
|
|
"@rollup/rollup-linux-x64-gnu": "4.45.1"
|
|
},
|
|
"packageManager": "pnpm@10.13.1"
|
|
}
|