+14
-3
.cspell.json
+14
-3
.cspell.json
···
146
146
"vuepress",
147
147
"vurl",
148
148
"WCAG",
149
+
"webp",
149
150
"wght",
150
151
"whitebreeze",
151
152
"WhiteWind",
···
155
156
"xrpc"
156
157
],
157
158
"flagWords": [],
158
-
"ignorePaths": ["node_modules", "package-lock.json", "dist", "build"],
159
-
"ignoreRegExpList": ["/(\\w+)'s/g"],
159
+
"ignorePaths": [
160
+
"node_modules",
161
+
"package-lock.json",
162
+
"dist",
163
+
"build"
164
+
],
165
+
"ignoreRegExpList": [
166
+
"/(\\w+)'s/g"
167
+
],
160
168
"overrides": [
161
169
{
162
170
"filename": "**/*.svelte",
163
-
"ignoreRegExpList": ["/>.*</", "/(\\w+)'s/g"]
171
+
"ignoreRegExpList": [
172
+
"/>.*</",
173
+
"/(\\w+)'s/g"
174
+
]
164
175
}
165
176
]
166
177
}
+35
.vercelignore
+35
.vercelignore
···
1
+
# Dependencies
2
+
node_modules
3
+
npm-debug.log
4
+
.pnpm-debug.log
5
+
yarn-error.log
6
+
7
+
# Build outputs
8
+
.svelte-kit
9
+
build
10
+
dist
11
+
.vercel_build_output
12
+
13
+
# Environment files (keep .env.example)
14
+
.env
15
+
.env.*
16
+
!.env.example
17
+
18
+
# IDE files
19
+
.vscode
20
+
.idea
21
+
*.swp
22
+
*.swo
23
+
*~
24
+
25
+
# OS files
26
+
.DS_Store
27
+
Thumbs.db
28
+
29
+
# Testing
30
+
coverage
31
+
.nyc_output
32
+
33
+
# Misc
34
+
*.log
35
+
.cache
+489
-43
package-lock.json
+489
-43
package-lock.json
···
13
13
"hls.js": "^1.6.15"
14
14
},
15
15
"devDependencies": {
16
-
"@sveltejs/adapter-auto": "^7.0.0",
16
+
"@sveltejs/adapter-vercel": "^6.2.0",
17
17
"@sveltejs/kit": "^2.49.0",
18
18
"@sveltejs/vite-plugin-svelte": "^6.2.1",
19
19
"@tailwindcss/typography": "^0.5.19",
···
29
29
}
30
30
},
31
31
"node_modules/@atproto/api": {
32
-
"version": "0.18.1",
33
-
"resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.18.1.tgz",
34
-
"integrity": "sha512-eK8Us3kRfK+KjxEq/abF3XL4qtqxh7a5GbKHaUGQqPxNGmLiIdFn4Ve4PkpP/OsDfcRMZF5CK47Jr7SARc7ttg==",
32
+
"version": "0.18.3",
33
+
"resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.18.3.tgz",
34
+
"integrity": "sha512-CBqyZfkcKYsr348KP4CKb9plMlZ5A96HwA/DnYscPBl6fvMZkAezAjniZX+xUILASHQJg5c+NaNw9xP8ZuyyDQ==",
35
35
"license": "MIT",
36
36
"dependencies": {
37
-
"@atproto/common-web": "^0.4.3",
38
-
"@atproto/lexicon": "^0.5.1",
37
+
"@atproto/common-web": "^0.4.5",
38
+
"@atproto/lexicon": "^0.5.2",
39
39
"@atproto/syntax": "^0.4.1",
40
-
"@atproto/xrpc": "^0.7.5",
40
+
"@atproto/xrpc": "^0.7.6",
41
41
"await-lock": "^2.2.2",
42
42
"multiformats": "^9.9.0",
43
43
"tlds": "^1.234.0",
···
45
45
}
46
46
},
47
47
"node_modules/@atproto/common-web": {
48
-
"version": "0.4.3",
49
-
"resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.3.tgz",
50
-
"integrity": "sha512-nRDINmSe4VycJzPo6fP/hEltBcULFxt9Kw7fQk6405FyAWZiTluYHlXOnU7GkQfeUK44OENG1qFTBcmCJ7e8pg==",
48
+
"version": "0.4.5",
49
+
"resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.5.tgz",
50
+
"integrity": "sha512-Tx0xUafLm3vRvOQpbBl5eb9V8xlC7TaRXs6dAulHRkDG3Kb+P9qn3pkDteq+aeMshbVXbVa1rm3Ok4vFyuoyYA==",
51
51
"license": "MIT",
52
52
"dependencies": {
53
-
"graphemer": "^1.4.0",
53
+
"@atproto/lex-data": "0.0.1",
54
+
"@atproto/lex-json": "0.0.1",
55
+
"zod": "^3.23.8"
56
+
}
57
+
},
58
+
"node_modules/@atproto/lex-data": {
59
+
"version": "0.0.1",
60
+
"resolved": "https://registry.npmjs.org/@atproto/lex-data/-/lex-data-0.0.1.tgz",
61
+
"integrity": "sha512-DrS/8cQcQs3s5t9ELAFNtyDZ8/PdiCx47ALtFEP2GnX2uCBHZRkqWG7xmu6ehjc787nsFzZBvlnz3T/gov5fGA==",
62
+
"license": "MIT",
63
+
"dependencies": {
64
+
"@atproto/syntax": "0.4.1",
54
65
"multiformats": "^9.9.0",
66
+
"tslib": "^2.8.1",
55
67
"uint8arrays": "3.0.0",
56
-
"zod": "^3.23.8"
68
+
"unicode-segmenter": "^0.14.0"
69
+
}
70
+
},
71
+
"node_modules/@atproto/lex-json": {
72
+
"version": "0.0.1",
73
+
"resolved": "https://registry.npmjs.org/@atproto/lex-json/-/lex-json-0.0.1.tgz",
74
+
"integrity": "sha512-ivcF7+pDRuD/P97IEKQ/9TruunXj0w58Khvwk3M6psaI5eZT6LRsRZ4cWcKaXiFX4SHnjy+x43g0f7pPtIsERg==",
75
+
"license": "MIT",
76
+
"dependencies": {
77
+
"@atproto/lex-data": "0.0.1",
78
+
"tslib": "^2.8.1"
57
79
}
58
80
},
59
81
"node_modules/@atproto/lexicon": {
60
-
"version": "0.5.1",
61
-
"resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.5.1.tgz",
62
-
"integrity": "sha512-y8AEtYmfgVl4fqFxqXAeGvhesiGkxiy3CWoJIfsFDDdTlZUC8DFnZrYhcqkIop3OlCkkljvpSJi1hbeC1tbi8A==",
82
+
"version": "0.5.2",
83
+
"resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.5.2.tgz",
84
+
"integrity": "sha512-lRmJgMA8f5j7VB5Iu5cp188ald5FuI4FlmZ7nn6EBrk1dgOstWVrI5Ft6K3z2vjyLZRG6nzknlsw+tDP63p7bQ==",
63
85
"license": "MIT",
64
86
"dependencies": {
65
-
"@atproto/common-web": "^0.4.3",
87
+
"@atproto/common-web": "^0.4.4",
66
88
"@atproto/syntax": "^0.4.1",
67
89
"iso-datestring-validator": "^2.2.2",
68
90
"multiformats": "^9.9.0",
···
76
98
"license": "MIT"
77
99
},
78
100
"node_modules/@atproto/xrpc": {
79
-
"version": "0.7.5",
80
-
"resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.7.5.tgz",
81
-
"integrity": "sha512-MUYNn5d2hv8yVegRL0ccHvTHAVj5JSnW07bkbiaz96UH45lvYNRVwt44z+yYVnb0/mvBzyD3/ZQ55TRGt7fHkA==",
101
+
"version": "0.7.6",
102
+
"resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.7.6.tgz",
103
+
"integrity": "sha512-RvCf4j0JnKYWuz3QzsYCntJi3VuiAAybQsMIUw2wLWcHhchO9F7UaBZINLL2z0qc/cYWPv5NSwcVydMseoCZLA==",
82
104
"license": "MIT",
83
105
"dependencies": {
84
-
"@atproto/lexicon": "^0.5.1",
106
+
"@atproto/lexicon": "^0.5.2",
85
107
"zod": "^3.23.8"
86
108
}
87
109
},
···
527
549
"node": ">=18"
528
550
}
529
551
},
552
+
"node_modules/@isaacs/balanced-match": {
553
+
"version": "4.0.1",
554
+
"resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
555
+
"integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
556
+
"dev": true,
557
+
"license": "MIT",
558
+
"engines": {
559
+
"node": "20 || >=22"
560
+
}
561
+
},
562
+
"node_modules/@isaacs/brace-expansion": {
563
+
"version": "5.0.0",
564
+
"resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
565
+
"integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
566
+
"dev": true,
567
+
"license": "MIT",
568
+
"dependencies": {
569
+
"@isaacs/balanced-match": "^4.0.1"
570
+
},
571
+
"engines": {
572
+
"node": "20 || >=22"
573
+
}
574
+
},
575
+
"node_modules/@isaacs/fs-minipass": {
576
+
"version": "4.0.1",
577
+
"resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
578
+
"integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
579
+
"dev": true,
580
+
"license": "ISC",
581
+
"dependencies": {
582
+
"minipass": "^7.0.4"
583
+
},
584
+
"engines": {
585
+
"node": ">=18.0.0"
586
+
}
587
+
},
530
588
"node_modules/@jridgewell/gen-mapping": {
531
589
"version": "0.3.13",
532
590
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
···
581
639
"svelte": "^5"
582
640
}
583
641
},
642
+
"node_modules/@mapbox/node-pre-gyp": {
643
+
"version": "2.0.3",
644
+
"resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-2.0.3.tgz",
645
+
"integrity": "sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==",
646
+
"dev": true,
647
+
"license": "BSD-3-Clause",
648
+
"dependencies": {
649
+
"consola": "^3.2.3",
650
+
"detect-libc": "^2.0.0",
651
+
"https-proxy-agent": "^7.0.5",
652
+
"node-fetch": "^2.6.7",
653
+
"nopt": "^8.0.0",
654
+
"semver": "^7.5.3",
655
+
"tar": "^7.4.0"
656
+
},
657
+
"bin": {
658
+
"node-pre-gyp": "bin/node-pre-gyp"
659
+
},
660
+
"engines": {
661
+
"node": ">=18"
662
+
}
663
+
},
584
664
"node_modules/@polka/url": {
585
665
"version": "1.0.0-next.29",
586
666
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz",
···
588
668
"dev": true,
589
669
"license": "MIT"
590
670
},
671
+
"node_modules/@rollup/pluginutils": {
672
+
"version": "5.3.0",
673
+
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
674
+
"integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
675
+
"dev": true,
676
+
"license": "MIT",
677
+
"dependencies": {
678
+
"@types/estree": "^1.0.0",
679
+
"estree-walker": "^2.0.2",
680
+
"picomatch": "^4.0.2"
681
+
},
682
+
"engines": {
683
+
"node": ">=14.0.0"
684
+
},
685
+
"peerDependencies": {
686
+
"rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
687
+
},
688
+
"peerDependenciesMeta": {
689
+
"rollup": {
690
+
"optional": true
691
+
}
692
+
}
693
+
},
591
694
"node_modules/@rollup/rollup-android-arm-eabi": {
592
695
"version": "4.53.3",
593
696
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz",
···
912
1015
"acorn": "^8.9.0"
913
1016
}
914
1017
},
915
-
"node_modules/@sveltejs/adapter-auto": {
916
-
"version": "7.0.0",
917
-
"resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-7.0.0.tgz",
918
-
"integrity": "sha512-ImDWaErTOCkRS4Gt+5gZuymKFBobnhChXUZ9lhUZLahUgvA4OOvRzi3sahzYgbxGj5nkA6OV0GAW378+dl/gyw==",
1018
+
"node_modules/@sveltejs/adapter-vercel": {
1019
+
"version": "6.2.0",
1020
+
"resolved": "https://registry.npmjs.org/@sveltejs/adapter-vercel/-/adapter-vercel-6.2.0.tgz",
1021
+
"integrity": "sha512-JojC+3dcxNKxO6ixoHq7k1QRL2KCX7RzwfXp1vwbLZkKZrPc5KvhbutVYYiIe0C3aky7VJU6kWp1k9a4b1mgoA==",
919
1022
"dev": true,
920
1023
"license": "MIT",
1024
+
"dependencies": {
1025
+
"@vercel/nft": "^1.0.0",
1026
+
"esbuild": "^0.25.4"
1027
+
},
1028
+
"engines": {
1029
+
"node": ">=20.0"
1030
+
},
921
1031
"peerDependencies": {
922
-
"@sveltejs/kit": "^2.0.0"
1032
+
"@sveltejs/kit": "^2.4.0"
923
1033
}
924
1034
},
925
1035
"node_modules/@sveltejs/kit": {
···
1300
1410
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
1301
1411
"license": "MIT"
1302
1412
},
1413
+
"node_modules/@vercel/nft": {
1414
+
"version": "1.1.1",
1415
+
"resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-1.1.1.tgz",
1416
+
"integrity": "sha512-mKMGa7CEUcXU75474kOeqHbtvK1kAcu4wiahhmlUenB5JbTQB8wVlDI8CyHR3rpGo0qlzoRWqcDzI41FUoBJCA==",
1417
+
"dev": true,
1418
+
"license": "MIT",
1419
+
"dependencies": {
1420
+
"@mapbox/node-pre-gyp": "^2.0.0",
1421
+
"@rollup/pluginutils": "^5.1.3",
1422
+
"acorn": "^8.6.0",
1423
+
"acorn-import-attributes": "^1.9.5",
1424
+
"async-sema": "^3.1.1",
1425
+
"bindings": "^1.4.0",
1426
+
"estree-walker": "2.0.2",
1427
+
"glob": "^13.0.0",
1428
+
"graceful-fs": "^4.2.9",
1429
+
"node-gyp-build": "^4.2.2",
1430
+
"picomatch": "^4.0.2",
1431
+
"resolve-from": "^5.0.0"
1432
+
},
1433
+
"bin": {
1434
+
"nft": "out/cli.js"
1435
+
},
1436
+
"engines": {
1437
+
"node": ">=20"
1438
+
}
1439
+
},
1440
+
"node_modules/abbrev": {
1441
+
"version": "3.0.1",
1442
+
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz",
1443
+
"integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==",
1444
+
"dev": true,
1445
+
"license": "ISC",
1446
+
"engines": {
1447
+
"node": "^18.17.0 || >=20.5.0"
1448
+
}
1449
+
},
1303
1450
"node_modules/acorn": {
1304
1451
"version": "8.15.0",
1305
1452
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
···
1313
1460
"node": ">=0.4.0"
1314
1461
}
1315
1462
},
1463
+
"node_modules/acorn-import-attributes": {
1464
+
"version": "1.9.5",
1465
+
"resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
1466
+
"integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
1467
+
"dev": true,
1468
+
"license": "MIT",
1469
+
"peerDependencies": {
1470
+
"acorn": "^8"
1471
+
}
1472
+
},
1473
+
"node_modules/agent-base": {
1474
+
"version": "7.1.4",
1475
+
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
1476
+
"integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
1477
+
"dev": true,
1478
+
"license": "MIT",
1479
+
"engines": {
1480
+
"node": ">= 14"
1481
+
}
1482
+
},
1316
1483
"node_modules/aria-query": {
1317
1484
"version": "5.3.2",
1318
1485
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
···
1322
1489
"node": ">= 0.4"
1323
1490
}
1324
1491
},
1492
+
"node_modules/async-sema": {
1493
+
"version": "3.1.1",
1494
+
"resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz",
1495
+
"integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==",
1496
+
"dev": true,
1497
+
"license": "MIT"
1498
+
},
1325
1499
"node_modules/await-lock": {
1326
1500
"version": "2.2.2",
1327
1501
"resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz",
···
1337
1511
"node": ">= 0.4"
1338
1512
}
1339
1513
},
1514
+
"node_modules/bindings": {
1515
+
"version": "1.5.0",
1516
+
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
1517
+
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
1518
+
"dev": true,
1519
+
"license": "MIT",
1520
+
"dependencies": {
1521
+
"file-uri-to-path": "1.0.0"
1522
+
}
1523
+
},
1340
1524
"node_modules/chokidar": {
1341
1525
"version": "4.0.3",
1342
1526
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
···
1353
1537
"url": "https://paulmillr.com/funding/"
1354
1538
}
1355
1539
},
1540
+
"node_modules/chownr": {
1541
+
"version": "3.0.0",
1542
+
"resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
1543
+
"integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
1544
+
"dev": true,
1545
+
"license": "BlueOak-1.0.0",
1546
+
"engines": {
1547
+
"node": ">=18"
1548
+
}
1549
+
},
1356
1550
"node_modules/clsx": {
1357
1551
"version": "2.1.1",
1358
1552
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
···
1362
1556
"node": ">=6"
1363
1557
}
1364
1558
},
1559
+
"node_modules/consola": {
1560
+
"version": "3.4.2",
1561
+
"resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
1562
+
"integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
1563
+
"dev": true,
1564
+
"license": "MIT",
1565
+
"engines": {
1566
+
"node": "^14.18.0 || >=16.10.0"
1567
+
}
1568
+
},
1365
1569
"node_modules/cookie": {
1366
1570
"version": "0.6.0",
1367
1571
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
···
1427
1631
"version": "5.5.0",
1428
1632
"resolved": "https://registry.npmjs.org/devalue/-/devalue-5.5.0.tgz",
1429
1633
"integrity": "sha512-69sM5yrHfFLJt0AZ9QqZXGCPfJ7fQjvpln3Rq5+PS03LD32Ost1Q9N+eEnaQwGRIriKkMImXD56ocjQmfjbV3w==",
1430
-
"dev": true,
1431
1634
"license": "MIT"
1432
1635
},
1433
1636
"node_modules/enhanced-resolve": {
···
1493
1696
"license": "MIT"
1494
1697
},
1495
1698
"node_modules/esrap": {
1496
-
"version": "2.1.3",
1497
-
"resolved": "https://registry.npmjs.org/esrap/-/esrap-2.1.3.tgz",
1498
-
"integrity": "sha512-T/Dhhv/QH+yYmiaLz9SA3PW+YyenlnRKDNdtlYJrSOBmNsH4nvPux+mTwx7p+wAedlJrGoZtXNI0a0MjQ2QkVg==",
1699
+
"version": "2.2.0",
1700
+
"resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.0.tgz",
1701
+
"integrity": "sha512-WBmtxe7R9C5mvL4n2le8nMUe4mD5V9oiK2vJpQ9I3y20ENPUomPcphBXE8D1x/Bm84oN1V+lOfgXxtqmxTp3Xg==",
1499
1702
"license": "MIT",
1500
1703
"dependencies": {
1501
1704
"@jridgewell/sourcemap-codec": "^1.4.15"
1502
1705
}
1503
1706
},
1707
+
"node_modules/estree-walker": {
1708
+
"version": "2.0.2",
1709
+
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
1710
+
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
1711
+
"dev": true,
1712
+
"license": "MIT"
1713
+
},
1504
1714
"node_modules/fdir": {
1505
1715
"version": "6.5.0",
1506
1716
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
···
1519
1729
}
1520
1730
}
1521
1731
},
1732
+
"node_modules/file-uri-to-path": {
1733
+
"version": "1.0.0",
1734
+
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
1735
+
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
1736
+
"dev": true,
1737
+
"license": "MIT"
1738
+
},
1522
1739
"node_modules/fsevents": {
1523
1740
"version": "2.3.3",
1524
1741
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
···
1534
1751
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1535
1752
}
1536
1753
},
1754
+
"node_modules/glob": {
1755
+
"version": "13.0.0",
1756
+
"resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz",
1757
+
"integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==",
1758
+
"dev": true,
1759
+
"license": "BlueOak-1.0.0",
1760
+
"dependencies": {
1761
+
"minimatch": "^10.1.1",
1762
+
"minipass": "^7.1.2",
1763
+
"path-scurry": "^2.0.0"
1764
+
},
1765
+
"engines": {
1766
+
"node": "20 || >=22"
1767
+
},
1768
+
"funding": {
1769
+
"url": "https://github.com/sponsors/isaacs"
1770
+
}
1771
+
},
1537
1772
"node_modules/graceful-fs": {
1538
1773
"version": "4.2.11",
1539
1774
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
···
1541
1776
"dev": true,
1542
1777
"license": "ISC"
1543
1778
},
1544
-
"node_modules/graphemer": {
1545
-
"version": "1.4.0",
1546
-
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
1547
-
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
1548
-
"license": "MIT"
1549
-
},
1550
1779
"node_modules/hls.js": {
1551
1780
"version": "1.6.15",
1552
1781
"resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.15.tgz",
1553
1782
"integrity": "sha512-E3a5VwgXimGHwpRGV+WxRTKeSp2DW5DI5MWv34ulL3t5UNmyJWCQ1KmLEHbYzcfThfXG8amBL+fCYPneGHC4VA==",
1554
1783
"license": "Apache-2.0"
1784
+
},
1785
+
"node_modules/https-proxy-agent": {
1786
+
"version": "7.0.6",
1787
+
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
1788
+
"integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
1789
+
"dev": true,
1790
+
"license": "MIT",
1791
+
"dependencies": {
1792
+
"agent-base": "^7.1.2",
1793
+
"debug": "4"
1794
+
},
1795
+
"engines": {
1796
+
"node": ">= 14"
1797
+
}
1555
1798
},
1556
1799
"node_modules/is-reference": {
1557
1800
"version": "3.0.3",
···
1855
2098
"integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==",
1856
2099
"license": "MIT"
1857
2100
},
2101
+
"node_modules/lru-cache": {
2102
+
"version": "11.2.2",
2103
+
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz",
2104
+
"integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==",
2105
+
"dev": true,
2106
+
"license": "ISC",
2107
+
"engines": {
2108
+
"node": "20 || >=22"
2109
+
}
2110
+
},
1858
2111
"node_modules/magic-string": {
1859
2112
"version": "0.30.21",
1860
2113
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
···
1864
2117
"@jridgewell/sourcemap-codec": "^1.5.5"
1865
2118
}
1866
2119
},
2120
+
"node_modules/minimatch": {
2121
+
"version": "10.1.1",
2122
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
2123
+
"integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
2124
+
"dev": true,
2125
+
"license": "BlueOak-1.0.0",
2126
+
"dependencies": {
2127
+
"@isaacs/brace-expansion": "^5.0.0"
2128
+
},
2129
+
"engines": {
2130
+
"node": "20 || >=22"
2131
+
},
2132
+
"funding": {
2133
+
"url": "https://github.com/sponsors/isaacs"
2134
+
}
2135
+
},
2136
+
"node_modules/minipass": {
2137
+
"version": "7.1.2",
2138
+
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
2139
+
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
2140
+
"dev": true,
2141
+
"license": "ISC",
2142
+
"engines": {
2143
+
"node": ">=16 || 14 >=14.17"
2144
+
}
2145
+
},
2146
+
"node_modules/minizlib": {
2147
+
"version": "3.1.0",
2148
+
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
2149
+
"integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
2150
+
"dev": true,
2151
+
"license": "MIT",
2152
+
"dependencies": {
2153
+
"minipass": "^7.1.2"
2154
+
},
2155
+
"engines": {
2156
+
"node": ">= 18"
2157
+
}
2158
+
},
1867
2159
"node_modules/mri": {
1868
2160
"version": "1.2.0",
1869
2161
"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
···
1916
2208
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1917
2209
}
1918
2210
},
2211
+
"node_modules/node-fetch": {
2212
+
"version": "2.7.0",
2213
+
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
2214
+
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
2215
+
"dev": true,
2216
+
"license": "MIT",
2217
+
"dependencies": {
2218
+
"whatwg-url": "^5.0.0"
2219
+
},
2220
+
"engines": {
2221
+
"node": "4.x || >=6.0.0"
2222
+
},
2223
+
"peerDependencies": {
2224
+
"encoding": "^0.1.0"
2225
+
},
2226
+
"peerDependenciesMeta": {
2227
+
"encoding": {
2228
+
"optional": true
2229
+
}
2230
+
}
2231
+
},
2232
+
"node_modules/node-gyp-build": {
2233
+
"version": "4.8.4",
2234
+
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
2235
+
"integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
2236
+
"dev": true,
2237
+
"license": "MIT",
2238
+
"bin": {
2239
+
"node-gyp-build": "bin.js",
2240
+
"node-gyp-build-optional": "optional.js",
2241
+
"node-gyp-build-test": "build-test.js"
2242
+
}
2243
+
},
2244
+
"node_modules/nopt": {
2245
+
"version": "8.1.0",
2246
+
"resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz",
2247
+
"integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==",
2248
+
"dev": true,
2249
+
"license": "ISC",
2250
+
"dependencies": {
2251
+
"abbrev": "^3.0.0"
2252
+
},
2253
+
"bin": {
2254
+
"nopt": "bin/nopt.js"
2255
+
},
2256
+
"engines": {
2257
+
"node": "^18.17.0 || >=20.5.0"
2258
+
}
2259
+
},
2260
+
"node_modules/path-scurry": {
2261
+
"version": "2.0.1",
2262
+
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz",
2263
+
"integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==",
2264
+
"dev": true,
2265
+
"license": "BlueOak-1.0.0",
2266
+
"dependencies": {
2267
+
"lru-cache": "^11.0.0",
2268
+
"minipass": "^7.1.2"
2269
+
},
2270
+
"engines": {
2271
+
"node": "20 || >=22"
2272
+
},
2273
+
"funding": {
2274
+
"url": "https://github.com/sponsors/isaacs"
2275
+
}
2276
+
},
1919
2277
"node_modules/picocolors": {
1920
2278
"version": "1.1.1",
1921
2279
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
···
1929
2287
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
1930
2288
"dev": true,
1931
2289
"license": "MIT",
1932
-
"peer": true,
1933
2290
"engines": {
1934
2291
"node": ">=12"
1935
2292
},
···
1981
2338
}
1982
2339
},
1983
2340
"node_modules/prettier": {
1984
-
"version": "3.6.2",
1985
-
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
1986
-
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
2341
+
"version": "3.7.2",
2342
+
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.2.tgz",
2343
+
"integrity": "sha512-n3HV2J6QhItCXndGa3oMWvWFAgN1ibnS7R9mt6iokScBOC0Ul9/iZORmU2IWUMcyAQaMPjTlY3uT34TqocUxMA==",
1987
2344
"dev": true,
1988
2345
"license": "MIT",
1989
2346
"peer": true,
···
2102
2459
"url": "https://paulmillr.com/funding/"
2103
2460
}
2104
2461
},
2462
+
"node_modules/resolve-from": {
2463
+
"version": "5.0.0",
2464
+
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
2465
+
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
2466
+
"dev": true,
2467
+
"license": "MIT",
2468
+
"engines": {
2469
+
"node": ">=8"
2470
+
}
2471
+
},
2105
2472
"node_modules/rollup": {
2106
2473
"version": "4.53.3",
2107
2474
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz",
2108
2475
"integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==",
2109
2476
"dev": true,
2110
2477
"license": "MIT",
2478
+
"peer": true,
2111
2479
"dependencies": {
2112
2480
"@types/estree": "1.0.8"
2113
2481
},
···
2157
2525
"node": ">=6"
2158
2526
}
2159
2527
},
2528
+
"node_modules/semver": {
2529
+
"version": "7.7.3",
2530
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
2531
+
"integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
2532
+
"dev": true,
2533
+
"license": "ISC",
2534
+
"bin": {
2535
+
"semver": "bin/semver.js"
2536
+
},
2537
+
"engines": {
2538
+
"node": ">=10"
2539
+
}
2540
+
},
2160
2541
"node_modules/set-cookie-parser": {
2161
2542
"version": "2.7.2",
2162
2543
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz",
···
2190
2571
}
2191
2572
},
2192
2573
"node_modules/svelte": {
2193
-
"version": "5.43.14",
2194
-
"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.43.14.tgz",
2195
-
"integrity": "sha512-pHeUrp1A5S6RGaXhJB7PtYjL1VVjbVrJ2EfuAoPu9/1LeoMaJa/pcdCsCSb0gS4eUHAHnhCbUDxORZyvGK6kOQ==",
2574
+
"version": "5.45.2",
2575
+
"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.45.2.tgz",
2576
+
"integrity": "sha512-yyXdW2u3H0H/zxxWoGwJoQlRgaSJLp+Vhktv12iRw2WRDlKqUPT54Fi0K/PkXqrdkcQ98aBazpy0AH4BCBVfoA==",
2196
2577
"license": "MIT",
2197
2578
"peer": true,
2198
2579
"dependencies": {
···
2204
2585
"aria-query": "^5.3.1",
2205
2586
"axobject-query": "^4.1.0",
2206
2587
"clsx": "^2.1.1",
2588
+
"devalue": "^5.5.0",
2207
2589
"esm-env": "^1.2.1",
2208
-
"esrap": "^2.1.0",
2590
+
"esrap": "^2.2.0",
2209
2591
"is-reference": "^3.0.3",
2210
2592
"locate-character": "^3.0.0",
2211
2593
"magic-string": "^0.30.11",
···
2261
2643
"url": "https://opencollective.com/webpack"
2262
2644
}
2263
2645
},
2646
+
"node_modules/tar": {
2647
+
"version": "7.5.2",
2648
+
"resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz",
2649
+
"integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==",
2650
+
"dev": true,
2651
+
"license": "BlueOak-1.0.0",
2652
+
"dependencies": {
2653
+
"@isaacs/fs-minipass": "^4.0.0",
2654
+
"chownr": "^3.0.0",
2655
+
"minipass": "^7.1.2",
2656
+
"minizlib": "^3.1.0",
2657
+
"yallist": "^5.0.0"
2658
+
},
2659
+
"engines": {
2660
+
"node": ">=18"
2661
+
}
2662
+
},
2264
2663
"node_modules/tinyglobby": {
2265
2664
"version": "0.2.15",
2266
2665
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
···
2297
2696
"node": ">=6"
2298
2697
}
2299
2698
},
2699
+
"node_modules/tr46": {
2700
+
"version": "0.0.3",
2701
+
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
2702
+
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
2703
+
"dev": true,
2704
+
"license": "MIT"
2705
+
},
2706
+
"node_modules/tslib": {
2707
+
"version": "2.8.1",
2708
+
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
2709
+
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
2710
+
"license": "0BSD"
2711
+
},
2300
2712
"node_modules/typescript": {
2301
2713
"version": "5.9.3",
2302
2714
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
···
2321
2733
"multiformats": "^9.4.2"
2322
2734
}
2323
2735
},
2736
+
"node_modules/unicode-segmenter": {
2737
+
"version": "0.14.0",
2738
+
"resolved": "https://registry.npmjs.org/unicode-segmenter/-/unicode-segmenter-0.14.0.tgz",
2739
+
"integrity": "sha512-AH4lhPCJANUnSLEKnM4byboctePJzltF4xj8b+NbNiYeAkAXGh7px2K/4NANFp7dnr6+zB3e6HLu8Jj8SKyvYg==",
2740
+
"license": "MIT"
2741
+
},
2324
2742
"node_modules/util-deprecate": {
2325
2743
"version": "1.0.2",
2326
2744
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
···
2422
2840
"vite": {
2423
2841
"optional": true
2424
2842
}
2843
+
}
2844
+
},
2845
+
"node_modules/webidl-conversions": {
2846
+
"version": "3.0.1",
2847
+
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
2848
+
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
2849
+
"dev": true,
2850
+
"license": "BSD-2-Clause"
2851
+
},
2852
+
"node_modules/whatwg-url": {
2853
+
"version": "5.0.0",
2854
+
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
2855
+
"integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
2856
+
"dev": true,
2857
+
"license": "MIT",
2858
+
"dependencies": {
2859
+
"tr46": "~0.0.3",
2860
+
"webidl-conversions": "^3.0.0"
2861
+
}
2862
+
},
2863
+
"node_modules/yallist": {
2864
+
"version": "5.0.0",
2865
+
"resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
2866
+
"integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
2867
+
"dev": true,
2868
+
"license": "BlueOak-1.0.0",
2869
+
"engines": {
2870
+
"node": ">=18"
2425
2871
}
2426
2872
},
2427
2873
"node_modules/zimmerframe": {
+1
-1
package.json
+1
-1
package.json
+46
-7
svelte.config.js
+46
-7
svelte.config.js
···
1
-
import adapter from '@sveltejs/adapter-auto';
1
+
import adapter from '@sveltejs/adapter-vercel';
2
2
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
3
3
4
4
/** @type {import('@sveltejs/kit').Config} */
5
5
const config = {
6
-
// Consult https://svelte.dev/docs/kit/integrations
7
-
// for more information about preprocessors
8
6
preprocess: vitePreprocess(),
7
+
9
8
kit: {
10
-
// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
11
-
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
12
-
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
13
-
adapter: adapter()
9
+
adapter: adapter({
10
+
// Vercel adapter configuration
11
+
runtime: 'nodejs20.x',
12
+
regions: ['iad1'], // Default to US East (adjust based on your target audience)
13
+
split: false, // Set to true to deploy routes as individual functions
14
+
15
+
// Edge runtime configuration (uncomment to use Edge Functions)
16
+
// runtime: 'edge',
17
+
// regions: 'all', // Deploy to all edge regions
18
+
19
+
// Memory and execution limits
20
+
memory: 1024, // MB (256, 512, 1024, 3008)
21
+
maxDuration: 10 // seconds (max execution time)
22
+
}),
23
+
24
+
// Alias configuration for cleaner imports
25
+
alias: {
26
+
$components: 'src/lib/components',
27
+
$lib: 'src/lib',
28
+
$utils: 'src/lib/utils',
29
+
$services: 'src/lib/services',
30
+
$helper: 'src/lib/helper'
31
+
},
32
+
33
+
// Prerender configuration
34
+
prerender: {
35
+
handleHttpError: 'warn',
36
+
handleMissingId: 'warn',
37
+
entries: ['*'] // Prerender all discoverable pages
38
+
},
39
+
40
+
// CSP configuration for security
41
+
csp: {
42
+
mode: 'auto',
43
+
directives: {
44
+
'default-src': ['self'],
45
+
'script-src': ['self', 'unsafe-inline'],
46
+
'style-src': ['self', 'unsafe-inline'],
47
+
'img-src': ['self', 'data:', 'https:'],
48
+
'font-src': ['self', 'data:'],
49
+
'connect-src': ['self', 'https:'],
50
+
'media-src': ['self', 'https:']
51
+
}
52
+
}
14
53
}
15
54
};
16
55
+56
vercel.json
+56
vercel.json
···
1
+
{
2
+
"$schema": "https://openapi.vercel.sh/vercel.json",
3
+
"buildCommand": "npm run build",
4
+
"devCommand": "npm run dev",
5
+
"installCommand": "npm install",
6
+
"framework": "sveltekit",
7
+
"git": {
8
+
"deploymentEnabled": {
9
+
"main": true
10
+
}
11
+
},
12
+
"headers": [
13
+
{
14
+
"source": "/fonts/:path*",
15
+
"headers": [
16
+
{
17
+
"key": "Cache-Control",
18
+
"value": "public, max-age=31536000, immutable"
19
+
}
20
+
]
21
+
},
22
+
{
23
+
"source": "/_app/immutable/:path*",
24
+
"headers": [
25
+
{
26
+
"key": "Cache-Control",
27
+
"value": "public, max-age=31536000, immutable"
28
+
}
29
+
]
30
+
},
31
+
{
32
+
"source": "/favicon.ico",
33
+
"headers": [
34
+
{
35
+
"key": "Cache-Control",
36
+
"value": "public, max-age=86400"
37
+
}
38
+
]
39
+
},
40
+
{
41
+
"source": "/:path*.(jpg|jpeg|png|gif|ico|svg|webp|avif)",
42
+
"headers": [
43
+
{
44
+
"key": "Cache-Control",
45
+
"value": "public, max-age=31536000, immutable"
46
+
}
47
+
]
48
+
}
49
+
],
50
+
"rewrites": [
51
+
{
52
+
"source": "/(.*)",
53
+
"destination": "/"
54
+
}
55
+
]
56
+
}
+37
-1
vite.config.ts
+37
-1
vite.config.ts
···
3
3
import { defineConfig } from 'vite';
4
4
5
5
export default defineConfig({
6
-
plugins: [tailwindcss(), sveltekit()]
6
+
plugins: [tailwindcss(), sveltekit()],
7
+
8
+
build: {
9
+
// Optimize chunk splitting for better caching
10
+
rollupOptions: {
11
+
output: {
12
+
manualChunks: {
13
+
// Split vendor code into separate chunks
14
+
'atproto': ['@atproto/api'],
15
+
'lucide': ['@lucide/svelte'],
16
+
'hls': ['hls.js']
17
+
}
18
+
}
19
+
},
20
+
// Target modern browsers for smaller bundle size
21
+
target: 'es2022',
22
+
// Enable minification
23
+
minify: 'esbuild',
24
+
// Source maps for production debugging (set to false to reduce bundle size)
25
+
sourcemap: false,
26
+
// CSS code splitting
27
+
cssCodeSplit: true,
28
+
// Chunk size warnings
29
+
chunkSizeWarningLimit: 1000
30
+
},
31
+
32
+
optimizeDeps: {
33
+
include: ['@atproto/api', '@lucide/svelte', 'hls.js'],
34
+
exclude: []
35
+
},
36
+
37
+
server: {
38
+
// Development server configuration
39
+
fs: {
40
+
strict: true
41
+
}
42
+
}
7
43
});