tangled
alpha
login
or
join now
tsiry-sandratraina.com
/
rocksky
forked from
rocksky.app/rocksky
3
fork
atom
A decentralized music tracking and discovery platform built on AT Protocol 🎵
3
fork
atom
overview
issues
1
pulls
pipelines
add initial database migration
tsiry-sandratraina.com
8 months ago
90d3eba2
212172ff
+2951
-110
5 changed files
expand all
collapse all
unified
split
rockskyapi
rocksky-auth
bun.lock
drizzle
0000_init.sql
meta
0000_snapshot.json
_journal.json
package.json
+141
-26
rockskyapi/rocksky-auth/bun.lock
···
60
60
"@types/node": "^22.13.0",
61
61
"@types/ramda": "^0.30.2",
62
62
"@types/service-worker-mock": "^2.0.1",
63
63
+
"drizzle-kit": "^0.31.1",
63
64
"pkgroll": "^2.6.1",
64
65
"tsx": "^4.19.2",
65
66
"zx": "^8.5.4",
···
139
140
140
141
"@datadog/pprof": ["@datadog/pprof@5.7.1", "", { "dependencies": { "delay": "^5.0.0", "node-gyp-build": "<4.0", "p-limit": "^3.1.0", "pprof-format": "^2.1.0", "source-map": "^0.7.4" } }, "sha512-D5XTxsaPG36x41vZZn8hsAeC7QQDx0rv1a1Uhxo5xCXUB/9rc19+I7iCnjgJS5aH0ShXdPVOWRClo16hOSKKSw=="],
141
142
142
142
-
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.24.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA=="],
143
143
+
"@drizzle-team/brocli": ["@drizzle-team/brocli@0.10.2", "", {}, "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w=="],
143
144
144
144
-
"@esbuild/android-arm": ["@esbuild/android-arm@0.24.2", "", { "os": "android", "cpu": "arm" }, "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q=="],
145
145
+
"@esbuild-kit/core-utils": ["@esbuild-kit/core-utils@3.3.2", "", { "dependencies": { "esbuild": "~0.18.20", "source-map-support": "^0.5.21" } }, "sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ=="],
145
146
146
146
-
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.24.2", "", { "os": "android", "cpu": "arm64" }, "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg=="],
147
147
+
"@esbuild-kit/esm-loader": ["@esbuild-kit/esm-loader@2.6.5", "", { "dependencies": { "@esbuild-kit/core-utils": "^3.3.2", "get-tsconfig": "^4.7.0" } }, "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA=="],
147
148
148
148
-
"@esbuild/android-x64": ["@esbuild/android-x64@0.24.2", "", { "os": "android", "cpu": "x64" }, "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw=="],
149
149
+
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.5", "", { "os": "aix", "cpu": "ppc64" }, "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA=="],
149
150
150
150
-
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.24.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA=="],
151
151
+
"@esbuild/android-arm": ["@esbuild/android-arm@0.25.5", "", { "os": "android", "cpu": "arm" }, "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA=="],
151
152
152
152
-
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.24.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA=="],
153
153
+
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.5", "", { "os": "android", "cpu": "arm64" }, "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg=="],
153
154
154
154
-
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.24.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg=="],
155
155
+
"@esbuild/android-x64": ["@esbuild/android-x64@0.25.5", "", { "os": "android", "cpu": "x64" }, "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw=="],
155
156
156
156
-
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.24.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q=="],
157
157
+
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ=="],
157
158
158
158
-
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.24.2", "", { "os": "linux", "cpu": "arm" }, "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA=="],
159
159
+
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ=="],
159
160
160
160
-
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.24.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg=="],
161
161
+
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw=="],
161
162
162
162
-
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.24.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw=="],
163
163
+
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw=="],
163
164
164
164
-
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ=="],
165
165
+
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.5", "", { "os": "linux", "cpu": "arm" }, "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw=="],
165
166
166
166
-
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw=="],
167
167
+
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg=="],
167
168
168
168
-
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.24.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw=="],
169
169
+
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.5", "", { "os": "linux", "cpu": "ia32" }, "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA=="],
169
170
170
170
-
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q=="],
171
171
+
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg=="],
171
172
172
172
-
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.24.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw=="],
173
173
+
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg=="],
173
174
174
174
-
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.24.2", "", { "os": "linux", "cpu": "x64" }, "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q=="],
175
175
+
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ=="],
175
176
176
176
-
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.24.2", "", { "os": "none", "cpu": "arm64" }, "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw=="],
177
177
+
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA=="],
177
178
178
178
-
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.24.2", "", { "os": "none", "cpu": "x64" }, "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw=="],
179
179
+
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ=="],
179
180
180
180
-
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.24.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A=="],
181
181
+
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.5", "", { "os": "linux", "cpu": "x64" }, "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw=="],
181
182
182
182
-
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.24.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA=="],
183
183
+
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.5", "", { "os": "none", "cpu": "arm64" }, "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw=="],
183
184
184
184
-
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.24.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig=="],
185
185
+
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.5", "", { "os": "none", "cpu": "x64" }, "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ=="],
186
186
+
187
187
+
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.5", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw=="],
188
188
+
189
189
+
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.5", "", { "os": "openbsd", "cpu": "x64" }, "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg=="],
190
190
+
191
191
+
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.5", "", { "os": "sunos", "cpu": "x64" }, "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA=="],
185
192
186
186
-
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.24.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ=="],
193
193
+
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw=="],
187
194
188
188
-
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.24.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA=="],
195
195
+
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ=="],
189
196
190
190
-
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.24.2", "", { "os": "win32", "cpu": "x64" }, "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg=="],
197
197
+
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.5", "", { "os": "win32", "cpu": "x64" }, "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g=="],
191
198
192
199
"@grpc/grpc-js": ["@grpc/grpc-js@1.13.3", "", { "dependencies": { "@grpc/proto-loader": "^0.7.13", "@js-sdsl/ordered-map": "^4.4.2" } }, "sha512-FTXHdOoPbZrBjlVLHuKbDZnsTxXv2BlHF57xw6LuThXacXvtkahEPED0CKMk6obZDf65Hv4k3z62eyPNpvinIg=="],
193
200
···
581
588
582
589
"buffer-equal-constant-time": ["buffer-equal-constant-time@1.0.1", "", {}, "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="],
583
590
591
591
+
"buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="],
592
592
+
584
593
"bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="],
585
594
586
595
"call-bind": ["call-bind@1.0.8", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", "get-intrinsic": "^1.2.4", "set-function-length": "^1.2.2" } }, "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww=="],
···
665
674
666
675
"dotenv": ["dotenv@16.4.7", "", {}, "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ=="],
667
676
677
677
+
"drizzle-kit": ["drizzle-kit@0.31.1", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.2", "esbuild-register": "^3.5.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-PUjYKWtzOzPtdtQlTHQG3qfv4Y0XT8+Eas6UbxCmxTj7qgMf+39dDujf1BP1I+qqZtw9uzwTh8jYtkMuCq+B0Q=="],
678
678
+
668
679
"drizzle-orm": ["drizzle-orm@0.44.2", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1.13", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@upstash/redis": ">=1.34.7", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@upstash/redis", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-zGAqBzWWkVSFjZpwPOrmCrgO++1kZ5H/rZ4qTGeGOe18iXGVJWf3WPfHOVwFIbmi8kHjfJstC6rJomzGx8g/dQ=="],
669
680
670
681
"dropbox": ["dropbox@10.34.0", "", { "dependencies": { "node-fetch": "^2.6.1" }, "peerDependencies": { "@types/node-fetch": "^2.5.7" } }, "sha512-5jb5/XzU0fSnq36/hEpwT5/QIep7MgqKuxghEG44xCu7HruOAjPdOb3x0geXv5O/hd0nHpQpWO+r5MjYTpMvJg=="],
···
691
702
692
703
"es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="],
693
704
694
694
-
"esbuild": ["esbuild@0.24.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.24.2", "@esbuild/android-arm": "0.24.2", "@esbuild/android-arm64": "0.24.2", "@esbuild/android-x64": "0.24.2", "@esbuild/darwin-arm64": "0.24.2", "@esbuild/darwin-x64": "0.24.2", "@esbuild/freebsd-arm64": "0.24.2", "@esbuild/freebsd-x64": "0.24.2", "@esbuild/linux-arm": "0.24.2", "@esbuild/linux-arm64": "0.24.2", "@esbuild/linux-ia32": "0.24.2", "@esbuild/linux-loong64": "0.24.2", "@esbuild/linux-mips64el": "0.24.2", "@esbuild/linux-ppc64": "0.24.2", "@esbuild/linux-riscv64": "0.24.2", "@esbuild/linux-s390x": "0.24.2", "@esbuild/linux-x64": "0.24.2", "@esbuild/netbsd-arm64": "0.24.2", "@esbuild/netbsd-x64": "0.24.2", "@esbuild/openbsd-arm64": "0.24.2", "@esbuild/openbsd-x64": "0.24.2", "@esbuild/sunos-x64": "0.24.2", "@esbuild/win32-arm64": "0.24.2", "@esbuild/win32-ia32": "0.24.2", "@esbuild/win32-x64": "0.24.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA=="],
705
705
+
"esbuild": ["esbuild@0.25.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.5", "@esbuild/android-arm": "0.25.5", "@esbuild/android-arm64": "0.25.5", "@esbuild/android-x64": "0.25.5", "@esbuild/darwin-arm64": "0.25.5", "@esbuild/darwin-x64": "0.25.5", "@esbuild/freebsd-arm64": "0.25.5", "@esbuild/freebsd-x64": "0.25.5", "@esbuild/linux-arm": "0.25.5", "@esbuild/linux-arm64": "0.25.5", "@esbuild/linux-ia32": "0.25.5", "@esbuild/linux-loong64": "0.25.5", "@esbuild/linux-mips64el": "0.25.5", "@esbuild/linux-ppc64": "0.25.5", "@esbuild/linux-riscv64": "0.25.5", "@esbuild/linux-s390x": "0.25.5", "@esbuild/linux-x64": "0.25.5", "@esbuild/netbsd-arm64": "0.25.5", "@esbuild/netbsd-x64": "0.25.5", "@esbuild/openbsd-arm64": "0.25.5", "@esbuild/openbsd-x64": "0.25.5", "@esbuild/sunos-x64": "0.25.5", "@esbuild/win32-arm64": "0.25.5", "@esbuild/win32-ia32": "0.25.5", "@esbuild/win32-x64": "0.25.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ=="],
706
706
+
707
707
+
"esbuild-register": ["esbuild-register@3.6.0", "", { "dependencies": { "debug": "^4.3.4" }, "peerDependencies": { "esbuild": ">=0.12 <1" } }, "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg=="],
695
708
696
709
"escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="],
697
710
···
1117
1130
1118
1131
"source-map": ["source-map@0.7.4", "", {}, "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA=="],
1119
1132
1133
1133
+
"source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="],
1134
1134
+
1120
1135
"split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="],
1121
1136
1122
1137
"statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="],
···
1243
1258
1244
1259
"@atproto/xrpc-server/ws": ["ws@8.18.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw=="],
1245
1260
1261
1261
+
"@esbuild-kit/core-utils/esbuild": ["esbuild@0.18.20", "", { "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", "@esbuild/darwin-arm64": "0.18.20", "@esbuild/darwin-x64": "0.18.20", "@esbuild/freebsd-arm64": "0.18.20", "@esbuild/freebsd-x64": "0.18.20", "@esbuild/linux-arm": "0.18.20", "@esbuild/linux-arm64": "0.18.20", "@esbuild/linux-ia32": "0.18.20", "@esbuild/linux-loong64": "0.18.20", "@esbuild/linux-mips64el": "0.18.20", "@esbuild/linux-ppc64": "0.18.20", "@esbuild/linux-riscv64": "0.18.20", "@esbuild/linux-s390x": "0.18.20", "@esbuild/linux-x64": "0.18.20", "@esbuild/netbsd-x64": "0.18.20", "@esbuild/openbsd-x64": "0.18.20", "@esbuild/sunos-x64": "0.18.20", "@esbuild/win32-arm64": "0.18.20", "@esbuild/win32-ia32": "0.18.20", "@esbuild/win32-x64": "0.18.20" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA=="],
1262
1262
+
1246
1263
"accepts/mime-types": ["mime-types@3.0.1", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA=="],
1247
1264
1248
1265
"anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
···
1265
1282
1266
1283
"micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
1267
1284
1285
1285
+
"pkgroll/esbuild": ["esbuild@0.24.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.24.2", "@esbuild/android-arm": "0.24.2", "@esbuild/android-arm64": "0.24.2", "@esbuild/android-x64": "0.24.2", "@esbuild/darwin-arm64": "0.24.2", "@esbuild/darwin-x64": "0.24.2", "@esbuild/freebsd-arm64": "0.24.2", "@esbuild/freebsd-x64": "0.24.2", "@esbuild/linux-arm": "0.24.2", "@esbuild/linux-arm64": "0.24.2", "@esbuild/linux-ia32": "0.24.2", "@esbuild/linux-loong64": "0.24.2", "@esbuild/linux-mips64el": "0.24.2", "@esbuild/linux-ppc64": "0.24.2", "@esbuild/linux-riscv64": "0.24.2", "@esbuild/linux-s390x": "0.24.2", "@esbuild/linux-x64": "0.24.2", "@esbuild/netbsd-arm64": "0.24.2", "@esbuild/netbsd-x64": "0.24.2", "@esbuild/openbsd-arm64": "0.24.2", "@esbuild/openbsd-x64": "0.24.2", "@esbuild/sunos-x64": "0.24.2", "@esbuild/win32-arm64": "0.24.2", "@esbuild/win32-ia32": "0.24.2", "@esbuild/win32-x64": "0.24.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA=="],
1286
1286
+
1268
1287
"psl/punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
1269
1288
1270
1289
"readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
···
1272
1291
"router/path-to-regexp": ["path-to-regexp@8.2.0", "", {}, "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ=="],
1273
1292
1274
1293
"send/mime-types": ["mime-types@3.0.1", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA=="],
1294
1294
+
1295
1295
+
"source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="],
1275
1296
1276
1297
"tar-stream/readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="],
1277
1298
···
1311
1332
1312
1333
"@atproto/xrpc-server/express/type-is": ["type-is@1.6.18", "", { "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="],
1313
1334
1335
1335
+
"@esbuild-kit/core-utils/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.18.20", "", { "os": "android", "cpu": "arm" }, "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw=="],
1336
1336
+
1337
1337
+
"@esbuild-kit/core-utils/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.18.20", "", { "os": "android", "cpu": "arm64" }, "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ=="],
1338
1338
+
1339
1339
+
"@esbuild-kit/core-utils/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.18.20", "", { "os": "android", "cpu": "x64" }, "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg=="],
1340
1340
+
1341
1341
+
"@esbuild-kit/core-utils/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.18.20", "", { "os": "darwin", "cpu": "arm64" }, "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA=="],
1342
1342
+
1343
1343
+
"@esbuild-kit/core-utils/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.18.20", "", { "os": "darwin", "cpu": "x64" }, "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ=="],
1344
1344
+
1345
1345
+
"@esbuild-kit/core-utils/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.18.20", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw=="],
1346
1346
+
1347
1347
+
"@esbuild-kit/core-utils/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.18.20", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ=="],
1348
1348
+
1349
1349
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.18.20", "", { "os": "linux", "cpu": "arm" }, "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg=="],
1350
1350
+
1351
1351
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.18.20", "", { "os": "linux", "cpu": "arm64" }, "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA=="],
1352
1352
+
1353
1353
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.18.20", "", { "os": "linux", "cpu": "ia32" }, "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA=="],
1354
1354
+
1355
1355
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg=="],
1356
1356
+
1357
1357
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ=="],
1358
1358
+
1359
1359
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.18.20", "", { "os": "linux", "cpu": "ppc64" }, "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA=="],
1360
1360
+
1361
1361
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A=="],
1362
1362
+
1363
1363
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.18.20", "", { "os": "linux", "cpu": "s390x" }, "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ=="],
1364
1364
+
1365
1365
+
"@esbuild-kit/core-utils/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.18.20", "", { "os": "linux", "cpu": "x64" }, "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w=="],
1366
1366
+
1367
1367
+
"@esbuild-kit/core-utils/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.18.20", "", { "os": "none", "cpu": "x64" }, "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A=="],
1368
1368
+
1369
1369
+
"@esbuild-kit/core-utils/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.18.20", "", { "os": "openbsd", "cpu": "x64" }, "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg=="],
1370
1370
+
1371
1371
+
"@esbuild-kit/core-utils/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.18.20", "", { "os": "sunos", "cpu": "x64" }, "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ=="],
1372
1372
+
1373
1373
+
"@esbuild-kit/core-utils/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.18.20", "", { "os": "win32", "cpu": "arm64" }, "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg=="],
1374
1374
+
1375
1375
+
"@esbuild-kit/core-utils/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.18.20", "", { "os": "win32", "cpu": "ia32" }, "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g=="],
1376
1376
+
1377
1377
+
"@esbuild-kit/core-utils/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.18.20", "", { "os": "win32", "cpu": "x64" }, "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ=="],
1378
1378
+
1314
1379
"accepts/mime-types/mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="],
1315
1380
1316
1381
"express/mime-types/mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="],
···
1318
1383
"google-auth-library/jws/jwa": ["jwa@2.0.0", "", { "dependencies": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA=="],
1319
1384
1320
1385
"gtoken/jws/jwa": ["jwa@2.0.0", "", { "dependencies": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA=="],
1386
1386
+
1387
1387
+
"pkgroll/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.24.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA=="],
1388
1388
+
1389
1389
+
"pkgroll/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.24.2", "", { "os": "android", "cpu": "arm" }, "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q=="],
1390
1390
+
1391
1391
+
"pkgroll/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.24.2", "", { "os": "android", "cpu": "arm64" }, "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg=="],
1392
1392
+
1393
1393
+
"pkgroll/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.24.2", "", { "os": "android", "cpu": "x64" }, "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw=="],
1394
1394
+
1395
1395
+
"pkgroll/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.24.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA=="],
1396
1396
+
1397
1397
+
"pkgroll/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.24.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA=="],
1398
1398
+
1399
1399
+
"pkgroll/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.24.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg=="],
1400
1400
+
1401
1401
+
"pkgroll/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.24.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q=="],
1402
1402
+
1403
1403
+
"pkgroll/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.24.2", "", { "os": "linux", "cpu": "arm" }, "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA=="],
1404
1404
+
1405
1405
+
"pkgroll/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.24.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg=="],
1406
1406
+
1407
1407
+
"pkgroll/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.24.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw=="],
1408
1408
+
1409
1409
+
"pkgroll/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ=="],
1410
1410
+
1411
1411
+
"pkgroll/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw=="],
1412
1412
+
1413
1413
+
"pkgroll/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.24.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw=="],
1414
1414
+
1415
1415
+
"pkgroll/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q=="],
1416
1416
+
1417
1417
+
"pkgroll/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.24.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw=="],
1418
1418
+
1419
1419
+
"pkgroll/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.24.2", "", { "os": "linux", "cpu": "x64" }, "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q=="],
1420
1420
+
1421
1421
+
"pkgroll/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.24.2", "", { "os": "none", "cpu": "arm64" }, "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw=="],
1422
1422
+
1423
1423
+
"pkgroll/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.24.2", "", { "os": "none", "cpu": "x64" }, "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw=="],
1424
1424
+
1425
1425
+
"pkgroll/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.24.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A=="],
1426
1426
+
1427
1427
+
"pkgroll/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.24.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA=="],
1428
1428
+
1429
1429
+
"pkgroll/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.24.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig=="],
1430
1430
+
1431
1431
+
"pkgroll/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.24.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ=="],
1432
1432
+
1433
1433
+
"pkgroll/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.24.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA=="],
1434
1434
+
1435
1435
+
"pkgroll/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.24.2", "", { "os": "win32", "cpu": "x64" }, "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg=="],
1321
1436
1322
1437
"send/mime-types/mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="],
1323
1438
+348
rockskyapi/rocksky-auth/drizzle/0000_init.sql
···
1
1
+
CREATE TABLE "album_tracks" (
2
2
+
"xata_id" text PRIMARY KEY NOT NULL,
3
3
+
"album_id" text NOT NULL,
4
4
+
"track_id" text NOT NULL,
5
5
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
6
6
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
7
7
+
"xata_version" integer NOT NULL
8
8
+
);
9
9
+
--> statement-breakpoint
10
10
+
CREATE TABLE "albums" (
11
11
+
"xata_id" text PRIMARY KEY NOT NULL,
12
12
+
"title" text NOT NULL,
13
13
+
"artist" text NOT NULL,
14
14
+
"release_date" text,
15
15
+
"year" integer,
16
16
+
"album_art" text,
17
17
+
"uri" text,
18
18
+
"artist_uri" text,
19
19
+
"apple_music_link" text,
20
20
+
"spotify_link" text,
21
21
+
"tidal_link" text,
22
22
+
"youtube_link" text,
23
23
+
"sha256" text NOT NULL,
24
24
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
25
25
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
26
26
+
"xata_version" integer,
27
27
+
CONSTRAINT "albums_uri_unique" UNIQUE("uri"),
28
28
+
CONSTRAINT "albums_apple_music_link_unique" UNIQUE("apple_music_link"),
29
29
+
CONSTRAINT "albums_spotify_link_unique" UNIQUE("spotify_link"),
30
30
+
CONSTRAINT "albums_tidal_link_unique" UNIQUE("tidal_link"),
31
31
+
CONSTRAINT "albums_youtube_link_unique" UNIQUE("youtube_link"),
32
32
+
CONSTRAINT "albums_sha256_unique" UNIQUE("sha256")
33
33
+
);
34
34
+
--> statement-breakpoint
35
35
+
CREATE TABLE "api_keys" (
36
36
+
"xata_id" text PRIMARY KEY NOT NULL,
37
37
+
"name" text NOT NULL,
38
38
+
"api_key" text NOT NULL,
39
39
+
"shared_secret" text NOT NULL,
40
40
+
"description" text,
41
41
+
"enabled" boolean DEFAULT true NOT NULL,
42
42
+
"user_id" text NOT NULL,
43
43
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
44
44
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL
45
45
+
);
46
46
+
--> statement-breakpoint
47
47
+
CREATE TABLE "artist_albums" (
48
48
+
"xata_id" text PRIMARY KEY NOT NULL,
49
49
+
"artist_id" text NOT NULL,
50
50
+
"album_id" text NOT NULL,
51
51
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
52
52
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
53
53
+
"xata_version" integer NOT NULL
54
54
+
);
55
55
+
--> statement-breakpoint
56
56
+
CREATE TABLE "artist_tracks" (
57
57
+
"xata_id" text PRIMARY KEY NOT NULL,
58
58
+
"artist_id" text NOT NULL,
59
59
+
"track_id" text NOT NULL,
60
60
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
61
61
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
62
62
+
"xata_version" integer NOT NULL
63
63
+
);
64
64
+
--> statement-breakpoint
65
65
+
CREATE TABLE "artists" (
66
66
+
"xata_id" text PRIMARY KEY NOT NULL,
67
67
+
"name" text NOT NULL,
68
68
+
"biography" text,
69
69
+
"born" timestamp,
70
70
+
"born_in" text,
71
71
+
"died" timestamp,
72
72
+
"picture" text,
73
73
+
"sha256" text NOT NULL,
74
74
+
"uri" text,
75
75
+
"apple_music_link" text,
76
76
+
"spotify_link" text,
77
77
+
"tidal_link" text,
78
78
+
"youtube_link" text,
79
79
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
80
80
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
81
81
+
"xata_version" integer,
82
82
+
CONSTRAINT "artists_sha256_unique" UNIQUE("sha256"),
83
83
+
CONSTRAINT "artists_uri_unique" UNIQUE("uri")
84
84
+
);
85
85
+
--> statement-breakpoint
86
86
+
CREATE TABLE "dropbox_tokens" (
87
87
+
"xata_id" text PRIMARY KEY NOT NULL,
88
88
+
"refresh_token" text NOT NULL,
89
89
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
90
90
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL
91
91
+
);
92
92
+
--> statement-breakpoint
93
93
+
CREATE TABLE "google_drive_tokens" (
94
94
+
"xata_id" text PRIMARY KEY NOT NULL,
95
95
+
"refresh_token" text NOT NULL,
96
96
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
97
97
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL
98
98
+
);
99
99
+
--> statement-breakpoint
100
100
+
CREATE TABLE "loved_tracks" (
101
101
+
"xata_id" text PRIMARY KEY NOT NULL,
102
102
+
"user_id" text NOT NULL,
103
103
+
"track_id" text NOT NULL,
104
104
+
"uri" text,
105
105
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
106
106
+
CONSTRAINT "loved_tracks_uri_unique" UNIQUE("uri")
107
107
+
);
108
108
+
--> statement-breakpoint
109
109
+
CREATE TABLE "playlist_tracks" (
110
110
+
"xata_id" text PRIMARY KEY NOT NULL,
111
111
+
"playlist_id" text NOT NULL,
112
112
+
"track_id" text NOT NULL,
113
113
+
"xata_createdat" timestamp DEFAULT now() NOT NULL
114
114
+
);
115
115
+
--> statement-breakpoint
116
116
+
CREATE TABLE "playlists" (
117
117
+
"xata_id" text PRIMARY KEY NOT NULL,
118
118
+
"name" text NOT NULL,
119
119
+
"picture" text,
120
120
+
"description" text,
121
121
+
"uri" text,
122
122
+
"spotify_link" text,
123
123
+
"tidal_link" text,
124
124
+
"apple_music_link" text,
125
125
+
"created_by" text NOT NULL,
126
126
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
127
127
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
128
128
+
CONSTRAINT "playlists_uri_unique" UNIQUE("uri")
129
129
+
);
130
130
+
--> statement-breakpoint
131
131
+
CREATE TABLE "profile_shouts" (
132
132
+
"xata_id" text PRIMARY KEY NOT NULL,
133
133
+
"user_id" text NOT NULL,
134
134
+
"shout_id" text NOT NULL,
135
135
+
"xata_createdat" timestamp DEFAULT now() NOT NULL
136
136
+
);
137
137
+
--> statement-breakpoint
138
138
+
CREATE TABLE "scrobbles" (
139
139
+
"xata_id" text PRIMARY KEY NOT NULL,
140
140
+
"user_id" text,
141
141
+
"track_id" text,
142
142
+
"album_id" text,
143
143
+
"artist_id" text,
144
144
+
"uri" text,
145
145
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
146
146
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
147
147
+
"xata_version" integer,
148
148
+
"timestamp" timestamp DEFAULT now() NOT NULL,
149
149
+
CONSTRAINT "scrobbles_uri_unique" UNIQUE("uri")
150
150
+
);
151
151
+
--> statement-breakpoint
152
152
+
CREATE TABLE "shout_likes" (
153
153
+
"xata_id" text PRIMARY KEY NOT NULL,
154
154
+
"user_id" text NOT NULL,
155
155
+
"shout_id" text NOT NULL,
156
156
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
157
157
+
"uri" text NOT NULL,
158
158
+
CONSTRAINT "shout_likes_uri_unique" UNIQUE("uri")
159
159
+
);
160
160
+
--> statement-breakpoint
161
161
+
CREATE TABLE "shout_reports" (
162
162
+
"xata_id" text PRIMARY KEY NOT NULL,
163
163
+
"user_id" text NOT NULL,
164
164
+
"shout_id" text NOT NULL,
165
165
+
"xata_createdat" timestamp DEFAULT now() NOT NULL
166
166
+
);
167
167
+
--> statement-breakpoint
168
168
+
CREATE TABLE "shouts" (
169
169
+
"xata_id" text PRIMARY KEY NOT NULL,
170
170
+
"content" text NOT NULL,
171
171
+
"track_id" text,
172
172
+
"artist_id" text,
173
173
+
"album_id" text,
174
174
+
"scrobble_id" text,
175
175
+
"uri" text NOT NULL,
176
176
+
"author_id" text NOT NULL,
177
177
+
"parent_id" text,
178
178
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
179
179
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
180
180
+
CONSTRAINT "shouts_uri_unique" UNIQUE("uri")
181
181
+
);
182
182
+
--> statement-breakpoint
183
183
+
CREATE TABLE "spotify_accounts" (
184
184
+
"xata_id" text PRIMARY KEY NOT NULL,
185
185
+
"xata_version" integer NOT NULL,
186
186
+
"email" text NOT NULL,
187
187
+
"user_id" text NOT NULL,
188
188
+
"is_beta_user" boolean DEFAULT false NOT NULL,
189
189
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
190
190
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL
191
191
+
);
192
192
+
--> statement-breakpoint
193
193
+
CREATE TABLE "spotify_tokens" (
194
194
+
"xata_id" text PRIMARY KEY NOT NULL,
195
195
+
"xata_version" integer NOT NULL,
196
196
+
"access_token" text NOT NULL,
197
197
+
"refresh_token" text NOT NULL,
198
198
+
"user_id" text NOT NULL,
199
199
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
200
200
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL
201
201
+
);
202
202
+
--> statement-breakpoint
203
203
+
CREATE TABLE "tracks" (
204
204
+
"xata_id" text PRIMARY KEY NOT NULL,
205
205
+
"title" text NOT NULL,
206
206
+
"artist" text NOT NULL,
207
207
+
"album_artist" text NOT NULL,
208
208
+
"album_art" text,
209
209
+
"album" text NOT NULL,
210
210
+
"track_number" integer,
211
211
+
"duration" integer NOT NULL,
212
212
+
"mb_id" text,
213
213
+
"youtube_link" text,
214
214
+
"spotify_link" text,
215
215
+
"apple_music_link" text,
216
216
+
"tidal_link" text,
217
217
+
"sha256" text NOT NULL,
218
218
+
"disc_number" integer,
219
219
+
"lyrics" text,
220
220
+
"composer" text,
221
221
+
"genre" text,
222
222
+
"label" text,
223
223
+
"copyright_message" text,
224
224
+
"uri" text,
225
225
+
"album_uri" text,
226
226
+
"artist_uri" text,
227
227
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
228
228
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
229
229
+
"xata_version" integer,
230
230
+
CONSTRAINT "tracks_mb_id_unique" UNIQUE("mb_id"),
231
231
+
CONSTRAINT "tracks_youtube_link_unique" UNIQUE("youtube_link"),
232
232
+
CONSTRAINT "tracks_spotify_link_unique" UNIQUE("spotify_link"),
233
233
+
CONSTRAINT "tracks_apple_music_link_unique" UNIQUE("apple_music_link"),
234
234
+
CONSTRAINT "tracks_tidal_link_unique" UNIQUE("tidal_link"),
235
235
+
CONSTRAINT "tracks_sha256_unique" UNIQUE("sha256"),
236
236
+
CONSTRAINT "tracks_uri_unique" UNIQUE("uri"),
237
237
+
CONSTRAINT "tracks_album_uri_unique" UNIQUE("album_uri"),
238
238
+
CONSTRAINT "tracks_artist_uri_unique" UNIQUE("artist_uri")
239
239
+
);
240
240
+
--> statement-breakpoint
241
241
+
CREATE TABLE "user_albums" (
242
242
+
"xata_id" text PRIMARY KEY NOT NULL,
243
243
+
"user_id" text NOT NULL,
244
244
+
"album_id" text NOT NULL,
245
245
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
246
246
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
247
247
+
"xata_version" integer NOT NULL,
248
248
+
"scrobbles" integer,
249
249
+
"uri" text NOT NULL,
250
250
+
CONSTRAINT "user_albums_uri_unique" UNIQUE("uri")
251
251
+
);
252
252
+
--> statement-breakpoint
253
253
+
CREATE TABLE "user_artists" (
254
254
+
"xata_id" text PRIMARY KEY NOT NULL,
255
255
+
"user_id" text NOT NULL,
256
256
+
"artist_id" text NOT NULL,
257
257
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
258
258
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
259
259
+
"xata_version" integer NOT NULL,
260
260
+
"scrobbles" integer,
261
261
+
"uri" text NOT NULL,
262
262
+
CONSTRAINT "user_artists_uri_unique" UNIQUE("uri")
263
263
+
);
264
264
+
--> statement-breakpoint
265
265
+
CREATE TABLE "user_playlists" (
266
266
+
"xata_id" text PRIMARY KEY NOT NULL,
267
267
+
"user_id" text NOT NULL,
268
268
+
"playlist_id" text NOT NULL,
269
269
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
270
270
+
"uri" text NOT NULL,
271
271
+
CONSTRAINT "user_playlists_uri_unique" UNIQUE("uri")
272
272
+
);
273
273
+
--> statement-breakpoint
274
274
+
CREATE TABLE "user_tracks" (
275
275
+
"xata_id" text PRIMARY KEY NOT NULL,
276
276
+
"user_id" text NOT NULL,
277
277
+
"track_id" text NOT NULL,
278
278
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
279
279
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
280
280
+
"xata_version" integer NOT NULL,
281
281
+
"uri" text NOT NULL,
282
282
+
"scrobbles" integer,
283
283
+
CONSTRAINT "user_tracks_uri_unique" UNIQUE("uri")
284
284
+
);
285
285
+
--> statement-breakpoint
286
286
+
CREATE TABLE "users" (
287
287
+
"xata_id" text PRIMARY KEY NOT NULL,
288
288
+
"did" text NOT NULL,
289
289
+
"display_name" text NOT NULL,
290
290
+
"handle" text NOT NULL,
291
291
+
"avatar" text NOT NULL,
292
292
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
293
293
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL,
294
294
+
"xata_version" integer,
295
295
+
CONSTRAINT "users_did_unique" UNIQUE("did"),
296
296
+
CONSTRAINT "users_handle_unique" UNIQUE("handle")
297
297
+
);
298
298
+
--> statement-breakpoint
299
299
+
CREATE TABLE "webscrobblers" (
300
300
+
"xata_id" text PRIMARY KEY NOT NULL,
301
301
+
"name" text NOT NULL,
302
302
+
"uuid" text NOT NULL,
303
303
+
"description" text,
304
304
+
"enabled" boolean DEFAULT true NOT NULL,
305
305
+
"user_id" text NOT NULL,
306
306
+
"xata_createdat" timestamp DEFAULT now() NOT NULL,
307
307
+
"xata_updatedat" timestamp DEFAULT now() NOT NULL
308
308
+
);
309
309
+
--> statement-breakpoint
310
310
+
ALTER TABLE "album_tracks" ADD CONSTRAINT "album_tracks_album_id_albums_xata_id_fk" FOREIGN KEY ("album_id") REFERENCES "public"."albums"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
311
311
+
ALTER TABLE "album_tracks" ADD CONSTRAINT "album_tracks_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
312
312
+
ALTER TABLE "api_keys" ADD CONSTRAINT "api_keys_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
313
313
+
ALTER TABLE "artist_albums" ADD CONSTRAINT "artist_albums_artist_id_artists_xata_id_fk" FOREIGN KEY ("artist_id") REFERENCES "public"."artists"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
314
314
+
ALTER TABLE "artist_albums" ADD CONSTRAINT "artist_albums_album_id_albums_xata_id_fk" FOREIGN KEY ("album_id") REFERENCES "public"."albums"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
315
315
+
ALTER TABLE "artist_tracks" ADD CONSTRAINT "artist_tracks_artist_id_artists_xata_id_fk" FOREIGN KEY ("artist_id") REFERENCES "public"."artists"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
316
316
+
ALTER TABLE "artist_tracks" ADD CONSTRAINT "artist_tracks_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
317
317
+
ALTER TABLE "loved_tracks" ADD CONSTRAINT "loved_tracks_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
318
318
+
ALTER TABLE "loved_tracks" ADD CONSTRAINT "loved_tracks_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
319
319
+
ALTER TABLE "playlist_tracks" ADD CONSTRAINT "playlist_tracks_playlist_id_playlists_xata_id_fk" FOREIGN KEY ("playlist_id") REFERENCES "public"."playlists"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
320
320
+
ALTER TABLE "playlist_tracks" ADD CONSTRAINT "playlist_tracks_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
321
321
+
ALTER TABLE "playlists" ADD CONSTRAINT "playlists_created_by_users_xata_id_fk" FOREIGN KEY ("created_by") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
322
322
+
ALTER TABLE "profile_shouts" ADD CONSTRAINT "profile_shouts_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
323
323
+
ALTER TABLE "profile_shouts" ADD CONSTRAINT "profile_shouts_shout_id_shouts_xata_id_fk" FOREIGN KEY ("shout_id") REFERENCES "public"."shouts"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
324
324
+
ALTER TABLE "scrobbles" ADD CONSTRAINT "scrobbles_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
325
325
+
ALTER TABLE "scrobbles" ADD CONSTRAINT "scrobbles_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
326
326
+
ALTER TABLE "scrobbles" ADD CONSTRAINT "scrobbles_album_id_albums_xata_id_fk" FOREIGN KEY ("album_id") REFERENCES "public"."albums"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
327
327
+
ALTER TABLE "scrobbles" ADD CONSTRAINT "scrobbles_artist_id_artists_xata_id_fk" FOREIGN KEY ("artist_id") REFERENCES "public"."artists"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
328
328
+
ALTER TABLE "shout_likes" ADD CONSTRAINT "shout_likes_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
329
329
+
ALTER TABLE "shout_likes" ADD CONSTRAINT "shout_likes_shout_id_shouts_xata_id_fk" FOREIGN KEY ("shout_id") REFERENCES "public"."shouts"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
330
330
+
ALTER TABLE "shout_reports" ADD CONSTRAINT "shout_reports_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
331
331
+
ALTER TABLE "shout_reports" ADD CONSTRAINT "shout_reports_shout_id_shouts_xata_id_fk" FOREIGN KEY ("shout_id") REFERENCES "public"."shouts"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
332
332
+
ALTER TABLE "shouts" ADD CONSTRAINT "shouts_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
333
333
+
ALTER TABLE "shouts" ADD CONSTRAINT "shouts_artist_id_users_xata_id_fk" FOREIGN KEY ("artist_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
334
334
+
ALTER TABLE "shouts" ADD CONSTRAINT "shouts_album_id_albums_xata_id_fk" FOREIGN KEY ("album_id") REFERENCES "public"."albums"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
335
335
+
ALTER TABLE "shouts" ADD CONSTRAINT "shouts_scrobble_id_scrobbles_xata_id_fk" FOREIGN KEY ("scrobble_id") REFERENCES "public"."scrobbles"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
336
336
+
ALTER TABLE "shouts" ADD CONSTRAINT "shouts_author_id_users_xata_id_fk" FOREIGN KEY ("author_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
337
337
+
ALTER TABLE "shouts" ADD CONSTRAINT "shouts_parent_id_shouts_xata_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."shouts"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
338
338
+
ALTER TABLE "spotify_accounts" ADD CONSTRAINT "spotify_accounts_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
339
339
+
ALTER TABLE "spotify_tokens" ADD CONSTRAINT "spotify_tokens_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
340
340
+
ALTER TABLE "user_albums" ADD CONSTRAINT "user_albums_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
341
341
+
ALTER TABLE "user_albums" ADD CONSTRAINT "user_albums_album_id_albums_xata_id_fk" FOREIGN KEY ("album_id") REFERENCES "public"."albums"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
342
342
+
ALTER TABLE "user_artists" ADD CONSTRAINT "user_artists_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
343
343
+
ALTER TABLE "user_artists" ADD CONSTRAINT "user_artists_artist_id_artists_xata_id_fk" FOREIGN KEY ("artist_id") REFERENCES "public"."artists"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
344
344
+
ALTER TABLE "user_playlists" ADD CONSTRAINT "user_playlists_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
345
345
+
ALTER TABLE "user_playlists" ADD CONSTRAINT "user_playlists_playlist_id_tracks_xata_id_fk" FOREIGN KEY ("playlist_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
346
346
+
ALTER TABLE "user_tracks" ADD CONSTRAINT "user_tracks_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
347
347
+
ALTER TABLE "user_tracks" ADD CONSTRAINT "user_tracks_track_id_tracks_xata_id_fk" FOREIGN KEY ("track_id") REFERENCES "public"."tracks"("xata_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
348
348
+
ALTER TABLE "webscrobblers" ADD CONSTRAINT "webscrobblers_user_id_users_xata_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("xata_id") ON DELETE no action ON UPDATE no action;
+2363
rockskyapi/rocksky-auth/drizzle/meta/0000_snapshot.json
···
1
1
+
{
2
2
+
"id": "4c369380-a733-4097-b87a-036a11bbc173",
3
3
+
"prevId": "00000000-0000-0000-0000-000000000000",
4
4
+
"version": "7",
5
5
+
"dialect": "postgresql",
6
6
+
"tables": {
7
7
+
"public.album_tracks": {
8
8
+
"name": "album_tracks",
9
9
+
"schema": "",
10
10
+
"columns": {
11
11
+
"xata_id": {
12
12
+
"name": "xata_id",
13
13
+
"type": "text",
14
14
+
"primaryKey": true,
15
15
+
"notNull": true
16
16
+
},
17
17
+
"album_id": {
18
18
+
"name": "album_id",
19
19
+
"type": "text",
20
20
+
"primaryKey": false,
21
21
+
"notNull": true
22
22
+
},
23
23
+
"track_id": {
24
24
+
"name": "track_id",
25
25
+
"type": "text",
26
26
+
"primaryKey": false,
27
27
+
"notNull": true
28
28
+
},
29
29
+
"xata_createdat": {
30
30
+
"name": "xata_createdat",
31
31
+
"type": "timestamp",
32
32
+
"primaryKey": false,
33
33
+
"notNull": true,
34
34
+
"default": "now()"
35
35
+
},
36
36
+
"xata_updatedat": {
37
37
+
"name": "xata_updatedat",
38
38
+
"type": "timestamp",
39
39
+
"primaryKey": false,
40
40
+
"notNull": true,
41
41
+
"default": "now()"
42
42
+
},
43
43
+
"xata_version": {
44
44
+
"name": "xata_version",
45
45
+
"type": "integer",
46
46
+
"primaryKey": false,
47
47
+
"notNull": true
48
48
+
}
49
49
+
},
50
50
+
"indexes": {},
51
51
+
"foreignKeys": {
52
52
+
"album_tracks_album_id_albums_xata_id_fk": {
53
53
+
"name": "album_tracks_album_id_albums_xata_id_fk",
54
54
+
"tableFrom": "album_tracks",
55
55
+
"tableTo": "albums",
56
56
+
"columnsFrom": [
57
57
+
"album_id"
58
58
+
],
59
59
+
"columnsTo": [
60
60
+
"xata_id"
61
61
+
],
62
62
+
"onDelete": "no action",
63
63
+
"onUpdate": "no action"
64
64
+
},
65
65
+
"album_tracks_track_id_tracks_xata_id_fk": {
66
66
+
"name": "album_tracks_track_id_tracks_xata_id_fk",
67
67
+
"tableFrom": "album_tracks",
68
68
+
"tableTo": "tracks",
69
69
+
"columnsFrom": [
70
70
+
"track_id"
71
71
+
],
72
72
+
"columnsTo": [
73
73
+
"xata_id"
74
74
+
],
75
75
+
"onDelete": "no action",
76
76
+
"onUpdate": "no action"
77
77
+
}
78
78
+
},
79
79
+
"compositePrimaryKeys": {},
80
80
+
"uniqueConstraints": {},
81
81
+
"policies": {},
82
82
+
"checkConstraints": {},
83
83
+
"isRLSEnabled": false
84
84
+
},
85
85
+
"public.albums": {
86
86
+
"name": "albums",
87
87
+
"schema": "",
88
88
+
"columns": {
89
89
+
"xata_id": {
90
90
+
"name": "xata_id",
91
91
+
"type": "text",
92
92
+
"primaryKey": true,
93
93
+
"notNull": true
94
94
+
},
95
95
+
"title": {
96
96
+
"name": "title",
97
97
+
"type": "text",
98
98
+
"primaryKey": false,
99
99
+
"notNull": true
100
100
+
},
101
101
+
"artist": {
102
102
+
"name": "artist",
103
103
+
"type": "text",
104
104
+
"primaryKey": false,
105
105
+
"notNull": true
106
106
+
},
107
107
+
"release_date": {
108
108
+
"name": "release_date",
109
109
+
"type": "text",
110
110
+
"primaryKey": false,
111
111
+
"notNull": false
112
112
+
},
113
113
+
"year": {
114
114
+
"name": "year",
115
115
+
"type": "integer",
116
116
+
"primaryKey": false,
117
117
+
"notNull": false
118
118
+
},
119
119
+
"album_art": {
120
120
+
"name": "album_art",
121
121
+
"type": "text",
122
122
+
"primaryKey": false,
123
123
+
"notNull": false
124
124
+
},
125
125
+
"uri": {
126
126
+
"name": "uri",
127
127
+
"type": "text",
128
128
+
"primaryKey": false,
129
129
+
"notNull": false
130
130
+
},
131
131
+
"artist_uri": {
132
132
+
"name": "artist_uri",
133
133
+
"type": "text",
134
134
+
"primaryKey": false,
135
135
+
"notNull": false
136
136
+
},
137
137
+
"apple_music_link": {
138
138
+
"name": "apple_music_link",
139
139
+
"type": "text",
140
140
+
"primaryKey": false,
141
141
+
"notNull": false
142
142
+
},
143
143
+
"spotify_link": {
144
144
+
"name": "spotify_link",
145
145
+
"type": "text",
146
146
+
"primaryKey": false,
147
147
+
"notNull": false
148
148
+
},
149
149
+
"tidal_link": {
150
150
+
"name": "tidal_link",
151
151
+
"type": "text",
152
152
+
"primaryKey": false,
153
153
+
"notNull": false
154
154
+
},
155
155
+
"youtube_link": {
156
156
+
"name": "youtube_link",
157
157
+
"type": "text",
158
158
+
"primaryKey": false,
159
159
+
"notNull": false
160
160
+
},
161
161
+
"sha256": {
162
162
+
"name": "sha256",
163
163
+
"type": "text",
164
164
+
"primaryKey": false,
165
165
+
"notNull": true
166
166
+
},
167
167
+
"xata_createdat": {
168
168
+
"name": "xata_createdat",
169
169
+
"type": "timestamp",
170
170
+
"primaryKey": false,
171
171
+
"notNull": true,
172
172
+
"default": "now()"
173
173
+
},
174
174
+
"xata_updatedat": {
175
175
+
"name": "xata_updatedat",
176
176
+
"type": "timestamp",
177
177
+
"primaryKey": false,
178
178
+
"notNull": true,
179
179
+
"default": "now()"
180
180
+
},
181
181
+
"xata_version": {
182
182
+
"name": "xata_version",
183
183
+
"type": "integer",
184
184
+
"primaryKey": false,
185
185
+
"notNull": false
186
186
+
}
187
187
+
},
188
188
+
"indexes": {},
189
189
+
"foreignKeys": {},
190
190
+
"compositePrimaryKeys": {},
191
191
+
"uniqueConstraints": {
192
192
+
"albums_uri_unique": {
193
193
+
"name": "albums_uri_unique",
194
194
+
"nullsNotDistinct": false,
195
195
+
"columns": [
196
196
+
"uri"
197
197
+
]
198
198
+
},
199
199
+
"albums_apple_music_link_unique": {
200
200
+
"name": "albums_apple_music_link_unique",
201
201
+
"nullsNotDistinct": false,
202
202
+
"columns": [
203
203
+
"apple_music_link"
204
204
+
]
205
205
+
},
206
206
+
"albums_spotify_link_unique": {
207
207
+
"name": "albums_spotify_link_unique",
208
208
+
"nullsNotDistinct": false,
209
209
+
"columns": [
210
210
+
"spotify_link"
211
211
+
]
212
212
+
},
213
213
+
"albums_tidal_link_unique": {
214
214
+
"name": "albums_tidal_link_unique",
215
215
+
"nullsNotDistinct": false,
216
216
+
"columns": [
217
217
+
"tidal_link"
218
218
+
]
219
219
+
},
220
220
+
"albums_youtube_link_unique": {
221
221
+
"name": "albums_youtube_link_unique",
222
222
+
"nullsNotDistinct": false,
223
223
+
"columns": [
224
224
+
"youtube_link"
225
225
+
]
226
226
+
},
227
227
+
"albums_sha256_unique": {
228
228
+
"name": "albums_sha256_unique",
229
229
+
"nullsNotDistinct": false,
230
230
+
"columns": [
231
231
+
"sha256"
232
232
+
]
233
233
+
}
234
234
+
},
235
235
+
"policies": {},
236
236
+
"checkConstraints": {},
237
237
+
"isRLSEnabled": false
238
238
+
},
239
239
+
"public.api_keys": {
240
240
+
"name": "api_keys",
241
241
+
"schema": "",
242
242
+
"columns": {
243
243
+
"xata_id": {
244
244
+
"name": "xata_id",
245
245
+
"type": "text",
246
246
+
"primaryKey": true,
247
247
+
"notNull": true
248
248
+
},
249
249
+
"name": {
250
250
+
"name": "name",
251
251
+
"type": "text",
252
252
+
"primaryKey": false,
253
253
+
"notNull": true
254
254
+
},
255
255
+
"api_key": {
256
256
+
"name": "api_key",
257
257
+
"type": "text",
258
258
+
"primaryKey": false,
259
259
+
"notNull": true
260
260
+
},
261
261
+
"shared_secret": {
262
262
+
"name": "shared_secret",
263
263
+
"type": "text",
264
264
+
"primaryKey": false,
265
265
+
"notNull": true
266
266
+
},
267
267
+
"description": {
268
268
+
"name": "description",
269
269
+
"type": "text",
270
270
+
"primaryKey": false,
271
271
+
"notNull": false
272
272
+
},
273
273
+
"enabled": {
274
274
+
"name": "enabled",
275
275
+
"type": "boolean",
276
276
+
"primaryKey": false,
277
277
+
"notNull": true,
278
278
+
"default": true
279
279
+
},
280
280
+
"user_id": {
281
281
+
"name": "user_id",
282
282
+
"type": "text",
283
283
+
"primaryKey": false,
284
284
+
"notNull": true
285
285
+
},
286
286
+
"xata_createdat": {
287
287
+
"name": "xata_createdat",
288
288
+
"type": "timestamp",
289
289
+
"primaryKey": false,
290
290
+
"notNull": true,
291
291
+
"default": "now()"
292
292
+
},
293
293
+
"xata_updatedat": {
294
294
+
"name": "xata_updatedat",
295
295
+
"type": "timestamp",
296
296
+
"primaryKey": false,
297
297
+
"notNull": true,
298
298
+
"default": "now()"
299
299
+
}
300
300
+
},
301
301
+
"indexes": {},
302
302
+
"foreignKeys": {
303
303
+
"api_keys_user_id_users_xata_id_fk": {
304
304
+
"name": "api_keys_user_id_users_xata_id_fk",
305
305
+
"tableFrom": "api_keys",
306
306
+
"tableTo": "users",
307
307
+
"columnsFrom": [
308
308
+
"user_id"
309
309
+
],
310
310
+
"columnsTo": [
311
311
+
"xata_id"
312
312
+
],
313
313
+
"onDelete": "no action",
314
314
+
"onUpdate": "no action"
315
315
+
}
316
316
+
},
317
317
+
"compositePrimaryKeys": {},
318
318
+
"uniqueConstraints": {},
319
319
+
"policies": {},
320
320
+
"checkConstraints": {},
321
321
+
"isRLSEnabled": false
322
322
+
},
323
323
+
"public.artist_albums": {
324
324
+
"name": "artist_albums",
325
325
+
"schema": "",
326
326
+
"columns": {
327
327
+
"xata_id": {
328
328
+
"name": "xata_id",
329
329
+
"type": "text",
330
330
+
"primaryKey": true,
331
331
+
"notNull": true
332
332
+
},
333
333
+
"artist_id": {
334
334
+
"name": "artist_id",
335
335
+
"type": "text",
336
336
+
"primaryKey": false,
337
337
+
"notNull": true
338
338
+
},
339
339
+
"album_id": {
340
340
+
"name": "album_id",
341
341
+
"type": "text",
342
342
+
"primaryKey": false,
343
343
+
"notNull": true
344
344
+
},
345
345
+
"xata_createdat": {
346
346
+
"name": "xata_createdat",
347
347
+
"type": "timestamp",
348
348
+
"primaryKey": false,
349
349
+
"notNull": true,
350
350
+
"default": "now()"
351
351
+
},
352
352
+
"xata_updatedat": {
353
353
+
"name": "xata_updatedat",
354
354
+
"type": "timestamp",
355
355
+
"primaryKey": false,
356
356
+
"notNull": true,
357
357
+
"default": "now()"
358
358
+
},
359
359
+
"xata_version": {
360
360
+
"name": "xata_version",
361
361
+
"type": "integer",
362
362
+
"primaryKey": false,
363
363
+
"notNull": true
364
364
+
}
365
365
+
},
366
366
+
"indexes": {},
367
367
+
"foreignKeys": {
368
368
+
"artist_albums_artist_id_artists_xata_id_fk": {
369
369
+
"name": "artist_albums_artist_id_artists_xata_id_fk",
370
370
+
"tableFrom": "artist_albums",
371
371
+
"tableTo": "artists",
372
372
+
"columnsFrom": [
373
373
+
"artist_id"
374
374
+
],
375
375
+
"columnsTo": [
376
376
+
"xata_id"
377
377
+
],
378
378
+
"onDelete": "no action",
379
379
+
"onUpdate": "no action"
380
380
+
},
381
381
+
"artist_albums_album_id_albums_xata_id_fk": {
382
382
+
"name": "artist_albums_album_id_albums_xata_id_fk",
383
383
+
"tableFrom": "artist_albums",
384
384
+
"tableTo": "albums",
385
385
+
"columnsFrom": [
386
386
+
"album_id"
387
387
+
],
388
388
+
"columnsTo": [
389
389
+
"xata_id"
390
390
+
],
391
391
+
"onDelete": "no action",
392
392
+
"onUpdate": "no action"
393
393
+
}
394
394
+
},
395
395
+
"compositePrimaryKeys": {},
396
396
+
"uniqueConstraints": {},
397
397
+
"policies": {},
398
398
+
"checkConstraints": {},
399
399
+
"isRLSEnabled": false
400
400
+
},
401
401
+
"public.artist_tracks": {
402
402
+
"name": "artist_tracks",
403
403
+
"schema": "",
404
404
+
"columns": {
405
405
+
"xata_id": {
406
406
+
"name": "xata_id",
407
407
+
"type": "text",
408
408
+
"primaryKey": true,
409
409
+
"notNull": true
410
410
+
},
411
411
+
"artist_id": {
412
412
+
"name": "artist_id",
413
413
+
"type": "text",
414
414
+
"primaryKey": false,
415
415
+
"notNull": true
416
416
+
},
417
417
+
"track_id": {
418
418
+
"name": "track_id",
419
419
+
"type": "text",
420
420
+
"primaryKey": false,
421
421
+
"notNull": true
422
422
+
},
423
423
+
"xata_createdat": {
424
424
+
"name": "xata_createdat",
425
425
+
"type": "timestamp",
426
426
+
"primaryKey": false,
427
427
+
"notNull": true,
428
428
+
"default": "now()"
429
429
+
},
430
430
+
"xata_updatedat": {
431
431
+
"name": "xata_updatedat",
432
432
+
"type": "timestamp",
433
433
+
"primaryKey": false,
434
434
+
"notNull": true,
435
435
+
"default": "now()"
436
436
+
},
437
437
+
"xata_version": {
438
438
+
"name": "xata_version",
439
439
+
"type": "integer",
440
440
+
"primaryKey": false,
441
441
+
"notNull": true
442
442
+
}
443
443
+
},
444
444
+
"indexes": {},
445
445
+
"foreignKeys": {
446
446
+
"artist_tracks_artist_id_artists_xata_id_fk": {
447
447
+
"name": "artist_tracks_artist_id_artists_xata_id_fk",
448
448
+
"tableFrom": "artist_tracks",
449
449
+
"tableTo": "artists",
450
450
+
"columnsFrom": [
451
451
+
"artist_id"
452
452
+
],
453
453
+
"columnsTo": [
454
454
+
"xata_id"
455
455
+
],
456
456
+
"onDelete": "no action",
457
457
+
"onUpdate": "no action"
458
458
+
},
459
459
+
"artist_tracks_track_id_tracks_xata_id_fk": {
460
460
+
"name": "artist_tracks_track_id_tracks_xata_id_fk",
461
461
+
"tableFrom": "artist_tracks",
462
462
+
"tableTo": "tracks",
463
463
+
"columnsFrom": [
464
464
+
"track_id"
465
465
+
],
466
466
+
"columnsTo": [
467
467
+
"xata_id"
468
468
+
],
469
469
+
"onDelete": "no action",
470
470
+
"onUpdate": "no action"
471
471
+
}
472
472
+
},
473
473
+
"compositePrimaryKeys": {},
474
474
+
"uniqueConstraints": {},
475
475
+
"policies": {},
476
476
+
"checkConstraints": {},
477
477
+
"isRLSEnabled": false
478
478
+
},
479
479
+
"public.artists": {
480
480
+
"name": "artists",
481
481
+
"schema": "",
482
482
+
"columns": {
483
483
+
"xata_id": {
484
484
+
"name": "xata_id",
485
485
+
"type": "text",
486
486
+
"primaryKey": true,
487
487
+
"notNull": true
488
488
+
},
489
489
+
"name": {
490
490
+
"name": "name",
491
491
+
"type": "text",
492
492
+
"primaryKey": false,
493
493
+
"notNull": true
494
494
+
},
495
495
+
"biography": {
496
496
+
"name": "biography",
497
497
+
"type": "text",
498
498
+
"primaryKey": false,
499
499
+
"notNull": false
500
500
+
},
501
501
+
"born": {
502
502
+
"name": "born",
503
503
+
"type": "timestamp",
504
504
+
"primaryKey": false,
505
505
+
"notNull": false
506
506
+
},
507
507
+
"born_in": {
508
508
+
"name": "born_in",
509
509
+
"type": "text",
510
510
+
"primaryKey": false,
511
511
+
"notNull": false
512
512
+
},
513
513
+
"died": {
514
514
+
"name": "died",
515
515
+
"type": "timestamp",
516
516
+
"primaryKey": false,
517
517
+
"notNull": false
518
518
+
},
519
519
+
"picture": {
520
520
+
"name": "picture",
521
521
+
"type": "text",
522
522
+
"primaryKey": false,
523
523
+
"notNull": false
524
524
+
},
525
525
+
"sha256": {
526
526
+
"name": "sha256",
527
527
+
"type": "text",
528
528
+
"primaryKey": false,
529
529
+
"notNull": true
530
530
+
},
531
531
+
"uri": {
532
532
+
"name": "uri",
533
533
+
"type": "text",
534
534
+
"primaryKey": false,
535
535
+
"notNull": false
536
536
+
},
537
537
+
"apple_music_link": {
538
538
+
"name": "apple_music_link",
539
539
+
"type": "text",
540
540
+
"primaryKey": false,
541
541
+
"notNull": false
542
542
+
},
543
543
+
"spotify_link": {
544
544
+
"name": "spotify_link",
545
545
+
"type": "text",
546
546
+
"primaryKey": false,
547
547
+
"notNull": false
548
548
+
},
549
549
+
"tidal_link": {
550
550
+
"name": "tidal_link",
551
551
+
"type": "text",
552
552
+
"primaryKey": false,
553
553
+
"notNull": false
554
554
+
},
555
555
+
"youtube_link": {
556
556
+
"name": "youtube_link",
557
557
+
"type": "text",
558
558
+
"primaryKey": false,
559
559
+
"notNull": false
560
560
+
},
561
561
+
"xata_createdat": {
562
562
+
"name": "xata_createdat",
563
563
+
"type": "timestamp",
564
564
+
"primaryKey": false,
565
565
+
"notNull": true,
566
566
+
"default": "now()"
567
567
+
},
568
568
+
"xata_updatedat": {
569
569
+
"name": "xata_updatedat",
570
570
+
"type": "timestamp",
571
571
+
"primaryKey": false,
572
572
+
"notNull": true,
573
573
+
"default": "now()"
574
574
+
},
575
575
+
"xata_version": {
576
576
+
"name": "xata_version",
577
577
+
"type": "integer",
578
578
+
"primaryKey": false,
579
579
+
"notNull": false
580
580
+
}
581
581
+
},
582
582
+
"indexes": {},
583
583
+
"foreignKeys": {},
584
584
+
"compositePrimaryKeys": {},
585
585
+
"uniqueConstraints": {
586
586
+
"artists_sha256_unique": {
587
587
+
"name": "artists_sha256_unique",
588
588
+
"nullsNotDistinct": false,
589
589
+
"columns": [
590
590
+
"sha256"
591
591
+
]
592
592
+
},
593
593
+
"artists_uri_unique": {
594
594
+
"name": "artists_uri_unique",
595
595
+
"nullsNotDistinct": false,
596
596
+
"columns": [
597
597
+
"uri"
598
598
+
]
599
599
+
}
600
600
+
},
601
601
+
"policies": {},
602
602
+
"checkConstraints": {},
603
603
+
"isRLSEnabled": false
604
604
+
},
605
605
+
"public.dropbox_tokens": {
606
606
+
"name": "dropbox_tokens",
607
607
+
"schema": "",
608
608
+
"columns": {
609
609
+
"xata_id": {
610
610
+
"name": "xata_id",
611
611
+
"type": "text",
612
612
+
"primaryKey": true,
613
613
+
"notNull": true
614
614
+
},
615
615
+
"refresh_token": {
616
616
+
"name": "refresh_token",
617
617
+
"type": "text",
618
618
+
"primaryKey": false,
619
619
+
"notNull": true
620
620
+
},
621
621
+
"xata_createdat": {
622
622
+
"name": "xata_createdat",
623
623
+
"type": "timestamp",
624
624
+
"primaryKey": false,
625
625
+
"notNull": true,
626
626
+
"default": "now()"
627
627
+
},
628
628
+
"xata_updatedat": {
629
629
+
"name": "xata_updatedat",
630
630
+
"type": "timestamp",
631
631
+
"primaryKey": false,
632
632
+
"notNull": true,
633
633
+
"default": "now()"
634
634
+
}
635
635
+
},
636
636
+
"indexes": {},
637
637
+
"foreignKeys": {},
638
638
+
"compositePrimaryKeys": {},
639
639
+
"uniqueConstraints": {},
640
640
+
"policies": {},
641
641
+
"checkConstraints": {},
642
642
+
"isRLSEnabled": false
643
643
+
},
644
644
+
"public.google_drive_tokens": {
645
645
+
"name": "google_drive_tokens",
646
646
+
"schema": "",
647
647
+
"columns": {
648
648
+
"xata_id": {
649
649
+
"name": "xata_id",
650
650
+
"type": "text",
651
651
+
"primaryKey": true,
652
652
+
"notNull": true
653
653
+
},
654
654
+
"refresh_token": {
655
655
+
"name": "refresh_token",
656
656
+
"type": "text",
657
657
+
"primaryKey": false,
658
658
+
"notNull": true
659
659
+
},
660
660
+
"xata_createdat": {
661
661
+
"name": "xata_createdat",
662
662
+
"type": "timestamp",
663
663
+
"primaryKey": false,
664
664
+
"notNull": true,
665
665
+
"default": "now()"
666
666
+
},
667
667
+
"xata_updatedat": {
668
668
+
"name": "xata_updatedat",
669
669
+
"type": "timestamp",
670
670
+
"primaryKey": false,
671
671
+
"notNull": true,
672
672
+
"default": "now()"
673
673
+
}
674
674
+
},
675
675
+
"indexes": {},
676
676
+
"foreignKeys": {},
677
677
+
"compositePrimaryKeys": {},
678
678
+
"uniqueConstraints": {},
679
679
+
"policies": {},
680
680
+
"checkConstraints": {},
681
681
+
"isRLSEnabled": false
682
682
+
},
683
683
+
"public.loved_tracks": {
684
684
+
"name": "loved_tracks",
685
685
+
"schema": "",
686
686
+
"columns": {
687
687
+
"xata_id": {
688
688
+
"name": "xata_id",
689
689
+
"type": "text",
690
690
+
"primaryKey": true,
691
691
+
"notNull": true
692
692
+
},
693
693
+
"user_id": {
694
694
+
"name": "user_id",
695
695
+
"type": "text",
696
696
+
"primaryKey": false,
697
697
+
"notNull": true
698
698
+
},
699
699
+
"track_id": {
700
700
+
"name": "track_id",
701
701
+
"type": "text",
702
702
+
"primaryKey": false,
703
703
+
"notNull": true
704
704
+
},
705
705
+
"uri": {
706
706
+
"name": "uri",
707
707
+
"type": "text",
708
708
+
"primaryKey": false,
709
709
+
"notNull": false
710
710
+
},
711
711
+
"xata_createdat": {
712
712
+
"name": "xata_createdat",
713
713
+
"type": "timestamp",
714
714
+
"primaryKey": false,
715
715
+
"notNull": true,
716
716
+
"default": "now()"
717
717
+
}
718
718
+
},
719
719
+
"indexes": {},
720
720
+
"foreignKeys": {
721
721
+
"loved_tracks_user_id_users_xata_id_fk": {
722
722
+
"name": "loved_tracks_user_id_users_xata_id_fk",
723
723
+
"tableFrom": "loved_tracks",
724
724
+
"tableTo": "users",
725
725
+
"columnsFrom": [
726
726
+
"user_id"
727
727
+
],
728
728
+
"columnsTo": [
729
729
+
"xata_id"
730
730
+
],
731
731
+
"onDelete": "no action",
732
732
+
"onUpdate": "no action"
733
733
+
},
734
734
+
"loved_tracks_track_id_tracks_xata_id_fk": {
735
735
+
"name": "loved_tracks_track_id_tracks_xata_id_fk",
736
736
+
"tableFrom": "loved_tracks",
737
737
+
"tableTo": "tracks",
738
738
+
"columnsFrom": [
739
739
+
"track_id"
740
740
+
],
741
741
+
"columnsTo": [
742
742
+
"xata_id"
743
743
+
],
744
744
+
"onDelete": "no action",
745
745
+
"onUpdate": "no action"
746
746
+
}
747
747
+
},
748
748
+
"compositePrimaryKeys": {},
749
749
+
"uniqueConstraints": {
750
750
+
"loved_tracks_uri_unique": {
751
751
+
"name": "loved_tracks_uri_unique",
752
752
+
"nullsNotDistinct": false,
753
753
+
"columns": [
754
754
+
"uri"
755
755
+
]
756
756
+
}
757
757
+
},
758
758
+
"policies": {},
759
759
+
"checkConstraints": {},
760
760
+
"isRLSEnabled": false
761
761
+
},
762
762
+
"public.playlist_tracks": {
763
763
+
"name": "playlist_tracks",
764
764
+
"schema": "",
765
765
+
"columns": {
766
766
+
"xata_id": {
767
767
+
"name": "xata_id",
768
768
+
"type": "text",
769
769
+
"primaryKey": true,
770
770
+
"notNull": true
771
771
+
},
772
772
+
"playlist_id": {
773
773
+
"name": "playlist_id",
774
774
+
"type": "text",
775
775
+
"primaryKey": false,
776
776
+
"notNull": true
777
777
+
},
778
778
+
"track_id": {
779
779
+
"name": "track_id",
780
780
+
"type": "text",
781
781
+
"primaryKey": false,
782
782
+
"notNull": true
783
783
+
},
784
784
+
"xata_createdat": {
785
785
+
"name": "xata_createdat",
786
786
+
"type": "timestamp",
787
787
+
"primaryKey": false,
788
788
+
"notNull": true,
789
789
+
"default": "now()"
790
790
+
}
791
791
+
},
792
792
+
"indexes": {},
793
793
+
"foreignKeys": {
794
794
+
"playlist_tracks_playlist_id_playlists_xata_id_fk": {
795
795
+
"name": "playlist_tracks_playlist_id_playlists_xata_id_fk",
796
796
+
"tableFrom": "playlist_tracks",
797
797
+
"tableTo": "playlists",
798
798
+
"columnsFrom": [
799
799
+
"playlist_id"
800
800
+
],
801
801
+
"columnsTo": [
802
802
+
"xata_id"
803
803
+
],
804
804
+
"onDelete": "no action",
805
805
+
"onUpdate": "no action"
806
806
+
},
807
807
+
"playlist_tracks_track_id_tracks_xata_id_fk": {
808
808
+
"name": "playlist_tracks_track_id_tracks_xata_id_fk",
809
809
+
"tableFrom": "playlist_tracks",
810
810
+
"tableTo": "tracks",
811
811
+
"columnsFrom": [
812
812
+
"track_id"
813
813
+
],
814
814
+
"columnsTo": [
815
815
+
"xata_id"
816
816
+
],
817
817
+
"onDelete": "no action",
818
818
+
"onUpdate": "no action"
819
819
+
}
820
820
+
},
821
821
+
"compositePrimaryKeys": {},
822
822
+
"uniqueConstraints": {},
823
823
+
"policies": {},
824
824
+
"checkConstraints": {},
825
825
+
"isRLSEnabled": false
826
826
+
},
827
827
+
"public.playlists": {
828
828
+
"name": "playlists",
829
829
+
"schema": "",
830
830
+
"columns": {
831
831
+
"xata_id": {
832
832
+
"name": "xata_id",
833
833
+
"type": "text",
834
834
+
"primaryKey": true,
835
835
+
"notNull": true
836
836
+
},
837
837
+
"name": {
838
838
+
"name": "name",
839
839
+
"type": "text",
840
840
+
"primaryKey": false,
841
841
+
"notNull": true
842
842
+
},
843
843
+
"picture": {
844
844
+
"name": "picture",
845
845
+
"type": "text",
846
846
+
"primaryKey": false,
847
847
+
"notNull": false
848
848
+
},
849
849
+
"description": {
850
850
+
"name": "description",
851
851
+
"type": "text",
852
852
+
"primaryKey": false,
853
853
+
"notNull": false
854
854
+
},
855
855
+
"uri": {
856
856
+
"name": "uri",
857
857
+
"type": "text",
858
858
+
"primaryKey": false,
859
859
+
"notNull": false
860
860
+
},
861
861
+
"spotify_link": {
862
862
+
"name": "spotify_link",
863
863
+
"type": "text",
864
864
+
"primaryKey": false,
865
865
+
"notNull": false
866
866
+
},
867
867
+
"tidal_link": {
868
868
+
"name": "tidal_link",
869
869
+
"type": "text",
870
870
+
"primaryKey": false,
871
871
+
"notNull": false
872
872
+
},
873
873
+
"apple_music_link": {
874
874
+
"name": "apple_music_link",
875
875
+
"type": "text",
876
876
+
"primaryKey": false,
877
877
+
"notNull": false
878
878
+
},
879
879
+
"created_by": {
880
880
+
"name": "created_by",
881
881
+
"type": "text",
882
882
+
"primaryKey": false,
883
883
+
"notNull": true
884
884
+
},
885
885
+
"xata_createdat": {
886
886
+
"name": "xata_createdat",
887
887
+
"type": "timestamp",
888
888
+
"primaryKey": false,
889
889
+
"notNull": true,
890
890
+
"default": "now()"
891
891
+
},
892
892
+
"xata_updatedat": {
893
893
+
"name": "xata_updatedat",
894
894
+
"type": "timestamp",
895
895
+
"primaryKey": false,
896
896
+
"notNull": true,
897
897
+
"default": "now()"
898
898
+
}
899
899
+
},
900
900
+
"indexes": {},
901
901
+
"foreignKeys": {
902
902
+
"playlists_created_by_users_xata_id_fk": {
903
903
+
"name": "playlists_created_by_users_xata_id_fk",
904
904
+
"tableFrom": "playlists",
905
905
+
"tableTo": "users",
906
906
+
"columnsFrom": [
907
907
+
"created_by"
908
908
+
],
909
909
+
"columnsTo": [
910
910
+
"xata_id"
911
911
+
],
912
912
+
"onDelete": "no action",
913
913
+
"onUpdate": "no action"
914
914
+
}
915
915
+
},
916
916
+
"compositePrimaryKeys": {},
917
917
+
"uniqueConstraints": {
918
918
+
"playlists_uri_unique": {
919
919
+
"name": "playlists_uri_unique",
920
920
+
"nullsNotDistinct": false,
921
921
+
"columns": [
922
922
+
"uri"
923
923
+
]
924
924
+
}
925
925
+
},
926
926
+
"policies": {},
927
927
+
"checkConstraints": {},
928
928
+
"isRLSEnabled": false
929
929
+
},
930
930
+
"public.profile_shouts": {
931
931
+
"name": "profile_shouts",
932
932
+
"schema": "",
933
933
+
"columns": {
934
934
+
"xata_id": {
935
935
+
"name": "xata_id",
936
936
+
"type": "text",
937
937
+
"primaryKey": true,
938
938
+
"notNull": true
939
939
+
},
940
940
+
"user_id": {
941
941
+
"name": "user_id",
942
942
+
"type": "text",
943
943
+
"primaryKey": false,
944
944
+
"notNull": true
945
945
+
},
946
946
+
"shout_id": {
947
947
+
"name": "shout_id",
948
948
+
"type": "text",
949
949
+
"primaryKey": false,
950
950
+
"notNull": true
951
951
+
},
952
952
+
"xata_createdat": {
953
953
+
"name": "xata_createdat",
954
954
+
"type": "timestamp",
955
955
+
"primaryKey": false,
956
956
+
"notNull": true,
957
957
+
"default": "now()"
958
958
+
}
959
959
+
},
960
960
+
"indexes": {},
961
961
+
"foreignKeys": {
962
962
+
"profile_shouts_user_id_users_xata_id_fk": {
963
963
+
"name": "profile_shouts_user_id_users_xata_id_fk",
964
964
+
"tableFrom": "profile_shouts",
965
965
+
"tableTo": "users",
966
966
+
"columnsFrom": [
967
967
+
"user_id"
968
968
+
],
969
969
+
"columnsTo": [
970
970
+
"xata_id"
971
971
+
],
972
972
+
"onDelete": "no action",
973
973
+
"onUpdate": "no action"
974
974
+
},
975
975
+
"profile_shouts_shout_id_shouts_xata_id_fk": {
976
976
+
"name": "profile_shouts_shout_id_shouts_xata_id_fk",
977
977
+
"tableFrom": "profile_shouts",
978
978
+
"tableTo": "shouts",
979
979
+
"columnsFrom": [
980
980
+
"shout_id"
981
981
+
],
982
982
+
"columnsTo": [
983
983
+
"xata_id"
984
984
+
],
985
985
+
"onDelete": "no action",
986
986
+
"onUpdate": "no action"
987
987
+
}
988
988
+
},
989
989
+
"compositePrimaryKeys": {},
990
990
+
"uniqueConstraints": {},
991
991
+
"policies": {},
992
992
+
"checkConstraints": {},
993
993
+
"isRLSEnabled": false
994
994
+
},
995
995
+
"public.scrobbles": {
996
996
+
"name": "scrobbles",
997
997
+
"schema": "",
998
998
+
"columns": {
999
999
+
"xata_id": {
1000
1000
+
"name": "xata_id",
1001
1001
+
"type": "text",
1002
1002
+
"primaryKey": true,
1003
1003
+
"notNull": true
1004
1004
+
},
1005
1005
+
"user_id": {
1006
1006
+
"name": "user_id",
1007
1007
+
"type": "text",
1008
1008
+
"primaryKey": false,
1009
1009
+
"notNull": false
1010
1010
+
},
1011
1011
+
"track_id": {
1012
1012
+
"name": "track_id",
1013
1013
+
"type": "text",
1014
1014
+
"primaryKey": false,
1015
1015
+
"notNull": false
1016
1016
+
},
1017
1017
+
"album_id": {
1018
1018
+
"name": "album_id",
1019
1019
+
"type": "text",
1020
1020
+
"primaryKey": false,
1021
1021
+
"notNull": false
1022
1022
+
},
1023
1023
+
"artist_id": {
1024
1024
+
"name": "artist_id",
1025
1025
+
"type": "text",
1026
1026
+
"primaryKey": false,
1027
1027
+
"notNull": false
1028
1028
+
},
1029
1029
+
"uri": {
1030
1030
+
"name": "uri",
1031
1031
+
"type": "text",
1032
1032
+
"primaryKey": false,
1033
1033
+
"notNull": false
1034
1034
+
},
1035
1035
+
"xata_createdat": {
1036
1036
+
"name": "xata_createdat",
1037
1037
+
"type": "timestamp",
1038
1038
+
"primaryKey": false,
1039
1039
+
"notNull": true,
1040
1040
+
"default": "now()"
1041
1041
+
},
1042
1042
+
"xata_updatedat": {
1043
1043
+
"name": "xata_updatedat",
1044
1044
+
"type": "timestamp",
1045
1045
+
"primaryKey": false,
1046
1046
+
"notNull": true,
1047
1047
+
"default": "now()"
1048
1048
+
},
1049
1049
+
"xata_version": {
1050
1050
+
"name": "xata_version",
1051
1051
+
"type": "integer",
1052
1052
+
"primaryKey": false,
1053
1053
+
"notNull": false
1054
1054
+
},
1055
1055
+
"timestamp": {
1056
1056
+
"name": "timestamp",
1057
1057
+
"type": "timestamp",
1058
1058
+
"primaryKey": false,
1059
1059
+
"notNull": true,
1060
1060
+
"default": "now()"
1061
1061
+
}
1062
1062
+
},
1063
1063
+
"indexes": {},
1064
1064
+
"foreignKeys": {
1065
1065
+
"scrobbles_user_id_users_xata_id_fk": {
1066
1066
+
"name": "scrobbles_user_id_users_xata_id_fk",
1067
1067
+
"tableFrom": "scrobbles",
1068
1068
+
"tableTo": "users",
1069
1069
+
"columnsFrom": [
1070
1070
+
"user_id"
1071
1071
+
],
1072
1072
+
"columnsTo": [
1073
1073
+
"xata_id"
1074
1074
+
],
1075
1075
+
"onDelete": "no action",
1076
1076
+
"onUpdate": "no action"
1077
1077
+
},
1078
1078
+
"scrobbles_track_id_tracks_xata_id_fk": {
1079
1079
+
"name": "scrobbles_track_id_tracks_xata_id_fk",
1080
1080
+
"tableFrom": "scrobbles",
1081
1081
+
"tableTo": "tracks",
1082
1082
+
"columnsFrom": [
1083
1083
+
"track_id"
1084
1084
+
],
1085
1085
+
"columnsTo": [
1086
1086
+
"xata_id"
1087
1087
+
],
1088
1088
+
"onDelete": "no action",
1089
1089
+
"onUpdate": "no action"
1090
1090
+
},
1091
1091
+
"scrobbles_album_id_albums_xata_id_fk": {
1092
1092
+
"name": "scrobbles_album_id_albums_xata_id_fk",
1093
1093
+
"tableFrom": "scrobbles",
1094
1094
+
"tableTo": "albums",
1095
1095
+
"columnsFrom": [
1096
1096
+
"album_id"
1097
1097
+
],
1098
1098
+
"columnsTo": [
1099
1099
+
"xata_id"
1100
1100
+
],
1101
1101
+
"onDelete": "no action",
1102
1102
+
"onUpdate": "no action"
1103
1103
+
},
1104
1104
+
"scrobbles_artist_id_artists_xata_id_fk": {
1105
1105
+
"name": "scrobbles_artist_id_artists_xata_id_fk",
1106
1106
+
"tableFrom": "scrobbles",
1107
1107
+
"tableTo": "artists",
1108
1108
+
"columnsFrom": [
1109
1109
+
"artist_id"
1110
1110
+
],
1111
1111
+
"columnsTo": [
1112
1112
+
"xata_id"
1113
1113
+
],
1114
1114
+
"onDelete": "no action",
1115
1115
+
"onUpdate": "no action"
1116
1116
+
}
1117
1117
+
},
1118
1118
+
"compositePrimaryKeys": {},
1119
1119
+
"uniqueConstraints": {
1120
1120
+
"scrobbles_uri_unique": {
1121
1121
+
"name": "scrobbles_uri_unique",
1122
1122
+
"nullsNotDistinct": false,
1123
1123
+
"columns": [
1124
1124
+
"uri"
1125
1125
+
]
1126
1126
+
}
1127
1127
+
},
1128
1128
+
"policies": {},
1129
1129
+
"checkConstraints": {},
1130
1130
+
"isRLSEnabled": false
1131
1131
+
},
1132
1132
+
"public.shout_likes": {
1133
1133
+
"name": "shout_likes",
1134
1134
+
"schema": "",
1135
1135
+
"columns": {
1136
1136
+
"xata_id": {
1137
1137
+
"name": "xata_id",
1138
1138
+
"type": "text",
1139
1139
+
"primaryKey": true,
1140
1140
+
"notNull": true
1141
1141
+
},
1142
1142
+
"user_id": {
1143
1143
+
"name": "user_id",
1144
1144
+
"type": "text",
1145
1145
+
"primaryKey": false,
1146
1146
+
"notNull": true
1147
1147
+
},
1148
1148
+
"shout_id": {
1149
1149
+
"name": "shout_id",
1150
1150
+
"type": "text",
1151
1151
+
"primaryKey": false,
1152
1152
+
"notNull": true
1153
1153
+
},
1154
1154
+
"xata_createdat": {
1155
1155
+
"name": "xata_createdat",
1156
1156
+
"type": "timestamp",
1157
1157
+
"primaryKey": false,
1158
1158
+
"notNull": true,
1159
1159
+
"default": "now()"
1160
1160
+
},
1161
1161
+
"uri": {
1162
1162
+
"name": "uri",
1163
1163
+
"type": "text",
1164
1164
+
"primaryKey": false,
1165
1165
+
"notNull": true
1166
1166
+
}
1167
1167
+
},
1168
1168
+
"indexes": {},
1169
1169
+
"foreignKeys": {
1170
1170
+
"shout_likes_user_id_users_xata_id_fk": {
1171
1171
+
"name": "shout_likes_user_id_users_xata_id_fk",
1172
1172
+
"tableFrom": "shout_likes",
1173
1173
+
"tableTo": "users",
1174
1174
+
"columnsFrom": [
1175
1175
+
"user_id"
1176
1176
+
],
1177
1177
+
"columnsTo": [
1178
1178
+
"xata_id"
1179
1179
+
],
1180
1180
+
"onDelete": "no action",
1181
1181
+
"onUpdate": "no action"
1182
1182
+
},
1183
1183
+
"shout_likes_shout_id_shouts_xata_id_fk": {
1184
1184
+
"name": "shout_likes_shout_id_shouts_xata_id_fk",
1185
1185
+
"tableFrom": "shout_likes",
1186
1186
+
"tableTo": "shouts",
1187
1187
+
"columnsFrom": [
1188
1188
+
"shout_id"
1189
1189
+
],
1190
1190
+
"columnsTo": [
1191
1191
+
"xata_id"
1192
1192
+
],
1193
1193
+
"onDelete": "no action",
1194
1194
+
"onUpdate": "no action"
1195
1195
+
}
1196
1196
+
},
1197
1197
+
"compositePrimaryKeys": {},
1198
1198
+
"uniqueConstraints": {
1199
1199
+
"shout_likes_uri_unique": {
1200
1200
+
"name": "shout_likes_uri_unique",
1201
1201
+
"nullsNotDistinct": false,
1202
1202
+
"columns": [
1203
1203
+
"uri"
1204
1204
+
]
1205
1205
+
}
1206
1206
+
},
1207
1207
+
"policies": {},
1208
1208
+
"checkConstraints": {},
1209
1209
+
"isRLSEnabled": false
1210
1210
+
},
1211
1211
+
"public.shout_reports": {
1212
1212
+
"name": "shout_reports",
1213
1213
+
"schema": "",
1214
1214
+
"columns": {
1215
1215
+
"xata_id": {
1216
1216
+
"name": "xata_id",
1217
1217
+
"type": "text",
1218
1218
+
"primaryKey": true,
1219
1219
+
"notNull": true
1220
1220
+
},
1221
1221
+
"user_id": {
1222
1222
+
"name": "user_id",
1223
1223
+
"type": "text",
1224
1224
+
"primaryKey": false,
1225
1225
+
"notNull": true
1226
1226
+
},
1227
1227
+
"shout_id": {
1228
1228
+
"name": "shout_id",
1229
1229
+
"type": "text",
1230
1230
+
"primaryKey": false,
1231
1231
+
"notNull": true
1232
1232
+
},
1233
1233
+
"xata_createdat": {
1234
1234
+
"name": "xata_createdat",
1235
1235
+
"type": "timestamp",
1236
1236
+
"primaryKey": false,
1237
1237
+
"notNull": true,
1238
1238
+
"default": "now()"
1239
1239
+
}
1240
1240
+
},
1241
1241
+
"indexes": {},
1242
1242
+
"foreignKeys": {
1243
1243
+
"shout_reports_user_id_users_xata_id_fk": {
1244
1244
+
"name": "shout_reports_user_id_users_xata_id_fk",
1245
1245
+
"tableFrom": "shout_reports",
1246
1246
+
"tableTo": "users",
1247
1247
+
"columnsFrom": [
1248
1248
+
"user_id"
1249
1249
+
],
1250
1250
+
"columnsTo": [
1251
1251
+
"xata_id"
1252
1252
+
],
1253
1253
+
"onDelete": "no action",
1254
1254
+
"onUpdate": "no action"
1255
1255
+
},
1256
1256
+
"shout_reports_shout_id_shouts_xata_id_fk": {
1257
1257
+
"name": "shout_reports_shout_id_shouts_xata_id_fk",
1258
1258
+
"tableFrom": "shout_reports",
1259
1259
+
"tableTo": "shouts",
1260
1260
+
"columnsFrom": [
1261
1261
+
"shout_id"
1262
1262
+
],
1263
1263
+
"columnsTo": [
1264
1264
+
"xata_id"
1265
1265
+
],
1266
1266
+
"onDelete": "no action",
1267
1267
+
"onUpdate": "no action"
1268
1268
+
}
1269
1269
+
},
1270
1270
+
"compositePrimaryKeys": {},
1271
1271
+
"uniqueConstraints": {},
1272
1272
+
"policies": {},
1273
1273
+
"checkConstraints": {},
1274
1274
+
"isRLSEnabled": false
1275
1275
+
},
1276
1276
+
"public.shouts": {
1277
1277
+
"name": "shouts",
1278
1278
+
"schema": "",
1279
1279
+
"columns": {
1280
1280
+
"xata_id": {
1281
1281
+
"name": "xata_id",
1282
1282
+
"type": "text",
1283
1283
+
"primaryKey": true,
1284
1284
+
"notNull": true
1285
1285
+
},
1286
1286
+
"content": {
1287
1287
+
"name": "content",
1288
1288
+
"type": "text",
1289
1289
+
"primaryKey": false,
1290
1290
+
"notNull": true
1291
1291
+
},
1292
1292
+
"track_id": {
1293
1293
+
"name": "track_id",
1294
1294
+
"type": "text",
1295
1295
+
"primaryKey": false,
1296
1296
+
"notNull": false
1297
1297
+
},
1298
1298
+
"artist_id": {
1299
1299
+
"name": "artist_id",
1300
1300
+
"type": "text",
1301
1301
+
"primaryKey": false,
1302
1302
+
"notNull": false
1303
1303
+
},
1304
1304
+
"album_id": {
1305
1305
+
"name": "album_id",
1306
1306
+
"type": "text",
1307
1307
+
"primaryKey": false,
1308
1308
+
"notNull": false
1309
1309
+
},
1310
1310
+
"scrobble_id": {
1311
1311
+
"name": "scrobble_id",
1312
1312
+
"type": "text",
1313
1313
+
"primaryKey": false,
1314
1314
+
"notNull": false
1315
1315
+
},
1316
1316
+
"uri": {
1317
1317
+
"name": "uri",
1318
1318
+
"type": "text",
1319
1319
+
"primaryKey": false,
1320
1320
+
"notNull": true
1321
1321
+
},
1322
1322
+
"author_id": {
1323
1323
+
"name": "author_id",
1324
1324
+
"type": "text",
1325
1325
+
"primaryKey": false,
1326
1326
+
"notNull": true
1327
1327
+
},
1328
1328
+
"parent_id": {
1329
1329
+
"name": "parent_id",
1330
1330
+
"type": "text",
1331
1331
+
"primaryKey": false,
1332
1332
+
"notNull": false
1333
1333
+
},
1334
1334
+
"xata_createdat": {
1335
1335
+
"name": "xata_createdat",
1336
1336
+
"type": "timestamp",
1337
1337
+
"primaryKey": false,
1338
1338
+
"notNull": true,
1339
1339
+
"default": "now()"
1340
1340
+
},
1341
1341
+
"xata_updatedat": {
1342
1342
+
"name": "xata_updatedat",
1343
1343
+
"type": "timestamp",
1344
1344
+
"primaryKey": false,
1345
1345
+
"notNull": true,
1346
1346
+
"default": "now()"
1347
1347
+
}
1348
1348
+
},
1349
1349
+
"indexes": {},
1350
1350
+
"foreignKeys": {
1351
1351
+
"shouts_track_id_tracks_xata_id_fk": {
1352
1352
+
"name": "shouts_track_id_tracks_xata_id_fk",
1353
1353
+
"tableFrom": "shouts",
1354
1354
+
"tableTo": "tracks",
1355
1355
+
"columnsFrom": [
1356
1356
+
"track_id"
1357
1357
+
],
1358
1358
+
"columnsTo": [
1359
1359
+
"xata_id"
1360
1360
+
],
1361
1361
+
"onDelete": "no action",
1362
1362
+
"onUpdate": "no action"
1363
1363
+
},
1364
1364
+
"shouts_artist_id_users_xata_id_fk": {
1365
1365
+
"name": "shouts_artist_id_users_xata_id_fk",
1366
1366
+
"tableFrom": "shouts",
1367
1367
+
"tableTo": "users",
1368
1368
+
"columnsFrom": [
1369
1369
+
"artist_id"
1370
1370
+
],
1371
1371
+
"columnsTo": [
1372
1372
+
"xata_id"
1373
1373
+
],
1374
1374
+
"onDelete": "no action",
1375
1375
+
"onUpdate": "no action"
1376
1376
+
},
1377
1377
+
"shouts_album_id_albums_xata_id_fk": {
1378
1378
+
"name": "shouts_album_id_albums_xata_id_fk",
1379
1379
+
"tableFrom": "shouts",
1380
1380
+
"tableTo": "albums",
1381
1381
+
"columnsFrom": [
1382
1382
+
"album_id"
1383
1383
+
],
1384
1384
+
"columnsTo": [
1385
1385
+
"xata_id"
1386
1386
+
],
1387
1387
+
"onDelete": "no action",
1388
1388
+
"onUpdate": "no action"
1389
1389
+
},
1390
1390
+
"shouts_scrobble_id_scrobbles_xata_id_fk": {
1391
1391
+
"name": "shouts_scrobble_id_scrobbles_xata_id_fk",
1392
1392
+
"tableFrom": "shouts",
1393
1393
+
"tableTo": "scrobbles",
1394
1394
+
"columnsFrom": [
1395
1395
+
"scrobble_id"
1396
1396
+
],
1397
1397
+
"columnsTo": [
1398
1398
+
"xata_id"
1399
1399
+
],
1400
1400
+
"onDelete": "no action",
1401
1401
+
"onUpdate": "no action"
1402
1402
+
},
1403
1403
+
"shouts_author_id_users_xata_id_fk": {
1404
1404
+
"name": "shouts_author_id_users_xata_id_fk",
1405
1405
+
"tableFrom": "shouts",
1406
1406
+
"tableTo": "users",
1407
1407
+
"columnsFrom": [
1408
1408
+
"author_id"
1409
1409
+
],
1410
1410
+
"columnsTo": [
1411
1411
+
"xata_id"
1412
1412
+
],
1413
1413
+
"onDelete": "no action",
1414
1414
+
"onUpdate": "no action"
1415
1415
+
},
1416
1416
+
"shouts_parent_id_shouts_xata_id_fk": {
1417
1417
+
"name": "shouts_parent_id_shouts_xata_id_fk",
1418
1418
+
"tableFrom": "shouts",
1419
1419
+
"tableTo": "shouts",
1420
1420
+
"columnsFrom": [
1421
1421
+
"parent_id"
1422
1422
+
],
1423
1423
+
"columnsTo": [
1424
1424
+
"xata_id"
1425
1425
+
],
1426
1426
+
"onDelete": "no action",
1427
1427
+
"onUpdate": "no action"
1428
1428
+
}
1429
1429
+
},
1430
1430
+
"compositePrimaryKeys": {},
1431
1431
+
"uniqueConstraints": {
1432
1432
+
"shouts_uri_unique": {
1433
1433
+
"name": "shouts_uri_unique",
1434
1434
+
"nullsNotDistinct": false,
1435
1435
+
"columns": [
1436
1436
+
"uri"
1437
1437
+
]
1438
1438
+
}
1439
1439
+
},
1440
1440
+
"policies": {},
1441
1441
+
"checkConstraints": {},
1442
1442
+
"isRLSEnabled": false
1443
1443
+
},
1444
1444
+
"public.spotify_accounts": {
1445
1445
+
"name": "spotify_accounts",
1446
1446
+
"schema": "",
1447
1447
+
"columns": {
1448
1448
+
"xata_id": {
1449
1449
+
"name": "xata_id",
1450
1450
+
"type": "text",
1451
1451
+
"primaryKey": true,
1452
1452
+
"notNull": true
1453
1453
+
},
1454
1454
+
"xata_version": {
1455
1455
+
"name": "xata_version",
1456
1456
+
"type": "integer",
1457
1457
+
"primaryKey": false,
1458
1458
+
"notNull": true
1459
1459
+
},
1460
1460
+
"email": {
1461
1461
+
"name": "email",
1462
1462
+
"type": "text",
1463
1463
+
"primaryKey": false,
1464
1464
+
"notNull": true
1465
1465
+
},
1466
1466
+
"user_id": {
1467
1467
+
"name": "user_id",
1468
1468
+
"type": "text",
1469
1469
+
"primaryKey": false,
1470
1470
+
"notNull": true
1471
1471
+
},
1472
1472
+
"is_beta_user": {
1473
1473
+
"name": "is_beta_user",
1474
1474
+
"type": "boolean",
1475
1475
+
"primaryKey": false,
1476
1476
+
"notNull": true,
1477
1477
+
"default": false
1478
1478
+
},
1479
1479
+
"xata_createdat": {
1480
1480
+
"name": "xata_createdat",
1481
1481
+
"type": "timestamp",
1482
1482
+
"primaryKey": false,
1483
1483
+
"notNull": true,
1484
1484
+
"default": "now()"
1485
1485
+
},
1486
1486
+
"xata_updatedat": {
1487
1487
+
"name": "xata_updatedat",
1488
1488
+
"type": "timestamp",
1489
1489
+
"primaryKey": false,
1490
1490
+
"notNull": true,
1491
1491
+
"default": "now()"
1492
1492
+
}
1493
1493
+
},
1494
1494
+
"indexes": {},
1495
1495
+
"foreignKeys": {
1496
1496
+
"spotify_accounts_user_id_users_xata_id_fk": {
1497
1497
+
"name": "spotify_accounts_user_id_users_xata_id_fk",
1498
1498
+
"tableFrom": "spotify_accounts",
1499
1499
+
"tableTo": "users",
1500
1500
+
"columnsFrom": [
1501
1501
+
"user_id"
1502
1502
+
],
1503
1503
+
"columnsTo": [
1504
1504
+
"xata_id"
1505
1505
+
],
1506
1506
+
"onDelete": "no action",
1507
1507
+
"onUpdate": "no action"
1508
1508
+
}
1509
1509
+
},
1510
1510
+
"compositePrimaryKeys": {},
1511
1511
+
"uniqueConstraints": {},
1512
1512
+
"policies": {},
1513
1513
+
"checkConstraints": {},
1514
1514
+
"isRLSEnabled": false
1515
1515
+
},
1516
1516
+
"public.spotify_tokens": {
1517
1517
+
"name": "spotify_tokens",
1518
1518
+
"schema": "",
1519
1519
+
"columns": {
1520
1520
+
"xata_id": {
1521
1521
+
"name": "xata_id",
1522
1522
+
"type": "text",
1523
1523
+
"primaryKey": true,
1524
1524
+
"notNull": true
1525
1525
+
},
1526
1526
+
"xata_version": {
1527
1527
+
"name": "xata_version",
1528
1528
+
"type": "integer",
1529
1529
+
"primaryKey": false,
1530
1530
+
"notNull": true
1531
1531
+
},
1532
1532
+
"access_token": {
1533
1533
+
"name": "access_token",
1534
1534
+
"type": "text",
1535
1535
+
"primaryKey": false,
1536
1536
+
"notNull": true
1537
1537
+
},
1538
1538
+
"refresh_token": {
1539
1539
+
"name": "refresh_token",
1540
1540
+
"type": "text",
1541
1541
+
"primaryKey": false,
1542
1542
+
"notNull": true
1543
1543
+
},
1544
1544
+
"user_id": {
1545
1545
+
"name": "user_id",
1546
1546
+
"type": "text",
1547
1547
+
"primaryKey": false,
1548
1548
+
"notNull": true
1549
1549
+
},
1550
1550
+
"xata_createdat": {
1551
1551
+
"name": "xata_createdat",
1552
1552
+
"type": "timestamp",
1553
1553
+
"primaryKey": false,
1554
1554
+
"notNull": true,
1555
1555
+
"default": "now()"
1556
1556
+
},
1557
1557
+
"xata_updatedat": {
1558
1558
+
"name": "xata_updatedat",
1559
1559
+
"type": "timestamp",
1560
1560
+
"primaryKey": false,
1561
1561
+
"notNull": true,
1562
1562
+
"default": "now()"
1563
1563
+
}
1564
1564
+
},
1565
1565
+
"indexes": {},
1566
1566
+
"foreignKeys": {
1567
1567
+
"spotify_tokens_user_id_users_xata_id_fk": {
1568
1568
+
"name": "spotify_tokens_user_id_users_xata_id_fk",
1569
1569
+
"tableFrom": "spotify_tokens",
1570
1570
+
"tableTo": "users",
1571
1571
+
"columnsFrom": [
1572
1572
+
"user_id"
1573
1573
+
],
1574
1574
+
"columnsTo": [
1575
1575
+
"xata_id"
1576
1576
+
],
1577
1577
+
"onDelete": "no action",
1578
1578
+
"onUpdate": "no action"
1579
1579
+
}
1580
1580
+
},
1581
1581
+
"compositePrimaryKeys": {},
1582
1582
+
"uniqueConstraints": {},
1583
1583
+
"policies": {},
1584
1584
+
"checkConstraints": {},
1585
1585
+
"isRLSEnabled": false
1586
1586
+
},
1587
1587
+
"public.tracks": {
1588
1588
+
"name": "tracks",
1589
1589
+
"schema": "",
1590
1590
+
"columns": {
1591
1591
+
"xata_id": {
1592
1592
+
"name": "xata_id",
1593
1593
+
"type": "text",
1594
1594
+
"primaryKey": true,
1595
1595
+
"notNull": true
1596
1596
+
},
1597
1597
+
"title": {
1598
1598
+
"name": "title",
1599
1599
+
"type": "text",
1600
1600
+
"primaryKey": false,
1601
1601
+
"notNull": true
1602
1602
+
},
1603
1603
+
"artist": {
1604
1604
+
"name": "artist",
1605
1605
+
"type": "text",
1606
1606
+
"primaryKey": false,
1607
1607
+
"notNull": true
1608
1608
+
},
1609
1609
+
"album_artist": {
1610
1610
+
"name": "album_artist",
1611
1611
+
"type": "text",
1612
1612
+
"primaryKey": false,
1613
1613
+
"notNull": true
1614
1614
+
},
1615
1615
+
"album_art": {
1616
1616
+
"name": "album_art",
1617
1617
+
"type": "text",
1618
1618
+
"primaryKey": false,
1619
1619
+
"notNull": false
1620
1620
+
},
1621
1621
+
"album": {
1622
1622
+
"name": "album",
1623
1623
+
"type": "text",
1624
1624
+
"primaryKey": false,
1625
1625
+
"notNull": true
1626
1626
+
},
1627
1627
+
"track_number": {
1628
1628
+
"name": "track_number",
1629
1629
+
"type": "integer",
1630
1630
+
"primaryKey": false,
1631
1631
+
"notNull": false
1632
1632
+
},
1633
1633
+
"duration": {
1634
1634
+
"name": "duration",
1635
1635
+
"type": "integer",
1636
1636
+
"primaryKey": false,
1637
1637
+
"notNull": true
1638
1638
+
},
1639
1639
+
"mb_id": {
1640
1640
+
"name": "mb_id",
1641
1641
+
"type": "text",
1642
1642
+
"primaryKey": false,
1643
1643
+
"notNull": false
1644
1644
+
},
1645
1645
+
"youtube_link": {
1646
1646
+
"name": "youtube_link",
1647
1647
+
"type": "text",
1648
1648
+
"primaryKey": false,
1649
1649
+
"notNull": false
1650
1650
+
},
1651
1651
+
"spotify_link": {
1652
1652
+
"name": "spotify_link",
1653
1653
+
"type": "text",
1654
1654
+
"primaryKey": false,
1655
1655
+
"notNull": false
1656
1656
+
},
1657
1657
+
"apple_music_link": {
1658
1658
+
"name": "apple_music_link",
1659
1659
+
"type": "text",
1660
1660
+
"primaryKey": false,
1661
1661
+
"notNull": false
1662
1662
+
},
1663
1663
+
"tidal_link": {
1664
1664
+
"name": "tidal_link",
1665
1665
+
"type": "text",
1666
1666
+
"primaryKey": false,
1667
1667
+
"notNull": false
1668
1668
+
},
1669
1669
+
"sha256": {
1670
1670
+
"name": "sha256",
1671
1671
+
"type": "text",
1672
1672
+
"primaryKey": false,
1673
1673
+
"notNull": true
1674
1674
+
},
1675
1675
+
"disc_number": {
1676
1676
+
"name": "disc_number",
1677
1677
+
"type": "integer",
1678
1678
+
"primaryKey": false,
1679
1679
+
"notNull": false
1680
1680
+
},
1681
1681
+
"lyrics": {
1682
1682
+
"name": "lyrics",
1683
1683
+
"type": "text",
1684
1684
+
"primaryKey": false,
1685
1685
+
"notNull": false
1686
1686
+
},
1687
1687
+
"composer": {
1688
1688
+
"name": "composer",
1689
1689
+
"type": "text",
1690
1690
+
"primaryKey": false,
1691
1691
+
"notNull": false
1692
1692
+
},
1693
1693
+
"genre": {
1694
1694
+
"name": "genre",
1695
1695
+
"type": "text",
1696
1696
+
"primaryKey": false,
1697
1697
+
"notNull": false
1698
1698
+
},
1699
1699
+
"label": {
1700
1700
+
"name": "label",
1701
1701
+
"type": "text",
1702
1702
+
"primaryKey": false,
1703
1703
+
"notNull": false
1704
1704
+
},
1705
1705
+
"copyright_message": {
1706
1706
+
"name": "copyright_message",
1707
1707
+
"type": "text",
1708
1708
+
"primaryKey": false,
1709
1709
+
"notNull": false
1710
1710
+
},
1711
1711
+
"uri": {
1712
1712
+
"name": "uri",
1713
1713
+
"type": "text",
1714
1714
+
"primaryKey": false,
1715
1715
+
"notNull": false
1716
1716
+
},
1717
1717
+
"album_uri": {
1718
1718
+
"name": "album_uri",
1719
1719
+
"type": "text",
1720
1720
+
"primaryKey": false,
1721
1721
+
"notNull": false
1722
1722
+
},
1723
1723
+
"artist_uri": {
1724
1724
+
"name": "artist_uri",
1725
1725
+
"type": "text",
1726
1726
+
"primaryKey": false,
1727
1727
+
"notNull": false
1728
1728
+
},
1729
1729
+
"xata_createdat": {
1730
1730
+
"name": "xata_createdat",
1731
1731
+
"type": "timestamp",
1732
1732
+
"primaryKey": false,
1733
1733
+
"notNull": true,
1734
1734
+
"default": "now()"
1735
1735
+
},
1736
1736
+
"xata_updatedat": {
1737
1737
+
"name": "xata_updatedat",
1738
1738
+
"type": "timestamp",
1739
1739
+
"primaryKey": false,
1740
1740
+
"notNull": true,
1741
1741
+
"default": "now()"
1742
1742
+
},
1743
1743
+
"xata_version": {
1744
1744
+
"name": "xata_version",
1745
1745
+
"type": "integer",
1746
1746
+
"primaryKey": false,
1747
1747
+
"notNull": false
1748
1748
+
}
1749
1749
+
},
1750
1750
+
"indexes": {},
1751
1751
+
"foreignKeys": {},
1752
1752
+
"compositePrimaryKeys": {},
1753
1753
+
"uniqueConstraints": {
1754
1754
+
"tracks_mb_id_unique": {
1755
1755
+
"name": "tracks_mb_id_unique",
1756
1756
+
"nullsNotDistinct": false,
1757
1757
+
"columns": [
1758
1758
+
"mb_id"
1759
1759
+
]
1760
1760
+
},
1761
1761
+
"tracks_youtube_link_unique": {
1762
1762
+
"name": "tracks_youtube_link_unique",
1763
1763
+
"nullsNotDistinct": false,
1764
1764
+
"columns": [
1765
1765
+
"youtube_link"
1766
1766
+
]
1767
1767
+
},
1768
1768
+
"tracks_spotify_link_unique": {
1769
1769
+
"name": "tracks_spotify_link_unique",
1770
1770
+
"nullsNotDistinct": false,
1771
1771
+
"columns": [
1772
1772
+
"spotify_link"
1773
1773
+
]
1774
1774
+
},
1775
1775
+
"tracks_apple_music_link_unique": {
1776
1776
+
"name": "tracks_apple_music_link_unique",
1777
1777
+
"nullsNotDistinct": false,
1778
1778
+
"columns": [
1779
1779
+
"apple_music_link"
1780
1780
+
]
1781
1781
+
},
1782
1782
+
"tracks_tidal_link_unique": {
1783
1783
+
"name": "tracks_tidal_link_unique",
1784
1784
+
"nullsNotDistinct": false,
1785
1785
+
"columns": [
1786
1786
+
"tidal_link"
1787
1787
+
]
1788
1788
+
},
1789
1789
+
"tracks_sha256_unique": {
1790
1790
+
"name": "tracks_sha256_unique",
1791
1791
+
"nullsNotDistinct": false,
1792
1792
+
"columns": [
1793
1793
+
"sha256"
1794
1794
+
]
1795
1795
+
},
1796
1796
+
"tracks_uri_unique": {
1797
1797
+
"name": "tracks_uri_unique",
1798
1798
+
"nullsNotDistinct": false,
1799
1799
+
"columns": [
1800
1800
+
"uri"
1801
1801
+
]
1802
1802
+
},
1803
1803
+
"tracks_album_uri_unique": {
1804
1804
+
"name": "tracks_album_uri_unique",
1805
1805
+
"nullsNotDistinct": false,
1806
1806
+
"columns": [
1807
1807
+
"album_uri"
1808
1808
+
]
1809
1809
+
},
1810
1810
+
"tracks_artist_uri_unique": {
1811
1811
+
"name": "tracks_artist_uri_unique",
1812
1812
+
"nullsNotDistinct": false,
1813
1813
+
"columns": [
1814
1814
+
"artist_uri"
1815
1815
+
]
1816
1816
+
}
1817
1817
+
},
1818
1818
+
"policies": {},
1819
1819
+
"checkConstraints": {},
1820
1820
+
"isRLSEnabled": false
1821
1821
+
},
1822
1822
+
"public.user_albums": {
1823
1823
+
"name": "user_albums",
1824
1824
+
"schema": "",
1825
1825
+
"columns": {
1826
1826
+
"xata_id": {
1827
1827
+
"name": "xata_id",
1828
1828
+
"type": "text",
1829
1829
+
"primaryKey": true,
1830
1830
+
"notNull": true
1831
1831
+
},
1832
1832
+
"user_id": {
1833
1833
+
"name": "user_id",
1834
1834
+
"type": "text",
1835
1835
+
"primaryKey": false,
1836
1836
+
"notNull": true
1837
1837
+
},
1838
1838
+
"album_id": {
1839
1839
+
"name": "album_id",
1840
1840
+
"type": "text",
1841
1841
+
"primaryKey": false,
1842
1842
+
"notNull": true
1843
1843
+
},
1844
1844
+
"xata_createdat": {
1845
1845
+
"name": "xata_createdat",
1846
1846
+
"type": "timestamp",
1847
1847
+
"primaryKey": false,
1848
1848
+
"notNull": true,
1849
1849
+
"default": "now()"
1850
1850
+
},
1851
1851
+
"xata_updatedat": {
1852
1852
+
"name": "xata_updatedat",
1853
1853
+
"type": "timestamp",
1854
1854
+
"primaryKey": false,
1855
1855
+
"notNull": true,
1856
1856
+
"default": "now()"
1857
1857
+
},
1858
1858
+
"xata_version": {
1859
1859
+
"name": "xata_version",
1860
1860
+
"type": "integer",
1861
1861
+
"primaryKey": false,
1862
1862
+
"notNull": true
1863
1863
+
},
1864
1864
+
"scrobbles": {
1865
1865
+
"name": "scrobbles",
1866
1866
+
"type": "integer",
1867
1867
+
"primaryKey": false,
1868
1868
+
"notNull": false
1869
1869
+
},
1870
1870
+
"uri": {
1871
1871
+
"name": "uri",
1872
1872
+
"type": "text",
1873
1873
+
"primaryKey": false,
1874
1874
+
"notNull": true
1875
1875
+
}
1876
1876
+
},
1877
1877
+
"indexes": {},
1878
1878
+
"foreignKeys": {
1879
1879
+
"user_albums_user_id_users_xata_id_fk": {
1880
1880
+
"name": "user_albums_user_id_users_xata_id_fk",
1881
1881
+
"tableFrom": "user_albums",
1882
1882
+
"tableTo": "users",
1883
1883
+
"columnsFrom": [
1884
1884
+
"user_id"
1885
1885
+
],
1886
1886
+
"columnsTo": [
1887
1887
+
"xata_id"
1888
1888
+
],
1889
1889
+
"onDelete": "no action",
1890
1890
+
"onUpdate": "no action"
1891
1891
+
},
1892
1892
+
"user_albums_album_id_albums_xata_id_fk": {
1893
1893
+
"name": "user_albums_album_id_albums_xata_id_fk",
1894
1894
+
"tableFrom": "user_albums",
1895
1895
+
"tableTo": "albums",
1896
1896
+
"columnsFrom": [
1897
1897
+
"album_id"
1898
1898
+
],
1899
1899
+
"columnsTo": [
1900
1900
+
"xata_id"
1901
1901
+
],
1902
1902
+
"onDelete": "no action",
1903
1903
+
"onUpdate": "no action"
1904
1904
+
}
1905
1905
+
},
1906
1906
+
"compositePrimaryKeys": {},
1907
1907
+
"uniqueConstraints": {
1908
1908
+
"user_albums_uri_unique": {
1909
1909
+
"name": "user_albums_uri_unique",
1910
1910
+
"nullsNotDistinct": false,
1911
1911
+
"columns": [
1912
1912
+
"uri"
1913
1913
+
]
1914
1914
+
}
1915
1915
+
},
1916
1916
+
"policies": {},
1917
1917
+
"checkConstraints": {},
1918
1918
+
"isRLSEnabled": false
1919
1919
+
},
1920
1920
+
"public.user_artists": {
1921
1921
+
"name": "user_artists",
1922
1922
+
"schema": "",
1923
1923
+
"columns": {
1924
1924
+
"xata_id": {
1925
1925
+
"name": "xata_id",
1926
1926
+
"type": "text",
1927
1927
+
"primaryKey": true,
1928
1928
+
"notNull": true
1929
1929
+
},
1930
1930
+
"user_id": {
1931
1931
+
"name": "user_id",
1932
1932
+
"type": "text",
1933
1933
+
"primaryKey": false,
1934
1934
+
"notNull": true
1935
1935
+
},
1936
1936
+
"artist_id": {
1937
1937
+
"name": "artist_id",
1938
1938
+
"type": "text",
1939
1939
+
"primaryKey": false,
1940
1940
+
"notNull": true
1941
1941
+
},
1942
1942
+
"xata_createdat": {
1943
1943
+
"name": "xata_createdat",
1944
1944
+
"type": "timestamp",
1945
1945
+
"primaryKey": false,
1946
1946
+
"notNull": true,
1947
1947
+
"default": "now()"
1948
1948
+
},
1949
1949
+
"xata_updatedat": {
1950
1950
+
"name": "xata_updatedat",
1951
1951
+
"type": "timestamp",
1952
1952
+
"primaryKey": false,
1953
1953
+
"notNull": true,
1954
1954
+
"default": "now()"
1955
1955
+
},
1956
1956
+
"xata_version": {
1957
1957
+
"name": "xata_version",
1958
1958
+
"type": "integer",
1959
1959
+
"primaryKey": false,
1960
1960
+
"notNull": true
1961
1961
+
},
1962
1962
+
"scrobbles": {
1963
1963
+
"name": "scrobbles",
1964
1964
+
"type": "integer",
1965
1965
+
"primaryKey": false,
1966
1966
+
"notNull": false
1967
1967
+
},
1968
1968
+
"uri": {
1969
1969
+
"name": "uri",
1970
1970
+
"type": "text",
1971
1971
+
"primaryKey": false,
1972
1972
+
"notNull": true
1973
1973
+
}
1974
1974
+
},
1975
1975
+
"indexes": {},
1976
1976
+
"foreignKeys": {
1977
1977
+
"user_artists_user_id_users_xata_id_fk": {
1978
1978
+
"name": "user_artists_user_id_users_xata_id_fk",
1979
1979
+
"tableFrom": "user_artists",
1980
1980
+
"tableTo": "users",
1981
1981
+
"columnsFrom": [
1982
1982
+
"user_id"
1983
1983
+
],
1984
1984
+
"columnsTo": [
1985
1985
+
"xata_id"
1986
1986
+
],
1987
1987
+
"onDelete": "no action",
1988
1988
+
"onUpdate": "no action"
1989
1989
+
},
1990
1990
+
"user_artists_artist_id_artists_xata_id_fk": {
1991
1991
+
"name": "user_artists_artist_id_artists_xata_id_fk",
1992
1992
+
"tableFrom": "user_artists",
1993
1993
+
"tableTo": "artists",
1994
1994
+
"columnsFrom": [
1995
1995
+
"artist_id"
1996
1996
+
],
1997
1997
+
"columnsTo": [
1998
1998
+
"xata_id"
1999
1999
+
],
2000
2000
+
"onDelete": "no action",
2001
2001
+
"onUpdate": "no action"
2002
2002
+
}
2003
2003
+
},
2004
2004
+
"compositePrimaryKeys": {},
2005
2005
+
"uniqueConstraints": {
2006
2006
+
"user_artists_uri_unique": {
2007
2007
+
"name": "user_artists_uri_unique",
2008
2008
+
"nullsNotDistinct": false,
2009
2009
+
"columns": [
2010
2010
+
"uri"
2011
2011
+
]
2012
2012
+
}
2013
2013
+
},
2014
2014
+
"policies": {},
2015
2015
+
"checkConstraints": {},
2016
2016
+
"isRLSEnabled": false
2017
2017
+
},
2018
2018
+
"public.user_playlists": {
2019
2019
+
"name": "user_playlists",
2020
2020
+
"schema": "",
2021
2021
+
"columns": {
2022
2022
+
"xata_id": {
2023
2023
+
"name": "xata_id",
2024
2024
+
"type": "text",
2025
2025
+
"primaryKey": true,
2026
2026
+
"notNull": true
2027
2027
+
},
2028
2028
+
"user_id": {
2029
2029
+
"name": "user_id",
2030
2030
+
"type": "text",
2031
2031
+
"primaryKey": false,
2032
2032
+
"notNull": true
2033
2033
+
},
2034
2034
+
"playlist_id": {
2035
2035
+
"name": "playlist_id",
2036
2036
+
"type": "text",
2037
2037
+
"primaryKey": false,
2038
2038
+
"notNull": true
2039
2039
+
},
2040
2040
+
"xata_createdat": {
2041
2041
+
"name": "xata_createdat",
2042
2042
+
"type": "timestamp",
2043
2043
+
"primaryKey": false,
2044
2044
+
"notNull": true,
2045
2045
+
"default": "now()"
2046
2046
+
},
2047
2047
+
"uri": {
2048
2048
+
"name": "uri",
2049
2049
+
"type": "text",
2050
2050
+
"primaryKey": false,
2051
2051
+
"notNull": true
2052
2052
+
}
2053
2053
+
},
2054
2054
+
"indexes": {},
2055
2055
+
"foreignKeys": {
2056
2056
+
"user_playlists_user_id_users_xata_id_fk": {
2057
2057
+
"name": "user_playlists_user_id_users_xata_id_fk",
2058
2058
+
"tableFrom": "user_playlists",
2059
2059
+
"tableTo": "users",
2060
2060
+
"columnsFrom": [
2061
2061
+
"user_id"
2062
2062
+
],
2063
2063
+
"columnsTo": [
2064
2064
+
"xata_id"
2065
2065
+
],
2066
2066
+
"onDelete": "no action",
2067
2067
+
"onUpdate": "no action"
2068
2068
+
},
2069
2069
+
"user_playlists_playlist_id_tracks_xata_id_fk": {
2070
2070
+
"name": "user_playlists_playlist_id_tracks_xata_id_fk",
2071
2071
+
"tableFrom": "user_playlists",
2072
2072
+
"tableTo": "tracks",
2073
2073
+
"columnsFrom": [
2074
2074
+
"playlist_id"
2075
2075
+
],
2076
2076
+
"columnsTo": [
2077
2077
+
"xata_id"
2078
2078
+
],
2079
2079
+
"onDelete": "no action",
2080
2080
+
"onUpdate": "no action"
2081
2081
+
}
2082
2082
+
},
2083
2083
+
"compositePrimaryKeys": {},
2084
2084
+
"uniqueConstraints": {
2085
2085
+
"user_playlists_uri_unique": {
2086
2086
+
"name": "user_playlists_uri_unique",
2087
2087
+
"nullsNotDistinct": false,
2088
2088
+
"columns": [
2089
2089
+
"uri"
2090
2090
+
]
2091
2091
+
}
2092
2092
+
},
2093
2093
+
"policies": {},
2094
2094
+
"checkConstraints": {},
2095
2095
+
"isRLSEnabled": false
2096
2096
+
},
2097
2097
+
"public.user_tracks": {
2098
2098
+
"name": "user_tracks",
2099
2099
+
"schema": "",
2100
2100
+
"columns": {
2101
2101
+
"xata_id": {
2102
2102
+
"name": "xata_id",
2103
2103
+
"type": "text",
2104
2104
+
"primaryKey": true,
2105
2105
+
"notNull": true
2106
2106
+
},
2107
2107
+
"user_id": {
2108
2108
+
"name": "user_id",
2109
2109
+
"type": "text",
2110
2110
+
"primaryKey": false,
2111
2111
+
"notNull": true
2112
2112
+
},
2113
2113
+
"track_id": {
2114
2114
+
"name": "track_id",
2115
2115
+
"type": "text",
2116
2116
+
"primaryKey": false,
2117
2117
+
"notNull": true
2118
2118
+
},
2119
2119
+
"xata_createdat": {
2120
2120
+
"name": "xata_createdat",
2121
2121
+
"type": "timestamp",
2122
2122
+
"primaryKey": false,
2123
2123
+
"notNull": true,
2124
2124
+
"default": "now()"
2125
2125
+
},
2126
2126
+
"xata_updatedat": {
2127
2127
+
"name": "xata_updatedat",
2128
2128
+
"type": "timestamp",
2129
2129
+
"primaryKey": false,
2130
2130
+
"notNull": true,
2131
2131
+
"default": "now()"
2132
2132
+
},
2133
2133
+
"xata_version": {
2134
2134
+
"name": "xata_version",
2135
2135
+
"type": "integer",
2136
2136
+
"primaryKey": false,
2137
2137
+
"notNull": true
2138
2138
+
},
2139
2139
+
"uri": {
2140
2140
+
"name": "uri",
2141
2141
+
"type": "text",
2142
2142
+
"primaryKey": false,
2143
2143
+
"notNull": true
2144
2144
+
},
2145
2145
+
"scrobbles": {
2146
2146
+
"name": "scrobbles",
2147
2147
+
"type": "integer",
2148
2148
+
"primaryKey": false,
2149
2149
+
"notNull": false
2150
2150
+
}
2151
2151
+
},
2152
2152
+
"indexes": {},
2153
2153
+
"foreignKeys": {
2154
2154
+
"user_tracks_user_id_users_xata_id_fk": {
2155
2155
+
"name": "user_tracks_user_id_users_xata_id_fk",
2156
2156
+
"tableFrom": "user_tracks",
2157
2157
+
"tableTo": "users",
2158
2158
+
"columnsFrom": [
2159
2159
+
"user_id"
2160
2160
+
],
2161
2161
+
"columnsTo": [
2162
2162
+
"xata_id"
2163
2163
+
],
2164
2164
+
"onDelete": "no action",
2165
2165
+
"onUpdate": "no action"
2166
2166
+
},
2167
2167
+
"user_tracks_track_id_tracks_xata_id_fk": {
2168
2168
+
"name": "user_tracks_track_id_tracks_xata_id_fk",
2169
2169
+
"tableFrom": "user_tracks",
2170
2170
+
"tableTo": "tracks",
2171
2171
+
"columnsFrom": [
2172
2172
+
"track_id"
2173
2173
+
],
2174
2174
+
"columnsTo": [
2175
2175
+
"xata_id"
2176
2176
+
],
2177
2177
+
"onDelete": "no action",
2178
2178
+
"onUpdate": "no action"
2179
2179
+
}
2180
2180
+
},
2181
2181
+
"compositePrimaryKeys": {},
2182
2182
+
"uniqueConstraints": {
2183
2183
+
"user_tracks_uri_unique": {
2184
2184
+
"name": "user_tracks_uri_unique",
2185
2185
+
"nullsNotDistinct": false,
2186
2186
+
"columns": [
2187
2187
+
"uri"
2188
2188
+
]
2189
2189
+
}
2190
2190
+
},
2191
2191
+
"policies": {},
2192
2192
+
"checkConstraints": {},
2193
2193
+
"isRLSEnabled": false
2194
2194
+
},
2195
2195
+
"public.users": {
2196
2196
+
"name": "users",
2197
2197
+
"schema": "",
2198
2198
+
"columns": {
2199
2199
+
"xata_id": {
2200
2200
+
"name": "xata_id",
2201
2201
+
"type": "text",
2202
2202
+
"primaryKey": true,
2203
2203
+
"notNull": true
2204
2204
+
},
2205
2205
+
"did": {
2206
2206
+
"name": "did",
2207
2207
+
"type": "text",
2208
2208
+
"primaryKey": false,
2209
2209
+
"notNull": true
2210
2210
+
},
2211
2211
+
"display_name": {
2212
2212
+
"name": "display_name",
2213
2213
+
"type": "text",
2214
2214
+
"primaryKey": false,
2215
2215
+
"notNull": true
2216
2216
+
},
2217
2217
+
"handle": {
2218
2218
+
"name": "handle",
2219
2219
+
"type": "text",
2220
2220
+
"primaryKey": false,
2221
2221
+
"notNull": true
2222
2222
+
},
2223
2223
+
"avatar": {
2224
2224
+
"name": "avatar",
2225
2225
+
"type": "text",
2226
2226
+
"primaryKey": false,
2227
2227
+
"notNull": true
2228
2228
+
},
2229
2229
+
"xata_createdat": {
2230
2230
+
"name": "xata_createdat",
2231
2231
+
"type": "timestamp",
2232
2232
+
"primaryKey": false,
2233
2233
+
"notNull": true,
2234
2234
+
"default": "now()"
2235
2235
+
},
2236
2236
+
"xata_updatedat": {
2237
2237
+
"name": "xata_updatedat",
2238
2238
+
"type": "timestamp",
2239
2239
+
"primaryKey": false,
2240
2240
+
"notNull": true,
2241
2241
+
"default": "now()"
2242
2242
+
},
2243
2243
+
"xata_version": {
2244
2244
+
"name": "xata_version",
2245
2245
+
"type": "integer",
2246
2246
+
"primaryKey": false,
2247
2247
+
"notNull": false
2248
2248
+
}
2249
2249
+
},
2250
2250
+
"indexes": {},
2251
2251
+
"foreignKeys": {},
2252
2252
+
"compositePrimaryKeys": {},
2253
2253
+
"uniqueConstraints": {
2254
2254
+
"users_did_unique": {
2255
2255
+
"name": "users_did_unique",
2256
2256
+
"nullsNotDistinct": false,
2257
2257
+
"columns": [
2258
2258
+
"did"
2259
2259
+
]
2260
2260
+
},
2261
2261
+
"users_handle_unique": {
2262
2262
+
"name": "users_handle_unique",
2263
2263
+
"nullsNotDistinct": false,
2264
2264
+
"columns": [
2265
2265
+
"handle"
2266
2266
+
]
2267
2267
+
}
2268
2268
+
},
2269
2269
+
"policies": {},
2270
2270
+
"checkConstraints": {},
2271
2271
+
"isRLSEnabled": false
2272
2272
+
},
2273
2273
+
"public.webscrobblers": {
2274
2274
+
"name": "webscrobblers",
2275
2275
+
"schema": "",
2276
2276
+
"columns": {
2277
2277
+
"xata_id": {
2278
2278
+
"name": "xata_id",
2279
2279
+
"type": "text",
2280
2280
+
"primaryKey": true,
2281
2281
+
"notNull": true
2282
2282
+
},
2283
2283
+
"name": {
2284
2284
+
"name": "name",
2285
2285
+
"type": "text",
2286
2286
+
"primaryKey": false,
2287
2287
+
"notNull": true
2288
2288
+
},
2289
2289
+
"uuid": {
2290
2290
+
"name": "uuid",
2291
2291
+
"type": "text",
2292
2292
+
"primaryKey": false,
2293
2293
+
"notNull": true
2294
2294
+
},
2295
2295
+
"description": {
2296
2296
+
"name": "description",
2297
2297
+
"type": "text",
2298
2298
+
"primaryKey": false,
2299
2299
+
"notNull": false
2300
2300
+
},
2301
2301
+
"enabled": {
2302
2302
+
"name": "enabled",
2303
2303
+
"type": "boolean",
2304
2304
+
"primaryKey": false,
2305
2305
+
"notNull": true,
2306
2306
+
"default": true
2307
2307
+
},
2308
2308
+
"user_id": {
2309
2309
+
"name": "user_id",
2310
2310
+
"type": "text",
2311
2311
+
"primaryKey": false,
2312
2312
+
"notNull": true
2313
2313
+
},
2314
2314
+
"xata_createdat": {
2315
2315
+
"name": "xata_createdat",
2316
2316
+
"type": "timestamp",
2317
2317
+
"primaryKey": false,
2318
2318
+
"notNull": true,
2319
2319
+
"default": "now()"
2320
2320
+
},
2321
2321
+
"xata_updatedat": {
2322
2322
+
"name": "xata_updatedat",
2323
2323
+
"type": "timestamp",
2324
2324
+
"primaryKey": false,
2325
2325
+
"notNull": true,
2326
2326
+
"default": "now()"
2327
2327
+
}
2328
2328
+
},
2329
2329
+
"indexes": {},
2330
2330
+
"foreignKeys": {
2331
2331
+
"webscrobblers_user_id_users_xata_id_fk": {
2332
2332
+
"name": "webscrobblers_user_id_users_xata_id_fk",
2333
2333
+
"tableFrom": "webscrobblers",
2334
2334
+
"tableTo": "users",
2335
2335
+
"columnsFrom": [
2336
2336
+
"user_id"
2337
2337
+
],
2338
2338
+
"columnsTo": [
2339
2339
+
"xata_id"
2340
2340
+
],
2341
2341
+
"onDelete": "no action",
2342
2342
+
"onUpdate": "no action"
2343
2343
+
}
2344
2344
+
},
2345
2345
+
"compositePrimaryKeys": {},
2346
2346
+
"uniqueConstraints": {},
2347
2347
+
"policies": {},
2348
2348
+
"checkConstraints": {},
2349
2349
+
"isRLSEnabled": false
2350
2350
+
}
2351
2351
+
},
2352
2352
+
"enums": {},
2353
2353
+
"schemas": {},
2354
2354
+
"sequences": {},
2355
2355
+
"roles": {},
2356
2356
+
"policies": {},
2357
2357
+
"views": {},
2358
2358
+
"_meta": {
2359
2359
+
"columns": {},
2360
2360
+
"schemas": {},
2361
2361
+
"tables": {}
2362
2362
+
}
2363
2363
+
}
+13
rockskyapi/rocksky-auth/drizzle/meta/_journal.json
···
1
1
+
{
2
2
+
"version": "7",
3
3
+
"dialect": "postgresql",
4
4
+
"entries": [
5
5
+
{
6
6
+
"idx": 0,
7
7
+
"version": "7",
8
8
+
"when": 1750169528964,
9
9
+
"tag": "0000_init",
10
10
+
"breakpoints": true
11
11
+
}
12
12
+
]
13
13
+
}
+86
-84
rockskyapi/rocksky-auth/package.json
···
1
1
{
2
2
-
"name": "rocksky-auth",
3
3
-
"version": "0.0.1",
4
4
-
"private": true,
5
5
-
"type": "module",
6
6
-
"module": "dist/index.js",
7
7
-
"scripts": {
8
8
-
"lexgen": "lex gen-server ./src/lexicon ./lexicons/**/* ./lexicons/*",
9
9
-
"dev": "tsx --watch ./src/index.ts",
10
10
-
"prod": "tsx ./src/index.ts",
11
11
-
"build": "pkgroll",
12
12
-
"sync": "tsx ./src/scripts/sync.ts",
13
13
-
"meili:sync": "tsx ./src/scripts/meili.ts",
14
14
-
"avatar": "tsx ./src/scripts/avatar.ts",
15
15
-
"pkl:eval": "pkl eval -f json",
16
16
-
"pkl:gen": "tsx ./scripts/pkl.ts",
17
17
-
"dev:xrpc": "tsx --watch ./src/server.ts"
18
18
-
},
19
19
-
"dependencies": {
20
20
-
"@atproto/api": "^0.13.31",
21
21
-
"@atproto/common": "^0.4.6",
22
22
-
"@atproto/identity": "^0.4.5",
23
23
-
"@atproto/lex-cli": "^0.5.6",
24
24
-
"@atproto/lexicon": "^0.4.5",
25
25
-
"@atproto/oauth-client-node": "^0.2.14",
26
26
-
"@atproto/sync": "^0.1.11",
27
27
-
"@atproto/syntax": "^0.3.1",
28
28
-
"@atproto/xrpc-server": "^0.7.8",
29
29
-
"@hono/node-server": "^1.13.8",
30
30
-
"@hono/node-ws": "^1.1.0",
31
31
-
"@opentelemetry/api": "^1.9.0",
32
32
-
"@opentelemetry/auto-instrumentations-node": "^0.58.0",
33
33
-
"@opentelemetry/exporter-metrics-otlp-http": "^0.200.0",
34
34
-
"@opentelemetry/exporter-trace-otlp-http": "^0.200.0",
35
35
-
"@opentelemetry/resources": "^2.0.0",
36
36
-
"@opentelemetry/sdk-metrics": "^2.0.0",
37
37
-
"@opentelemetry/sdk-node": "^0.200.0",
38
38
-
"@opentelemetry/semantic-conventions": "^1.32.0",
39
39
-
"@pyroscope/nodejs": "^0.4.5",
40
40
-
"@xata.io/client": "^0.0.0-next.va121e4207b94bfe0a3c025fc00b247b923880930",
41
41
-
"assert": "^2.1.0",
42
42
-
"axios": "^1.7.9",
43
43
-
"better-sqlite3": "^11.8.1",
44
44
-
"chalk": "^5.4.1",
45
45
-
"chanfana": "^2.0.2",
46
46
-
"dayjs": "^1.11.13",
47
47
-
"dotenv": "^16.4.7",
48
48
-
"drizzle-orm": "^0.44.2",
49
49
-
"dropbox": "^10.34.0",
50
50
-
"effect": "^3.14.22",
51
51
-
"envalid": "^8.0.0",
52
52
-
"express": "^5.1.0",
53
53
-
"googleapis": "^146.0.0",
54
54
-
"hono": "^4.4.7",
55
55
-
"iron-session": "^8.0.4",
56
56
-
"jsonwebtoken": "^9.0.2",
57
57
-
"kysely": "^0.27.5",
58
58
-
"lodash": "^4.17.21",
59
59
-
"nats": "^2.29.2",
60
60
-
"pg": "^8.13.3",
61
61
-
"ramda": "^0.30.1",
62
62
-
"redis": "^4.7.0",
63
63
-
"unstorage": "^1.14.4",
64
64
-
"url": "^0.11.4",
65
65
-
"uuid": "^11.1.0",
66
66
-
"ws": "^8.18.1",
67
67
-
"zod": "^3.24.1"
68
68
-
},
69
69
-
"devDependencies": {
70
70
-
"@pkl-community/pkl": "^0.28.2",
71
71
-
"@types/express": "^5.0.2",
72
72
-
"@types/lodash": "^4.17.17",
73
73
-
"@types/node": "^22.13.0",
74
74
-
"@types/ramda": "^0.30.2",
75
75
-
"@types/service-worker-mock": "^2.0.1",
76
76
-
"pkgroll": "^2.6.1",
77
77
-
"tsx": "^4.19.2",
78
78
-
"zx": "^8.5.4"
79
79
-
},
80
80
-
"exports": {
81
81
-
".": {
82
82
-
"import": "./dist/index.js"
83
83
-
}
84
84
-
}
85
85
-
}
2
2
+
"name": "rocksky-auth",
3
3
+
"version": "0.0.1",
4
4
+
"private": true,
5
5
+
"type": "module",
6
6
+
"module": "dist/index.js",
7
7
+
"scripts": {
8
8
+
"lexgen": "lex gen-server ./src/lexicon ./lexicons/**/* ./lexicons/*",
9
9
+
"dev": "tsx --watch ./src/index.ts",
10
10
+
"prod": "tsx ./src/index.ts",
11
11
+
"build": "pkgroll",
12
12
+
"sync": "tsx ./src/scripts/sync.ts",
13
13
+
"meili:sync": "tsx ./src/scripts/meili.ts",
14
14
+
"avatar": "tsx ./src/scripts/avatar.ts",
15
15
+
"pkl:eval": "pkl eval -f json",
16
16
+
"pkl:gen": "tsx ./scripts/pkl.ts",
17
17
+
"dev:xrpc": "tsx --watch ./src/server.ts",
18
18
+
"drizzle": "drizzle-kit"
19
19
+
},
20
20
+
"dependencies": {
21
21
+
"@atproto/api": "^0.13.31",
22
22
+
"@atproto/common": "^0.4.6",
23
23
+
"@atproto/identity": "^0.4.5",
24
24
+
"@atproto/lex-cli": "^0.5.6",
25
25
+
"@atproto/lexicon": "^0.4.5",
26
26
+
"@atproto/oauth-client-node": "^0.2.14",
27
27
+
"@atproto/sync": "^0.1.11",
28
28
+
"@atproto/syntax": "^0.3.1",
29
29
+
"@atproto/xrpc-server": "^0.7.8",
30
30
+
"@hono/node-server": "^1.13.8",
31
31
+
"@hono/node-ws": "^1.1.0",
32
32
+
"@opentelemetry/api": "^1.9.0",
33
33
+
"@opentelemetry/auto-instrumentations-node": "^0.58.0",
34
34
+
"@opentelemetry/exporter-metrics-otlp-http": "^0.200.0",
35
35
+
"@opentelemetry/exporter-trace-otlp-http": "^0.200.0",
36
36
+
"@opentelemetry/resources": "^2.0.0",
37
37
+
"@opentelemetry/sdk-metrics": "^2.0.0",
38
38
+
"@opentelemetry/sdk-node": "^0.200.0",
39
39
+
"@opentelemetry/semantic-conventions": "^1.32.0",
40
40
+
"@pyroscope/nodejs": "^0.4.5",
41
41
+
"@xata.io/client": "^0.0.0-next.va121e4207b94bfe0a3c025fc00b247b923880930",
42
42
+
"assert": "^2.1.0",
43
43
+
"axios": "^1.7.9",
44
44
+
"better-sqlite3": "^11.8.1",
45
45
+
"chalk": "^5.4.1",
46
46
+
"chanfana": "^2.0.2",
47
47
+
"dayjs": "^1.11.13",
48
48
+
"dotenv": "^16.4.7",
49
49
+
"drizzle-orm": "^0.44.2",
50
50
+
"dropbox": "^10.34.0",
51
51
+
"effect": "^3.14.22",
52
52
+
"envalid": "^8.0.0",
53
53
+
"express": "^5.1.0",
54
54
+
"googleapis": "^146.0.0",
55
55
+
"hono": "^4.4.7",
56
56
+
"iron-session": "^8.0.4",
57
57
+
"jsonwebtoken": "^9.0.2",
58
58
+
"kysely": "^0.27.5",
59
59
+
"lodash": "^4.17.21",
60
60
+
"nats": "^2.29.2",
61
61
+
"pg": "^8.13.3",
62
62
+
"ramda": "^0.30.1",
63
63
+
"redis": "^4.7.0",
64
64
+
"unstorage": "^1.14.4",
65
65
+
"url": "^0.11.4",
66
66
+
"uuid": "^11.1.0",
67
67
+
"ws": "^8.18.1",
68
68
+
"zod": "^3.24.1"
69
69
+
},
70
70
+
"devDependencies": {
71
71
+
"@pkl-community/pkl": "^0.28.2",
72
72
+
"@types/express": "^5.0.2",
73
73
+
"@types/lodash": "^4.17.17",
74
74
+
"@types/node": "^22.13.0",
75
75
+
"@types/ramda": "^0.30.2",
76
76
+
"@types/service-worker-mock": "^2.0.1",
77
77
+
"drizzle-kit": "^0.31.1",
78
78
+
"pkgroll": "^2.6.1",
79
79
+
"tsx": "^4.19.2",
80
80
+
"zx": "^8.5.4"
81
81
+
},
82
82
+
"exports": {
83
83
+
".": {
84
84
+
"import": "./dist/index.js"
85
85
+
}
86
86
+
}
87
87
+
}