{ "name": "@unraid/web", "version": "4.8.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", "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", "// 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.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", "@nuxt/test-utils": "^3.17.2", "@nuxtjs/tailwindcss": "^6.12.2", "@pinia/testing": "^1.0.0", "@rollup/plugin-strip": "^3.0.4", "@tailwindcss/typography": "^0.5.15", "@testing-library/vue": "^8.0.0", "@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", "@vitejs/plugin-vue": "^5.0.0", "@vitest/coverage-v8": "^3.1.1", "@vue/apollo-util": "^4.0.0-beta.6", "@vue/test-utils": "^2.4.6", "@vueuse/core": "^13.0.0", "@vueuse/nuxt": "^13.0.0", "eslint": "^9.21.0", "eslint-config-prettier": "^10.0.0", "happy-dom": "^18.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": "^2.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", "vite-plugin-vue-tracer": "^0.1.3", "vitest": "^3.1.1", "vue": "^3.3.0", "vue-tsc": "^2.1.10", "vuetify-nuxt-module": "0.18.7" }, "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.11.0", "@unraid/shared-callbacks": "^1.1.1", "@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.519.0", "marked": "^15.0.0", "marked-base-url": "^1.1.6", "pinia": "^3.0.1", "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" }, "packageManager": "pnpm@10.12.1" }