+1
constants.ts
+1
constants.ts
···
6
6
export const DISCORD_APPLICATION_ID = process.env.DISCORD_APPLICATION_ID as string;
7
7
export const DISCORD_GUILD_ID = process.env.DISCORD_GUILD_ID as string;
8
8
export const TAP_ADMIN_PASSWORD = process.env.TAP_ADMIN_PASSWORD as string;
9
+
export const DATABASE_URL = process.env.DATABASE_URL as string;
+46
db/migrator.ts
+46
db/migrator.ts
···
1
+
import path from "node:path"
2
+
import { Pool } from "pg"
3
+
import fs from "node:fs/promises"
4
+
import type { DB } from "kysely-codegen"
5
+
import { Kysely, Migrator, PostgresDialect, FileMigrationProvider } from "kysely"
6
+
import { DATABASE_URL } from "../constants.ts"
7
+
8
+
async function migrateToLatest() {
9
+
const db = new Kysely<DB>({
10
+
dialect: new PostgresDialect({
11
+
pool: new Pool({
12
+
connectionString: DATABASE_URL
13
+
})
14
+
})
15
+
})
16
+
17
+
const migrator = new Migrator({
18
+
db,
19
+
provider: new FileMigrationProvider({
20
+
fs,
21
+
path,
22
+
migrationFolder: path.join(import.meta.dirname, "../migrations")
23
+
})
24
+
})
25
+
26
+
27
+
const { error, results } = await migrator.migrateToLatest()
28
+
29
+
results?.forEach(result => {
30
+
if (result.status === "Success") {
31
+
console.log(`migration ${result.migrationName} was executed successfully`)
32
+
} else if (result.status === "Error") {
33
+
console.error(`failed to execute migration: "${result.migrationName}" `)
34
+
}
35
+
})
36
+
37
+
if (error) {
38
+
console.error("failed to migrate")
39
+
console.error(error)
40
+
process.exit(1)
41
+
}
42
+
43
+
await db.destroy()
44
+
}
45
+
46
+
migrateToLatest().catch(err => console.error(err))
+8
docker-compose.yml
+8
docker-compose.yml
+34
migrations/schema.ts
+34
migrations/schema.ts
···
1
+
import { Kysely, sql } from "kysely"
2
+
3
+
export async function up(db: Kysely<any>): Promise<void> {
4
+
await db.schema
5
+
.createTable("users").ifNotExists()
6
+
.addColumn("id", "serial", (col) => col.primaryKey())
7
+
.addColumn("did", "varchar", (col) => col.notNull())
8
+
.addColumn('created_at', 'timestamp', (col) =>
9
+
col.defaultTo(sql`now()`).notNull(),
10
+
)
11
+
.execute()
12
+
13
+
await db.schema
14
+
.createTable("plays").ifNotExists()
15
+
.addColumn("id", "serial", (col) => col.primaryKey())
16
+
.addColumn("played_time", "timestamptz", (col) => col.notNull())
17
+
.addColumn("release_name", "varchar", (col) => col.notNull())
18
+
.addColumn("track_name", 'varchar', (col) => col.notNull())
19
+
.addColumn("indexed_at", "timestamp", (col) => col.defaultTo(sql`now()`).notNull())
20
+
.addColumn("user_id", "integer", (col) => col.references("users.id").onDelete("cascade").notNull())
21
+
.execute()
22
+
23
+
await db.schema
24
+
.createTable("artists").ifNotExists()
25
+
.addColumn("artist_name", "varchar", (col) => col.notNull())
26
+
.addColumn("play_id", "integer", (col) => col.references("plays.id").onDelete("cascade").notNull())
27
+
.execute()
28
+
}
29
+
30
+
export async function down(db: Kysely<any>): Promise<void> {
31
+
await db.schema.dropTable("users").execute()
32
+
await db.schema.dropTable("plays").execute()
33
+
await db.schema.dropTable("artists").execute()
34
+
}
+8
-2
package.json
+8
-2
package.json
···
9
9
"deploy-commands": "tsx deploy-commands.ts",
10
10
"tapper:dev": "NODE_ENV=development tsx tapper.ts",
11
11
"tapper:prod": "NODE_ENV=production tsx tapper.ts",
12
+
"migrate": "tsx db/migrator.ts",
13
+
"codegen": "kysely-codegen --dialect postgres",
12
14
"typecheck": "tsc --noEmit"
13
15
},
14
16
"keywords": [
15
17
"teal.fm",
16
-
"atprotocol"
18
+
"atprotocol",
19
+
"music"
17
20
],
18
21
"author": "Dane Miller <me@dane.computer>",
19
22
"license": "MIT",
···
21
24
"dependencies": {
22
25
"@atproto/tap": "^0.0.2",
23
26
"discord.js": "^14.25.1",
24
-
"kysely": "^0.28.9"
27
+
"kysely": "^0.28.9",
28
+
"pg": "^8.16.3"
25
29
},
26
30
"devDependencies": {
27
31
"@types/node": "^25.0.3",
32
+
"@types/pg": "^8.16.0",
33
+
"kysely-codegen": "^0.19.0",
28
34
"tsx": "^4.21.0",
29
35
"typescript": "^5.9.3"
30
36
}
+644
pnpm-lock.yaml
+644
pnpm-lock.yaml
···
17
17
kysely:
18
18
specifier: ^0.28.9
19
19
version: 0.28.9
20
+
pg:
21
+
specifier: ^8.16.3
22
+
version: 8.16.3
20
23
devDependencies:
21
24
'@types/node':
22
25
specifier: ^25.0.3
23
26
version: 25.0.3
27
+
'@types/pg':
28
+
specifier: ^8.16.0
29
+
version: 8.16.0
30
+
kysely-codegen:
31
+
specifier: ^0.19.0
32
+
version: 0.19.0(kysely@0.28.9)(pg@8.16.3)(typescript@5.9.3)
24
33
tsx:
25
34
specifier: ^4.21.0
26
35
version: 4.21.0
···
56
65
'@atproto/ws-client@0.0.4':
57
66
resolution: {integrity: sha512-dox1XIymuC7/ZRhUqKezIGgooZS45C6vHCfu0PnWjfvsLCK2kAlnvX4IBkA/WpcoijDhQ9ejChnFbo/sLmgvAg==}
58
67
engines: {node: '>=18.7.0'}
68
+
69
+
'@babel/code-frame@7.27.1':
70
+
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
71
+
engines: {node: '>=6.9.0'}
72
+
73
+
'@babel/helper-validator-identifier@7.28.5':
74
+
resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
75
+
engines: {node: '>=6.9.0'}
59
76
60
77
'@discordjs/builders@1.13.1':
61
78
resolution: {integrity: sha512-cOU0UDHc3lp/5nKByDxkmRiNZBpdp0kx55aarbiAfakfKJHlxv/yFW1zmIqCAmwH5CRlrH9iMFKJMpvW4DPB+w==}
···
256
273
'@types/node@25.0.3':
257
274
resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==}
258
275
276
+
'@types/pg@8.16.0':
277
+
resolution: {integrity: sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ==}
278
+
259
279
'@types/ws@8.18.1':
260
280
resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
261
281
···
267
287
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
268
288
engines: {node: '>=6.5'}
269
289
290
+
ansi-styles@3.2.1:
291
+
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
292
+
engines: {node: '>=4'}
293
+
294
+
ansi-styles@4.3.0:
295
+
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
296
+
engines: {node: '>=8'}
297
+
298
+
argparse@2.0.1:
299
+
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
300
+
270
301
atomic-sleep@1.0.0:
271
302
resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
272
303
engines: {node: '>=8.0.0'}
273
304
305
+
balanced-match@1.0.2:
306
+
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
307
+
274
308
base64-js@1.5.1:
275
309
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
310
+
311
+
brace-expansion@1.1.12:
312
+
resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
313
+
314
+
braces@3.0.3:
315
+
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
316
+
engines: {node: '>=8'}
276
317
277
318
buffer@6.0.3:
278
319
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
279
320
321
+
callsites@3.1.0:
322
+
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
323
+
engines: {node: '>=6'}
324
+
325
+
chalk@2.4.2:
326
+
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
327
+
engines: {node: '>=4'}
328
+
329
+
chalk@4.1.2:
330
+
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
331
+
engines: {node: '>=10'}
332
+
333
+
color-convert@1.9.3:
334
+
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
335
+
336
+
color-convert@2.0.1:
337
+
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
338
+
engines: {node: '>=7.0.0'}
339
+
340
+
color-name@1.1.3:
341
+
resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
342
+
343
+
color-name@1.1.4:
344
+
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
345
+
346
+
concat-map@0.0.1:
347
+
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
348
+
349
+
cosmiconfig@9.0.0:
350
+
resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
351
+
engines: {node: '>=14'}
352
+
peerDependencies:
353
+
typescript: '>=4.9.5'
354
+
peerDependenciesMeta:
355
+
typescript:
356
+
optional: true
357
+
358
+
diff@3.5.0:
359
+
resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==}
360
+
engines: {node: '>=0.3.1'}
361
+
280
362
discord-api-types@0.38.37:
281
363
resolution: {integrity: sha512-Cv47jzY1jkGkh5sv0bfHYqGgKOWO1peOrGMkDFM4UmaGMOTgOW8QSexhvixa9sVOiz8MnVOBryWYyw/CEVhj7w==}
282
364
283
365
discord.js@14.25.1:
284
366
resolution: {integrity: sha512-2l0gsPOLPs5t6GFZfQZKnL1OJNYFcuC/ETWsW4VtKVD/tg4ICa9x+jb9bkPffkMdRpRpuUaO/fKkHCBeiCKh8g==}
285
367
engines: {node: '>=18'}
368
+
369
+
dotenv-expand@12.0.3:
370
+
resolution: {integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==}
371
+
engines: {node: '>=12'}
372
+
373
+
dotenv@16.6.1:
374
+
resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
375
+
engines: {node: '>=12'}
376
+
377
+
dotenv@17.2.3:
378
+
resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
379
+
engines: {node: '>=12'}
380
+
381
+
env-paths@2.2.1:
382
+
resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
383
+
engines: {node: '>=6'}
384
+
385
+
error-ex@1.3.4:
386
+
resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
286
387
287
388
esbuild@0.27.2:
288
389
resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==}
289
390
engines: {node: '>=18'}
290
391
hasBin: true
291
392
393
+
escape-string-regexp@1.0.5:
394
+
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
395
+
engines: {node: '>=0.8.0'}
396
+
292
397
event-target-shim@5.0.1:
293
398
resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
294
399
engines: {node: '>=6'}
···
304
409
resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==}
305
410
engines: {node: '>=6'}
306
411
412
+
fill-range@7.1.1:
413
+
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
414
+
engines: {node: '>=8'}
415
+
416
+
fs.realpath@1.0.0:
417
+
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
418
+
307
419
fsevents@2.3.3:
308
420
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
309
421
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
310
422
os: [darwin]
311
423
424
+
function-bind@1.1.2:
425
+
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
426
+
312
427
get-tsconfig@4.13.0:
313
428
resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==}
314
429
430
+
git-diff@2.0.6:
431
+
resolution: {integrity: sha512-/Iu4prUrydE3Pb3lCBMbcSNIf81tgGt0W1ZwknnyF62t3tHmtiJTRj0f+1ZIhp3+Rh0ktz1pJVoa7ZXUCskivA==}
432
+
engines: {node: '>= 4.8.0'}
433
+
434
+
glob@7.2.3:
435
+
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
436
+
deprecated: Glob versions prior to v9 are no longer supported
437
+
438
+
has-flag@3.0.0:
439
+
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
440
+
engines: {node: '>=4'}
441
+
442
+
has-flag@4.0.0:
443
+
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
444
+
engines: {node: '>=8'}
445
+
446
+
hasown@2.0.2:
447
+
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
448
+
engines: {node: '>= 0.4'}
449
+
315
450
ieee754@1.2.1:
316
451
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
452
+
453
+
import-fresh@3.3.1:
454
+
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
455
+
engines: {node: '>=6'}
456
+
457
+
inflight@1.0.6:
458
+
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
459
+
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
460
+
461
+
inherits@2.0.4:
462
+
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
463
+
464
+
interpret@1.4.0:
465
+
resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==}
466
+
engines: {node: '>= 0.10'}
467
+
468
+
is-arrayish@0.2.1:
469
+
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
470
+
471
+
is-core-module@2.16.1:
472
+
resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
473
+
engines: {node: '>= 0.4'}
474
+
475
+
is-number@7.0.0:
476
+
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
477
+
engines: {node: '>=0.12.0'}
317
478
318
479
iso-datestring-validator@2.2.2:
319
480
resolution: {integrity: sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==}
320
481
482
+
js-tokens@4.0.0:
483
+
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
484
+
485
+
js-yaml@4.1.1:
486
+
resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
487
+
hasBin: true
488
+
489
+
json-parse-even-better-errors@2.3.1:
490
+
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
491
+
492
+
kysely-codegen@0.19.0:
493
+
resolution: {integrity: sha512-ZpdQQnpfY0kh45CA6yPA9vdFsBE+b06Fx7QVcbL5rX//yjbA0yYGZGhnH7GTd4P4BY/HIv5uAfuOD83JVZf95w==}
494
+
engines: {node: '>=20.0.0'}
495
+
hasBin: true
496
+
peerDependencies:
497
+
'@libsql/kysely-libsql': '>=0.3.0 <0.5.0'
498
+
'@tediousjs/connection-string': '>=0.5.0 <0.6.0'
499
+
better-sqlite3: '>=7.6.2 <13.0.0'
500
+
kysely: '>=0.27.0 <1.0.0'
501
+
kysely-bun-sqlite: '>=0.3.2 <1.0.0'
502
+
kysely-bun-worker: '>=1.2.0 <2.0.0'
503
+
mysql2: '>=2.3.3 <4.0.0'
504
+
pg: '>=8.8.0 <9.0.0'
505
+
tarn: '>=3.0.0 <4.0.0'
506
+
tedious: '>=18.0.0 <20.0.0'
507
+
peerDependenciesMeta:
508
+
'@libsql/kysely-libsql':
509
+
optional: true
510
+
'@tediousjs/connection-string':
511
+
optional: true
512
+
better-sqlite3:
513
+
optional: true
514
+
kysely-bun-sqlite:
515
+
optional: true
516
+
kysely-bun-worker:
517
+
optional: true
518
+
mysql2:
519
+
optional: true
520
+
pg:
521
+
optional: true
522
+
tarn:
523
+
optional: true
524
+
tedious:
525
+
optional: true
526
+
321
527
kysely@0.28.9:
322
528
resolution: {integrity: sha512-3BeXMoiOhpOwu62CiVpO6lxfq4eS6KMYfQdMsN/2kUCRNuF2YiEr7u0HLHaQU+O4Xu8YXE3bHVkwaQ85i72EuA==}
323
529
engines: {node: '>=20.0.0'}
324
530
531
+
lines-and-columns@1.2.4:
532
+
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
533
+
325
534
lodash.snakecase@4.1.1:
326
535
resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==}
327
536
328
537
lodash@4.17.21:
329
538
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
330
539
540
+
loglevel@1.9.2:
541
+
resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==}
542
+
engines: {node: '>= 0.6.0'}
543
+
331
544
magic-bytes.js@1.12.1:
332
545
resolution: {integrity: sha512-ThQLOhN86ZkJ7qemtVRGYM+gRgR8GEXNli9H/PMvpnZsE44Xfh3wx9kGJaldg314v85m+bFW6WBMaVHJc/c3zA==}
333
546
547
+
micromatch@4.0.8:
548
+
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
549
+
engines: {node: '>=8.6'}
550
+
551
+
minimatch@3.1.2:
552
+
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
553
+
554
+
minimist@1.2.8:
555
+
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
556
+
334
557
multiformats@9.9.0:
335
558
resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==}
336
559
···
338
561
resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
339
562
engines: {node: '>=14.0.0'}
340
563
564
+
once@1.4.0:
565
+
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
566
+
567
+
parent-module@1.0.1:
568
+
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
569
+
engines: {node: '>=6'}
570
+
571
+
parse-json@5.2.0:
572
+
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
573
+
engines: {node: '>=8'}
574
+
575
+
path-is-absolute@1.0.1:
576
+
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
577
+
engines: {node: '>=0.10.0'}
578
+
579
+
path-parse@1.0.7:
580
+
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
581
+
582
+
pg-cloudflare@1.2.7:
583
+
resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==}
584
+
585
+
pg-connection-string@2.9.1:
586
+
resolution: {integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==}
587
+
588
+
pg-int8@1.0.1:
589
+
resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
590
+
engines: {node: '>=4.0.0'}
591
+
592
+
pg-pool@3.10.1:
593
+
resolution: {integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==}
594
+
peerDependencies:
595
+
pg: '>=8.0'
596
+
597
+
pg-protocol@1.10.3:
598
+
resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==}
599
+
600
+
pg-types@2.2.0:
601
+
resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
602
+
engines: {node: '>=4'}
603
+
604
+
pg@8.16.3:
605
+
resolution: {integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==}
606
+
engines: {node: '>= 16.0.0'}
607
+
peerDependencies:
608
+
pg-native: '>=3.0.1'
609
+
peerDependenciesMeta:
610
+
pg-native:
611
+
optional: true
612
+
613
+
pgpass@1.0.5:
614
+
resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==}
615
+
616
+
picocolors@1.1.1:
617
+
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
618
+
619
+
picomatch@2.3.1:
620
+
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
621
+
engines: {node: '>=8.6'}
622
+
341
623
pino-abstract-transport@1.2.0:
342
624
resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==}
343
625
···
348
630
resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==}
349
631
hasBin: true
350
632
633
+
pluralize@8.0.0:
634
+
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
635
+
engines: {node: '>=4'}
636
+
637
+
postgres-array@2.0.0:
638
+
resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
639
+
engines: {node: '>=4'}
640
+
641
+
postgres-bytea@1.0.1:
642
+
resolution: {integrity: sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==}
643
+
engines: {node: '>=0.10.0'}
644
+
645
+
postgres-date@1.0.7:
646
+
resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==}
647
+
engines: {node: '>=0.10.0'}
648
+
649
+
postgres-interval@1.2.0:
650
+
resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
651
+
engines: {node: '>=0.10.0'}
652
+
351
653
process-warning@3.0.0:
352
654
resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==}
353
655
···
366
668
resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
367
669
engines: {node: '>= 12.13.0'}
368
670
671
+
rechoir@0.6.2:
672
+
resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==}
673
+
engines: {node: '>= 0.10'}
674
+
675
+
resolve-from@4.0.0:
676
+
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
677
+
engines: {node: '>=4'}
678
+
369
679
resolve-pkg-maps@1.0.0:
370
680
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
371
681
682
+
resolve@1.22.11:
683
+
resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==}
684
+
engines: {node: '>= 0.4'}
685
+
hasBin: true
686
+
372
687
safe-buffer@5.2.1:
373
688
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
374
689
···
376
691
resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
377
692
engines: {node: '>=10'}
378
693
694
+
shelljs.exec@1.1.8:
695
+
resolution: {integrity: sha512-vFILCw+lzUtiwBAHV8/Ex8JsFjelFMdhONIsgKNLgTzeRckp2AOYRQtHJE/9LhNvdMmE27AGtzWx0+DHpwIwSw==}
696
+
engines: {node: '>= 4.0.0'}
697
+
698
+
shelljs@0.8.5:
699
+
resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==}
700
+
engines: {node: '>=4'}
701
+
hasBin: true
702
+
379
703
sonic-boom@3.8.1:
380
704
resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==}
381
705
···
386
710
string_decoder@1.3.0:
387
711
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
388
712
713
+
supports-color@5.5.0:
714
+
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
715
+
engines: {node: '>=4'}
716
+
717
+
supports-color@7.2.0:
718
+
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
719
+
engines: {node: '>=8'}
720
+
721
+
supports-preserve-symlinks-flag@1.0.0:
722
+
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
723
+
engines: {node: '>= 0.4'}
724
+
389
725
thread-stream@2.7.0:
390
726
resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==}
727
+
728
+
to-regex-range@5.0.1:
729
+
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
730
+
engines: {node: '>=8.0'}
391
731
392
732
ts-mixer@6.0.4:
393
733
resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==}
···
417
757
418
758
unicode-segmenter@0.14.4:
419
759
resolution: {integrity: sha512-pR5VCiCrLrKOL6FRW61jnk9+wyMtKKowq+jyFY9oc6uHbWKhDL4yVRiI4YZPksGMK72Pahh8m0cn/0JvbDDyJg==}
760
+
761
+
wrappy@1.0.2:
762
+
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
420
763
421
764
ws@8.18.3:
422
765
resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==}
···
430
773
utf-8-validate:
431
774
optional: true
432
775
776
+
xtend@4.0.2:
777
+
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
778
+
engines: {node: '>=0.4'}
779
+
433
780
zod@3.25.76:
434
781
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
782
+
783
+
zod@4.2.1:
784
+
resolution: {integrity: sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw==}
435
785
436
786
snapshots:
437
787
···
489
839
transitivePeerDependencies:
490
840
- bufferutil
491
841
- utf-8-validate
842
+
843
+
'@babel/code-frame@7.27.1':
844
+
dependencies:
845
+
'@babel/helper-validator-identifier': 7.28.5
846
+
js-tokens: 4.0.0
847
+
picocolors: 1.1.1
848
+
849
+
'@babel/helper-validator-identifier@7.28.5': {}
492
850
493
851
'@discordjs/builders@1.13.1':
494
852
dependencies:
···
630
988
dependencies:
631
989
undici-types: 7.16.0
632
990
991
+
'@types/pg@8.16.0':
992
+
dependencies:
993
+
'@types/node': 25.0.3
994
+
pg-protocol: 1.10.3
995
+
pg-types: 2.2.0
996
+
633
997
'@types/ws@8.18.1':
634
998
dependencies:
635
999
'@types/node': 25.0.3
···
640
1004
dependencies:
641
1005
event-target-shim: 5.0.1
642
1006
1007
+
ansi-styles@3.2.1:
1008
+
dependencies:
1009
+
color-convert: 1.9.3
1010
+
1011
+
ansi-styles@4.3.0:
1012
+
dependencies:
1013
+
color-convert: 2.0.1
1014
+
1015
+
argparse@2.0.1: {}
1016
+
643
1017
atomic-sleep@1.0.0: {}
1018
+
1019
+
balanced-match@1.0.2: {}
644
1020
645
1021
base64-js@1.5.1: {}
646
1022
1023
+
brace-expansion@1.1.12:
1024
+
dependencies:
1025
+
balanced-match: 1.0.2
1026
+
concat-map: 0.0.1
1027
+
1028
+
braces@3.0.3:
1029
+
dependencies:
1030
+
fill-range: 7.1.1
1031
+
647
1032
buffer@6.0.3:
648
1033
dependencies:
649
1034
base64-js: 1.5.1
650
1035
ieee754: 1.2.1
651
1036
1037
+
callsites@3.1.0: {}
1038
+
1039
+
chalk@2.4.2:
1040
+
dependencies:
1041
+
ansi-styles: 3.2.1
1042
+
escape-string-regexp: 1.0.5
1043
+
supports-color: 5.5.0
1044
+
1045
+
chalk@4.1.2:
1046
+
dependencies:
1047
+
ansi-styles: 4.3.0
1048
+
supports-color: 7.2.0
1049
+
1050
+
color-convert@1.9.3:
1051
+
dependencies:
1052
+
color-name: 1.1.3
1053
+
1054
+
color-convert@2.0.1:
1055
+
dependencies:
1056
+
color-name: 1.1.4
1057
+
1058
+
color-name@1.1.3: {}
1059
+
1060
+
color-name@1.1.4: {}
1061
+
1062
+
concat-map@0.0.1: {}
1063
+
1064
+
cosmiconfig@9.0.0(typescript@5.9.3):
1065
+
dependencies:
1066
+
env-paths: 2.2.1
1067
+
import-fresh: 3.3.1
1068
+
js-yaml: 4.1.1
1069
+
parse-json: 5.2.0
1070
+
optionalDependencies:
1071
+
typescript: 5.9.3
1072
+
1073
+
diff@3.5.0: {}
1074
+
652
1075
discord-api-types@0.38.37: {}
653
1076
654
1077
discord.js@14.25.1:
···
670
1093
- bufferutil
671
1094
- utf-8-validate
672
1095
1096
+
dotenv-expand@12.0.3:
1097
+
dependencies:
1098
+
dotenv: 16.6.1
1099
+
1100
+
dotenv@16.6.1: {}
1101
+
1102
+
dotenv@17.2.3: {}
1103
+
1104
+
env-paths@2.2.1: {}
1105
+
1106
+
error-ex@1.3.4:
1107
+
dependencies:
1108
+
is-arrayish: 0.2.1
1109
+
673
1110
esbuild@0.27.2:
674
1111
optionalDependencies:
675
1112
'@esbuild/aix-ppc64': 0.27.2
···
699
1136
'@esbuild/win32-ia32': 0.27.2
700
1137
'@esbuild/win32-x64': 0.27.2
701
1138
1139
+
escape-string-regexp@1.0.5: {}
1140
+
702
1141
event-target-shim@5.0.1: {}
703
1142
704
1143
events@3.3.0: {}
···
707
1146
708
1147
fast-redact@3.5.0: {}
709
1148
1149
+
fill-range@7.1.1:
1150
+
dependencies:
1151
+
to-regex-range: 5.0.1
1152
+
1153
+
fs.realpath@1.0.0: {}
1154
+
710
1155
fsevents@2.3.3:
711
1156
optional: true
712
1157
1158
+
function-bind@1.1.2: {}
1159
+
713
1160
get-tsconfig@4.13.0:
714
1161
dependencies:
715
1162
resolve-pkg-maps: 1.0.0
716
1163
1164
+
git-diff@2.0.6:
1165
+
dependencies:
1166
+
chalk: 2.4.2
1167
+
diff: 3.5.0
1168
+
loglevel: 1.9.2
1169
+
shelljs: 0.8.5
1170
+
shelljs.exec: 1.1.8
1171
+
1172
+
glob@7.2.3:
1173
+
dependencies:
1174
+
fs.realpath: 1.0.0
1175
+
inflight: 1.0.6
1176
+
inherits: 2.0.4
1177
+
minimatch: 3.1.2
1178
+
once: 1.4.0
1179
+
path-is-absolute: 1.0.1
1180
+
1181
+
has-flag@3.0.0: {}
1182
+
1183
+
has-flag@4.0.0: {}
1184
+
1185
+
hasown@2.0.2:
1186
+
dependencies:
1187
+
function-bind: 1.1.2
1188
+
717
1189
ieee754@1.2.1: {}
718
1190
1191
+
import-fresh@3.3.1:
1192
+
dependencies:
1193
+
parent-module: 1.0.1
1194
+
resolve-from: 4.0.0
1195
+
1196
+
inflight@1.0.6:
1197
+
dependencies:
1198
+
once: 1.4.0
1199
+
wrappy: 1.0.2
1200
+
1201
+
inherits@2.0.4: {}
1202
+
1203
+
interpret@1.4.0: {}
1204
+
1205
+
is-arrayish@0.2.1: {}
1206
+
1207
+
is-core-module@2.16.1:
1208
+
dependencies:
1209
+
hasown: 2.0.2
1210
+
1211
+
is-number@7.0.0: {}
1212
+
719
1213
iso-datestring-validator@2.2.2: {}
720
1214
1215
+
js-tokens@4.0.0: {}
1216
+
1217
+
js-yaml@4.1.1:
1218
+
dependencies:
1219
+
argparse: 2.0.1
1220
+
1221
+
json-parse-even-better-errors@2.3.1: {}
1222
+
1223
+
kysely-codegen@0.19.0(kysely@0.28.9)(pg@8.16.3)(typescript@5.9.3):
1224
+
dependencies:
1225
+
chalk: 4.1.2
1226
+
cosmiconfig: 9.0.0(typescript@5.9.3)
1227
+
dotenv: 17.2.3
1228
+
dotenv-expand: 12.0.3
1229
+
git-diff: 2.0.6
1230
+
kysely: 0.28.9
1231
+
micromatch: 4.0.8
1232
+
minimist: 1.2.8
1233
+
pluralize: 8.0.0
1234
+
zod: 4.2.1
1235
+
optionalDependencies:
1236
+
pg: 8.16.3
1237
+
transitivePeerDependencies:
1238
+
- typescript
1239
+
721
1240
kysely@0.28.9: {}
722
1241
1242
+
lines-and-columns@1.2.4: {}
1243
+
723
1244
lodash.snakecase@4.1.1: {}
724
1245
725
1246
lodash@4.17.21: {}
726
1247
1248
+
loglevel@1.9.2: {}
1249
+
727
1250
magic-bytes.js@1.12.1: {}
728
1251
1252
+
micromatch@4.0.8:
1253
+
dependencies:
1254
+
braces: 3.0.3
1255
+
picomatch: 2.3.1
1256
+
1257
+
minimatch@3.1.2:
1258
+
dependencies:
1259
+
brace-expansion: 1.1.12
1260
+
1261
+
minimist@1.2.8: {}
1262
+
729
1263
multiformats@9.9.0: {}
730
1264
731
1265
on-exit-leak-free@2.1.2: {}
732
1266
1267
+
once@1.4.0:
1268
+
dependencies:
1269
+
wrappy: 1.0.2
1270
+
1271
+
parent-module@1.0.1:
1272
+
dependencies:
1273
+
callsites: 3.1.0
1274
+
1275
+
parse-json@5.2.0:
1276
+
dependencies:
1277
+
'@babel/code-frame': 7.27.1
1278
+
error-ex: 1.3.4
1279
+
json-parse-even-better-errors: 2.3.1
1280
+
lines-and-columns: 1.2.4
1281
+
1282
+
path-is-absolute@1.0.1: {}
1283
+
1284
+
path-parse@1.0.7: {}
1285
+
1286
+
pg-cloudflare@1.2.7:
1287
+
optional: true
1288
+
1289
+
pg-connection-string@2.9.1: {}
1290
+
1291
+
pg-int8@1.0.1: {}
1292
+
1293
+
pg-pool@3.10.1(pg@8.16.3):
1294
+
dependencies:
1295
+
pg: 8.16.3
1296
+
1297
+
pg-protocol@1.10.3: {}
1298
+
1299
+
pg-types@2.2.0:
1300
+
dependencies:
1301
+
pg-int8: 1.0.1
1302
+
postgres-array: 2.0.0
1303
+
postgres-bytea: 1.0.1
1304
+
postgres-date: 1.0.7
1305
+
postgres-interval: 1.2.0
1306
+
1307
+
pg@8.16.3:
1308
+
dependencies:
1309
+
pg-connection-string: 2.9.1
1310
+
pg-pool: 3.10.1(pg@8.16.3)
1311
+
pg-protocol: 1.10.3
1312
+
pg-types: 2.2.0
1313
+
pgpass: 1.0.5
1314
+
optionalDependencies:
1315
+
pg-cloudflare: 1.2.7
1316
+
1317
+
pgpass@1.0.5:
1318
+
dependencies:
1319
+
split2: 4.2.0
1320
+
1321
+
picocolors@1.1.1: {}
1322
+
1323
+
picomatch@2.3.1: {}
1324
+
733
1325
pino-abstract-transport@1.2.0:
734
1326
dependencies:
735
1327
readable-stream: 4.7.0
···
750
1342
safe-stable-stringify: 2.5.0
751
1343
sonic-boom: 3.8.1
752
1344
thread-stream: 2.7.0
1345
+
1346
+
pluralize@8.0.0: {}
1347
+
1348
+
postgres-array@2.0.0: {}
1349
+
1350
+
postgres-bytea@1.0.1: {}
1351
+
1352
+
postgres-date@1.0.7: {}
1353
+
1354
+
postgres-interval@1.2.0:
1355
+
dependencies:
1356
+
xtend: 4.0.2
753
1357
754
1358
process-warning@3.0.0: {}
755
1359
···
767
1371
768
1372
real-require@0.2.0: {}
769
1373
1374
+
rechoir@0.6.2:
1375
+
dependencies:
1376
+
resolve: 1.22.11
1377
+
1378
+
resolve-from@4.0.0: {}
1379
+
770
1380
resolve-pkg-maps@1.0.0: {}
771
1381
1382
+
resolve@1.22.11:
1383
+
dependencies:
1384
+
is-core-module: 2.16.1
1385
+
path-parse: 1.0.7
1386
+
supports-preserve-symlinks-flag: 1.0.0
1387
+
772
1388
safe-buffer@5.2.1: {}
773
1389
774
1390
safe-stable-stringify@2.5.0: {}
1391
+
1392
+
shelljs.exec@1.1.8: {}
1393
+
1394
+
shelljs@0.8.5:
1395
+
dependencies:
1396
+
glob: 7.2.3
1397
+
interpret: 1.4.0
1398
+
rechoir: 0.6.2
775
1399
776
1400
sonic-boom@3.8.1:
777
1401
dependencies:
···
783
1407
dependencies:
784
1408
safe-buffer: 5.2.1
785
1409
1410
+
supports-color@5.5.0:
1411
+
dependencies:
1412
+
has-flag: 3.0.0
1413
+
1414
+
supports-color@7.2.0:
1415
+
dependencies:
1416
+
has-flag: 4.0.0
1417
+
1418
+
supports-preserve-symlinks-flag@1.0.0: {}
1419
+
786
1420
thread-stream@2.7.0:
787
1421
dependencies:
788
1422
real-require: 0.2.0
789
1423
1424
+
to-regex-range@5.0.1:
1425
+
dependencies:
1426
+
is-number: 7.0.0
1427
+
790
1428
ts-mixer@6.0.4: {}
791
1429
792
1430
tslib@2.8.1: {}
···
810
1448
811
1449
unicode-segmenter@0.14.4: {}
812
1450
1451
+
wrappy@1.0.2: {}
1452
+
813
1453
ws@8.18.3: {}
814
1454
1455
+
xtend@4.0.2: {}
1456
+
815
1457
zod@3.25.76: {}
1458
+
1459
+
zod@4.2.1: {}