mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-10 03:42:20 +00:00
# Which Problems Are Solved - The previous monorepo in monorepo structure for the login app and its related packages was fragmented, complicated and buggy. - The process for building and testing the login container was inconsistent between local development and CI. - Lack of clear documentation as well as easy and reliable ways for non-frontend developers to reproduce and fix failing PR checks locally. # How the Problems Are Solved - Consolidated the login app and its related npm packages by moving the main package to `apps/login/apps/login` and merging `apps/login/packages/integration` and `apps/login/packages/acceptance` into the main `apps/login` package. - Migrated from Docker Compose-based test setups to dev container-based setups, adding support for multiple dev container configurations: - `.devcontainer/base` - `.devcontainer/turbo-lint-unit` - `.devcontainer/turbo-lint-unit-debug` - `.devcontainer/login-integration` - `.devcontainer/login-integration-debug` - Added npm scripts to run the new dev container setups, enabling exact reproduction of GitHub PR checks locally, and updated the pipeline to use these containers. - Cleaned up Dockerfiles and docker-bake.hcl files to only build the production image for the login app. - Cleaned up compose files to focus on dev environments in dev containers. - Updated `CONTRIBUTING.md` with guidance on running and debugging PR checks locally using the new dev container approach. - Introduced separate Dockerfiles for the login app to distinguish between using published client packages and building clients from local protos. - Ensured the login container is always built in the pipeline for use in integration and acceptance tests. - Updated Makefile and GitHub Actions workflows to use `--frozen-lockfile` for installing pnpm packages, ensuring reproducible installs. - Disabled GitHub release creation by the changeset action. - Refactored the `/build` directory structure for clarity and maintainability. - Added a `clean` command to `docks/package.json`. - Experimentally added `knip` to the `zitadel-client` package for improved linting of dependencies and exports. # Additional Changes - Fixed Makefile commands for consistency and reliability. - Improved the structure and clarity of the `/build` directory to support seamless integration of the login build. - Enhanced documentation and developer experience for running and debugging CI checks locally. # Additional Context - See updated `CONTRIBUTING.md` for new local development and debugging instructions. - These changes are a prerequisite for further improvements to the CI pipeline and local development workflow. - Closes #10276
101 lines
3.3 KiB
JSON
101 lines
3.3 KiB
JSON
{
|
|
"packageManager": "pnpm@9.1.2+sha256.19c17528f9ca20bd442e4ca42f00f1b9808a9cb419383cd04ba32ef19322aba7",
|
|
"name": "@zitadel/login",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"build:login:standalone": "NEXT_PUBLIC_BASE_PATH=/ui/v2/login NEXT_OUTPUT_MODE=standalone next build",
|
|
"start": "next start",
|
|
"lint": "pnpm run '/^lint:check:.*$/'",
|
|
"lint:check:next": "next lint",
|
|
"lint:check:prettier": "prettier --check .",
|
|
"lint:fix": "prettier --write .",
|
|
"test:unit": "vitest --run",
|
|
"lint-staged": "lint-staged",
|
|
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next",
|
|
"test:integration:login": "cypress run",
|
|
"test:integration:login:debug": "cypress open",
|
|
"test:acceptance": "dotenv -e ../login/.env.test.local playwright",
|
|
"test:acceptance:setup": "cd ../.. && make login_test_acceptance_setup_env && NODE_ENV=test turbo run test:acceptance:setup:dev",
|
|
"test:acceptance:setup:dev": "cd ../.. && make login_test_acceptance_setup_dev"
|
|
},
|
|
"git": {
|
|
"pre-commit": "lint-staged"
|
|
},
|
|
"lint-staged": {
|
|
"*": "prettier --write --ignore-unknown"
|
|
},
|
|
"dependencies": {
|
|
"@headlessui/react": "^2.1.9",
|
|
"@heroicons/react": "2.1.3",
|
|
"@radix-ui/react-tooltip": "^1.2.7",
|
|
"@tailwindcss/forms": "0.5.7",
|
|
"@vercel/analytics": "^1.2.2",
|
|
"@zitadel/client": "latest",
|
|
"@zitadel/proto": "latest",
|
|
"clsx": "1.2.1",
|
|
"copy-to-clipboard": "^3.3.3",
|
|
"deepmerge": "^4.3.1",
|
|
"lucide-react": "0.469.0",
|
|
"moment": "^2.29.4",
|
|
"next": "15.4.0-canary.86",
|
|
"next-intl": "^3.25.1",
|
|
"next-themes": "^0.2.1",
|
|
"nice-grpc": "2.0.1",
|
|
"qrcode.react": "^3.1.0",
|
|
"react": "19.1.0",
|
|
"react-dom": "19.1.0",
|
|
"react-hook-form": "7.39.5",
|
|
"tinycolor2": "1.4.2",
|
|
"uuid": "^11.1.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/eslint-parser": "^7.23.0",
|
|
"@bufbuild/buf": "^1.53.0",
|
|
"@testing-library/jest-dom": "^6.6.3",
|
|
"@testing-library/react": "^16.3.0",
|
|
"@types/ms": "2.1.0",
|
|
"@types/node": "^22.14.1",
|
|
"@types/react": "19.1.2",
|
|
"@types/react-dom": "19.1.2",
|
|
"@types/tinycolor2": "1.4.3",
|
|
"@types/uuid": "^10.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
"@typescript-eslint/parser": "^7.0.0",
|
|
"@vercel/git-hooks": "1.0.0",
|
|
"@vitejs/plugin-react": "^4.4.1",
|
|
"autoprefixer": "10.4.21",
|
|
"eslint": "^8.57.0",
|
|
"eslint-config-next": "15.4.0-canary.86",
|
|
"eslint-config-prettier": "^9.1.0",
|
|
"grpc-tools": "1.13.0",
|
|
"jsdom": "^26.1.0",
|
|
"lint-staged": "15.5.1",
|
|
"make-dir-cli": "4.0.0",
|
|
"postcss": "8.5.3",
|
|
"prettier": "^3.2.5",
|
|
"prettier-plugin-organize-imports": "^3.2.0",
|
|
"prettier-plugin-tailwindcss": "0.6.11",
|
|
"sass": "^1.87.0",
|
|
"tailwindcss": "3.4.14",
|
|
"ts-proto": "^2.7.0",
|
|
"typescript": "^5.8.3",
|
|
"vite-tsconfig-paths": "^5.1.4",
|
|
"vitest": "^2.0.0",
|
|
"concurrently": "^9.1.2",
|
|
"cypress": "^14.5.2",
|
|
"dotenv-cli": "^8.0.0",
|
|
"env-cmd": "^10.0.0",
|
|
"nodemon": "^3.1.9",
|
|
"start-server-and-test": "^2.0.11",
|
|
"@faker-js/faker": "^9.7.0",
|
|
"@otplib/core": "^12.0.0",
|
|
"@otplib/plugin-crypto": "^12.0.0",
|
|
"@otplib/plugin-thirty-two": "^12.0.0",
|
|
"@playwright/test": "^1.52.0",
|
|
"gaxios": "^7.1.0"
|
|
}
|
|
}
|