Your music, beautifully tracked. All yours. (coming soon) teal.fm
teal-fm atproto

upgrade part 2 (bad edition)

-1
apps/aqua/package.json
··· 27 "@hono/node-server": "^1.13.7", 28 "@libsql/client": "^0.14.0", 29 "dotenv": "^16.4.5", 30 - "drizzle-orm": "^0.36.1", 31 "envalid": "^8.0.0", 32 "hono": "^4.6.9", 33 "jose": "^5.9.6",
··· 27 "@hono/node-server": "^1.13.7", 28 "@libsql/client": "^0.14.0", 29 "dotenv": "^16.4.5", 30 "envalid": "^8.0.0", 31 "hono": "^4.6.9", 32 "jose": "^5.9.6",
+7 -10
package.json
··· 7 "dev": "turbo dev", 8 "build": "pnpm turbo run build --filter='./packages/*' --filter='./apps/*'", 9 "typecheck": "pnpm -r exec tsc --noEmit", 10 - "fix": "biome lint --apply . && biome format --write . && biome check . --apply", 11 - "lex:gen-server": "lex gen-server ./packages/lexicons/generated/server ./packages/lexicons/src/*", 12 - "lex:gen-api": "lex gen-api ./packages/lexicons/generated/api ./packages/lexicons/src/*", 13 - "lex:gen-md": "lex gen-md ./packages/lexicons/generated/md ./packages/lexicons/src/*", 14 - "db:studio": "drizzle-kit studio", 15 - "db:migrate": "drizzle-kit migrate", 16 - "db:seed": "drizzle-kit seed" 17 }, 18 "devDependencies": { 19 - "turbo": "^2.3.3", 20 - "biome": "^0.3.3" 21 }, 22 "workspaces": [ 23 "apps/*", 24 "packages/*" 25 - ] 26 }
··· 7 "dev": "turbo dev", 8 "build": "pnpm turbo run build --filter='./packages/*' --filter='./apps/*'", 9 "typecheck": "pnpm -r exec tsc --noEmit", 10 + "fix": "biome lint --apply . && biome format --write . && biome check . --apply" 11 }, 12 "devDependencies": { 13 + "biome": "^0.3.3", 14 + "turbo": "^2.3.3" 15 }, 16 "workspaces": [ 17 "apps/*", 18 "packages/*" 19 + ], 20 + "dependencies": { 21 + "drizzle-kit": "^0.30.1" 22 + } 23 }
+1 -1
packages/db/connect.ts
··· 1 import { drizzle } from "drizzle-orm/libsql"; 2 - import * as schema from "@teal/db/schema"; 3 import process from "node:process"; 4 import path from "node:path"; 5
··· 1 import { drizzle } from "drizzle-orm/libsql"; 2 + import * as schema from "./schema"; 3 import process from "node:process"; 4 import path from "node:path"; 5
+3
packages/db/index.ts
···
··· 1 + // barrel file :) kms 2 + export * from "./connect"; 3 + export * from "./schema";
+13
packages/db/package.json
··· 1 { 2 "name": "@teal/db", 3 "type": "module", 4 "dependencies": { 5 "drizzle-kit": "^0.27.1", 6 "drizzle-orm": "^0.36.0" 7 } 8 }
··· 1 { 2 "name": "@teal/db", 3 + "version": "0.0.0", 4 + "private": true, 5 + "main": "index.js", 6 "type": "module", 7 + "scripts": { 8 + "db:generate": "drizzle-kit generate", 9 + "db:migrate": "drizzle-kit migrate", 10 + "db:studio": "drizzle-kit studio" 11 + }, 12 "dependencies": { 13 + "@libsql/client": "^0.14.0", 14 + "@teal/tsconfig": "workspace:*", 15 "drizzle-kit": "^0.27.1", 16 "drizzle-orm": "^0.36.0" 17 + }, 18 + "devDependencies": { 19 + "@types/node": "^20.17.6" 20 } 21 }
+5 -2
packages/jetstring/package.json
··· 1 { 2 "name": "@teal/jetstring", 3 - "type": "module", 4 "scripts": { 5 "dev": "tsx watch src/index.ts | pino-pretty" 6 }, 7 "dependencies": { 8 "@skyware/jetstream": "^0.2.0", 9 - "@teal/db": "workspace:*" 10 }, 11 "devDependencies": { 12 "tsup": "^8.3.5",
··· 1 { 2 "name": "@teal/jetstring", 3 "scripts": { 4 "dev": "tsx watch src/index.ts | pino-pretty" 5 }, 6 "dependencies": { 7 + "@libsql/client": "^0.14.0", 8 "@skyware/jetstream": "^0.2.0", 9 + "@teal/db": "workspace:*", 10 + "@teal/lexicons": "workspace:*", 11 + "@teal/tsconfig": "workspace:*", 12 + "pino-pretty": "^11.3.0" 13 }, 14 "devDependencies": { 15 "tsup": "^8.3.5",
+3 -3
packages/jetstring/src/index.ts
··· 1 import type { Database } from "@teal/db/connect"; 2 import { db } from "@teal/db/connect"; 3 - import { status } from "@teal/db/schema"; 4 import { CommitCreateEvent, Jetstream } from "@skyware/jetstream"; 5 6 import { 7 Record as XyzStatusphereStatus, 8 isRecord as isStatusphereStatus, 9 - } from "@teal/lexicons/generated/server/types/xyz/statusphere/status"; 10 11 import { 12 Record as FmTealAlphaPlay, 13 isRecord as isTealAlphaPlay, 14 - } from "@teal/lexicons/generated/server/types/fm/teal/alpha/play"; 15 16 class Handler { 17 private static instance: Handler;
··· 1 import type { Database } from "@teal/db/connect"; 2 import { db } from "@teal/db/connect"; 3 + import { status, play } from "@teal/db/schema"; 4 import { CommitCreateEvent, Jetstream } from "@skyware/jetstream"; 5 6 import { 7 Record as XyzStatusphereStatus, 8 isRecord as isStatusphereStatus, 9 + } from "@teal/lexicons/src/types/xyz/statusphere/status"; 10 11 import { 12 Record as FmTealAlphaPlay, 13 isRecord as isTealAlphaPlay, 14 + } from "@teal/lexicons/src/types/fm/teal/alpha/play"; 15 16 class Handler { 17 private static instance: Handler;
packages/lexicons/generated/server/index.ts packages/lexicons/src/index.ts
+2 -2
packages/lexicons/generated/server/lexicons.ts packages/lexicons/src/lexicons.ts
··· 310 musicServiceBaseDomain: { 311 type: 'string', 312 description: 313 - 'The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com.', 314 }, 315 submissionClientAgent: { 316 type: 'string', 317 maxLength: 256, 318 maxGraphemes: 2560, 319 description: 320 - 'A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b', 321 }, 322 playedTime: { 323 type: 'string',
··· 310 musicServiceBaseDomain: { 311 type: 'string', 312 description: 313 + "The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if not provided.", 314 }, 315 submissionClientAgent: { 316 type: 'string', 317 maxLength: 256, 318 maxGraphemes: 2560, 319 description: 320 + "A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b (Linux; Android 13; SM-A715F). Defaults to 'manual/unknown' if not provided.", 321 }, 322 playedTime: { 323 type: 'string',
packages/lexicons/generated/server/types/app/bsky/actor/profile.ts packages/lexicons/src/types/app/bsky/actor/profile.ts
packages/lexicons/generated/server/types/app/bsky/richtext/facet.ts packages/lexicons/src/types/app/bsky/richtext/facet.ts
packages/lexicons/generated/server/types/fm/teal/alpha/actor/profile.ts packages/lexicons/src/types/fm/teal/alpha/actor/profile.ts
packages/lexicons/generated/server/types/fm/teal/alpha/actor/status.ts packages/lexicons/src/types/fm/teal/alpha/actor/status.ts
+2 -2
packages/lexicons/generated/server/types/fm/teal/alpha/play.ts packages/lexicons/src/types/fm/teal/alpha/play.ts
··· 27 isrc?: string 28 /** The URL associated with this track */ 29 originUrl?: string 30 - /** The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. */ 31 musicServiceBaseDomain?: string 32 - /** A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b */ 33 submissionClientAgent?: string 34 /** The unix timestamp of when the track was played */ 35 playedTime?: string
··· 27 isrc?: string 28 /** The URL associated with this track */ 29 originUrl?: string 30 + /** The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if not provided. */ 31 musicServiceBaseDomain?: string 32 + /** A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b (Linux; Android 13; SM-A715F). Defaults to 'manual/unknown' if not provided. */ 33 submissionClientAgent?: string 34 /** The unix timestamp of when the track was played */ 35 playedTime?: string
packages/lexicons/generated/server/types/xyz/statusphere/status.ts packages/lexicons/src/types/xyz/statusphere/status.ts
packages/lexicons/generated/server/util.ts packages/lexicons/src/util.ts
packages/lexicons/index.ts

This is a binary file and will not be displayed.

+7 -1
packages/lexicons/package.json
··· 1 { 2 "name": "@teal/lexicons", 3 "type": "module", 4 "dependencies": { 5 "@atproto/lexicon": "^0.4.2", 6 - "@atproto/xrpc-server": "^0.6.4" 7 } 8 }
··· 1 { 2 "name": "@teal/lexicons", 3 "type": "module", 4 + "main": "./index.ts", 5 "dependencies": { 6 + "@atproto/lex-cli": "^0.4.1", 7 "@atproto/lexicon": "^0.4.2", 8 + "@atproto/xrpc-server": "^0.6.4", 9 + "@teal/tsconfig": "workspace:*" 10 + }, 11 + "scripts": { 12 + "lex:gen-server": "lex gen-server ./src ./real/*" 13 } 14 }
packages/lexicons/src/app.bsky.actor.profile.json packages/lexicons/real/app.bsky.actor.profile.json
packages/lexicons/src/app.bsky.richtext.facet.json packages/lexicons/real/app.bsky.richtext.facet.json
packages/lexicons/src/fm.teal.alpha.actor.profile.json packages/lexicons/real/fm.teal.alpha.actor.profile.json
packages/lexicons/src/fm.teal.alpha.actor.status.json packages/lexicons/real/fm.teal.alpha.actor.status.json
packages/lexicons/src/fm.teal.alpha.play.json packages/lexicons/real/fm.teal.alpha.play.json
packages/lexicons/src/xyz.statusphere.status.json packages/lexicons/real/xyz.statusphere.status.json
+1 -1
packages/lexicons/tsconfig.json
··· 1 { 2 "extends": "@teal/tsconfig/base.json", 3 - "include": ["./generated/**/*.ts"] 4 }
··· 1 { 2 "extends": "@teal/tsconfig/base.json", 3 + "include": ["./src/**/*.ts"] 4 }
+5 -1
packages/tsconfig/package.json
··· 1 { 2 "name": "@teal/tsconfig", 3 - "type": "module" 4 }
··· 1 { 2 "name": "@teal/tsconfig", 3 + "version": "0.0.0", 4 + "private": true, 5 + "publishConfig": { 6 + "access": "public" 7 + } 8 }
+46 -3
pnpm-lock.yaml
··· 7 importers: 8 9 .: 10 devDependencies: 11 biome: 12 specifier: ^0.3.3 ··· 59 dotenv: 60 specifier: ^16.4.5 61 version: 16.4.7 62 - drizzle-orm: 63 - specifier: ^0.36.1 64 - version: 0.36.4(@libsql/client@0.14.0) 65 envalid: 66 specifier: ^8.0.0 67 version: 8.0.0 ··· 111 112 packages/db: 113 dependencies: 114 drizzle-kit: 115 specifier: ^0.27.1 116 version: 0.27.2 117 drizzle-orm: 118 specifier: ^0.36.0 119 version: 0.36.4(@libsql/client@0.14.0) 120 121 packages/jetstring: 122 dependencies: 123 '@skyware/jetstream': 124 specifier: ^0.2.0 125 version: 0.2.1(@atcute/client@2.0.6) 126 '@teal/db': 127 specifier: workspace:* 128 version: link:../db 129 devDependencies: 130 tsup: 131 specifier: ^8.3.5 ··· 139 140 packages/lexicons: 141 dependencies: 142 '@atproto/lexicon': 143 specifier: ^0.4.2 144 version: 0.4.3 145 '@atproto/xrpc-server': 146 specifier: ^0.6.4 147 version: 0.6.4 148 149 packages/matcher: {} 150 ··· 1391 resolution: {integrity: sha512-F6cFZ1wxa9XzFyeeQsp/0/lIzUbDuQjS8/njpYBDWa+wdWmXuY+Z/X2hHFK/9PGHZkv3c9mER+mVWfKlp/B6Vw==} 1392 hasBin: true 1393 1394 drizzle-orm@0.36.4: 1395 resolution: {integrity: sha512-1OZY3PXD7BR00Gl61UUOFihslDldfH4NFRH2MbP54Yxi0G/PKn4HfO65JYZ7c16DeP3SpM3Aw+VXVG9j6CRSXA==} 1396 peerDependencies: ··· 1895 1896 libsql@0.4.7: 1897 resolution: {integrity: sha512-T9eIRCs6b0J1SHKYIvD8+KCJMcWZ900iZyxdnSCdqxN12Z1ijzT+jY5nrk72Jw4B0HGzms2NgpryArlJqvc3Lw==} 1898 os: [darwin, linux, win32] 1899 1900 lilconfig@3.1.3: ··· 3670 dotenv@16.4.7: {} 3671 3672 drizzle-kit@0.27.2: 3673 dependencies: 3674 '@drizzle-team/brocli': 0.10.2 3675 '@esbuild-kit/esm-loader': 2.6.5
··· 7 importers: 8 9 .: 10 + dependencies: 11 + drizzle-kit: 12 + specifier: ^0.30.1 13 + version: 0.30.1 14 devDependencies: 15 biome: 16 specifier: ^0.3.3 ··· 63 dotenv: 64 specifier: ^16.4.5 65 version: 16.4.7 66 envalid: 67 specifier: ^8.0.0 68 version: 8.0.0 ··· 112 113 packages/db: 114 dependencies: 115 + '@libsql/client': 116 + specifier: ^0.14.0 117 + version: 0.14.0 118 + '@teal/tsconfig': 119 + specifier: workspace:* 120 + version: link:../tsconfig 121 drizzle-kit: 122 specifier: ^0.27.1 123 version: 0.27.2 124 drizzle-orm: 125 specifier: ^0.36.0 126 version: 0.36.4(@libsql/client@0.14.0) 127 + devDependencies: 128 + '@types/node': 129 + specifier: ^20.17.6 130 + version: 20.17.9 131 132 packages/jetstring: 133 dependencies: 134 + '@libsql/client': 135 + specifier: ^0.14.0 136 + version: 0.14.0 137 '@skyware/jetstream': 138 specifier: ^0.2.0 139 version: 0.2.1(@atcute/client@2.0.6) 140 '@teal/db': 141 specifier: workspace:* 142 version: link:../db 143 + '@teal/lexicons': 144 + specifier: workspace:* 145 + version: link:../lexicons 146 + '@teal/tsconfig': 147 + specifier: workspace:* 148 + version: link:../tsconfig 149 + pino-pretty: 150 + specifier: ^11.3.0 151 + version: 11.3.0 152 devDependencies: 153 tsup: 154 specifier: ^8.3.5 ··· 162 163 packages/lexicons: 164 dependencies: 165 + '@atproto/lex-cli': 166 + specifier: ^0.4.1 167 + version: 0.4.1 168 '@atproto/lexicon': 169 specifier: ^0.4.2 170 version: 0.4.3 171 '@atproto/xrpc-server': 172 specifier: ^0.6.4 173 version: 0.6.4 174 + '@teal/tsconfig': 175 + specifier: workspace:* 176 + version: link:../tsconfig 177 178 packages/matcher: {} 179 ··· 1420 resolution: {integrity: sha512-F6cFZ1wxa9XzFyeeQsp/0/lIzUbDuQjS8/njpYBDWa+wdWmXuY+Z/X2hHFK/9PGHZkv3c9mER+mVWfKlp/B6Vw==} 1421 hasBin: true 1422 1423 + drizzle-kit@0.30.1: 1424 + resolution: {integrity: sha512-HmA/NeewvHywhJ2ENXD3KvOuM/+K2dGLJfxVfIHsGwaqKICJnS+Ke2L6UcSrSrtMJLJaT0Im1Qv4TFXfaZShyw==} 1425 + hasBin: true 1426 + 1427 drizzle-orm@0.36.4: 1428 resolution: {integrity: sha512-1OZY3PXD7BR00Gl61UUOFihslDldfH4NFRH2MbP54Yxi0G/PKn4HfO65JYZ7c16DeP3SpM3Aw+VXVG9j6CRSXA==} 1429 peerDependencies: ··· 1928 1929 libsql@0.4.7: 1930 resolution: {integrity: sha512-T9eIRCs6b0J1SHKYIvD8+KCJMcWZ900iZyxdnSCdqxN12Z1ijzT+jY5nrk72Jw4B0HGzms2NgpryArlJqvc3Lw==} 1931 + cpu: [x64, arm64, wasm32] 1932 os: [darwin, linux, win32] 1933 1934 lilconfig@3.1.3: ··· 3704 dotenv@16.4.7: {} 3705 3706 drizzle-kit@0.27.2: 3707 + dependencies: 3708 + '@drizzle-team/brocli': 0.10.2 3709 + '@esbuild-kit/esm-loader': 2.6.5 3710 + esbuild: 0.19.12 3711 + esbuild-register: 3.6.0(esbuild@0.19.12) 3712 + transitivePeerDependencies: 3713 + - supports-color 3714 + 3715 + drizzle-kit@0.30.1: 3716 dependencies: 3717 '@drizzle-team/brocli': 0.10.2 3718 '@esbuild-kit/esm-loader': 2.6.5