Files
AutoGPT/autogpt_platform/frontend/package.json
Reinier van der Leer 34009bc749 feat(frontend): Upgrade to Next.js v15 + update config (#10042)
- Resolves #10041

Upgrading to Next v15 isn't trivial, but still a good idea if not simply
necessary.

### Changes 🏗️

- Upgrade Next.js from `v14.2.26` to `v15.3.2`
- Fix usage of now-async APIs `params`, `searchParams`, `headers`
([docs](https://nextjs.org/docs/app/guides/upgrading/version-15#async-request-apis-breaking-change))

- Update Next+TypeScript configs
  - Set build target to ES2022 for better performance
  - Unignore TypeScript build errors
  - Set `hideSourceMaps: false` because OSS FTW :)
  - Remove obsolete `webpack.config.js`

- Fix existing warnings/errors
  - Fix Sentry missing navigation hook warning
- Fix `DYNAMIC_SERVER_USAGE` build error on `/profile` and
`/marketplace`
- Moved `getStoreData` to a proper server action `getMarketplaceData`
  - Fix breaking CSS syntax error in `customnode.css`

- Use Turbopack for faster dev+test build times
- Add separate build step to frontend CI workflow: this also fixes the
test timing out if the build takes too long

Other technical improvements:
- Wrap `handleSortChange` in `MarketplaceSearchPage` in `useCallback`
- Fix typing in `ProfileInfoForm`
- Improve output of frontend tests

> [!NOTE]
> Next prints this error (in dev mode):
> ```
> Error: Route "/marketplace" used `cookies().getAll()`. `cookies()`
should be awaited before using its value. Learn more:
https://nextjs.org/docs/messages/sync-dynamic-apis
>     at Object.getAll (src/lib/supabase/getServerSupabase.ts:16:31)
>     at getAll (../../src/cookies.ts:115:41)
> ...
> ```
> As far as I can see, this isn't breaking, and will become a warning in
prod. See also [the Next docs about this
issue](https://nextjs.org/docs/messages/sync-dynamic-apis)

### Checklist 📋

#### For code changes:
- [x] I have clearly listed my changes in the PR description
- [x] I have made a test plan
- [x] I have tested my changes according to the test plan:
  - [x] Follow the full release QA test script

#### For configuration changes:
- [x] I have included a list of my configuration changes in the PR
description (under **Changes**)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-04 15:38:08 +00:00

133 lines
4.4 KiB
JSON

{
"name": "frontend",
"version": "0.3.4",
"private": true,
"scripts": {
"dev": "next dev --turbo",
"dev:test": "NODE_ENV=test && next dev --turbo",
"build": "SKIP_STORYBOOK_TESTS=true next build",
"start": "next start",
"start:standalone": "cd .next/standalone && node server.js",
"lint": "next lint && prettier --check .",
"format": "prettier --write .",
"type-check": "tsc --noEmit",
"test": "next build --turbo && playwright test",
"test-ui": "next build --turbo && playwright test --ui",
"test:no-build": "playwright test",
"gentests": "playwright codegen http://localhost:3000",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build",
"test-storybook": "test-storybook",
"test-storybook:ci": "concurrently -k -s first -n \"SB,TEST\" -c \"magenta,blue\" \"pnpm run build-storybook -- --quiet && npx http-server storybook-static --port 6006 --silent\" \"wait-on tcp:6006 && pnpm run test-storybook\""
},
"browserslist": [
"defaults"
],
"dependencies": {
"@faker-js/faker": "^9.8.0",
"@hookform/resolvers": "^3.10.0",
"@next/third-parties": "^15.3.2",
"@radix-ui/react-alert-dialog": "^1.1.13",
"@radix-ui/react-avatar": "^1.1.9",
"@radix-ui/react-checkbox": "^1.3.1",
"@radix-ui/react-collapsible": "^1.1.10",
"@radix-ui/react-context-menu": "^2.2.14",
"@radix-ui/react-dialog": "^1.1.2",
"@radix-ui/react-dropdown-menu": "^2.1.14",
"@radix-ui/react-icons": "^1.3.2",
"@radix-ui/react-label": "^2.1.6",
"@radix-ui/react-popover": "^1.1.13",
"@radix-ui/react-radio-group": "^1.3.6",
"@radix-ui/react-scroll-area": "^1.2.8",
"@radix-ui/react-select": "^2.2.4",
"@radix-ui/react-separator": "^1.1.6",
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-switch": "^1.2.4",
"@radix-ui/react-tabs": "^1.1.11",
"@radix-ui/react-toast": "^1.2.13",
"@radix-ui/react-tooltip": "^1.2.6",
"@sentry/nextjs": "^9",
"@supabase/ssr": "^0.6.1",
"@supabase/supabase-js": "^2.49.4",
"@tanstack/react-table": "^8.21.3",
"@types/jaro-winkler": "^0.2.4",
"@xyflow/react": "12.6.4",
"ajv": "^8.17.1",
"boring-avatars": "^1.11.2",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "1.1.1",
"cookie": "1.0.2",
"date-fns": "^4.1.0",
"dotenv": "^16.5.0",
"elliptic": "6.6.1",
"embla-carousel-react": "^8.6.0",
"framer-motion": "^12.12.1",
"geist": "^1.4.2",
"jaro-winkler": "^0.2.8",
"launchdarkly-react-client-sdk": "^3.7.0",
"lodash": "^4.17.21",
"lucide-react": "^0.510.0",
"moment": "^2.30.1",
"next": "^15.3.2",
"next-themes": "^0.4.6",
"party-js": "^2.2.0",
"react": "^18",
"react-day-picker": "^9.7.0",
"react-dom": "^18",
"react-drag-drop-files": "^2.4.0",
"react-hook-form": "^7.56.3",
"react-icons": "^5.5.0",
"react-markdown": "^9.0.3",
"react-modal": "^3.16.3",
"react-shepherd": "^6.1.8",
"recharts": "^2.15.3",
"shepherd.js": "^14.5.0",
"tailwind-merge": "^2.6.0",
"tailwindcss-animate": "^1.0.7",
"uuid": "^11.1.0",
"zod": "^3.24.4"
},
"devDependencies": {
"@chromatic-com/storybook": "^3.2.4",
"@playwright/test": "^1.50.1",
"@storybook/addon-a11y": "^8.5.3",
"@storybook/addon-essentials": "^8.5.3",
"@storybook/addon-interactions": "^8.5.3",
"@storybook/addon-links": "^8.5.3",
"@storybook/addon-onboarding": "^8.5.3",
"@storybook/blocks": "^8.5.3",
"@storybook/nextjs": "^8.5.3",
"@storybook/react": "^8.3.5",
"@storybook/test": "^8.3.5",
"@storybook/test-runner": "^0.21.0",
"@types/canvas-confetti": "^1.9.0",
"@types/lodash": "^4.17.17",
"@types/negotiator": "^0.6.3",
"@types/node": "^22.13.0",
"@types/react": "^18",
"@types/react-dom": "^18",
"@types/react-modal": "^3.16.3",
"axe-playwright": "^2.0.3",
"chromatic": "^11.25.2",
"concurrently": "^9.1.2",
"eslint": "^8",
"eslint-config-next": "15.1.6",
"eslint-plugin-storybook": "^0.11.2",
"msw": "^2.7.0",
"msw-storybook-addon": "^2.0.3",
"postcss": "^8",
"prettier": "^3.3.3",
"prettier-plugin-tailwindcss": "^0.6.11",
"storybook": "^8.5.3",
"tailwindcss": "^3.4.17",
"typescript": "^5"
},
"msw": {
"workerDirectory": [
"public"
]
},
"packageManager": "pnpm@10.11.1+sha256.211e9990148495c9fc30b7e58396f7eeda83d9243eb75407ea4f8650fb161f7c"
}