diff --git a/apps/api/makefile b/apps/api/makefile index 5ca2b7553..6e2daa121 100644 --- a/apps/api/makefile +++ b/apps/api/makefile @@ -1,3 +1,6 @@ +build: + cargo build --release --bin buster_server + dev: docker stop buster-redis-make || true && \ docker rm buster-redis-make || true && \ @@ -22,6 +25,15 @@ update-seed: --exclude-table=users \ > libs/database/seed.sql +start: + @PID=$$(lsof -ti:3001); \ + if [ -n "$$PID" ]; then \ + echo "Killing process on port 3001 (PID: $$PID)"; \ + kill -9 $$PID; \ + sleep 1; \ + fi; \ + ./target/release/buster_server + stop: docker stop buster-redis-make || true && \ docker rm buster-redis-make || true && \ diff --git a/apps/api/package.json b/apps/api/package.json index 1fca6078c..bf29a64fb 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -4,8 +4,10 @@ "description": "Legacy API for Buster. This package.json is just used to make the build and dev work.", "type": "module", "scripts": { + "build": "make build", "dev": "make fast-no-migrations", - "dev:fast": "make fast-no-migrations" + "dev:fast": "make fast-no-migrations", + "start": "make start" }, "dependencies": { "@buster/database": "workspace:*" diff --git a/apps/api/turbo.json b/apps/api/turbo.json index 6d5887e39..fe9b1a200 100644 --- a/apps/api/turbo.json +++ b/apps/api/turbo.json @@ -2,14 +2,31 @@ "$schema": "https://turbo.build/schema.json", "extends": ["//"], "tasks": { + "build": { + "dependsOn": ["@buster/database#build"], + "outputs": ["target/release/**"], + "inputs": [ + "server/**/*", + "libs/**/*", + "Cargo.toml", + "Cargo.lock" + ] + }, + "start": { + "dependsOn": ["@buster/database#start", "build"], + "cache": true, + "persistent": true + }, "dev": { "dependsOn": ["@buster/database#start"], - "with": [], + "cache": false, + "persistent": true, "outputs": [] }, "dev:fast": { "dependsOn": ["@buster/database#start"], - "with": [], + "cache": false, + "persistent": true, "outputs": [] } } diff --git a/apps/electric-server/turbo.json b/apps/electric-server/turbo.json index a078a6fb8..0405baaa1 100644 --- a/apps/electric-server/turbo.json +++ b/apps/electric-server/turbo.json @@ -4,14 +4,20 @@ "tasks": { "start": { "dependsOn": ["@buster/database#start"], + "cache": true, + "persistent": false, "outputs": [] }, "dev": { "dependsOn": ["@buster/database#start"], + "cache": false, + "persistent": true, "outputs": [] }, "dev:fast": { "dependsOn": ["@buster/database#start"], + "cache": false, + "persistent": true, "outputs": [] } } diff --git a/apps/server/turbo.json b/apps/server/turbo.json index ed5b6e67d..d6f6ffeb7 100644 --- a/apps/server/turbo.json +++ b/apps/server/turbo.json @@ -6,6 +6,11 @@ "dependsOn": ["^build"], "outputs": ["dist/**"] }, + "start": { + "dependsOn": ["@buster/database#start", "build"], + "cache": true, + "persistent": true + }, "dev": { "cache": false, "persistent": true, diff --git a/packages/supabase/.env.example b/apps/supabase/.env.example similarity index 100% rename from packages/supabase/.env.example rename to apps/supabase/.env.example diff --git a/packages/supabase/.gitignore b/apps/supabase/.gitignore similarity index 100% rename from packages/supabase/.gitignore rename to apps/supabase/.gitignore diff --git a/packages/supabase/README.md b/apps/supabase/README.md similarity index 100% rename from packages/supabase/README.md rename to apps/supabase/README.md diff --git a/packages/supabase/biome.json b/apps/supabase/biome.json similarity index 100% rename from packages/supabase/biome.json rename to apps/supabase/biome.json diff --git a/packages/supabase/dev/data.sql b/apps/supabase/dev/data.sql similarity index 100% rename from packages/supabase/dev/data.sql rename to apps/supabase/dev/data.sql diff --git a/packages/supabase/dev/docker-compose.dev.yml b/apps/supabase/dev/docker-compose.dev.yml similarity index 100% rename from packages/supabase/dev/docker-compose.dev.yml rename to apps/supabase/dev/docker-compose.dev.yml diff --git a/packages/supabase/docker-compose.s3.yml b/apps/supabase/docker-compose.s3.yml similarity index 100% rename from packages/supabase/docker-compose.s3.yml rename to apps/supabase/docker-compose.s3.yml diff --git a/packages/supabase/docker-compose.yml b/apps/supabase/docker-compose.yml similarity index 100% rename from packages/supabase/docker-compose.yml rename to apps/supabase/docker-compose.yml diff --git a/apps/supabase/package.json b/apps/supabase/package.json new file mode 100644 index 000000000..cd92635ac --- /dev/null +++ b/apps/supabase/package.json @@ -0,0 +1,13 @@ +{ + "name": "@buster-app/supabase", + "version": "0.0.1", + "private": false, + "dependencies": { + "@buster/database": "workspace:*" + }, + "scripts": { + "lint": "biome check . --write", + "lint:fix": "biome check . --write", + "start": "echo 'Please run this command through Turbo from the root: turbo start'" + } +} diff --git a/packages/supabase/reset.sh b/apps/supabase/reset.sh similarity index 100% rename from packages/supabase/reset.sh rename to apps/supabase/reset.sh diff --git a/packages/supabase/tsconfig.json b/apps/supabase/tsconfig.json similarity index 100% rename from packages/supabase/tsconfig.json rename to apps/supabase/tsconfig.json diff --git a/apps/supabase/turbo.json b/apps/supabase/turbo.json new file mode 100644 index 000000000..c40a4dfc1 --- /dev/null +++ b/apps/supabase/turbo.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://turbo.build/schema.json", + "extends": ["//"], + "tasks": { + "build": { + "outputs": [] + }, + "start": { + "dependsOn": ["@buster/database#start"], + "cache": false, + "persistent": false, + "outputs": [] + } + } +} diff --git a/packages/supabase/volumes/api/kong.yml b/apps/supabase/volumes/api/kong.yml similarity index 100% rename from packages/supabase/volumes/api/kong.yml rename to apps/supabase/volumes/api/kong.yml diff --git a/packages/supabase/volumes/db/_supabase.sql b/apps/supabase/volumes/db/_supabase.sql similarity index 100% rename from packages/supabase/volumes/db/_supabase.sql rename to apps/supabase/volumes/db/_supabase.sql diff --git a/packages/supabase/volumes/db/init/data.sql b/apps/supabase/volumes/db/init/data.sql similarity index 100% rename from packages/supabase/volumes/db/init/data.sql rename to apps/supabase/volumes/db/init/data.sql diff --git a/packages/supabase/volumes/db/jwt.sql b/apps/supabase/volumes/db/jwt.sql similarity index 100% rename from packages/supabase/volumes/db/jwt.sql rename to apps/supabase/volumes/db/jwt.sql diff --git a/packages/supabase/volumes/db/logs.sql b/apps/supabase/volumes/db/logs.sql similarity index 100% rename from packages/supabase/volumes/db/logs.sql rename to apps/supabase/volumes/db/logs.sql diff --git a/packages/supabase/volumes/db/pooler.sql b/apps/supabase/volumes/db/pooler.sql similarity index 100% rename from packages/supabase/volumes/db/pooler.sql rename to apps/supabase/volumes/db/pooler.sql diff --git a/packages/supabase/volumes/db/realtime.sql b/apps/supabase/volumes/db/realtime.sql similarity index 100% rename from packages/supabase/volumes/db/realtime.sql rename to apps/supabase/volumes/db/realtime.sql diff --git a/packages/supabase/volumes/db/roles.sql b/apps/supabase/volumes/db/roles.sql similarity index 100% rename from packages/supabase/volumes/db/roles.sql rename to apps/supabase/volumes/db/roles.sql diff --git a/packages/supabase/volumes/db/webhooks.sql b/apps/supabase/volumes/db/webhooks.sql similarity index 100% rename from packages/supabase/volumes/db/webhooks.sql rename to apps/supabase/volumes/db/webhooks.sql diff --git a/packages/supabase/volumes/functions/hello/index.ts b/apps/supabase/volumes/functions/hello/index.ts similarity index 100% rename from packages/supabase/volumes/functions/hello/index.ts rename to apps/supabase/volumes/functions/hello/index.ts diff --git a/packages/supabase/volumes/functions/main/index.ts b/apps/supabase/volumes/functions/main/index.ts similarity index 100% rename from packages/supabase/volumes/functions/main/index.ts rename to apps/supabase/volumes/functions/main/index.ts diff --git a/packages/supabase/volumes/logs/vector.yml b/apps/supabase/volumes/logs/vector.yml similarity index 100% rename from packages/supabase/volumes/logs/vector.yml rename to apps/supabase/volumes/logs/vector.yml diff --git a/packages/supabase/volumes/pooler/pooler.exs b/apps/supabase/volumes/pooler/pooler.exs similarity index 100% rename from packages/supabase/volumes/pooler/pooler.exs rename to apps/supabase/volumes/pooler/pooler.exs diff --git a/apps/trigger/package.json b/apps/trigger/package.json index 710f55f48..89dd0cca9 100644 --- a/apps/trigger/package.json +++ b/apps/trigger/package.json @@ -29,6 +29,7 @@ "@buster/search": "workspace:*", "@buster/server-shared": "workspace:*", "@buster/slack": "workspace:*", + "@buster-app/supabase": "workspace:*", "@buster/test-utils": "workspace:*", "@buster/typescript-config": "workspace:*", "@buster/vitest-config": "workspace:*", diff --git a/apps/trigger/turbo.json b/apps/trigger/turbo.json index 9d1704167..d8feee7c2 100644 --- a/apps/trigger/turbo.json +++ b/apps/trigger/turbo.json @@ -2,17 +2,27 @@ "extends": ["//"], "$schema": "https://turbo.build/schema.json", "tasks": { + "build": { + "dependsOn": ["^build"], + "outputs": [] + }, + "start": { + "cache": false, + "persistent": true, + "dependsOn": ["^build"], + "with": ["@buster-app/supabase#start"] + }, "dev": { "cache": false, "persistent": true, "dependsOn": ["^build"], - "with": ["@buster/database#dev"] + "with": ["@buster-app/supabase#start"] }, "dev:fast": { "cache": false, "persistent": true, "dependsOn": ["^build"], - "with": ["@buster/database#dev"] + "with": ["@buster-app/supabase#start"] } } } diff --git a/apps/web/package.json b/apps/web/package.json index c233cf44c..a757afc1f 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -5,7 +5,8 @@ "version": "0.0.4", "scripts": { "prebuild": "tsx scripts/validate-env.ts", - "build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build -- --typecheck", + "build:vercel": "pnpm prebuild && cross-env NODE_OPTIONS=--max-old-space-size=8192 vite build -- --typecheck", + "build": "pnpm build:local", "build:staging": "cross-env NODE_OPTIONS=--max-old-space-size=8192 pnpm run prebuild && vite build --mode staging -- --typecheck", "build:production": "cross-env NODE_OPTIONS=--max-old-space-size=8192 pnpm run prebuild && vite build --mode production -- --typecheck", "build:local": "pnpm prebuild && cross-env NODE_OPTIONS=--max-old-space-size=12288 vite build -- --typecheck --local", @@ -16,8 +17,8 @@ "generate-routes": "tsr generate", "lint": "biome check --write", "serve": "vite preview", - "start": "echo 'For Vercel deployment, no start command is needed. Use start:local for local builds'", - "start:local": "bun .output/server/index.mjs", + "start": "pnpm start:local", + "start:local": "bun ./.output/server/index.mjs", "storybook": "storybook dev -p 6006", "test": "vitest run", "test:ui": "vitest --ui", diff --git a/apps/web/turbo.json b/apps/web/turbo.json index 7d51f2363..ba76cae2e 100644 --- a/apps/web/turbo.json +++ b/apps/web/turbo.json @@ -16,6 +16,11 @@ ], "outputs": [".output/**", ".vercel/**"] }, + "start": { + "dependsOn": ["build"], + "cache": true, + "persistent": true + }, "test": { "inputs": [ "src/**/*", @@ -28,6 +33,8 @@ }, "dev": { "dependsOn": ["@buster/server-shared#build"], + "cache": false, + "persistent": true, "inputs": [ "src/**/*", "!src/**/*.test.{ts,tsx,js,jsx}", @@ -40,6 +47,8 @@ }, "dev:fast": { "dependsOn": ["@buster/server-shared#build"], + "cache": false, + "persistent": true, "inputs": [ "src/**/*", "!src/**/*.test.{ts,tsx,js,jsx}", diff --git a/packages/database/turbo.json b/packages/database/turbo.json index 4e716b9cd..486f77978 100644 --- a/packages/database/turbo.json +++ b/packages/database/turbo.json @@ -13,7 +13,8 @@ }, "start": { "cache": false, - "persistent": false + "persistent": false, + "outputs": [] }, "db:reset": { "cache": false, diff --git a/packages/supabase/package.json b/packages/supabase/package.json deleted file mode 100644 index f6a1930ec..000000000 --- a/packages/supabase/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "@buster/supabase", - "version": "0.0.1", - "private": false, - "scripts": { - "lint": "biome check . --write", - "lint:fix": "biome check . --write" - } -} diff --git a/packages/supabase/turbo.json b/packages/supabase/turbo.json deleted file mode 100644 index b743d5d2c..000000000 --- a/packages/supabase/turbo.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://turbo.build/schema.json", - "extends": ["//"], - "tasks": { - "build": { - "outputs": [] - } - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0643c4c7c..d6be0a34e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -329,6 +329,12 @@ importers: specifier: ^4.17.12 version: 4.17.12 + apps/supabase: + dependencies: + '@buster/database': + specifier: workspace:* + version: link:../../packages/database + apps/trigger: dependencies: '@aws-sdk/client-s3': @@ -337,6 +343,9 @@ importers: '@aws-sdk/s3-request-presigner': specifier: 'catalog:' version: 3.888.0 + '@buster-app/supabase': + specifier: workspace:* + version: link:../supabase '@buster/access-controls': specifier: workspace:* version: link:../../packages/access-controls @@ -1336,8 +1345,6 @@ importers: specifier: 'catalog:' version: 4.20.5 - packages/supabase: {} - packages/test-utils: dependencies: '@buster/database': diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ff65d4701..86271d8a6 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -7,6 +7,7 @@ packages: - apps/api - apps/cli - apps/web + - apps/supabase catalog: '@aws-sdk/client-s3': ^3.888.0