alpha
Login
or
Join now
danielroe.dev
/
roe.dev
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
[READ-ONLY] Mirror of https://github.com/danielroe/roe.dev. This is the code and content for my personal website, built in Nuxt.
roe.dev
Star
0
Fork
0
Atom
Configure Feed
Issues
Pull Requests
Commits
Tags
Feed URL
Select the types of activity you want to include in your feed.
Overview
Issues
Pulls
Pipelines
feat: add linkedin token generator
author
Daniel Roe
date
10 months ago
(Sep 8, 2025, 5:33 PM +0100)
commit
f5bf7c6f
f5bf7c6f89275ae9ba6566fd602d31b20c6ca950
parent
50b1576f
50b1576f2f74a1dd74dc0c659a3cf317fae2be10
+570
-979
5 changed files
Expand all
Collapse all
Unified
Split
nuxt.config.ts
package.json
pnpm-lock.yaml
scripts
linkedin-auth.ts
youtube-auth.ts
+3
nuxt.config.ts
View file
Reviewed
···
237
237
},
238
238
239
239
typescript: {
240
240
+
nodeTsConfig: {
241
241
+
include: ['../scripts'],
242
242
+
},
240
243
hoist: ['vite'],
241
244
},
242
245
+4
-1
package.json
View file
Reviewed
···
16
16
"test:e2e": "playwright test test/e2e",
17
17
"test:e2e:update": "docker run --rm --network host -v $(pwd):/work/ -v /tmp/playwright-nm:/work/node_modules -w /work/ -it mcr.microsoft.com/playwright:v1.52.0-noble bash -c 'corepack enable && pnpm i && pnpm playwright test test/e2e --update-snapshots'",
18
18
"postinstall": "nuxt prepare && pnpm simple-git-hooks install",
19
19
-
"auth:youtube": "node --env-file=.env scripts/youtube-auth.mjs",
19
19
+
"auth:linkedin": "node --env-file=.env scripts/linkedin-auth.ts",
20
20
+
"auth:youtube": "node --env-file=.env scripts/youtube-auth.ts",
21
21
+
"auth:youtube:refresh": "node --env-file=.env scripts/youtube-auth.ts refresh",
20
22
"import-streambeats": "node --env-file=.env scripts/import-streambeats.mjs",
21
23
"import-streambeats:dry-run": "node --env-file=.env scripts/import-streambeats.mjs --dry-run"
22
24
},
···
48
50
"@unocss/postcss": "^66.1.3",
49
51
"@unocss/reset": "^66.1.3",
50
52
"@vercel/blob": "^1.1.1",
53
53
+
"citty": "^0.1.6",
51
54
"defu": "^6.1.4",
52
55
"exsolve": "^1.0.5",
53
56
"feed": "^5.1.0",
+91
-911
pnpm-lock.yaml
View file
Reviewed
···
88
88
'@vercel/blob':
89
89
specifier: ^1.1.1
90
90
version: 1.1.1
91
91
+
citty:
92
92
+
specifier: ^0.1.6
93
93
+
version: 0.1.6
91
94
defu:
92
95
specifier: ^6.1.4
93
96
version: 6.1.4
···
372
375
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
373
376
engines: {node: '>=6.9.0'}
374
377
375
375
-
'@babel/compat-data@7.28.0':
376
376
-
resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==}
377
377
-
engines: {node: '>=6.9.0'}
378
378
-
379
378
'@babel/compat-data@7.28.4':
380
379
resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==}
381
380
engines: {node: '>=6.9.0'}
···
477
476
478
477
'@babel/parser@7.27.7':
479
478
resolution: {integrity: sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q==}
480
480
-
engines: {node: '>=6.0.0'}
481
481
-
hasBin: true
482
482
-
483
483
-
'@babel/parser@7.28.3':
484
484
-
resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==}
485
479
engines: {node: '>=6.0.0'}
486
480
hasBin: true
487
481
···
947
941
948
942
'@babel/traverse@7.28.4':
949
943
resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==}
950
950
-
engines: {node: '>=6.9.0'}
951
951
-
952
952
-
'@babel/types@7.28.2':
953
953
-
resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==}
954
944
engines: {node: '>=6.9.0'}
955
945
956
946
'@babel/types@7.28.4':
···
1221
1211
cpu: [ppc64]
1222
1212
os: [aix]
1223
1213
1224
1224
-
'@esbuild/aix-ppc64@0.25.8':
1225
1225
-
resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==}
1226
1226
-
engines: {node: '>=18'}
1227
1227
-
cpu: [ppc64]
1228
1228
-
os: [aix]
1229
1229
-
1230
1214
'@esbuild/aix-ppc64@0.25.9':
1231
1215
resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==}
1232
1216
engines: {node: '>=18'}
···
1239
1223
cpu: [arm64]
1240
1224
os: [android]
1241
1225
1242
1242
-
'@esbuild/android-arm64@0.25.8':
1243
1243
-
resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==}
1244
1244
-
engines: {node: '>=18'}
1245
1245
-
cpu: [arm64]
1246
1246
-
os: [android]
1247
1247
-
1248
1226
'@esbuild/android-arm64@0.25.9':
1249
1227
resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==}
1250
1228
engines: {node: '>=18'}
···
1257
1235
cpu: [arm]
1258
1236
os: [android]
1259
1237
1260
1260
-
'@esbuild/android-arm@0.25.8':
1261
1261
-
resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==}
1262
1262
-
engines: {node: '>=18'}
1263
1263
-
cpu: [arm]
1264
1264
-
os: [android]
1265
1265
-
1266
1238
'@esbuild/android-arm@0.25.9':
1267
1239
resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==}
1268
1240
engines: {node: '>=18'}
···
1272
1244
'@esbuild/android-x64@0.21.5':
1273
1245
resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
1274
1246
engines: {node: '>=12'}
1275
1275
-
cpu: [x64]
1276
1276
-
os: [android]
1277
1277
-
1278
1278
-
'@esbuild/android-x64@0.25.8':
1279
1279
-
resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==}
1280
1280
-
engines: {node: '>=18'}
1281
1247
cpu: [x64]
1282
1248
os: [android]
1283
1249
···
1293
1259
cpu: [arm64]
1294
1260
os: [darwin]
1295
1261
1296
1296
-
'@esbuild/darwin-arm64@0.25.8':
1297
1297
-
resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==}
1298
1298
-
engines: {node: '>=18'}
1299
1299
-
cpu: [arm64]
1300
1300
-
os: [darwin]
1301
1301
-
1302
1262
'@esbuild/darwin-arm64@0.25.9':
1303
1263
resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==}
1304
1264
engines: {node: '>=18'}
···
1311
1271
cpu: [x64]
1312
1272
os: [darwin]
1313
1273
1314
1314
-
'@esbuild/darwin-x64@0.25.8':
1315
1315
-
resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==}
1316
1316
-
engines: {node: '>=18'}
1317
1317
-
cpu: [x64]
1318
1318
-
os: [darwin]
1319
1319
-
1320
1274
'@esbuild/darwin-x64@0.25.9':
1321
1275
resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==}
1322
1276
engines: {node: '>=18'}
···
1329
1283
cpu: [arm64]
1330
1284
os: [freebsd]
1331
1285
1332
1332
-
'@esbuild/freebsd-arm64@0.25.8':
1333
1333
-
resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==}
1334
1334
-
engines: {node: '>=18'}
1335
1335
-
cpu: [arm64]
1336
1336
-
os: [freebsd]
1337
1337
-
1338
1286
'@esbuild/freebsd-arm64@0.25.9':
1339
1287
resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==}
1340
1288
engines: {node: '>=18'}
···
1347
1295
cpu: [x64]
1348
1296
os: [freebsd]
1349
1297
1350
1350
-
'@esbuild/freebsd-x64@0.25.8':
1351
1351
-
resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==}
1352
1352
-
engines: {node: '>=18'}
1353
1353
-
cpu: [x64]
1354
1354
-
os: [freebsd]
1355
1355
-
1356
1298
'@esbuild/freebsd-x64@0.25.9':
1357
1299
resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==}
1358
1300
engines: {node: '>=18'}
···
1365
1307
cpu: [arm64]
1366
1308
os: [linux]
1367
1309
1368
1368
-
'@esbuild/linux-arm64@0.25.8':
1369
1369
-
resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==}
1370
1370
-
engines: {node: '>=18'}
1371
1371
-
cpu: [arm64]
1372
1372
-
os: [linux]
1373
1373
-
1374
1310
'@esbuild/linux-arm64@0.25.9':
1375
1311
resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==}
1376
1312
engines: {node: '>=18'}
···
1383
1319
cpu: [arm]
1384
1320
os: [linux]
1385
1321
1386
1386
-
'@esbuild/linux-arm@0.25.8':
1387
1387
-
resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==}
1388
1388
-
engines: {node: '>=18'}
1389
1389
-
cpu: [arm]
1390
1390
-
os: [linux]
1391
1391
-
1392
1322
'@esbuild/linux-arm@0.25.9':
1393
1323
resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==}
1394
1324
engines: {node: '>=18'}
···
1401
1331
cpu: [ia32]
1402
1332
os: [linux]
1403
1333
1404
1404
-
'@esbuild/linux-ia32@0.25.8':
1405
1405
-
resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==}
1406
1406
-
engines: {node: '>=18'}
1407
1407
-
cpu: [ia32]
1408
1408
-
os: [linux]
1409
1409
-
1410
1334
'@esbuild/linux-ia32@0.25.9':
1411
1335
resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==}
1412
1336
engines: {node: '>=18'}
···
1419
1343
cpu: [loong64]
1420
1344
os: [linux]
1421
1345
1422
1422
-
'@esbuild/linux-loong64@0.25.8':
1423
1423
-
resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==}
1424
1424
-
engines: {node: '>=18'}
1425
1425
-
cpu: [loong64]
1426
1426
-
os: [linux]
1427
1427
-
1428
1346
'@esbuild/linux-loong64@0.25.9':
1429
1347
resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==}
1430
1348
engines: {node: '>=18'}
···
1437
1355
cpu: [mips64el]
1438
1356
os: [linux]
1439
1357
1440
1440
-
'@esbuild/linux-mips64el@0.25.8':
1441
1441
-
resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==}
1442
1442
-
engines: {node: '>=18'}
1443
1443
-
cpu: [mips64el]
1444
1444
-
os: [linux]
1445
1445
-
1446
1358
'@esbuild/linux-mips64el@0.25.9':
1447
1359
resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==}
1448
1360
engines: {node: '>=18'}
···
1455
1367
cpu: [ppc64]
1456
1368
os: [linux]
1457
1369
1458
1458
-
'@esbuild/linux-ppc64@0.25.8':
1459
1459
-
resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==}
1460
1460
-
engines: {node: '>=18'}
1461
1461
-
cpu: [ppc64]
1462
1462
-
os: [linux]
1463
1463
-
1464
1370
'@esbuild/linux-ppc64@0.25.9':
1465
1371
resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==}
1466
1372
engines: {node: '>=18'}
···
1473
1379
cpu: [riscv64]
1474
1380
os: [linux]
1475
1381
1476
1476
-
'@esbuild/linux-riscv64@0.25.8':
1477
1477
-
resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==}
1478
1478
-
engines: {node: '>=18'}
1479
1479
-
cpu: [riscv64]
1480
1480
-
os: [linux]
1481
1481
-
1482
1382
'@esbuild/linux-riscv64@0.25.9':
1483
1383
resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==}
1484
1384
engines: {node: '>=18'}
···
1491
1391
cpu: [s390x]
1492
1392
os: [linux]
1493
1393
1494
1494
-
'@esbuild/linux-s390x@0.25.8':
1495
1495
-
resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==}
1496
1496
-
engines: {node: '>=18'}
1497
1497
-
cpu: [s390x]
1498
1498
-
os: [linux]
1499
1499
-
1500
1394
'@esbuild/linux-s390x@0.25.9':
1501
1395
resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==}
1502
1396
engines: {node: '>=18'}
···
1509
1403
cpu: [x64]
1510
1404
os: [linux]
1511
1405
1512
1512
-
'@esbuild/linux-x64@0.25.8':
1513
1513
-
resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==}
1514
1514
-
engines: {node: '>=18'}
1515
1515
-
cpu: [x64]
1516
1516
-
os: [linux]
1517
1517
-
1518
1406
'@esbuild/linux-x64@0.25.9':
1519
1407
resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==}
1520
1408
engines: {node: '>=18'}
1521
1409
cpu: [x64]
1522
1410
os: [linux]
1523
1411
1524
1524
-
'@esbuild/netbsd-arm64@0.25.8':
1525
1525
-
resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==}
1526
1526
-
engines: {node: '>=18'}
1527
1527
-
cpu: [arm64]
1528
1528
-
os: [netbsd]
1529
1529
-
1530
1412
'@esbuild/netbsd-arm64@0.25.9':
1531
1413
resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==}
1532
1414
engines: {node: '>=18'}
···
1539
1421
cpu: [x64]
1540
1422
os: [netbsd]
1541
1423
1542
1542
-
'@esbuild/netbsd-x64@0.25.8':
1543
1543
-
resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==}
1544
1544
-
engines: {node: '>=18'}
1545
1545
-
cpu: [x64]
1546
1546
-
os: [netbsd]
1547
1547
-
1548
1424
'@esbuild/netbsd-x64@0.25.9':
1549
1425
resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==}
1550
1426
engines: {node: '>=18'}
1551
1427
cpu: [x64]
1552
1428
os: [netbsd]
1553
1429
1554
1554
-
'@esbuild/openbsd-arm64@0.25.8':
1555
1555
-
resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==}
1556
1556
-
engines: {node: '>=18'}
1557
1557
-
cpu: [arm64]
1558
1558
-
os: [openbsd]
1559
1559
-
1560
1430
'@esbuild/openbsd-arm64@0.25.9':
1561
1431
resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==}
1562
1432
engines: {node: '>=18'}
···
1569
1439
cpu: [x64]
1570
1440
os: [openbsd]
1571
1441
1572
1572
-
'@esbuild/openbsd-x64@0.25.8':
1573
1573
-
resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==}
1574
1574
-
engines: {node: '>=18'}
1575
1575
-
cpu: [x64]
1576
1576
-
os: [openbsd]
1577
1577
-
1578
1442
'@esbuild/openbsd-x64@0.25.9':
1579
1443
resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==}
1580
1444
engines: {node: '>=18'}
1581
1445
cpu: [x64]
1582
1446
os: [openbsd]
1583
1447
1584
1584
-
'@esbuild/openharmony-arm64@0.25.8':
1585
1585
-
resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==}
1586
1586
-
engines: {node: '>=18'}
1587
1587
-
cpu: [arm64]
1588
1588
-
os: [openharmony]
1589
1589
-
1590
1448
'@esbuild/openharmony-arm64@0.25.9':
1591
1449
resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==}
1592
1450
engines: {node: '>=18'}
···
1596
1454
'@esbuild/sunos-x64@0.21.5':
1597
1455
resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
1598
1456
engines: {node: '>=12'}
1599
1599
-
cpu: [x64]
1600
1600
-
os: [sunos]
1601
1601
-
1602
1602
-
'@esbuild/sunos-x64@0.25.8':
1603
1603
-
resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==}
1604
1604
-
engines: {node: '>=18'}
1605
1457
cpu: [x64]
1606
1458
os: [sunos]
1607
1459
···
1617
1469
cpu: [arm64]
1618
1470
os: [win32]
1619
1471
1620
1620
-
'@esbuild/win32-arm64@0.25.8':
1621
1621
-
resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==}
1622
1622
-
engines: {node: '>=18'}
1623
1623
-
cpu: [arm64]
1624
1624
-
os: [win32]
1625
1625
-
1626
1472
'@esbuild/win32-arm64@0.25.9':
1627
1473
resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==}
1628
1474
engines: {node: '>=18'}
···
1635
1481
cpu: [ia32]
1636
1482
os: [win32]
1637
1483
1638
1638
-
'@esbuild/win32-ia32@0.25.8':
1639
1639
-
resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==}
1640
1640
-
engines: {node: '>=18'}
1641
1641
-
cpu: [ia32]
1642
1642
-
os: [win32]
1643
1643
-
1644
1484
'@esbuild/win32-ia32@0.25.9':
1645
1485
resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==}
1646
1486
engines: {node: '>=18'}
···
1653
1493
cpu: [x64]
1654
1494
os: [win32]
1655
1495
1656
1656
-
'@esbuild/win32-x64@0.25.8':
1657
1657
-
resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==}
1658
1658
-
engines: {node: '>=18'}
1659
1659
-
cpu: [x64]
1660
1660
-
os: [win32]
1661
1661
-
1662
1496
'@esbuild/win32-x64@0.25.9':
1663
1497
resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==}
1664
1498
engines: {node: '>=18'}
1665
1499
cpu: [x64]
1666
1500
os: [win32]
1667
1667
-
1668
1668
-
'@eslint-community/eslint-utils@4.7.0':
1669
1669
-
resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
1670
1670
-
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1671
1671
-
peerDependencies:
1672
1672
-
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
1673
1501
1674
1502
'@eslint-community/eslint-utils@4.8.0':
1675
1503
resolution: {integrity: sha512-MJQFqrZgcW0UNYLGOuQpey/oTN59vyWwplvCGZztn1cKz9agZPPYpJB7h2OMmuu7VLqkvEjN8feFZJmxNF9D+Q==}
···
1710
1538
1711
1539
'@eslint/eslintrc@3.3.1':
1712
1540
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
1713
1713
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1714
1714
-
1715
1715
-
'@eslint/js@9.34.0':
1716
1716
-
resolution: {integrity: sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==}
1717
1541
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1718
1542
1719
1543
'@eslint/js@9.35.0':
···
2094
1918
2095
1919
'@nuxt/devalue@2.0.2':
2096
1920
resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==}
2097
2097
-
2098
2098
-
'@nuxt/devtools-kit@2.6.2':
2099
2099
-
resolution: {integrity: sha512-esErdMQ0u3wXXogKQ3IE2m0fxv52w6CzPsfsXF4o5ZVrUQrQaH58ygupDAQTYdlGTgtqmEA6KkHTGG5cM6yxeg==}
2100
2100
-
peerDependencies:
2101
2101
-
vite: '>=6.0'
2102
1921
2103
1922
'@nuxt/devtools-kit@2.6.3':
2104
1923
resolution: {integrity: sha512-cDmai3Ws6AbJlYy1p4CCwc718cfbqtAjXe6oEc6q03zoJnvX1PsvKUfmU+yuowfqTSR6DZRmH4SjCBWuMjgaKQ==}
···
3119
2938
react: ^16.9 || ^17 || ^18 || ^19
3120
2939
react-dom: ^16.9 || ^17 || ^18 || ^19
3121
2940
3122
3122
-
'@sanity/insert-menu@2.0.1':
3123
3123
-
resolution: {integrity: sha512-PBHua3RJ+YAH71YJwDgh31XROoytl28jipaJk3H2i9Btt0GwzpyaCKaqRTNWsf4k+dQ4HMFw1URrtt4WCCQTPw==}
3124
3124
-
engines: {node: '>=20.19'}
3125
3125
-
peerDependencies:
3126
3126
-
'@sanity/types': '*'
3127
3127
-
react: ^18.3 || >=19.0.0-rc
3128
3128
-
react-dom: ^18.3 || >=19.0.0-rc
3129
3129
-
react-is: ^18.3 || >=19.0.0-rc
3130
3130
-
3131
2941
'@sanity/insert-menu@2.0.2':
3132
2942
resolution: {integrity: sha512-ltR9DNOIAQRbwuch68U3f4YM+7rTqI5WAkMle/T/VBLe3peYeqL9QyOLthynR3gfZLZR8jFU8nryH5c2xZmOxg==}
3133
2943
engines: {node: '>=20.19'}
···
3180
2990
3181
2991
'@sanity/mutator@4.6.1':
3182
2992
resolution: {integrity: sha512-e7dB9APjAAPBlxTdEG+idWIv4EOMagZ48S7IQO977ngAt/44zU1lQj/FuVohXVBnK8737kJY0YhSkWOkeJCGtA==}
3183
3183
-
3184
3184
-
'@sanity/presentation-comlink@1.0.28':
3185
3185
-
resolution: {integrity: sha512-3LqQQ9MZy4Vut65XYsW0mPFF3gdv/8OKQy3m7zuSIc1HkQNbSLqbD+o7KaBfDnpXQxfk6HXS2zJyrJRO87us1A==}
3186
3186
-
engines: {node: '>=18'}
3187
3187
-
peerDependencies:
3188
3188
-
'@sanity/client': ^7.8.2
3189
2993
3190
2994
'@sanity/presentation-comlink@1.0.29':
3191
2995
resolution: {integrity: sha512-IPXRqlgDEmuGMfgeovyQqgVt9X49OlZs8gOdeKM7lSj/KIBzx/X+m6MtnDdUOZpYLqROF2mIbYTmyyo3PsNmkg==}
···
3271
3075
react: ^18 || ^19.0.0
3272
3076
styled-components: ^6.1.15
3273
3077
3274
3274
-
'@sanity/visual-editing-csm@2.0.22':
3275
3275
-
resolution: {integrity: sha512-bXV7wAit5EvCIFdWzYieMzN+8BrsLCIoMWbJpguHn0zLRZ42QBVlpDHe+UwrF+ul4uiAQrhMn7TLomrv762z4g==}
3276
3276
-
engines: {node: '>=18'}
3277
3277
-
peerDependencies:
3278
3278
-
'@sanity/client': ^7.8.1
3279
3279
-
3280
3078
'@sanity/visual-editing-csm@2.0.23':
3281
3079
resolution: {integrity: sha512-R4r67uphMwAWkdKbA/Uveay0+q7JzDkhb/t8JPuDxteSAkM0JxbJ3cSSN7CxPMHvCVNksFPpMfCq82MalVRyCw==}
3282
3080
engines: {node: '>=18'}
3283
3081
peerDependencies:
3284
3082
'@sanity/client': ^7.8.1
3285
3285
-
3286
3286
-
'@sanity/visual-editing-types@1.1.5':
3287
3287
-
resolution: {integrity: sha512-jDQyO59R9TG7QC6XQ5n8PVWCVRdebez1ws9d8j1HVmPzjIhWRkyQbA/xrfrtYDPo/vuVD8wUbkXOh1TScITVXQ==}
3288
3288
-
engines: {node: '>=18'}
3289
3289
-
peerDependencies:
3290
3290
-
'@sanity/client': ^7.8.1
3291
3291
-
'@sanity/types': '*'
3292
3292
-
peerDependenciesMeta:
3293
3293
-
'@sanity/types':
3294
3294
-
optional: true
3295
3083
3296
3084
'@sanity/visual-editing-types@1.1.6':
3297
3085
resolution: {integrity: sha512-CJlbFdQa0PeMhdX6mzmnu1QAhojrd/vLpPaeOFlGNXwCEgQTEoK9nR4510SQqkX6skx0uvb0YICc8M0nWVCsbw==}
···
3371
3159
'@shikijs/core@3.12.2':
3372
3160
resolution: {integrity: sha512-L1Safnhra3tX/oJK5kYHaWmLEBJi1irASwewzY3taX5ibyXyMkkSDZlq01qigjryOBwrXSdFgTiZ3ryzSNeu7Q==}
3373
3161
3374
3374
-
'@shikijs/core@3.8.0':
3375
3375
-
resolution: {integrity: sha512-gWt8NNZFurL6FMESO4lEsmspDh0H1fyUibhx1NnEH/S3kOXgYiWa6ZFqy+dcjBLhZqCXsepuUaL1QFXk6PrpsQ==}
3376
3376
-
3377
3162
'@shikijs/engine-javascript@3.12.2':
3378
3163
resolution: {integrity: sha512-Nm3/azSsaVS7hk6EwtHEnTythjQfwvrO5tKqMlaH9TwG1P+PNaR8M0EAKZ+GaH2DFwvcr4iSfTveyxMIvXEHMw==}
3379
3379
-
3380
3380
-
'@shikijs/engine-javascript@3.8.0':
3381
3381
-
resolution: {integrity: sha512-IBULFFpQ1N5Cg/C7jPCGnjIKz72CcRtD0BIbNhSuXPUOxLG0bF1URsP/uLfxQFQ9ORfunCQwL7UuSX1RSRBwUQ==}
3382
3164
3383
3165
'@shikijs/engine-oniguruma@3.12.2':
3384
3166
resolution: {integrity: sha512-hozwnFHsLvujK4/CPVHNo3Bcg2EsnG8krI/ZQ2FlBlCRpPZW4XAEQmEwqegJsypsTAN9ehu2tEYe30lYKSZW/w==}
3385
3167
3386
3386
-
'@shikijs/engine-oniguruma@3.8.0':
3387
3387
-
resolution: {integrity: sha512-Tx7kR0oFzqa+rY7t80LjN8ZVtHO3a4+33EUnBVx2qYP3fGxoI9H0bvnln5ySelz9SIUTsS0/Qn+9dg5zcUMsUw==}
3388
3388
-
3389
3168
'@shikijs/langs@3.12.2':
3390
3169
resolution: {integrity: sha512-bVx5PfuZHDSHoBal+KzJZGheFuyH4qwwcwG/n+MsWno5cTlKmaNtTsGzJpHYQ8YPbB5BdEdKU1rga5/6JGY8ww==}
3391
3170
3392
3392
-
'@shikijs/langs@3.8.0':
3393
3393
-
resolution: {integrity: sha512-mfGYuUgjQ5GgXinB5spjGlBVhG2crKRpKkfADlp8r9k/XvZhtNXxyOToSnCEnF0QNiZnJjlt5MmU9PmhRdwAbg==}
3394
3394
-
3395
3171
'@shikijs/themes@3.12.2':
3396
3172
resolution: {integrity: sha512-fTR3QAgnwYpfGczpIbzPjlRnxyONJOerguQv1iwpyQZ9QXX4qy/XFQqXlf17XTsorxnHoJGbH/LXBvwtqDsF5A==}
3397
3173
3398
3398
-
'@shikijs/themes@3.8.0':
3399
3399
-
resolution: {integrity: sha512-yaZiLuyO23sXe16JFU76KyUMTZCJi4EMQKIrdQt7okoTzI4yAaJhVXT2Uy4k8yBIEFRiia5dtD7gC1t8m6y3oQ==}
3400
3400
-
3401
3174
'@shikijs/transformers@3.12.2':
3402
3175
resolution: {integrity: sha512-+z1aMq4N5RoNGY8i7qnTYmG2MBYzFmwkm/yOd6cjEI7OVzcldVvzQCfxU1YbIVgsyB0xHVc2jFe1JhgoXyUoSQ==}
3403
3176
3404
3177
'@shikijs/types@3.12.2':
3405
3178
resolution: {integrity: sha512-K5UIBzxCyv0YoxN3LMrKB9zuhp1bV+LgewxuVwHdl4Gz5oePoUFrr9EfgJlGlDeXCU1b/yhdnXeuRvAnz8HN8Q==}
3406
3406
-
3407
3407
-
'@shikijs/types@3.8.0':
3408
3408
-
resolution: {integrity: sha512-I/b/aNg0rP+kznVDo7s3UK8jMcqEGTtoPDdQ+JlQ2bcJIyu/e2iRvl42GLIDMK03/W1YOHOuhlhQ7aM+XbKUeg==}
3409
3179
3410
3180
'@shikijs/vscode-textmate@10.0.2':
3411
3181
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
···
3555
3325
'@types/node@20.19.0':
3556
3326
resolution: {integrity: sha512-hfrc+1tud1xcdVTABC2JiomZJEklMcXYNTVtZLAeqTVWD+qL5jkHKT+1lOtqDdGxt+mB53DTtiz673vfjU8D1Q==}
3557
3327
3558
3558
-
'@types/node@24.0.15':
3559
3559
-
resolution: {integrity: sha512-oaeTSbCef7U/z7rDeJA138xpG3NuKc64/rZ2qmUFkFJmnMsAPaluIifqyWd8hSSMxyP9oie3dLAqYPblag9KgA==}
3560
3560
-
3561
3328
'@types/node@24.3.1':
3562
3329
resolution: {integrity: sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==}
3563
3330
···
3687
3454
resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==}
3688
3455
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
3689
3456
3690
3690
-
'@typescript-eslint/types@8.39.0':
3691
3691
-
resolution: {integrity: sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==}
3692
3692
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
3693
3693
-
3694
3457
'@typescript-eslint/types@8.39.1':
3695
3458
resolution: {integrity: sha512-7sPDKQQp+S11laqTrhHqeAbsCfMkwJMrV7oTDvtDds4mEofJYir414bYKUEb8YPUm9QL3U+8f6L6YExSoAGdQw==}
3696
3459
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
···
3776
3539
resolution: {integrity: sha512-eL9P+WDX42B6ZkNGGSkMgOyR99xeuJ2Gkj0uarhag5kaRwvwHLn/CJptZ7/oZLLIn0uTH8TQ6MG8ErhK0ymewA==}
3777
3540
engines: {node: '>=14'}
3778
3541
3779
3779
-
'@unocss/core@66.3.3':
3780
3780
-
resolution: {integrity: sha512-6WFLd92TJelVQARtCGaF+EgEoHKIVe43gkGXVoWILu0HUDRWdhv+cpcyX0RTJV22Y976AxeneU7/zmhAh+CXNg==}
3781
3781
-
3782
3542
'@unocss/core@66.5.1':
3783
3543
resolution: {integrity: sha512-BUgN87sUIffco1d+1IuV4a1gKTI1YAFa7CTjxglLUAnopXPPJ+Q77G10zoBoFLzutiIOYLsesa3hzbQvDhosnA==}
3784
3784
-
3785
3785
-
'@unocss/extractor-arbitrary-variants@66.3.3':
3786
3786
-
resolution: {integrity: sha512-TXzjH6FcITQ8V2x7ETHgVOlAHf3ll/ysxL+W4fMROm8jP/o7jvsg36tRfOwU0sDGo/qoCPux82ix9e6/JW0oqQ==}
3787
3544
3788
3545
'@unocss/extractor-arbitrary-variants@66.5.1':
3789
3546
resolution: {integrity: sha512-SpI2uv6bWyPyY3Tv7CxsFnHBjSTlNRcPCnfvD8gSKbAt7R+RqV0nrdkv7wSW+Woc5TYl8PClLEFSBIvo0c1h9Q==}
···
3806
3563
'@unocss/preset-icons@66.5.1':
3807
3564
resolution: {integrity: sha512-vxlnPSzTaQZmLKcmVPhCWC6rpgpHCUSD7aFsn7jW3iZ/jTIwc4kgQjnOJZdL443LF5mxBqF15+Cm9hZRnvrWNw==}
3808
3565
3809
3809
-
'@unocss/preset-mini@66.3.3':
3810
3810
-
resolution: {integrity: sha512-pz8rgvHRYS/6fsZNtG7iArLzwANnLy5GkHY/lbuqkWhO2S2Nf7kpJCbR/uV/XeuFsLnYcZW3NLOmelfvZvJamA==}
3811
3811
-
3812
3566
'@unocss/preset-mini@66.5.1':
3813
3567
resolution: {integrity: sha512-kBEbA0kEXRtoHQ98o4b6f9sp1u5BanPzi+GMnWdmOWvbLAiLw1vcgXGPTX3sO+gzIMrwu0Famw6xiztWzAFjWQ==}
3814
3568
···
3823
3577
3824
3578
'@unocss/preset-web-fonts@66.5.1':
3825
3579
resolution: {integrity: sha512-XKrkoN7ncqJxRHDMxAqTCroBcqSPgryDUZIlLhhQ4mHilSp29AdYO1RgG6Ok04w9HNmqzo3d8A8v6Z5yGrGF0w==}
3826
3826
-
3827
3827
-
'@unocss/preset-wind3@66.3.3':
3828
3828
-
resolution: {integrity: sha512-iXmjvPqvmPTo4z7epQDqHxzlGRsbLJEgfETqTrRJeagvFG7Gs+ajS8cQhbf6wL01dSRHjvhVXi3MsIvqfHHXOw==}
3829
3580
3830
3581
'@unocss/preset-wind3@66.5.1':
3831
3582
resolution: {integrity: sha512-L1yMmKpwUWYUnScQq5jMTGvfMy/GBqVj40VS5afyOlzWnBeSkc/y4AxeW/khzGwqE/QaFcLWXiXwQVJIyxN02Q==}
···
3838
3589
3839
3590
'@unocss/reset@66.5.1':
3840
3591
resolution: {integrity: sha512-NXDjDUn3cjATkxr7bbPdVnKkUHzEq6wSC1IRpnO8ISAXCw6JGPjuk3WJVYxHhnAlszhDxdqxVBjWRZ+zzVmrZw==}
3841
3841
-
3842
3842
-
'@unocss/rule-utils@66.3.3':
3843
3843
-
resolution: {integrity: sha512-QKgVGV5nRRnK44/reUKFLAc5UGyl98vz3hrfk8JI8pVza58vmQWTdAB2rIpNJ5a5j+EkWfDOUlGQaOrIeYGLdg==}
3844
3844
-
engines: {node: '>=14'}
3845
3592
3846
3593
'@unocss/rule-utils@66.5.1':
3847
3594
resolution: {integrity: sha512-GuBKHrDv3bdq5N1HfOr1tD864vI1EIiovBVJSfg7x9ERA4jJSnyMpGk/hbLuDIXF25EnVdZ1lFhEpJgur9+9sw==}
···
4593
4340
browserify-zlib@0.1.4:
4594
4341
resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==}
4595
4342
4596
4596
-
browserslist@4.25.2:
4597
4597
-
resolution: {integrity: sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==}
4598
4598
-
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
4599
4599
-
hasBin: true
4600
4600
-
4601
4343
browserslist@4.25.4:
4602
4344
resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==}
4603
4345
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
···
4633
4375
peerDependencies:
4634
4376
esbuild: '>=0.18'
4635
4377
4636
4636
-
c12@3.1.0:
4637
4637
-
resolution: {integrity: sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==}
4638
4638
-
peerDependencies:
4639
4639
-
magicast: ^0.3.5
4640
4640
-
peerDependenciesMeta:
4641
4641
-
magicast:
4642
4642
-
optional: true
4643
4643
-
4644
4378
c12@3.2.0:
4645
4379
resolution: {integrity: sha512-ixkEtbYafL56E6HiFuonMm1ZjoKtIo7TH68/uiEq4DAwv9NcUX2nJ95F8TrbMeNjqIkZpruo3ojXQJ+MGG5gcQ==}
4646
4380
peerDependencies:
···
4692
4426
caniuse-api@3.0.0:
4693
4427
resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
4694
4428
4695
4695
-
caniuse-lite@1.0.30001735:
4696
4696
-
resolution: {integrity: sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==}
4697
4697
-
4698
4429
caniuse-lite@1.0.30001741:
4699
4430
resolution: {integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==}
4700
4431
···
4730
4461
chalk@4.1.2:
4731
4462
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
4732
4463
engines: {node: '>=10'}
4733
4733
-
4734
4734
-
chalk@5.4.1:
4735
4735
-
resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==}
4736
4736
-
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
4737
4464
4738
4465
chalk@5.6.0:
4739
4466
resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==}
···
5007
4734
copy-anything@3.0.5:
5008
4735
resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==}
5009
4736
engines: {node: '>=12.13'}
5010
5010
-
5011
5011
-
core-js-compat@3.45.0:
5012
5012
-
resolution: {integrity: sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==}
5013
4737
5014
4738
core-js-compat@3.45.1:
5015
4739
resolution: {integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==}
···
5469
5193
engines: {node: '>=0.10.0'}
5470
5194
hasBin: true
5471
5195
5472
5472
-
electron-to-chromium@1.5.203:
5473
5473
-
resolution: {integrity: sha512-uz4i0vLhfm6dLZWbz/iH88KNDV+ivj5+2SA+utpgjKaj9Q0iDLuwk6Idhe9BTxciHudyx6IvTvijhkPvFGUQ0g==}
5474
5474
-
5475
5196
electron-to-chromium@1.5.214:
5476
5197
resolution: {integrity: sha512-TpvUNdha+X3ybfU78NoQatKvQEm1oq3lf2QbnmCEdw+Bd9RuIAY+hJTvq1avzHM0f7EJfnH3vbCnbzKzisc/9Q==}
5477
5198
···
5584
5305
esbuild@0.21.5:
5585
5306
resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
5586
5307
engines: {node: '>=12'}
5587
5587
-
hasBin: true
5588
5588
-
5589
5589
-
esbuild@0.25.8:
5590
5590
-
resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==}
5591
5591
-
engines: {node: '>=18'}
5592
5308
hasBin: true
5593
5309
5594
5310
esbuild@0.25.9:
···
5890
5606
5891
5607
fastq@1.19.1:
5892
5608
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
5893
5893
-
5894
5894
-
fdir@6.4.6:
5895
5895
-
resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
5896
5896
-
peerDependencies:
5897
5897
-
picomatch: ^3 || ^4
5898
5898
-
peerDependenciesMeta:
5899
5899
-
picomatch:
5900
5900
-
optional: true
5901
5609
5902
5610
fdir@6.5.0:
5903
5611
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
···
6950
6658
resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
6951
6659
engines: {node: '>= 10.13.0'}
6952
6660
6953
6953
-
jiti@2.4.2:
6954
6954
-
resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
6955
6955
-
hasBin: true
6956
6956
-
6957
6661
jiti@2.5.1:
6958
6662
resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==}
6959
6663
hasBin: true
···
6980
6684
js-yaml@4.1.0:
6981
6685
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
6982
6686
hasBin: true
6983
6983
-
6984
6984
-
jsdoc-type-pratt-parser@4.1.0:
6985
6985
-
resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==}
6986
6986
-
engines: {node: '>=12.0.0'}
6987
6687
6988
6688
jsdoc-type-pratt-parser@4.8.0:
6989
6689
resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==}
···
7174
6874
loader-runner@4.3.0:
7175
6875
resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
7176
6876
engines: {node: '>=6.11.5'}
7177
7177
-
7178
7178
-
local-pkg@1.1.1:
7179
7179
-
resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==}
7180
7180
-
engines: {node: '>=14'}
7181
6877
7182
6878
local-pkg@1.1.2:
7183
6879
resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==}
···
7734
7430
resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==}
7735
7431
engines: {node: '>=18'}
7736
7432
7737
7737
-
node-fetch-native@1.6.6:
7738
7738
-
resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==}
7739
7739
-
7740
7433
node-fetch-native@1.6.7:
7741
7434
resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
7742
7435
···
7764
7457
node-html-parser@6.1.13:
7765
7458
resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==}
7766
7459
7767
7767
-
node-mock-http@1.0.1:
7768
7768
-
resolution: {integrity: sha512-0gJJgENizp4ghds/Ywu2FCmcRsgBTmRQzYPZm61wy+Em2sBarSka0OhQS5huLBg6od1zkNpnWMCZloQDFVvOMQ==}
7769
7769
-
7770
7770
-
node-mock-http@1.0.2:
7771
7771
-
resolution: {integrity: sha512-zWaamgDUdo9SSLw47we78+zYw/bDr5gH8pH7oRRs8V3KmBtu8GLgGIbV2p/gRPd3LWpEOpjQj7X1FOU3VFMJ8g==}
7772
7772
-
7773
7460
node-mock-http@1.0.3:
7774
7461
resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==}
7775
7775
-
7776
7776
-
node-releases@2.0.19:
7777
7777
-
resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
7778
7462
7779
7463
node-releases@2.0.20:
7780
7464
resolution: {integrity: sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==}
···
7858
7542
7859
7543
nwsapi@2.2.22:
7860
7544
resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==}
7861
7861
-
7862
7862
-
nypm@0.6.0:
7863
7863
-
resolution: {integrity: sha512-mn8wBFV9G9+UFHIrq+pZ2r2zL4aPau/by3kJb3cM7+5tQHMt6HGQB8FDIeKFYp8o0D2pnH6nVsO88N4AmUxIWg==}
7864
7864
-
engines: {node: ^14.16.0 || >=16.10.0}
7865
7865
-
hasBin: true
7866
7545
7867
7546
nypm@0.6.1:
7868
7547
resolution: {integrity: sha512-hlacBiRiv1k9hZFiphPUkfSQ/ZfQzZDzC+8z0wL3lvDAOUu/2NnChkKuMoMjNur/9OpKuz2QsIeiPVN0xM5Q0w==}
···
8230
7909
8231
7910
pkg-types@1.3.1:
8232
7911
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
8233
8233
-
8234
8234
-
pkg-types@2.2.0:
8235
8235
-
resolution: {integrity: sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==}
8236
7912
8237
7913
pkg-types@2.3.0:
8238
7914
resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==}
···
8558
8234
resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
8559
8235
engines: {node: '>=0.6'}
8560
8236
8561
8561
-
quansync@0.2.10:
8562
8562
-
resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==}
8563
8563
-
8564
8237
quansync@0.2.11:
8565
8238
resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==}
8566
8239
···
9106
8779
shiki@3.12.2:
9107
8780
resolution: {integrity: sha512-uIrKI+f9IPz1zDT+GMz+0RjzKJiijVr6WDWm9Pe3NNY6QigKCfifCEv9v9R2mDASKKjzjQ2QpFLcxaR3iHSnMA==}
9108
8781
9109
9109
-
shiki@3.8.0:
9110
9110
-
resolution: {integrity: sha512-yPqK0y68t20aakv+3aMTpUMJZd6UHaBY2/SBUDowh9M70gVUwqT0bf7Kz5CWG0AXfHtFvXCHhBBHVAzdp0ILoQ==}
9111
9111
-
9112
8782
side-channel-list@1.0.0:
9113
8783
resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
9114
8784
engines: {node: '>= 0.4'}
···
9153
8823
9154
8824
simple-wcswidth@1.1.2:
9155
8825
resolution: {integrity: sha512-j7piyCjAeTDSjzTSQ7DokZtMNwNlEAyxqSZeCS+CXH7fJ4jx3FuJ/mTW3mE+6JLs4VJBbcll0Kjn+KXI5t21Iw==}
9156
9156
-
9157
9157
-
sirv@3.0.1:
9158
9158
-
resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==}
9159
9159
-
engines: {node: '>=18'}
9160
8826
9161
8827
sirv@3.0.2:
9162
8828
resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==}
···
9454
9120
postcss-html: ^1.0.0
9455
9121
stylelint: '>=14.0.0'
9456
9122
9457
9457
-
stylelint-config-recommended@16.0.0:
9458
9458
-
resolution: {integrity: sha512-4RSmPjQegF34wNcK1e1O3Uz91HN8P1aFdFzio90wNK9mjgAI19u5vsU868cVZboKzCaa5XbpvtTzAAGQAxpcXA==}
9459
9459
-
engines: {node: '>=18.12.0'}
9460
9460
-
peerDependencies:
9461
9461
-
stylelint: ^16.16.0
9462
9462
-
9463
9123
stylelint-config-recommended@17.0.0:
9464
9124
resolution: {integrity: sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA==}
9465
9125
engines: {node: '>=18.12.0'}
···
9831
9491
undici-types@7.10.0:
9832
9492
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
9833
9493
9834
9834
-
undici-types@7.8.0:
9835
9835
-
resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==}
9836
9836
-
9837
9494
undici@5.29.0:
9838
9495
resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==}
9839
9496
engines: {node: '>=14.0'}
···
9981
9638
unrs-resolver@1.11.1:
9982
9639
resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
9983
9640
9984
9984
-
unstorage@1.16.1:
9985
9985
-
resolution: {integrity: sha512-gdpZ3guLDhz+zWIlYP1UwQ259tG5T5vYRzDaHMkQ1bBY1SQPutvZnrRjTFaWUUpseErJIgAZS51h6NOcZVZiqQ==}
9986
9986
-
peerDependencies:
9987
9987
-
'@azure/app-configuration': ^1.8.0
9988
9988
-
'@azure/cosmos': ^4.2.0
9989
9989
-
'@azure/data-tables': ^13.3.0
9990
9990
-
'@azure/identity': ^4.6.0
9991
9991
-
'@azure/keyvault-secrets': ^4.9.0
9992
9992
-
'@azure/storage-blob': ^12.26.0
9993
9993
-
'@capacitor/preferences': ^6.0.3 || ^7.0.0
9994
9994
-
'@deno/kv': '>=0.9.0'
9995
9995
-
'@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0
9996
9996
-
'@planetscale/database': ^1.19.0
9997
9997
-
'@upstash/redis': ^1.34.3
9998
9998
-
'@vercel/blob': '>=0.27.1'
9999
9999
-
'@vercel/kv': ^1.0.1
10000
10000
-
aws4fetch: ^1.0.20
10001
10001
-
db0: '>=0.2.1'
10002
10002
-
idb-keyval: ^6.2.1
10003
10003
-
ioredis: ^5.4.2
10004
10004
-
uploadthing: ^7.4.4
10005
10005
-
peerDependenciesMeta:
10006
10006
-
'@azure/app-configuration':
10007
10007
-
optional: true
10008
10008
-
'@azure/cosmos':
10009
10009
-
optional: true
10010
10010
-
'@azure/data-tables':
10011
10011
-
optional: true
10012
10012
-
'@azure/identity':
10013
10013
-
optional: true
10014
10014
-
'@azure/keyvault-secrets':
10015
10015
-
optional: true
10016
10016
-
'@azure/storage-blob':
10017
10017
-
optional: true
10018
10018
-
'@capacitor/preferences':
10019
10019
-
optional: true
10020
10020
-
'@deno/kv':
10021
10021
-
optional: true
10022
10022
-
'@netlify/blobs':
10023
10023
-
optional: true
10024
10024
-
'@planetscale/database':
10025
10025
-
optional: true
10026
10026
-
'@upstash/redis':
10027
10027
-
optional: true
10028
10028
-
'@vercel/blob':
10029
10029
-
optional: true
10030
10030
-
'@vercel/kv':
10031
10031
-
optional: true
10032
10032
-
aws4fetch:
10033
10033
-
optional: true
10034
10034
-
db0:
10035
10035
-
optional: true
10036
10036
-
idb-keyval:
10037
10037
-
optional: true
10038
10038
-
ioredis:
10039
10039
-
optional: true
10040
10040
-
uploadthing:
10041
10041
-
optional: true
10042
10042
-
10043
9641
unstorage@1.17.1:
10044
9642
resolution: {integrity: sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==}
10045
9643
peerDependencies:
···
10112
9710
10113
9711
unwasm@0.3.11:
10114
9712
resolution: {integrity: sha512-Vhp5gb1tusSQw5of/g3Q697srYgMXvwMgXMjcG4ZNga02fDX9coxJ9fAb0Ci38hM2Hv/U1FXRPGgjP2BYqhNoQ==}
10115
10115
-
10116
10116
-
unwasm@0.3.9:
10117
10117
-
resolution: {integrity: sha512-LDxTx/2DkFURUd+BU1vUsF/moj0JsoTvl+2tcg2AUOiEzVturhGGx17/IMgGvKUYdZwr33EJHtChCJuhu9Ouvg==}
10118
9713
10119
9714
update-browserslist-db@1.1.3:
10120
9715
resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
···
10300
9895
vite:
10301
9896
optional: true
10302
9897
10303
10303
-
vite@7.0.5:
10304
10304
-
resolution: {integrity: sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==}
10305
10305
-
engines: {node: ^20.19.0 || >=22.12.0}
10306
10306
-
hasBin: true
10307
10307
-
peerDependencies:
10308
10308
-
'@types/node': ^20.19.0 || >=22.12.0
10309
10309
-
jiti: '>=1.21.0'
10310
10310
-
less: ^4.0.0
10311
10311
-
lightningcss: ^1.21.0
10312
10312
-
sass: ^1.70.0
10313
10313
-
sass-embedded: ^1.70.0
10314
10314
-
stylus: '>=0.54.8'
10315
10315
-
sugarss: ^5.0.0
10316
10316
-
terser: ^5.16.0
10317
10317
-
tsx: ^4.8.1
10318
10318
-
yaml: ^2.4.2
10319
10319
-
peerDependenciesMeta:
10320
10320
-
'@types/node':
10321
10321
-
optional: true
10322
10322
-
jiti:
10323
10323
-
optional: true
10324
10324
-
less:
10325
10325
-
optional: true
10326
10326
-
lightningcss:
10327
10327
-
optional: true
10328
10328
-
sass:
10329
10329
-
optional: true
10330
10330
-
sass-embedded:
10331
10331
-
optional: true
10332
10332
-
stylus:
10333
10333
-
optional: true
10334
10334
-
sugarss:
10335
10335
-
optional: true
10336
10336
-
terser:
10337
10337
-
optional: true
10338
10338
-
tsx:
10339
10339
-
optional: true
10340
10340
-
yaml:
10341
10341
-
optional: true
10342
10342
-
10343
9898
vite@7.1.4:
10344
9899
resolution: {integrity: sha512-X5QFK4SGynAeeIt+A7ZWnApdUyHYm+pzv/8/A57LqSGcI88U6R6ipOs3uCesdc6yl7nl+zNO0t8LmqAdXcQihw==}
10345
9900
engines: {node: ^20.19.0 || >=22.12.0}
···
10673
10228
engines: {node: '>= 0.10.0'}
10674
10229
hasBin: true
10675
10230
10676
10676
-
xstate@5.20.2:
10677
10677
-
resolution: {integrity: sha512-GZmLmc+WPKfFRxuTDAxCg0cUhS/ZnWaRD86DO8MKizeK4a050jd5k7UNnIQ2jJDWRig2/r0tmVXeezUNIhoz5Q==}
10678
10678
-
10679
10231
xstate@5.21.0:
10680
10232
resolution: {integrity: sha512-y4wmqxjyAa0tgz4k3m/MgTF1kDOahE5+xLfWt5eh1sk+43DatLhKlI8lQDJZpvihZavjbD3TUgy2PRMphhhqgQ==}
10681
10233
···
10925
10477
js-tokens: 4.0.0
10926
10478
picocolors: 1.1.1
10927
10479
10928
10928
-
'@babel/compat-data@7.28.0': {}
10929
10929
-
10930
10480
'@babel/compat-data@7.28.4': {}
10931
10481
10932
10482
'@babel/core@7.28.4':
···
10963
10513
10964
10514
'@babel/helper-compilation-targets@7.27.2':
10965
10515
dependencies:
10966
10966
-
'@babel/compat-data': 7.28.0
10516
10516
+
'@babel/compat-data': 7.28.4
10967
10517
'@babel/helper-validator-option': 7.27.1
10968
10518
browserslist: 4.25.4
10969
10519
lru-cache: 5.1.1
···
11078
10628
'@babel/parser@7.27.7':
11079
10629
dependencies:
11080
10630
'@babel/types': 7.28.4
11081
11081
-
11082
11082
-
'@babel/parser@7.28.3':
11083
11083
-
dependencies:
11084
11084
-
'@babel/types': 7.28.2
11085
10631
11086
10632
'@babel/parser@7.28.4':
11087
10633
dependencies:
···
11655
11201
'@babel/template@7.27.2':
11656
11202
dependencies:
11657
11203
'@babel/code-frame': 7.27.1
11658
11658
-
'@babel/parser': 7.27.7
11204
11204
+
'@babel/parser': 7.28.4
11659
11205
'@babel/types': 7.28.4
11660
11206
11661
11207
'@babel/traverse@7.27.7':
11662
11208
dependencies:
11663
11209
'@babel/code-frame': 7.27.1
11664
11210
'@babel/generator': 7.28.3
11665
11665
-
'@babel/parser': 7.27.7
11211
11211
+
'@babel/parser': 7.28.4
11666
11212
'@babel/template': 7.27.2
11667
11213
'@babel/types': 7.28.4
11668
11214
debug: 4.4.1(supports-color@8.1.1)
···
11682
11228
transitivePeerDependencies:
11683
11229
- supports-color
11684
11230
11685
11685
-
'@babel/types@7.28.2':
11686
11686
-
dependencies:
11687
11687
-
'@babel/helper-string-parser': 7.27.1
11688
11688
-
'@babel/helper-validator-identifier': 7.27.1
11689
11689
-
11690
11231
'@babel/types@7.28.4':
11691
11232
dependencies:
11692
11233
'@babel/helper-string-parser': 7.27.1
···
11836
11377
'@commitlint/format@19.8.1':
11837
11378
dependencies:
11838
11379
'@commitlint/types': 19.8.1
11839
11839
-
chalk: 5.4.1
11380
11380
+
chalk: 5.6.0
11840
11381
11841
11382
'@commitlint/is-ignored@19.8.1':
11842
11383
dependencies:
···
11856
11397
'@commitlint/execute-rule': 19.8.1
11857
11398
'@commitlint/resolve-extends': 19.8.1
11858
11399
'@commitlint/types': 19.8.1
11859
11859
-
chalk: 5.4.1
11400
11400
+
chalk: 5.6.0
11860
11401
cosmiconfig: 9.0.0(typescript@5.9.2)
11861
11402
cosmiconfig-typescript-loader: 6.1.0(@types/node@24.3.1)(cosmiconfig@9.0.0(typescript@5.9.2))(typescript@5.9.2)
11862
11403
lodash.isplainobject: 4.0.6
···
11907
11448
'@commitlint/types@19.8.1':
11908
11449
dependencies:
11909
11450
'@types/conventional-commits-parser': 5.0.1
11910
11910
-
chalk: 5.4.1
11451
11451
+
chalk: 5.6.0
11911
11452
11912
11453
'@cspotcode/source-map-support@0.8.1':
11913
11454
dependencies:
···
12019
11560
'@esbuild/aix-ppc64@0.21.5':
12020
11561
optional: true
12021
11562
12022
12022
-
'@esbuild/aix-ppc64@0.25.8':
12023
12023
-
optional: true
12024
12024
-
12025
11563
'@esbuild/aix-ppc64@0.25.9':
12026
11564
optional: true
12027
11565
12028
11566
'@esbuild/android-arm64@0.21.5':
12029
11567
optional: true
12030
11568
12031
12031
-
'@esbuild/android-arm64@0.25.8':
12032
12032
-
optional: true
12033
12033
-
12034
11569
'@esbuild/android-arm64@0.25.9':
12035
11570
optional: true
12036
11571
12037
11572
'@esbuild/android-arm@0.21.5':
12038
12038
-
optional: true
12039
12039
-
12040
12040
-
'@esbuild/android-arm@0.25.8':
12041
11573
optional: true
12042
11574
12043
11575
'@esbuild/android-arm@0.25.9':
···
12046
11578
'@esbuild/android-x64@0.21.5':
12047
11579
optional: true
12048
11580
12049
12049
-
'@esbuild/android-x64@0.25.8':
12050
12050
-
optional: true
12051
12051
-
12052
11581
'@esbuild/android-x64@0.25.9':
12053
11582
optional: true
12054
11583
12055
11584
'@esbuild/darwin-arm64@0.21.5':
12056
11585
optional: true
12057
11586
12058
12058
-
'@esbuild/darwin-arm64@0.25.8':
12059
12059
-
optional: true
12060
12060
-
12061
11587
'@esbuild/darwin-arm64@0.25.9':
12062
11588
optional: true
12063
11589
12064
11590
'@esbuild/darwin-x64@0.21.5':
12065
11591
optional: true
12066
11592
12067
12067
-
'@esbuild/darwin-x64@0.25.8':
12068
12068
-
optional: true
12069
12069
-
12070
11593
'@esbuild/darwin-x64@0.25.9':
12071
11594
optional: true
12072
11595
12073
11596
'@esbuild/freebsd-arm64@0.21.5':
12074
12074
-
optional: true
12075
12075
-
12076
12076
-
'@esbuild/freebsd-arm64@0.25.8':
12077
11597
optional: true
12078
11598
12079
11599
'@esbuild/freebsd-arm64@0.25.9':
12080
11600
optional: true
12081
11601
12082
11602
'@esbuild/freebsd-x64@0.21.5':
12083
12083
-
optional: true
12084
12084
-
12085
12085
-
'@esbuild/freebsd-x64@0.25.8':
12086
11603
optional: true
12087
11604
12088
11605
'@esbuild/freebsd-x64@0.25.9':
···
12091
11608
'@esbuild/linux-arm64@0.21.5':
12092
11609
optional: true
12093
11610
12094
12094
-
'@esbuild/linux-arm64@0.25.8':
12095
12095
-
optional: true
12096
12096
-
12097
11611
'@esbuild/linux-arm64@0.25.9':
12098
11612
optional: true
12099
11613
12100
11614
'@esbuild/linux-arm@0.21.5':
12101
11615
optional: true
12102
11616
12103
12103
-
'@esbuild/linux-arm@0.25.8':
12104
12104
-
optional: true
12105
12105
-
12106
11617
'@esbuild/linux-arm@0.25.9':
12107
11618
optional: true
12108
11619
12109
11620
'@esbuild/linux-ia32@0.21.5':
12110
11621
optional: true
12111
11622
12112
12112
-
'@esbuild/linux-ia32@0.25.8':
12113
12113
-
optional: true
12114
12114
-
12115
11623
'@esbuild/linux-ia32@0.25.9':
12116
11624
optional: true
12117
11625
12118
11626
'@esbuild/linux-loong64@0.21.5':
12119
12119
-
optional: true
12120
12120
-
12121
12121
-
'@esbuild/linux-loong64@0.25.8':
12122
11627
optional: true
12123
11628
12124
11629
'@esbuild/linux-loong64@0.25.9':
···
12127
11632
'@esbuild/linux-mips64el@0.21.5':
12128
11633
optional: true
12129
11634
12130
12130
-
'@esbuild/linux-mips64el@0.25.8':
12131
12131
-
optional: true
12132
12132
-
12133
11635
'@esbuild/linux-mips64el@0.25.9':
12134
11636
optional: true
12135
11637
12136
11638
'@esbuild/linux-ppc64@0.21.5':
12137
11639
optional: true
12138
11640
12139
12139
-
'@esbuild/linux-ppc64@0.25.8':
12140
12140
-
optional: true
12141
12141
-
12142
11641
'@esbuild/linux-ppc64@0.25.9':
12143
11642
optional: true
12144
11643
12145
11644
'@esbuild/linux-riscv64@0.21.5':
12146
11645
optional: true
12147
11646
12148
12148
-
'@esbuild/linux-riscv64@0.25.8':
12149
12149
-
optional: true
12150
12150
-
12151
11647
'@esbuild/linux-riscv64@0.25.9':
12152
11648
optional: true
12153
11649
12154
11650
'@esbuild/linux-s390x@0.21.5':
12155
12155
-
optional: true
12156
12156
-
12157
12157
-
'@esbuild/linux-s390x@0.25.8':
12158
11651
optional: true
12159
11652
12160
11653
'@esbuild/linux-s390x@0.25.9':
···
12163
11656
'@esbuild/linux-x64@0.21.5':
12164
11657
optional: true
12165
11658
12166
12166
-
'@esbuild/linux-x64@0.25.8':
12167
12167
-
optional: true
12168
12168
-
12169
11659
'@esbuild/linux-x64@0.25.9':
12170
12170
-
optional: true
12171
12171
-
12172
12172
-
'@esbuild/netbsd-arm64@0.25.8':
12173
11660
optional: true
12174
11661
12175
11662
'@esbuild/netbsd-arm64@0.25.9':
···
12178
11665
'@esbuild/netbsd-x64@0.21.5':
12179
11666
optional: true
12180
11667
12181
12181
-
'@esbuild/netbsd-x64@0.25.8':
12182
12182
-
optional: true
12183
12183
-
12184
11668
'@esbuild/netbsd-x64@0.25.9':
12185
11669
optional: true
12186
11670
12187
12187
-
'@esbuild/openbsd-arm64@0.25.8':
12188
12188
-
optional: true
12189
12189
-
12190
11671
'@esbuild/openbsd-arm64@0.25.9':
12191
11672
optional: true
12192
11673
12193
11674
'@esbuild/openbsd-x64@0.21.5':
12194
12194
-
optional: true
12195
12195
-
12196
12196
-
'@esbuild/openbsd-x64@0.25.8':
12197
11675
optional: true
12198
11676
12199
11677
'@esbuild/openbsd-x64@0.25.9':
12200
11678
optional: true
12201
11679
12202
12202
-
'@esbuild/openharmony-arm64@0.25.8':
12203
12203
-
optional: true
12204
12204
-
12205
11680
'@esbuild/openharmony-arm64@0.25.9':
12206
11681
optional: true
12207
11682
12208
11683
'@esbuild/sunos-x64@0.21.5':
12209
11684
optional: true
12210
11685
12211
12211
-
'@esbuild/sunos-x64@0.25.8':
12212
12212
-
optional: true
12213
12213
-
12214
11686
'@esbuild/sunos-x64@0.25.9':
12215
11687
optional: true
12216
11688
12217
11689
'@esbuild/win32-arm64@0.21.5':
12218
11690
optional: true
12219
11691
12220
12220
-
'@esbuild/win32-arm64@0.25.8':
12221
12221
-
optional: true
12222
12222
-
12223
11692
'@esbuild/win32-arm64@0.25.9':
12224
11693
optional: true
12225
11694
12226
11695
'@esbuild/win32-ia32@0.21.5':
12227
11696
optional: true
12228
11697
12229
12229
-
'@esbuild/win32-ia32@0.25.8':
12230
12230
-
optional: true
12231
12231
-
12232
11698
'@esbuild/win32-ia32@0.25.9':
12233
11699
optional: true
12234
11700
12235
11701
'@esbuild/win32-x64@0.21.5':
12236
11702
optional: true
12237
11703
12238
12238
-
'@esbuild/win32-x64@0.25.8':
12239
12239
-
optional: true
12240
12240
-
12241
11704
'@esbuild/win32-x64@0.25.9':
12242
11705
optional: true
12243
12243
-
12244
12244
-
'@eslint-community/eslint-utils@4.7.0(eslint@9.35.0(jiti@2.5.1))':
12245
12245
-
dependencies:
12246
12246
-
eslint: 9.35.0(jiti@2.5.1)
12247
12247
-
eslint-visitor-keys: 3.4.3
12248
11706
12249
11707
'@eslint-community/eslint-utils@4.8.0(eslint@9.35.0(jiti@2.5.1))':
12250
11708
dependencies:
···
12307
11765
strip-json-comments: 3.1.1
12308
11766
transitivePeerDependencies:
12309
11767
- supports-color
12310
12310
-
12311
12311
-
'@eslint/js@9.34.0': {}
12312
11768
12313
11769
'@eslint/js@9.35.0': {}
12314
11770
···
12742
12198
dependencies:
12743
12199
'@nuxt/kit': 4.1.1(magicast@0.3.5)
12744
12200
'@nuxtjs/mdc': 0.17.3(magicast@0.3.5)
12745
12745
-
'@shikijs/langs': 3.8.0
12201
12201
+
'@shikijs/langs': 3.12.2
12746
12202
'@sqlite.org/sqlite-wasm': 3.50.1-build1
12747
12203
'@webcontainer/env': 1.1.1
12748
12748
-
c12: 3.1.0(magicast@0.3.5)
12204
12204
+
c12: 3.2.0(magicast@0.3.5)
12749
12205
chokidar: 4.0.3
12750
12206
consola: 3.4.2
12751
12207
db0: 0.3.2(better-sqlite3@11.10.0)
12752
12208
defu: 6.1.4
12753
12209
destr: 2.0.5
12754
12210
git-url-parse: 16.1.0
12755
12755
-
jiti: 2.4.2
12211
12211
+
jiti: 2.5.1
12756
12212
json-schema-to-typescript: 15.0.4
12757
12213
knitwork: 1.2.0
12758
12214
listhen: 1.9.0
···
12767
12223
minimark: 0.2.0
12768
12224
minimatch: 10.0.3
12769
12225
nuxt-component-meta: 0.12.1(magicast@0.3.5)(vue-component-type-helpers@2.2.10)
12770
12770
-
nypm: 0.6.0
12226
12226
+
nypm: 0.6.1
12771
12227
ohash: 2.0.11
12772
12228
pathe: 2.0.3
12773
12773
-
pkg-types: 2.2.0
12229
12229
+
pkg-types: 2.3.0
12774
12230
remark-mdc: 3.6.0
12775
12231
scule: 1.3.0
12776
12776
-
shiki: 3.8.0
12232
12232
+
shiki: 3.12.2
12777
12233
slugify: 1.6.6
12778
12234
socket.io-client: 4.8.1
12779
12235
tar: 7.4.3
12780
12780
-
tinyglobby: 0.2.14
12236
12236
+
tinyglobby: 0.2.15
12781
12237
ufo: 1.6.1
12782
12238
unified: 11.0.5
12783
12239
unist-util-stringify-position: 4.0.0
···
12798
12254
12799
12255
'@nuxt/devalue@2.0.2': {}
12800
12256
12801
12801
-
'@nuxt/devtools-kit@2.6.2(magicast@0.3.5)(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))':
12802
12802
-
dependencies:
12803
12803
-
'@nuxt/kit': 4.1.1(magicast@0.3.5)
12804
12804
-
execa: 8.0.1
12805
12805
-
vite: 7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)
12806
12806
-
transitivePeerDependencies:
12807
12807
-
- magicast
12808
12808
-
12809
12257
'@nuxt/devtools-kit@2.6.3(magicast@0.3.5)(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))':
12810
12258
dependencies:
12811
12259
'@nuxt/kit': 4.1.1(magicast@0.3.5)
···
12854
12302
simple-git: 3.28.0
12855
12303
sirv: 3.0.2
12856
12304
structured-clone-es: 1.0.0
12857
12857
-
tinyglobby: 0.2.14
12305
12305
+
tinyglobby: 0.2.15
12858
12306
vite: 7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)
12859
12307
vite-plugin-inspect: 11.3.3(@nuxt/kit@4.1.1(magicast@0.3.5))(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))
12860
12308
vite-plugin-vue-tracer: 1.0.0(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))
···
12870
12318
dependencies:
12871
12319
'@antfu/install-pkg': 1.1.0
12872
12320
'@clack/prompts': 0.11.0
12873
12873
-
'@eslint/js': 9.34.0
12321
12321
+
'@eslint/js': 9.35.0
12874
12322
'@nuxt/eslint-plugin': 1.9.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)
12875
12323
'@stylistic/eslint-plugin': 5.2.3(eslint@9.35.0(jiti@2.5.1))
12876
12324
'@typescript-eslint/eslint-plugin': 8.39.1(@typescript-eslint/parser@8.39.1(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)
···
12887
12335
eslint-plugin-vue: 10.4.0(@typescript-eslint/parser@8.39.1(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.5.1)))
12888
12336
eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.35.0(jiti@2.5.1))
12889
12337
globals: 16.3.0
12890
12890
-
local-pkg: 1.1.1
12338
12338
+
local-pkg: 1.1.2
12891
12339
pathe: 2.0.3
12892
12340
vue-eslint-parser: 10.2.0(eslint@9.35.0(jiti@2.5.1))
12893
12341
transitivePeerDependencies:
···
12909
12357
'@nuxt/eslint@1.9.0(@typescript-eslint/utils@8.39.1(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(@vue/compiler-sfc@3.5.21)(eslint-import-resolver-node@0.3.9)(eslint@9.35.0(jiti@2.5.1))(magicast@0.3.5)(typescript@5.9.2)(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))':
12910
12358
dependencies:
12911
12359
'@eslint/config-inspector': 1.2.0(eslint@9.35.0(jiti@2.5.1))
12912
12912
-
'@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))
12360
12360
+
'@nuxt/devtools-kit': 2.6.3(magicast@0.3.5)(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))
12913
12361
'@nuxt/eslint-config': 1.9.0(@typescript-eslint/utils@8.39.1(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(@vue/compiler-sfc@3.5.21)(eslint-import-resolver-node@0.3.9)(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)
12914
12362
'@nuxt/eslint-plugin': 1.9.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)
12915
12363
'@nuxt/kit': 4.1.1(magicast@0.3.5)
···
12936
12384
12937
12385
'@nuxt/fonts@0.11.4(@netlify/blobs@9.1.2)(@vercel/blob@1.1.1)(db0@0.3.2(better-sqlite3@11.10.0))(ioredis@5.7.0)(magicast@0.3.5)(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))':
12938
12386
dependencies:
12939
12939
-
'@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))
12387
12387
+
'@nuxt/devtools-kit': 2.6.3(magicast@0.3.5)(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))
12940
12388
'@nuxt/kit': 4.1.1(magicast@0.3.5)
12941
12389
consola: 3.4.2
12942
12390
css-tree: 3.1.0
12943
12391
defu: 6.1.4
12944
12944
-
esbuild: 0.25.8
12392
12392
+
esbuild: 0.25.9
12945
12393
fontaine: 0.6.0
12946
12394
h3: 1.15.4
12947
12947
-
jiti: 2.4.2
12395
12395
+
jiti: 2.5.1
12948
12396
magic-regexp: 0.10.0
12949
12397
magic-string: 0.30.19
12950
12950
-
node-fetch-native: 1.6.6
12398
12398
+
node-fetch-native: 1.6.7
12951
12399
ohash: 2.0.11
12952
12400
pathe: 2.0.3
12953
12953
-
sirv: 3.0.1
12954
12954
-
tinyglobby: 0.2.14
12401
12401
+
sirv: 3.0.2
12402
12402
+
tinyglobby: 0.2.15
12955
12403
ufo: 1.6.1
12956
12404
unifont: 0.4.1
12957
12405
unplugin: 2.3.10
12958
12958
-
unstorage: 1.16.1(@netlify/blobs@9.1.2)(@vercel/blob@1.1.1)(db0@0.3.2(better-sqlite3@11.10.0))(ioredis@5.7.0)
12406
12406
+
unstorage: 1.17.1(@netlify/blobs@9.1.2)(@vercel/blob@1.1.1)(db0@0.3.2(better-sqlite3@11.10.0))(ioredis@5.7.0)
12959
12407
transitivePeerDependencies:
12960
12408
- '@azure/app-configuration'
12961
12409
- '@azure/cosmos'
···
12969
12417
- '@planetscale/database'
12970
12418
- '@upstash/redis'
12971
12419
- '@vercel/blob'
12420
12420
+
- '@vercel/functions'
12972
12421
- '@vercel/kv'
12973
12422
- aws4fetch
12974
12423
- db0
···
13115
12564
'@nuxt/test-utils@3.19.2(@playwright/test@1.55.0)(@vue/test-utils@2.4.6)(happy-dom@18.0.1)(jsdom@26.1.0)(magicast@0.3.5)(playwright-core@1.55.0)(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.1)(happy-dom@18.0.1)(jiti@2.5.1)(jsdom@26.1.0)(terser@5.44.0)(yaml@2.8.1))':
13116
12565
dependencies:
13117
12566
'@nuxt/kit': 4.1.1(magicast@0.3.5)
13118
13118
-
c12: 3.1.0(magicast@0.3.5)
12567
12567
+
c12: 3.2.0(magicast@0.3.5)
13119
12568
consola: 3.4.2
13120
12569
defu: 6.1.4
13121
12570
destr: 2.0.5
···
13123
12572
fake-indexeddb: 6.0.1
13124
12573
get-port-please: 3.2.0
13125
12574
h3: 1.15.4
13126
13126
-
local-pkg: 1.1.1
12575
12575
+
local-pkg: 1.1.2
13127
12576
magic-string: 0.30.19
13128
13128
-
node-fetch-native: 1.6.6
13129
13129
-
node-mock-http: 1.0.1
12577
12577
+
node-fetch-native: 1.6.7
12578
12578
+
node-mock-http: 1.0.3
13130
12579
ofetch: 1.4.1
13131
12580
pathe: 2.0.3
13132
12581
perfect-debounce: 1.0.0
···
13296
12745
'@sanity/client': 7.11.0(debug@4.4.1)
13297
12746
'@sanity/comlink': 3.0.9
13298
12747
'@sanity/core-loader': 1.8.15(@sanity/types@4.6.1(@types/react@18.3.24))(typescript@5.9.2)
13299
13299
-
'@sanity/presentation-comlink': 1.0.28(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))
13300
13300
-
'@sanity/preview-url-secret': 2.1.14(@sanity/client@7.11.0(debug@4.4.1))
12748
12748
+
'@sanity/presentation-comlink': 1.0.29(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))
12749
12749
+
'@sanity/preview-url-secret': 2.1.14(@sanity/client@7.11.0)
13301
12750
'@sanity/visual-editing': 3.0.2(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))(react-dom@18.3.1(react@18.3.1))(react-is@19.1.1)(react@18.3.1)(styled-components@6.1.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.9.2)
13302
12751
consola: 3.4.2
13303
12752
defu: 6.1.4
···
14014
13463
dependencies:
14015
13464
rxjs: 7.8.2
14016
13465
uuid: 11.1.0
14017
14017
-
xstate: 5.20.2
13466
13466
+
xstate: 5.21.0
14018
13467
14019
13468
'@sanity/core-loader@1.8.15(@sanity/types@4.6.1(@types/react@18.3.24))(typescript@5.9.2)':
14020
13469
dependencies:
14021
13470
'@sanity/client': 7.11.0(debug@4.4.1)
14022
13471
'@sanity/comlink': 3.0.9
14023
14023
-
'@sanity/presentation-comlink': 1.0.28(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))
14024
14024
-
'@sanity/visual-editing-csm': 2.0.22(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))(typescript@5.9.2)
13472
13472
+
'@sanity/presentation-comlink': 1.0.29(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))
13473
13473
+
'@sanity/visual-editing-csm': 2.0.23(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))(typescript@5.9.2)
14025
13474
transitivePeerDependencies:
14026
13475
- '@sanity/types'
14027
13476
- debug
···
14128
13577
react: 18.3.1
14129
13578
react-dom: 18.3.1(react@18.3.1)
14130
13579
14131
14131
-
'@sanity/insert-menu@2.0.1(@sanity/types@4.6.1(@types/react@18.3.24))(react-dom@18.3.1(react@18.3.1))(react-is@19.1.1)(react@18.3.1)(styled-components@6.1.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1))':
14132
14132
-
dependencies:
14133
14133
-
'@sanity/icons': 3.7.4(react@18.3.1)
14134
14134
-
'@sanity/types': 4.6.1(@types/react@18.3.24)(debug@4.4.1)
14135
14135
-
'@sanity/ui': 3.0.14(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react-is@19.1.1)(react@18.3.1)(styled-components@6.1.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
14136
14136
-
lodash: 4.17.21
14137
14137
-
react: 18.3.1
14138
14138
-
react-compiler-runtime: 19.1.0-rc.2(react@18.3.1)
14139
14139
-
react-dom: 18.3.1(react@18.3.1)
14140
14140
-
react-is: 19.1.1
14141
14141
-
transitivePeerDependencies:
14142
14142
-
- '@emotion/is-prop-valid'
14143
14143
-
- styled-components
14144
14144
-
14145
13580
'@sanity/insert-menu@2.0.2(@emotion/is-prop-valid@1.2.2)(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))(react-dom@18.3.1(react@18.3.1))(react-is@19.1.1)(react@18.3.1)(styled-components@6.1.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1))':
14146
13581
dependencies:
14147
13582
'@sanity/icons': 3.7.4(react@18.3.1)
···
14188
13623
- '@types/react'
14189
13624
- supports-color
14190
13625
14191
14191
-
'@sanity/mutate@0.11.0-canary.4(xstate@5.20.2)':
13626
13626
+
'@sanity/mutate@0.11.0-canary.4(xstate@5.21.0)':
14192
13627
dependencies:
14193
13628
'@sanity/client': 6.29.1
14194
13629
'@sanity/diff-match-patch': 3.2.0
···
14198
13633
mendoza: 3.0.8
14199
13634
rxjs: 7.8.2
14200
13635
optionalDependencies:
14201
14201
-
xstate: 5.20.2
13636
13636
+
xstate: 5.21.0
14202
13637
transitivePeerDependencies:
14203
13638
- debug
14204
13639
···
14237
13672
- '@types/react'
14238
13673
- supports-color
14239
13674
14240
14240
-
'@sanity/presentation-comlink@1.0.28(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))':
14241
14241
-
dependencies:
14242
14242
-
'@sanity/client': 7.11.0(debug@4.4.1)
14243
14243
-
'@sanity/comlink': 3.0.9
14244
14244
-
'@sanity/visual-editing-types': 1.1.5(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))
14245
14245
-
transitivePeerDependencies:
14246
14246
-
- '@sanity/types'
14247
14247
-
14248
14248
-
'@sanity/presentation-comlink@1.0.29(@sanity/client@7.11.0(debug@4.4.1))(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))':
13675
13675
+
'@sanity/presentation-comlink@1.0.29(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))':
14249
13676
dependencies:
14250
13677
'@sanity/client': 7.11.0(debug@4.4.1)
14251
13678
'@sanity/comlink': 3.0.9
14252
14252
-
'@sanity/visual-editing-types': 1.1.6(@sanity/client@7.11.0(debug@4.4.1))(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))
13679
13679
+
'@sanity/visual-editing-types': 1.1.6(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))
14253
13680
transitivePeerDependencies:
14254
13681
- '@sanity/types'
14255
13682
14256
14256
-
'@sanity/preview-url-secret@2.1.14(@sanity/client@7.11.0(debug@4.4.1))':
13683
13683
+
'@sanity/preview-url-secret@2.1.14(@sanity/client@7.11.0)':
14257
13684
dependencies:
14258
13685
'@sanity/client': 7.11.0(debug@4.4.1)
14259
13686
'@sanity/uuid': 3.0.2
···
14473
13900
- react-dom
14474
13901
- react-is
14475
13902
14476
14476
-
'@sanity/visual-editing-csm@2.0.22(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))(typescript@5.9.2)':
14477
14477
-
dependencies:
14478
14478
-
'@sanity/client': 7.11.0(debug@4.4.1)
14479
14479
-
'@sanity/visual-editing-types': 1.1.5(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))
14480
14480
-
valibot: 1.1.0(typescript@5.9.2)
14481
14481
-
transitivePeerDependencies:
14482
14482
-
- '@sanity/types'
14483
14483
-
- typescript
14484
14484
-
14485
13903
'@sanity/visual-editing-csm@2.0.23(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))(typescript@5.9.2)':
14486
13904
dependencies:
14487
13905
'@sanity/client': 7.11.0(debug@4.4.1)
14488
14488
-
'@sanity/visual-editing-types': 1.1.5(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))
13906
13906
+
'@sanity/visual-editing-types': 1.1.6(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))
14489
13907
valibot: 1.1.0(typescript@5.9.2)
14490
13908
transitivePeerDependencies:
14491
13909
- '@sanity/types'
14492
13910
- typescript
14493
13911
14494
14494
-
'@sanity/visual-editing-types@1.1.5(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))':
14495
14495
-
dependencies:
14496
14496
-
'@sanity/client': 7.11.0(debug@4.4.1)
14497
14497
-
optionalDependencies:
14498
14498
-
'@sanity/types': 4.6.1(@types/react@18.3.24)(debug@4.4.1)
14499
14499
-
14500
14500
-
'@sanity/visual-editing-types@1.1.6(@sanity/client@7.11.0(debug@4.4.1))(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))':
13912
13912
+
'@sanity/visual-editing-types@1.1.6(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))':
14501
13913
dependencies:
14502
13914
'@sanity/client': 7.11.0(debug@4.4.1)
14503
13915
optionalDependencies:
···
14507
13919
dependencies:
14508
13920
'@sanity/comlink': 3.0.9
14509
13921
'@sanity/icons': 3.7.4(react@18.3.1)
14510
14510
-
'@sanity/insert-menu': 2.0.1(@sanity/types@4.6.1(@types/react@18.3.24))(react-dom@18.3.1(react@18.3.1))(react-is@19.1.1)(react@18.3.1)(styled-components@6.1.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
14511
14511
-
'@sanity/mutate': 0.11.0-canary.4(xstate@5.20.2)
14512
14512
-
'@sanity/presentation-comlink': 1.0.28(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))
14513
14513
-
'@sanity/preview-url-secret': 2.1.14(@sanity/client@7.11.0(debug@4.4.1))
13922
13922
+
'@sanity/insert-menu': 2.0.2(@emotion/is-prop-valid@1.2.2)(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))(react-dom@18.3.1(react@18.3.1))(react-is@19.1.1)(react@18.3.1)(styled-components@6.1.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
13923
13923
+
'@sanity/mutate': 0.11.0-canary.4(xstate@5.21.0)
13924
13924
+
'@sanity/presentation-comlink': 1.0.29(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))
13925
13925
+
'@sanity/preview-url-secret': 2.1.14(@sanity/client@7.11.0)
14514
13926
'@sanity/ui': 3.0.14(@emotion/is-prop-valid@1.2.2)(react-dom@18.3.1(react@18.3.1))(react-is@19.1.1)(react@18.3.1)(styled-components@6.1.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
14515
13927
'@sanity/visual-editing-csm': 2.0.23(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24))(typescript@5.9.2)
14516
13928
'@vercel/stega': 0.1.2
···
14523
13935
scroll-into-view-if-needed: 3.1.0
14524
13936
styled-components: 6.1.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
14525
13937
use-effect-event: 2.0.3(react@18.3.1)
14526
14526
-
xstate: 5.20.2
13938
13938
+
xstate: 5.21.0
14527
13939
optionalDependencies:
14528
13940
'@sanity/client': 7.11.0(debug@4.4.1)
14529
13941
transitivePeerDependencies:
···
14578
13990
'@types/hast': 3.0.4
14579
13991
hast-util-to-html: 9.0.5
14580
13992
14581
14581
-
'@shikijs/core@3.8.0':
14582
14582
-
dependencies:
14583
14583
-
'@shikijs/types': 3.8.0
14584
14584
-
'@shikijs/vscode-textmate': 10.0.2
14585
14585
-
'@types/hast': 3.0.4
14586
14586
-
hast-util-to-html: 9.0.5
14587
14587
-
14588
13993
'@shikijs/engine-javascript@3.12.2':
14589
13994
dependencies:
14590
13995
'@shikijs/types': 3.12.2
14591
13996
'@shikijs/vscode-textmate': 10.0.2
14592
13997
oniguruma-to-es: 4.3.3
14593
13998
14594
14594
-
'@shikijs/engine-javascript@3.8.0':
14595
14595
-
dependencies:
14596
14596
-
'@shikijs/types': 3.8.0
14597
14597
-
'@shikijs/vscode-textmate': 10.0.2
14598
14598
-
oniguruma-to-es: 4.3.3
14599
14599
-
14600
13999
'@shikijs/engine-oniguruma@3.12.2':
14601
14000
dependencies:
14602
14001
'@shikijs/types': 3.12.2
14603
14002
'@shikijs/vscode-textmate': 10.0.2
14604
14003
14605
14605
-
'@shikijs/engine-oniguruma@3.8.0':
14606
14606
-
dependencies:
14607
14607
-
'@shikijs/types': 3.8.0
14608
14608
-
'@shikijs/vscode-textmate': 10.0.2
14609
14609
-
14610
14004
'@shikijs/langs@3.12.2':
14611
14005
dependencies:
14612
14006
'@shikijs/types': 3.12.2
14613
14007
14614
14614
-
'@shikijs/langs@3.8.0':
14615
14615
-
dependencies:
14616
14616
-
'@shikijs/types': 3.8.0
14617
14617
-
14618
14008
'@shikijs/themes@3.12.2':
14619
14009
dependencies:
14620
14010
'@shikijs/types': 3.12.2
14621
14621
-
14622
14622
-
'@shikijs/themes@3.8.0':
14623
14623
-
dependencies:
14624
14624
-
'@shikijs/types': 3.8.0
14625
14011
14626
14012
'@shikijs/transformers@3.12.2':
14627
14013
dependencies:
···
14629
14015
'@shikijs/types': 3.12.2
14630
14016
14631
14017
'@shikijs/types@3.12.2':
14632
14632
-
dependencies:
14633
14633
-
'@shikijs/vscode-textmate': 10.0.2
14634
14634
-
'@types/hast': 3.0.4
14635
14635
-
14636
14636
-
'@shikijs/types@3.8.0':
14637
14018
dependencies:
14638
14019
'@shikijs/vscode-textmate': 10.0.2
14639
14020
'@types/hast': 3.0.4
···
14666
14047
14667
14048
'@stylistic/eslint-plugin@5.2.3(eslint@9.35.0(jiti@2.5.1))':
14668
14049
dependencies:
14669
14669
-
'@eslint-community/eslint-utils': 4.7.0(eslint@9.35.0(jiti@2.5.1))
14670
14670
-
'@typescript-eslint/types': 8.39.0
14050
14050
+
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.5.1))
14051
14051
+
'@typescript-eslint/types': 8.39.1
14671
14052
eslint: 9.35.0(jiti@2.5.1)
14672
14053
eslint-visitor-keys: 4.2.1
14673
14054
espree: 10.4.0
···
14729
14110
14730
14111
'@types/conventional-commits-parser@5.0.1':
14731
14112
dependencies:
14732
14732
-
'@types/node': 24.0.15
14113
14113
+
'@types/node': 24.3.1
14733
14114
14734
14115
'@types/debug@4.1.12':
14735
14116
dependencies:
···
14786
14167
'@types/node@20.19.0':
14787
14168
dependencies:
14788
14169
undici-types: 6.21.0
14789
14789
-
14790
14790
-
'@types/node@24.0.15':
14791
14791
-
dependencies:
14792
14792
-
undici-types: 7.8.0
14793
14170
14794
14171
'@types/node@24.3.1':
14795
14172
dependencies:
···
14948
14325
- supports-color
14949
14326
14950
14327
'@typescript-eslint/types@8.32.1': {}
14951
14951
-
14952
14952
-
'@typescript-eslint/types@8.39.0': {}
14953
14328
14954
14329
'@typescript-eslint/types@8.39.1': {}
14955
14330
···
14985
14360
14986
14361
'@typescript-eslint/utils@8.32.1(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)':
14987
14362
dependencies:
14988
14988
-
'@eslint-community/eslint-utils': 4.7.0(eslint@9.35.0(jiti@2.5.1))
14363
14363
+
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.5.1))
14989
14364
'@typescript-eslint/scope-manager': 8.32.1
14990
14365
'@typescript-eslint/types': 8.32.1
14991
14366
'@typescript-eslint/typescript-estree': 8.32.1(typescript@5.9.2)
···
14996
14371
14997
14372
'@typescript-eslint/utils@8.39.1(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)':
14998
14373
dependencies:
14999
14999
-
'@eslint-community/eslint-utils': 4.7.0(eslint@9.35.0(jiti@2.5.1))
14374
14374
+
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.5.1))
15000
14375
'@typescript-eslint/scope-manager': 8.39.1
15001
14376
'@typescript-eslint/types': 8.39.1
15002
14377
'@typescript-eslint/typescript-estree': 8.39.1(typescript@5.9.2)
···
15079
14454
'@unocss/core': 66.5.1
15080
14455
unconfig: 7.3.3
15081
14456
15082
15082
-
'@unocss/core@66.3.3': {}
15083
15083
-
15084
14457
'@unocss/core@66.5.1': {}
15085
14458
15086
15086
-
'@unocss/extractor-arbitrary-variants@66.3.3':
15087
15087
-
dependencies:
15088
15088
-
'@unocss/core': 66.3.3
15089
15089
-
15090
14459
'@unocss/extractor-arbitrary-variants@66.5.1':
15091
14460
dependencies:
15092
14461
'@unocss/core': 66.5.1
···
15143
14512
ofetch: 1.4.1
15144
14513
transitivePeerDependencies:
15145
14514
- supports-color
15146
15146
-
15147
15147
-
'@unocss/preset-mini@66.3.3':
15148
15148
-
dependencies:
15149
15149
-
'@unocss/core': 66.3.3
15150
15150
-
'@unocss/extractor-arbitrary-variants': 66.3.3
15151
15151
-
'@unocss/rule-utils': 66.3.3
15152
14515
15153
14516
'@unocss/preset-mini@66.5.1':
15154
14517
dependencies:
···
15175
14538
'@unocss/core': 66.5.1
15176
14539
ofetch: 1.4.1
15177
14540
15178
15178
-
'@unocss/preset-wind3@66.3.3':
15179
15179
-
dependencies:
15180
15180
-
'@unocss/core': 66.3.3
15181
15181
-
'@unocss/preset-mini': 66.3.3
15182
15182
-
'@unocss/rule-utils': 66.3.3
15183
15183
-
15184
14541
'@unocss/preset-wind3@66.5.1':
15185
14542
dependencies:
15186
14543
'@unocss/core': 66.5.1
···
15200
14557
15201
14558
'@unocss/reset@66.5.1': {}
15202
14559
15203
15203
-
'@unocss/rule-utils@66.3.3':
15204
15204
-
dependencies:
15205
15205
-
'@unocss/core': 66.3.3
15206
15206
-
magic-string: 0.30.19
15207
15207
-
15208
14560
'@unocss/rule-utils@66.5.1':
15209
14561
dependencies:
15210
14562
'@unocss/core': 66.5.1
···
15387
14739
chai: 5.2.0
15388
14740
tinyrainbow: 2.0.0
15389
14741
15390
15390
-
'@vitest/mocker@3.2.4(vite@7.0.5(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))':
14742
14742
+
'@vitest/mocker@3.2.4(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))':
15391
14743
dependencies:
15392
14744
'@vitest/spy': 3.2.4
15393
14745
estree-walker: 3.0.3
15394
14746
magic-string: 0.30.19
15395
14747
optionalDependencies:
15396
15396
-
vite: 7.0.5(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)
14748
14748
+
vite: 7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)
15397
14749
15398
14750
'@vitest/pretty-format@3.2.4':
15399
14751
dependencies:
···
15499
14851
15500
14852
'@vue/compiler-sfc@3.5.21':
15501
14853
dependencies:
15502
15502
-
'@babel/parser': 7.28.3
14854
14854
+
'@babel/parser': 7.28.4
15503
14855
'@vue/compiler-core': 3.5.21
15504
14856
'@vue/compiler-dom': 3.5.21
15505
14857
'@vue/compiler-ssr': 3.5.21
···
16104
15456
dependencies:
16105
15457
pako: 0.2.9
16106
15458
16107
16107
-
browserslist@4.25.2:
16108
16108
-
dependencies:
16109
16109
-
caniuse-lite: 1.0.30001735
16110
16110
-
electron-to-chromium: 1.5.203
16111
16111
-
node-releases: 2.0.19
16112
16112
-
update-browserslist-db: 1.1.3(browserslist@4.25.2)
16113
16113
-
16114
15459
browserslist@4.25.4:
16115
15460
dependencies:
16116
15461
caniuse-lite: 1.0.30001741
···
16145
15490
esbuild: 0.25.9
16146
15491
load-tsconfig: 0.2.5
16147
15492
16148
16148
-
c12@3.1.0(magicast@0.3.5):
16149
16149
-
dependencies:
16150
16150
-
chokidar: 4.0.3
16151
16151
-
confbox: 0.2.2
16152
16152
-
defu: 6.1.4
16153
16153
-
dotenv: 16.6.1
16154
16154
-
exsolve: 1.0.7
16155
16155
-
giget: 2.0.0
16156
16156
-
jiti: 2.4.2
16157
16157
-
ohash: 2.0.11
16158
16158
-
pathe: 2.0.3
16159
16159
-
perfect-debounce: 1.0.0
16160
16160
-
pkg-types: 2.3.0
16161
16161
-
rc9: 2.1.2
16162
16162
-
optionalDependencies:
16163
16163
-
magicast: 0.3.5
16164
16164
-
16165
15493
c12@3.2.0(magicast@0.3.5):
16166
15494
dependencies:
16167
15495
chokidar: 4.0.3
···
16229
15557
caniuse-lite: 1.0.30001741
16230
15558
lodash.memoize: 4.1.2
16231
15559
lodash.uniq: 4.5.0
16232
16232
-
16233
16233
-
caniuse-lite@1.0.30001735: {}
16234
15560
16235
15561
caniuse-lite@1.0.30001741: {}
16236
15562
···
16281
15607
ansi-styles: 4.3.0
16282
15608
supports-color: 7.2.0
16283
15609
16284
16284
-
chalk@5.4.1: {}
16285
16285
-
16286
15610
chalk@5.6.0: {}
16287
15611
16288
15612
change-case@4.1.2:
···
16344
15668
16345
15669
chrome-launcher@1.2.0:
16346
15670
dependencies:
16347
16347
-
'@types/node': 24.0.15
15671
15671
+
'@types/node': 24.3.1
16348
15672
escape-string-regexp: 4.0.0
16349
15673
is-wsl: 2.2.0
16350
15674
lighthouse-logger: 2.0.1
···
16558
15882
dependencies:
16559
15883
is-what: 4.1.16
16560
15884
16561
16561
-
core-js-compat@3.45.0:
16562
16562
-
dependencies:
16563
16563
-
browserslist: 4.25.2
16564
16564
-
16565
15885
core-js-compat@3.45.1:
16566
15886
dependencies:
16567
15887
browserslist: 4.25.4
···
16980
16300
dependencies:
16981
16301
jake: 10.9.4
16982
16302
16983
16983
-
electron-to-chromium@1.5.203: {}
16984
16984
-
16985
16303
electron-to-chromium@1.5.214: {}
16986
16304
16987
16305
emoji-regex-xs@2.0.1: {}
···
17173
16491
'@esbuild/win32-ia32': 0.21.5
17174
16492
'@esbuild/win32-x64': 0.21.5
17175
16493
17176
17176
-
esbuild@0.25.8:
17177
17177
-
optionalDependencies:
17178
17178
-
'@esbuild/aix-ppc64': 0.25.8
17179
17179
-
'@esbuild/android-arm': 0.25.8
17180
17180
-
'@esbuild/android-arm64': 0.25.8
17181
17181
-
'@esbuild/android-x64': 0.25.8
17182
17182
-
'@esbuild/darwin-arm64': 0.25.8
17183
17183
-
'@esbuild/darwin-x64': 0.25.8
17184
17184
-
'@esbuild/freebsd-arm64': 0.25.8
17185
17185
-
'@esbuild/freebsd-x64': 0.25.8
17186
17186
-
'@esbuild/linux-arm': 0.25.8
17187
17187
-
'@esbuild/linux-arm64': 0.25.8
17188
17188
-
'@esbuild/linux-ia32': 0.25.8
17189
17189
-
'@esbuild/linux-loong64': 0.25.8
17190
17190
-
'@esbuild/linux-mips64el': 0.25.8
17191
17191
-
'@esbuild/linux-ppc64': 0.25.8
17192
17192
-
'@esbuild/linux-riscv64': 0.25.8
17193
17193
-
'@esbuild/linux-s390x': 0.25.8
17194
17194
-
'@esbuild/linux-x64': 0.25.8
17195
17195
-
'@esbuild/netbsd-arm64': 0.25.8
17196
17196
-
'@esbuild/netbsd-x64': 0.25.8
17197
17197
-
'@esbuild/openbsd-arm64': 0.25.8
17198
17198
-
'@esbuild/openbsd-x64': 0.25.8
17199
17199
-
'@esbuild/openharmony-arm64': 0.25.8
17200
17200
-
'@esbuild/sunos-x64': 0.25.8
17201
17201
-
'@esbuild/win32-arm64': 0.25.8
17202
17202
-
'@esbuild/win32-ia32': 0.25.8
17203
17203
-
'@esbuild/win32-x64': 0.25.8
17204
17204
-
17205
16494
esbuild@0.25.9:
17206
16495
optionalDependencies:
17207
16496
'@esbuild/aix-ppc64': 0.25.9
···
17272
16561
17273
16562
eslint-plugin-import-lite@0.3.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2):
17274
16563
dependencies:
17275
17275
-
'@eslint-community/eslint-utils': 4.7.0(eslint@9.35.0(jiti@2.5.1))
17276
17276
-
'@typescript-eslint/types': 8.39.0
16564
16564
+
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.5.1))
16565
16565
+
'@typescript-eslint/types': 8.39.1
17277
16566
eslint: 9.35.0(jiti@2.5.1)
17278
16567
optionalDependencies:
17279
16568
typescript: 5.9.2
17280
16569
17281
16570
eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.39.1(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint@9.35.0(jiti@2.5.1)):
17282
16571
dependencies:
17283
17283
-
'@typescript-eslint/types': 8.39.0
16572
16572
+
'@typescript-eslint/types': 8.39.1
17284
16573
comment-parser: 1.4.1
17285
16574
debug: 4.4.1(supports-color@8.1.1)
17286
16575
eslint: 9.35.0(jiti@2.5.1)
···
17359
16648
17360
16649
eslint-plugin-regexp@2.10.0(eslint@9.35.0(jiti@2.5.1)):
17361
16650
dependencies:
17362
17362
-
'@eslint-community/eslint-utils': 4.7.0(eslint@9.35.0(jiti@2.5.1))
16651
16651
+
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.5.1))
17363
16652
'@eslint-community/regexpp': 4.12.1
17364
16653
comment-parser: 1.4.1
17365
16654
eslint: 9.35.0(jiti@2.5.1)
17366
17366
-
jsdoc-type-pratt-parser: 4.1.0
16655
16655
+
jsdoc-type-pratt-parser: 4.8.0
17367
16656
refa: 0.12.1
17368
16657
regexp-ast-analysis: 0.7.1
17369
16658
scslre: 0.3.0
···
17371
16660
eslint-plugin-unicorn@60.0.0(eslint@9.35.0(jiti@2.5.1)):
17372
16661
dependencies:
17373
16662
'@babel/helper-validator-identifier': 7.27.1
17374
17374
-
'@eslint-community/eslint-utils': 4.7.0(eslint@9.35.0(jiti@2.5.1))
16663
16663
+
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.5.1))
17375
16664
'@eslint/plugin-kit': 0.3.5
17376
16665
change-case: 5.4.4
17377
16666
ci-info: 4.3.0
17378
16667
clean-regexp: 1.0.0
17379
17379
-
core-js-compat: 3.45.0
16668
16668
+
core-js-compat: 3.45.1
17380
16669
eslint: 9.35.0(jiti@2.5.1)
17381
16670
esquery: 1.6.0
17382
16671
find-up-simple: 1.0.1
···
17392
16681
17393
16682
eslint-plugin-vue@10.4.0(@typescript-eslint/parser@8.39.1(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.5.1))):
17394
16683
dependencies:
17395
17395
-
'@eslint-community/eslint-utils': 4.7.0(eslint@9.35.0(jiti@2.5.1))
16684
16684
+
'@eslint-community/eslint-utils': 4.8.0(eslint@9.35.0(jiti@2.5.1))
17396
16685
eslint: 9.35.0(jiti@2.5.1)
17397
16686
natural-compare: 1.4.0
17398
16687
nth-check: 2.1.1
···
17606
16895
dependencies:
17607
16896
reusify: 1.1.0
17608
16897
17609
17609
-
fdir@6.4.6(picomatch@4.0.3):
17610
17610
-
optionalDependencies:
17611
17611
-
picomatch: 4.0.3
17612
17612
-
17613
16898
fdir@6.5.0(picomatch@4.0.3):
17614
16899
optionalDependencies:
17615
16900
picomatch: 4.0.3
···
17910
17195
citty: 0.1.6
17911
17196
consola: 3.4.2
17912
17197
defu: 6.1.4
17913
17913
-
node-fetch-native: 1.6.6
17198
17198
+
node-fetch-native: 1.6.7
17914
17199
nypm: 0.6.1
17915
17200
pathe: 2.0.3
17916
17201
···
18111
17396
defu: 6.1.4
18112
17397
destr: 2.0.5
18113
17398
iron-webcrypto: 1.2.1
18114
18114
-
node-mock-http: 1.0.2
17399
17399
+
node-mock-http: 1.0.3
18115
17400
radix3: 1.1.2
18116
17401
ufo: 1.6.1
18117
17402
uncrypto: 0.1.3
···
18827
18112
merge-stream: 2.0.0
18828
18113
supports-color: 8.1.1
18829
18114
18830
18830
-
jiti@2.4.2: {}
18831
18831
-
18832
18115
jiti@2.5.1: {}
18833
18116
18834
18117
js-beautify@1.15.4:
···
18854
18137
dependencies:
18855
18138
argparse: 2.0.1
18856
18139
18857
18857
-
jsdoc-type-pratt-parser@4.1.0: {}
18858
18858
-
18859
18140
jsdoc-type-pratt-parser@4.8.0: {}
18860
18141
18861
18142
jsdom-global@3.0.2(jsdom@23.2.0):
···
18953
18234
lodash: 4.17.21
18954
18235
minimist: 1.2.8
18955
18236
prettier: 3.6.2
18956
18956
-
tinyglobby: 0.2.14
18237
18237
+
tinyglobby: 0.2.15
18957
18238
18958
18239
json-schema-traverse@0.4.1: {}
18959
18240
···
19074
18355
get-port-please: 3.2.0
19075
18356
h3: 1.15.4
19076
18357
http-shutdown: 1.2.2
19077
19077
-
jiti: 2.4.2
18358
18358
+
jiti: 2.5.1
19078
18359
mlly: 1.8.0
19079
18360
node-forge: 1.3.1
19080
18361
pathe: 1.1.2
···
19103
18384
19104
18385
loader-runner@4.3.0: {}
19105
18386
19106
19106
-
local-pkg@1.1.1:
19107
19107
-
dependencies:
19108
19108
-
mlly: 1.8.0
19109
19109
-
pkg-types: 2.3.0
19110
19110
-
quansync: 0.2.10
19111
19111
-
19112
18387
local-pkg@1.1.2:
19113
18388
dependencies:
19114
18389
mlly: 1.8.0
···
19924
19199
emojilib: 2.4.0
19925
19200
skin-tone: 2.0.0
19926
19201
19927
19927
-
node-fetch-native@1.6.6: {}
19928
19928
-
19929
19202
node-fetch-native@1.6.7: {}
19930
19203
19931
19204
node-fetch@2.7.0:
···
19947
19220
css-select: 5.2.2
19948
19221
he: 1.2.0
19949
19222
19950
19950
-
node-mock-http@1.0.1: {}
19951
19951
-
19952
19952
-
node-mock-http@1.0.2: {}
19953
19953
-
19954
19223
node-mock-http@1.0.3: {}
19955
19955
-
19956
19956
-
node-releases@2.0.19: {}
19957
19224
19958
19225
node-releases@2.0.20: {}
19959
19226
···
20024
19291
20025
19292
nuxt-og-image@5.1.9(@unhead/vue@2.0.14(vue@3.5.21(typescript@5.9.2)))(magicast@0.3.5)(unstorage@1.17.1(@netlify/blobs@9.1.2)(@vercel/blob@1.1.1)(db0@0.3.2(better-sqlite3@11.10.0))(ioredis@5.7.0))(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)):
20026
19293
dependencies:
20027
20027
-
'@nuxt/devtools-kit': 2.6.2(magicast@0.3.5)(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))
19294
19294
+
'@nuxt/devtools-kit': 2.6.3(magicast@0.3.5)(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))
20028
19295
'@nuxt/kit': 4.1.1(magicast@0.3.5)
20029
19296
'@resvg/resvg-js': 2.6.2
20030
19297
'@resvg/resvg-wasm': 2.6.2
20031
19298
'@unhead/vue': 2.0.14(vue@3.5.21(typescript@5.9.2))
20032
20032
-
'@unocss/core': 66.3.3
20033
20033
-
'@unocss/preset-wind3': 66.3.3
19299
19299
+
'@unocss/core': 66.5.1
19300
19300
+
'@unocss/preset-wind3': 66.5.1
20034
19301
chrome-launcher: 1.2.0
20035
19302
consola: 3.4.2
20036
19303
defu: 6.1.4
···
20039
19306
magic-string: 0.30.19
20040
19307
mocked-exports: 0.1.1
20041
19308
nuxt-site-config: 3.2.2(magicast@0.3.5)(vue@3.5.21(typescript@5.9.2))
20042
20042
-
nypm: 0.6.0
19309
19309
+
nypm: 0.6.1
20043
19310
ofetch: 1.4.1
20044
19311
ohash: 2.0.11
20045
19312
pathe: 2.0.3
20046
20046
-
pkg-types: 2.2.0
19313
19313
+
pkg-types: 2.3.0
20047
19314
playwright-core: 1.55.0
20048
19315
radix3: 1.1.2
20049
19316
satori: 0.15.2
20050
19317
satori-html: 0.3.2
20051
20051
-
sirv: 3.0.1
19318
19318
+
sirv: 3.0.2
20052
19319
std-env: 3.9.0
20053
19320
strip-literal: 3.0.0
20054
19321
ufo: 1.6.1
20055
19322
unplugin: 2.3.10
20056
19323
unstorage: 1.17.1(@netlify/blobs@9.1.2)(@vercel/blob@1.1.1)(db0@0.3.2(better-sqlite3@11.10.0))(ioredis@5.7.0)
20057
20057
-
unwasm: 0.3.9
19324
19324
+
unwasm: 0.3.11
20058
19325
yoga-wasm-web: 0.3.3
20059
19326
transitivePeerDependencies:
20060
19327
- magicast
···
20079
19346
nuxt-site-config-kit@3.2.2(magicast@0.3.5)(vue@3.5.21(typescript@5.9.2)):
20080
19347
dependencies:
20081
19348
'@nuxt/kit': 4.1.1(magicast@0.3.5)
20082
20082
-
pkg-types: 2.2.0
19349
19349
+
pkg-types: 2.3.0
20083
19350
site-config-stack: 3.2.2(vue@3.5.21(typescript@5.9.2))
20084
19351
std-env: 3.9.0
20085
19352
ufo: 1.6.1
···
20092
19359
'@nuxt/kit': 4.1.1(magicast@0.3.5)
20093
19360
nuxt-site-config-kit: 3.2.2(magicast@0.3.5)(vue@3.5.21(typescript@5.9.2))
20094
19361
pathe: 2.0.3
20095
20095
-
pkg-types: 2.2.0
20096
20096
-
sirv: 3.0.1
19362
19362
+
pkg-types: 2.3.0
19363
19363
+
sirv: 3.0.2
20097
19364
site-config-stack: 3.2.2(vue@3.5.21(typescript@5.9.2))
20098
19365
ufo: 1.6.1
20099
19366
transitivePeerDependencies:
···
20225
19492
20226
19493
nwsapi@2.2.22: {}
20227
19494
20228
20228
-
nypm@0.6.0:
20229
20229
-
dependencies:
20230
20230
-
citty: 0.1.6
20231
20231
-
consola: 3.4.2
20232
20232
-
pathe: 2.0.3
20233
20233
-
pkg-types: 2.2.0
20234
20234
-
tinyexec: 0.3.2
20235
20235
-
20236
19495
nypm@0.6.1:
20237
19496
dependencies:
20238
19497
citty: 0.1.6
···
20284
19543
ofetch@1.4.1:
20285
19544
dependencies:
20286
19545
destr: 2.0.5
20287
20287
-
node-fetch-native: 1.6.6
19546
19546
+
node-fetch-native: 1.6.7
20288
19547
ufo: 1.6.1
20289
19548
20290
19549
ohash@1.1.6: {}
···
20675
19934
dependencies:
20676
19935
confbox: 0.1.8
20677
19936
mlly: 1.8.0
20678
20678
-
pathe: 2.0.3
20679
20679
-
20680
20680
-
pkg-types@2.2.0:
20681
20681
-
dependencies:
20682
20682
-
confbox: 0.2.2
20683
20683
-
exsolve: 1.0.7
20684
19937
pathe: 2.0.3
20685
19938
20686
19939
pkg-types@2.3.0:
···
21003
20256
dependencies:
21004
20257
side-channel: 1.1.0
21005
20258
21006
21006
-
quansync@0.2.10: {}
21007
21007
-
21008
20259
quansync@0.2.11: {}
21009
20260
21010
20261
querystringify@2.2.0: {}
···
21580
20831
'@sanity/message-protocol': 0.17.2
21581
20832
'@sanity/migrate': 4.6.1(@types/react@18.3.24)
21582
20833
'@sanity/mutator': 4.6.1(@types/react@18.3.24)
21583
21583
-
'@sanity/presentation-comlink': 1.0.29(@sanity/client@7.11.0(debug@4.4.1))(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))
21584
21584
-
'@sanity/preview-url-secret': 2.1.14(@sanity/client@7.11.0(debug@4.4.1))
20834
20834
+
'@sanity/presentation-comlink': 1.0.29(@sanity/client@7.11.0)(@sanity/types@4.6.1(@types/react@18.3.24)(debug@4.4.1))
20835
20835
+
'@sanity/preview-url-secret': 2.1.14(@sanity/client@7.11.0)
21585
20836
'@sanity/schema': 4.6.1(@types/react@18.3.24)(debug@4.4.1)
21586
20837
'@sanity/sdk': 2.1.2(@types/react@18.3.24)(debug@4.4.1)(immer@10.1.3)(react@18.3.1)(use-sync-external-store@1.5.0(react@18.3.1))
21587
20838
'@sanity/telemetry': 0.8.1(react@18.3.1)
···
21885
21136
'@shikijs/vscode-textmate': 10.0.2
21886
21137
'@types/hast': 3.0.4
21887
21138
21888
21888
-
shiki@3.8.0:
21889
21889
-
dependencies:
21890
21890
-
'@shikijs/core': 3.8.0
21891
21891
-
'@shikijs/engine-javascript': 3.8.0
21892
21892
-
'@shikijs/engine-oniguruma': 3.8.0
21893
21893
-
'@shikijs/langs': 3.8.0
21894
21894
-
'@shikijs/themes': 3.8.0
21895
21895
-
'@shikijs/types': 3.8.0
21896
21896
-
'@shikijs/vscode-textmate': 10.0.2
21897
21897
-
'@types/hast': 3.0.4
21898
21898
-
21899
21139
side-channel-list@1.0.0:
21900
21140
dependencies:
21901
21141
es-errors: 1.3.0
···
21956
21196
optional: true
21957
21197
21958
21198
simple-wcswidth@1.1.2: {}
21959
21959
-
21960
21960
-
sirv@3.0.1:
21961
21961
-
dependencies:
21962
21962
-
'@polka/url': 1.0.0-next.29
21963
21963
-
mrmime: 2.0.1
21964
21964
-
totalist: 3.0.1
21965
21199
21966
21200
sirv@3.0.2:
21967
21201
dependencies:
···
22290
21524
semver: 7.7.2
22291
21525
stylelint: 16.24.0(typescript@5.9.2)
22292
21526
stylelint-config-html: 1.1.0(postcss-html@1.8.0)(stylelint@16.24.0(typescript@5.9.2))
22293
22293
-
stylelint-config-recommended: 16.0.0(stylelint@16.24.0(typescript@5.9.2))
22294
22294
-
22295
22295
-
stylelint-config-recommended@16.0.0(stylelint@16.24.0(typescript@5.9.2)):
22296
22296
-
dependencies:
22297
22297
-
stylelint: 16.24.0(typescript@5.9.2)
21527
21527
+
stylelint-config-recommended: 17.0.0(stylelint@16.24.0(typescript@5.9.2))
22298
21528
22299
21529
stylelint-config-recommended@17.0.0(stylelint@16.24.0(typescript@5.9.2)):
22300
21530
dependencies:
···
22706
21936
undici-types@6.21.0: {}
22707
21937
22708
21938
undici-types@7.10.0: {}
22709
22709
-
22710
22710
-
undici-types@7.8.0: {}
22711
21939
22712
21940
undici@5.29.0:
22713
21941
dependencies:
···
22923
22151
pathe: 2.0.3
22924
22152
picomatch: 4.0.3
22925
22153
scule: 1.3.0
22926
22926
-
tinyglobby: 0.2.14
22154
22154
+
tinyglobby: 0.2.15
22927
22155
unplugin: 2.3.10
22928
22156
unplugin-utils: 0.2.5
22929
22157
yaml: 2.8.1
···
22969
22197
'@unrs/resolver-binding-win32-ia32-msvc': 1.11.1
22970
22198
'@unrs/resolver-binding-win32-x64-msvc': 1.11.1
22971
22199
22972
22972
-
unstorage@1.16.1(@netlify/blobs@9.1.2)(@vercel/blob@1.1.1)(db0@0.3.2(better-sqlite3@11.10.0))(ioredis@5.7.0):
22973
22973
-
dependencies:
22974
22974
-
anymatch: 3.1.3
22975
22975
-
chokidar: 4.0.3
22976
22976
-
destr: 2.0.5
22977
22977
-
h3: 1.15.4
22978
22978
-
lru-cache: 10.4.3
22979
22979
-
node-fetch-native: 1.6.7
22980
22980
-
ofetch: 1.4.1
22981
22981
-
ufo: 1.6.1
22982
22982
-
optionalDependencies:
22983
22983
-
'@netlify/blobs': 9.1.2
22984
22984
-
'@vercel/blob': 1.1.1
22985
22985
-
db0: 0.3.2(better-sqlite3@11.10.0)
22986
22986
-
ioredis: 5.7.0
22987
22987
-
22988
22200
unstorage@1.17.1(@netlify/blobs@9.1.2)(@vercel/blob@1.1.1)(db0@0.3.2(better-sqlite3@11.10.0))(ioredis@5.7.0):
22989
22201
dependencies:
22990
22202
anymatch: 3.1.3
···
23021
22233
magic-string: 0.30.19
23022
22234
mlly: 1.8.0
23023
22235
pathe: 2.0.3
23024
23024
-
pkg-types: 2.2.0
22236
22236
+
pkg-types: 2.3.0
23025
22237
unplugin: 2.3.10
23026
22238
23027
23027
-
unwasm@0.3.9:
23028
23028
-
dependencies:
23029
23029
-
knitwork: 1.2.0
23030
23030
-
magic-string: 0.30.19
23031
23031
-
mlly: 1.8.0
23032
23032
-
pathe: 1.1.2
23033
23033
-
pkg-types: 1.3.1
23034
23034
-
unplugin: 1.16.1
23035
23035
-
23036
23036
-
update-browserslist-db@1.1.3(browserslist@4.25.2):
23037
23037
-
dependencies:
23038
23038
-
browserslist: 4.25.2
23039
23039
-
escalade: 3.2.0
23040
23040
-
picocolors: 1.1.1
23041
23041
-
23042
22239
update-browserslist-db@1.1.3(browserslist@4.25.4):
23043
22240
dependencies:
23044
22241
browserslist: 4.25.4
···
23153
22350
debug: 4.4.1(supports-color@8.1.1)
23154
22351
es-module-lexer: 1.7.0
23155
22352
pathe: 2.0.3
23156
23156
-
vite: 7.0.5(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)
22353
22353
+
vite: 7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)
23157
22354
transitivePeerDependencies:
23158
22355
- '@types/node'
23159
22356
- jiti
···
23177
22374
picomatch: 4.0.3
23178
22375
strip-ansi: 7.1.0
23179
22376
tiny-invariant: 1.3.3
23180
23180
-
tinyglobby: 0.2.14
22377
22377
+
tinyglobby: 0.2.15
23181
22378
vite: 7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)
23182
22379
vscode-uri: 3.1.0
23183
22380
optionalDependencies:
···
23226
22423
- supports-color
23227
22424
- typescript
23228
22425
23229
23229
-
vite@7.0.5(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1):
23230
23230
-
dependencies:
23231
23231
-
esbuild: 0.25.8
23232
23232
-
fdir: 6.4.6(picomatch@4.0.3)
23233
23233
-
picomatch: 4.0.3
23234
23234
-
postcss: 8.5.6
23235
23235
-
rollup: 4.50.1
23236
23236
-
tinyglobby: 0.2.14
23237
23237
-
optionalDependencies:
23238
23238
-
'@types/node': 24.3.1
23239
23239
-
fsevents: 2.3.3
23240
23240
-
jiti: 2.5.1
23241
23241
-
terser: 5.44.0
23242
23242
-
yaml: 2.8.1
23243
23243
-
23244
22426
vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1):
23245
22427
dependencies:
23246
22428
esbuild: 0.25.9
···
23277
22459
dependencies:
23278
22460
'@types/chai': 5.2.2
23279
22461
'@vitest/expect': 3.2.4
23280
23280
-
'@vitest/mocker': 3.2.4(vite@7.0.5(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))
22462
22462
+
'@vitest/mocker': 3.2.4(vite@7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))
23281
22463
'@vitest/pretty-format': 3.2.4
23282
22464
'@vitest/runner': 3.2.4
23283
22465
'@vitest/snapshot': 3.2.4
···
23292
22474
std-env: 3.9.0
23293
22475
tinybench: 2.9.0
23294
22476
tinyexec: 0.3.2
23295
23295
-
tinyglobby: 0.2.14
22477
22477
+
tinyglobby: 0.2.15
23296
22478
tinypool: 1.1.1
23297
22479
tinyrainbow: 2.0.0
23298
23298
-
vite: 7.0.5(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)
22480
22480
+
vite: 7.1.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)
23299
22481
vite-node: 3.2.4(@types/node@24.3.1)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)
23300
22482
why-is-node-running: 2.3.0
23301
22483
optionalDependencies:
···
23600
22782
dependencies:
23601
22783
commander: 2.20.3
23602
22784
cssfilter: 0.0.10
23603
23603
-
23604
23604
-
xstate@5.20.2: {}
23605
22785
23606
22786
xstate@5.21.0: {}
23607
22787
+347
scripts/linkedin-auth.ts
View file
Reviewed
···
1
1
+
/**
2
2
+
* LinkedIn OAuth Token Generator
3
3
+
*
4
4
+
* This script helps you generate a LinkedIn access token with the proper scopes
5
5
+
* for posting content. LinkedIn access tokens are valid for 60 days and must be
6
6
+
* refreshed manually through re-authorization.
7
7
+
*
8
8
+
* Prerequisites:
9
9
+
* 1. Create an app in LinkedIn Developers Portal (https://www.linkedin.com/developers/)
10
10
+
* 2. Add the following redirect URI: http://localhost:8080/callback
11
11
+
* 3. Enable the required scopes in your app settings:
12
12
+
* - openid (Use your name and photo)
13
13
+
* - profile (Use your name and photo)
14
14
+
* - email (Use the primary email address)
15
15
+
* - w_member_social (Create, modify, and delete posts on your behalf)
16
16
+
* 4. Get your Client ID and Client Secret
17
17
+
*
18
18
+
* Usage:
19
19
+
* node scripts/linkedin-auth.ts
20
20
+
* node scripts/linkedin-auth.ts --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET
21
21
+
* node scripts/linkedin-auth.ts test YOUR_ACCESS_TOKEN
22
22
+
*
23
23
+
* Environment variables (alternative to command line args):
24
24
+
* LINKEDIN_CLIENT_ID=your_client_id
25
25
+
* LINKEDIN_CLIENT_SECRET=your_client_secret
26
26
+
*/
27
27
+
28
28
+
import { createServer } from 'node:http'
29
29
+
import { spawn } from 'node:child_process'
30
30
+
import { parse } from 'node:url'
31
31
+
import process from 'node:process'
32
32
+
import { randomBytes } from 'node:crypto'
33
33
+
import { defineCommand, runMain } from 'citty'
34
34
+
35
35
+
// Required LinkedIn API scopes
36
36
+
// Note: These scopes must be enabled in your LinkedIn app settings
37
37
+
const SCOPES = [
38
38
+
'openid',
39
39
+
'profile',
40
40
+
'email',
41
41
+
'w_member_social',
42
42
+
] as const
43
43
+
44
44
+
const REDIRECT_URI = 'http://localhost:8080/callback'
45
45
+
const PORT = 8080
46
46
+
47
47
+
interface LinkedInTokenResponse {
48
48
+
access_token: string
49
49
+
token_type: string
50
50
+
expires_in: number
51
51
+
scope: string
52
52
+
}
53
53
+
54
54
+
interface LinkedInProfile {
55
55
+
sub: string
56
56
+
name: string
57
57
+
email: string
58
58
+
picture?: string
59
59
+
}
60
60
+
61
61
+
interface AuthOptions {
62
62
+
clientId?: string
63
63
+
clientSecret?: string
64
64
+
}
65
65
+
66
66
+
class LinkedInAuthGenerator {
67
67
+
private clientId: string
68
68
+
private clientSecret: string
69
69
+
private state: string
70
70
+
71
71
+
constructor (options: AuthOptions = {}) {
72
72
+
this.clientId = options.clientId || process.env.LINKEDIN_CLIENT_ID!
73
73
+
this.clientSecret = options.clientSecret || process.env.LINKEDIN_CLIENT_SECRET!
74
74
+
75
75
+
if (!this.clientId || !this.clientSecret) {
76
76
+
console.error('❌ Missing LinkedIn credentials!')
77
77
+
console.error('Please provide via command line or environment variables:')
78
78
+
console.error(' --client-id YOUR_CLIENT_ID --client-secret YOUR_CLIENT_SECRET')
79
79
+
console.error('Or set environment variables:')
80
80
+
console.error(' LINKEDIN_CLIENT_ID=your_client_id')
81
81
+
console.error(' LINKEDIN_CLIENT_SECRET=your_client_secret')
82
82
+
process.exit(1)
83
83
+
}
84
84
+
85
85
+
// Generate a random state for CSRF protection
86
86
+
this.state = randomBytes(32).toString('hex')
87
87
+
}
88
88
+
89
89
+
generateAuthUrl (): string {
90
90
+
const params = new URLSearchParams({
91
91
+
response_type: 'code',
92
92
+
client_id: this.clientId,
93
93
+
redirect_uri: REDIRECT_URI,
94
94
+
scope: SCOPES.join(' '),
95
95
+
state: this.state,
96
96
+
})
97
97
+
98
98
+
return `https://www.linkedin.com/oauth/v2/authorization?${params.toString()}`
99
99
+
}
100
100
+
101
101
+
async exchangeCodeForTokens (code: string, state: string): Promise<LinkedInTokenResponse> {
102
102
+
// Verify state parameter
103
103
+
if (state !== this.state) {
104
104
+
throw new Error('Invalid state parameter - potential CSRF attack')
105
105
+
}
106
106
+
107
107
+
const tokenUrl = 'https://www.linkedin.com/oauth/v2/accessToken'
108
108
+
const body = new URLSearchParams({
109
109
+
grant_type: 'authorization_code',
110
110
+
code: code,
111
111
+
redirect_uri: REDIRECT_URI,
112
112
+
client_id: this.clientId,
113
113
+
client_secret: this.clientSecret,
114
114
+
})
115
115
+
116
116
+
try {
117
117
+
const response = await fetch(tokenUrl, {
118
118
+
method: 'POST',
119
119
+
headers: {
120
120
+
'Content-Type': 'application/x-www-form-urlencoded',
121
121
+
},
122
122
+
body: body.toString(),
123
123
+
})
124
124
+
125
125
+
if (!response.ok) {
126
126
+
const error = await response.text()
127
127
+
throw new Error(`Token exchange failed: ${response.status} ${error}`)
128
128
+
}
129
129
+
130
130
+
return await response.json() as LinkedInTokenResponse
131
131
+
}
132
132
+
catch (error) {
133
133
+
console.error('❌ Error exchanging code for tokens:', error instanceof Error ? error.message : error)
134
134
+
throw error
135
135
+
}
136
136
+
}
137
137
+
138
138
+
startServer (): Promise<LinkedInTokenResponse> {
139
139
+
return new Promise((resolve, reject) => {
140
140
+
const server = createServer(async (req, res) => {
141
141
+
const parsedUrl = parse(req.url || '', true)
142
142
+
143
143
+
if (parsedUrl.pathname === '/callback') {
144
144
+
const { code, error, error_description, state } = parsedUrl.query
145
145
+
146
146
+
if (error) {
147
147
+
res.writeHead(400, { 'Content-Type': 'text/html' })
148
148
+
res.end(`<h1>Authorization Error</h1><p>${error}: ${error_description}</p>`)
149
149
+
reject(new Error(`Authorization error: ${error} - ${error_description}`))
150
150
+
return
151
151
+
}
152
152
+
153
153
+
if (code && state && typeof code === 'string' && typeof state === 'string') {
154
154
+
try {
155
155
+
const tokens = await this.exchangeCodeForTokens(code, state)
156
156
+
157
157
+
res.writeHead(200, { 'Content-Type': 'text/html' })
158
158
+
res.end(`
159
159
+
<h1>✅ Authorization Successful!</h1>
160
160
+
<p>You can close this window and return to the terminal.</p>
161
161
+
<script>setTimeout(() => window.close(), 3000)</script>
162
162
+
`)
163
163
+
164
164
+
server.close()
165
165
+
resolve(tokens)
166
166
+
}
167
167
+
catch (error) {
168
168
+
res.writeHead(500, { 'Content-Type': 'text/html' })
169
169
+
res.end(`<h1>❌ Token Exchange Error</h1><p>${error instanceof Error ? error.message : error}</p>`)
170
170
+
reject(error)
171
171
+
}
172
172
+
}
173
173
+
}
174
174
+
else {
175
175
+
res.writeHead(404, { 'Content-Type': 'text/plain' })
176
176
+
res.end('Not found')
177
177
+
}
178
178
+
})
179
179
+
180
180
+
server.listen(PORT, (err?: Error) => {
181
181
+
if (err) reject(err)
182
182
+
})
183
183
+
})
184
184
+
}
185
185
+
186
186
+
async generateTokens (): Promise<LinkedInTokenResponse> {
187
187
+
console.log('🔗 LinkedIn Access Token Generator')
188
188
+
console.log('==================================\n')
189
189
+
190
190
+
console.log('Required scopes:')
191
191
+
SCOPES.forEach(scope => console.log(` ✓ ${scope}`))
192
192
+
console.log()
193
193
+
194
194
+
console.log('🌐 Starting local server for OAuth callback...')
195
195
+
196
196
+
try {
197
197
+
const serverPromise = this.startServer()
198
198
+
const authUrl = this.generateAuthUrl()
199
199
+
200
200
+
console.log('🚀 Please visit the following URL to authorize the application:')
201
201
+
console.log(`\n${authUrl}\n`)
202
202
+
console.log('💡 This should open automatically in your browser...')
203
203
+
204
204
+
// Try to open the URL automatically
205
205
+
try {
206
206
+
const opener = process.platform === 'darwin' ? 'open' : process.platform === 'win32' ? 'start' : 'xdg-open'
207
207
+
spawn(opener, [authUrl], { detached: true, stdio: 'ignore' }).unref()
208
208
+
}
209
209
+
catch {
210
210
+
console.log('ℹ️ Could not open browser automatically')
211
211
+
}
212
212
+
213
213
+
console.log('⏳ Waiting for authorization...')
214
214
+
const tokens = await serverPromise
215
215
+
216
216
+
return tokens
217
217
+
}
218
218
+
catch (error) {
219
219
+
console.error('❌ Authorization failed:', error instanceof Error ? error.message : error)
220
220
+
throw error
221
221
+
}
222
222
+
}
223
223
+
224
224
+
displayResults (tokens: LinkedInTokenResponse): void {
225
225
+
console.log('\n🎉 Success! Here are your LinkedIn tokens:')
226
226
+
console.log('==========================================\n')
227
227
+
228
228
+
console.log('📋 Copy this to your environment variables:')
229
229
+
console.log('```bash')
230
230
+
console.log(`export NUXT_LINKEDIN_ACCESS_TOKEN="${tokens.access_token}"`)
231
231
+
console.log('```\n')
232
232
+
233
233
+
console.log('Or add to your .env file:')
234
234
+
console.log('```env')
235
235
+
console.log(`NUXT_LINKEDIN_ACCESS_TOKEN=${tokens.access_token}`)
236
236
+
console.log('```\n')
237
237
+
238
238
+
if (tokens.expires_in) {
239
239
+
const expiryDate = new Date(Date.now() + (tokens.expires_in * 1000))
240
240
+
console.log(`⏰ Access token expires: ${expiryDate.toLocaleString()}`)
241
241
+
console.log('⚠️ LinkedIn tokens typically expire in 60 days')
242
242
+
}
243
243
+
244
244
+
console.log('\n📝 Important Notes:')
245
245
+
console.log('• LinkedIn does not provide refresh tokens for most applications')
246
246
+
console.log('• You will need to re-run this script when the token expires')
247
247
+
console.log('• Consider setting up a calendar reminder for token renewal')
248
248
+
249
249
+
console.log('\n🔄 To generate a new token when this expires:')
250
250
+
console.log('node scripts/linkedin-auth.ts')
251
251
+
}
252
252
+
253
253
+
async testToken (accessToken: string): Promise<boolean> {
254
254
+
console.log('\n🧪 Testing access token...')
255
255
+
256
256
+
try {
257
257
+
// Using OpenID Connect userinfo endpoint
258
258
+
const response = await fetch('https://api.linkedin.com/v2/userinfo', {
259
259
+
headers: {
260
260
+
'Authorization': `Bearer ${accessToken}`,
261
261
+
'Content-Type': 'application/json',
262
262
+
},
263
263
+
})
264
264
+
265
265
+
if (!response.ok) {
266
266
+
throw new Error(`API test failed: ${response.status} ${response.statusText}`)
267
267
+
}
268
268
+
269
269
+
const profile = await response.json() as LinkedInProfile
270
270
+
console.log('✅ Token is valid!')
271
271
+
console.log(`👤 Authenticated as: ${profile.name}${profile.email ? ` (${profile.email})` : ''}`)
272
272
+
273
273
+
return true
274
274
+
}
275
275
+
catch (error) {
276
276
+
console.error('❌ Token test failed:', error instanceof Error ? error.message : error)
277
277
+
return false
278
278
+
}
279
279
+
}
280
280
+
}
281
281
+
282
282
+
const main = defineCommand({
283
283
+
meta: {
284
284
+
name: 'linkedin-auth',
285
285
+
version: '1.0.0',
286
286
+
description: 'LinkedIn OAuth Token Generator',
287
287
+
},
288
288
+
args: {
289
289
+
'client-id': {
290
290
+
type: 'string',
291
291
+
description: 'LinkedIn app client ID',
292
292
+
},
293
293
+
'client-secret': {
294
294
+
type: 'string',
295
295
+
description: 'LinkedIn app client secret',
296
296
+
},
297
297
+
},
298
298
+
subCommands: {
299
299
+
generate: defineCommand({
300
300
+
meta: {
301
301
+
name: 'generate',
302
302
+
description: 'Generate a new LinkedIn access token',
303
303
+
},
304
304
+
args: {
305
305
+
'client-id': {
306
306
+
type: 'string',
307
307
+
description: 'LinkedIn app client ID',
308
308
+
},
309
309
+
'client-secret': {
310
310
+
type: 'string',
311
311
+
description: 'LinkedIn app client secret',
312
312
+
},
313
313
+
},
314
314
+
async run ({ args }) {
315
315
+
const generator = new LinkedInAuthGenerator({
316
316
+
clientId: typeof args['client-id'] === 'string' ? args['client-id'] : undefined,
317
317
+
clientSecret: typeof args['client-secret'] === 'string' ? args['client-secret'] : undefined,
318
318
+
})
319
319
+
320
320
+
try {
321
321
+
const tokens = await generator.generateTokens()
322
322
+
if (!tokens) {
323
323
+
console.error('❌ Failed to generate tokens')
324
324
+
process.exit(1)
325
325
+
}
326
326
+
327
327
+
generator.displayResults(tokens)
328
328
+
329
329
+
// Test the token
330
330
+
await generator.testToken(tokens.access_token)
331
331
+
}
332
332
+
catch (error: any) {
333
333
+
console.error('❌ Failed to generate tokens:', error.message)
334
334
+
process.exit(1)
335
335
+
}
336
336
+
},
337
337
+
}),
338
338
+
},
339
339
+
})
340
340
+
341
341
+
// Handle graceful shutdown
342
342
+
process.on('SIGINT', () => {
343
343
+
console.log('\n\n👋 Goodbye!')
344
344
+
process.exit(0)
345
345
+
})
346
346
+
347
347
+
runMain(main)
+125
-67
scripts/youtube-auth.mjs
scripts/youtube-auth.ts
View file
Reviewed
···
1
1
-
#!/usr/bin/env node
2
2
-
3
1
/**
4
2
* YouTube OAuth Token Generator
5
3
*
···
14
12
* 4. Download the credentials JSON file
15
13
*
16
14
* Usage:
17
17
-
* node scripts/youtube-auth.js
18
18
-
*
19
19
-
* Or with credentials file path:
20
20
-
* node scripts/youtube-auth.js ./path/to/credentials.json
21
21
-
*
22
22
-
* To refresh an existing token:
23
23
-
* node scripts/youtube-auth.js --refresh "your_refresh_token"
15
15
+
* node scripts/youtube-auth.ts
16
16
+
* node scripts/youtube-auth.ts --credentials ./path/to/credentials.json
17
17
+
* node scripts/youtube-auth.ts refresh "your_refresh_token"
24
18
*/
25
19
26
20
import { createServer } from 'node:http'
27
21
import { parse } from 'node:url'
22
22
+
import process from 'node:process'
28
23
import { readFileSync, existsSync } from 'node:fs'
29
24
import { join } from 'node:path'
25
25
+
import { defineCommand, runMain } from 'citty'
30
26
31
27
// Required YouTube API scopes
32
28
const SCOPES = [
33
29
'https://www.googleapis.com/auth/youtube', // Video upload
34
30
'https://www.googleapis.com/auth/youtube.force-ssl', // Playlist management
35
35
-
]
31
31
+
] as const
36
32
37
33
const REDIRECT_URI = 'http://localhost:8080/callback'
38
34
const PORT = 8080
39
35
36
36
+
interface YouTubeCredentials {
37
37
+
client_id: string
38
38
+
client_secret: string
39
39
+
redirect_uris?: string[]
40
40
+
}
41
41
+
42
42
+
interface YouTubeTokenResponse {
43
43
+
access_token: string
44
44
+
token_type: string
45
45
+
expires_in: number
46
46
+
refresh_token?: string
47
47
+
}
48
48
+
49
49
+
interface CredentialsFile {
50
50
+
installed?: YouTubeCredentials
51
51
+
web?: YouTubeCredentials
52
52
+
client_id?: string
53
53
+
client_secret?: string
54
54
+
}
55
55
+
40
56
class YouTubeAuthGenerator {
41
41
-
constructor (credentialsPath) {
57
57
+
private credentialsPath: string
58
58
+
private credentials: YouTubeCredentials
59
59
+
60
60
+
constructor (credentialsPath?: string) {
42
61
this.credentialsPath = credentialsPath || this.findCredentialsFile()
43
62
this.credentials = this.loadCredentials()
44
63
}
45
64
46
46
-
findCredentialsFile () {
65
65
+
findCredentialsFile (): string {
47
66
const possiblePaths = [
48
67
'./credentials.json',
49
68
'./google-credentials.json',
···
65
84
process.exit(1)
66
85
}
67
86
68
68
-
loadCredentials () {
87
87
+
loadCredentials (): YouTubeCredentials {
69
88
try {
70
89
const content = readFileSync(this.credentialsPath, 'utf8')
71
71
-
const data = JSON.parse(content)
90
90
+
const data: CredentialsFile = JSON.parse(content)
72
91
73
92
// Handle both direct credentials and wrapped format
74
74
-
const creds = data.installed || data.web || data
93
93
+
const creds = data.installed || data.web || data as YouTubeCredentials
75
94
76
95
if (!creds.client_id || !creds.client_secret) {
77
96
throw new Error('Missing client_id or client_secret in credentials file')
78
97
}
79
98
80
80
-
return creds
99
99
+
return {
100
100
+
client_id: creds.client_id,
101
101
+
client_secret: creds.client_secret,
102
102
+
redirect_uris: creds.redirect_uris,
103
103
+
}
81
104
}
82
105
catch (error) {
83
83
-
console.error('❌ Error loading credentials:', error.message)
106
106
+
console.error('❌ Error loading credentials:', error instanceof Error ? error.message : error)
84
107
process.exit(1)
85
108
}
86
109
}
87
110
88
88
-
generateAuthUrl () {
111
111
+
generateAuthUrl (): string {
89
112
const params = new URLSearchParams({
90
113
client_id: this.credentials.client_id,
91
114
redirect_uri: REDIRECT_URI,
···
98
121
return `https://accounts.google.com/o/oauth2/v2/auth?${params.toString()}`
99
122
}
100
123
101
101
-
async exchangeCodeForTokens (code) {
124
124
+
async exchangeCodeForTokens (code: string): Promise<YouTubeTokenResponse> {
102
125
const tokenUrl = 'https://oauth2.googleapis.com/token'
103
126
const body = new URLSearchParams({
104
127
client_id: this.credentials.client_id,
···
125
148
return await response.json()
126
149
}
127
150
catch (error) {
128
128
-
console.error('❌ Error exchanging code for tokens:', error.message)
151
151
+
console.error('❌ Error exchanging code for tokens:', error instanceof Error ? error.message : error)
129
152
throw error
130
153
}
131
154
}
132
155
133
133
-
async refreshAccessToken (refreshToken) {
156
156
+
async refreshAccessToken (refreshToken: string): Promise<YouTubeTokenResponse> {
134
157
const tokenUrl = 'https://oauth2.googleapis.com/token'
135
158
const body = new URLSearchParams({
136
159
client_id: this.credentials.client_id,
···
153
176
throw new Error(`Token refresh failed: ${response.status} ${error}`)
154
177
}
155
178
156
156
-
return await response.json()
179
179
+
return await response.json() as YouTubeTokenResponse
157
180
}
158
181
catch (error) {
159
159
-
console.error('❌ Error refreshing token:', error.message)
182
182
+
console.error('❌ Error refreshing token:', error instanceof Error ? error.message : error)
160
183
throw error
161
184
}
162
185
}
163
186
164
164
-
startServer () {
187
187
+
startServer (): Promise<YouTubeTokenResponse> {
165
188
return new Promise((resolve, reject) => {
166
189
const server = createServer(async (req, res) => {
167
167
-
const parsedUrl = parse(req.url, true)
190
190
+
const parsedUrl = parse(req.url || '', true)
168
191
169
192
if (parsedUrl.pathname === '/callback') {
170
193
const { code, error } = parsedUrl.query
···
176
199
return
177
200
}
178
201
179
179
-
if (code) {
202
202
+
if (code && typeof code === 'string') {
180
203
try {
181
204
const tokens = await this.exchangeCodeForTokens(code)
182
205
···
192
215
}
193
216
catch (error) {
194
217
res.writeHead(500, { 'Content-Type': 'text/html' })
195
195
-
res.end(`<h1>❌ Token Exchange Error</h1><p>${error.message}</p>`)
218
218
+
res.end(`<h1>❌ Token Exchange Error</h1><p>${error instanceof Error ? error.message : error}</p>`)
196
219
reject(error)
197
220
}
198
221
}
···
203
226
}
204
227
})
205
228
206
206
-
server.listen(PORT, err => {
229
229
+
server.listen(PORT, (err?: Error) => {
207
230
if (err) reject(err)
208
231
})
209
232
})
210
233
}
211
234
212
212
-
async generateTokens () {
235
235
+
async generateTokens (): Promise<YouTubeTokenResponse> {
213
236
console.log('🔐 YouTube Access Token Generator')
214
237
console.log('================================\n')
215
238
···
233
256
return tokens
234
257
}
235
258
catch (error) {
236
236
-
console.error('❌ Authorization failed:', error.message)
259
259
+
console.error('❌ Authorization failed:', error instanceof Error ? error.message : error)
237
260
throw error
238
261
}
239
262
}
240
263
241
241
-
displayResults (tokens) {
264
264
+
displayResults (tokens: YouTubeTokenResponse): void {
242
265
console.log('\n🎉 Success! Here are your tokens:')
243
266
console.log('=====================================\n')
244
267
···
274
297
275
298
if (tokens.refresh_token) {
276
299
console.log('\n🔄 To refresh your access token later, you can use:')
277
277
-
console.log(`node scripts/youtube-auth.js --refresh "${tokens.refresh_token}"`)
300
300
+
console.log(`node scripts/youtube-auth.ts --refresh "${tokens.refresh_token}"`)
278
301
console.log('\n💡 For automatic token refresh in production, set these environment variables:')
279
302
console.log(`NUXT_YOUTUBE_REFRESH_TOKEN=${tokens.refresh_token}`)
280
303
console.log(`NUXT_YOUTUBE_CLIENT_ID=${this.credentials.client_id}`)
···
282
305
}
283
306
}
284
307
285
285
-
async handleRefreshToken (refreshToken) {
308
308
+
async handleRefreshToken (refreshToken: string): Promise<void> {
286
309
console.log('🔄 Refreshing access token...')
287
310
288
311
try {
···
302
325
}
303
326
}
304
327
catch (error) {
305
305
-
console.error('❌ Failed to refresh token:', error.message)
328
328
+
console.error('❌ Failed to refresh token:', error instanceof Error ? error.message : error)
306
329
console.log('\n💡 You may need to re-authorize the application:')
307
307
-
console.log(' node scripts/youtube-auth.js')
330
330
+
console.log(' node scripts/youtube-auth.ts')
308
331
process.exit(1)
309
332
}
310
333
}
311
334
}
312
335
313
313
-
// Main execution
314
314
-
async function main () {
315
315
-
const args = process.argv.slice(2)
316
316
-
317
317
-
// Handle refresh token mode
318
318
-
if (args[0] === '--refresh') {
319
319
-
if (!args[1]) {
320
320
-
console.error('❌ Please provide a refresh token: --refresh "your_refresh_token"')
321
321
-
process.exit(1)
322
322
-
}
323
323
-
324
324
-
const generator = new YouTubeAuthGenerator()
325
325
-
await generator.handleRefreshToken(args[1])
326
326
-
return
327
327
-
}
336
336
+
const main = defineCommand({
337
337
+
meta: {
338
338
+
name: 'youtube-auth',
339
339
+
version: '1.0.0',
340
340
+
description: 'YouTube OAuth Token Generator',
341
341
+
},
342
342
+
args: {
343
343
+
credentials: {
344
344
+
type: 'positional',
345
345
+
description: 'Path to credentials JSON file',
346
346
+
required: false,
347
347
+
},
348
348
+
},
349
349
+
subCommands: {
350
350
+
generate: defineCommand({
351
351
+
meta: {
352
352
+
name: 'generate',
353
353
+
description: 'Generate new YouTube access and refresh tokens',
354
354
+
},
355
355
+
args: {
356
356
+
credentials: {
357
357
+
type: 'positional',
358
358
+
description: 'Path to credentials JSON file',
359
359
+
required: false,
360
360
+
},
361
361
+
},
362
362
+
async run ({ args }) {
363
363
+
const credentialsPath = typeof args.credentials === 'string' ? args.credentials : undefined
364
364
+
const generator = new YouTubeAuthGenerator(credentialsPath)
328
365
329
329
-
// Normal authorization flow
330
330
-
const credentialsPath = args[0]
331
331
-
const generator = new YouTubeAuthGenerator(credentialsPath)
366
366
+
try {
367
367
+
const tokens = await generator.generateTokens()
368
368
+
if (!tokens) {
369
369
+
console.error('❌ Failed to generate tokens')
370
370
+
process.exit(1)
371
371
+
}
372
372
+
generator.displayResults(tokens)
373
373
+
}
374
374
+
catch (error) {
375
375
+
console.error('❌ Failed to generate tokens:', error instanceof Error ? error.message : error)
376
376
+
process.exit(1)
377
377
+
}
378
378
+
},
379
379
+
}),
380
380
+
refresh: defineCommand({
381
381
+
meta: {
382
382
+
name: 'refresh',
383
383
+
description: 'Refresh an existing access token',
384
384
+
},
385
385
+
args: {
386
386
+
token: {
387
387
+
type: 'positional',
388
388
+
description: 'Refresh token to use',
389
389
+
required: true,
390
390
+
},
391
391
+
},
392
392
+
async run ({ args }) {
393
393
+
if (typeof args.token !== 'string') {
394
394
+
console.error('❌ Please provide a refresh token: youtube-auth refresh "your_refresh_token"')
395
395
+
process.exit(1)
396
396
+
}
332
397
333
333
-
try {
334
334
-
const tokens = await generator.generateTokens()
335
335
-
if (!tokens) {
336
336
-
console.error('❌ Failed to generate tokens')
337
337
-
process.exit(1)
338
338
-
}
339
339
-
generator.displayResults(tokens)
340
340
-
}
341
341
-
catch (error) {
342
342
-
console.error('❌ Failed to generate tokens:', error.message)
343
343
-
process.exit(1)
344
344
-
}
345
345
-
}
398
398
+
const generator = new YouTubeAuthGenerator()
399
399
+
await generator.handleRefreshToken(args.token)
400
400
+
},
401
401
+
}),
402
402
+
},
403
403
+
})
346
404
347
405
// Handle graceful shutdown
348
406
process.on('SIGINT', () => {
···
350
408
process.exit(0)
351
409
})
352
410
353
353
-
main().catch(console.error)
411
411
+
runMain(main)