mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-01-09 15:17:59 -05:00
This pull request sets up and configures Orval for API client generation. It automates the process of creating TypeScript clients from the backend's OpenAPI specification, improving development efficiency and reducing manual code maintenance. ### Changes 🏗️ - Configures Orval with a new configuration file (`orval.config.ts`). - Adds scripts to `package.json` for fetching the OpenAPI spec and generating the API client. - Implements a custom mutator for handling authentication. - Adds API client generation as a step in the CI workflow. - Adds `.gitignore` entry for generated API client files. - Adds a security middleware to prevent caching of sensitive data. ### 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] Verified that the API client is generated correctly. - [x] Confirmed that the custom mutator is functioning as expected for authentication. - [x] Ensured that the new CI workflow step for API client generation is successful. - [x] Tested generated API calls #### For configuration changes: - [x] `.env.example` is updated or already compatible with my changes - [ ] `docker-compose.yml` is updated or already compatible with my changes - [x] I have included a list of my configuration changes in the PR description (under **Changes**)
138 lines
4.8 KiB
JSON
138 lines
4.8 KiB
JSON
{
|
|
"name": "frontend",
|
|
"version": "0.3.4",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev --turbo",
|
|
"dev:test": "NODE_ENV=test && next dev --turbo",
|
|
"build": "pnpm run generate:api-client && 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\"",
|
|
"fetch:openapi": "curl http://localhost:8006/openapi.json > ./src/api/openapi.json && prettier --write ./src/api/openapi.json",
|
|
"generate:api-client": "orval --config ./orval.config.ts",
|
|
"generate:api-all": "pnpm run fetch:openapi && pnpm run generate:api-client"
|
|
},
|
|
"browserslist": [
|
|
"defaults"
|
|
],
|
|
"dependencies": {
|
|
"@faker-js/faker": "9.8.0",
|
|
"@hookform/resolvers": "5.1.1",
|
|
"@next/third-parties": "15.3.3",
|
|
"@phosphor-icons/react": "2.1.10",
|
|
"@radix-ui/react-alert-dialog": "1.1.14",
|
|
"@radix-ui/react-avatar": "1.1.10",
|
|
"@radix-ui/react-checkbox": "1.3.2",
|
|
"@radix-ui/react-collapsible": "1.1.11",
|
|
"@radix-ui/react-context-menu": "2.2.15",
|
|
"@radix-ui/react-dialog": "1.1.14",
|
|
"@radix-ui/react-dropdown-menu": "2.1.15",
|
|
"@radix-ui/react-icons": "1.3.2",
|
|
"@radix-ui/react-label": "2.1.7",
|
|
"@radix-ui/react-popover": "1.1.14",
|
|
"@radix-ui/react-radio-group": "1.3.7",
|
|
"@radix-ui/react-scroll-area": "1.2.9",
|
|
"@radix-ui/react-select": "2.2.5",
|
|
"@radix-ui/react-separator": "1.1.7",
|
|
"@radix-ui/react-slot": "1.2.3",
|
|
"@radix-ui/react-switch": "1.2.5",
|
|
"@radix-ui/react-tabs": "1.1.12",
|
|
"@radix-ui/react-toast": "1.2.14",
|
|
"@radix-ui/react-tooltip": "1.2.7",
|
|
"@sentry/nextjs": "9.27.0",
|
|
"@supabase/ssr": "0.6.1",
|
|
"@supabase/supabase-js": "2.50.0",
|
|
"@tanstack/react-query": "5.80.7",
|
|
"@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.16.0",
|
|
"geist": "1.4.2",
|
|
"jaro-winkler": "0.2.8",
|
|
"launchdarkly-react-client-sdk": "3.8.1",
|
|
"lodash": "4.17.21",
|
|
"lucide-react": "0.513.0",
|
|
"moment": "2.30.1",
|
|
"next": "15.3.3",
|
|
"next-themes": "0.4.6",
|
|
"party-js": "2.2.0",
|
|
"react": "18.3.1",
|
|
"react-day-picker": "9.7.0",
|
|
"react-dom": "18.3.1",
|
|
"react-drag-drop-files": "2.4.0",
|
|
"react-hook-form": "7.57.0",
|
|
"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.25.56"
|
|
},
|
|
"devDependencies": {
|
|
"@chromatic-com/storybook": "4.0.0",
|
|
"@playwright/test": "1.53.1",
|
|
"@storybook/addon-a11y": "9.0.12",
|
|
"@storybook/addon-docs": "9.0.12",
|
|
"@storybook/addon-links": "9.0.12",
|
|
"@storybook/addon-onboarding": "9.0.12",
|
|
"@storybook/nextjs": "9.0.12",
|
|
"@tanstack/eslint-plugin-query": "5.78.0",
|
|
"@tanstack/react-query-devtools": "5.80.10",
|
|
"@types/canvas-confetti": "1.9.0",
|
|
"@types/lodash": "4.17.18",
|
|
"@types/negotiator": "0.6.4",
|
|
"@types/node": "22.15.30",
|
|
"@types/react": "18.3.17",
|
|
"@types/react-dom": "18.3.5",
|
|
"@types/react-modal": "3.16.3",
|
|
"axe-playwright": "2.1.0",
|
|
"chromatic": "11.25.2",
|
|
"concurrently": "9.1.2",
|
|
"eslint": "8.57.1",
|
|
"eslint-config-next": "15.3.4",
|
|
"eslint-plugin-storybook": "9.0.12",
|
|
"import-in-the-middle": "1.14.2",
|
|
"msw": "2.10.2",
|
|
"msw-storybook-addon": "2.0.5",
|
|
"orval": "7.10.0",
|
|
"postcss": "8.5.6",
|
|
"prettier": "3.5.3",
|
|
"prettier-plugin-tailwindcss": "0.6.12",
|
|
"require-in-the-middle": "7.5.2",
|
|
"storybook": "9.0.12",
|
|
"tailwindcss": "3.4.17",
|
|
"typescript": "5.8.3"
|
|
},
|
|
"msw": {
|
|
"workerDirectory": [
|
|
"public"
|
|
]
|
|
},
|
|
"packageManager": "pnpm@10.11.1+sha256.211e9990148495c9fc30b7e58396f7eeda83d9243eb75407ea4f8650fb161f7c"
|
|
}
|