Files
api/web/package.json
Pujit Mehrotra acbf46df3f feat: connect settings web component (#1211)
Replaces the Connect Settings form at Settings > Management Access with a webcomponent containing a generated form.

CodeRabbit:

- **New Features**
- Enhanced connection settings with an updated UI, including a new
custom element `<unraid-connect-settings>`.
- Introduced several new form components (e.g., `NumberField`,
`StringArrayField`, `Select`, `Switch`, `PreconditionsLabel`,
`ControlLayout`, and `VerticalLayout`) for a more dynamic experience.
- Added a notification system with the `Toaster` component for user
feedback.
- New GraphQL operations for managing connection settings and API
updates.
- **Chores**
- Upgraded multiple backend and frontend dependencies and refined
configuration files.
- **Tests**
- Expanded test coverage for CSV conversion, form settings merging, and
the new `csvStringToArray` function.
- **Documentation**
- Added introductory documentation for form components and a readme for
the forms directory.
2025-03-17 10:26:07 -04:00

123 lines
4.1 KiB
JSON

{
"name": "@unraid/web",
"version": "4.1.3",
"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": "^12.0.0",
"@vueuse/nuxt": "^12.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.1",
"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.3"
},
"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": "^12.0.0",
"@vueuse/integrations": "^12.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": "^5.16.0",
"hex-to-rgba": "^2.0.1",
"isomorphic-dompurify": "^2.19.0",
"lucide-vue-next": "^0.475.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": "^10.0.5",
"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.4.1"
}