Files
zitadel/apps/login/package.json
T
a864434b4b feat(login): update to nextjs 16, improve caching, change default colors (#11629)
# Which Problems Are Solved

Updated the project to use the latest versions of Next.js and React, and
implemented a SWR caching strategy for key settings API calls to improve
performance. Adjusted configuration to ensure compatibility with Next.js
16.

# How the Problems Are Solved

- Updated next to 16.1.6, react & react-dom to 19.2.4, and next-intl to
4.8.3.
- Implemented `API_CACHE_ENABLED` and `API_CACHE_CONFIG` (replacing
deprecated unstable_cacheLife) for:
  - getBrandingSettings
  - getSecuritySettings
  - getPasswordComplexitySettings
  - getLoginSettings ...
- Updated default theme colors from blue to a more neutral black and
white

# Additional changes

- Updated login docker image to node 24

---------

Co-authored-by: Ramon <[email protected]>
2026-03-17 16:01:50 +01:00

116 lines
4.2 KiB
JSON

{
"packageManager": "[email protected]+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264",
"name": "@zitadel/login",
"private": true,
"type": "module",
"scripts": {
"build": "NEXT_OUTPUT_MODE=standalone next build && cp -r public scripts/* .next/standalone/ && mv .next/standalone/apps/login/server.js .next/standalone/apps/login/next-server.js && cp .next/standalone/server.mjs .next/standalone/apps/login/server.js && cp -r .next/static .next/standalone/apps/login/.next/ && rm .next/standalone/apps/login/.env",
"build-vercel": "next build",
"dev": "HOSTNAME=127.0.0.1 ./scripts/entrypoint.sh next dev",
"prod": "cd ./.next/standalone && HOSTNAME=127.0.0.1 ./entrypoint.sh node apps/login/server.js",
"lint-check-next": "eslint .",
"lint-check-prettier": "prettier --check .",
"lint-fix": "prettier --write .",
"test-unit": "vitest --run",
"test-dockerized": "vitest --run --config vitest.config.dockerized.ts",
"lint-staged": "lint-staged",
"clean": "rm -rf node_modules .next"
},
"git": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"*": "prettier --write --ignore-unknown"
},
"dependencies": {
"@headlessui/react": "^2.2.9",
"@heroicons/react": "^2.2.0",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/api-logs": "^0.211.0",
"@opentelemetry/auto-instrumentations-node": "^0.69.0",
"@opentelemetry/resource-detector-container": "^0.8.2",
"@opentelemetry/resource-detector-gcp": "^0.46.0",
"@opentelemetry/resources": "^2.5.0",
"@opentelemetry/sdk-node": "^0.211.0",
"@opentelemetry/winston-transport": "^0.21.0",
"@radix-ui/react-tooltip": "^1.2.8",
"@tailwindcss/forms": "^0.5.11",
"clsx": "^2.1.1",
"copy-to-clipboard": "^3.3.3",
"deepmerge": "^4.3.1",
"escape-html": "^1.0.3",
"lucide-react": "^0.562.0",
"moment": "^2.30.1",
"next": "16.1.6",
"next-intl": "^4.8.3",
"next-themes": "^0.2.1",
"nice-grpc": "^2.1.14",
"qrcode.react": "^4.2.0",
"react": "19.2.4",
"react-dom": "19.2.4",
"react-hook-form": "^7.71.1",
"server-only": "^0.0.1",
"tinycolor2": "^1.6.0",
"uuid": "^13.0.0",
"@connectrpc/connect-node": "^2.1.1",
"@connectrpc/connect": "^2.1.1",
"winston": "^3.17.0"
},
"devDependencies": {
"@eslint/js": "^10.0.0",
"@faker-js/faker": "^9.9.0",
"@next/eslint-plugin-next": "16.1.6",
"@opentelemetry/sdk-trace-base": "^2.5.0",
"@opentelemetry/sdk-trace-node": "^2.5.0",
"@otplib/core": "^12.0.1",
"@otplib/plugin-crypto": "^12.0.1",
"@otplib/plugin-thirty-two": "^12.0.1",
"@playwright/test": "^1.58.0",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/escape-html": "^1.0.4",
"@types/node": "^22.19.7",
"@types/node-forge": "^1.3.14",
"@types/react": "19.2.7",
"@types/react-dom": "19.2.3",
"@types/tinycolor2": "^1.4.6",
"@types/uuid": "^10.0.0",
"@typescript-eslint/eslint-plugin": "^8.57.0",
"@typescript-eslint/parser": "^8.57.0",
"@vercel/git-hooks": "1.0.0",
"@vitejs/plugin-react": "^4.7.0",
"@zitadel/client": "workspace:*",
"@zitadel/proto": "workspace:*",
"autoprefixer": "^10.4.23",
"concurrently": "^9.2.1",
"dotenv-cli": "^8.0.0",
"env-cmd": "^10.1.0",
"esbuild": "^0.27.3",
"eslint": "^10.0.0",
"eslint-config-prettier": "^10.1.8",
"eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-cypress": "^4.2.0",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-react-hooks": "^7.0.1",
"gaxios": "^7.1.3",
"globals": "^17.0.0",
"grpc-tools": "^1.13.1",
"jsdom": "^26.1.0",
"lint-staged": "15.5.1",
"node-forge": "^1.3.3",
"nodemon": "^3.1.11",
"postcss": "^8.5.6",
"prettier": "^3.8.1",
"prettier-plugin-organize-imports": "^4.3.0",
"prettier-plugin-tailwindcss": "^0.7.2",
"sass": "^1.97.3",
"start-server-and-test": "^2.1.3",
"tailwindcss": "3.4.14",
"testcontainers": "^11.11.0",
"ts-proto": "^2.11.1",
"typescript": "^5.9.3",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^2.1.9"
}
}