tangled
alpha
login
or
join now
mary.my.id
/
aglais
4
fork
atom
personal web client for Bluesky
typescript
solidjs
bluesky
atcute
4
fork
atom
overview
issues
pulls
pipelines
chore: upgrade dependencies
mary.my.id
1 month ago
da7cf2f5
57405759
verified
This commit was signed with the committer's
known signature
.
mary.my.id
SSH Key Fingerprint:
SHA256:ZlTP/auFSGpGnaoDg4mCTG1g9OZvXp62jWR4c6H4O3c=
+388
-614
7 changed files
expand all
collapse all
unified
split
package.json
pnpm-lock.yaml
scripts
generate-oauth-keys.js
server
index.ts
jwt.ts
lexicons.ts
src
main.tsx
+13
-12
package.json
···
10
10
"dependencies": {
11
11
"@atcute/atproto": "^3.1.10",
12
12
"@atcute/bluemoji": "^3.1.3",
13
13
-
"@atcute/bluesky": "^3.2.15",
13
13
+
"@atcute/bluesky": "^3.2.16",
14
14
"@atcute/bluesky-richtext-parser": "^1.0.7",
15
15
"@atcute/bluesky-richtext-segmenter": "^3.0.0",
16
16
"@atcute/bluesky-search-parser": "^0.1.1",
···
19
19
"@atcute/client": "^4.2.1",
20
20
"@atcute/identity": "^1.1.3",
21
21
"@atcute/identity-resolver": "^1.2.2",
22
22
-
"@atcute/lexicons": "^1.2.6",
23
23
-
"@atcute/multibase": "^1.1.6",
24
24
-
"@atcute/oauth-browser-client": "2.0.3",
22
22
+
"@atcute/lexicons": "^1.2.7",
23
23
+
"@atcute/multibase": "^1.1.7",
24
24
+
"@atcute/oauth-browser-client": "^3.0.0",
25
25
+
"@atcute/oauth-crypto": "^0.1.0",
25
26
"@atcute/tid": "^1.1.1",
26
26
-
"@atcute/uint8array": "^1.0.6",
27
27
-
"@atcute/xrpc-server": "^0.1.8",
27
27
+
"@atcute/uint8array": "^1.1.0",
28
28
+
"@atcute/xrpc-server": "^0.1.9",
28
29
"@atlaskit/pragmatic-drag-and-drop": "1.6.0",
29
30
"@atlaskit/pragmatic-drag-and-drop-hitbox": "1.0.3",
30
30
-
"@floating-ui/dom": "^1.7.4",
31
31
+
"@floating-ui/dom": "^1.7.5",
31
32
"@floating-ui/utils": "^0.2.10",
32
33
"@kelinci/basa-lexicons": "^1.0.0",
33
34
"@mary/array-fns": "jsr:^0.1.5",
···
40
41
"@mary/solid-query": "npm:@externdefs/solid-query@^0.1.5",
41
42
"comlink": "^4.4.2",
42
43
"hls.js": "^1.6.15",
43
43
-
"mediabunny": "^1.29.0",
44
44
+
"mediabunny": "^1.31.0",
44
45
"nanoid": "^5.1.6",
45
46
"solid-floating-ui": "~0.2.1",
46
46
-
"solid-js": "^1.9.10"
47
47
+
"solid-js": "^1.9.11"
47
48
},
48
49
"devDependencies": {
49
50
"@badrap/valita": "^0.4.6",
50
50
-
"@cloudflare/vite-plugin": "^1.21.0",
51
51
+
"@cloudflare/vite-plugin": "^1.22.1",
51
52
"@types/dom-close-watcher": "^1.0.0",
52
53
"@types/dom-webcodecs": "^0.1.18",
53
54
"@types/node": "^24.10.9",
54
55
"autoprefixer": "^10.4.23",
55
56
"babel-plugin-transform-typescript-const-enums": "^0.1.0",
56
57
"oxfmt": "^0.26.0",
57
57
-
"prettier": "^3.8.0",
58
58
+
"prettier": "^3.8.1",
58
59
"tailwindcss": "^3.4.19",
59
60
"terser": "^5.46.0",
60
61
"typescript": "~5.9.3",
61
62
"vite": "^7.3.1",
62
63
"vite-plugin-pwa": "1.1.0",
63
64
"vite-plugin-solid": "^2.11.10",
64
64
-
"wrangler": "^4.59.2"
65
65
+
"wrangler": "^4.61.1"
65
66
},
66
67
"pnpm": {
67
68
"patchedDependencies": {
+345
-320
pnpm-lock.yaml
···
37
37
specifier: ^3.1.3
38
38
version: 3.1.3
39
39
'@atcute/bluesky':
40
40
-
specifier: ^3.2.15
41
41
-
version: 3.2.15
40
40
+
specifier: ^3.2.16
41
41
+
version: 3.2.16
42
42
'@atcute/bluesky-richtext-parser':
43
43
specifier: ^1.0.7
44
44
version: 1.0.7
···
64
64
specifier: ^1.2.2
65
65
version: 1.2.2(@atcute/identity@1.1.3)
66
66
'@atcute/lexicons':
67
67
-
specifier: ^1.2.6
68
68
-
version: 1.2.6
67
67
+
specifier: ^1.2.7
68
68
+
version: 1.2.7
69
69
'@atcute/multibase':
70
70
-
specifier: ^1.1.6
71
71
-
version: 1.1.6
70
70
+
specifier: ^1.1.7
71
71
+
version: 1.1.7
72
72
'@atcute/oauth-browser-client':
73
73
-
specifier: 2.0.3
74
74
-
version: 2.0.3(@atcute/identity@1.1.3)
73
73
+
specifier: ^3.0.0
74
74
+
version: 3.0.0(@atcute/identity@1.1.3)
75
75
+
'@atcute/oauth-crypto':
76
76
+
specifier: ^0.1.0
77
77
+
version: 0.1.0
75
78
'@atcute/tid':
76
79
specifier: ^1.1.1
77
80
version: 1.1.1
78
81
'@atcute/uint8array':
79
79
-
specifier: ^1.0.6
80
80
-
version: 1.0.6
82
82
+
specifier: ^1.1.0
83
83
+
version: 1.1.0
81
84
'@atcute/xrpc-server':
82
82
-
specifier: ^0.1.8
83
83
-
version: 0.1.8
85
85
+
specifier: ^0.1.9
86
86
+
version: 0.1.9
84
87
'@atlaskit/pragmatic-drag-and-drop':
85
88
specifier: 1.6.0
86
89
version: 1.6.0
···
88
91
specifier: 1.0.3
89
92
version: 1.0.3
90
93
'@floating-ui/dom':
91
91
-
specifier: ^1.7.4
92
92
-
version: 1.7.4
94
94
+
specifier: ^1.7.5
95
95
+
version: 1.7.5
93
96
'@floating-ui/utils':
94
97
specifier: ^0.2.10
95
98
version: 0.2.10(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea)
···
116
119
version: '@jsr/mary__exif-rm@0.2.2'
117
120
'@mary/solid-freeze':
118
121
specifier: npm:@externdefs/solid-freeze@^0.1.1
119
119
-
version: '@externdefs/solid-freeze@0.1.1(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))'
122
122
+
version: '@externdefs/solid-freeze@0.1.1(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))'
120
123
'@mary/solid-query':
121
124
specifier: npm:@externdefs/solid-query@^0.1.5
122
122
-
version: '@externdefs/solid-query@0.1.5(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))'
125
125
+
version: '@externdefs/solid-query@0.1.5(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))'
123
126
comlink:
124
127
specifier: ^4.4.2
125
128
version: 4.4.2
···
127
130
specifier: ^1.6.15
128
131
version: 1.6.15
129
132
mediabunny:
130
130
-
specifier: ^1.29.0
131
131
-
version: 1.29.0
133
133
+
specifier: ^1.31.0
134
134
+
version: 1.31.0
132
135
nanoid:
133
136
specifier: ^5.1.6
134
137
version: 5.1.6
135
138
solid-floating-ui:
136
139
specifier: ~0.2.1
137
137
-
version: 0.2.1(@floating-ui/dom@1.7.4)(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))
140
140
+
version: 0.2.1(@floating-ui/dom@1.7.5)(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))
138
141
solid-js:
139
139
-
specifier: ^1.9.10
140
140
-
version: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
142
142
+
specifier: ^1.9.11
143
143
+
version: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
141
144
devDependencies:
142
145
'@badrap/valita':
143
146
specifier: ^0.4.6
144
147
version: 0.4.6
145
148
'@cloudflare/vite-plugin':
146
146
-
specifier: ^1.21.0
147
147
-
version: 1.21.0(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0))(workerd@1.20260114.0)(wrangler@4.59.2)
149
149
+
specifier: ^1.22.1
150
150
+
version: 1.22.1(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0))(workerd@1.20260128.0)(wrangler@4.61.1)
148
151
'@types/dom-close-watcher':
149
152
specifier: ^1.0.0
150
153
version: 1.0.0
···
164
167
specifier: ^0.26.0
165
168
version: 0.26.0
166
169
prettier:
167
167
-
specifier: ^3.8.0
168
168
-
version: 3.8.0
170
170
+
specifier: ^3.8.1
171
171
+
version: 3.8.1
169
172
tailwindcss:
170
173
specifier: ^3.4.19
171
174
version: 3.4.19
···
183
186
version: 1.1.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0))
184
187
vite-plugin-solid:
185
188
specifier: ^2.11.10
186
186
-
version: 2.11.10(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0))
189
189
+
version: 2.11.10(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0))
187
190
wrangler:
188
188
-
specifier: ^4.59.2
189
189
-
version: 4.59.2
191
191
+
specifier: ^4.61.1
192
192
+
version: 4.61.1
190
193
191
194
packages:
192
195
···
215
218
'@atcute/bluesky-search-parser@0.1.1':
216
219
resolution: {integrity: sha512-jX01yzA4CWXfnpAmOL5P9kjpWEhVvIq2xEyYLZdFVpYe1v6xclUem1ir+Q8+aWoAcYwqQq6pM16XxkGw0yi5nA==}
217
220
218
218
-
'@atcute/bluesky@3.2.15':
219
219
-
resolution: {integrity: sha512-H4RW3WffjfdKvOZ9issEUQnuSR4KfuAwwJnYu0fclA9VDa99JTJ+pa8tTl9lFeBV9DINtWJAx7rdIbICoVCstQ==}
221
221
+
'@atcute/bluesky@3.2.16':
222
222
+
resolution: {integrity: sha512-phFAJNE+SCkIbCcgzjFxntS2KpGvzkLw0JA9qKIXlueF4wNreEt/D5HjnB5eRR9pV1/kcD94II9f7ZAwarf0lQ==}
220
223
221
224
'@atcute/cbor@2.3.0':
222
225
resolution: {integrity: sha512-7G2AndkfYzIXMBOBqUPUWP6oIJJm77KY5nYzS4Mr5NNxnmnrBrXEQqp+seCE3X5TV8FUSWQK5YRTU87uPjafMQ==}
···
238
241
'@atcute/identity@1.1.3':
239
242
resolution: {integrity: sha512-oIqPoI8TwWeQxvcLmFEZLdN2XdWcaLVtlm8pNk0E72As9HNzzD9pwKPrLr3rmTLRIoULPPFmq9iFNsTeCIU9ng==}
240
243
241
241
-
'@atcute/lexicons@1.2.6':
242
242
-
resolution: {integrity: sha512-s76UQd8D+XmHIzrjD9CJ9SOOeeLPHc+sMmcj7UFakAW/dDFXc579fcRdRfuUKvXBL5v1Gs2VgDdlh/IvvQZAwA==}
244
244
+
'@atcute/lexicons@1.2.7':
245
245
+
resolution: {integrity: sha512-gCvkSMI1F1zx7xXa59iPiSKMH3L5Hga6iurGqQjaQbE2V/np/2QuDqQzt96TNbWfaFAXE9f9oY+0z3ljf/bweA==}
246
246
+
247
247
+
'@atcute/multibase@1.1.7':
248
248
+
resolution: {integrity: sha512-YmWds7U52b7Qri0xNfGeqSOvgyNfHR8Yy/NNDQx4d5TkCX2fHJIo0pXquEhCyMNAwKt53uH5yQDswy4TNP1Zhw==}
249
249
+
250
250
+
'@atcute/oauth-browser-client@3.0.0':
251
251
+
resolution: {integrity: sha512-7AbKV8tTe7aRJNJV7gCcWHSVEADb2nr58O1p7dQsf73HSe9pvlBkj/Vk1yjjtH691uAVYkwhHSh0bC7D8XdwJw==}
252
252
+
253
253
+
'@atcute/oauth-crypto@0.1.0':
254
254
+
resolution: {integrity: sha512-qZYDCNLF/4B6AndYT1rsQelN8621AC5u/sL5PHvlr/qqAbmmUwCBGjEgRSyZtHE1AqD60VNiSMlOgAuEQTSl3w==}
243
255
244
244
-
'@atcute/multibase@1.1.6':
245
245
-
resolution: {integrity: sha512-HBxuCgYLKPPxETV0Rot4VP9e24vKl8JdzGCZOVsDaOXJgbRZoRIF67Lp0H/OgnJeH/Xpva8Z5ReoTNJE5dn3kg==}
256
256
+
'@atcute/oauth-keyset@0.1.0':
257
257
+
resolution: {integrity: sha512-+wqT/+I5Lg9VzKnKY3g88+N45xbq+wsdT6bHDGqCVa2u57gRvolFF4dY+weMfc/OX641BIZO6/o+zFtKBsMQnQ==}
246
258
247
247
-
'@atcute/oauth-browser-client@2.0.3':
248
248
-
resolution: {integrity: sha512-rzUjwhjE4LRRKdQnCFQag/zXRZMEAB1hhBoLfnoQuHwWbmDUCL7fzwC3jRhDPp3om8XaYNDj8a/iqRip0wRqoQ==}
259
259
+
'@atcute/oauth-types@0.1.0':
260
260
+
resolution: {integrity: sha512-bAuhgizREKSZghI1Re8Nw/GI6troJ/nwTsDlEwr4HnRKnk0hTc61Igl4y09MG3znOoHOtWIdEnO4zR7pN11BaA==}
249
261
250
262
'@atcute/tid@1.1.1':
251
263
resolution: {integrity: sha512-djJ8UGhLkTU5V51yCnBEruMg35qETjWzWy5sJG/2gEOl2Gd7rQWHSaf+yrO6vMS5EFA38U2xOWE3EDUPzvc2ZQ==}
···
253
265
'@atcute/time-ms@1.2.0':
254
266
resolution: {integrity: sha512-dtNKebVIbr1+yu3a6vgtL4sfkNgxkL3aA+ohHsjtW83WWMjjGvX8GVTVmYCJ2dYSxIoxK0q1yWs11PmlqzmQ/A==}
255
267
256
256
-
'@atcute/uint8array@1.0.6':
257
257
-
resolution: {integrity: sha512-ucfRBQc7BFT8n9eCyGOzDHEMKF/nZwhS2pPao4Xtab1ML3HdFYcX2DM1tadCzas85QTGxHe5urnUAAcNKGRi9A==}
268
268
+
'@atcute/uint8array@1.1.0':
269
269
+
resolution: {integrity: sha512-JtHXIVW6LPU9FMWp7SgE4HbUs3uV2WdfkK/2RWdEGjr4EgMV50P3FdU6fPeGlTfDNBJVYMIsuD2wwaKRPV/Aqg==}
258
270
259
271
'@atcute/util-fetch@1.0.5':
260
272
resolution: {integrity: sha512-qjHj01BGxjSjIFdPiAjSARnodJIIyKxnCMMEcXMESo9TAyND6XZQqrie5fia+LlYWVXdpsTds8uFQwc9jdKTig==}
261
273
262
262
-
'@atcute/util-text@0.0.1':
263
263
-
resolution: {integrity: sha512-t1KZqvn0AYy+h2KcJyHnKF9aEqfRfMUmyY8j1ELtAEIgqN9CxINAjxnoRCJIFUlvWzb+oY3uElQL/Vyk3yss0g==}
274
274
+
'@atcute/util-text@1.1.0':
275
275
+
resolution: {integrity: sha512-34G9KD5Z9f7oEdFpZOmqrMnU86p8ne6LlxJowfZzKNszRcl1GH+FtEPh3N1woelJT2SkPXMK2anwT8DESTluwA==}
264
276
265
265
-
'@atcute/xrpc-server@0.1.8':
266
266
-
resolution: {integrity: sha512-GFdPtaXQXfsqejx88CaJ6zU0Yexrh3n94/rotGk1xwNJLa1iQ5kuWQqzttcybXoYEOp5Z2CGGw7bx9WuCLarlw==}
277
277
+
'@atcute/xrpc-server@0.1.9':
278
278
+
resolution: {integrity: sha512-sIgHeLIezIiaDT3eCwHpUfMOHoU2MP3izwmItqvXalMBGrR3qF35m2+3YDXOAxLqyTI1RSuQOk3SD3zLZx53gA==}
267
279
268
280
'@atlaskit/pragmatic-drag-and-drop-hitbox@1.0.3':
269
281
resolution: {integrity: sha512-/Sbu/HqN2VGLYBhnsG7SbRNg98XKkbF6L7XDdBi+izRybfaK1FeMfodPpm/xnBHPJzwYMdkE0qtLyv6afhgMUA==}
···
307
319
peerDependencies:
308
320
'@babel/core': ^7.0.0
309
321
310
310
-
'@babel/helper-define-polyfill-provider@0.6.5':
311
311
-
resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==}
322
322
+
'@babel/helper-define-polyfill-provider@0.6.6':
323
323
+
resolution: {integrity: sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==}
312
324
peerDependencies:
313
325
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
314
326
···
784
796
resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==}
785
797
engines: {node: '>=18.0.0'}
786
798
787
787
-
'@cloudflare/unenv-preset@2.10.0':
788
788
-
resolution: {integrity: sha512-/uII4vLQXhzCAZzEVeYAjFLBNg2nqTJ1JGzd2lRF6ItYe6U2zVoYGfeKpGx/EkBF6euiU+cyBXgMdtJih+nQ6g==}
799
799
+
'@cloudflare/unenv-preset@2.12.0':
800
800
+
resolution: {integrity: sha512-NK4vN+2Z/GbfGS4BamtbbVk1rcu5RmqaYGiyHJQrA09AoxdZPHDF3W/EhgI0YSK8p3vRo/VNCtbSJFPON7FWMQ==}
789
801
peerDependencies:
790
802
unenv: 2.0.0-rc.24
791
791
-
workerd: ^1.20251221.0
803
803
+
workerd: ^1.20260115.0
792
804
peerDependenciesMeta:
793
805
workerd:
794
806
optional: true
795
807
796
796
-
'@cloudflare/vite-plugin@1.21.0':
797
797
-
resolution: {integrity: sha512-3VXtkfjOQL+k3Plj+t0BHRyw8iIIRBQ8RJU6KJHJQKdYHA6rJE/WlSa/lRd0A8MMhvP8e8QiMLuDqveEN8gCZg==}
808
808
+
'@cloudflare/vite-plugin@1.22.1':
809
809
+
resolution: {integrity: sha512-RDWc6WtrdjVDfpBeO3MYcgJIbq+Phg9qBXq1Ixl00qPqM8bgKp9oPLhg8oayynQs8udNnqkV0CjfojvIhhfZWg==}
798
810
peerDependencies:
799
811
vite: ^6.1.0 || ^7.0.0
800
800
-
wrangler: ^4.59.2
812
812
+
wrangler: ^4.61.1
801
813
802
802
-
'@cloudflare/workerd-darwin-64@1.20260114.0':
803
803
-
resolution: {integrity: sha512-HNlsRkfNgardCig2P/5bp/dqDECsZ4+NU5XewqArWxMseqt3C5daSuptI620s4pn7Wr0ZKg7jVLH0PDEBkA+aA==}
814
814
+
'@cloudflare/workerd-darwin-64@1.20260128.0':
815
815
+
resolution: {integrity: sha512-XJN8zWWNG3JwAUqqwMLNKJ9fZfdlQkx/zTTHW/BB8wHat9LjKD6AzxqCu432YmfjR+NxEKCzUOxMu1YOxlVxmg==}
804
816
engines: {node: '>=16'}
805
817
cpu: [x64]
806
818
os: [darwin]
807
819
808
808
-
'@cloudflare/workerd-darwin-arm64@1.20260114.0':
809
809
-
resolution: {integrity: sha512-qyE1UdFnAlxzb+uCfN/d9c8icch7XRiH49/DjoqEa+bCDihTuRS7GL1RmhVIqHJhb3pX3DzxmKgQZBDBL83Inw==}
820
820
+
'@cloudflare/workerd-darwin-arm64@1.20260128.0':
821
821
+
resolution: {integrity: sha512-vKnRcmnm402GQ5DOdfT5H34qeR2m07nhnTtky8mTkNWP+7xmkz32AMdclwMmfO/iX9ncyKwSqmml2wPG32eq/w==}
810
822
engines: {node: '>=16'}
811
823
cpu: [arm64]
812
824
os: [darwin]
813
825
814
814
-
'@cloudflare/workerd-linux-64@1.20260114.0':
815
815
-
resolution: {integrity: sha512-Z0BLvAj/JPOabzads2ddDEfgExWTlD22pnwsuNbPwZAGTSZeQa3Y47eGUWyHk+rSGngknk++S7zHTGbKuG7RRg==}
826
826
+
'@cloudflare/workerd-linux-64@1.20260128.0':
827
827
+
resolution: {integrity: sha512-RiaR+Qugof/c6oI5SagD2J5wJmIfI8wQWaV2Y9905Raj6sAYOFaEKfzkKnoLLLNYb4NlXicBrffJi1j7R/ypUA==}
816
828
engines: {node: '>=16'}
817
829
cpu: [x64]
818
830
os: [linux]
819
831
820
820
-
'@cloudflare/workerd-linux-arm64@1.20260114.0':
821
821
-
resolution: {integrity: sha512-kPUmEtUxUWlr9PQ64kuhdK0qyo8idPe5IIXUgi7xCD7mDd6EOe5J7ugDpbfvfbYKEjx4DpLvN2t45izyI/Sodw==}
832
832
+
'@cloudflare/workerd-linux-arm64@1.20260128.0':
833
833
+
resolution: {integrity: sha512-U39U9vcXLXYDbrJ112Q7D0LDUUnM54oXfAxPgrL2goBwio7Z6RnsM25TRvm+Q06F4+FeDOC4D51JXlFHb9t1OA==}
822
834
engines: {node: '>=16'}
823
835
cpu: [arm64]
824
836
os: [linux]
825
837
826
826
-
'@cloudflare/workerd-windows-64@1.20260114.0':
827
827
-
resolution: {integrity: sha512-MJnKgm6i1jZGyt2ZHQYCnRlpFTEZcK2rv9y7asS3KdVEXaDgGF8kOns5u6YL6/+eMogfZuHRjfDS+UqRTUYIFA==}
838
838
+
'@cloudflare/workerd-windows-64@1.20260128.0':
839
839
+
resolution: {integrity: sha512-fdJwSqRkJsAJFJ7+jy0th2uMO6fwaDA8Ny6+iFCssfzlNkc4dP/twXo+3F66FMLMe/6NIqjzVts0cpiv7ERYbQ==}
828
840
engines: {node: '>=16'}
829
841
cpu: [x64]
830
842
os: [win32]
···
1158
1170
peerDependencies:
1159
1171
solid-js: ^1.8.5
1160
1172
1161
1161
-
'@floating-ui/core@1.7.3':
1162
1162
-
resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==}
1173
1173
+
'@floating-ui/core@1.7.4':
1174
1174
+
resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==}
1163
1175
1164
1164
-
'@floating-ui/dom@1.7.4':
1165
1165
-
resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==}
1176
1176
+
'@floating-ui/dom@1.7.5':
1177
1177
+
resolution: {integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==}
1166
1178
1167
1179
'@floating-ui/utils@0.2.10':
1168
1180
resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
···
1487
1499
rollup:
1488
1500
optional: true
1489
1501
1490
1490
-
'@rollup/rollup-android-arm-eabi@4.55.2':
1491
1491
-
resolution: {integrity: sha512-21J6xzayjy3O6NdnlO6aXi/urvSRjm6nCI6+nF6ra2YofKruGixN9kfT+dt55HVNwfDmpDHJcaS3JuP/boNnlA==}
1502
1502
+
'@rollup/rollup-android-arm-eabi@4.57.0':
1503
1503
+
resolution: {integrity: sha512-tPgXB6cDTndIe1ah7u6amCI1T0SsnlOuKgg10Xh3uizJk4e5M1JGaUMk7J4ciuAUcFpbOiNhm2XIjP9ON0dUqA==}
1492
1504
cpu: [arm]
1493
1505
os: [android]
1494
1506
1495
1495
-
'@rollup/rollup-android-arm64@4.55.2':
1496
1496
-
resolution: {integrity: sha512-eXBg7ibkNUZ+sTwbFiDKou0BAckeV6kIigK7y5Ko4mB/5A1KLhuzEKovsmfvsL8mQorkoincMFGnQuIT92SKqA==}
1507
1507
+
'@rollup/rollup-android-arm64@4.57.0':
1508
1508
+
resolution: {integrity: sha512-sa4LyseLLXr1onr97StkU1Nb7fWcg6niokTwEVNOO7awaKaoRObQ54+V/hrF/BP1noMEaaAW6Fg2d/CfLiq3Mg==}
1497
1509
cpu: [arm64]
1498
1510
os: [android]
1499
1511
1500
1500
-
'@rollup/rollup-darwin-arm64@4.55.2':
1501
1501
-
resolution: {integrity: sha512-UCbaTklREjrc5U47ypLulAgg4njaqfOVLU18VrCrI+6E5MQjuG0lSWaqLlAJwsD7NpFV249XgB0Bi37Zh5Sz4g==}
1512
1512
+
'@rollup/rollup-darwin-arm64@4.57.0':
1513
1513
+
resolution: {integrity: sha512-/NNIj9A7yLjKdmkx5dC2XQ9DmjIECpGpwHoGmA5E1AhU0fuICSqSWScPhN1yLCkEdkCwJIDu2xIeLPs60MNIVg==}
1502
1514
cpu: [arm64]
1503
1515
os: [darwin]
1504
1516
1505
1505
-
'@rollup/rollup-darwin-x64@4.55.2':
1506
1506
-
resolution: {integrity: sha512-dP67MA0cCMHFT2g5XyjtpVOtp7y4UyUxN3dhLdt11at5cPKnSm4lY+EhwNvDXIMzAMIo2KU+mc9wxaAQJTn7sQ==}
1517
1517
+
'@rollup/rollup-darwin-x64@4.57.0':
1518
1518
+
resolution: {integrity: sha512-xoh8abqgPrPYPr7pTYipqnUi1V3em56JzE/HgDgitTqZBZ3yKCWI+7KUkceM6tNweyUKYru1UMi7FC060RyKwA==}
1507
1519
cpu: [x64]
1508
1520
os: [darwin]
1509
1521
1510
1510
-
'@rollup/rollup-freebsd-arm64@4.55.2':
1511
1511
-
resolution: {integrity: sha512-WDUPLUwfYV9G1yxNRJdXcvISW15mpvod1Wv3ok+Ws93w1HjIVmCIFxsG2DquO+3usMNCpJQ0wqO+3GhFdl6Fow==}
1522
1522
+
'@rollup/rollup-freebsd-arm64@4.57.0':
1523
1523
+
resolution: {integrity: sha512-PCkMh7fNahWSbA0OTUQ2OpYHpjZZr0hPr8lId8twD7a7SeWrvT3xJVyza+dQwXSSq4yEQTMoXgNOfMCsn8584g==}
1512
1524
cpu: [arm64]
1513
1525
os: [freebsd]
1514
1526
1515
1515
-
'@rollup/rollup-freebsd-x64@4.55.2':
1516
1516
-
resolution: {integrity: sha512-Ng95wtHVEulRwn7R0tMrlUuiLVL/HXA8Lt/MYVpy88+s5ikpntzZba1qEulTuPnPIZuOPcW9wNEiqvZxZmgmqQ==}
1527
1527
+
'@rollup/rollup-freebsd-x64@4.57.0':
1528
1528
+
resolution: {integrity: sha512-1j3stGx+qbhXql4OCDZhnK7b01s6rBKNybfsX+TNrEe9JNq4DLi1yGiR1xW+nL+FNVvI4D02PUnl6gJ/2y6WJA==}
1517
1529
cpu: [x64]
1518
1530
os: [freebsd]
1519
1531
1520
1520
-
'@rollup/rollup-linux-arm-gnueabihf@4.55.2':
1521
1521
-
resolution: {integrity: sha512-AEXMESUDWWGqD6LwO/HkqCZgUE1VCJ1OhbvYGsfqX2Y6w5quSXuyoy/Fg3nRqiwro+cJYFxiw5v4kB2ZDLhxrw==}
1532
1532
+
'@rollup/rollup-linux-arm-gnueabihf@4.57.0':
1533
1533
+
resolution: {integrity: sha512-eyrr5W08Ms9uM0mLcKfM/Uzx7hjhz2bcjv8P2uynfj0yU8GGPdz8iYrBPhiLOZqahoAMB8ZiolRZPbbU2MAi6Q==}
1522
1534
cpu: [arm]
1523
1535
os: [linux]
1524
1536
1525
1525
-
'@rollup/rollup-linux-arm-musleabihf@4.55.2':
1526
1526
-
resolution: {integrity: sha512-ZV7EljjBDwBBBSv570VWj0hiNTdHt9uGznDtznBB4Caj3ch5rgD4I2K1GQrtbvJ/QiB+663lLgOdcADMNVC29Q==}
1537
1537
+
'@rollup/rollup-linux-arm-musleabihf@4.57.0':
1538
1538
+
resolution: {integrity: sha512-Xds90ITXJCNyX9pDhqf85MKWUI4lqjiPAipJ8OLp8xqI2Ehk+TCVhF9rvOoN8xTbcafow3QOThkNnrM33uCFQA==}
1527
1539
cpu: [arm]
1528
1540
os: [linux]
1529
1541
1530
1530
-
'@rollup/rollup-linux-arm64-gnu@4.55.2':
1531
1531
-
resolution: {integrity: sha512-uvjwc8NtQVPAJtq4Tt7Q49FOodjfbf6NpqXyW/rjXoV+iZ3EJAHLNAnKT5UJBc6ffQVgmXTUL2ifYiLABlGFqA==}
1542
1542
+
'@rollup/rollup-linux-arm64-gnu@4.57.0':
1543
1543
+
resolution: {integrity: sha512-Xws2KA4CLvZmXjy46SQaXSejuKPhwVdaNinldoYfqruZBaJHqVo6hnRa8SDo9z7PBW5x84SH64+izmldCgbezw==}
1532
1544
cpu: [arm64]
1533
1545
os: [linux]
1534
1546
1535
1535
-
'@rollup/rollup-linux-arm64-musl@4.55.2':
1536
1536
-
resolution: {integrity: sha512-s3KoWVNnye9mm/2WpOZ3JeUiediUVw6AvY/H7jNA6qgKA2V2aM25lMkVarTDfiicn/DLq3O0a81jncXszoyCFA==}
1547
1547
+
'@rollup/rollup-linux-arm64-musl@4.57.0':
1548
1548
+
resolution: {integrity: sha512-hrKXKbX5FdaRJj7lTMusmvKbhMJSGWJ+w++4KmjiDhpTgNlhYobMvKfDoIWecy4O60K6yA4SnztGuNTQF+Lplw==}
1537
1549
cpu: [arm64]
1538
1550
os: [linux]
1539
1551
1540
1540
-
'@rollup/rollup-linux-loong64-gnu@4.55.2':
1541
1541
-
resolution: {integrity: sha512-gi21faacK+J8aVSyAUptML9VQN26JRxe484IbF+h3hpG+sNVoMXPduhREz2CcYr5my0NE3MjVvQ5bMKX71pfVA==}
1552
1552
+
'@rollup/rollup-linux-loong64-gnu@4.57.0':
1553
1553
+
resolution: {integrity: sha512-6A+nccfSDGKsPm00d3xKcrsBcbqzCTAukjwWK6rbuAnB2bHaL3r9720HBVZ/no7+FhZLz/U3GwwZZEh6tOSI8Q==}
1542
1554
cpu: [loong64]
1543
1555
os: [linux]
1544
1556
1545
1545
-
'@rollup/rollup-linux-loong64-musl@4.55.2':
1546
1546
-
resolution: {integrity: sha512-qSlWiXnVaS/ceqXNfnoFZh4IiCA0EwvCivivTGbEu1qv2o+WTHpn1zNmCTAoOG5QaVr2/yhCoLScQtc/7RxshA==}
1557
1557
+
'@rollup/rollup-linux-loong64-musl@4.57.0':
1558
1558
+
resolution: {integrity: sha512-4P1VyYUe6XAJtQH1Hh99THxr0GKMMwIXsRNOceLrJnaHTDgk1FTcTimDgneRJPvB3LqDQxUmroBclQ1S0cIJwQ==}
1547
1559
cpu: [loong64]
1548
1560
os: [linux]
1549
1561
1550
1550
-
'@rollup/rollup-linux-ppc64-gnu@4.55.2':
1551
1551
-
resolution: {integrity: sha512-rPyuLFNoF1B0+wolH277E780NUKf+KoEDb3OyoLbAO18BbeKi++YN6gC/zuJoPPDlQRL3fIxHxCxVEWiem2yXw==}
1562
1562
+
'@rollup/rollup-linux-ppc64-gnu@4.57.0':
1563
1563
+
resolution: {integrity: sha512-8Vv6pLuIZCMcgXre6c3nOPhE0gjz1+nZP6T+hwWjr7sVH8k0jRkH+XnfjjOTglyMBdSKBPPz54/y1gToSKwrSQ==}
1552
1564
cpu: [ppc64]
1553
1565
os: [linux]
1554
1566
1555
1555
-
'@rollup/rollup-linux-ppc64-musl@4.55.2':
1556
1556
-
resolution: {integrity: sha512-g+0ZLMook31iWV4PvqKU0i9E78gaZgYpSrYPed/4Bu+nGTgfOPtfs1h11tSSRPXSjC5EzLTjV/1A7L2Vr8pJoQ==}
1567
1567
+
'@rollup/rollup-linux-ppc64-musl@4.57.0':
1568
1568
+
resolution: {integrity: sha512-r1te1M0Sm2TBVD/RxBPC6RZVwNqUTwJTA7w+C/IW5v9Ssu6xmxWEi+iJQlpBhtUiT1raJ5b48pI8tBvEjEFnFA==}
1557
1569
cpu: [ppc64]
1558
1570
os: [linux]
1559
1571
1560
1560
-
'@rollup/rollup-linux-riscv64-gnu@4.55.2':
1561
1561
-
resolution: {integrity: sha512-i+sGeRGsjKZcQRh3BRfpLsM3LX3bi4AoEVqmGDyc50L6KfYsN45wVCSz70iQMwPWr3E5opSiLOwsC9WB4/1pqg==}
1572
1572
+
'@rollup/rollup-linux-riscv64-gnu@4.57.0':
1573
1573
+
resolution: {integrity: sha512-say0uMU/RaPm3CDQLxUUTF2oNWL8ysvHkAjcCzV2znxBr23kFfaxocS9qJm+NdkRhF8wtdEEAJuYcLPhSPbjuQ==}
1562
1574
cpu: [riscv64]
1563
1575
os: [linux]
1564
1576
1565
1565
-
'@rollup/rollup-linux-riscv64-musl@4.55.2':
1566
1566
-
resolution: {integrity: sha512-C1vLcKc4MfFV6I0aWsC7B2Y9QcsiEcvKkfxprwkPfLaN8hQf0/fKHwSF2lcYzA9g4imqnhic729VB9Fo70HO3Q==}
1577
1577
+
'@rollup/rollup-linux-riscv64-musl@4.57.0':
1578
1578
+
resolution: {integrity: sha512-/MU7/HizQGsnBREtRpcSbSV1zfkoxSTR7wLsRmBPQ8FwUj5sykrP1MyJTvsxP5KBq9SyE6kH8UQQQwa0ASeoQQ==}
1567
1579
cpu: [riscv64]
1568
1580
os: [linux]
1569
1581
1570
1570
-
'@rollup/rollup-linux-s390x-gnu@4.55.2':
1571
1571
-
resolution: {integrity: sha512-68gHUK/howpQjh7g7hlD9DvTTt4sNLp1Bb+Yzw2Ki0xvscm2cOdCLZNJNhd2jW8lsTPrHAHuF751BygifW4bkQ==}
1582
1582
+
'@rollup/rollup-linux-s390x-gnu@4.57.0':
1583
1583
+
resolution: {integrity: sha512-Q9eh+gUGILIHEaJf66aF6a414jQbDnn29zeu0eX3dHMuysnhTvsUvZTCAyZ6tJhUjnvzBKE4FtuaYxutxRZpOg==}
1572
1584
cpu: [s390x]
1573
1585
os: [linux]
1574
1586
1575
1575
-
'@rollup/rollup-linux-x64-gnu@4.55.2':
1576
1576
-
resolution: {integrity: sha512-1e30XAuaBP1MAizaOBApsgeGZge2/Byd6wV4a8oa6jPdHELbRHBiw7wvo4dp7Ie2PE8TZT4pj9RLGZv9N4qwlw==}
1587
1587
+
'@rollup/rollup-linux-x64-gnu@4.57.0':
1588
1588
+
resolution: {integrity: sha512-OR5p5yG5OKSxHReWmwvM0P+VTPMwoBS45PXTMYaskKQqybkS3Kmugq1W+YbNWArF8/s7jQScgzXUhArzEQ7x0A==}
1577
1589
cpu: [x64]
1578
1590
os: [linux]
1579
1591
1580
1580
-
'@rollup/rollup-linux-x64-musl@4.55.2':
1581
1581
-
resolution: {integrity: sha512-4BJucJBGbuGnH6q7kpPqGJGzZnYrpAzRd60HQSt3OpX/6/YVgSsJnNzR8Ot74io50SeVT4CtCWe/RYIAymFPwA==}
1592
1592
+
'@rollup/rollup-linux-x64-musl@4.57.0':
1593
1593
+
resolution: {integrity: sha512-XeatKzo4lHDsVEbm1XDHZlhYZZSQYym6dg2X/Ko0kSFgio+KXLsxwJQprnR48GvdIKDOpqWqssC3iBCjoMcMpw==}
1582
1594
cpu: [x64]
1583
1595
os: [linux]
1584
1596
1585
1585
-
'@rollup/rollup-openbsd-x64@4.55.2':
1586
1586
-
resolution: {integrity: sha512-cT2MmXySMo58ENv8p6/O6wI/h/gLnD3D6JoajwXFZH6X9jz4hARqUhWpGuQhOgLNXscfZYRQMJvZDtWNzMAIDw==}
1597
1597
+
'@rollup/rollup-openbsd-x64@4.57.0':
1598
1598
+
resolution: {integrity: sha512-Lu71y78F5qOfYmubYLHPcJm74GZLU6UJ4THkf/a1K7Tz2ycwC2VUbsqbJAXaR6Bx70SRdlVrt2+n5l7F0agTUw==}
1587
1599
cpu: [x64]
1588
1600
os: [openbsd]
1589
1601
1590
1590
-
'@rollup/rollup-openharmony-arm64@4.55.2':
1591
1591
-
resolution: {integrity: sha512-sZnyUgGkuzIXaK3jNMPmUIyJrxu/PjmATQrocpGA1WbCPX8H5tfGgRSuYtqBYAvLuIGp8SPRb1O4d1Fkb5fXaQ==}
1602
1602
+
'@rollup/rollup-openharmony-arm64@4.57.0':
1603
1603
+
resolution: {integrity: sha512-v5xwKDWcu7qhAEcsUubiav7r+48Uk/ENWdr82MBZZRIm7zThSxCIVDfb3ZeRRq9yqk+oIzMdDo6fCcA5DHfMyA==}
1592
1604
cpu: [arm64]
1593
1605
os: [openharmony]
1594
1606
1595
1595
-
'@rollup/rollup-win32-arm64-msvc@4.55.2':
1596
1596
-
resolution: {integrity: sha512-sDpFbenhmWjNcEbBcoTV0PWvW5rPJFvu+P7XoTY0YLGRupgLbFY0XPfwIbJOObzO7QgkRDANh65RjhPmgSaAjQ==}
1607
1607
+
'@rollup/rollup-win32-arm64-msvc@4.57.0':
1608
1608
+
resolution: {integrity: sha512-XnaaaSMGSI6Wk8F4KK3QP7GfuuhjGchElsVerCplUuxRIzdvZ7hRBpLR0omCmw+kI2RFJB80nenhOoGXlJ5TfQ==}
1597
1609
cpu: [arm64]
1598
1610
os: [win32]
1599
1611
1600
1600
-
'@rollup/rollup-win32-ia32-msvc@4.55.2':
1601
1601
-
resolution: {integrity: sha512-GvJ03TqqaweWCigtKQVBErw2bEhu1tyfNQbarwr94wCGnczA9HF8wqEe3U/Lfu6EdeNP0p6R+APeHVwEqVxpUQ==}
1612
1612
+
'@rollup/rollup-win32-ia32-msvc@4.57.0':
1613
1613
+
resolution: {integrity: sha512-3K1lP+3BXY4t4VihLw5MEg6IZD3ojSYzqzBG571W3kNQe4G4CcFpSUQVgurYgib5d+YaCjeFow8QivWp8vuSvA==}
1602
1614
cpu: [ia32]
1603
1615
os: [win32]
1604
1616
1605
1605
-
'@rollup/rollup-win32-x64-gnu@4.55.2':
1606
1606
-
resolution: {integrity: sha512-KvXsBvp13oZz9JGe5NYS7FNizLe99Ny+W8ETsuCyjXiKdiGrcz2/J/N8qxZ/RSwivqjQguug07NLHqrIHrqfYw==}
1617
1617
+
'@rollup/rollup-win32-x64-gnu@4.57.0':
1618
1618
+
resolution: {integrity: sha512-MDk610P/vJGc5L5ImE4k5s+GZT3en0KoK1MKPXCRgzmksAMk79j4h3k1IerxTNqwDLxsGxStEZVBqG0gIqZqoA==}
1607
1619
cpu: [x64]
1608
1620
os: [win32]
1609
1621
1610
1610
-
'@rollup/rollup-win32-x64-msvc@4.55.2':
1611
1611
-
resolution: {integrity: sha512-xNO+fksQhsAckRtDSPWaMeT1uIM+JrDRXlerpnWNXhn1TdB3YZ6uKBMBTKP0eX9XtYEP978hHk1f8332i2AW8Q==}
1622
1622
+
'@rollup/rollup-win32-x64-msvc@4.57.0':
1623
1623
+
resolution: {integrity: sha512-Zv7v6q6aV+VslnpwzqKAmrk5JdVkLUzok2208ZXGipjb+msxBr/fJPZyeEXiFgH7k62Ak0SLIfxQRZQvTuf7rQ==}
1612
1624
cpu: [x64]
1613
1625
os: [win32]
1614
1626
···
1640
1652
'@types/babel__traverse@7.28.0':
1641
1653
resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
1642
1654
1643
1643
-
'@types/bun@1.3.6':
1644
1644
-
resolution: {integrity: sha512-uWCv6FO/8LcpREhenN1d1b6fcspAB+cefwD7uti8C8VffIv0Um08TKMn98FynpTiU38+y2dUO55T11NgDt8VAA==}
1655
1655
+
'@types/bun@1.3.8':
1656
1656
+
resolution: {integrity: sha512-3LvWJ2q5GerAXYxO2mffLTqOzEu5qnhEAlh48Vnu8WQfnmSwbgagjGZV6BoHKJztENYEDn6QmVd949W4uESRJA==}
1645
1657
1646
1658
'@types/dom-close-watcher@1.0.0':
1647
1659
resolution: {integrity: sha512-7pL0By56sVVGMSJ3HdSY+u08Id0ljStCaf1VnGFxwfpuNdA0HMz0sl2J24eSi9M6ptl9ySkVK35jF75Fn8trUg==}
···
1723
1735
peerDependencies:
1724
1736
'@babel/core': ^7.20.12
1725
1737
1726
1726
-
babel-plugin-polyfill-corejs2@0.4.14:
1727
1727
-
resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==}
1738
1738
+
babel-plugin-polyfill-corejs2@0.4.15:
1739
1739
+
resolution: {integrity: sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==}
1728
1740
peerDependencies:
1729
1741
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
1730
1742
···
1733
1745
peerDependencies:
1734
1746
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
1735
1747
1736
1736
-
babel-plugin-polyfill-regenerator@0.6.5:
1737
1737
-
resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==}
1748
1748
+
babel-plugin-polyfill-regenerator@0.6.6:
1749
1749
+
resolution: {integrity: sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==}
1738
1750
peerDependencies:
1739
1751
'@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
1740
1752
···
1755
1767
balanced-match@1.0.2:
1756
1768
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
1757
1769
1758
1758
-
baseline-browser-mapping@2.9.16:
1759
1759
-
resolution: {integrity: sha512-KeUZdBuxngy825i8xvzaK1Ncnkx0tBmb3k8DkEuqjKRkmtvNTjey2ZsNeh8Dw4lfKvbCOu9oeNx2TKm2vHqcRw==}
1770
1770
+
baseline-browser-mapping@2.9.19:
1771
1771
+
resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==}
1760
1772
hasBin: true
1761
1773
1762
1774
binary-extensions@2.3.0:
···
1784
1796
buffer-from@1.1.2:
1785
1797
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
1786
1798
1787
1787
-
bun-types@1.3.6:
1788
1788
-
resolution: {integrity: sha512-OlFwHcnNV99r//9v5IIOgQ9Uk37gZqrNMCcqEaExdkVq3Avwqok1bJFmvGMCkCE0FqzdY8VMOZpfpR3lwI+CsQ==}
1799
1799
+
bun-types@1.3.8:
1800
1800
+
resolution: {integrity: sha512-fL99nxdOWvV4LqjmC+8Q9kW3M4QTtTR1eePs94v5ctGqU8OeceWrSUaRw3JYb7tU3FkMIAjkueehrHPPPGKi5Q==}
1789
1801
1790
1802
camelcase-css@2.0.1:
1791
1803
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
1792
1804
engines: {node: '>= 6'}
1793
1805
1794
1794
-
caniuse-lite@1.0.30001765:
1795
1795
-
resolution: {integrity: sha512-LWcNtSyZrakjECqmpP4qdg0MMGdN368D7X8XvvAqOcqMv0RxnlqVKZl2V6/mBR68oYMxOZPLw/gO7DuisMHUvQ==}
1806
1806
+
caniuse-lite@1.0.30001766:
1807
1807
+
resolution: {integrity: sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==}
1796
1808
1797
1809
chokidar@3.6.0:
1798
1810
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
···
1826
1838
resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==}
1827
1839
engines: {node: '>=18'}
1828
1840
1829
1829
-
core-js-compat@3.47.0:
1830
1830
-
resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==}
1841
1841
+
core-js-compat@3.48.0:
1842
1842
+
resolution: {integrity: sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==}
1831
1843
1832
1844
cross-spawn@7.0.6:
1833
1845
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
···
1876
1888
engines: {node: '>=0.10.0'}
1877
1889
hasBin: true
1878
1890
1879
1879
-
electron-to-chromium@1.5.267:
1880
1880
-
resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==}
1891
1891
+
electron-to-chromium@1.5.282:
1892
1892
+
resolution: {integrity: sha512-FCPkJtpst28UmFzd903iU7PdeVTfY0KAeJy+Lk0GLZRwgwYHn/irRcaCbQQOmr5Vytc/7rcavsYLvTM8RiHYhQ==}
1881
1893
1882
1894
emoji-regex@8.0.0:
1883
1895
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
···
2101
2113
lodash.sortby@4.7.0:
2102
2114
resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
2103
2115
2104
2104
-
lodash@4.17.21:
2105
2105
-
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
2116
2116
+
lodash@4.17.23:
2117
2117
+
resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==}
2106
2118
2107
2107
-
lru-cache@11.2.4:
2108
2108
-
resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==}
2119
2119
+
lru-cache@11.2.5:
2120
2120
+
resolution: {integrity: sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==}
2109
2121
engines: {node: 20 || >=22}
2110
2122
2111
2123
lru-cache@5.1.1:
···
2114
2126
magic-string@0.25.9:
2115
2127
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
2116
2128
2117
2117
-
mediabunny@1.29.0:
2118
2118
-
resolution: {integrity: sha512-18B8w/rhO/ph/AFsIXvzZg8RaSQZ+ZYfJ99MZlTjDmlgCT58jV3azrnWQ/OSquYDi8q0xmn64mnfTEHgww3+zw==}
2129
2129
+
mediabunny@1.31.0:
2130
2130
+
resolution: {integrity: sha512-nqM+6cOpNC/aDxCAZKnZe7oXnGaCn4rlgprzAmiH6C8GRdOHFnB6bZC0+WXGTT6mtAxXQd+BXuZ2q2zkma7dWg==}
2119
2131
2120
2132
merge-anything@5.1.7:
2121
2133
resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==}
···
2129
2141
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
2130
2142
engines: {node: '>=8.6'}
2131
2143
2132
2132
-
miniflare@4.20260114.0:
2133
2133
-
resolution: {integrity: sha512-QwHT7S6XqGdQxIvql1uirH/7/i3zDEt0B/YBXTYzMfJtVCR4+ue3KPkU+Bl0zMxvpgkvjh9+eCHhJbKEqya70A==}
2144
2144
+
miniflare@4.20260128.0:
2145
2145
+
resolution: {integrity: sha512-AVCn3vDRY+YXu1sP4mRn81ssno6VUqxo29uY2QVfgxXU2TMLvhRIoGwm7RglJ3Gzfuidit5R86CMQ6AvdFTGAw==}
2134
2146
engines: {node: '>=18.0.0'}
2135
2147
hasBin: true
2136
2148
···
2275
2287
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
2276
2288
engines: {node: ^10 || ^12 || >=14}
2277
2289
2278
2278
-
prettier@3.8.0:
2279
2279
-
resolution: {integrity: sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA==}
2290
2290
+
prettier@3.8.1:
2291
2291
+
resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==}
2280
2292
engines: {node: '>=14'}
2281
2293
hasBin: true
2282
2294
···
2344
2356
engines: {node: '>=10.0.0'}
2345
2357
hasBin: true
2346
2358
2347
2347
-
rollup@4.55.2:
2348
2348
-
resolution: {integrity: sha512-PggGy4dhwx5qaW+CKBilA/98Ql9keyfnb7lh4SR6shQ91QQQi1ORJ1v4UinkdP2i87OBs9AQFooQylcrrRfIcg==}
2359
2359
+
rollup@4.57.0:
2360
2360
+
resolution: {integrity: sha512-e5lPJi/aui4TO1LpAXIRLySmwXSE8k3b9zoGfd42p67wzxog4WHjiZF3M2uheQih4DGyc25QEV4yRBbpueNiUA==}
2349
2361
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
2350
2362
hasBin: true
2351
2363
···
2364
2376
serialize-javascript@6.0.2:
2365
2377
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
2366
2378
2367
2367
-
seroval-plugins@1.3.3:
2368
2368
-
resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==}
2379
2379
+
seroval-plugins@1.5.0:
2380
2380
+
resolution: {integrity: sha512-EAHqADIQondwRZIdeW2I636zgsODzoBDwb3PT/+7TLDWyw1Dy/Xv7iGUIEXXav7usHDE9HVhOU61irI3EnyyHA==}
2369
2381
engines: {node: '>=10'}
2370
2382
peerDependencies:
2371
2383
seroval: ^1.0
2372
2384
2373
2373
-
seroval@1.3.2:
2374
2374
-
resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==}
2385
2385
+
seroval@1.5.0:
2386
2386
+
resolution: {integrity: sha512-OE4cvmJ1uSPrKorFIH9/w/Qwuvi/IMcGbv5RKgcJ/zjA/IohDLU6SVaxFN9FwajbP7nsX0dQqMDes1whk3y+yw==}
2375
2387
engines: {node: '>=10'}
2376
2388
2377
2389
sharp@0.34.5:
···
2400
2412
'@floating-ui/dom': ^1.0
2401
2413
solid-js: ^1.3
2402
2414
2403
2403
-
solid-js@1.9.10:
2404
2404
-
resolution: {integrity: sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew==}
2415
2415
+
solid-js@1.9.11:
2416
2416
+
resolution: {integrity: sha512-WEJtcc5mkh/BnHA6Yrg4whlF8g6QwpmXXRg4P2ztPmcKeHHlH4+djYecBLhSpecZY2RRECXYUwIc/C2r3yzQ4Q==}
2405
2417
2406
2418
solid-refresh@0.6.3:
2407
2419
resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==}
···
2523
2535
undici-types@7.16.0:
2524
2536
resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
2525
2537
2526
2526
-
undici@7.14.0:
2527
2527
-
resolution: {integrity: sha512-Vqs8HTzjpQXZeXdpsfChQTlafcMQaaIwnGwLam1wudSSjlJeQ3bw1j+TLPePgrCnCpUXx7Ba5Pdpf5OBih62NQ==}
2538
2538
+
undici@7.18.2:
2539
2539
+
resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==}
2528
2540
engines: {node: '>=20.18.1'}
2529
2541
2530
2542
unenv@2.0.0-rc.24:
···
2698
2710
workbox-window@7.4.0:
2699
2711
resolution: {integrity: sha512-/bIYdBLAVsNR3v7gYGaV4pQW3M3kEPx5E8vDxGvxo6khTrGtSSCS7QiFKv9ogzBgZiy0OXLP9zO28U/1nF1mfw==}
2700
2712
2701
2701
-
workerd@1.20260114.0:
2702
2702
-
resolution: {integrity: sha512-kTJ+jNdIllOzWuVA3NRQRvywP0T135zdCjAE2dAUY1BFbxM6fmMZV8BbskEoQ4hAODVQUfZQmyGctcwvVCKxFA==}
2713
2713
+
workerd@1.20260128.0:
2714
2714
+
resolution: {integrity: sha512-EhLJGptSGFi8AEErLiamO3PoGpbRqL+v4Ve36H2B38VxmDgFOSmDhfepBnA14sCQzGf1AEaoZX2DCwZsmO74yQ==}
2703
2715
engines: {node: '>=16'}
2704
2716
hasBin: true
2705
2717
2706
2706
-
wrangler@4.59.2:
2707
2707
-
resolution: {integrity: sha512-Z4xn6jFZTaugcOKz42xvRAYKgkVUERHVbuCJ5+f+gK+R6k12L02unakPGOA0L0ejhUl16dqDjKe4tmL9sedHcw==}
2718
2718
+
wrangler@4.61.1:
2719
2719
+
resolution: {integrity: sha512-hfYQ16VLPkNi8xE1/V3052S2stM5e+vq3Idpt83sXoDC3R7R1CLgMkK6M6+Qp3G+9GVDNyHCkvohMPdfFTaD4Q==}
2708
2720
engines: {node: '>=20.0.0'}
2709
2721
hasBin: true
2710
2722
peerDependencies:
2711
2711
-
'@cloudflare/workers-types': ^4.20260114.0
2723
2723
+
'@cloudflare/workers-types': ^4.20260128.0
2712
2724
peerDependenciesMeta:
2713
2725
'@cloudflare/workers-types':
2714
2726
optional: true
···
2742
2754
youch@4.1.0-beta.10:
2743
2755
resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==}
2744
2756
2745
2745
-
zod@3.25.76:
2746
2746
-
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
2747
2747
-
2748
2757
snapshots:
2749
2758
2750
2759
'@alloc/quick-lru@5.2.0': {}
···
2758
2767
2759
2768
'@atcute/atproto@3.1.10':
2760
2769
dependencies:
2761
2761
-
'@atcute/lexicons': 1.2.6
2770
2770
+
'@atcute/lexicons': 1.2.7
2762
2771
2763
2772
'@atcute/bluemoji@3.1.3':
2764
2773
dependencies:
2765
2774
'@atcute/atproto': 3.1.10
2766
2766
-
'@atcute/bluesky': 3.2.15
2767
2767
-
'@atcute/lexicons': 1.2.6
2775
2775
+
'@atcute/bluesky': 3.2.16
2776
2776
+
'@atcute/lexicons': 1.2.7
2768
2777
2769
2778
'@atcute/bluesky-richtext-parser@1.0.7': {}
2770
2779
···
2772
2781
2773
2782
'@atcute/bluesky-search-parser@0.1.1': {}
2774
2783
2775
2775
-
'@atcute/bluesky@3.2.15':
2784
2784
+
'@atcute/bluesky@3.2.16':
2776
2785
dependencies:
2777
2786
'@atcute/atproto': 3.1.10
2778
2778
-
'@atcute/lexicons': 1.2.6
2787
2787
+
'@atcute/lexicons': 1.2.7
2779
2788
2780
2789
'@atcute/cbor@2.3.0':
2781
2790
dependencies:
2782
2791
'@atcute/cid': 2.4.0
2783
2783
-
'@atcute/multibase': 1.1.6
2784
2784
-
'@atcute/uint8array': 1.0.6
2792
2792
+
'@atcute/multibase': 1.1.7
2793
2793
+
'@atcute/uint8array': 1.1.0
2785
2794
2786
2795
'@atcute/cid@2.4.0':
2787
2796
dependencies:
2788
2788
-
'@atcute/multibase': 1.1.6
2789
2789
-
'@atcute/uint8array': 1.0.6
2797
2797
+
'@atcute/multibase': 1.1.7
2798
2798
+
'@atcute/uint8array': 1.1.0
2790
2799
2791
2800
'@atcute/client@4.2.1':
2792
2801
dependencies:
2793
2802
'@atcute/identity': 1.1.3
2794
2794
-
'@atcute/lexicons': 1.2.6
2803
2803
+
'@atcute/lexicons': 1.2.7
2795
2804
2796
2805
'@atcute/crypto@2.3.0':
2797
2806
dependencies:
2798
2798
-
'@atcute/multibase': 1.1.6
2799
2799
-
'@atcute/uint8array': 1.0.6
2807
2807
+
'@atcute/multibase': 1.1.7
2808
2808
+
'@atcute/uint8array': 1.1.0
2800
2809
'@noble/secp256k1': 3.0.0
2801
2810
2802
2811
'@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.3)':
2803
2812
dependencies:
2804
2813
'@atcute/identity': 1.1.3
2805
2805
-
'@atcute/lexicons': 1.2.6
2814
2814
+
'@atcute/lexicons': 1.2.7
2806
2815
'@atcute/util-fetch': 1.0.5
2807
2816
'@badrap/valita': 0.4.6
2808
2817
2809
2818
'@atcute/identity@1.1.3':
2810
2819
dependencies:
2811
2811
-
'@atcute/lexicons': 1.2.6
2820
2820
+
'@atcute/lexicons': 1.2.7
2812
2821
'@badrap/valita': 0.4.6
2813
2822
2814
2814
-
'@atcute/lexicons@1.2.6':
2823
2823
+
'@atcute/lexicons@1.2.7':
2815
2824
dependencies:
2816
2816
-
'@atcute/uint8array': 1.0.6
2817
2817
-
'@atcute/util-text': 0.0.1
2825
2825
+
'@atcute/uint8array': 1.1.0
2826
2826
+
'@atcute/util-text': 1.1.0
2818
2827
'@standard-schema/spec': 1.1.0
2819
2828
esm-env: 1.2.2
2820
2829
2821
2821
-
'@atcute/multibase@1.1.6':
2830
2830
+
'@atcute/multibase@1.1.7':
2822
2831
dependencies:
2823
2823
-
'@atcute/uint8array': 1.0.6
2832
2832
+
'@atcute/uint8array': 1.1.0
2824
2833
2825
2825
-
'@atcute/oauth-browser-client@2.0.3(@atcute/identity@1.1.3)':
2834
2834
+
'@atcute/oauth-browser-client@3.0.0(@atcute/identity@1.1.3)':
2826
2835
dependencies:
2827
2836
'@atcute/client': 4.2.1
2828
2837
'@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.3)
2829
2829
-
'@atcute/lexicons': 1.2.6
2830
2830
-
'@atcute/multibase': 1.1.6
2831
2831
-
'@atcute/uint8array': 1.0.6
2838
2838
+
'@atcute/lexicons': 1.2.7
2839
2839
+
'@atcute/multibase': 1.1.7
2840
2840
+
'@atcute/oauth-crypto': 0.1.0
2841
2841
+
'@atcute/oauth-types': 0.1.0
2832
2842
nanoid: 5.1.6
2833
2843
transitivePeerDependencies:
2834
2844
- '@atcute/identity'
2835
2845
2846
2846
+
'@atcute/oauth-crypto@0.1.0':
2847
2847
+
dependencies:
2848
2848
+
'@atcute/multibase': 1.1.7
2849
2849
+
'@atcute/uint8array': 1.1.0
2850
2850
+
'@badrap/valita': 0.4.6
2851
2851
+
nanoid: 5.1.6
2852
2852
+
2853
2853
+
'@atcute/oauth-keyset@0.1.0':
2854
2854
+
dependencies:
2855
2855
+
'@atcute/oauth-crypto': 0.1.0
2856
2856
+
2857
2857
+
'@atcute/oauth-types@0.1.0':
2858
2858
+
dependencies:
2859
2859
+
'@atcute/identity': 1.1.3
2860
2860
+
'@atcute/lexicons': 1.2.7
2861
2861
+
'@atcute/oauth-keyset': 0.1.0
2862
2862
+
'@badrap/valita': 0.4.6
2863
2863
+
2836
2864
'@atcute/tid@1.1.1':
2837
2865
dependencies:
2838
2866
'@atcute/time-ms': 1.2.0
2839
2867
2840
2868
'@atcute/time-ms@1.2.0':
2841
2869
dependencies:
2842
2842
-
'@types/bun': 1.3.6
2870
2870
+
'@types/bun': 1.3.8
2843
2871
node-gyp-build: 4.8.4
2844
2872
2845
2845
-
'@atcute/uint8array@1.0.6': {}
2873
2873
+
'@atcute/uint8array@1.1.0': {}
2846
2874
2847
2875
'@atcute/util-fetch@1.0.5':
2848
2876
dependencies:
2849
2877
'@badrap/valita': 0.4.6
2850
2878
2851
2851
-
'@atcute/util-text@0.0.1':
2879
2879
+
'@atcute/util-text@1.1.0':
2852
2880
dependencies:
2853
2881
unicode-segmenter: 0.14.5
2854
2882
2855
2855
-
'@atcute/xrpc-server@0.1.8':
2883
2883
+
'@atcute/xrpc-server@0.1.9':
2856
2884
dependencies:
2857
2885
'@atcute/cbor': 2.3.0
2858
2886
'@atcute/crypto': 2.3.0
2859
2887
'@atcute/identity': 1.1.3
2860
2888
'@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.3)
2861
2861
-
'@atcute/lexicons': 1.2.6
2862
2862
-
'@atcute/multibase': 1.1.6
2863
2863
-
'@atcute/uint8array': 1.0.6
2889
2889
+
'@atcute/lexicons': 1.2.7
2890
2890
+
'@atcute/multibase': 1.1.7
2891
2891
+
'@atcute/uint8array': 1.1.0
2864
2892
'@badrap/valita': 0.4.6
2865
2893
nanoid: 5.1.6
2866
2894
···
2943
2971
regexpu-core: 6.4.0
2944
2972
semver: 6.3.1
2945
2973
2946
2946
-
'@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.6)':
2974
2974
+
'@babel/helper-define-polyfill-provider@0.6.6(@babel/core@7.28.6)':
2947
2975
dependencies:
2948
2976
'@babel/core': 7.28.6
2949
2977
'@babel/helper-compilation-targets': 7.28.6
···
3498
3526
'@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.6)
3499
3527
'@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.28.6)
3500
3528
'@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.6)
3501
3501
-
babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.6)
3529
3529
+
babel-plugin-polyfill-corejs2: 0.4.15(@babel/core@7.28.6)
3502
3530
babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.6)
3503
3503
-
babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.6)
3504
3504
-
core-js-compat: 3.47.0
3531
3531
+
babel-plugin-polyfill-regenerator: 0.6.6(@babel/core@7.28.6)
3532
3532
+
core-js-compat: 3.48.0
3505
3533
semver: 6.3.1
3506
3534
transitivePeerDependencies:
3507
3535
- supports-color
···
3542
3570
3543
3571
'@cloudflare/kv-asset-handler@0.4.2': {}
3544
3572
3545
3545
-
'@cloudflare/unenv-preset@2.10.0(unenv@2.0.0-rc.24)(workerd@1.20260114.0)':
3573
3573
+
'@cloudflare/unenv-preset@2.12.0(unenv@2.0.0-rc.24)(workerd@1.20260128.0)':
3546
3574
dependencies:
3547
3575
unenv: 2.0.0-rc.24
3548
3576
optionalDependencies:
3549
3549
-
workerd: 1.20260114.0
3577
3577
+
workerd: 1.20260128.0
3550
3578
3551
3551
-
'@cloudflare/vite-plugin@1.21.0(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0))(workerd@1.20260114.0)(wrangler@4.59.2)':
3579
3579
+
'@cloudflare/vite-plugin@1.22.1(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0))(workerd@1.20260128.0)(wrangler@4.61.1)':
3552
3580
dependencies:
3553
3553
-
'@cloudflare/unenv-preset': 2.10.0(unenv@2.0.0-rc.24)(workerd@1.20260114.0)
3554
3554
-
miniflare: 4.20260114.0
3581
3581
+
'@cloudflare/unenv-preset': 2.12.0(unenv@2.0.0-rc.24)(workerd@1.20260128.0)
3582
3582
+
miniflare: 4.20260128.0
3555
3583
unenv: 2.0.0-rc.24
3556
3584
vite: 7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0)
3557
3557
-
wrangler: 4.59.2
3585
3585
+
wrangler: 4.61.1
3558
3586
ws: 8.18.0
3559
3587
transitivePeerDependencies:
3560
3588
- bufferutil
3561
3589
- utf-8-validate
3562
3590
- workerd
3563
3591
3564
3564
-
'@cloudflare/workerd-darwin-64@1.20260114.0':
3592
3592
+
'@cloudflare/workerd-darwin-64@1.20260128.0':
3565
3593
optional: true
3566
3594
3567
3567
-
'@cloudflare/workerd-darwin-arm64@1.20260114.0':
3595
3595
+
'@cloudflare/workerd-darwin-arm64@1.20260128.0':
3568
3596
optional: true
3569
3597
3570
3570
-
'@cloudflare/workerd-linux-64@1.20260114.0':
3598
3598
+
'@cloudflare/workerd-linux-64@1.20260128.0':
3571
3599
optional: true
3572
3600
3573
3573
-
'@cloudflare/workerd-linux-arm64@1.20260114.0':
3601
3601
+
'@cloudflare/workerd-linux-arm64@1.20260128.0':
3574
3602
optional: true
3575
3603
3576
3576
-
'@cloudflare/workerd-windows-64@1.20260114.0':
3604
3604
+
'@cloudflare/workerd-windows-64@1.20260128.0':
3577
3605
optional: true
3578
3606
3579
3607
'@cspotcode/source-map-support@0.8.1':
···
3741
3769
'@esbuild/win32-x64@0.27.2':
3742
3770
optional: true
3743
3771
3744
3744
-
'@externdefs/solid-freeze@0.1.1(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))':
3772
3772
+
'@externdefs/solid-freeze@0.1.1(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))':
3745
3773
dependencies:
3746
3746
-
solid-js: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
3774
3774
+
solid-js: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
3747
3775
3748
3748
-
'@externdefs/solid-query@0.1.5(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))':
3776
3776
+
'@externdefs/solid-query@0.1.5(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))':
3749
3777
dependencies:
3750
3778
'@tanstack/query-core': 5.17.19(patch_hash=0b06407b66b7af88765fb6e01e112677a8c09ce518cb4f547cee8a0044471acd)
3751
3751
-
solid-js: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
3779
3779
+
solid-js: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
3752
3780
3753
3753
-
'@floating-ui/core@1.7.3':
3781
3781
+
'@floating-ui/core@1.7.4':
3754
3782
dependencies:
3755
3783
'@floating-ui/utils': 0.2.10(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea)
3756
3784
3757
3757
-
'@floating-ui/dom@1.7.4':
3785
3785
+
'@floating-ui/dom@1.7.5':
3758
3786
dependencies:
3759
3759
-
'@floating-ui/core': 1.7.3
3787
3787
+
'@floating-ui/core': 1.7.4
3760
3788
'@floating-ui/utils': 0.2.10(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea)
3761
3789
3762
3790
'@floating-ui/utils@0.2.10(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea)': {}
···
3915
3943
3916
3944
'@kelinci/basa-lexicons@1.0.0':
3917
3945
dependencies:
3918
3918
-
'@atcute/lexicons': 1.2.6
3946
3946
+
'@atcute/lexicons': 1.2.7
3919
3947
3920
3948
'@noble/secp256k1@3.0.0': {}
3921
3949
···
4027
4055
optionalDependencies:
4028
4056
rollup: 2.79.2
4029
4057
4030
4030
-
'@rollup/rollup-android-arm-eabi@4.55.2':
4058
4058
+
'@rollup/rollup-android-arm-eabi@4.57.0':
4031
4059
optional: true
4032
4060
4033
4033
-
'@rollup/rollup-android-arm64@4.55.2':
4061
4061
+
'@rollup/rollup-android-arm64@4.57.0':
4034
4062
optional: true
4035
4063
4036
4036
-
'@rollup/rollup-darwin-arm64@4.55.2':
4064
4064
+
'@rollup/rollup-darwin-arm64@4.57.0':
4037
4065
optional: true
4038
4066
4039
4039
-
'@rollup/rollup-darwin-x64@4.55.2':
4067
4067
+
'@rollup/rollup-darwin-x64@4.57.0':
4040
4068
optional: true
4041
4069
4042
4042
-
'@rollup/rollup-freebsd-arm64@4.55.2':
4070
4070
+
'@rollup/rollup-freebsd-arm64@4.57.0':
4043
4071
optional: true
4044
4072
4045
4045
-
'@rollup/rollup-freebsd-x64@4.55.2':
4073
4073
+
'@rollup/rollup-freebsd-x64@4.57.0':
4046
4074
optional: true
4047
4075
4048
4048
-
'@rollup/rollup-linux-arm-gnueabihf@4.55.2':
4076
4076
+
'@rollup/rollup-linux-arm-gnueabihf@4.57.0':
4049
4077
optional: true
4050
4078
4051
4051
-
'@rollup/rollup-linux-arm-musleabihf@4.55.2':
4079
4079
+
'@rollup/rollup-linux-arm-musleabihf@4.57.0':
4052
4080
optional: true
4053
4081
4054
4054
-
'@rollup/rollup-linux-arm64-gnu@4.55.2':
4082
4082
+
'@rollup/rollup-linux-arm64-gnu@4.57.0':
4055
4083
optional: true
4056
4084
4057
4057
-
'@rollup/rollup-linux-arm64-musl@4.55.2':
4085
4085
+
'@rollup/rollup-linux-arm64-musl@4.57.0':
4058
4086
optional: true
4059
4087
4060
4060
-
'@rollup/rollup-linux-loong64-gnu@4.55.2':
4088
4088
+
'@rollup/rollup-linux-loong64-gnu@4.57.0':
4061
4089
optional: true
4062
4090
4063
4063
-
'@rollup/rollup-linux-loong64-musl@4.55.2':
4091
4091
+
'@rollup/rollup-linux-loong64-musl@4.57.0':
4064
4092
optional: true
4065
4093
4066
4066
-
'@rollup/rollup-linux-ppc64-gnu@4.55.2':
4094
4094
+
'@rollup/rollup-linux-ppc64-gnu@4.57.0':
4067
4095
optional: true
4068
4096
4069
4069
-
'@rollup/rollup-linux-ppc64-musl@4.55.2':
4097
4097
+
'@rollup/rollup-linux-ppc64-musl@4.57.0':
4070
4098
optional: true
4071
4099
4072
4072
-
'@rollup/rollup-linux-riscv64-gnu@4.55.2':
4100
4100
+
'@rollup/rollup-linux-riscv64-gnu@4.57.0':
4073
4101
optional: true
4074
4102
4075
4075
-
'@rollup/rollup-linux-riscv64-musl@4.55.2':
4103
4103
+
'@rollup/rollup-linux-riscv64-musl@4.57.0':
4076
4104
optional: true
4077
4105
4078
4078
-
'@rollup/rollup-linux-s390x-gnu@4.55.2':
4106
4106
+
'@rollup/rollup-linux-s390x-gnu@4.57.0':
4079
4107
optional: true
4080
4108
4081
4081
-
'@rollup/rollup-linux-x64-gnu@4.55.2':
4109
4109
+
'@rollup/rollup-linux-x64-gnu@4.57.0':
4082
4110
optional: true
4083
4111
4084
4084
-
'@rollup/rollup-linux-x64-musl@4.55.2':
4112
4112
+
'@rollup/rollup-linux-x64-musl@4.57.0':
4085
4113
optional: true
4086
4114
4087
4087
-
'@rollup/rollup-openbsd-x64@4.55.2':
4115
4115
+
'@rollup/rollup-openbsd-x64@4.57.0':
4088
4116
optional: true
4089
4117
4090
4090
-
'@rollup/rollup-openharmony-arm64@4.55.2':
4118
4118
+
'@rollup/rollup-openharmony-arm64@4.57.0':
4091
4119
optional: true
4092
4120
4093
4093
-
'@rollup/rollup-win32-arm64-msvc@4.55.2':
4121
4121
+
'@rollup/rollup-win32-arm64-msvc@4.57.0':
4094
4122
optional: true
4095
4123
4096
4096
-
'@rollup/rollup-win32-ia32-msvc@4.55.2':
4124
4124
+
'@rollup/rollup-win32-ia32-msvc@4.57.0':
4097
4125
optional: true
4098
4126
4099
4099
-
'@rollup/rollup-win32-x64-gnu@4.55.2':
4127
4127
+
'@rollup/rollup-win32-x64-gnu@4.57.0':
4100
4128
optional: true
4101
4129
4102
4102
-
'@rollup/rollup-win32-x64-msvc@4.55.2':
4130
4130
+
'@rollup/rollup-win32-x64-msvc@4.57.0':
4103
4131
optional: true
4104
4132
4105
4133
'@sindresorhus/is@7.2.0': {}
···
4138
4166
dependencies:
4139
4167
'@babel/types': 7.28.6
4140
4168
4141
4141
-
'@types/bun@1.3.6':
4169
4169
+
'@types/bun@1.3.8':
4142
4170
dependencies:
4143
4143
-
bun-types: 1.3.6
4171
4171
+
bun-types: 1.3.8
4144
4172
4145
4173
'@types/dom-close-watcher@1.0.0': {}
4146
4174
···
4199
4227
autoprefixer@10.4.23(postcss@8.5.6):
4200
4228
dependencies:
4201
4229
browserslist: 4.28.1
4202
4202
-
caniuse-lite: 1.0.30001765
4230
4230
+
caniuse-lite: 1.0.30001766
4203
4231
fraction.js: 5.3.4
4204
4232
picocolors: 1.1.1
4205
4233
postcss: 8.5.6
···
4214
4242
html-entities: 2.3.3
4215
4243
parse5: 7.3.0
4216
4244
4217
4217
-
babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.6):
4245
4245
+
babel-plugin-polyfill-corejs2@0.4.15(@babel/core@7.28.6):
4218
4246
dependencies:
4219
4247
'@babel/compat-data': 7.28.6
4220
4248
'@babel/core': 7.28.6
4221
4221
-
'@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6)
4249
4249
+
'@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.28.6)
4222
4250
semver: 6.3.1
4223
4251
transitivePeerDependencies:
4224
4252
- supports-color
···
4226
4254
babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.6):
4227
4255
dependencies:
4228
4256
'@babel/core': 7.28.6
4229
4229
-
'@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6)
4230
4230
-
core-js-compat: 3.47.0
4257
4257
+
'@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.28.6)
4258
4258
+
core-js-compat: 3.48.0
4231
4259
transitivePeerDependencies:
4232
4260
- supports-color
4233
4261
4234
4234
-
babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.6):
4262
4262
+
babel-plugin-polyfill-regenerator@0.6.6(@babel/core@7.28.6):
4235
4263
dependencies:
4236
4264
'@babel/core': 7.28.6
4237
4237
-
'@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6)
4265
4265
+
'@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.28.6)
4238
4266
transitivePeerDependencies:
4239
4267
- supports-color
4240
4268
···
4244
4272
'@babel/helper-plugin-utils': 7.28.6
4245
4273
'@babel/types': 7.28.6
4246
4274
4247
4247
-
babel-preset-solid@1.9.10(@babel/core@7.28.6)(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)):
4275
4275
+
babel-preset-solid@1.9.10(@babel/core@7.28.6)(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)):
4248
4276
dependencies:
4249
4277
'@babel/core': 7.28.6
4250
4278
babel-plugin-jsx-dom-expressions: 0.40.3(@babel/core@7.28.6)
4251
4279
optionalDependencies:
4252
4252
-
solid-js: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
4280
4280
+
solid-js: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
4253
4281
4254
4282
balanced-match@1.0.2: {}
4255
4283
4256
4256
-
baseline-browser-mapping@2.9.16: {}
4284
4284
+
baseline-browser-mapping@2.9.19: {}
4257
4285
4258
4286
binary-extensions@2.3.0: {}
4259
4287
···
4271
4299
4272
4300
browserslist@4.28.1:
4273
4301
dependencies:
4274
4274
-
baseline-browser-mapping: 2.9.16
4275
4275
-
caniuse-lite: 1.0.30001765
4276
4276
-
electron-to-chromium: 1.5.267
4302
4302
+
baseline-browser-mapping: 2.9.19
4303
4303
+
caniuse-lite: 1.0.30001766
4304
4304
+
electron-to-chromium: 1.5.282
4277
4305
node-releases: 2.0.27
4278
4306
update-browserslist-db: 1.2.3(browserslist@4.28.1)
4279
4307
4280
4308
buffer-from@1.1.2: {}
4281
4309
4282
4282
-
bun-types@1.3.6:
4310
4310
+
bun-types@1.3.8:
4283
4311
dependencies:
4284
4312
'@types/node': 24.10.9
4285
4313
4286
4314
camelcase-css@2.0.1: {}
4287
4315
4288
4288
-
caniuse-lite@1.0.30001765: {}
4316
4316
+
caniuse-lite@1.0.30001766: {}
4289
4317
4290
4318
chokidar@3.6.0:
4291
4319
dependencies:
···
4317
4345
4318
4346
cookie@1.1.1: {}
4319
4347
4320
4320
-
core-js-compat@3.47.0:
4348
4348
+
core-js-compat@3.48.0:
4321
4349
dependencies:
4322
4350
browserslist: 4.28.1
4323
4351
···
4351
4379
dependencies:
4352
4380
jake: 10.9.4
4353
4381
4354
4354
-
electron-to-chromium@1.5.267: {}
4382
4382
+
electron-to-chromium@1.5.282: {}
4355
4383
4356
4384
emoji-regex@8.0.0: {}
4357
4385
···
4573
4601
4574
4602
lodash.sortby@4.7.0: {}
4575
4603
4576
4576
-
lodash@4.17.21: {}
4604
4604
+
lodash@4.17.23: {}
4577
4605
4578
4578
-
lru-cache@11.2.4: {}
4606
4606
+
lru-cache@11.2.5: {}
4579
4607
4580
4608
lru-cache@5.1.1:
4581
4609
dependencies:
···
4585
4613
dependencies:
4586
4614
sourcemap-codec: 1.4.8
4587
4615
4588
4588
-
mediabunny@1.29.0:
4616
4616
+
mediabunny@1.31.0:
4589
4617
dependencies:
4590
4618
'@types/dom-mediacapture-transform': 0.1.11
4591
4619
'@types/dom-webcodecs': 0.1.13
···
4601
4629
braces: 3.0.3
4602
4630
picomatch: 2.3.1
4603
4631
4604
4604
-
miniflare@4.20260114.0:
4632
4632
+
miniflare@4.20260128.0:
4605
4633
dependencies:
4606
4634
'@cspotcode/source-map-support': 0.8.1
4607
4635
sharp: 0.34.5
4608
4608
-
undici: 7.14.0
4609
4609
-
workerd: 1.20260114.0
4636
4636
+
undici: 7.18.2
4637
4637
+
workerd: 1.20260128.0
4610
4638
ws: 8.18.0
4611
4639
youch: 4.1.0-beta.10
4612
4612
-
zod: 3.25.76
4613
4640
transitivePeerDependencies:
4614
4641
- bufferutil
4615
4642
- utf-8-validate
···
4671
4698
4672
4699
path-scurry@2.0.1:
4673
4700
dependencies:
4674
4674
-
lru-cache: 11.2.4
4701
4701
+
lru-cache: 11.2.5
4675
4702
minipass: 7.1.2
4676
4703
4677
4704
path-to-regexp@6.3.0: {}
···
4725
4752
picocolors: 1.1.1
4726
4753
source-map-js: 1.2.1
4727
4754
4728
4728
-
prettier@3.8.0: {}
4755
4755
+
prettier@3.8.1: {}
4729
4756
4730
4757
pretty-bytes@5.6.0: {}
4731
4758
···
4784
4811
optionalDependencies:
4785
4812
fsevents: 2.3.3
4786
4813
4787
4787
-
rollup@4.55.2:
4814
4814
+
rollup@4.57.0:
4788
4815
dependencies:
4789
4816
'@types/estree': 1.0.8
4790
4817
optionalDependencies:
4791
4791
-
'@rollup/rollup-android-arm-eabi': 4.55.2
4792
4792
-
'@rollup/rollup-android-arm64': 4.55.2
4793
4793
-
'@rollup/rollup-darwin-arm64': 4.55.2
4794
4794
-
'@rollup/rollup-darwin-x64': 4.55.2
4795
4795
-
'@rollup/rollup-freebsd-arm64': 4.55.2
4796
4796
-
'@rollup/rollup-freebsd-x64': 4.55.2
4797
4797
-
'@rollup/rollup-linux-arm-gnueabihf': 4.55.2
4798
4798
-
'@rollup/rollup-linux-arm-musleabihf': 4.55.2
4799
4799
-
'@rollup/rollup-linux-arm64-gnu': 4.55.2
4800
4800
-
'@rollup/rollup-linux-arm64-musl': 4.55.2
4801
4801
-
'@rollup/rollup-linux-loong64-gnu': 4.55.2
4802
4802
-
'@rollup/rollup-linux-loong64-musl': 4.55.2
4803
4803
-
'@rollup/rollup-linux-ppc64-gnu': 4.55.2
4804
4804
-
'@rollup/rollup-linux-ppc64-musl': 4.55.2
4805
4805
-
'@rollup/rollup-linux-riscv64-gnu': 4.55.2
4806
4806
-
'@rollup/rollup-linux-riscv64-musl': 4.55.2
4807
4807
-
'@rollup/rollup-linux-s390x-gnu': 4.55.2
4808
4808
-
'@rollup/rollup-linux-x64-gnu': 4.55.2
4809
4809
-
'@rollup/rollup-linux-x64-musl': 4.55.2
4810
4810
-
'@rollup/rollup-openbsd-x64': 4.55.2
4811
4811
-
'@rollup/rollup-openharmony-arm64': 4.55.2
4812
4812
-
'@rollup/rollup-win32-arm64-msvc': 4.55.2
4813
4813
-
'@rollup/rollup-win32-ia32-msvc': 4.55.2
4814
4814
-
'@rollup/rollup-win32-x64-gnu': 4.55.2
4815
4815
-
'@rollup/rollup-win32-x64-msvc': 4.55.2
4818
4818
+
'@rollup/rollup-android-arm-eabi': 4.57.0
4819
4819
+
'@rollup/rollup-android-arm64': 4.57.0
4820
4820
+
'@rollup/rollup-darwin-arm64': 4.57.0
4821
4821
+
'@rollup/rollup-darwin-x64': 4.57.0
4822
4822
+
'@rollup/rollup-freebsd-arm64': 4.57.0
4823
4823
+
'@rollup/rollup-freebsd-x64': 4.57.0
4824
4824
+
'@rollup/rollup-linux-arm-gnueabihf': 4.57.0
4825
4825
+
'@rollup/rollup-linux-arm-musleabihf': 4.57.0
4826
4826
+
'@rollup/rollup-linux-arm64-gnu': 4.57.0
4827
4827
+
'@rollup/rollup-linux-arm64-musl': 4.57.0
4828
4828
+
'@rollup/rollup-linux-loong64-gnu': 4.57.0
4829
4829
+
'@rollup/rollup-linux-loong64-musl': 4.57.0
4830
4830
+
'@rollup/rollup-linux-ppc64-gnu': 4.57.0
4831
4831
+
'@rollup/rollup-linux-ppc64-musl': 4.57.0
4832
4832
+
'@rollup/rollup-linux-riscv64-gnu': 4.57.0
4833
4833
+
'@rollup/rollup-linux-riscv64-musl': 4.57.0
4834
4834
+
'@rollup/rollup-linux-s390x-gnu': 4.57.0
4835
4835
+
'@rollup/rollup-linux-x64-gnu': 4.57.0
4836
4836
+
'@rollup/rollup-linux-x64-musl': 4.57.0
4837
4837
+
'@rollup/rollup-openbsd-x64': 4.57.0
4838
4838
+
'@rollup/rollup-openharmony-arm64': 4.57.0
4839
4839
+
'@rollup/rollup-win32-arm64-msvc': 4.57.0
4840
4840
+
'@rollup/rollup-win32-ia32-msvc': 4.57.0
4841
4841
+
'@rollup/rollup-win32-x64-gnu': 4.57.0
4842
4842
+
'@rollup/rollup-win32-x64-msvc': 4.57.0
4816
4843
fsevents: 2.3.3
4817
4844
4818
4845
run-parallel@1.2.0:
···
4827
4854
dependencies:
4828
4855
randombytes: 2.1.0
4829
4856
4830
4830
-
seroval-plugins@1.3.3(seroval@1.3.2):
4857
4857
+
seroval-plugins@1.5.0(seroval@1.5.0):
4831
4858
dependencies:
4832
4832
-
seroval: 1.3.2
4859
4859
+
seroval: 1.5.0
4833
4860
4834
4834
-
seroval@1.3.2: {}
4861
4861
+
seroval@1.5.0: {}
4835
4862
4836
4863
sharp@0.34.5:
4837
4864
dependencies:
···
4874
4901
4875
4902
smob@1.5.0: {}
4876
4903
4877
4877
-
solid-floating-ui@0.2.1(@floating-ui/dom@1.7.4)(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)):
4904
4904
+
solid-floating-ui@0.2.1(@floating-ui/dom@1.7.5)(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)):
4878
4905
dependencies:
4879
4879
-
'@floating-ui/dom': 1.7.4
4880
4880
-
solid-js: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
4906
4906
+
'@floating-ui/dom': 1.7.5
4907
4907
+
solid-js: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
4881
4908
4882
4882
-
solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7):
4909
4909
+
solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7):
4883
4910
dependencies:
4884
4911
csstype: 3.2.3
4885
4885
-
seroval: 1.3.2
4886
4886
-
seroval-plugins: 1.3.3(seroval@1.3.2)
4912
4912
+
seroval: 1.5.0
4913
4913
+
seroval-plugins: 1.5.0(seroval@1.5.0)
4887
4914
4888
4888
-
solid-refresh@0.6.3(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)):
4915
4915
+
solid-refresh@0.6.3(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)):
4889
4916
dependencies:
4890
4917
'@babel/generator': 7.28.6
4891
4918
'@babel/helper-module-imports': 7.28.6
4892
4919
'@babel/types': 7.28.6
4893
4893
-
solid-js: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
4920
4920
+
solid-js: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
4894
4921
transitivePeerDependencies:
4895
4922
- supports-color
4896
4923
···
5029
5056
5030
5057
undici-types@7.16.0: {}
5031
5058
5032
5032
-
undici@7.14.0: {}
5059
5059
+
undici@7.18.2: {}
5033
5060
5034
5061
unenv@2.0.0-rc.24:
5035
5062
dependencies:
···
5076
5103
- '@types/babel__core'
5077
5104
- supports-color
5078
5105
5079
5079
-
vite-plugin-solid@2.11.10(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0)):
5106
5106
+
vite-plugin-solid@2.11.10(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0)):
5080
5107
dependencies:
5081
5108
'@babel/core': 7.28.6
5082
5109
'@types/babel__core': 7.20.5
5083
5083
-
babel-preset-solid: 1.9.10(@babel/core@7.28.6)(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))
5110
5110
+
babel-preset-solid: 1.9.10(@babel/core@7.28.6)(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))
5084
5111
merge-anything: 5.1.7
5085
5085
-
solid-js: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
5086
5086
-
solid-refresh: 0.6.3(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))
5112
5112
+
solid-js: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)
5113
5113
+
solid-refresh: 0.6.3(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))
5087
5114
vite: 7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0)
5088
5115
vitefu: 1.1.1(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0))
5089
5116
transitivePeerDependencies:
···
5095
5122
fdir: 6.5.0(picomatch@4.0.3)
5096
5123
picomatch: 4.0.3
5097
5124
postcss: 8.5.6
5098
5098
-
rollup: 4.55.2
5125
5125
+
rollup: 4.57.0
5099
5126
tinyglobby: 0.2.15
5100
5127
optionalDependencies:
5101
5128
'@types/node': 24.10.9
···
5144
5171
fast-json-stable-stringify: 2.1.0
5145
5172
fs-extra: 9.1.0
5146
5173
glob: 11.1.0
5147
5147
-
lodash: 4.17.21
5174
5174
+
lodash: 4.17.23
5148
5175
pretty-bytes: 5.6.0
5149
5176
rollup: 2.79.2
5150
5177
source-map: 0.8.0-beta.0
···
5232
5259
'@types/trusted-types': 2.0.7
5233
5260
workbox-core: 7.4.0
5234
5261
5235
5235
-
workerd@1.20260114.0:
5262
5262
+
workerd@1.20260128.0:
5236
5263
optionalDependencies:
5237
5237
-
'@cloudflare/workerd-darwin-64': 1.20260114.0
5238
5238
-
'@cloudflare/workerd-darwin-arm64': 1.20260114.0
5239
5239
-
'@cloudflare/workerd-linux-64': 1.20260114.0
5240
5240
-
'@cloudflare/workerd-linux-arm64': 1.20260114.0
5241
5241
-
'@cloudflare/workerd-windows-64': 1.20260114.0
5264
5264
+
'@cloudflare/workerd-darwin-64': 1.20260128.0
5265
5265
+
'@cloudflare/workerd-darwin-arm64': 1.20260128.0
5266
5266
+
'@cloudflare/workerd-linux-64': 1.20260128.0
5267
5267
+
'@cloudflare/workerd-linux-arm64': 1.20260128.0
5268
5268
+
'@cloudflare/workerd-windows-64': 1.20260128.0
5242
5269
5243
5243
-
wrangler@4.59.2:
5270
5270
+
wrangler@4.61.1:
5244
5271
dependencies:
5245
5272
'@cloudflare/kv-asset-handler': 0.4.2
5246
5246
-
'@cloudflare/unenv-preset': 2.10.0(unenv@2.0.0-rc.24)(workerd@1.20260114.0)
5273
5273
+
'@cloudflare/unenv-preset': 2.12.0(unenv@2.0.0-rc.24)(workerd@1.20260128.0)
5247
5274
blake3-wasm: 2.1.5
5248
5275
esbuild: 0.27.0
5249
5249
-
miniflare: 4.20260114.0
5276
5276
+
miniflare: 4.20260128.0
5250
5277
path-to-regexp: 6.3.0
5251
5278
unenv: 2.0.0-rc.24
5252
5252
-
workerd: 1.20260114.0
5279
5279
+
workerd: 1.20260128.0
5253
5280
optionalDependencies:
5254
5281
fsevents: 2.3.3
5255
5282
transitivePeerDependencies:
···
5284
5311
'@speed-highlight/core': 1.2.14
5285
5312
cookie: 1.1.1
5286
5313
youch-core: 0.3.3
5287
5287
-
5288
5288
-
zod@3.25.76: {}
+8
-51
scripts/generate-oauth-keys.js
···
1
1
import * as fs from 'node:fs/promises';
2
2
3
3
-
import * as v from '@badrap/valita';
4
4
-
3
3
+
import { generateClientAssertionKey } from '@atcute/oauth-crypto';
5
4
import * as TID from '@atcute/tid';
6
5
7
7
-
const jwksSchema = v.object({
8
8
-
keys: v.array(
9
9
-
v.object({
10
10
-
privateKey: v.unknown(),
11
11
-
publicKey: v.unknown(),
12
12
-
}),
13
13
-
),
14
14
-
});
15
15
-
16
16
-
/** @type {v.Infer<typeof jwksSchema> | undefined} */
17
17
-
let jwks;
6
6
+
/** @type {import('@atcute/oauth-crypto').ClientAssertionPrivateJwk[]} */
7
7
+
let keys;
18
8
try {
19
9
const raw = await fs.readFile('./oauth-credentials.local.json', 'utf-8');
20
20
-
const json = JSON.parse(raw);
21
21
-
22
22
-
jwks = jwksSchema.parse(json, { mode: 'passthrough' });
10
10
+
keys = JSON.parse(raw);
23
11
} catch (err) {
24
12
if (err.code !== 'ENOENT') {
25
13
throw err;
26
14
}
27
15
28
28
-
jwks = {
29
29
-
keys: [],
30
30
-
};
16
16
+
keys = [];
31
17
}
32
18
33
33
-
const { publicKey, privateKey } = await crypto.subtle.generateKey(
34
34
-
{
35
35
-
name: 'ECDSA',
36
36
-
namedCurve: 'P-256',
37
37
-
},
38
38
-
true,
39
39
-
['sign', 'verify'],
40
40
-
);
41
41
-
42
19
const kid = `aglais-${TID.now()}`;
43
43
-
const privateJWK = await crypto.subtle.exportKey('jwk', privateKey);
44
44
-
const publicJWK = await crypto.subtle.exportKey('jwk', publicKey);
20
20
+
const privateKey = await generateClientAssertionKey(kid, 'ES256');
45
21
46
46
-
jwks = {
47
47
-
keys: [
48
48
-
{
49
49
-
privateKey: {
50
50
-
...privateJWK,
51
51
-
kid: kid,
52
52
-
},
53
53
-
publicKey: {
54
54
-
kty: publicJWK.kty,
55
55
-
crv: publicJWK.crv,
56
56
-
x: publicJWK.x,
57
57
-
y: publicJWK.y,
58
58
-
use: 'sig',
59
59
-
alg: 'ES256',
60
60
-
kid: kid,
61
61
-
},
62
62
-
},
63
63
-
...jwks.keys,
64
64
-
],
65
65
-
};
22
22
+
keys = [privateKey, ...keys];
66
23
67
67
-
await fs.writeFile('./oauth-credentials.local.json', JSON.stringify(jwks, null, '\t') + '\n');
24
24
+
await fs.writeFile('./oauth-credentials.local.json', JSON.stringify(keys, null, '\t') + '\n');
+21
-20
server/index.ts
···
14
14
WellKnownHandleResolver,
15
15
} from '@atcute/identity-resolver';
16
16
import { type Did, type Handle, type ResourceUri, isDid } from '@atcute/lexicons/syntax';
17
17
+
import {
18
18
+
type ClientAssertionPrivateJwk,
19
19
+
DpopVerifyError,
20
20
+
createClientAssertion,
21
21
+
derivePublicJwk,
22
22
+
verifyDpopProof,
23
23
+
} from '@atcute/oauth-crypto';
17
24
import { AuthRequiredError, InvalidRequestError, XRPCRouter, json } from '@atcute/xrpc-server';
18
25
19
19
-
import * as jwks from '../oauth-credentials.local.json' with { type: 'json' };
26
26
+
import keys from '../oauth-credentials.local.json' with { type: 'json' };
20
27
21
21
-
import { InvalidDPoPError, createClientAssertion, verifyDPoP } from './jwt';
22
28
import { requestAssertionSchema, resolveIdentitySchema } from './lexicons';
23
29
24
24
-
const privateKeyId = jwks.keys[0].privateKey.kid;
25
25
-
const privateKey = await crypto.subtle.importKey(
26
26
-
'jwk',
27
27
-
jwks.keys[0].privateKey,
28
28
-
{ name: 'ECDSA', namedCurve: 'P-256' },
29
29
-
false,
30
30
-
['sign'],
31
31
-
);
30
30
+
const privateKeys = keys as ClientAssertionPrivateJwk[];
31
31
+
const publicKeys = privateKeys.map((key) => derivePublicJwk(key));
32
32
33
33
const handleResolver = new CompositeHandleResolver({
34
34
methods: {
···
74
74
});
75
75
76
76
router.addProcedure(requestAssertionSchema, {
77
77
-
async handler({ input: { jkt, aud }, request }) {
77
77
+
async handler({ input: { aud }, request }) {
78
78
if (request.headers.get('sec-fetch-site') !== 'same-origin') {
79
79
throw new AuthRequiredError({ description: 'invalid origin' });
80
80
}
81
81
82
82
-
const dpop = request.headers.get('dpop');
82
82
+
let jkt: string;
83
83
try {
84
84
-
await verifyDPoP(dpop, jkt);
84
84
+
const result = await verifyDpopProof(request.headers.get('dpop'), {
85
85
+
method: request.method,
86
86
+
url: request.url,
87
87
+
});
88
88
+
89
89
+
jkt = result.jkt;
85
90
} catch (err) {
86
86
-
if (err instanceof InvalidDPoPError) {
91
91
+
if (err instanceof DpopVerifyError) {
87
92
throw new AuthRequiredError({ description: err.message });
88
93
}
89
94
···
92
97
93
98
const url = new URL(request.url);
94
99
const assertion = await createClientAssertion({
95
95
-
privateKey: privateKey,
96
96
-
97
100
client_id: `https://${url.host}/oauth-client-metadata.json`,
98
98
-
kid: privateKeyId,
99
101
aud: aud,
100
102
jkt: jkt,
103
103
+
key: privateKeys[0],
101
104
});
102
105
103
106
return json({
···
203
206
}
204
207
205
208
if (url.pathname === '/oauth-jwks.json') {
206
206
-
return Response.json({
207
207
-
keys: jwks.keys.map((key) => key.publicKey),
208
208
-
});
209
209
+
return Response.json({ keys: publicKeys });
209
210
}
210
211
211
212
contexts.set(request, ctx);
-208
server/jwt.ts
···
1
1
-
import * as v from '@badrap/valita';
2
2
-
3
3
-
import { fromBase64Url, toBase64Url } from '@atcute/multibase';
4
4
-
import { decodeUtf8From, encodeUtf8 } from '@atcute/uint8array';
5
5
-
6
6
-
export class MalformedJwtError extends Error {
7
7
-
name = 'MalformedJwtError';
8
8
-
9
9
-
constructor(options?: ErrorOptions) {
10
10
-
super(`malformed JWT`, options);
11
11
-
}
12
12
-
}
13
13
-
14
14
-
export interface DecodedJwt<THeader, TPayload> {
15
15
-
header: THeader;
16
16
-
payload: TPayload;
17
17
-
message: Uint8Array<ArrayBuffer>;
18
18
-
signature: Uint8Array<ArrayBuffer>;
19
19
-
}
20
20
-
21
21
-
const decodeJwt = <THeader, TPayload>(
22
22
-
input: string,
23
23
-
schemas: { header: v.Type<THeader>; payload: v.Type<TPayload> },
24
24
-
): DecodedJwt<THeader, TPayload> => {
25
25
-
const parts = input.split('.');
26
26
-
if (parts.length !== 3) {
27
27
-
throw new MalformedJwtError();
28
28
-
}
29
29
-
30
30
-
const [headerString, payloadString, signatureString] = parts;
31
31
-
32
32
-
const header = decodeJwtPortion(schemas.header, headerString);
33
33
-
const payload = decodeJwtPortion(schemas.payload, payloadString);
34
34
-
const signature = decodeJwtSignature(signatureString);
35
35
-
36
36
-
return {
37
37
-
header: header,
38
38
-
payload: payload,
39
39
-
message: encodeUtf8(`${headerString}.${payloadString}`),
40
40
-
signature: signature,
41
41
-
};
42
42
-
};
43
43
-
44
44
-
const decodeJwtPortion = <T>(schema: v.Type<T>, input: string): T => {
45
45
-
try {
46
46
-
const raw = decodeUtf8From(fromBase64Url(input));
47
47
-
const json = JSON.parse(raw);
48
48
-
49
49
-
return schema.parse(json, { mode: 'passthrough' });
50
50
-
} catch (err) {
51
51
-
throw new MalformedJwtError({ cause: err });
52
52
-
}
53
53
-
};
54
54
-
55
55
-
const decodeJwtSignature = (input: string): Uint8Array<ArrayBuffer> => {
56
56
-
try {
57
57
-
return fromBase64Url(input);
58
58
-
} catch (err) {
59
59
-
throw new MalformedJwtError({ cause: err });
60
60
-
}
61
61
-
};
62
62
-
63
63
-
const encodeJwtPortion = (data: unknown): string => {
64
64
-
return toBase64Url(encodeUtf8(JSON.stringify(data)));
65
65
-
};
66
66
-
67
67
-
const encodeJwtSignature = (data: Uint8Array): string => {
68
68
-
return toBase64Url(data);
69
69
-
};
70
70
-
71
71
-
// #region DPoP
72
72
-
export class InvalidDPoPError extends Error {
73
73
-
name = 'InvalidDPoPError';
74
74
-
}
75
75
-
76
76
-
const dpopHeaderSchema = v.object({
77
77
-
typ: v.literal('dpop+jwt'),
78
78
-
alg: v.literal('ES256'),
79
79
-
jwk: v.object({
80
80
-
kty: v.literal('EC'),
81
81
-
crv: v.literal('P-256'),
82
82
-
x: v.string(),
83
83
-
y: v.string(),
84
84
-
}),
85
85
-
});
86
86
-
87
87
-
const dpopPayloadSchema = v.object({
88
88
-
htm: v.string(),
89
89
-
htu: v.string(),
90
90
-
iat: v.number(),
91
91
-
jti: v.string(),
92
92
-
});
93
93
-
94
94
-
const calculateJwkThumbprint = async (jwk: JsonWebKey): Promise<string> => {
95
95
-
// For EC keys, thumbprint is SHA-256 of canonical JSON
96
96
-
// Members must be in lexicographic order
97
97
-
const canonical = JSON.stringify({
98
98
-
crv: jwk.crv,
99
99
-
kty: jwk.kty,
100
100
-
x: jwk.x,
101
101
-
y: jwk.y,
102
102
-
});
103
103
-
104
104
-
const hash = await crypto.subtle.digest('SHA-256', encodeUtf8(canonical));
105
105
-
return toBase64Url(new Uint8Array(hash));
106
106
-
};
107
107
-
108
108
-
export const verifyDPoP = async (dpop: string | null, jkt: string): Promise<void> => {
109
109
-
if (!dpop) {
110
110
-
throw new InvalidDPoPError(`missing DPoP header`);
111
111
-
}
112
112
-
113
113
-
// Decode the DPoP JWT
114
114
-
let decoded;
115
115
-
try {
116
116
-
decoded = decodeJwt(dpop, {
117
117
-
header: dpopHeaderSchema,
118
118
-
payload: dpopPayloadSchema,
119
119
-
});
120
120
-
} catch (err) {
121
121
-
throw new InvalidDPoPError(`malformed JWT`, { cause: err });
122
122
-
}
123
123
-
124
124
-
const { header, message, signature } = decoded;
125
125
-
126
126
-
// Verify JWK thumbprint matches jkt
127
127
-
const thumbprint = await calculateJwkThumbprint(header.jwk);
128
128
-
if (thumbprint !== jkt) {
129
129
-
throw new InvalidDPoPError(`JWK thumbprint mismatch`);
130
130
-
}
131
131
-
132
132
-
// Import the public key for signature verification
133
133
-
let publicKey: CryptoKey;
134
134
-
try {
135
135
-
publicKey = await crypto.subtle.importKey(
136
136
-
'jwk',
137
137
-
header.jwk,
138
138
-
{ name: 'ECDSA', namedCurve: 'P-256' },
139
139
-
false,
140
140
-
['verify'],
141
141
-
);
142
142
-
} catch (err) {
143
143
-
throw new InvalidDPoPError(`failed to import JWK`, { cause: err });
144
144
-
}
145
145
-
146
146
-
// Verify the signature
147
147
-
const isValid = await crypto.subtle.verify(
148
148
-
{ name: 'ECDSA', hash: 'SHA-256' },
149
149
-
publicKey,
150
150
-
signature,
151
151
-
message,
152
152
-
);
153
153
-
154
154
-
if (!isValid) {
155
155
-
throw new InvalidDPoPError(`invalid DPoP signature`);
156
156
-
}
157
157
-
};
158
158
-
159
159
-
// #endregion
160
160
-
161
161
-
// #region Client assertions
162
162
-
163
163
-
export const createClientAssertion = async (options: {
164
164
-
kid: string;
165
165
-
client_id: string;
166
166
-
aud: string;
167
167
-
jkt: string;
168
168
-
privateKey: CryptoKey;
169
169
-
}): Promise<string> => {
170
170
-
const { kid, client_id, aud, jkt, privateKey } = options;
171
171
-
172
172
-
const now = Math.floor(Date.now() / 1000);
173
173
-
174
174
-
const header = {
175
175
-
alg: 'ES256',
176
176
-
typ: 'JWT',
177
177
-
kid: kid,
178
178
-
};
179
179
-
180
180
-
const payload = {
181
181
-
iss: client_id,
182
182
-
sub: client_id,
183
183
-
aud: aud,
184
184
-
jti: crypto.randomUUID(),
185
185
-
iat: now,
186
186
-
exp: now + 60,
187
187
-
cnf: { jkt },
188
188
-
};
189
189
-
190
190
-
const message = `${encodeJwtPortion(header)}.${encodeJwtPortion(payload)}`;
191
191
-
192
192
-
const signature = encodeJwtSignature(
193
193
-
new Uint8Array(
194
194
-
await crypto.subtle.sign(
195
195
-
{
196
196
-
name: 'ECDSA',
197
197
-
hash: 'SHA-256',
198
198
-
},
199
199
-
privateKey,
200
200
-
encodeUtf8(message),
201
201
-
),
202
202
-
),
203
203
-
);
204
204
-
205
205
-
return `${message}.${signature}`;
206
206
-
};
207
207
-
208
208
-
// #endregion
-1
server/lexicons.ts
···
6
6
input: {
7
7
type: 'lex',
8
8
schema: v.object({
9
9
-
jkt: v.string(),
10
9
aud: v.string(),
11
10
}),
12
11
},
+1
-2
src/main.tsx
···
44
44
handler: simpleFetchHandler({ service: location.origin }),
45
45
});
46
46
47
47
-
const fetchClientAssertion: ClientAssertionFetcher = async ({ aud, jkt, createDpopProof }) => {
47
47
+
const fetchClientAssertion: ClientAssertionFetcher = async ({ aud, createDpopProof }) => {
48
48
const dpop = await createDpopProof(`${location.origin}/xrpc/x.aglais.requestAssertion`);
49
49
50
50
const data = await ok(
51
51
host.post('x.aglais.requestAssertion', {
52
52
input: {
53
53
aud: aud,
54
54
-
jkt: jkt,
55
54
},
56
55
headers: {
57
56
dpop: dpop,