+6
-8
package.json
+6
-8
package.json
···
9
9
"serve": "vite preview"
10
10
},
11
11
"devDependencies": {
12
-
"@iconify-json/lucide": "^1.2.73",
12
+
"@iconify-json/lucide": "^1.2.74",
13
13
"@iconify/tailwind4": "^1.1.0",
14
14
"@tailwindcss/vite": "^4.1.17",
15
15
"prettier": "^3.6.2",
···
17
17
"prettier-plugin-tailwindcss": "^0.7.1",
18
18
"tailwindcss": "^4.1.17",
19
19
"typescript": "^5.9.3",
20
-
"vite": "^7.2.2",
20
+
"vite": "^7.2.4",
21
21
"vite-plugin-solid": "^2.11.10"
22
22
},
23
23
"dependencies": {
···
26
26
"@atcute/client": "^4.0.5",
27
27
"@atcute/crypto": "^2.2.6",
28
28
"@atcute/did-plc": "^0.2.0",
29
-
"@atcute/identity": "^1.1.2",
29
+
"@atcute/identity": "^1.1.3",
30
30
"@atcute/identity-resolver": "^1.1.4",
31
-
"@atcute/leaflet": "^1.0.12",
32
-
"@atcute/lexicon-doc": "^1.3.0",
33
-
"@atcute/lexicon-resolver": "^0.1.3",
34
-
"@atcute/lexicons": "^1.2.3",
31
+
"@atcute/lexicon-doc": "^2.0.1",
32
+
"@atcute/lexicon-resolver": "^0.1.4",
33
+
"@atcute/lexicons": "^1.2.4",
35
34
"@atcute/oauth-browser-client": "^2.0.1",
36
35
"@atcute/repo": "^0.1.0",
37
-
"@atcute/tangled": "^1.0.12",
38
36
"@atcute/tid": "^1.0.3",
39
37
"@codemirror/commands": "^6.10.0",
40
38
"@codemirror/lang-json": "^6.0.2",
+177
-202
pnpm-lock.yaml
+177
-202
pnpm-lock.yaml
···
24
24
specifier: ^0.2.0
25
25
version: 0.2.0
26
26
'@atcute/identity':
27
-
specifier: ^1.1.2
28
-
version: 1.1.2
27
+
specifier: ^1.1.3
28
+
version: 1.1.3
29
29
'@atcute/identity-resolver':
30
30
specifier: ^1.1.4
31
-
version: 1.1.4(@atcute/identity@1.1.2)
32
-
'@atcute/leaflet':
33
-
specifier: ^1.0.12
34
-
version: 1.0.12
31
+
version: 1.1.4(@atcute/identity@1.1.3)
35
32
'@atcute/lexicon-doc':
36
-
specifier: ^1.3.0
37
-
version: 1.3.0
33
+
specifier: ^2.0.1
34
+
version: 2.0.1
38
35
'@atcute/lexicon-resolver':
39
-
specifier: ^0.1.3
40
-
version: 0.1.3(@atcute/identity-resolver@1.1.4(@atcute/identity@1.1.2))(@atcute/identity@1.1.2)
36
+
specifier: ^0.1.4
37
+
version: 0.1.4(@atcute/identity-resolver@1.1.4(@atcute/identity@1.1.3))(@atcute/identity@1.1.3)
41
38
'@atcute/lexicons':
42
-
specifier: ^1.2.3
43
-
version: 1.2.3
39
+
specifier: ^1.2.4
40
+
version: 1.2.4
44
41
'@atcute/oauth-browser-client':
45
42
specifier: ^2.0.1
46
43
version: 2.0.1
47
44
'@atcute/repo':
48
45
specifier: ^0.1.0
49
46
version: 0.1.0
50
-
'@atcute/tangled':
51
-
specifier: ^1.0.12
52
-
version: 1.0.12
53
47
'@atcute/tid':
54
48
specifier: ^1.0.3
55
49
version: 1.0.3
···
94
88
version: 1.9.10
95
89
devDependencies:
96
90
'@iconify-json/lucide':
97
-
specifier: ^1.2.73
98
-
version: 1.2.73
91
+
specifier: ^1.2.74
92
+
version: 1.2.74
99
93
'@iconify/tailwind4':
100
94
specifier: ^1.1.0
101
95
version: 1.1.0(tailwindcss@4.1.17)
102
96
'@tailwindcss/vite':
103
97
specifier: ^4.1.17
104
-
version: 4.1.17(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2))
98
+
version: 4.1.17(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2))
105
99
prettier:
106
100
specifier: ^3.6.2
107
101
version: 3.6.2
···
118
112
specifier: ^5.9.3
119
113
version: 5.9.3
120
114
vite:
121
-
specifier: ^7.2.2
122
-
version: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)
115
+
specifier: ^7.2.4
116
+
version: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)
123
117
vite-plugin-solid:
124
118
specifier: ^2.11.10
125
-
version: 2.11.10(solid-js@1.9.10)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2))
119
+
version: 2.11.10(solid-js@1.9.10)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2))
126
120
127
121
packages:
128
122
···
144
138
'@atcute/car@5.0.0':
145
139
resolution: {integrity: sha512-OIY2xTXv8lSpZsDSn/UYQtJSMvDw5Hi4Q+uyvmiqSM+fht08QRAEq/nxa5YFciPZ3nfDFnZ3//EgJw7QhkSXLQ==}
146
140
147
-
'@atcute/cbor@2.2.7':
148
-
resolution: {integrity: sha512-/mwAF0gnokOphceZqFq3uzMGdd8sbw5y6bxF8CRutRkCCUcpjjpJc5fkLwhxyGgOveF3mZuHE6p7t/+IAqb7Aw==}
141
+
'@atcute/cbor@2.2.8':
142
+
resolution: {integrity: sha512-UzOAN9BuN6JCXgn0ryV8qZuRJUDrNqrbLd6EFM8jc6RYssjRyGRxNy6RZ1NU/07Hd8Tq/0pz8+nQiMu5Zai5uw==}
149
143
150
144
'@atcute/cid@2.2.6':
151
145
resolution: {integrity: sha512-bTAHHbJ24p+E//V4KCS4xdmd39o211jJswvqQOevj7vk+5IYcgDLx1ryZWZ1sEPOo9x875li/kj5gpKL14RDwQ==}
···
164
158
peerDependencies:
165
159
'@atcute/identity': ^1.0.0
166
160
167
-
'@atcute/identity@1.1.2':
168
-
resolution: {integrity: sha512-vn0RN7SUF6N0sEPG9yyT6a0MzpfVS8BhsiLtB8OeS4qp2rLMQW33pelCpNitP1N+fq03MFlDGzs5p7K4qMs4cA==}
161
+
'@atcute/identity@1.1.3':
162
+
resolution: {integrity: sha512-oIqPoI8TwWeQxvcLmFEZLdN2XdWcaLVtlm8pNk0E72As9HNzzD9pwKPrLr3rmTLRIoULPPFmq9iFNsTeCIU9ng==}
169
163
170
-
'@atcute/leaflet@1.0.12':
171
-
resolution: {integrity: sha512-T5laBTl8vwzy0eZXBy07IQSjsLqhbZmRJsffnNQ6XMSc+lnCZ/NHfuKy8TNJbDU6dc26Z7o5l0ELfWz5QESo+w==}
164
+
'@atcute/lexicon-doc@2.0.1':
165
+
resolution: {integrity: sha512-yWgcBYkvifczVODZSgdVkIljzIfdh50t+QXjkDL/FSu2RP43NGBEZ5xfZqJcT68/UoyE+doSg0dhvOEIlVGU/A==}
172
166
173
-
'@atcute/lexicon-doc@1.3.0':
174
-
resolution: {integrity: sha512-92mW9mBVXMbchF+aZP9L/5aziE+wyzHKc8LJH8rp0vabwni+ajkKlCk0otrneCKUB21RsNIRMk0zTbTRKRBXrA==}
175
-
176
-
'@atcute/lexicon-resolver@0.1.3':
177
-
resolution: {integrity: sha512-4AOS3KKm60GtBfl7ue/35xwZlylAuX5V2xmXnAmNoiN3vIauNkYawwRqgtni5q+EIV9R7p4D8tzkv58NaZ8fEQ==}
167
+
'@atcute/lexicon-resolver@0.1.4':
168
+
resolution: {integrity: sha512-8MAN3wrlP+PvyAbzHgzavaGeNNHq/r0LDEV4ABqDozHIZ2pcLR3O3J40UdiGW6ldeC/YciSkkmpl6f/zP3sXzw==}
178
169
peerDependencies:
179
170
'@atcute/identity': ^1.1.0
180
171
'@atcute/identity-resolver': ^1.1.3
181
172
182
-
'@atcute/lexicons@1.2.3':
183
-
resolution: {integrity: sha512-ZNfNWS4jaR8VgWSSBaWRSSmwFeP134BmvpTt9JmM2x5vRoXeIFthxU9USY8ZV4vm0GPoxEMgkDin8HIlnFTg2w==}
173
+
'@atcute/lexicons@1.2.4':
174
+
resolution: {integrity: sha512-s6fl/SVjQMv7jiitLCcZ434X+VrTsJt7Fl9iJg8WXHJIELRz/U0sNUoP++oWd7bvPy1Vcd2Wnm+YtTm/Zn7AIQ==}
184
175
185
176
'@atcute/mst@0.1.0':
186
177
resolution: {integrity: sha512-h+iDToKEnBpigk2DOHjSqY63vJtjYKUIztqu1CZ0P+I54wV2SrgoqAXAT1xrW6A1Iup8cjTv+U2H5WVG4KxPLw==}
···
193
184
194
185
'@atcute/repo@0.1.0':
195
186
resolution: {integrity: sha512-INiYAuma8dydBu7cqd2WVpcXh3mzhIepYBUqFWAK5MqMulPRLTRCc/9GW3G9pxYrOdlvLCVamG2Jf8XK0nuFEw==}
196
-
197
-
'@atcute/tangled@1.0.12':
198
-
resolution: {integrity: sha512-JKA5sOhd8SLhDFhY+PKHqLLytQBBKSiwcaEzfYUJBeyfvqXFPNNAwvRbe3VST4IQ3izoOu3O0R9/b1mjL45UzA==}
199
187
200
188
'@atcute/tid@1.0.3':
201
189
resolution: {integrity: sha512-wfMJx1IMdnu0CZgWl0uR4JO2s6PGT1YPhpytD4ZHzEYKKQVuqV6Eb/7vieaVo1eYNMp2FrY67FZObeR7utRl2w==}
···
294
282
resolution: {integrity: sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==}
295
283
engines: {node: '>= 18'}
296
284
297
-
'@codemirror/autocomplete@6.19.1':
298
-
resolution: {integrity: sha512-q6NenYkEy2fn9+JyjIxMWcNjzTL/IhwqfzOut1/G3PrIFkrbl4AL7Wkse5tLrQUUyqGoAKU5+Pi5jnnXxH5HGw==}
285
+
'@codemirror/autocomplete@6.20.0':
286
+
resolution: {integrity: sha512-bOwvTOIJcG5FVo5gUUupiwYh8MioPLQ4UcqbcRf7UQ98X90tCa9E1kZ3Z7tqwpZxYyOvh1YTYbmZE9RTfTp5hg==}
299
287
300
288
'@codemirror/commands@6.10.0':
301
289
resolution: {integrity: sha512-2xUIc5mHXQzT16JnyOFkh8PvfeXuIut3pslWGfsGOhxP/lpgRm9HOl/mpzLErgt5mXDovqA0d11P21gofRLb9w==}
···
634
622
'@codemirror/view': ^6.0.0
635
623
'@lezer/highlight': ^1.0.0
636
624
637
-
'@iconify-json/lucide@1.2.73':
638
-
resolution: {integrity: sha512-++HFkqDNu4jqG5+vYT+OcVj9OiuPCw9wQuh8G5QWQnBRSJ9eKwSStiU8ORgOoK07xJsm/0VIHySMniXUUXP9Gw==}
625
+
'@iconify-json/lucide@1.2.74':
626
+
resolution: {integrity: sha512-vDoGHcDZdWgUbt9J3TCJlxFzX/Mw0vUIAoZdkfI2mINOi1/cgVZHivgZ8QtiGlepskTL3PcG8t93Ky/vtQgXGA==}
639
627
640
628
'@iconify/tailwind4@1.1.0':
641
629
resolution: {integrity: sha512-HqgAYtYk4eFtLvdYfhQrBRT9ohToh+VJJVhHtJ7B4Qhw+J+mRPvGC9Wr6Cgtb36YbIWqBxWuBaAUw9TE/8m2/w==}
···
688
676
'@noble/secp256k1@3.0.0':
689
677
resolution: {integrity: sha512-NJBaR352KyIvj3t6sgT/+7xrNyF9Xk9QlLSIqUGVUYlsnDTAUqY8LOmwpcgEx4AMJXRITQ5XEVHD+mMaPfr3mg==}
690
678
691
-
'@rollup/rollup-android-arm-eabi@4.53.2':
692
-
resolution: {integrity: sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA==}
679
+
'@rollup/rollup-android-arm-eabi@4.53.3':
680
+
resolution: {integrity: sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==}
693
681
cpu: [arm]
694
682
os: [android]
695
683
696
-
'@rollup/rollup-android-arm64@4.53.2':
697
-
resolution: {integrity: sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g==}
684
+
'@rollup/rollup-android-arm64@4.53.3':
685
+
resolution: {integrity: sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==}
698
686
cpu: [arm64]
699
687
os: [android]
700
688
701
-
'@rollup/rollup-darwin-arm64@4.53.2':
702
-
resolution: {integrity: sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ==}
689
+
'@rollup/rollup-darwin-arm64@4.53.3':
690
+
resolution: {integrity: sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==}
703
691
cpu: [arm64]
704
692
os: [darwin]
705
693
706
-
'@rollup/rollup-darwin-x64@4.53.2':
707
-
resolution: {integrity: sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw==}
694
+
'@rollup/rollup-darwin-x64@4.53.3':
695
+
resolution: {integrity: sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==}
708
696
cpu: [x64]
709
697
os: [darwin]
710
698
711
-
'@rollup/rollup-freebsd-arm64@4.53.2':
712
-
resolution: {integrity: sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA==}
699
+
'@rollup/rollup-freebsd-arm64@4.53.3':
700
+
resolution: {integrity: sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==}
713
701
cpu: [arm64]
714
702
os: [freebsd]
715
703
716
-
'@rollup/rollup-freebsd-x64@4.53.2':
717
-
resolution: {integrity: sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA==}
704
+
'@rollup/rollup-freebsd-x64@4.53.3':
705
+
resolution: {integrity: sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==}
718
706
cpu: [x64]
719
707
os: [freebsd]
720
708
721
-
'@rollup/rollup-linux-arm-gnueabihf@4.53.2':
722
-
resolution: {integrity: sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg==}
709
+
'@rollup/rollup-linux-arm-gnueabihf@4.53.3':
710
+
resolution: {integrity: sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==}
723
711
cpu: [arm]
724
712
os: [linux]
725
713
726
-
'@rollup/rollup-linux-arm-musleabihf@4.53.2':
727
-
resolution: {integrity: sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q==}
714
+
'@rollup/rollup-linux-arm-musleabihf@4.53.3':
715
+
resolution: {integrity: sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==}
728
716
cpu: [arm]
729
717
os: [linux]
730
718
731
-
'@rollup/rollup-linux-arm64-gnu@4.53.2':
732
-
resolution: {integrity: sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA==}
719
+
'@rollup/rollup-linux-arm64-gnu@4.53.3':
720
+
resolution: {integrity: sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==}
733
721
cpu: [arm64]
734
722
os: [linux]
735
723
736
-
'@rollup/rollup-linux-arm64-musl@4.53.2':
737
-
resolution: {integrity: sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ==}
724
+
'@rollup/rollup-linux-arm64-musl@4.53.3':
725
+
resolution: {integrity: sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==}
738
726
cpu: [arm64]
739
727
os: [linux]
740
728
741
-
'@rollup/rollup-linux-loong64-gnu@4.53.2':
742
-
resolution: {integrity: sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ==}
729
+
'@rollup/rollup-linux-loong64-gnu@4.53.3':
730
+
resolution: {integrity: sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==}
743
731
cpu: [loong64]
744
732
os: [linux]
745
733
746
-
'@rollup/rollup-linux-ppc64-gnu@4.53.2':
747
-
resolution: {integrity: sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g==}
734
+
'@rollup/rollup-linux-ppc64-gnu@4.53.3':
735
+
resolution: {integrity: sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==}
748
736
cpu: [ppc64]
749
737
os: [linux]
750
738
751
-
'@rollup/rollup-linux-riscv64-gnu@4.53.2':
752
-
resolution: {integrity: sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA==}
739
+
'@rollup/rollup-linux-riscv64-gnu@4.53.3':
740
+
resolution: {integrity: sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==}
753
741
cpu: [riscv64]
754
742
os: [linux]
755
743
756
-
'@rollup/rollup-linux-riscv64-musl@4.53.2':
757
-
resolution: {integrity: sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ==}
744
+
'@rollup/rollup-linux-riscv64-musl@4.53.3':
745
+
resolution: {integrity: sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==}
758
746
cpu: [riscv64]
759
747
os: [linux]
760
748
761
-
'@rollup/rollup-linux-s390x-gnu@4.53.2':
762
-
resolution: {integrity: sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w==}
749
+
'@rollup/rollup-linux-s390x-gnu@4.53.3':
750
+
resolution: {integrity: sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==}
763
751
cpu: [s390x]
764
752
os: [linux]
765
753
766
-
'@rollup/rollup-linux-x64-gnu@4.53.2':
767
-
resolution: {integrity: sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw==}
754
+
'@rollup/rollup-linux-x64-gnu@4.53.3':
755
+
resolution: {integrity: sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==}
768
756
cpu: [x64]
769
757
os: [linux]
770
758
771
-
'@rollup/rollup-linux-x64-musl@4.53.2':
772
-
resolution: {integrity: sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA==}
759
+
'@rollup/rollup-linux-x64-musl@4.53.3':
760
+
resolution: {integrity: sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==}
773
761
cpu: [x64]
774
762
os: [linux]
775
763
776
-
'@rollup/rollup-openharmony-arm64@4.53.2':
777
-
resolution: {integrity: sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A==}
764
+
'@rollup/rollup-openharmony-arm64@4.53.3':
765
+
resolution: {integrity: sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==}
778
766
cpu: [arm64]
779
767
os: [openharmony]
780
768
781
-
'@rollup/rollup-win32-arm64-msvc@4.53.2':
782
-
resolution: {integrity: sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA==}
769
+
'@rollup/rollup-win32-arm64-msvc@4.53.3':
770
+
resolution: {integrity: sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==}
783
771
cpu: [arm64]
784
772
os: [win32]
785
773
786
-
'@rollup/rollup-win32-ia32-msvc@4.53.2':
787
-
resolution: {integrity: sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg==}
774
+
'@rollup/rollup-win32-ia32-msvc@4.53.3':
775
+
resolution: {integrity: sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==}
788
776
cpu: [ia32]
789
777
os: [win32]
790
778
791
-
'@rollup/rollup-win32-x64-gnu@4.53.2':
792
-
resolution: {integrity: sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw==}
779
+
'@rollup/rollup-win32-x64-gnu@4.53.3':
780
+
resolution: {integrity: sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==}
793
781
cpu: [x64]
794
782
os: [win32]
795
783
796
-
'@rollup/rollup-win32-x64-msvc@4.53.2':
797
-
resolution: {integrity: sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA==}
784
+
'@rollup/rollup-win32-x64-msvc@4.53.3':
785
+
resolution: {integrity: sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==}
798
786
cpu: [x64]
799
787
os: [win32]
800
788
···
957
945
solid-js:
958
946
optional: true
959
947
960
-
baseline-browser-mapping@2.8.28:
961
-
resolution: {integrity: sha512-gYjt7OIqdM0PcttNYP2aVrr2G0bMALkBaoehD4BuRGjAOtipg0b6wHg1yNL+s5zSnLZZrGHOw4IrND8CD+3oIQ==}
948
+
baseline-browser-mapping@2.8.30:
949
+
resolution: {integrity: sha512-aTUKW4ptQhS64+v2d6IkPzymEzzhw+G0bA1g3uBRV3+ntkH+svttKseW5IOR4Ed6NUVKqnY7qT3dKvzQ7io4AA==}
962
950
hasBin: true
963
951
964
952
boolbase@1.0.0:
···
976
964
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
977
965
engines: {node: '>= 0.4'}
978
966
979
-
caniuse-lite@1.0.30001755:
980
-
resolution: {integrity: sha512-44V+Jm6ctPj7R52Na4TLi3Zri4dWUljJd+RDm+j8LtNCc/ihLCT+X1TzoOAkRETEWqjuLnh9581Tl80FvK7jVA==}
967
+
caniuse-lite@1.0.30001756:
968
+
resolution: {integrity: sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A==}
981
969
982
970
cheerio-select@2.1.0:
983
971
resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
···
1069
1057
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
1070
1058
engines: {node: '>= 0.4'}
1071
1059
1072
-
electron-to-chromium@1.5.254:
1073
-
resolution: {integrity: sha512-DcUsWpVhv9svsKRxnSCZ86SjD+sp32SGidNB37KpqXJncp1mfUgKbHvBomE89WJDbfVKw1mdv5+ikrvd43r+Bg==}
1060
+
electron-to-chromium@1.5.259:
1061
+
resolution: {integrity: sha512-I+oLXgpEJzD6Cwuwt1gYjxsDmu/S/Kd41mmLA3O+/uH2pFRO/DvOjUyGozL8j3KeLV6WyZ7ssPwELMsXCcsJAQ==}
1074
1062
1075
1063
encoding-sniffer@0.2.1:
1076
1064
resolution: {integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==}
···
1520
1508
resolve-pkg-maps@1.0.0:
1521
1509
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
1522
1510
1523
-
rollup@4.53.2:
1524
-
resolution: {integrity: sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==}
1511
+
rollup@4.53.3:
1512
+
resolution: {integrity: sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==}
1525
1513
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
1526
1514
hasBin: true
1527
1515
···
1617
1605
'@testing-library/jest-dom':
1618
1606
optional: true
1619
1607
1620
-
vite@7.2.2:
1621
-
resolution: {integrity: sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==}
1608
+
vite@7.2.4:
1609
+
resolution: {integrity: sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==}
1622
1610
engines: {node: ^20.19.0 || >=22.12.0}
1623
1611
hasBin: true
1624
1612
peerDependencies:
···
1703
1691
1704
1692
'@atcute/atproto@3.1.9':
1705
1693
dependencies:
1706
-
'@atcute/lexicons': 1.2.3
1694
+
'@atcute/lexicons': 1.2.4
1707
1695
1708
1696
'@atcute/bluesky@3.2.10':
1709
1697
dependencies:
1710
1698
'@atcute/atproto': 3.1.9
1711
-
'@atcute/lexicons': 1.2.3
1699
+
'@atcute/lexicons': 1.2.4
1712
1700
1713
1701
'@atcute/car@3.1.3':
1714
1702
dependencies:
1715
-
'@atcute/cbor': 2.2.7
1703
+
'@atcute/cbor': 2.2.8
1716
1704
'@atcute/cid': 2.2.6
1717
1705
'@atcute/uint8array': 1.0.5
1718
1706
'@atcute/varint': 1.0.3
···
1720
1708
1721
1709
'@atcute/car@5.0.0':
1722
1710
dependencies:
1723
-
'@atcute/cbor': 2.2.7
1711
+
'@atcute/cbor': 2.2.8
1724
1712
'@atcute/cid': 2.2.6
1725
1713
'@atcute/uint8array': 1.0.5
1726
1714
'@atcute/varint': 1.0.3
1727
1715
1728
-
'@atcute/cbor@2.2.7':
1716
+
'@atcute/cbor@2.2.8':
1729
1717
dependencies:
1730
1718
'@atcute/cid': 2.2.6
1731
1719
'@atcute/multibase': 1.1.6
···
1738
1726
1739
1727
'@atcute/client@4.0.5':
1740
1728
dependencies:
1741
-
'@atcute/identity': 1.1.2
1742
-
'@atcute/lexicons': 1.2.3
1729
+
'@atcute/identity': 1.1.3
1730
+
'@atcute/lexicons': 1.2.4
1743
1731
1744
1732
'@atcute/crypto@2.2.6':
1745
1733
dependencies:
···
1749
1737
1750
1738
'@atcute/did-plc@0.2.0':
1751
1739
dependencies:
1752
-
'@atcute/cbor': 2.2.7
1740
+
'@atcute/cbor': 2.2.8
1753
1741
'@atcute/cid': 2.2.6
1754
1742
'@atcute/crypto': 2.2.6
1755
-
'@atcute/identity': 1.1.2
1756
-
'@atcute/lexicons': 1.2.3
1743
+
'@atcute/identity': 1.1.3
1744
+
'@atcute/lexicons': 1.2.4
1757
1745
'@atcute/multibase': 1.1.6
1758
1746
'@atcute/uint8array': 1.0.5
1759
1747
'@badrap/valita': 0.4.6
1760
1748
1761
-
'@atcute/identity-resolver@1.1.4(@atcute/identity@1.1.2)':
1749
+
'@atcute/identity-resolver@1.1.4(@atcute/identity@1.1.3)':
1762
1750
dependencies:
1763
-
'@atcute/identity': 1.1.2
1764
-
'@atcute/lexicons': 1.2.3
1751
+
'@atcute/identity': 1.1.3
1752
+
'@atcute/lexicons': 1.2.4
1765
1753
'@atcute/util-fetch': 1.0.3
1766
1754
'@badrap/valita': 0.4.6
1767
1755
1768
-
'@atcute/identity@1.1.2':
1756
+
'@atcute/identity@1.1.3':
1769
1757
dependencies:
1770
-
'@atcute/lexicons': 1.2.3
1758
+
'@atcute/lexicons': 1.2.4
1771
1759
'@badrap/valita': 0.4.6
1772
1760
1773
-
'@atcute/leaflet@1.0.12':
1774
-
dependencies:
1775
-
'@atcute/atproto': 3.1.9
1776
-
'@atcute/lexicons': 1.2.3
1777
-
1778
-
'@atcute/lexicon-doc@1.3.0':
1761
+
'@atcute/lexicon-doc@2.0.1':
1779
1762
dependencies:
1780
-
'@atcute/lexicons': 1.2.3
1763
+
'@atcute/identity': 1.1.3
1764
+
'@atcute/lexicons': 1.2.4
1781
1765
'@badrap/valita': 0.4.6
1782
1766
1783
-
'@atcute/lexicon-resolver@0.1.3(@atcute/identity-resolver@1.1.4(@atcute/identity@1.1.2))(@atcute/identity@1.1.2)':
1767
+
'@atcute/lexicon-resolver@0.1.4(@atcute/identity-resolver@1.1.4(@atcute/identity@1.1.3))(@atcute/identity@1.1.3)':
1784
1768
dependencies:
1785
-
'@atcute/car': 5.0.0
1786
-
'@atcute/cbor': 2.2.7
1787
-
'@atcute/cid': 2.2.6
1788
1769
'@atcute/crypto': 2.2.6
1789
-
'@atcute/identity': 1.1.2
1790
-
'@atcute/identity-resolver': 1.1.4(@atcute/identity@1.1.2)
1791
-
'@atcute/lexicon-doc': 1.3.0
1792
-
'@atcute/lexicons': 1.2.3
1770
+
'@atcute/identity': 1.1.3
1771
+
'@atcute/identity-resolver': 1.1.4(@atcute/identity@1.1.3)
1772
+
'@atcute/lexicon-doc': 2.0.1
1773
+
'@atcute/lexicons': 1.2.4
1793
1774
'@atcute/repo': 0.1.0
1794
-
'@atcute/uint8array': 1.0.5
1795
1775
'@atcute/util-fetch': 1.0.3
1796
1776
'@badrap/valita': 0.4.6
1797
1777
1798
-
'@atcute/lexicons@1.2.3':
1778
+
'@atcute/lexicons@1.2.4':
1799
1779
dependencies:
1800
1780
'@standard-schema/spec': 1.0.0
1801
1781
esm-env: 1.2.2
1802
1782
1803
1783
'@atcute/mst@0.1.0':
1804
1784
dependencies:
1805
-
'@atcute/cbor': 2.2.7
1785
+
'@atcute/cbor': 2.2.8
1806
1786
'@atcute/cid': 2.2.6
1807
1787
'@atcute/uint8array': 1.0.5
1808
1788
···
1813
1793
'@atcute/oauth-browser-client@2.0.1':
1814
1794
dependencies:
1815
1795
'@atcute/client': 4.0.5
1816
-
'@atcute/identity': 1.1.2
1817
-
'@atcute/identity-resolver': 1.1.4(@atcute/identity@1.1.2)
1818
-
'@atcute/lexicons': 1.2.3
1796
+
'@atcute/identity': 1.1.3
1797
+
'@atcute/identity-resolver': 1.1.4(@atcute/identity@1.1.3)
1798
+
'@atcute/lexicons': 1.2.4
1819
1799
'@atcute/multibase': 1.1.6
1820
1800
'@atcute/uint8array': 1.0.5
1821
1801
nanoid: 5.1.6
···
1823
1803
'@atcute/repo@0.1.0':
1824
1804
dependencies:
1825
1805
'@atcute/car': 5.0.0
1826
-
'@atcute/cbor': 2.2.7
1806
+
'@atcute/cbor': 2.2.8
1827
1807
'@atcute/cid': 2.2.6
1828
1808
'@atcute/crypto': 2.2.6
1829
-
'@atcute/lexicons': 1.2.3
1809
+
'@atcute/lexicons': 1.2.4
1830
1810
'@atcute/mst': 0.1.0
1831
1811
'@atcute/uint8array': 1.0.5
1832
1812
1833
-
'@atcute/tangled@1.0.12':
1834
-
dependencies:
1835
-
'@atcute/atproto': 3.1.9
1836
-
'@atcute/lexicons': 1.2.3
1837
-
1838
1813
'@atcute/tid@1.0.3': {}
1839
1814
1840
1815
'@atcute/uint8array@1.0.5': {}
···
1958
1933
1959
1934
'@badrap/valita@0.4.6': {}
1960
1935
1961
-
'@codemirror/autocomplete@6.19.1':
1936
+
'@codemirror/autocomplete@6.20.0':
1962
1937
dependencies:
1963
1938
'@codemirror/language': 6.11.3
1964
1939
'@codemirror/state': 6.5.2
···
2173
2148
'@codemirror/view': 6.38.8
2174
2149
'@lezer/highlight': 1.2.3
2175
2150
2176
-
'@iconify-json/lucide@1.2.73':
2151
+
'@iconify-json/lucide@1.2.74':
2177
2152
dependencies:
2178
2153
'@iconify/types': 2.0.0
2179
2154
···
2260
2235
2261
2236
'@noble/secp256k1@3.0.0': {}
2262
2237
2263
-
'@rollup/rollup-android-arm-eabi@4.53.2':
2238
+
'@rollup/rollup-android-arm-eabi@4.53.3':
2264
2239
optional: true
2265
2240
2266
-
'@rollup/rollup-android-arm64@4.53.2':
2241
+
'@rollup/rollup-android-arm64@4.53.3':
2267
2242
optional: true
2268
2243
2269
-
'@rollup/rollup-darwin-arm64@4.53.2':
2244
+
'@rollup/rollup-darwin-arm64@4.53.3':
2270
2245
optional: true
2271
2246
2272
-
'@rollup/rollup-darwin-x64@4.53.2':
2247
+
'@rollup/rollup-darwin-x64@4.53.3':
2273
2248
optional: true
2274
2249
2275
-
'@rollup/rollup-freebsd-arm64@4.53.2':
2250
+
'@rollup/rollup-freebsd-arm64@4.53.3':
2276
2251
optional: true
2277
2252
2278
-
'@rollup/rollup-freebsd-x64@4.53.2':
2253
+
'@rollup/rollup-freebsd-x64@4.53.3':
2279
2254
optional: true
2280
2255
2281
-
'@rollup/rollup-linux-arm-gnueabihf@4.53.2':
2256
+
'@rollup/rollup-linux-arm-gnueabihf@4.53.3':
2282
2257
optional: true
2283
2258
2284
-
'@rollup/rollup-linux-arm-musleabihf@4.53.2':
2259
+
'@rollup/rollup-linux-arm-musleabihf@4.53.3':
2285
2260
optional: true
2286
2261
2287
-
'@rollup/rollup-linux-arm64-gnu@4.53.2':
2262
+
'@rollup/rollup-linux-arm64-gnu@4.53.3':
2288
2263
optional: true
2289
2264
2290
-
'@rollup/rollup-linux-arm64-musl@4.53.2':
2265
+
'@rollup/rollup-linux-arm64-musl@4.53.3':
2291
2266
optional: true
2292
2267
2293
-
'@rollup/rollup-linux-loong64-gnu@4.53.2':
2268
+
'@rollup/rollup-linux-loong64-gnu@4.53.3':
2294
2269
optional: true
2295
2270
2296
-
'@rollup/rollup-linux-ppc64-gnu@4.53.2':
2271
+
'@rollup/rollup-linux-ppc64-gnu@4.53.3':
2297
2272
optional: true
2298
2273
2299
-
'@rollup/rollup-linux-riscv64-gnu@4.53.2':
2274
+
'@rollup/rollup-linux-riscv64-gnu@4.53.3':
2300
2275
optional: true
2301
2276
2302
-
'@rollup/rollup-linux-riscv64-musl@4.53.2':
2277
+
'@rollup/rollup-linux-riscv64-musl@4.53.3':
2303
2278
optional: true
2304
2279
2305
-
'@rollup/rollup-linux-s390x-gnu@4.53.2':
2280
+
'@rollup/rollup-linux-s390x-gnu@4.53.3':
2306
2281
optional: true
2307
2282
2308
-
'@rollup/rollup-linux-x64-gnu@4.53.2':
2283
+
'@rollup/rollup-linux-x64-gnu@4.53.3':
2309
2284
optional: true
2310
2285
2311
-
'@rollup/rollup-linux-x64-musl@4.53.2':
2286
+
'@rollup/rollup-linux-x64-musl@4.53.3':
2312
2287
optional: true
2313
2288
2314
-
'@rollup/rollup-openharmony-arm64@4.53.2':
2289
+
'@rollup/rollup-openharmony-arm64@4.53.3':
2315
2290
optional: true
2316
2291
2317
-
'@rollup/rollup-win32-arm64-msvc@4.53.2':
2292
+
'@rollup/rollup-win32-arm64-msvc@4.53.3':
2318
2293
optional: true
2319
2294
2320
-
'@rollup/rollup-win32-ia32-msvc@4.53.2':
2295
+
'@rollup/rollup-win32-ia32-msvc@4.53.3':
2321
2296
optional: true
2322
2297
2323
-
'@rollup/rollup-win32-x64-gnu@4.53.2':
2298
+
'@rollup/rollup-win32-x64-gnu@4.53.3':
2324
2299
optional: true
2325
2300
2326
-
'@rollup/rollup-win32-x64-msvc@4.53.2':
2301
+
'@rollup/rollup-win32-x64-msvc@4.53.3':
2327
2302
optional: true
2328
2303
2329
2304
'@skyware/firehose@0.5.2':
2330
2305
dependencies:
2331
2306
'@atcute/car': 3.1.3
2332
-
'@atcute/cbor': 2.2.7
2307
+
'@atcute/cbor': 2.2.8
2333
2308
nanoevents: 9.1.0
2334
2309
2335
2310
'@solidjs/meta@0.29.4(solid-js@1.9.10)':
···
2403
2378
'@tailwindcss/oxide-win32-arm64-msvc': 4.1.17
2404
2379
'@tailwindcss/oxide-win32-x64-msvc': 4.1.17
2405
2380
2406
-
'@tailwindcss/vite@4.1.17(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2))':
2381
+
'@tailwindcss/vite@4.1.17(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2))':
2407
2382
dependencies:
2408
2383
'@tailwindcss/node': 4.1.17
2409
2384
'@tailwindcss/oxide': 4.1.17
2410
2385
tailwindcss: 4.1.17
2411
-
vite: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)
2386
+
vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)
2412
2387
2413
2388
'@trysound/sax@0.2.0': {}
2414
2389
···
2477
2452
optionalDependencies:
2478
2453
solid-js: 1.9.10
2479
2454
2480
-
baseline-browser-mapping@2.8.28: {}
2455
+
baseline-browser-mapping@2.8.30: {}
2481
2456
2482
2457
boolbase@1.0.0: {}
2483
2458
2484
2459
browserslist@4.28.0:
2485
2460
dependencies:
2486
-
baseline-browser-mapping: 2.8.28
2487
-
caniuse-lite: 1.0.30001755
2488
-
electron-to-chromium: 1.5.254
2461
+
baseline-browser-mapping: 2.8.30
2462
+
caniuse-lite: 1.0.30001756
2463
+
electron-to-chromium: 1.5.259
2489
2464
node-releases: 2.0.27
2490
2465
update-browserslist-db: 1.1.4(browserslist@4.28.0)
2491
2466
···
2496
2471
es-errors: 1.3.0
2497
2472
function-bind: 1.1.2
2498
2473
2499
-
caniuse-lite@1.0.30001755: {}
2474
+
caniuse-lite@1.0.30001756: {}
2500
2475
2501
2476
cheerio-select@2.1.0:
2502
2477
dependencies:
···
2525
2500
2526
2501
codemirror@6.0.2:
2527
2502
dependencies:
2528
-
'@codemirror/autocomplete': 6.19.1
2503
+
'@codemirror/autocomplete': 6.20.0
2529
2504
'@codemirror/commands': 6.10.0
2530
2505
'@codemirror/language': 6.11.3
2531
2506
'@codemirror/lint': 6.9.2
···
2605
2580
es-errors: 1.3.0
2606
2581
gopd: 1.2.0
2607
2582
2608
-
electron-to-chromium@1.5.254: {}
2583
+
electron-to-chromium@1.5.259: {}
2609
2584
2610
2585
encoding-sniffer@0.2.1:
2611
2586
dependencies:
···
3002
2977
resolve-pkg-maps@1.0.0:
3003
2978
optional: true
3004
2979
3005
-
rollup@4.53.2:
2980
+
rollup@4.53.3:
3006
2981
dependencies:
3007
2982
'@types/estree': 1.0.8
3008
2983
optionalDependencies:
3009
-
'@rollup/rollup-android-arm-eabi': 4.53.2
3010
-
'@rollup/rollup-android-arm64': 4.53.2
3011
-
'@rollup/rollup-darwin-arm64': 4.53.2
3012
-
'@rollup/rollup-darwin-x64': 4.53.2
3013
-
'@rollup/rollup-freebsd-arm64': 4.53.2
3014
-
'@rollup/rollup-freebsd-x64': 4.53.2
3015
-
'@rollup/rollup-linux-arm-gnueabihf': 4.53.2
3016
-
'@rollup/rollup-linux-arm-musleabihf': 4.53.2
3017
-
'@rollup/rollup-linux-arm64-gnu': 4.53.2
3018
-
'@rollup/rollup-linux-arm64-musl': 4.53.2
3019
-
'@rollup/rollup-linux-loong64-gnu': 4.53.2
3020
-
'@rollup/rollup-linux-ppc64-gnu': 4.53.2
3021
-
'@rollup/rollup-linux-riscv64-gnu': 4.53.2
3022
-
'@rollup/rollup-linux-riscv64-musl': 4.53.2
3023
-
'@rollup/rollup-linux-s390x-gnu': 4.53.2
3024
-
'@rollup/rollup-linux-x64-gnu': 4.53.2
3025
-
'@rollup/rollup-linux-x64-musl': 4.53.2
3026
-
'@rollup/rollup-openharmony-arm64': 4.53.2
3027
-
'@rollup/rollup-win32-arm64-msvc': 4.53.2
3028
-
'@rollup/rollup-win32-ia32-msvc': 4.53.2
3029
-
'@rollup/rollup-win32-x64-gnu': 4.53.2
3030
-
'@rollup/rollup-win32-x64-msvc': 4.53.2
2984
+
'@rollup/rollup-android-arm-eabi': 4.53.3
2985
+
'@rollup/rollup-android-arm64': 4.53.3
2986
+
'@rollup/rollup-darwin-arm64': 4.53.3
2987
+
'@rollup/rollup-darwin-x64': 4.53.3
2988
+
'@rollup/rollup-freebsd-arm64': 4.53.3
2989
+
'@rollup/rollup-freebsd-x64': 4.53.3
2990
+
'@rollup/rollup-linux-arm-gnueabihf': 4.53.3
2991
+
'@rollup/rollup-linux-arm-musleabihf': 4.53.3
2992
+
'@rollup/rollup-linux-arm64-gnu': 4.53.3
2993
+
'@rollup/rollup-linux-arm64-musl': 4.53.3
2994
+
'@rollup/rollup-linux-loong64-gnu': 4.53.3
2995
+
'@rollup/rollup-linux-ppc64-gnu': 4.53.3
2996
+
'@rollup/rollup-linux-riscv64-gnu': 4.53.3
2997
+
'@rollup/rollup-linux-riscv64-musl': 4.53.3
2998
+
'@rollup/rollup-linux-s390x-gnu': 4.53.3
2999
+
'@rollup/rollup-linux-x64-gnu': 4.53.3
3000
+
'@rollup/rollup-linux-x64-musl': 4.53.3
3001
+
'@rollup/rollup-openharmony-arm64': 4.53.3
3002
+
'@rollup/rollup-win32-arm64-msvc': 4.53.3
3003
+
'@rollup/rollup-win32-ia32-msvc': 4.53.3
3004
+
'@rollup/rollup-win32-x64-gnu': 4.53.3
3005
+
'@rollup/rollup-win32-x64-msvc': 4.53.3
3031
3006
fsevents: 2.3.3
3032
3007
3033
3008
safer-buffer@2.1.2: {}
···
3111
3086
escalade: 3.2.0
3112
3087
picocolors: 1.1.1
3113
3088
3114
-
vite-plugin-solid@2.11.10(solid-js@1.9.10)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)):
3089
+
vite-plugin-solid@2.11.10(solid-js@1.9.10)(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)):
3115
3090
dependencies:
3116
3091
'@babel/core': 7.28.5
3117
3092
'@types/babel__core': 7.20.5
···
3119
3094
merge-anything: 5.1.7
3120
3095
solid-js: 1.9.10
3121
3096
solid-refresh: 0.6.3(solid-js@1.9.10)
3122
-
vite: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)
3123
-
vitefu: 1.1.1(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2))
3097
+
vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)
3098
+
vitefu: 1.1.1(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2))
3124
3099
transitivePeerDependencies:
3125
3100
- supports-color
3126
3101
3127
-
vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2):
3102
+
vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2):
3128
3103
dependencies:
3129
3104
esbuild: 0.25.12
3130
3105
fdir: 6.5.0(picomatch@4.0.3)
3131
3106
picomatch: 4.0.3
3132
3107
postcss: 8.5.6
3133
-
rollup: 4.53.2
3108
+
rollup: 4.53.3
3134
3109
tinyglobby: 0.2.15
3135
3110
optionalDependencies:
3136
3111
'@types/node': 24.10.1
···
3139
3114
lightningcss: 1.30.2
3140
3115
tsx: 4.19.2
3141
3116
3142
-
vitefu@1.1.1(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)):
3117
+
vitefu@1.1.1(vite@7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)):
3143
3118
optionalDependencies:
3144
-
vite: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)
3119
+
vite: 7.2.4(@types/node@24.10.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)
3145
3120
3146
3121
w3c-keyname@2.2.8: {}
3147
3122
-94
src/utils/types/lexicons.ts
-94
src/utils/types/lexicons.ts
···
1
-
import {
2
-
AppBskyActorProfile,
3
-
AppBskyActorStatus,
4
-
AppBskyFeedGenerator,
5
-
AppBskyFeedLike,
6
-
AppBskyFeedPost,
7
-
AppBskyFeedPostgate,
8
-
AppBskyFeedRepost,
9
-
AppBskyFeedThreadgate,
10
-
AppBskyGraphBlock,
11
-
AppBskyGraphFollow,
12
-
AppBskyGraphList,
13
-
AppBskyGraphListblock,
14
-
AppBskyGraphListitem,
15
-
AppBskyGraphStarterpack,
16
-
AppBskyGraphVerification,
17
-
AppBskyLabelerService,
18
-
ChatBskyActorDeclaration,
19
-
} from "@atcute/bluesky";
20
-
import {
21
-
PubLeafletComment,
22
-
PubLeafletDocument,
23
-
PubLeafletGraphSubscription,
24
-
PubLeafletPublication,
25
-
} from "@atcute/leaflet";
26
-
import {
27
-
ShTangledActorProfile,
28
-
ShTangledFeedStar,
29
-
ShTangledGraphFollow,
30
-
ShTangledKnot,
31
-
ShTangledKnotMember,
32
-
ShTangledPublicKey,
33
-
ShTangledRepo,
34
-
ShTangledRepoArtifact,
35
-
ShTangledRepoIssue,
36
-
ShTangledRepoIssueComment,
37
-
ShTangledRepoIssueState,
38
-
ShTangledRepoIssueStateClosed,
39
-
ShTangledRepoIssueStateOpen,
40
-
ShTangledRepoPull,
41
-
ShTangledRepoPullComment,
42
-
ShTangledRepoPullStatus,
43
-
ShTangledRepoPullStatusClosed,
44
-
ShTangledRepoPullStatusMerged,
45
-
ShTangledRepoPullStatusOpen,
46
-
} from "@atcute/tangled";
47
-
48
-
export const lexicons: Record<string, any> = {
49
-
// Bluesky
50
-
"app.bsky.actor.profile": AppBskyActorProfile.mainSchema,
51
-
"app.bsky.actor.status": AppBskyActorStatus.mainSchema,
52
-
"app.bsky.feed.generator": AppBskyFeedGenerator.mainSchema,
53
-
"app.bsky.feed.like": AppBskyFeedLike.mainSchema,
54
-
"app.bsky.feed.post": AppBskyFeedPost.mainSchema,
55
-
"app.bsky.feed.postgate": AppBskyFeedPostgate.mainSchema,
56
-
"app.bsky.feed.repost": AppBskyFeedRepost.mainSchema,
57
-
"app.bsky.feed.threadgate": AppBskyFeedThreadgate.mainSchema,
58
-
"app.bsky.graph.block": AppBskyGraphBlock.mainSchema,
59
-
"app.bsky.graph.follow": AppBskyGraphFollow.mainSchema,
60
-
"app.bsky.graph.list": AppBskyGraphList.mainSchema,
61
-
"app.bsky.graph.listblock": AppBskyGraphListblock.mainSchema,
62
-
"app.bsky.graph.listitem": AppBskyGraphListitem.mainSchema,
63
-
"app.bsky.graph.starterpack": AppBskyGraphStarterpack.mainSchema,
64
-
"app.bsky.graph.verification": AppBskyGraphVerification.mainSchema,
65
-
"app.bsky.labeler.service": AppBskyLabelerService.mainSchema,
66
-
"chat.bsky.actor.declaration": ChatBskyActorDeclaration.mainSchema,
67
-
68
-
// Tangled
69
-
"sh.tangled.actor.profile": ShTangledActorProfile.mainSchema,
70
-
"sh.tangled.feed.star": ShTangledFeedStar.mainSchema,
71
-
"sh.tangled.graph.follow": ShTangledGraphFollow.mainSchema,
72
-
"sh.tangled.knot.member": ShTangledKnotMember.mainSchema,
73
-
"sh.tangled.publicKey": ShTangledPublicKey.mainSchema,
74
-
"sh.tangled.repo": ShTangledRepo.mainSchema,
75
-
"sh.tangled.repo.artifact": ShTangledRepoArtifact.mainSchema,
76
-
"sh.tangled.repo.issue": ShTangledRepoIssue.mainSchema,
77
-
"sh.tangled.repo.issue.comment": ShTangledRepoIssueComment.mainSchema,
78
-
"sh.tangled.repo.issue.state": ShTangledRepoIssueState.mainSchema,
79
-
"sh.tangled.repo.issue.state.closed": ShTangledRepoIssueStateClosed.mainSchema,
80
-
"sh.tangled.repo.issue.state.open": ShTangledRepoIssueStateOpen.mainSchema,
81
-
"sh.tangled.repo.pull": ShTangledRepoPull.mainSchema,
82
-
"sh.tangled.repo.pull.comment": ShTangledRepoPullComment.mainSchema,
83
-
"sh.tangled.repo.pull.status": ShTangledRepoPullStatus.mainSchema,
84
-
"sh.tangled.repo.pull.status.closed": ShTangledRepoPullStatusClosed.mainSchema,
85
-
"sh.tangled.repo.pull.status.merged": ShTangledRepoPullStatusMerged.mainSchema,
86
-
"sh.tangled.repo.pull.status.open": ShTangledRepoPullStatusOpen.mainSchema,
87
-
"sh.tangled.knot": ShTangledKnot.mainSchema,
88
-
89
-
// Leaflet
90
-
"pub.leaflet.comment": PubLeafletComment.mainSchema,
91
-
"pub.leaflet.document": PubLeafletDocument.mainSchema,
92
-
"pub.leaflet.graph.subscription": PubLeafletGraphSubscription.mainSchema,
93
-
"pub.leaflet.publication": PubLeafletPublication.mainSchema,
94
-
};
+146
-36
src/views/record.tsx
+146
-36
src/views/record.tsx
···
1
1
import { Client, CredentialManager } from "@atcute/client";
2
2
import { lexiconDoc } from "@atcute/lexicon-doc";
3
+
import { RecordValidator } from "@atcute/lexicon-doc/validations";
3
4
import { ResolvedSchema } from "@atcute/lexicon-resolver";
4
-
import { ActorIdentifier, is, Nsid, ResourceUri } from "@atcute/lexicons";
5
-
import { AtprotoDid, Did } from "@atcute/lexicons/syntax";
5
+
import { ActorIdentifier, Nsid } from "@atcute/lexicons";
6
+
import { AtprotoDid, Did, isNsid } from "@atcute/lexicons/syntax";
6
7
import { verifyRecord } from "@atcute/repo";
7
8
import { A, useLocation, useNavigate, useParams } from "@solidjs/router";
8
-
import { createResource, createSignal, ErrorBoundary, Show, Suspense } from "solid-js";
9
+
import {
10
+
createEffect,
11
+
createResource,
12
+
createSignal,
13
+
ErrorBoundary,
14
+
Show,
15
+
Suspense,
16
+
} from "solid-js";
9
17
import { Backlinks } from "../components/backlinks.jsx";
10
18
import { Button } from "../components/button.jsx";
11
19
import { RecordEditor, setPlaceholder } from "../components/create.jsx";
···
25
33
import Tooltip from "../components/tooltip.jsx";
26
34
import { resolveLexiconAuthority, resolveLexiconSchema, resolvePDS } from "../utils/api.js";
27
35
import { AtUri, uriTemplates } from "../utils/templates.js";
28
-
import { lexicons } from "../utils/types/lexicons.js";
36
+
37
+
const extractRefs = (obj: any): Nsid[] => {
38
+
const refs: Set<string> = new Set();
39
+
40
+
const traverse = (value: any) => {
41
+
if (!value || typeof value !== "object") return;
42
+
43
+
if (value.type === "ref" && value.ref) {
44
+
const ref = value.ref;
45
+
if (!ref.startsWith("#")) {
46
+
const nsid = ref.split("#")[0];
47
+
if (isNsid(nsid)) refs.add(nsid);
48
+
}
49
+
}
50
+
51
+
if (value.type === "union" && Array.isArray(value.refs)) {
52
+
for (const ref of value.refs) {
53
+
if (!ref.startsWith("#")) {
54
+
const nsid = ref.split("#")[0];
55
+
if (isNsid(nsid)) refs.add(nsid);
56
+
}
57
+
}
58
+
}
59
+
60
+
if (Array.isArray(value)) value.forEach(traverse);
61
+
else Object.values(value).forEach(traverse);
62
+
};
63
+
64
+
traverse(obj);
65
+
return Array.from(refs) as Nsid[];
66
+
};
67
+
68
+
const resolveAllLexicons = async (
69
+
nsid: Nsid,
70
+
depth: number = 0,
71
+
resolved: Map<string, any> = new Map(),
72
+
failed: Set<string> = new Set(),
73
+
inFlight: Map<string, Promise<void>> = new Map(),
74
+
): Promise<{ resolved: Map<string, any>; failed: Set<string> }> => {
75
+
if (depth >= 10) {
76
+
console.warn(`Maximum recursion depth reached for ${nsid}`);
77
+
return { resolved, failed };
78
+
}
79
+
80
+
if (resolved.has(nsid) || failed.has(nsid)) return { resolved, failed };
81
+
82
+
if (inFlight.has(nsid)) {
83
+
await inFlight.get(nsid);
84
+
return { resolved, failed };
85
+
}
86
+
87
+
const fetchPromise = (async () => {
88
+
try {
89
+
const authority = await resolveLexiconAuthority(nsid);
90
+
const schema = await resolveLexiconSchema(authority, nsid);
91
+
92
+
resolved.set(nsid, schema.rawSchema);
93
+
94
+
const refs = extractRefs(schema.rawSchema);
95
+
96
+
if (refs.length > 0) {
97
+
await Promise.all(
98
+
refs.map((ref) => resolveAllLexicons(ref, depth + 1, resolved, failed, inFlight)),
99
+
);
100
+
}
101
+
} catch (err) {
102
+
console.error(`Failed to resolve lexicon ${nsid}:`, err);
103
+
failed.add(nsid);
104
+
} finally {
105
+
inFlight.delete(nsid);
106
+
}
107
+
})();
108
+
109
+
inFlight.set(nsid, fetchPromise);
110
+
await fetchPromise;
111
+
112
+
return { resolved, failed };
113
+
};
29
114
30
115
export const RecordView = () => {
31
116
const location = useLocation();
32
117
const navigate = useNavigate();
33
118
const params = useParams();
34
119
const [openDelete, setOpenDelete] = createSignal(false);
35
-
const [notice, setNotice] = createSignal("");
120
+
const [verifyError, setVerifyError] = createSignal("");
121
+
const [validationError, setValidationError] = createSignal("");
36
122
const [externalLink, setExternalLink] = createSignal<
37
123
{ label: string; link: string; icon?: string } | undefined
38
124
>();
···
59
145
});
60
146
if (!res.ok) {
61
147
setValidRecord(false);
62
-
setNotice(res.data.error);
148
+
setVerifyError(res.data.error);
63
149
throw new Error(res.data.error);
64
150
}
65
151
setPlaceholder(res.data.value);
66
152
setExternalLink(checkUri(res.data.uri, res.data.value));
67
153
resolveLexicon(params.collection as Nsid);
68
-
verify(res.data);
69
154
70
155
return res.data;
71
156
};
72
157
73
158
const [record, { refetch }] = createResource(fetchRecord);
74
159
75
-
const verify = async (record: {
76
-
uri: ResourceUri;
77
-
value: Record<string, unknown>;
78
-
cid?: string | undefined;
79
-
}) => {
160
+
const validateSchema = async (record: Record<string, unknown>) => {
80
161
try {
81
-
if (params.collection && params.collection in lexicons) {
82
-
if (is(lexicons[params.collection], record.value)) setValidSchema(true);
83
-
else setValidSchema(false);
84
-
} else if (params.collection === "com.atproto.lexicon.schema") {
162
+
if (params.collection === "com.atproto.lexicon.schema") {
85
163
setLexiconNotFound(false);
86
-
try {
87
-
lexiconDoc.parse(record.value, { mode: "passthrough" });
88
-
setValidSchema(true);
89
-
} catch (e) {
90
-
console.error(e);
164
+
lexiconDoc.parse(record, { mode: "passthrough" });
165
+
setValidSchema(true);
166
+
} else {
167
+
const { resolved, failed } = await resolveAllLexicons(params.collection as Nsid);
168
+
169
+
if (failed.size > 0) {
170
+
console.error(`Failed to resolve ${failed.size} documents:`, Array.from(failed));
91
171
setValidSchema(false);
172
+
setValidationError(
173
+
`Unable to resolve lexicon documents: ${Array.from(failed).join(", ")}`,
174
+
);
175
+
return;
92
176
}
177
+
178
+
const lexiconDocs = Object.fromEntries(resolved);
179
+
180
+
const validator = new RecordValidator(lexiconDocs, params.collection as Nsid);
181
+
validator.parse({
182
+
key: params.rkey ?? null,
183
+
object: record,
184
+
});
185
+
186
+
setValidSchema(true);
93
187
}
188
+
} catch (err: any) {
189
+
console.error("Schema validation error:", err);
190
+
setValidSchema(false);
191
+
setValidationError(err.message || String(err));
192
+
}
193
+
};
94
194
195
+
const verifyRecordIntegrity = async () => {
196
+
try {
95
197
const { ok, data } = await rpc.get("com.atproto.sync.getRecord", {
96
198
params: {
97
199
did: did as Did,
···
111
213
112
214
setValidRecord(true);
113
215
} catch (err: any) {
114
-
console.error(err);
115
-
setNotice(err.message);
216
+
console.error("Record verification error:", err);
217
+
setVerifyError(err.message);
116
218
setValidRecord(false);
117
219
}
118
220
};
119
221
222
+
createEffect(() => {
223
+
if (location.hash === "#info" && record()) {
224
+
if (validSchema() === undefined) validateSchema(record()!.value);
225
+
if (validRecord() === undefined) verifyRecordIntegrity();
226
+
}
227
+
});
228
+
120
229
const resolveLexicon = async (nsid: Nsid) => {
121
230
try {
122
231
const authority = await resolveLexiconAuthority(nsid);
···
158
267
return template(parsedUri, record);
159
268
};
160
269
161
-
const RecordTab = (props: {
162
-
tab: "record" | "backlinks" | "info" | "schema";
163
-
label: string;
164
-
error?: boolean;
165
-
}) => {
270
+
const RecordTab = (props: { tab: "record" | "backlinks" | "info" | "schema"; label: string }) => {
166
271
const isActive = () => {
167
272
if (!location.hash && props.tab === "record") return true;
168
273
if (location.hash === `#${props.tab}`) return true;
···
182
287
>
183
288
{props.label}
184
289
</A>
185
-
<Show when={props.error && (validRecord() === false || validSchema() === false)}>
186
-
<span class="iconify lucide--x text-red-500 dark:text-red-400"></span>
187
-
</Show>
188
290
</div>
189
291
);
190
292
};
···
197
299
<RecordTab tab="record" label="Record" />
198
300
<RecordTab tab="schema" label="Schema" />
199
301
<RecordTab tab="backlinks" label="Backlinks" />
200
-
<RecordTab tab="info" label="Info" error />
302
+
<RecordTab tab="info" label="Info" />
201
303
</div>
202
304
<div class="flex gap-0.5">
203
305
<Show when={agent() && agent()?.sub === record()?.uri.split("/")[2]}>
···
332
434
></span>
333
435
</div>
334
436
<Show when={validRecord() === false}>
335
-
<div class="wrap-break-word">{notice()}</div>
437
+
<div class="wrap-break-word">{verifyError()}</div>
336
438
</Show>
337
439
</div>
338
-
<Show when={validSchema() !== undefined}>
440
+
<div>
339
441
<div class="flex items-center gap-1">
340
442
<span class="iconify lucide--file-check"></span>
341
443
<p class="font-semibold">Schema validation</p>
342
444
<span
343
-
class={`iconify ${validSchema() ? "lucide--check text-green-500 dark:text-green-400" : "lucide--x text-red-500 dark:text-red-400"}`}
445
+
classList={{
446
+
"iconify lucide--check text-green-500 dark:text-green-400":
447
+
validSchema() === true,
448
+
"iconify lucide--x text-red-500 dark:text-red-400": validSchema() === false,
449
+
"iconify lucide--loader-circle animate-spin": validSchema() === undefined,
450
+
}}
344
451
></span>
345
452
</div>
346
-
</Show>
453
+
<Show when={validSchema() === false}>
454
+
<div class="wrap-break-word">{validationError()}</div>
455
+
</Show>
456
+
</div>
347
457
<Show when={lexiconUri()}>
348
458
<div>
349
459
<div class="flex items-center gap-1">