package.json•5.38 kB
{
"name": "dashboard",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "node checkBigBrain.mjs 6789 && { (sleep 2 ; open http://localhost:6789) & npm run dev:pure; }",
"dev:pure": "npm run build:generated && next dev --port 6789",
"build": "npm run build:generated && next build",
"build:generated": "python3 ../dashboard-common/scripts/build-convexServerTypes.py && npm run generateManagementApiSpec && npm run generateDeploymentApiSpec",
"start": "next start",
"lint": "bash ../dashboard-common/scripts/checkNode20.sh && next lint --max-warnings 0 --dir src/ && tsc",
"lint:fix": "bash ../dashboard-common/scripts/checkNode20.sh && next lint --fix --max-warnings 0 --dir src/",
"export": "next export",
"storybook": "echo 'Storybook has migrated to the `dashboard-storybook` package, please run `just run-storybook`'",
"test": "npm run checkManagementApiSpec && npm run checkDeploymentApiSpec && npm run build:generated && jest",
"clean": "shx rm -rf .next",
"corsAnywhere": "node cors-anywhere.js",
"pullEnv": "vercel env pull .env.local",
"generateApiSpec": "npm run generateManagementApiSpec && npm run generateDeploymentApiSpec",
"checkApiSpec": "npm run checkManagementApiSpec && npm run checkDeploymentApiSpec",
"generateManagementApiSpec": "openapi-typescript ./dashboard-management-openapi.json --output ./src/generatedApi.ts --root-types --root-types-no-schema-prefix",
"generateDeploymentApiSpec": "openapi-typescript ./dashboard-deployment-openapi.json --output ./src/generatedDeploymentApi.ts --root-types --root-types-no-schema-prefix",
"checkManagementApiSpec": "openapi-typescript ./dashboard-management-openapi.json --output ./src/generatedApi.ts --root-types --root-types-no-schema-prefix --check || (echo 'Dashboard API spec check failed. Run `just format-js` to fix.'; false)",
"checkDeploymentApiSpec": "openapi-typescript ./dashboard-deployment-openapi.json --output ./src/generatedDeploymentApi.ts --root-types --root-types-no-schema-prefix --check || (echo 'Dashboard API spec check failed. Run `just format-js` to fix.'; false)"
},
"dependencies": {
"@convex-dev/design-system": "workspace:*",
"@headlessui/react": "1.7.19",
"@heroicons/react": "2.2.0",
"@next/bundle-analyzer": "~12.3.0",
"@radix-ui/react-icons": "~1.3.0",
"@sentry/nextjs": "7.120.4",
"@stripe/react-stripe-js": "~2.9.0",
"@stripe/stripe-js": "~3.5.0",
"@team-plain/typescript-sdk": "~4.10.0",
"classnames": "^2.3.2",
"convex": "workspace:*",
"convex-analytics": "workspace:*",
"dashboard-common": "workspace:*",
"date-fns": "^2.29.3",
"fetch-retry": "~6.0.0",
"formik": "^2.4.6",
"launchdarkly-react-client-sdk": "^3.0.4",
"lodash": "~4.17.21",
"next": "^14.2.33",
"nprogress": "~0.2.0",
"react": "^18.0.0",
"react-day-picker": "~8.10.1",
"react-dom": "^18.0.0",
"react-popper": "^2.3.0",
"react-use": "~17.6.0",
"react-window": "1.8.11",
"recharts": "2.15.4",
"swr": "^2.2.1",
"system-udfs": "workspace:*",
"yup": "~0.32.11",
"zod": "^3.24.0",
"swr-openapi": "~5.3.0",
"openapi-fetch": "~0.14.0",
"react-sparklines": "~1.7.0",
"posthog-js": "~1.261.0",
"shx": "~0.3.4",
"cmdk": "~1.1.1",
"react-hotkeys-hook": "~4.4.0",
"@workos-inc/authkit-nextjs": "~2.5.0",
"@workos-inc/node": "~7.69.0"
},
"devDependencies": {
"@babel/core": "^7.27.1",
"@jest/types": "^29.6.0",
"@storybook/nextjs": "^9.1.2",
"@tailwindcss/forms": "^0.5.10",
"@tailwindcss/postcss": "^4.1.11",
"@testing-library/jest-dom": "~6.6.0",
"@testing-library/react": "~16.3.0",
"@testing-library/user-event": "~14.6.0",
"@types/jest": "^27.0.0",
"@types/lodash": "~4.17.0",
"@types/node": "^18.17.0",
"@types/nprogress": "~0.2.0",
"@types/react": "^18.0.0",
"@types/react-day-picker": "~5.3.0",
"@types/react-dom": "^18.0.0",
"@types/react-table": "^7.7.2",
"@types/react-window": "^1.8.5",
"@types/recharts": "^2.0.0",
"@types/testing-library__jest-dom": "~5.14.5",
"@typescript-eslint/eslint-plugin": "^6.7.4",
"@typescript-eslint/parser": "^6.7.4",
"babel-loader": "^8.2.5",
"chalk": "5",
"cors-anywhere": "~0.4.4",
"dotenv": "^16.4.7",
"eslint": "^8.29.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-airbnb-typescript": "^18.0.0",
"eslint-config-next": "~13.4.16",
"eslint-config-prettier": "^10.0.0",
"eslint-plugin-better-tailwindcss": "^3.4.4",
"eslint-plugin-import": "^2.30.0",
"eslint-plugin-jsx-a11y": "^6.6.0",
"eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^4.6.2",
"jest": "^29.6.0",
"jest-environment-jsdom": "^29.5.0",
"next-router-mock": "~0.9.11",
"next-themes": "~0.4.0",
"postcss": "^8.4.19",
"prettier": "3.6.2",
"prettier-plugin-tailwindcss": "~0.6.11",
"tailwind-scrollbar": "^4.0.2",
"tailwindcss": "^4.1.11",
"typescript": "^5.9.2",
"vercel": "^46.0.0",
"webpack": "^5.99.9",
"@testing-library/dom": "~10.4.0",
"openapi-typescript": "~7.8.0",
"openapi-typescript-helpers": "~0.0.15",
"@types/react-sparklines": "~1.7.5",
"eslint-plugin-boundaries": "~5.0.1"
}
}