diff --git a/.github/workflows/fe-ci.yml b/.github/workflows/fe-ci.yml index 72da9bf8..9fbdfd51 100644 --- a/.github/workflows/fe-ci.yml +++ b/.github/workflows/fe-ci.yml @@ -29,18 +29,15 @@ jobs: with: version: 8 - - uses: actions/cache@v4 - id: cache + - name: Cache dependencies + uses: actions/cache@v4 with: - path: .turbo - key: ${{ runner.os }}-turbo-${{ github.sha }} + path: | + ~/.pnpm-store + node_modules + key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-turbo- - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' + ${{ runner.os }}-pnpm- - name: Install pnpm run: npm install -g pnpm @@ -48,71 +45,16 @@ jobs: - name: Install dependencies run: | cd src/frontend - pnpm install --strict-peer-dependencies=false --frozen-lockfile + pnpm install --strict-peer-dependencies=false --no-frozen-lockfile pnpm add turbo --save-dev -w - type-check: - needs: [changes] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v3 - with: - version: 8 - - - name: Typescript Check - run: | - cd src/frontend - pnpm install - pnpm typescript - env: - NODE_OPTIONS: --max-old-space-size=4096 - - lint: - needs: [changes] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v3 - with: - version: 8 - - - name: Prettier check + - name: CI run: | cd src/frontend - pnpm install - pnpm format --check - - - name: Lint - run: | - cd src/frontend - pnpm lint - - build: - needs: [changes, lint, type-check] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v3 - with: - version: 8 - - - name: Build project - run: | - cd src/frontend - pnpm install - pnpm build - env: - NODE_OPTIONS: --max_old_space_size=4096 - - - name: Build Storybook - run: | - cd src/frontend - pnpm install - pnpm build-storybook + pnpm turbo typescript lint format build build-storybook --parallel required: - needs: [changes, lint, type-check, build] + needs: [changes] if: always() runs-on: ubuntu-latest steps: diff --git a/src/frontend/.gitignore b/src/frontend/.gitignore index f3550986..cb4a7e05 100644 --- a/src/frontend/.gitignore +++ b/src/frontend/.gitignore @@ -5,13 +5,6 @@ node_modules .pnp .pnp.js -# Local env files -.env -.env.local -.env.development.local -.env.test.local -.env.production.local - # Testing coverage @@ -27,7 +20,6 @@ out/ build dist - # Debug npm-debug.log* @@ -36,4 +28,49 @@ npm-debug.log* *.pem *storybook.log -*storybook-static \ No newline at end of file +*storybook-static + + +# Build outputs (Next.js, Storybook, TypeScript) +packages/**/dist/ +packages/ui/storybook-static/ +.next/ +.out/ +coverage/ + +# Turbo build cache +turbo/ +.vscode/ +turbo/turbo.db +turbo/turbo.db-shm +turbo/turbo.db-wal + +# Environment files (security-sensitive) +.env +.env.* # For different environment configurations (e.g. .env.local, .env.production) +.env.local + + +# Editor and OS-generated files +.DS_Store +Thumbs.db +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# TypeScript build artifacts +*.tsbuildinfo + +# Linting and formatting +eslintcache +.prettier-cache + +# Package manager lock files (choose the one you don't use) +package-lock.json +yarn.lock + +# Turbo cache outputs (if caching is enabled) +.pnpm-store/ +turbo/cache/ diff --git a/src/frontend/package.json b/src/frontend/package.json index 2de03536..2003a99b 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -6,11 +6,10 @@ "build": "turbo build", "dev": "turbo dev", "lint": "turbo lint", - "format": "prettier --write \"**/*.{ts,tsx,md}\"", - "storybook": "pnpm --filter @workspace/ui run storybook", - "build-storybook": "pnpm --filter @workspace/ui run build-storybook", - "danger": "danger ci --config tsconfig.danger.json", - "typescript": "tsc --noEmit" + "format": "turbo run format", + "storybook": "turbo run storybook --filter=@workspace/ui", + "build-storybook": "turbo run build-storybook --filter=@workspace/ui", + "typescript": "turbo run typescript" }, "devDependencies": { "@workspace/eslint-config": "workspace:*", diff --git a/src/frontend/packages/ui/.eslintignore b/src/frontend/packages/ui/.eslintignore new file mode 100644 index 00000000..75d07b8a --- /dev/null +++ b/src/frontend/packages/ui/.eslintignore @@ -0,0 +1 @@ +storybook-static/** \ No newline at end of file diff --git a/src/frontend/pnpm-lock.yaml b/src/frontend/pnpm-lock.yaml index ac77be09..cad9d232 100644 --- a/src/frontend/pnpm-lock.yaml +++ b/src/frontend/pnpm-lock.yaml @@ -59,7 +59,7 @@ importers: version: 5.64.2(@tanstack/react-query@5.64.2(react@18.3.1))(react@18.3.1) '@types/node': specifier: ^22.10.7 - version: 22.10.7 + version: 22.10.8 '@types/react': specifier: 19.0.7 version: 19.0.7 @@ -77,7 +77,7 @@ importers: version: 8.5.1 tailwindcss: specifier: ^3.4.17 - version: 3.4.17(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3)) + version: 3.4.17(ts-node@10.9.2(@types/node@22.10.8)(typescript@5.7.3)) typescript: specifier: ^5.7.3 version: 5.7.3 @@ -86,7 +86,7 @@ importers: devDependencies: '@next/eslint-plugin-next': specifier: ^15.1.0 - version: 15.1.5 + version: 15.1.6 '@typescript-eslint/eslint-plugin': specifier: ^8.15.0 version: 8.21.0(@typescript-eslint/parser@8.21.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3) @@ -136,7 +136,7 @@ importers: version: 1.1.1(@types/react@19.0.7)(react@19.0.0) '@radix-ui/react-toast': specifier: ^1.2.4 - version: 1.2.4(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.2.5(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -163,7 +163,7 @@ importers: version: 2.6.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))) + version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.10.8)(typescript@5.7.3))) zod: specifier: ^3.24.1 version: 3.24.1 @@ -173,7 +173,7 @@ importers: version: 3.2.4(react@19.0.0)(storybook@8.6.0-alpha.0(prettier@3.4.2)) '@storybook/addon-actions': specifier: ^8.5.0 - version: 8.5.0(storybook@8.6.0-alpha.0(prettier@3.4.2)) + version: 8.5.1(storybook@8.6.0-alpha.0(prettier@3.4.2)) '@storybook/addon-essentials': specifier: 8.6.0-alpha.0 version: 8.6.0-alpha.0(@types/react@19.0.7)(storybook@8.6.0-alpha.0(prettier@3.4.2)) @@ -191,16 +191,16 @@ importers: version: 8.6.0-alpha.0(@storybook/test@8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0-alpha.0(prettier@3.4.2))(typescript@5.7.3) '@storybook/react-vite': specifier: 8.6.0-alpha.0 - version: 8.6.0-alpha.0(@storybook/test@8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.31.0)(storybook@8.6.0-alpha.0(prettier@3.4.2))(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0)) + version: 8.6.0-alpha.0(@storybook/test@8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.31.0)(storybook@8.6.0-alpha.0(prettier@3.4.2))(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0)) '@storybook/test': specifier: 8.6.0-alpha.0 version: 8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2)) '@turbo/gen': specifier: ^2.3.3 - version: 2.3.3(@types/node@22.10.7)(typescript@5.7.3) + version: 2.3.3(@types/node@22.10.8)(typescript@5.7.3) '@types/node': specifier: ^22.10.7 - version: 22.10.7 + version: 22.10.8 '@types/react': specifier: 19.0.7 version: 19.0.7 @@ -209,7 +209,7 @@ importers: version: 19.0.3(@types/react@19.0.7) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0)) + version: 4.3.4(vite@6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0)) '@workspace/eslint-config': specifier: workspace:* version: link:../eslint-config @@ -227,13 +227,13 @@ importers: version: 8.6.0-alpha.0(prettier@3.4.2) tailwindcss: specifier: ^3.4.17 - version: 3.4.17(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3)) + version: 3.4.17(ts-node@10.9.2(@types/node@22.10.8)(typescript@5.7.3)) typescript: specifier: ^5.7.3 version: 5.7.3 vite: specifier: ^6.0.7 - version: 6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0) + version: 6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0) packages: @@ -581,8 +581,8 @@ packages: '@next/env@14.2.23': resolution: {integrity: sha512-CysUC9IO+2Bh0omJ3qrb47S8DtsTKbFidGm6ow4gXIG6reZybqxbkH2nhdEm1tC8SmgzDdpq3BIML0PWsmyUYA==} - '@next/eslint-plugin-next@15.1.5': - resolution: {integrity: sha512-3cCrXBybsqe94UxD6DBQCYCCiP9YohBMgZ5IzzPYHmPzj8oqNlhBii5b6o1HDDaRHdz2pVnSsAROCtrczy8O0g==} + '@next/eslint-plugin-next@15.1.6': + resolution: {integrity: sha512-+slMxhTgILUntZDGNgsKEYHUvpn72WP1YTlkmEhS51vnVd7S9jEEy0n9YAMcI21vUG4akTw9voWH02lrClt/yw==} '@next/swc-darwin-arm64@14.2.23': resolution: {integrity: sha512-WhtEntt6NcbABA8ypEoFd3uzq5iAnrl9AnZt9dXdO+PZLACE32z3a3qA5OoV20JrbJfSJ6Sd6EqGZTrlRnGxQQ==} @@ -743,8 +743,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dismissable-layer@1.1.3': - resolution: {integrity: sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==} + '@radix-ui/react-dismissable-layer@1.1.4': + resolution: {integrity: sha512-XDUI0IVYVSwjMXxM6P4Dfti7AH+Y4oS/TB+sglZ/EXc7cqLwGAmp1NlMrcUjj7ks6R5WTZuWKv44FBbLpwU3sA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -817,8 +817,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-toast@1.2.4': - resolution: {integrity: sha512-Sch9idFJHJTMH9YNpxxESqABcAFweJG4tKv+0zo0m5XBvUSL8FM5xKcJLFLXononpePs8IclyX1KieL5SDUNgA==} + '@radix-ui/react-toast@1.2.5': + resolution: {integrity: sha512-ZzUsAaOx8NdXZZKcFNDhbSlbsCUy8qQWmzTdgrlrhhZAOx2ofLtKrBDW9fkqhFvXgmtv560Uj16pkLkqML7SHA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -983,10 +983,10 @@ packages: cpu: [x64] os: [win32] - '@storybook/addon-actions@8.5.0': - resolution: {integrity: sha512-6CW9+17rk5eNx6I8EKqCxRKtsJFTR/lHL+xiJ6/iBWApIm8sg63vhXvUTJ58UixmIkT5oLh0+ESNPh+x10D8fw==} + '@storybook/addon-actions@8.5.1': + resolution: {integrity: sha512-oBBSpOJ6/rCdbdU1JxGCLernaCxALLWDIeZk6tLoQbtbsx/czD1sodqjcujjKwbQwNyZTf8xR8zsCSzG06dWDw==} peerDependencies: - storybook: ^8.5.0 + storybook: ^8.5.1 '@storybook/addon-actions@8.6.0-alpha.0': resolution: {integrity: sha512-ebY4n9twI05gWuu3Qv1o6LscFAY7pBbt3Ted22SfGH5YTvRvdstcU/4M7kqXt26X5LZeDfKCtIddnIvv/wMXsw==} @@ -1090,8 +1090,8 @@ packages: '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - '@storybook/icons@1.3.0': - resolution: {integrity: sha512-Nz/UzeYQdUZUhacrPyfkiiysSjydyjgg/p0P9HxB4p/WaJUUjMAcaoaLgy3EXx61zZJ3iD36WPuDkZs5QYrA0A==} + '@storybook/icons@1.3.1': + resolution: {integrity: sha512-tgiD2v9v/4sjGOliemoP/8bUe4+ZFpehcqdCVQcPiGZfV0kSBv34Ge+MafeKqM7SLwvGesrbOEOakaogSqGxiQ==} engines: {node: '>=14.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -1254,8 +1254,8 @@ packages: '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/node@22.10.7': - resolution: {integrity: sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==} + '@types/node@22.10.8': + resolution: {integrity: sha512-rk+QvAEGsbX/ZPiiyel6hJHNUS9cnSbPWVaZLvE+Er3tLqQFzWMz9JOfWW7XUmKvRPfxJfbl3qYWve+RGXncFw==} '@types/react-dom@19.0.3': resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} @@ -1597,8 +1597,8 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - chromatic@11.25.0: - resolution: {integrity: sha512-P2BVe0rRLS9WM+eSG3u1SRg0Mi2vopsdPs2FiXwUiPqZ6hs9fe66d3Pnt7CfQ22v2jThuPEXYjYEeuL75a16Bw==} + chromatic@11.25.1: + resolution: {integrity: sha512-D0NdcGOSy84hqgNnSY7FM4TzB77RymRTowjm4hb1CV4wbk1djKTV4SJbbYVCzHFD+n/NOg/wtZ9Y7sjiRdy8dA==} hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -1816,8 +1816,8 @@ packages: ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} - electron-to-chromium@1.5.84: - resolution: {integrity: sha512-I+DQ8xgafao9Ha6y0qjHHvpZ9OfyA1qKlkHkjywxzniORU2awxyz7f/iVJcULmrF2yrM3nHQf+iDjJtbbexd/g==} + electron-to-chromium@1.5.85: + resolution: {integrity: sha512-UgTI7ZHxtSjOUwV0vZLpqT604U1Z8L3bq8mAtAKtuRPlMZ/6dLFMYgYnLdXSi/urbVTP2ykDb9EDDUrdIzw4Qg==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3902,7 +3902,7 @@ snapshots: '@chromatic-com/storybook@3.2.4(react@19.0.0)(storybook@8.6.0-alpha.0(prettier@3.4.2))': dependencies: - chromatic: 11.25.0 + chromatic: 11.25.1 filesize: 10.1.6 jsonfile: 6.1.0 react-confetti: 6.2.2(react@19.0.0) @@ -4052,11 +4052,11 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0))': dependencies: magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.7.3) - vite: 6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0) optionalDependencies: typescript: 5.7.3 @@ -4090,7 +4090,7 @@ snapshots: '@next/env@14.2.23': {} - '@next/eslint-plugin-next@15.1.5': + '@next/eslint-plugin-next@15.1.6': dependencies: fast-glob: 3.3.1 @@ -4251,7 +4251,7 @@ snapshots: optionalDependencies: '@types/react': 19.0.7 - '@radix-ui/react-dismissable-layer@1.1.3(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-dismissable-layer@1.1.4(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.1 '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0) @@ -4309,13 +4309,13 @@ snapshots: optionalDependencies: '@types/react': 19.0.7 - '@radix-ui/react-toast@1.2.4(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-toast@1.2.5(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.1 '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.7)(react@19.0.0) '@radix-ui/react-context': 1.1.1(@types/react@19.0.7)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.7))(@types/react@19.0.7)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -4429,7 +4429,7 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.31.0': optional: true - '@storybook/addon-actions@8.5.0(storybook@8.6.0-alpha.0(prettier@3.4.2))': + '@storybook/addon-actions@8.5.1(storybook@8.6.0-alpha.0(prettier@3.4.2))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 @@ -4532,7 +4532,7 @@ snapshots: '@storybook/blocks@8.6.0-alpha.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.0-alpha.0(prettier@3.4.2))': dependencies: '@storybook/csf': 0.1.12 - '@storybook/icons': 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/icons': 1.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) storybook: 8.6.0-alpha.0(prettier@3.4.2) ts-dedent: 2.2.0 optionalDependencies: @@ -4542,20 +4542,20 @@ snapshots: '@storybook/blocks@8.6.0-alpha.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0-alpha.0(prettier@3.4.2))': dependencies: '@storybook/csf': 0.1.12 - '@storybook/icons': 1.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@storybook/icons': 1.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) storybook: 8.6.0-alpha.0(prettier@3.4.2) ts-dedent: 2.2.0 optionalDependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@storybook/builder-vite@8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2))(vite@6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0))': + '@storybook/builder-vite@8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2))(vite@6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0))': dependencies: '@storybook/csf-plugin': 8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2)) browser-assert: 1.2.1 storybook: 8.6.0-alpha.0(prettier@3.4.2) ts-dedent: 2.2.0 - vite: 6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0) '@storybook/components@8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2))': dependencies: @@ -4592,12 +4592,12 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/icons@1.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/icons@1.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@storybook/icons@1.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -4628,11 +4628,11 @@ snapshots: react-dom: 19.0.0(react@19.0.0) storybook: 8.6.0-alpha.0(prettier@3.4.2) - '@storybook/react-vite@8.6.0-alpha.0(@storybook/test@8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.31.0)(storybook@8.6.0-alpha.0(prettier@3.4.2))(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0))': + '@storybook/react-vite@8.6.0-alpha.0(@storybook/test@8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(rollup@4.31.0)(storybook@8.6.0-alpha.0(prettier@3.4.2))(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.7.3)(vite@6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.31.0) - '@storybook/builder-vite': 8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2))(vite@6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0)) + '@storybook/builder-vite': 8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2))(vite@6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0)) '@storybook/react': 8.6.0-alpha.0(@storybook/test@8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0-alpha.0(prettier@3.4.2))(typescript@5.7.3) find-up: 5.0.0 magic-string: 0.30.17 @@ -4642,7 +4642,7 @@ snapshots: resolve: 1.22.10 storybook: 8.6.0-alpha.0(prettier@3.4.2) tsconfig-paths: 4.2.0 - vite: 6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0) optionalDependencies: '@storybook/test': 8.6.0-alpha.0(storybook@8.6.0-alpha.0(prettier@3.4.2)) transitivePeerDependencies: @@ -4740,7 +4740,7 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@turbo/gen@2.3.3(@types/node@22.10.7)(typescript@5.7.3)': + '@turbo/gen@2.3.3(@types/node@22.10.8)(typescript@5.7.3)': dependencies: '@turbo/workspaces': 2.3.3 commander: 10.0.1 @@ -4750,7 +4750,7 @@ snapshots: node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.5.0 - ts-node: 10.9.2(@types/node@22.10.7)(typescript@5.7.3) + ts-node: 10.9.2(@types/node@22.10.8)(typescript@5.7.3) update-check: 1.5.4 validate-npm-package-name: 5.0.1 transitivePeerDependencies: @@ -4804,7 +4804,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.10.7 + '@types/node': 22.10.8 '@types/inquirer@6.5.0': dependencies: @@ -4815,7 +4815,7 @@ snapshots: '@types/minimatch@5.1.2': {} - '@types/node@22.10.7': + '@types/node@22.10.8': dependencies: undici-types: 6.20.0 @@ -4831,7 +4831,7 @@ snapshots: '@types/through@0.0.33': dependencies: - '@types/node': 22.10.7 + '@types/node': 22.10.8 '@types/tinycolor2@1.4.6': {} @@ -4916,14 +4916,14 @@ snapshots: '@ungap/structured-clone@1.2.1': {} - '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0) + vite: 6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -5151,7 +5151,7 @@ snapshots: browserslist@4.24.4: dependencies: caniuse-lite: 1.0.30001695 - electron-to-chromium: 1.5.84 + electron-to-chromium: 1.5.85 node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) @@ -5255,7 +5255,7 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chromatic@11.25.0: {} + chromatic@11.25.1: {} class-variance-authority@0.7.1: dependencies: @@ -5476,7 +5476,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - electron-to-chromium@1.5.84: {} + electron-to-chromium@1.5.85: {} emoji-regex@8.0.0: {} @@ -6779,13 +6779,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.1 - postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3)): + postcss-load-config@4.0.2(postcss@8.5.1)(ts-node@10.9.2(@types/node@22.10.8)(typescript@5.7.3)): dependencies: lilconfig: 3.1.3 yaml: 2.7.0 optionalDependencies: postcss: 8.5.1 - ts-node: 10.9.2(@types/node@22.10.7)(typescript@5.7.3) + ts-node: 10.9.2(@types/node@22.10.8)(typescript@5.7.3) postcss-nested@6.2.0(postcss@8.5.1): dependencies: @@ -7306,11 +7306,11 @@ snapshots: tailwind-merge@2.6.0: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3))): + tailwindcss-animate@1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.10.8)(typescript@5.7.3))): dependencies: - tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3)) + tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.10.8)(typescript@5.7.3)) - tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3)): + tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.10.8)(typescript@5.7.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -7329,7 +7329,7 @@ snapshots: postcss: 8.5.1 postcss-import: 15.1.0(postcss@8.5.1) postcss-js: 4.0.1(postcss@8.5.1) - postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3)) + postcss-load-config: 4.0.2(postcss@8.5.1)(ts-node@10.9.2(@types/node@22.10.8)(typescript@5.7.3)) postcss-nested: 6.2.0(postcss@8.5.1) postcss-selector-parser: 6.1.2 resolve: 1.22.10 @@ -7385,14 +7385,14 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@types/node@22.10.7)(typescript@5.7.3): + ts-node@10.9.2(@types/node@22.10.8)(typescript@5.7.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.10.7 + '@types/node': 22.10.8 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -7555,13 +7555,13 @@ snapshots: validate-npm-package-name@5.0.1: {} - vite@6.0.11(@types/node@22.10.7)(jiti@1.21.7)(yaml@2.7.0): + vite@6.0.11(@types/node@22.10.8)(jiti@1.21.7)(yaml@2.7.0): dependencies: esbuild: 0.24.2 postcss: 8.5.1 rollup: 4.31.0 optionalDependencies: - '@types/node': 22.10.7 + '@types/node': 22.10.8 fsevents: 2.3.3 jiti: 1.21.7 yaml: 2.7.0 diff --git a/src/frontend/turbo.json b/src/frontend/turbo.json index d6a7fe05..a698c599 100644 --- a/src/frontend/turbo.json +++ b/src/frontend/turbo.json @@ -5,17 +5,51 @@ "build": { "dependsOn": ["^build"], "inputs": ["$TURBO_DEFAULT$", ".env*"], - "outputs": [".next/**", "!.next/cache/**"] + "outputs": ["dist/**"] + }, + "build-storybook": { + "dependsOn": ["^build"], + "inputs": ["$TURBO_DEFAULT$", ".env*"], + "outputs": ["packages/ui/storybook-static/**"], + "cache": true, + "persistent": false + }, + "storybook": { + "dependsOn": ["^storybook"], + "inputs": ["$TURBO_DEFAULT$", ".env*"], + "outputs": ["packages/ui/storybook-static/**"], + "cache": true, + "persistent": false }, "lint": { - "dependsOn": ["^lint"] + "dependsOn": ["^lint"], + "inputs": ["$TURBO_DEFAULT$", "**/*.{js,ts,jsx,tsx}"], + "cache": false, + "persistent": false }, "check-types": { - "dependsOn": ["^check-types"] + "dependsOn": ["^check-types"], + "inputs": ["$TURBO_DEFAULT$", "tsconfig.json", "packages/**/tsconfig.json"], + "outputs": ["packages/**/dist/**"], + "cache": true, + "persistent": false }, "dev": { "cache": false, "persistent": true + }, + "format": { + "dependsOn": ["^format"], + "inputs": ["$TURBO_DEFAULT$", "**/*.{js,ts,jsx,tsx,json,md}"], + "cache": false, + "persistent": true + }, + "typescript": { + "dependsOn": ["^typescript"], + "inputs": ["$TURBO_DEFAULT$", "tsconfig.json", "packages/**/tsconfig.json"], + "outputs": ["packages/**/dist/**"], + "cache": true, + "persistent": false } } }