mirror of
https://github.com/supabase/supabase.git
synced 2026-10-11 20:35:07 +03:00
Adds the `nitro/vite` plugin so `vite build` produces a `.output/` directory Vercel can pick up via the Build Output API. Along the way, two SSR-prerender blockers had to be resolved: - `@graphiql/react` transitively loads a codemirror addon that touches `document` at module-evaluation time, which crashes Nitro's prerender (it boots a real Node server and fetches `/`). Added an SSR-only Vite plugin that swaps `components/interfaces/GraphQL/GraphiQL.tsx` for a no-op default export — stubbing the single internal consumer is simpler than matching graphiql's 30+ named exports to satisfy Rolldown's static analysis, and no SSR-reachable route renders it. - `tslib`'s Node ESM entry is a CJS-interop wrapper (`modules/index.js` re-exporting from the UMD `tslib.js`). Rolldown inlines the UMD body but flattens its IIFE, so `__extends` ends up declared but never assigned — crashing any configcat-common / AWS SDK code path that uses it. Force Nitro to prefer the `module` export condition so it picks up the pure-ESM `tslib.es6.mjs`, mark it as `noExternals` so the external-trace copy pass can't reintroduce the CJS wrapper at runtime, and inline it in Vite's SSR bundle for the same reason. Also updates package scripts to use Vite as the primary build/dev/start commands and preserves the Next.js equivalents as `*:next` so the old pipeline keeps working during the migration. `.output/` is gitignored.
223 lines
8.3 KiB
JSON
223 lines
8.3 KiB
JSON
{
|
|
"name": "studio",
|
|
"version": "0.0.9",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"preinstall": "npx only-allow pnpm",
|
|
"dev": "vite dev --port ${STUDIO_PORT:-8082}",
|
|
"build": "vite build",
|
|
"start": "vite preview --port 8082",
|
|
"dev:next": "next dev -p ${STUDIO_PORT:-8082}",
|
|
"build:next": "next build && if [ \"$SKIP_ASSET_UPLOAD\" != \"1\" ]; then ./../../scripts/upload-static-assets.sh; fi",
|
|
"start:next": "next start -p 8082",
|
|
"lint": "eslint .",
|
|
"lint:ratchet": "tsx scripts/ratchet-eslint-rules.ts --rule react-hooks/exhaustive-deps --rule import/no-anonymous-default-export --rule @tanstack/query/exhaustive-deps --rule @typescript-eslint/no-explicit-any --rule no-restricted-imports --rule no-restricted-exports --rule react/no-unstable-nested-components",
|
|
"lint:ratchet:type-checks": "tsx scripts/ratchet-eslint-rules.ts --rule studio/require-safe-sql-fragment --eslint-args \"--config eslint.type-checks.config.cjs .\"",
|
|
"clean": "rimraf node_modules tsconfig.tsbuildinfo .next .turbo",
|
|
"test": "vitest --run --coverage",
|
|
"test:watch": "vitest watch",
|
|
"test:ui": "vitest --ui",
|
|
"test:update": "vitest --run --update",
|
|
"test:ci": "vitest --run --coverage",
|
|
"test:report": "open coverage/lcov-report/index.html",
|
|
"deploy:staging": "VERCEL_ORG_ID=team_E6KJ1W561hMTjon1QSwOh0WO VERCEL_PROJECT_ID=QmcmhbiAtCMFTAHCuGgQscNbke4TzgWULECctNcKmxWCoT vercel --prod -A .vercel/staging.json",
|
|
"pretypecheck": "next typegen",
|
|
"typecheck": "tsc --noEmit",
|
|
"build:deno-types": "tsx scripts/deno-types.ts",
|
|
"build:graphql-types": "tsx scripts/download-graphql-schema.mts && pnpm graphql-codegen --config scripts/codegen.ts",
|
|
"build:graphql-types:watch": "pnpm graphql-codegen --config scripts/codegen.ts --watch",
|
|
"evals:setup": "cp node_modules/libpg-query/wasm/libpg-query.wasm evals/libpg-query.wasm",
|
|
"evals:run": "braintrust eval --no-send-logs evals/assistant.eval.ts",
|
|
"evals:upload": "braintrust eval evals/assistant.eval.ts",
|
|
"scorers:deploy": "IS_BRAINTRUST_PUSH=true braintrust push evals/scorer-online.ts"
|
|
},
|
|
"dependencies": {
|
|
"@ai-sdk/amazon-bedrock": "^4.0.81",
|
|
"@ai-sdk/mcp": "^1.0.25",
|
|
"@ai-sdk/openai": "^3.0.41",
|
|
"@ai-sdk/provider": "^3.0.8",
|
|
"@ai-sdk/provider-utils": "^4.0.19",
|
|
"@ai-sdk/react": "^3.0.118",
|
|
"@aws-sdk/credential-providers": "^3.830.0",
|
|
"@dagrejs/dagre": "^1.0.4",
|
|
"@dnd-kit/core": "^6.1.0",
|
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
"@dnd-kit/sortable": "^8.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@graphiql/react": "^0.19.4",
|
|
"@graphiql/toolkit": "^0.9.1",
|
|
"@hcaptcha/react-hcaptcha": "^1.12.0",
|
|
"@heroicons/react": "^2.1.3",
|
|
"@hookform/resolvers": "^3.1.1",
|
|
"@mjackson/multipart-parser": "^0.10.1",
|
|
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
"@monaco-editor/react": "^4.6.0",
|
|
"@next/bundle-analyzer": "16.2.3",
|
|
"@number-flow/react": "^0.3.2",
|
|
"@radix-ui/react-slider": "^1.1.2",
|
|
"@radix-ui/react-slot": "^1.2.0",
|
|
"@radix-ui/react-visually-hidden": "^1.2.3",
|
|
"@sentry/nextjs": "catalog:",
|
|
"@sentry/react": "^10.27.0",
|
|
"@std/path": "npm:@jsr/std__path@^1.0.8",
|
|
"@stripe/react-stripe-js": "^3.7.0",
|
|
"@stripe/stripe-js": "^7.5.0",
|
|
"@supabase/auth-js": "catalog:",
|
|
"@supabase/mcp-server-supabase": "^0.7.0",
|
|
"@supabase/mcp-utils": "^0.4.0",
|
|
"@supabase/pg-meta": "workspace:*",
|
|
"@supabase/realtime-js": "catalog:",
|
|
"@supabase/shared-types": "0.1.88",
|
|
"@supabase/sql-to-rest": "^0.1.6",
|
|
"@supabase/supabase-js": "catalog:",
|
|
"@tanstack/react-devtools": "^0.10.2",
|
|
"@tanstack/react-hotkeys": "^0.9.1",
|
|
"@tanstack/react-query": "^5.0.0",
|
|
"@tanstack/react-query-devtools": "^5.0.0",
|
|
"@tanstack/react-router": "^1.168.10",
|
|
"@tanstack/react-router-devtools": "^1.166.11",
|
|
"@tanstack/react-router-ssr-query": "^1.166.10",
|
|
"@tanstack/react-start": "^1.167.16",
|
|
"@tanstack/react-table": "^8.21.3",
|
|
"@tanstack/react-virtual": "^3.13.12",
|
|
"@types/d3-geo": "^3.1.0",
|
|
"@uidotdev/usehooks": "^2.4.1",
|
|
"@vercel/functions": "^2.1.0",
|
|
"@xyflow/react": "^12.10.1",
|
|
"@zip.js/zip.js": "^2.7.29",
|
|
"ai": "^6.0.116",
|
|
"ai-commands": "workspace:*",
|
|
"awesome-debounce-promise": "^2.1.0",
|
|
"common": "workspace:*",
|
|
"common-tags": "^1.8.2",
|
|
"config": "workspace:*",
|
|
"cron-parser": "^4.9.0",
|
|
"cronstrue": "^2.50.0",
|
|
"crypto-js": "^4.2.0",
|
|
"d3-geo": "^3.1.1",
|
|
"dayjs": "^1.11.10",
|
|
"dev-tools": "workspace:*",
|
|
"file-saver": "^2.0.5",
|
|
"framer-motion": "^11.18.2",
|
|
"generate-password-browser": "^1.1.0",
|
|
"html-to-image": "^1.11.13",
|
|
"http-status": "^2.1.0",
|
|
"icons": "workspace:*",
|
|
"idb": "^8.0.2",
|
|
"immutability-helper": "^3.1.1",
|
|
"ip-num": "^1.5.1",
|
|
"json-logic-js": "^2.0.2",
|
|
"lodash": "catalog:",
|
|
"lucide-react": "^0.436.0",
|
|
"markdown-table": "^3.0.3",
|
|
"memoize-one": "^5.0.1",
|
|
"mime-db": "^1.53.0",
|
|
"monaco-editor": "0.52.2",
|
|
"next": "catalog:",
|
|
"next-themes": "^0.3.0",
|
|
"nitro": "3.0.260415-beta",
|
|
"nuqs": "2.7.1",
|
|
"openai": "^4.104.0",
|
|
"openapi-fetch": "0.12.4",
|
|
"papaparse": "^5.3.1",
|
|
"path-to-regexp": "^8.0.0",
|
|
"pg-minify": "^1.6.3",
|
|
"randombytes": "^2.1.0",
|
|
"react": "catalog:",
|
|
"react-data-grid": "7.0.0-beta.47",
|
|
"react-day-picker": "^9.11.1",
|
|
"react-dom": "catalog:",
|
|
"react-error-boundary": "^4.0.13",
|
|
"react-grid-layout": "^1.4.2",
|
|
"react-hook-form": "^7.71.2",
|
|
"react-inlinesvg": "^4.0.4",
|
|
"react-intersection-observer": "^9.5.3",
|
|
"react-markdown": "^10.1.0",
|
|
"react-resizable": "3.0.5",
|
|
"react-simple-maps": "4.0.0-beta.6",
|
|
"react-use": "^17.5.0",
|
|
"recharts": "catalog:",
|
|
"remark-gfm": "^4.0.0",
|
|
"shared-data": "workspace:*",
|
|
"sonner": "^1.5.0",
|
|
"sql-formatter": "^15.0.0",
|
|
"sqlstring": "^2.3.2",
|
|
"streamdown": "^1.3.0",
|
|
"stripe-experiment-sync": "1.0.31",
|
|
"tus-js-client": "^4.1.0",
|
|
"ui": "workspace:*",
|
|
"ui-patterns": "workspace:*",
|
|
"use-debounce": "^7.0.1",
|
|
"use-stick-to-bottom": "^1.1.1",
|
|
"uuid": "^9.0.1",
|
|
"valtio": "catalog:",
|
|
"zod": "catalog:",
|
|
"zxcvbn": "^4.4.2"
|
|
},
|
|
"devDependencies": {
|
|
"@faker-js/faker": "^9.9.0",
|
|
"@graphql-codegen/cli": "5.0.5",
|
|
"@graphql-typed-document-node/core": "^3.2.0",
|
|
"@radix-ui/react-use-escape-keydown": "^1.0.3",
|
|
"@smithy/property-provider": "^4.0.4",
|
|
"@supabase/postgres-meta": "^0.64.4",
|
|
"@tailwindcss/container-queries": "^0.1.1",
|
|
"@tanstack/devtools-vite": "^0.6.0",
|
|
"@testing-library/dom": "^10.0.0",
|
|
"@testing-library/jest-dom": "^6.6.0",
|
|
"@testing-library/react": "^16.0.0",
|
|
"@testing-library/user-event": "^14.0.0",
|
|
"@types/common-tags": "^1.8.1",
|
|
"@types/crypto-js": "^4.2.2",
|
|
"@types/file-saver": "^2.0.2",
|
|
"@types/json-logic-js": "^1.2.1",
|
|
"@types/lodash": "^4.14.172",
|
|
"@types/markdown-table": "^3.0.0",
|
|
"@types/mime-db": "^1.43.5",
|
|
"@types/node": "catalog:",
|
|
"@types/papaparse": "^5.3.1",
|
|
"@types/randombytes": "^2.0.3",
|
|
"@types/react": "catalog:",
|
|
"@types/react-beautiful-dnd": "^13.1.2",
|
|
"@types/react-datepicker": "^4.3.4",
|
|
"@types/react-dom": "catalog:",
|
|
"@types/react-grid-layout": "^1.3.0",
|
|
"@types/react-simple-maps": "^3.0.1",
|
|
"@types/recharts": "^1.8.23",
|
|
"@types/sqlstring": "^2.3.0",
|
|
"@types/uuid": "^8.3.4",
|
|
"@types/zxcvbn": "^4.4.1",
|
|
"@typescript-eslint/utils": "8.48.0",
|
|
"@vitejs/plugin-react": "catalog:",
|
|
"@vitest/coverage-v8": "catalog:",
|
|
"@vitest/ui": "catalog:",
|
|
"api-types": "workspace:*",
|
|
"autoevals": "^0.0.132",
|
|
"braintrust": "^3.4.0",
|
|
"common": "workspace:*",
|
|
"config": "workspace:*",
|
|
"date-fns": "^2.30.0",
|
|
"eslint-config-supabase": "workspace:*",
|
|
"eslint-plugin-barrel-files": "^2.0.7",
|
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
"graphql-ws": "5.14.1",
|
|
"import-in-the-middle": "^2.0.0",
|
|
"jsdom-testing-mocks": "^1.13.1",
|
|
"libpg-query": "17.6.0",
|
|
"msw": "^2.3.0",
|
|
"next-router-mock": "^0.9.13",
|
|
"node-mocks-http": "^1.17.2",
|
|
"postcss": "^8.5.3",
|
|
"raw-loader": "^4.0.2",
|
|
"require-in-the-middle": "^8.0.0",
|
|
"tailwindcss": "catalog:",
|
|
"tsconfig": "workspace:*",
|
|
"tsx": "catalog:",
|
|
"typescript": "catalog:",
|
|
"vite": "catalog:",
|
|
"vite-tsconfig-paths": "catalog:",
|
|
"vitest": "catalog:"
|
|
}
|
|
}
|