+1
-1
Dockerfile
+1
-1
Dockerfile
···
55
55
ENV NODE_ENV=production
56
56
ENV VITE_BOT_API_URL=${VITE_BOT_API_URL}
57
57
ENV STATUS_API_KEY=${VITE_STATUS_API_KEY}
58
-
ENV VITE_STATUS_API_KEY=${VITE_STATUS_API_KEY}
58
+
ENV VITE_STATUS_API_KEY=${STATUS_API_KEY}
59
59
ENV VITE_FRONTEND_URL=${VITE_FRONTEND_URL}
60
60
61
61
RUN addgroup -g 1001 -S nodejs && \
+20
locales/en-US.json
+20
locales/en-US.json
···
319
319
"fetch_failed": "Failed to fetch trivia questions: {error}",
320
320
"api_error": "Trivia API error: {code}"
321
321
}
322
+
},
323
+
"social": {
324
+
"name": "social",
325
+
"description": "Get notifications of posts from Fediverse and Bluesky accounts",
326
+
"invalidChannel": "❌ Invalid channel selected.",
327
+
"notInitializedThrow": "Social media features are not properly initialized.",
328
+
"addSuccess": "✅ Now tracking {platform} account {account}. New posts will be posted in {channel}.",
329
+
"notInitialized": "❌ Social media features are not initialized.",
330
+
"refreshSuccess": "🔄 Refresh complete. {count} new post(s) notified.",
331
+
"refreshFailed": "❌ Refresh failed: {message}",
332
+
"removeSuccess": "✅ Removed {platform} account {account} from tracking.",
333
+
"removeNotFound": "❌ Could not find a subscription for {platform} account {account}.",
334
+
"listNone": "No social media accounts are being tracked in this server.",
335
+
"listTitle": "📱 Tracked Social Media Accounts",
336
+
"listDescription": "Here are all the social media accounts being tracked in this server:",
337
+
"channelUnset": "No channel set",
338
+
"fieldNoAccounts": "No accounts",
339
+
"guildOnly": "This command can only be used in a server.",
340
+
"unknownSubcommand": "Unknown subcommand.",
341
+
"failedAction": "❌ Failed to {action} subscription: {message}"
322
342
}
323
343
},
324
344
"categories": {
+10
-8
package.json
+10
-8
package.json
···
1
1
{
2
2
"name": "aethel",
3
-
"version": "2.0.0-beta",
3
+
"version": "lyra",
4
4
"description": "A privacy-conscious, production-ready Discord user bot",
5
5
"type": "module",
6
6
"main": "dist/index.js",
···
18
18
"check": "pnpm run lint && pnpm run format:check"
19
19
},
20
20
"dependencies": {
21
+
"@atproto/identity": "^0.4.8",
21
22
"@discordjs/rest": "^2.5.1",
23
+
"@types/node-fetch": "^2.6.13",
22
24
"axios": "^1.11.0",
23
25
"city-timezones": "^1.3.1",
24
26
"cors": "^2.8.5",
25
27
"discord.js": "^14.21.0",
26
28
"dotenv": "^16.6.1",
27
-
"eslint-plugin-prettier": "^5.5.3",
29
+
"eslint-plugin-prettier": "^5.5.4",
28
30
"express": "^4.21.2",
29
31
"express-rate-limit": "^7.5.1",
30
32
"express-validator": "^7.2.1",
···
32
34
"jsonwebtoken": "^9.0.2",
33
35
"moment-timezone": "^0.6.0",
34
36
"node-fetch": "^3.3.2",
35
-
"openai": "^5.12.0",
37
+
"openai": "^5.12.2",
36
38
"pg": "^8.16.3",
37
39
"uuid": "^11.1.0",
38
40
"validator": "^13.15.15",
···
40
42
"winston": "^3.17.0"
41
43
},
42
44
"devDependencies": {
43
-
"@eslint/js": "^9.32.0",
45
+
"@eslint/js": "^9.33.0",
44
46
"@types/cors": "^2.8.19",
45
47
"@types/express": "^4.17.23",
46
48
"@types/jsonwebtoken": "^9.0.10",
47
-
"@types/node": "^24.1.0",
49
+
"@types/node": "^24.2.1",
48
50
"@types/pg": "^8.15.5",
49
51
"@types/uuid": "^10.0.0",
50
52
"@types/validator": "^13.15.2",
51
53
"@types/whois-json": "^2.0.4",
52
-
"eslint": "^9.32.0",
54
+
"eslint": "^9.33.0",
53
55
"eslint-config-prettier": "^10.1.8",
54
56
"globals": "^16.3.0",
55
57
"nodemon": "^3.1.10",
···
57
59
"tsc-alias": "^1.8.16",
58
60
"tsconfig-paths": "^4.2.0",
59
61
"tsx": "^4.20.3",
60
-
"typescript": "^5.8.3",
61
-
"typescript-eslint": "^8.38.0"
62
+
"typescript": "^5.9.2",
63
+
"typescript-eslint": "^8.39.0"
62
64
}
63
65
}
+231
-156
pnpm-lock.yaml
+231
-156
pnpm-lock.yaml
···
8
8
9
9
.:
10
10
dependencies:
11
+
'@atproto/identity':
12
+
specifier: ^0.4.8
13
+
version: 0.4.8
11
14
'@discordjs/rest':
12
15
specifier: ^2.5.1
13
16
version: 2.5.1
17
+
'@types/node-fetch':
18
+
specifier: ^2.6.13
19
+
version: 2.6.13
14
20
axios:
15
21
specifier: ^1.11.0
16
22
version: 1.11.0
···
27
33
specifier: ^16.6.1
28
34
version: 16.6.1
29
35
eslint-plugin-prettier:
30
-
specifier: ^5.5.3
31
-
version: 5.5.3(eslint-config-prettier@10.1.8(eslint@9.32.0))(eslint@9.32.0)(prettier@3.6.2)
36
+
specifier: ^5.5.4
37
+
version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.33.0))(eslint@9.33.0)(prettier@3.6.2)
32
38
express:
33
39
specifier: ^4.21.2
34
40
version: 4.21.2
···
51
57
specifier: ^3.3.2
52
58
version: 3.3.2
53
59
openai:
54
-
specifier: ^5.12.0
55
-
version: 5.12.0(ws@8.18.3)
60
+
specifier: ^5.12.2
61
+
version: 5.12.2(ws@8.18.3)(zod@3.25.76)
56
62
pg:
57
63
specifier: ^8.16.3
58
64
version: 8.16.3
···
70
76
version: 3.17.0
71
77
devDependencies:
72
78
'@eslint/js':
73
-
specifier: ^9.32.0
74
-
version: 9.32.0
79
+
specifier: ^9.33.0
80
+
version: 9.33.0
75
81
'@types/cors':
76
82
specifier: ^2.8.19
77
83
version: 2.8.19
···
82
88
specifier: ^9.0.10
83
89
version: 9.0.10
84
90
'@types/node':
85
-
specifier: ^24.1.0
86
-
version: 24.1.0
91
+
specifier: ^24.2.1
92
+
version: 24.2.1
87
93
'@types/pg':
88
94
specifier: ^8.15.5
89
95
version: 8.15.5
···
97
103
specifier: ^2.0.4
98
104
version: 2.0.4
99
105
eslint:
100
-
specifier: ^9.32.0
101
-
version: 9.32.0
106
+
specifier: ^9.33.0
107
+
version: 9.33.0
102
108
eslint-config-prettier:
103
109
specifier: ^10.1.8
104
-
version: 10.1.8(eslint@9.32.0)
110
+
version: 10.1.8(eslint@9.33.0)
105
111
globals:
106
112
specifier: ^16.3.0
107
113
version: 16.3.0
···
121
127
specifier: ^4.20.3
122
128
version: 4.20.3
123
129
typescript:
124
-
specifier: ^5.8.3
125
-
version: 5.8.3
130
+
specifier: ^5.9.2
131
+
version: 5.9.2
126
132
typescript-eslint:
127
-
specifier: ^8.38.0
128
-
version: 8.38.0(eslint@9.32.0)(typescript@5.8.3)
133
+
specifier: ^8.39.0
134
+
version: 8.39.0(eslint@9.33.0)(typescript@5.9.2)
129
135
130
136
packages:
137
+
138
+
'@atproto/common-web@0.4.2':
139
+
resolution: {integrity: sha512-vrXwGNoFGogodjQvJDxAeP3QbGtawgZute2ed1XdRO0wMixLk3qewtikZm06H259QDJVu6voKC5mubml+WgQUw==}
140
+
141
+
'@atproto/crypto@0.4.4':
142
+
resolution: {integrity: sha512-Yq9+crJ7WQl7sxStVpHgie5Z51R05etaK9DLWYG/7bR5T4bhdcIgF6IfklLShtZwLYdVVj+K15s0BqW9a8PSDA==}
143
+
engines: {node: '>=18.7.0'}
144
+
145
+
'@atproto/identity@0.4.8':
146
+
resolution: {integrity: sha512-Z0sLnJ87SeNdAifT+rqpgE1Rc3layMMW25gfWNo4u40RGuRODbdfAZlTwBSU2r+Vk45hU+iE+xeQspfednCEnA==}
147
+
engines: {node: '>=18.7.0'}
131
148
132
149
'@colors/colors@1.6.0':
133
150
resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
···
334
351
resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
335
352
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
336
353
337
-
'@eslint/config-helpers@0.3.0':
338
-
resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==}
354
+
'@eslint/config-helpers@0.3.1':
355
+
resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==}
339
356
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
340
357
341
-
'@eslint/core@0.15.1':
342
-
resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==}
358
+
'@eslint/core@0.15.2':
359
+
resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==}
343
360
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
344
361
345
362
'@eslint/eslintrc@3.3.1':
346
363
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
347
364
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
348
365
349
-
'@eslint/js@9.32.0':
350
-
resolution: {integrity: sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==}
366
+
'@eslint/js@9.33.0':
367
+
resolution: {integrity: sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==}
351
368
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
352
369
353
370
'@eslint/object-schema@2.1.6':
354
371
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
355
372
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
356
373
357
-
'@eslint/plugin-kit@0.3.4':
358
-
resolution: {integrity: sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==}
374
+
'@eslint/plugin-kit@0.3.5':
375
+
resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==}
359
376
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
360
377
361
378
'@humanfs/core@0.19.1':
···
377
394
'@humanwhocodes/retry@0.4.3':
378
395
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
379
396
engines: {node: '>=18.18'}
397
+
398
+
'@noble/curves@1.9.6':
399
+
resolution: {integrity: sha512-GIKz/j99FRthB8icyJQA51E8Uk5hXmdyThjgQXRKiv9h0zeRlzSCLIzFw6K1LotZ3XuB7yzlf76qk7uBmTdFqA==}
400
+
engines: {node: ^14.21.3 || >=16}
401
+
402
+
'@noble/hashes@1.8.0':
403
+
resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
404
+
engines: {node: ^14.21.3 || >=16}
380
405
381
406
'@nodelib/fs.scandir@2.1.5':
382
407
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
···
443
468
'@types/ms@2.1.0':
444
469
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
445
470
446
-
'@types/node@24.1.0':
447
-
resolution: {integrity: sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==}
471
+
'@types/node-fetch@2.6.13':
472
+
resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==}
473
+
474
+
'@types/node@24.2.1':
475
+
resolution: {integrity: sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==}
448
476
449
477
'@types/pg@8.15.5':
450
478
resolution: {integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==}
···
476
504
'@types/ws@8.18.1':
477
505
resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
478
506
479
-
'@typescript-eslint/eslint-plugin@8.38.0':
480
-
resolution: {integrity: sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==}
507
+
'@typescript-eslint/eslint-plugin@8.39.0':
508
+
resolution: {integrity: sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==}
481
509
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
482
510
peerDependencies:
483
-
'@typescript-eslint/parser': ^8.38.0
511
+
'@typescript-eslint/parser': ^8.39.0
484
512
eslint: ^8.57.0 || ^9.0.0
485
-
typescript: '>=4.8.4 <5.9.0'
513
+
typescript: '>=4.8.4 <6.0.0'
486
514
487
-
'@typescript-eslint/parser@8.38.0':
488
-
resolution: {integrity: sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==}
515
+
'@typescript-eslint/parser@8.39.0':
516
+
resolution: {integrity: sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==}
489
517
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
490
518
peerDependencies:
491
519
eslint: ^8.57.0 || ^9.0.0
492
-
typescript: '>=4.8.4 <5.9.0'
520
+
typescript: '>=4.8.4 <6.0.0'
493
521
494
-
'@typescript-eslint/project-service@8.38.0':
495
-
resolution: {integrity: sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==}
522
+
'@typescript-eslint/project-service@8.39.0':
523
+
resolution: {integrity: sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==}
496
524
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
497
525
peerDependencies:
498
-
typescript: '>=4.8.4 <5.9.0'
526
+
typescript: '>=4.8.4 <6.0.0'
499
527
500
-
'@typescript-eslint/scope-manager@8.38.0':
501
-
resolution: {integrity: sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==}
528
+
'@typescript-eslint/scope-manager@8.39.0':
529
+
resolution: {integrity: sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==}
502
530
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
503
531
504
-
'@typescript-eslint/tsconfig-utils@8.38.0':
505
-
resolution: {integrity: sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==}
532
+
'@typescript-eslint/tsconfig-utils@8.39.0':
533
+
resolution: {integrity: sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==}
506
534
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
507
535
peerDependencies:
508
-
typescript: '>=4.8.4 <5.9.0'
536
+
typescript: '>=4.8.4 <6.0.0'
509
537
510
-
'@typescript-eslint/type-utils@8.38.0':
511
-
resolution: {integrity: sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==}
538
+
'@typescript-eslint/type-utils@8.39.0':
539
+
resolution: {integrity: sha512-6B3z0c1DXVT2vYA9+z9axjtc09rqKUPRmijD5m9iv8iQpHBRYRMBcgxSiKTZKm6FwWw1/cI4v6em35OsKCiN5Q==}
512
540
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
513
541
peerDependencies:
514
542
eslint: ^8.57.0 || ^9.0.0
515
-
typescript: '>=4.8.4 <5.9.0'
543
+
typescript: '>=4.8.4 <6.0.0'
516
544
517
-
'@typescript-eslint/types@8.38.0':
518
-
resolution: {integrity: sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==}
545
+
'@typescript-eslint/types@8.39.0':
546
+
resolution: {integrity: sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==}
519
547
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
520
548
521
-
'@typescript-eslint/typescript-estree@8.38.0':
522
-
resolution: {integrity: sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==}
549
+
'@typescript-eslint/typescript-estree@8.39.0':
550
+
resolution: {integrity: sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==}
523
551
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
524
552
peerDependencies:
525
-
typescript: '>=4.8.4 <5.9.0'
553
+
typescript: '>=4.8.4 <6.0.0'
526
554
527
-
'@typescript-eslint/utils@8.38.0':
528
-
resolution: {integrity: sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==}
555
+
'@typescript-eslint/utils@8.39.0':
556
+
resolution: {integrity: sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==}
529
557
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
530
558
peerDependencies:
531
559
eslint: ^8.57.0 || ^9.0.0
532
-
typescript: '>=4.8.4 <5.9.0'
560
+
typescript: '>=4.8.4 <6.0.0'
533
561
534
-
'@typescript-eslint/visitor-keys@8.38.0':
535
-
resolution: {integrity: sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==}
562
+
'@typescript-eslint/visitor-keys@8.39.0':
563
+
resolution: {integrity: sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==}
536
564
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
537
565
538
566
'@vladfrangu/async_event_emitter@2.4.6':
···
829
857
peerDependencies:
830
858
eslint: '>=7.0.0'
831
859
832
-
eslint-plugin-prettier@5.5.3:
833
-
resolution: {integrity: sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==}
860
+
eslint-plugin-prettier@5.5.4:
861
+
resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==}
834
862
engines: {node: ^14.18.0 || >=16.0.0}
835
863
peerDependencies:
836
864
'@types/eslint': '>=8.0.0'
···
855
883
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
856
884
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
857
885
858
-
eslint@9.32.0:
859
-
resolution: {integrity: sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==}
886
+
eslint@9.33.0:
887
+
resolution: {integrity: sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA==}
860
888
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
861
889
hasBin: true
862
890
peerDependencies:
···
1288
1316
ms@2.1.3:
1289
1317
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1290
1318
1319
+
multiformats@9.9.0:
1320
+
resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==}
1321
+
1291
1322
mylas@2.1.13:
1292
1323
resolution: {integrity: sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==}
1293
1324
engines: {node: '>=12.0.0'}
···
1335
1366
one-time@1.0.0:
1336
1367
resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==}
1337
1368
1338
-
openai@5.12.0:
1339
-
resolution: {integrity: sha512-vUdt02xiWgOHiYUmW0Hj1Qu9OKAiVQu5Bd547ktVCiMKC1BkB5L3ImeEnCyq3WpRKR6ZTaPgekzqdozwdPs7Lg==}
1369
+
openai@5.12.2:
1370
+
resolution: {integrity: sha512-xqzHHQch5Tws5PcKR2xsZGX9xtch+JQFz5zb14dGqlshmmDAFBFEWmeIpf7wVqWV+w7Emj7jRgkNJakyKE0tYQ==}
1340
1371
hasBin: true
1341
1372
peerDependencies:
1342
1373
ws: ^8.18.0
···
1718
1749
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
1719
1750
engines: {node: '>= 0.6'}
1720
1751
1721
-
typescript-eslint@8.38.0:
1722
-
resolution: {integrity: sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==}
1752
+
typescript-eslint@8.39.0:
1753
+
resolution: {integrity: sha512-lH8FvtdtzcHJCkMOKnN73LIn6SLTpoojgJqDAxPm1jCR14eWSGPX8ul/gggBdPMk/d5+u9V854vTYQ8T5jF/1Q==}
1723
1754
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1724
1755
peerDependencies:
1725
1756
eslint: ^8.57.0 || ^9.0.0
1726
-
typescript: '>=4.8.4 <5.9.0'
1757
+
typescript: '>=4.8.4 <6.0.0'
1727
1758
1728
-
typescript@5.8.3:
1729
-
resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
1759
+
typescript@5.9.2:
1760
+
resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==}
1730
1761
engines: {node: '>=14.17'}
1731
1762
hasBin: true
1763
+
1764
+
uint8arrays@3.0.0:
1765
+
resolution: {integrity: sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==}
1732
1766
1733
1767
undefsafe@2.0.5:
1734
1768
resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
···
1736
1770
underscore@1.13.7:
1737
1771
resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==}
1738
1772
1739
-
undici-types@7.8.0:
1740
-
resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==}
1773
+
undici-types@7.10.0:
1774
+
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
1741
1775
1742
1776
undici@6.21.3:
1743
1777
resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==}
···
1845
1879
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1846
1880
engines: {node: '>=10'}
1847
1881
1882
+
zod@3.25.76:
1883
+
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
1884
+
1848
1885
snapshots:
1849
1886
1887
+
'@atproto/common-web@0.4.2':
1888
+
dependencies:
1889
+
graphemer: 1.4.0
1890
+
multiformats: 9.9.0
1891
+
uint8arrays: 3.0.0
1892
+
zod: 3.25.76
1893
+
1894
+
'@atproto/crypto@0.4.4':
1895
+
dependencies:
1896
+
'@noble/curves': 1.9.6
1897
+
'@noble/hashes': 1.8.0
1898
+
uint8arrays: 3.0.0
1899
+
1900
+
'@atproto/identity@0.4.8':
1901
+
dependencies:
1902
+
'@atproto/common-web': 0.4.2
1903
+
'@atproto/crypto': 0.4.4
1904
+
1850
1905
'@colors/colors@1.6.0': {}
1851
1906
1852
1907
'@dabh/diagnostics@2.0.3':
···
1980
2035
'@esbuild/win32-x64@0.25.8':
1981
2036
optional: true
1982
2037
1983
-
'@eslint-community/eslint-utils@4.7.0(eslint@9.32.0)':
2038
+
'@eslint-community/eslint-utils@4.7.0(eslint@9.33.0)':
1984
2039
dependencies:
1985
-
eslint: 9.32.0
2040
+
eslint: 9.33.0
1986
2041
eslint-visitor-keys: 3.4.3
1987
2042
1988
2043
'@eslint-community/regexpp@4.12.1': {}
···
1995
2050
transitivePeerDependencies:
1996
2051
- supports-color
1997
2052
1998
-
'@eslint/config-helpers@0.3.0': {}
2053
+
'@eslint/config-helpers@0.3.1': {}
1999
2054
2000
-
'@eslint/core@0.15.1':
2055
+
'@eslint/core@0.15.2':
2001
2056
dependencies:
2002
2057
'@types/json-schema': 7.0.15
2003
2058
···
2015
2070
transitivePeerDependencies:
2016
2071
- supports-color
2017
2072
2018
-
'@eslint/js@9.32.0': {}
2073
+
'@eslint/js@9.33.0': {}
2019
2074
2020
2075
'@eslint/object-schema@2.1.6': {}
2021
2076
2022
-
'@eslint/plugin-kit@0.3.4':
2077
+
'@eslint/plugin-kit@0.3.5':
2023
2078
dependencies:
2024
-
'@eslint/core': 0.15.1
2079
+
'@eslint/core': 0.15.2
2025
2080
levn: 0.4.1
2026
2081
2027
2082
'@humanfs/core@0.19.1': {}
···
2036
2091
'@humanwhocodes/retry@0.3.1': {}
2037
2092
2038
2093
'@humanwhocodes/retry@0.4.3': {}
2094
+
2095
+
'@noble/curves@1.9.6':
2096
+
dependencies:
2097
+
'@noble/hashes': 1.8.0
2098
+
2099
+
'@noble/hashes@1.8.0': {}
2039
2100
2040
2101
'@nodelib/fs.scandir@2.1.5':
2041
2102
dependencies:
···
2065
2126
'@types/body-parser@1.19.6':
2066
2127
dependencies:
2067
2128
'@types/connect': 3.4.38
2068
-
'@types/node': 24.1.0
2129
+
'@types/node': 24.2.1
2069
2130
2070
2131
'@types/connect@3.4.38':
2071
2132
dependencies:
2072
-
'@types/node': 24.1.0
2133
+
'@types/node': 24.2.1
2073
2134
2074
2135
'@types/cors@2.8.19':
2075
2136
dependencies:
2076
-
'@types/node': 24.1.0
2137
+
'@types/node': 24.2.1
2077
2138
2078
2139
'@types/estree@1.0.8': {}
2079
2140
2080
2141
'@types/express-serve-static-core@4.19.6':
2081
2142
dependencies:
2082
-
'@types/node': 24.1.0
2143
+
'@types/node': 24.2.1
2083
2144
'@types/qs': 6.14.0
2084
2145
'@types/range-parser': 1.2.7
2085
2146
'@types/send': 0.17.5
···
2098
2159
'@types/jsonwebtoken@9.0.10':
2099
2160
dependencies:
2100
2161
'@types/ms': 2.1.0
2101
-
'@types/node': 24.1.0
2162
+
'@types/node': 24.2.1
2102
2163
2103
2164
'@types/mime@1.3.5': {}
2104
2165
2105
2166
'@types/ms@2.1.0': {}
2106
2167
2107
-
'@types/node@24.1.0':
2168
+
'@types/node-fetch@2.6.13':
2169
+
dependencies:
2170
+
'@types/node': 24.2.1
2171
+
form-data: 4.0.4
2172
+
2173
+
'@types/node@24.2.1':
2108
2174
dependencies:
2109
-
undici-types: 7.8.0
2175
+
undici-types: 7.10.0
2110
2176
2111
2177
'@types/pg@8.15.5':
2112
2178
dependencies:
2113
-
'@types/node': 24.1.0
2179
+
'@types/node': 24.2.1
2114
2180
pg-protocol: 1.10.3
2115
2181
pg-types: 2.2.0
2116
2182
···
2121
2187
'@types/send@0.17.5':
2122
2188
dependencies:
2123
2189
'@types/mime': 1.3.5
2124
-
'@types/node': 24.1.0
2190
+
'@types/node': 24.2.1
2125
2191
2126
2192
'@types/serve-static@1.15.8':
2127
2193
dependencies:
2128
2194
'@types/http-errors': 2.0.5
2129
-
'@types/node': 24.1.0
2195
+
'@types/node': 24.2.1
2130
2196
'@types/send': 0.17.5
2131
2197
2132
2198
'@types/triple-beam@1.3.5': {}
···
2139
2205
2140
2206
'@types/ws@8.18.1':
2141
2207
dependencies:
2142
-
'@types/node': 24.1.0
2208
+
'@types/node': 24.2.1
2143
2209
2144
-
'@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0)(typescript@5.8.3))(eslint@9.32.0)(typescript@5.8.3)':
2210
+
'@typescript-eslint/eslint-plugin@8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.33.0)(typescript@5.9.2))(eslint@9.33.0)(typescript@5.9.2)':
2145
2211
dependencies:
2146
2212
'@eslint-community/regexpp': 4.12.1
2147
-
'@typescript-eslint/parser': 8.38.0(eslint@9.32.0)(typescript@5.8.3)
2148
-
'@typescript-eslint/scope-manager': 8.38.0
2149
-
'@typescript-eslint/type-utils': 8.38.0(eslint@9.32.0)(typescript@5.8.3)
2150
-
'@typescript-eslint/utils': 8.38.0(eslint@9.32.0)(typescript@5.8.3)
2151
-
'@typescript-eslint/visitor-keys': 8.38.0
2152
-
eslint: 9.32.0
2213
+
'@typescript-eslint/parser': 8.39.0(eslint@9.33.0)(typescript@5.9.2)
2214
+
'@typescript-eslint/scope-manager': 8.39.0
2215
+
'@typescript-eslint/type-utils': 8.39.0(eslint@9.33.0)(typescript@5.9.2)
2216
+
'@typescript-eslint/utils': 8.39.0(eslint@9.33.0)(typescript@5.9.2)
2217
+
'@typescript-eslint/visitor-keys': 8.39.0
2218
+
eslint: 9.33.0
2153
2219
graphemer: 1.4.0
2154
2220
ignore: 7.0.5
2155
2221
natural-compare: 1.4.0
2156
-
ts-api-utils: 2.1.0(typescript@5.8.3)
2157
-
typescript: 5.8.3
2222
+
ts-api-utils: 2.1.0(typescript@5.9.2)
2223
+
typescript: 5.9.2
2158
2224
transitivePeerDependencies:
2159
2225
- supports-color
2160
2226
2161
-
'@typescript-eslint/parser@8.38.0(eslint@9.32.0)(typescript@5.8.3)':
2227
+
'@typescript-eslint/parser@8.39.0(eslint@9.33.0)(typescript@5.9.2)':
2162
2228
dependencies:
2163
-
'@typescript-eslint/scope-manager': 8.38.0
2164
-
'@typescript-eslint/types': 8.38.0
2165
-
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
2166
-
'@typescript-eslint/visitor-keys': 8.38.0
2229
+
'@typescript-eslint/scope-manager': 8.39.0
2230
+
'@typescript-eslint/types': 8.39.0
2231
+
'@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2)
2232
+
'@typescript-eslint/visitor-keys': 8.39.0
2167
2233
debug: 4.4.1(supports-color@5.5.0)
2168
-
eslint: 9.32.0
2169
-
typescript: 5.8.3
2234
+
eslint: 9.33.0
2235
+
typescript: 5.9.2
2170
2236
transitivePeerDependencies:
2171
2237
- supports-color
2172
2238
2173
-
'@typescript-eslint/project-service@8.38.0(typescript@5.8.3)':
2239
+
'@typescript-eslint/project-service@8.39.0(typescript@5.9.2)':
2174
2240
dependencies:
2175
-
'@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3)
2176
-
'@typescript-eslint/types': 8.38.0
2241
+
'@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2)
2242
+
'@typescript-eslint/types': 8.39.0
2177
2243
debug: 4.4.1(supports-color@5.5.0)
2178
-
typescript: 5.8.3
2244
+
typescript: 5.9.2
2179
2245
transitivePeerDependencies:
2180
2246
- supports-color
2181
2247
2182
-
'@typescript-eslint/scope-manager@8.38.0':
2248
+
'@typescript-eslint/scope-manager@8.39.0':
2183
2249
dependencies:
2184
-
'@typescript-eslint/types': 8.38.0
2185
-
'@typescript-eslint/visitor-keys': 8.38.0
2250
+
'@typescript-eslint/types': 8.39.0
2251
+
'@typescript-eslint/visitor-keys': 8.39.0
2186
2252
2187
-
'@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.8.3)':
2253
+
'@typescript-eslint/tsconfig-utils@8.39.0(typescript@5.9.2)':
2188
2254
dependencies:
2189
-
typescript: 5.8.3
2255
+
typescript: 5.9.2
2190
2256
2191
-
'@typescript-eslint/type-utils@8.38.0(eslint@9.32.0)(typescript@5.8.3)':
2257
+
'@typescript-eslint/type-utils@8.39.0(eslint@9.33.0)(typescript@5.9.2)':
2192
2258
dependencies:
2193
-
'@typescript-eslint/types': 8.38.0
2194
-
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
2195
-
'@typescript-eslint/utils': 8.38.0(eslint@9.32.0)(typescript@5.8.3)
2259
+
'@typescript-eslint/types': 8.39.0
2260
+
'@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2)
2261
+
'@typescript-eslint/utils': 8.39.0(eslint@9.33.0)(typescript@5.9.2)
2196
2262
debug: 4.4.1(supports-color@5.5.0)
2197
-
eslint: 9.32.0
2198
-
ts-api-utils: 2.1.0(typescript@5.8.3)
2199
-
typescript: 5.8.3
2263
+
eslint: 9.33.0
2264
+
ts-api-utils: 2.1.0(typescript@5.9.2)
2265
+
typescript: 5.9.2
2200
2266
transitivePeerDependencies:
2201
2267
- supports-color
2202
2268
2203
-
'@typescript-eslint/types@8.38.0': {}
2269
+
'@typescript-eslint/types@8.39.0': {}
2204
2270
2205
-
'@typescript-eslint/typescript-estree@8.38.0(typescript@5.8.3)':
2271
+
'@typescript-eslint/typescript-estree@8.39.0(typescript@5.9.2)':
2206
2272
dependencies:
2207
-
'@typescript-eslint/project-service': 8.38.0(typescript@5.8.3)
2208
-
'@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3)
2209
-
'@typescript-eslint/types': 8.38.0
2210
-
'@typescript-eslint/visitor-keys': 8.38.0
2273
+
'@typescript-eslint/project-service': 8.39.0(typescript@5.9.2)
2274
+
'@typescript-eslint/tsconfig-utils': 8.39.0(typescript@5.9.2)
2275
+
'@typescript-eslint/types': 8.39.0
2276
+
'@typescript-eslint/visitor-keys': 8.39.0
2211
2277
debug: 4.4.1(supports-color@5.5.0)
2212
2278
fast-glob: 3.3.3
2213
2279
is-glob: 4.0.3
2214
2280
minimatch: 9.0.5
2215
2281
semver: 7.7.2
2216
-
ts-api-utils: 2.1.0(typescript@5.8.3)
2217
-
typescript: 5.8.3
2282
+
ts-api-utils: 2.1.0(typescript@5.9.2)
2283
+
typescript: 5.9.2
2218
2284
transitivePeerDependencies:
2219
2285
- supports-color
2220
2286
2221
-
'@typescript-eslint/utils@8.38.0(eslint@9.32.0)(typescript@5.8.3)':
2287
+
'@typescript-eslint/utils@8.39.0(eslint@9.33.0)(typescript@5.9.2)':
2222
2288
dependencies:
2223
-
'@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0)
2224
-
'@typescript-eslint/scope-manager': 8.38.0
2225
-
'@typescript-eslint/types': 8.38.0
2226
-
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
2227
-
eslint: 9.32.0
2228
-
typescript: 5.8.3
2289
+
'@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0)
2290
+
'@typescript-eslint/scope-manager': 8.39.0
2291
+
'@typescript-eslint/types': 8.39.0
2292
+
'@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2)
2293
+
eslint: 9.33.0
2294
+
typescript: 5.9.2
2229
2295
transitivePeerDependencies:
2230
2296
- supports-color
2231
2297
2232
-
'@typescript-eslint/visitor-keys@8.38.0':
2298
+
'@typescript-eslint/visitor-keys@8.39.0':
2233
2299
dependencies:
2234
-
'@typescript-eslint/types': 8.38.0
2300
+
'@typescript-eslint/types': 8.39.0
2235
2301
eslint-visitor-keys: 4.2.1
2236
2302
2237
2303
'@vladfrangu/async_event_emitter@2.4.6': {}
···
2572
2638
2573
2639
escape-string-regexp@4.0.0: {}
2574
2640
2575
-
eslint-config-prettier@10.1.8(eslint@9.32.0):
2641
+
eslint-config-prettier@10.1.8(eslint@9.33.0):
2576
2642
dependencies:
2577
-
eslint: 9.32.0
2643
+
eslint: 9.33.0
2578
2644
2579
-
eslint-plugin-prettier@5.5.3(eslint-config-prettier@10.1.8(eslint@9.32.0))(eslint@9.32.0)(prettier@3.6.2):
2645
+
eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.33.0))(eslint@9.33.0)(prettier@3.6.2):
2580
2646
dependencies:
2581
-
eslint: 9.32.0
2647
+
eslint: 9.33.0
2582
2648
prettier: 3.6.2
2583
2649
prettier-linter-helpers: 1.0.0
2584
2650
synckit: 0.11.11
2585
2651
optionalDependencies:
2586
-
eslint-config-prettier: 10.1.8(eslint@9.32.0)
2652
+
eslint-config-prettier: 10.1.8(eslint@9.33.0)
2587
2653
2588
2654
eslint-scope@8.4.0:
2589
2655
dependencies:
···
2594
2660
2595
2661
eslint-visitor-keys@4.2.1: {}
2596
2662
2597
-
eslint@9.32.0:
2663
+
eslint@9.33.0:
2598
2664
dependencies:
2599
-
'@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0)
2665
+
'@eslint-community/eslint-utils': 4.7.0(eslint@9.33.0)
2600
2666
'@eslint-community/regexpp': 4.12.1
2601
2667
'@eslint/config-array': 0.21.0
2602
-
'@eslint/config-helpers': 0.3.0
2603
-
'@eslint/core': 0.15.1
2668
+
'@eslint/config-helpers': 0.3.1
2669
+
'@eslint/core': 0.15.2
2604
2670
'@eslint/eslintrc': 3.3.1
2605
-
'@eslint/js': 9.32.0
2606
-
'@eslint/plugin-kit': 0.3.4
2671
+
'@eslint/js': 9.33.0
2672
+
'@eslint/plugin-kit': 0.3.5
2607
2673
'@humanfs/node': 0.16.6
2608
2674
'@humanwhocodes/module-importer': 1.0.1
2609
2675
'@humanwhocodes/retry': 0.4.3
···
3059
3125
3060
3126
ms@2.1.3: {}
3061
3127
3128
+
multiformats@9.9.0: {}
3129
+
3062
3130
mylas@2.1.13: {}
3063
3131
3064
3132
natural-compare@1.4.0: {}
···
3104
3172
dependencies:
3105
3173
fn.name: 1.1.0
3106
3174
3107
-
openai@5.12.0(ws@8.18.3):
3175
+
openai@5.12.2(ws@8.18.3)(zod@3.25.76):
3108
3176
optionalDependencies:
3109
3177
ws: 8.18.3
3178
+
zod: 3.25.76
3110
3179
3111
3180
optionator@0.9.4:
3112
3181
dependencies:
···
3432
3501
3433
3502
triple-beam@1.4.1: {}
3434
3503
3435
-
ts-api-utils@2.1.0(typescript@5.8.3):
3504
+
ts-api-utils@2.1.0(typescript@5.9.2):
3436
3505
dependencies:
3437
-
typescript: 5.8.3
3506
+
typescript: 5.9.2
3438
3507
3439
3508
ts-mixer@6.0.4: {}
3440
3509
···
3472
3541
media-typer: 0.3.0
3473
3542
mime-types: 2.1.35
3474
3543
3475
-
typescript-eslint@8.38.0(eslint@9.32.0)(typescript@5.8.3):
3544
+
typescript-eslint@8.39.0(eslint@9.33.0)(typescript@5.9.2):
3476
3545
dependencies:
3477
-
'@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0)(typescript@5.8.3))(eslint@9.32.0)(typescript@5.8.3)
3478
-
'@typescript-eslint/parser': 8.38.0(eslint@9.32.0)(typescript@5.8.3)
3479
-
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
3480
-
'@typescript-eslint/utils': 8.38.0(eslint@9.32.0)(typescript@5.8.3)
3481
-
eslint: 9.32.0
3482
-
typescript: 5.8.3
3546
+
'@typescript-eslint/eslint-plugin': 8.39.0(@typescript-eslint/parser@8.39.0(eslint@9.33.0)(typescript@5.9.2))(eslint@9.33.0)(typescript@5.9.2)
3547
+
'@typescript-eslint/parser': 8.39.0(eslint@9.33.0)(typescript@5.9.2)
3548
+
'@typescript-eslint/typescript-estree': 8.39.0(typescript@5.9.2)
3549
+
'@typescript-eslint/utils': 8.39.0(eslint@9.33.0)(typescript@5.9.2)
3550
+
eslint: 9.33.0
3551
+
typescript: 5.9.2
3483
3552
transitivePeerDependencies:
3484
3553
- supports-color
3485
3554
3486
-
typescript@5.8.3: {}
3555
+
typescript@5.9.2: {}
3556
+
3557
+
uint8arrays@3.0.0:
3558
+
dependencies:
3559
+
multiformats: 9.9.0
3487
3560
3488
3561
undefsafe@2.0.5: {}
3489
3562
3490
3563
underscore@1.13.7: {}
3491
3564
3492
-
undici-types@7.8.0: {}
3565
+
undici-types@7.10.0: {}
3493
3566
3494
3567
undici@6.21.3: {}
3495
3568
···
3593
3666
yargs-parser: 18.1.3
3594
3667
3595
3668
yocto-queue@0.1.0: {}
3669
+
3670
+
zod@3.25.76: {}
+19
src/services/Client.ts
+19
src/services/Client.ts
···
2
2
import initialzeCommands from '@/handlers/initialzeCommands';
3
3
import { SlashCommandProps } from '@/types/command';
4
4
import { Client, Collection, GatewayIntentBits, Partials } from 'discord.js';
5
+
import { Pool } from 'pg';
6
+
import { initializeSocialMediaManager, SocialMediaManager } from './social/SocialMediaManager';
5
7
import { promises, readdirSync } from 'fs';
6
8
import path from 'path';
7
9
import { fileURLToPath } from 'url';
···
17
19
public commands = new Collection<string, SlashCommandProps>();
18
20
// eslint-disable-next-line @typescript-eslint/no-explicit-any
19
21
public t = new Collection<string, any>();
22
+
public socialMediaManager?: SocialMediaManager;
20
23
21
24
constructor() {
22
25
super({
···
47
50
await this.setupLocalization();
48
51
await initialzeCommands(this);
49
52
await this.setupEvents();
53
+
await this.setupDatabase();
50
54
this.login(config.TOKEN);
51
55
}
52
56
···
92
96
throw new Error('Failed to initialize localization');
93
97
}
94
98
}
99
+
private async setupDatabase() {
100
+
try {
101
+
const pool = new Pool({
102
+
connectionString: process.env.DATABASE_URL,
103
+
ssl: process.env.NODE_ENV === 'production' ? { rejectUnauthorized: false } : false,
104
+
});
105
+
106
+
this.socialMediaManager = initializeSocialMediaManager(this, pool);
107
+
await this.socialMediaManager.initialize();
108
+
} catch (error) {
109
+
console.error('Failed to initialize database and services:', error);
110
+
throw error;
111
+
}
112
+
}
113
+
95
114
public async getLocaleText(key: string, locale: string, replaces = {}): Promise<string> {
96
115
const fallbackLocale = 'en-US';
97
116