{ "name": "@compass/api", "description": "Backend API endpoints", "version": "1.0.0", "private": true, "scripts": { "watch:serve": "tsx watch src/serve.ts", "watch:compile": "npx concurrently \"tsc -b --watch --preserveWatchOutput\" \"(cd ../../common && tsc-alias --watch)\" \"(cd ../shared && tsc-alias --watch)\" \"(cd ../email && tsc-alias --watch)\" \"tsc-alias --watch\"", "dev": "yarn watch:serve", "prod": "npx concurrently -n COMPILE,SERVER -c cyan,green \"yarn watch:compile\" \"yarn watch:serve\"", "build": "yarn compile && yarn dist:clean && yarn dist:copy", "build:fast": "yarn compile && yarn dist:copy", "clean": "rm -rf lib && (cd ../../common && rm -rf lib) && (cd ../shared && rm -rf lib) && (cd ../email && rm -rf lib)", "compile": "tsc -b && tsc-alias && (cd ../../common && tsc-alias) && (cd ../shared && tsc-alias) && (cd ../email && tsc-alias) && cp -r src/public/ lib/", "debug": "nodemon -r tsconfig-paths/register --watch src -e ts --watch ../../common/src --watch ../shared/src --exec \"yarn build && node --inspect-brk src/serve.ts\"", "dist": "yarn dist:clean && yarn dist:copy", "dist:clean": "rm -rf dist && mkdir -p dist/common/lib dist/backend/shared/lib dist/backend/api/lib dist/backend/email/lib", "dist:copy": "rsync -a --delete ../../common/lib/ dist/common/lib && rsync -a --delete ../shared/lib/ dist/backend/shared/lib && rsync -a --delete ../email/lib/ dist/backend/email/lib && rsync -a --delete ./lib/* dist/backend/api/lib && cp ../../yarn.lock dist && cp package.json dist && cp package.json dist/backend/api", "watch": "tsc -w", "verify": "yarn --cwd=../.. verify", "verify:dir": "npx eslint . --max-warnings 0", "regen-types": "cd ../supabase && make ENV=prod regen-types", "regen-types-dev": "cd ../supabase && make ENV=dev regen-types-dev" }, "engines": { "node": ">=20.0.0" }, "main": "src/serve.ts", "dependencies": { "@google-cloud/monitoring": "4.0.0", "@google-cloud/secret-manager": "4.2.1", "@react-email/components": "0.0.33", "@supabase/supabase-js": "2.38.5", "@tiptap/core": "2.3.2", "@tiptap/extension-blockquote": "2.3.2", "@tiptap/extension-bold": "2.3.2", "@tiptap/extension-bubble-menu": "2.3.2", "@tiptap/extension-floating-menu": "2.3.2", "@tiptap/extension-image": "2.3.2", "@tiptap/extension-link": "2.3.2", "@tiptap/extension-mention": "2.3.2", "@tiptap/html": "2.3.2", "@tiptap/pm": "2.3.2", "@tiptap/starter-kit": "2.3.2", "@tiptap/suggestion": "2.3.2", "colors": "1.4.0", "cors": "2.8.5", "dayjs": "1.11.4", "express": "5.0.0", "firebase-admin": "13.5.0", "gcp-metadata": "6.1.0", "jsonwebtoken": "9.0.0", "lodash": "4.17.21", "openapi-types": "12.1.3", "pg-promise": "11.4.1", "posthog-node": "4.11.0", "react": "18.2.0", "react-dom": "18.2.0", "resend": "4.1.2", "string-similarity": "4.0.4", "swagger-jsdoc": "6.2.8", "swagger-ui-express": "5.0.1", "tsconfig-paths": "4.2.0", "twitter-api-v2": "1.15.0", "web-push": "3.6.7", "ws": "8.17.1", "zod": "3.22.3" }, "devDependencies": { "@types/cors": "2.8.17", "@types/react": "18.3.5", "@types/react-dom": "18.3.0", "@types/swagger-ui-express": "4.1.8", "@types/web-push": "3.6.4", "@types/ws": "8.5.10" } }