{ "name": "teal", "private": true, "version": "0.0.0", "packageManager": "pnpm@11.5.2+sha512.71c631e382066efc25625d5cf029075de07b61b37f6e27350fbd84b1bda5864c8c1967adc280776b45c30a715c0359a3be08fef42d5bb09e2b99029979692916", "scripts": { "dev": "./scripts/dev-local.sh", "dev:proxy": "./scripts/dev-local.sh --proxy", "dev:apps": "turbo dev --env-mode=loose --filter=@teal/amethyst --filter=@repo/aqua --filter=@repo/cadet --filter=@repo/satellite", "build": "pnpm turbo run build --filter='./packages/*' --filter='./apps/*'", "build:rust": "turbo run build:rust", "backfill": "./scripts/backfill-tap.sh", "backfill:lightrail": "SQLX_OFFLINE=true cargo run -p cadet --bin lightrail-backfill", "backfill:lightrail:retry": "LIGHTRAIL_BACKFILL_RETRY_FAILED=1 SQLX_OFFLINE=true cargo run -p cadet --bin lightrail-backfill", "tunnel:up": "./scripts/dev-tunnel.sh up", "tunnel:down": "./scripts/dev-tunnel.sh down", "tunnel:status": "./scripts/dev-tunnel.sh status", "tunnel:logs": "./scripts/dev-tunnel.sh logs", "tunnel:verify": "./scripts/dev-tunnel.sh verify", "typecheck": "pnpm --filter=@teal/amethyst exec tsc --noEmit", "test": "turbo run test test:rust", "rust:fmt": "pnpm rust:fmt:services && pnpm rust:fmt:apps", "rust:clippy": "pnpm rust:clippy:services && pnpm rust:clippy:apps", "rust:fmt:services": "cd services && cargo fmt", "rust:clippy:services": "cd services && cargo clippy -- -D warnings", "rust:fmt:apps": "for dir in apps/*/; do if [ -f \"$dir/Cargo.toml\" ]; then echo \"Formatting $dir\" && cd \"$dir\" && cargo fmt && cd ../..; fi; done", "rust:clippy:apps": "for dir in apps/*/; do if [ -f \"$dir/Cargo.toml\" ]; then echo \"Linting $dir\" && cd \"$dir\" && cargo clippy -- -D warnings && cd ../..; fi; done", "fix": "biome lint --apply . && biome format --write . && biome check . --apply", "hooks:install": "./scripts/install-git-hooks.sh", "hooks:install-precommit": "pre-commit install", "postinstall": "node scripts/postinstall.mjs", "nuke": "rimraf node_modules */*/node_modules", "lex:gen-server": "turbo lex:gen-server", "format": "prettier --write .", "lex:gen": "cd tools/lexicon-cli && node dist/index.js gen", "lex:watch": "cd tools/lexicon-cli && node dist/index.js watch", "lex:validate": "pnpm --filter=@teal/lexicons lex:validate", "lex:diff": "cd tools/lexicon-cli && node dist/index.js diff", "lex:build-amethyst": "pnpm lex:gen-server && pnpm turbo build --filter=@teal/amethyst", "lex:dev": "pnpm lex:gen-server && pnpm turbo dev --filter=@teal/amethyst", "db:migrate": "sqlx migrate run", "db:migrate:revert": "sqlx migrate revert", "db:create": "sqlx database create", "db:drop": "sqlx database drop", "db:reset": "sqlx database drop && sqlx database create && sqlx migrate run", "db:prepare": "cargo sqlx prepare --workspace", "eval:auth": "tsx scripts/eval/evaluate.ts --auth-only", "eval:run": "tsx scripts/eval/evaluate.ts", "eval:resolve-lb": "tsx scripts/eval/listenbrainz-resolve.ts", "test:musicbrainz": "pnpm test --filter=@teal/amethyst -- --testPathPattern=\"musicbrainz|fuzzy\" --passWithNoTests" }, "dependencies": { "@atproto/oauth-client": "^0.7.9", "@ianvs/prettier-plugin-sort-imports": "^4.7.1", "prettier": "^3.9.4", "prettier-plugin-tailwindcss": "^0.8.0" }, "devDependencies": { "@types/better-sqlite3": "^7.6.13", "@types/node": "^26.1.1", "better-sqlite3": "^12.11.1", "biome": "^0.3.3", "dotenv": "^17.4.2", "rimraf": "^6.1.3", "tsx": "^4.23.0", "turbo": "^2.10.4" }, "workspaces": [ "apps/*", "packages/*", "services/*", "tools/*" ] }