mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 17:35:10 +03:00
Upgrades the monorepo to TypeScript 7.0.2, released 2026-07-08. `tsc` is now the native Go compiler ([announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/)) — full turbo typecheck drops from ~56s to ~19s locally. TS 7.0 ships **without a programmatic API** (it lands in 7.1), so this uses Microsoft's recommended side-by-side setup: the `typescript` name resolves to `@typescript/typescript6` (the 6.0 API republished) for API consumers — typescript-eslint and Next.js build typechecking — while `@typescript/native` (the real `typescript@7.0.2`) owns the `tsc` bin that typecheck scripts run. Exactly one version of each is in the lockfile; nothing imports the native package as a library. When 7.1 + tool support lands we can collapse back to a single `typescript` dep in the catalog. **Changed:** - `pnpm-workspace.yaml`: catalog aliases for `typescript` / `@typescript/native` - 17 package.json files: `@typescript/native` added beside each `typescript` dep so every package's `tsc` is the native binary - `apps/studio/tsconfig.json`: exclude `dist/` (gitignored build output) from typechecking **Fixed** (real type errors TS 6 under-reported): - `packages/ui-patterns` CodeBlock: `borderLeft: null` → `undefined` (`CSSProperties` doesn't accept null) - `apps/www` CodeBlock: removed a JSX `@ts-ignore` comment that tsgo doesn't honor and fixed what it masked (untyped `.js` theme objects, possibly-undefined highlighter children) ⚠️ **Merge timing:** the new packages are inside pnpm's 3-day `minimumReleaseAge` window until ~July 11. Installs from the committed lockfile are unaffected (resolution is skipped), but anything that forces a re-resolution before then will fail — hold off merging until the window passes. Note for editors: the compat package has no `lib/tsserver.js`, so VS Code's "Use Workspace Version" won't work — use the bundled TS or the TypeScript Native Preview extension. ## To test - `pnpm install && pnpm typecheck` — all 15 tasks green, and `./node_modules/.bin/tsc --version` prints 7.0.2 - `pnpm lint --filter=studio` — typescript-eslint still parses (resolves the 6.0 API) - `pnpm build --filter=design-system` (or any Next app) — Next's tsconfig validation and build typecheck still work - CodeBlock rendering on www (syntax highlighting, line highlights with/without border) — the two fixes are behavior-neutral but worth an eyeball <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Improvements / New Features** * Enhanced TypeScript tooling support across the workspace for smoother development builds and checks. * **Bug Fixes** * Code blocks render more reliably when content is empty or missing. * Highlighted code line styling applies more consistently. * **Maintenance** * Studio TypeScript builds now avoid including generated output (such as `dist`) during compilation. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Alaister Young <10985857+alaister@users.noreply.github.com> Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
81 lines
4.0 KiB
JSON
81 lines
4.0 KiB
JSON
{
|
|
"name": "supabase",
|
|
"description": "The Postgres Development Platform.",
|
|
"version": "0.0.0",
|
|
"author": "Supabase, Inc.",
|
|
"license": "Apache-2.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"preinstall": "npx only-allow pnpm",
|
|
"build": "turbo run build",
|
|
"build:studio": "turbo run build --filter=studio",
|
|
"build:studio:docker": "docker build . -f apps/studio/Dockerfile --target production -t supabase-studio:local --build-arg NEXT_PUBLIC_STUDIO_AUTH_MODE=supabase --no-cache",
|
|
"build:design-system": "turbo run build --filter=design-system",
|
|
"build:docs": "turbo run build --filter=docs",
|
|
"clean": "turbo run clean --parallel && rimraf -G node_modules/{*,.bin,.modules.yaml} .turbo/cache",
|
|
"dev": "turbo run dev --parallel",
|
|
"dev:studio": "turbo run dev --filter=studio --parallel",
|
|
"dev:studio-local": "pnpm setup:cli && NODE_ENV=test pnpm --prefix ./apps/studio dev",
|
|
"dev:docs": "turbo run dev --filter=docs --parallel",
|
|
"dev:www": "turbo run dev --filter=www --parallel",
|
|
"dev:design-system": "turbo run dev --filter=design-system --parallel",
|
|
"lint": "turbo run lint",
|
|
"typecheck": "turbo --continue typecheck",
|
|
"test:prettier": "SORT_IMPORTS=false prettier --config prettier.config.mjs --cache --check '{apps,packages,blocks,examples,i18n}/**/*.{js,jsx,ts,tsx,css,md,mdx,json}'",
|
|
"format": "SORT_IMPORTS=false prettier --config prettier.config.mjs --cache --write '{apps,packages,blocks,examples,i18n}/**/*.{js,jsx,ts,tsx,css,md,mdx,json}'",
|
|
"test:docs": "turbo run test --filter=docs",
|
|
"test:ui": "turbo run test --filter=ui",
|
|
"test:ui-patterns": "turbo run test --filter=ui-patterns",
|
|
"test:studio": "turbo run test --filter=studio",
|
|
"test:studio:watch": "turbo run test --filter=studio -- watch",
|
|
"e2e:setup:cli": "supabase stop --all --no-backup --workdir ./e2e/studio; supabase start --exclude studio,mailpit --workdir ./e2e/studio && supabase status --output json --workdir ./e2e/studio > keys.json && node scripts/generateLocalEnv.js",
|
|
"e2e:setup:selfhosted": "SKIP_ASSET_UPLOAD=1 pnpm e2e:setup:cli && NODE_ENV=test MODE=test NODE_OPTIONS=\"--max-old-space-size=4096\" pnpm run build:studio && NODE_ENV=test MODE=test pnpm --prefix ./apps/studio start",
|
|
"e2e:setup:selfhosted:start-studio": "SKIP_ASSET_UPLOAD=1 NODE_ENV=test MODE=test pnpm --prefix ./apps/studio start",
|
|
"e2e:setup:platform": "SKIP_ASSET_UPLOAD=1 NODE_OPTIONS=\"--max-old-space-size=4096\" pnpm run build:studio && pnpm --prefix ./apps/studio start",
|
|
"e2e": "pnpm --prefix e2e/studio run e2e",
|
|
"e2e:ui": "pnpm --prefix e2e/studio run e2e:ui",
|
|
"perf:kong": "ab -t 5 -c 20 -T application/json http://localhost:8000/",
|
|
"perf:meta": "ab -t 5 -c 20 -T application/json http://localhost:5555/tables",
|
|
"setup:cli": "supabase start -x studio && supabase status --output json > keys.json && node scripts/generateLocalEnv.js",
|
|
"generate:types": "supabase gen types typescript --local > ./supabase/functions/common/database-types.ts",
|
|
"api:codegen": "cd packages/api-types && pnpm run codegen",
|
|
"knip": "pnpx knip@~5.50.0",
|
|
"authorize-vercel-deploys": "tsx scripts/authorizeVercelDeploys.ts"
|
|
},
|
|
"devDependencies": {
|
|
"@aws-sdk/client-secrets-manager": "^3.1041.0",
|
|
"@ianvs/prettier-plugin-sort-imports": "^4.7.0",
|
|
"@types/node": "catalog:",
|
|
"eslint": "^9.0.0",
|
|
"jsdom": "^28.1.0",
|
|
"prettier": "^3.8.0",
|
|
"prettier-plugin-sql-cst": "^0.18.0",
|
|
"rimraf": "^6.0.0",
|
|
"supabase": "^2.76.10",
|
|
"supports-color": "^8.0.0",
|
|
"tailwindcss": "catalog:",
|
|
"tsx": "catalog:",
|
|
"turbo": "2.9.14",
|
|
"@typescript/native": "catalog:",
|
|
"typescript": "catalog:",
|
|
"zod": "catalog:"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/supabase/supabase.git"
|
|
},
|
|
"engines": {
|
|
"pnpm": "10.24",
|
|
"node": ">=22"
|
|
},
|
|
"keywords": [
|
|
"postgres",
|
|
"firebase",
|
|
"storage",
|
|
"functions",
|
|
"database",
|
|
"auth"
|
|
],
|
|
"packageManager": "pnpm@10.24.0"
|
|
}
|