A decentralized music tracking and discovery platform built on AT Protocol 馃幍
listenbrainz spotify atproto lastfm musicbrainz scrobbling
at main 3.6 kB view raw
1{ 2 "name": "@rocksky/api", 3 "version": "0.0.1", 4 "private": true, 5 "type": "module", 6 "module": "dist/index.js", 7 "scripts": { 8 "lexgen": "lex gen-server ./src/lexicon ./src/tealfm/lexicons/teal/**/* ./lexicons/**/* ./lexicons/* ./src/tealfm/lexicons/**/*", 9 "dev": "concurrently 'tsx --watch ./src/index.ts' 'tsx --watch ./src/server.ts'", 10 "prod": "tsx ./src/index.ts", 11 "build": "pkgroll", 12 "sync": "tsx ./src/scripts/sync.ts", 13 "meili:sync": "tsx ./src/scripts/meili.ts", 14 "sync:library": "tsx ./src/scripts/sync-library.ts", 15 "avatar": "tsx ./src/scripts/avatar.ts", 16 "genres": "tsx ./src/scripts/genres.ts", 17 "spotify": "tsx ./src/scripts/spotify.ts", 18 "exp": "tsx ./src/scripts/exp.ts", 19 "pkl:eval": "pkl eval -f json", 20 "pkl:gen": "tsx ./scripts/pkl.ts", 21 "dev:xrpc": "tsx --watch ./src/server.ts", 22 "prod:xrpc": "tsx ./src/server.ts", 23 "db:migrate": "drizzle-kit migrate", 24 "db:gen-migration": "drizzle-kit generate", 25 "prod:all": "concurrently 'tsx ./src/index.ts' 'tsx ./src/server.ts'", 26 "format": "biome format src", 27 "lint": "biome lint src", 28 "feed": "tsx ./src/scripts/feed.ts", 29 "dedup": "bun ./src/scripts/dedup.ts", 30 "seed:feed": "tsx ./src/scripts/seed-feed.ts", 31 "likes": "tsx ./src/scripts/likes.ts" 32 }, 33 "dependencies": { 34 "@atproto/api": "^0.13.31", 35 "@atproto/common": "^0.4.6", 36 "@atproto/identity": "^0.4.5", 37 "@atproto/jwk-jose": "0.1.5", 38 "@atproto/lex-cli": "^0.5.6", 39 "@atproto/lexicon": "^0.4.5", 40 "@atproto/oauth-client-node": "0.2.14", 41 "@atproto/sync": "^0.1.11", 42 "@atproto/syntax": "^0.3.1", 43 "@atproto/xrpc-server": "^0.7.8", 44 "@hono/node-server": "^1.13.8", 45 "@hono/node-ws": "^1.1.0", 46 "@opentelemetry/api": "^1.9.0", 47 "@opentelemetry/auto-instrumentations-node": "^0.58.0", 48 "@opentelemetry/exporter-metrics-otlp-http": "^0.200.0", 49 "@opentelemetry/exporter-trace-otlp-http": "^0.200.0", 50 "@opentelemetry/resources": "^2.0.0", 51 "@opentelemetry/sdk-metrics": "^2.0.0", 52 "@opentelemetry/sdk-node": "^0.200.0", 53 "@opentelemetry/semantic-conventions": "^1.32.0", 54 "@pyroscope/nodejs": "^0.4.5", 55 "@types/prompts": "^2.4.9", 56 "assert": "^2.1.0", 57 "axios": "^1.7.9", 58 "better-sqlite3": "^12.4.1", 59 "chalk": "^5.4.1", 60 "chanfana": "^2.0.2", 61 "consola": "^3.4.2", 62 "cors": "^2.8.5", 63 "dayjs": "^1.11.13", 64 "dotenv": "^16.4.7", 65 "drizzle-orm": "^0.44.2", 66 "dropbox": "^10.34.0", 67 "effect": "^3.14.22", 68 "envalid": "^8.0.0", 69 "express": "^5.1.0", 70 "googleapis": "^146.0.0", 71 "hono": "^4.4.7", 72 "http-proxy-middleware": "^3.0.5", 73 "ioredis": "^5.8.1", 74 "iron-session": "^8.0.4", 75 "jose": "^6.1.0", 76 "jsonwebtoken": "^9.0.2", 77 "kysely": "^0.27.5", 78 "lodash": "^4.17.21", 79 "nats": "^2.29.2", 80 "node-cron": "^4.2.1", 81 "pg": "^8.13.3", 82 "prompts": "^2.4.2", 83 "ramda": "^0.30.1", 84 "redis": "^4.7.0", 85 "redlock": "^5.0.0-beta.2", 86 "unstorage": "^1.14.4", 87 "url": "^0.11.4", 88 "uuid": "^11.1.0", 89 "ws": "^8.18.1", 90 "zod": "^3.24.1" 91 }, 92 "devDependencies": { 93 "@biomejs/biome": "^2.2.3", 94 "@pkl-community/pkl": "^0.28.2", 95 "@types/express": "^5.0.2", 96 "@types/lodash": "^4.17.17", 97 "@types/node": "^22.13.0", 98 "@types/ramda": "^0.30.2", 99 "@types/service-worker-mock": "^2.0.1", 100 "concurrently": "^9.2.0", 101 "drizzle-kit": "^0.31.1", 102 "pkgroll": "^2.6.1", 103 "tsx": "^4.19.2", 104 "zx": "^8.5.4" 105 }, 106 "exports": { 107 ".": { 108 "import": "./dist/index.js" 109 } 110 } 111}