+1
.idea/clippr.iml
+1
.idea/clippr.iml
···
10
10
<excludeFolder url="file://$MODULE_DIR$/backend/build" />
11
11
<excludeFolder url="file://$MODULE_DIR$/.idea/dataSources" />
12
12
<excludeFolder url="file://$MODULE_DIR$/lexicons/dist" />
13
+
<excludeFolder url="file://$MODULE_DIR$/backend/logs" />
13
14
</content>
14
15
<orderEntry type="inheritedJdk" />
15
16
<orderEntry type="sourceFolder" forTests="false" />
+2
.idea/dictionaries/project.xml
+2
.idea/dictionaries/project.xml
+27
.idea/jsonSchemas.xml
+27
.idea/jsonSchemas.xml
···
1
+
<?xml version="1.0" encoding="UTF-8"?>
2
+
<project version="4">
3
+
<component name="JsonSchemaMappingsProjectConfiguration">
4
+
<state>
5
+
<map>
6
+
<entry key="Lexicon Schema">
7
+
<value>
8
+
<SchemaInfo>
9
+
<option name="generatedName" value="New Schema" />
10
+
<option name="name" value="Lexicon Schema" />
11
+
<option name="relativePathToSchema" value="https://cdn.justdavi.dev/lexiconschema.json" />
12
+
<option name="patterns">
13
+
<list>
14
+
<Item>
15
+
<option name="directory" value="true" />
16
+
<option name="path" value="lexdocs" />
17
+
<option name="mappingKind" value="Directory" />
18
+
</Item>
19
+
</list>
20
+
</option>
21
+
</SchemaInfo>
22
+
</value>
23
+
</entry>
24
+
</map>
25
+
</state>
26
+
</component>
27
+
</project>
+3
.tangled/workflows/build_frontend.yaml
+3
.tangled/workflows/build_frontend.yaml
+3
-3
backend/README.md
+3
-3
backend/README.md
···
24
24
## current status
25
25
26
26
right now we're not running on bun because there are
27
-
[some issues with partysocket](https://github.com/oven-sh/bun/issues/18807), which haven't
28
-
been fixed yet and which the jetstream library we use depends on for the moment. once it has been fixed, we do plan
29
-
to use bun over node in the future.
27
+
[some issues with partysocket](https://github.com/oven-sh/bun/issues/18807), which haven't been
28
+
fixed yet and which the jetstream library we use depends on for the moment. once it has been fixed,
29
+
we do plan to use bun over node in the future.
30
30
31
31
### checklist before it's usable
32
32
+17
-17
backend/package.json
+17
-17
backend/package.json
···
18
18
"node": ">=22.16.0"
19
19
},
20
20
"dependencies": {
21
-
"@atcute/atproto": "^3.1.0",
21
+
"@atcute/atproto": "^3.1.1",
22
22
"@atcute/client": "^4.0.3",
23
23
"@atcute/identity": "^1.0.3",
24
24
"@atcute/identity-resolver": "^1.1.3",
25
25
"@atcute/lexicon-doc": "^1.0.3",
26
26
"@atcute/lexicons": "^1.1.0",
27
-
"@clipprjs/lexicons": "^0.1.4",
27
+
"@clipprjs/lexicons": "^1.0.2",
28
28
"@eslint/eslintrc": "^3.3.1",
29
-
"@hono/node-server": "^1.15.0",
30
-
"@libsql/client": "^0.15.9",
31
-
"@scalar/hono-api-reference": "^0.9.9",
32
-
"@scalar/openapi-to-markdown": "^0.2.19",
33
-
"@skyware/jetstream": "^0.2.4",
34
-
"drizzle-orm": "^0.44.2",
35
-
"hono": "^4.8.4",
29
+
"@hono/node-server": "^1.17.1",
30
+
"@libsql/client": "^0.15.10",
31
+
"@scalar/hono-api-reference": "^0.9.12",
32
+
"@scalar/openapi-to-markdown": "^0.2.23",
33
+
"@skyware/jetstream": "^0.2.5",
34
+
"drizzle-orm": "^0.44.3",
35
+
"hono": "^4.8.5",
36
36
"toml": "^3.0.0",
37
37
"winston": "^3.17.0",
38
38
"xxhash-wasm": "^1.1.0"
39
39
},
40
40
"devDependencies": {
41
41
"@atcute/lex-cli": "^2.1.1",
42
-
"@eslint/js": "^9.30.1",
43
-
"@types/node": "^24.0.12",
44
-
"@typescript-eslint/eslint-plugin": "^8.36.0",
45
-
"@typescript-eslint/parser": "^8.36.0",
42
+
"@eslint/js": "^9.31.0",
43
+
"@types/node": "^24.1.0",
44
+
"@typescript-eslint/eslint-plugin": "^8.38.0",
45
+
"@typescript-eslint/parser": "^8.38.0",
46
46
"drizzle-kit": "^0.31.4",
47
-
"eslint": "^9.30.1",
48
-
"eslint-config-prettier": "^10.1.5",
47
+
"eslint": "^9.31.0",
48
+
"eslint-config-prettier": "^10.1.8",
49
49
"eslint-plugin-drizzle": "^0.2.3",
50
50
"eslint-plugin-import": "^2.32.0",
51
-
"eslint-plugin-prettier": "^5.5.1",
51
+
"eslint-plugin-prettier": "^5.5.3",
52
52
"globals": "^16.3.0",
53
53
"jiti": "^2.4.2",
54
54
"prettier": "^3.6.2",
55
55
"tsx": "^4.20.3",
56
56
"typescript": "^5.8.3",
57
-
"typescript-eslint": "^8.36.0"
57
+
"typescript-eslint": "^8.38.0"
58
58
}
59
59
}
+496
-502
backend/pnpm-lock.yaml
+496
-502
backend/pnpm-lock.yaml
···
9
9
.:
10
10
dependencies:
11
11
'@atcute/atproto':
12
-
specifier: ^3.1.0
13
-
version: 3.1.0
12
+
specifier: ^3.1.1
13
+
version: 3.1.1
14
14
'@atcute/client':
15
15
specifier: ^4.0.3
16
16
version: 4.0.3
···
27
27
specifier: ^1.1.0
28
28
version: 1.1.0
29
29
'@clipprjs/lexicons':
30
-
specifier: ^0.1.4
31
-
version: 0.1.4
30
+
specifier: ^1.0.2
31
+
version: 1.0.2
32
32
'@eslint/eslintrc':
33
33
specifier: ^3.3.1
34
34
version: 3.3.1
35
35
'@hono/node-server':
36
-
specifier: ^1.15.0
37
-
version: 1.15.0(hono@4.8.4)
36
+
specifier: ^1.17.1
37
+
version: 1.17.1(hono@4.8.5)
38
38
'@libsql/client':
39
-
specifier: ^0.15.9
40
-
version: 0.15.9
39
+
specifier: ^0.15.10
40
+
version: 0.15.10
41
41
'@scalar/hono-api-reference':
42
-
specifier: ^0.9.9
43
-
version: 0.9.9(hono@4.8.4)
42
+
specifier: ^0.9.12
43
+
version: 0.9.12(hono@4.8.5)
44
44
'@scalar/openapi-to-markdown':
45
-
specifier: ^0.2.19
46
-
version: 0.2.19(typescript@5.8.3)
45
+
specifier: ^0.2.23
46
+
version: 0.2.23(typescript@5.8.3)
47
47
'@skyware/jetstream':
48
-
specifier: ^0.2.4
49
-
version: 0.2.4
48
+
specifier: ^0.2.5
49
+
version: 0.2.5
50
50
drizzle-orm:
51
-
specifier: ^0.44.2
52
-
version: 0.44.2(@libsql/client@0.15.9)(bun-types@1.2.17)
51
+
specifier: ^0.44.3
52
+
version: 0.44.3(@libsql/client@0.15.10)(bun-types@1.2.17)
53
53
hono:
54
-
specifier: ^4.8.4
55
-
version: 4.8.4
54
+
specifier: ^4.8.5
55
+
version: 4.8.5
56
56
toml:
57
57
specifier: ^3.0.0
58
58
version: 3.0.0
···
67
67
specifier: ^2.1.1
68
68
version: 2.1.1
69
69
'@eslint/js':
70
-
specifier: ^9.30.1
71
-
version: 9.30.1
70
+
specifier: ^9.31.0
71
+
version: 9.31.0
72
72
'@types/node':
73
-
specifier: ^24.0.12
74
-
version: 24.0.12
73
+
specifier: ^24.1.0
74
+
version: 24.1.0
75
75
'@typescript-eslint/eslint-plugin':
76
-
specifier: ^8.36.0
77
-
version: 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
76
+
specifier: ^8.38.0
77
+
version: 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)
78
78
'@typescript-eslint/parser':
79
-
specifier: ^8.36.0
80
-
version: 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
79
+
specifier: ^8.38.0
80
+
version: 8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)
81
81
drizzle-kit:
82
82
specifier: ^0.31.4
83
83
version: 0.31.4
84
84
eslint:
85
-
specifier: ^9.30.1
86
-
version: 9.30.1(jiti@2.4.2)
85
+
specifier: ^9.31.0
86
+
version: 9.31.0(jiti@2.4.2)
87
87
eslint-config-prettier:
88
-
specifier: ^10.1.5
89
-
version: 10.1.5(eslint@9.30.1(jiti@2.4.2))
88
+
specifier: ^10.1.8
89
+
version: 10.1.8(eslint@9.31.0(jiti@2.4.2))
90
90
eslint-plugin-drizzle:
91
91
specifier: ^0.2.3
92
-
version: 0.2.3(eslint@9.30.1(jiti@2.4.2))
92
+
version: 0.2.3(eslint@9.31.0(jiti@2.4.2))
93
93
eslint-plugin-import:
94
94
specifier: ^2.32.0
95
-
version: 2.32.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))
95
+
version: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))
96
96
eslint-plugin-prettier:
97
-
specifier: ^5.5.1
98
-
version: 5.5.1(eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)))(eslint@9.30.1(jiti@2.4.2))(prettier@3.6.2)
97
+
specifier: ^5.5.3
98
+
version: 5.5.3(eslint-config-prettier@10.1.8(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(prettier@3.6.2)
99
99
globals:
100
100
specifier: ^16.3.0
101
101
version: 16.3.0
···
112
112
specifier: ^5.8.3
113
113
version: 5.8.3
114
114
typescript-eslint:
115
-
specifier: ^8.36.0
116
-
version: 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
115
+
specifier: ^8.38.0
116
+
version: 8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)
117
117
118
118
packages:
119
119
120
-
'@atcute/atproto@3.1.0':
121
-
resolution: {integrity: sha512-aJbDsY7FcIh8APWKAimBtshPwqoRE056tc0UV6vw4TW4e3nYaHedoJmKhlh/k8KQWxyw64MQThNGMaC89HNoTg==}
120
+
'@atcute/atproto@3.1.1':
121
+
resolution: {integrity: sha512-D+RLTIPF0xLu7BPZY8KSewAPemJFh+3n3zeQ3ROsLxbTtCHbrTDMAmAFexaVRAPGcPYrwXaBUlv7yZjScJolMg==}
122
122
123
-
'@atcute/bluesky@3.1.4':
124
-
resolution: {integrity: sha512-iSdZGk/UktgKpT/lI0/YxRjM3E5dkd6/vIa2mgH82lgRjI0jH5LJAfLXPyr2mPeZ/qku1gf2/KrkqJ9dfiNxVw==}
123
+
'@atcute/bluesky@3.1.5':
124
+
resolution: {integrity: sha512-OJO1HOqRZmpSQ2W2QSbgGIk301JUX7rmLV8LYqQGxsbpNJOLNJ8//vcD4Ag4WsxTRm+Z+vEUZ4qWXnNsZlgXXg==}
125
125
126
126
'@atcute/client@4.0.3':
127
127
resolution: {integrity: sha512-RIOZWFVLca/HiPAAUDqQPOdOreCxTbL5cb+WUf5yqQOKIu5yEAP3eksinmlLmgIrlr5qVOE7brazUUzaskFCfw==}
···
160
160
engines: {node: '>=6.0.0'}
161
161
hasBin: true
162
162
163
-
'@babel/types@7.28.0':
164
-
resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==}
163
+
'@babel/types@7.28.1':
164
+
resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==}
165
165
engines: {node: '>=6.9.0'}
166
166
167
167
'@badrap/valita@0.4.5':
168
168
resolution: {integrity: sha512-4QwGbuhh/JesHRQj79mO/l37PvJj4l/tlAu7+S1n4h47qwaNpZ0WDvIwUGLYUsdi9uQ5UPpiG9wb1Wm3XUFBUQ==}
169
169
engines: {node: '>= 18'}
170
170
171
-
'@clipprjs/lexicons@0.1.4':
172
-
resolution: {integrity: sha512-p3m4eatuWMYtxB7qR5MxfyPEWv5+DVAavH4H0ZtrGI1Z0OmYs2rSPjb9tesCl3ym+/vEnzEeI2zcWSu2Akd2+Q==}
171
+
'@clipprjs/lexicons@1.0.2':
172
+
resolution: {integrity: sha512-AIof/RWAtwq/8ygMSNS5KzElbPdXWD9WEX4uGCgAb0RQ/FJUe41X7gIpL0MYOrVtLmOwH+A5rHxq8o3Tn3b8Sg==}
173
173
174
174
'@colors/colors@1.6.0':
175
175
resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
···
189
189
resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==}
190
190
deprecated: 'Merged into tsx: https://tsx.is'
191
191
192
-
'@esbuild/aix-ppc64@0.25.6':
193
-
resolution: {integrity: sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==}
192
+
'@esbuild/aix-ppc64@0.25.8':
193
+
resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==}
194
194
engines: {node: '>=18'}
195
195
cpu: [ppc64]
196
196
os: [aix]
···
201
201
cpu: [arm64]
202
202
os: [android]
203
203
204
-
'@esbuild/android-arm64@0.25.6':
205
-
resolution: {integrity: sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==}
204
+
'@esbuild/android-arm64@0.25.8':
205
+
resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==}
206
206
engines: {node: '>=18'}
207
207
cpu: [arm64]
208
208
os: [android]
···
213
213
cpu: [arm]
214
214
os: [android]
215
215
216
-
'@esbuild/android-arm@0.25.6':
217
-
resolution: {integrity: sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==}
216
+
'@esbuild/android-arm@0.25.8':
217
+
resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==}
218
218
engines: {node: '>=18'}
219
219
cpu: [arm]
220
220
os: [android]
···
225
225
cpu: [x64]
226
226
os: [android]
227
227
228
-
'@esbuild/android-x64@0.25.6':
229
-
resolution: {integrity: sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==}
228
+
'@esbuild/android-x64@0.25.8':
229
+
resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==}
230
230
engines: {node: '>=18'}
231
231
cpu: [x64]
232
232
os: [android]
···
237
237
cpu: [arm64]
238
238
os: [darwin]
239
239
240
-
'@esbuild/darwin-arm64@0.25.6':
241
-
resolution: {integrity: sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==}
240
+
'@esbuild/darwin-arm64@0.25.8':
241
+
resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==}
242
242
engines: {node: '>=18'}
243
243
cpu: [arm64]
244
244
os: [darwin]
···
249
249
cpu: [x64]
250
250
os: [darwin]
251
251
252
-
'@esbuild/darwin-x64@0.25.6':
253
-
resolution: {integrity: sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==}
252
+
'@esbuild/darwin-x64@0.25.8':
253
+
resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==}
254
254
engines: {node: '>=18'}
255
255
cpu: [x64]
256
256
os: [darwin]
···
261
261
cpu: [arm64]
262
262
os: [freebsd]
263
263
264
-
'@esbuild/freebsd-arm64@0.25.6':
265
-
resolution: {integrity: sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==}
264
+
'@esbuild/freebsd-arm64@0.25.8':
265
+
resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==}
266
266
engines: {node: '>=18'}
267
267
cpu: [arm64]
268
268
os: [freebsd]
···
273
273
cpu: [x64]
274
274
os: [freebsd]
275
275
276
-
'@esbuild/freebsd-x64@0.25.6':
277
-
resolution: {integrity: sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==}
276
+
'@esbuild/freebsd-x64@0.25.8':
277
+
resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==}
278
278
engines: {node: '>=18'}
279
279
cpu: [x64]
280
280
os: [freebsd]
···
285
285
cpu: [arm64]
286
286
os: [linux]
287
287
288
-
'@esbuild/linux-arm64@0.25.6':
289
-
resolution: {integrity: sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==}
288
+
'@esbuild/linux-arm64@0.25.8':
289
+
resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==}
290
290
engines: {node: '>=18'}
291
291
cpu: [arm64]
292
292
os: [linux]
···
297
297
cpu: [arm]
298
298
os: [linux]
299
299
300
-
'@esbuild/linux-arm@0.25.6':
301
-
resolution: {integrity: sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==}
300
+
'@esbuild/linux-arm@0.25.8':
301
+
resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==}
302
302
engines: {node: '>=18'}
303
303
cpu: [arm]
304
304
os: [linux]
···
309
309
cpu: [ia32]
310
310
os: [linux]
311
311
312
-
'@esbuild/linux-ia32@0.25.6':
313
-
resolution: {integrity: sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==}
312
+
'@esbuild/linux-ia32@0.25.8':
313
+
resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==}
314
314
engines: {node: '>=18'}
315
315
cpu: [ia32]
316
316
os: [linux]
···
321
321
cpu: [loong64]
322
322
os: [linux]
323
323
324
-
'@esbuild/linux-loong64@0.25.6':
325
-
resolution: {integrity: sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==}
324
+
'@esbuild/linux-loong64@0.25.8':
325
+
resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==}
326
326
engines: {node: '>=18'}
327
327
cpu: [loong64]
328
328
os: [linux]
···
333
333
cpu: [mips64el]
334
334
os: [linux]
335
335
336
-
'@esbuild/linux-mips64el@0.25.6':
337
-
resolution: {integrity: sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==}
336
+
'@esbuild/linux-mips64el@0.25.8':
337
+
resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==}
338
338
engines: {node: '>=18'}
339
339
cpu: [mips64el]
340
340
os: [linux]
···
345
345
cpu: [ppc64]
346
346
os: [linux]
347
347
348
-
'@esbuild/linux-ppc64@0.25.6':
349
-
resolution: {integrity: sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==}
348
+
'@esbuild/linux-ppc64@0.25.8':
349
+
resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==}
350
350
engines: {node: '>=18'}
351
351
cpu: [ppc64]
352
352
os: [linux]
···
357
357
cpu: [riscv64]
358
358
os: [linux]
359
359
360
-
'@esbuild/linux-riscv64@0.25.6':
361
-
resolution: {integrity: sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==}
360
+
'@esbuild/linux-riscv64@0.25.8':
361
+
resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==}
362
362
engines: {node: '>=18'}
363
363
cpu: [riscv64]
364
364
os: [linux]
···
369
369
cpu: [s390x]
370
370
os: [linux]
371
371
372
-
'@esbuild/linux-s390x@0.25.6':
373
-
resolution: {integrity: sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==}
372
+
'@esbuild/linux-s390x@0.25.8':
373
+
resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==}
374
374
engines: {node: '>=18'}
375
375
cpu: [s390x]
376
376
os: [linux]
···
381
381
cpu: [x64]
382
382
os: [linux]
383
383
384
-
'@esbuild/linux-x64@0.25.6':
385
-
resolution: {integrity: sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==}
384
+
'@esbuild/linux-x64@0.25.8':
385
+
resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==}
386
386
engines: {node: '>=18'}
387
387
cpu: [x64]
388
388
os: [linux]
389
389
390
-
'@esbuild/netbsd-arm64@0.25.6':
391
-
resolution: {integrity: sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==}
390
+
'@esbuild/netbsd-arm64@0.25.8':
391
+
resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==}
392
392
engines: {node: '>=18'}
393
393
cpu: [arm64]
394
394
os: [netbsd]
···
399
399
cpu: [x64]
400
400
os: [netbsd]
401
401
402
-
'@esbuild/netbsd-x64@0.25.6':
403
-
resolution: {integrity: sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==}
402
+
'@esbuild/netbsd-x64@0.25.8':
403
+
resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==}
404
404
engines: {node: '>=18'}
405
405
cpu: [x64]
406
406
os: [netbsd]
407
407
408
-
'@esbuild/openbsd-arm64@0.25.6':
409
-
resolution: {integrity: sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==}
408
+
'@esbuild/openbsd-arm64@0.25.8':
409
+
resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==}
410
410
engines: {node: '>=18'}
411
411
cpu: [arm64]
412
412
os: [openbsd]
···
417
417
cpu: [x64]
418
418
os: [openbsd]
419
419
420
-
'@esbuild/openbsd-x64@0.25.6':
421
-
resolution: {integrity: sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==}
420
+
'@esbuild/openbsd-x64@0.25.8':
421
+
resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==}
422
422
engines: {node: '>=18'}
423
423
cpu: [x64]
424
424
os: [openbsd]
425
425
426
-
'@esbuild/openharmony-arm64@0.25.6':
427
-
resolution: {integrity: sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==}
426
+
'@esbuild/openharmony-arm64@0.25.8':
427
+
resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==}
428
428
engines: {node: '>=18'}
429
429
cpu: [arm64]
430
430
os: [openharmony]
···
435
435
cpu: [x64]
436
436
os: [sunos]
437
437
438
-
'@esbuild/sunos-x64@0.25.6':
439
-
resolution: {integrity: sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==}
438
+
'@esbuild/sunos-x64@0.25.8':
439
+
resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==}
440
440
engines: {node: '>=18'}
441
441
cpu: [x64]
442
442
os: [sunos]
···
447
447
cpu: [arm64]
448
448
os: [win32]
449
449
450
-
'@esbuild/win32-arm64@0.25.6':
451
-
resolution: {integrity: sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==}
450
+
'@esbuild/win32-arm64@0.25.8':
451
+
resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==}
452
452
engines: {node: '>=18'}
453
453
cpu: [arm64]
454
454
os: [win32]
···
459
459
cpu: [ia32]
460
460
os: [win32]
461
461
462
-
'@esbuild/win32-ia32@0.25.6':
463
-
resolution: {integrity: sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==}
462
+
'@esbuild/win32-ia32@0.25.8':
463
+
resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==}
464
464
engines: {node: '>=18'}
465
465
cpu: [ia32]
466
466
os: [win32]
···
471
471
cpu: [x64]
472
472
os: [win32]
473
473
474
-
'@esbuild/win32-x64@0.25.6':
475
-
resolution: {integrity: sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==}
474
+
'@esbuild/win32-x64@0.25.8':
475
+
resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==}
476
476
engines: {node: '>=18'}
477
477
cpu: [x64]
478
478
os: [win32]
···
493
493
494
494
'@eslint/config-helpers@0.3.0':
495
495
resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==}
496
-
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
497
-
498
-
'@eslint/core@0.14.0':
499
-
resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==}
500
496
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
501
497
502
498
'@eslint/core@0.15.1':
···
507
503
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
508
504
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
509
505
510
-
'@eslint/js@9.30.1':
511
-
resolution: {integrity: sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==}
506
+
'@eslint/js@9.31.0':
507
+
resolution: {integrity: sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==}
512
508
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
513
509
514
510
'@eslint/object-schema@2.1.6':
515
511
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
516
512
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
517
513
518
-
'@eslint/plugin-kit@0.3.3':
519
-
resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==}
514
+
'@eslint/plugin-kit@0.3.4':
515
+
resolution: {integrity: sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==}
520
516
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
521
517
522
518
'@externdefs/collider@0.3.0':
···
542
538
peerDependencies:
543
539
vue: ^3.2.0
544
540
545
-
'@hono/node-server@1.15.0':
546
-
resolution: {integrity: sha512-MjmK4l5N4dQpZ9OSWN0tCj7ejuc7WvuWMzSKtc89bnknJykAeHxzRigXBTYZk85H6Awrii6RM59iUiUluApu2A==}
541
+
'@hono/node-server@1.17.1':
542
+
resolution: {integrity: sha512-SY79W/C+2b1MyAzmIcV32Q47vO1b5XwLRwj8S9N6Jr5n1QCkIfAIH6umOSgqWZ4/v67hg6qq8Ha5vZonVidGsg==}
547
543
engines: {node: '>=18.14.1'}
548
544
peerDependencies:
549
545
hono: ^4
···
575
571
'@hyperjump/json-pointer@1.1.1':
576
572
resolution: {integrity: sha512-M0T3s7TC2JepoWPMZQn1W6eYhFh06OXwpMqL+8c5wMVpvnCKNsPgpu9u7WyCI03xVQti8JAeAy4RzUa6SYlJLA==}
577
573
578
-
'@hyperjump/json-schema@1.16.1':
579
-
resolution: {integrity: sha512-GCGQCOJMwAUTcCn7eDFOx5G6uOPFLG2O3tv+vMrHJUHwqeFo4GVO03BcsmX/Xy7dfTP4VgucXyoNjrtyoqb5wA==}
574
+
'@hyperjump/json-schema@1.16.2':
575
+
resolution: {integrity: sha512-MJNvaEFc79+h5rvBPgAJK4OHEUr0RqsKcLC5rc3V9FEsJyQAjnP910deRFoZCE068kX/NrAPPhunMgUMwonPtg==}
580
576
peerDependencies:
581
577
'@hyperjump/browser': ^1.1.0
582
578
···
589
585
'@internationalized/date@3.8.2':
590
586
resolution: {integrity: sha512-/wENk7CbvLbkUvX1tu0mwq49CVkkWpkXubGel6birjRPyo6uQ4nQpnq5xZu823zRCwwn82zgHrvgF1vZyvmVgA==}
591
587
592
-
'@internationalized/number@3.6.3':
593
-
resolution: {integrity: sha512-p+Zh1sb6EfrfVaS86jlHGQ9HA66fJhV9x5LiE5vCbZtXEHAuhcmUZUdZ4WrFpUBfNalr2OkAJI5AcKEQF+Lebw==}
588
+
'@internationalized/number@3.6.4':
589
+
resolution: {integrity: sha512-P+/h+RDaiX8EGt3shB9AYM1+QgkvHmJ5rKi4/59k4sg9g58k9rqsRW0WxRO7jCoHyvVbFRRFKmVTdFYdehrxHg==}
594
590
595
591
'@jridgewell/gen-mapping@0.3.12':
596
592
resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
···
608
604
'@jridgewell/trace-mapping@0.3.29':
609
605
resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
610
606
611
-
'@libsql/client@0.15.9':
612
-
resolution: {integrity: sha512-VT3do0a0vwYVaNcp/y05ikkKS3OrFR5UeEf5SUuYZVgKVl1Nc1k9ajoYSsOid8AD/vlhLDB5yFQaV4HmT/OB9w==}
607
+
'@libsql/client@0.15.10':
608
+
resolution: {integrity: sha512-J9cJQwrgH92JlPBYjUGxPIH5G9z3j/V/aPnQvcmmCgjatdVb/f7bzK3yNq15Phc+gVuKMwox3toXL+58qUMylg==}
613
609
614
-
'@libsql/core@0.15.9':
615
-
resolution: {integrity: sha512-4OVdeAmuaCUq5hYT8NNn0nxlO9AcA/eTjXfUZ+QK8MT3Dz7Z76m73x7KxjU6I64WyXX98dauVH2b9XM+d84npw==}
610
+
'@libsql/core@0.15.10':
611
+
resolution: {integrity: sha512-fAMD+GnGQNdZ9zxeNC8AiExpKnou/97GJWkiDDZbTRHj3c9dvF1y4jsRQ0WE72m/CqTdbMGyU98yL0SJ9hQVeg==}
616
612
617
-
'@libsql/darwin-arm64@0.5.13':
618
-
resolution: {integrity: sha512-ASz/EAMLDLx3oq9PVvZ4zBXXHbz2TxtxUwX2xpTRFR4V4uSHAN07+jpLu3aK5HUBLuv58z7+GjaL5w/cyjR28Q==}
613
+
'@libsql/darwin-arm64@0.5.16':
614
+
resolution: {integrity: sha512-Q1fXH2YVTU/Iym8kN79Z2bQiNtkIV1QiDikgRD79a2eLO/v9ZghZqama65U6lDP6zZXXGtxhb6sfisnP9HQrug==}
619
615
cpu: [arm64]
620
616
os: [darwin]
621
617
622
-
'@libsql/darwin-x64@0.5.13':
623
-
resolution: {integrity: sha512-kzglniv1difkq8opusSXM7u9H0WoEPeKxw0ixIfcGfvlCVMJ+t9UNtXmyNHW68ljdllje6a4C6c94iPmIYafYA==}
618
+
'@libsql/darwin-x64@0.5.16':
619
+
resolution: {integrity: sha512-EiowJzSxnO2misBttp6R6Hz16UbttdDyRMqnZauSd41X4kRxuLtxvSLCpWRXmZ/3WKcXQ9G5H5X40ZPW1itOTg==}
624
620
cpu: [x64]
625
621
os: [darwin]
626
622
···
634
630
'@libsql/isomorphic-ws@0.1.5':
635
631
resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==}
636
632
637
-
'@libsql/linux-arm-gnueabihf@0.5.13':
638
-
resolution: {integrity: sha512-UEW+VZN2r0mFkfztKOS7cqfS8IemuekbjUXbXCwULHtusww2QNCXvM5KU9eJCNE419SZCb0qaEWYytcfka8qeA==}
633
+
'@libsql/linux-arm-gnueabihf@0.5.16':
634
+
resolution: {integrity: sha512-Gsumbh97GajJ5D8aAy5D5zJLZxr/HMmMYoaj53+QHmerEJkfTNpxFOalKwVg6bL07DmNfiiuGaku82SJyDGHCQ==}
639
635
cpu: [arm]
640
636
os: [linux]
641
637
642
-
'@libsql/linux-arm-musleabihf@0.5.13':
643
-
resolution: {integrity: sha512-NMDgLqryYBv4Sr3WoO/m++XDjR5KLlw9r/JK4Ym6A1XBv2bxQQNhH0Lxx3bjLW8qqhBD4+0xfms4d2cOlexPyA==}
638
+
'@libsql/linux-arm-musleabihf@0.5.16':
639
+
resolution: {integrity: sha512-bs+xWR2CJX4J3iQ3J82emWyN8/Hw+4DpD/MdLW07D0NPPG9Byp2KkeqSKW0o0kDHNePjNEz1G2OAfD0dxsC/OA==}
644
640
cpu: [arm]
645
641
os: [linux]
646
642
647
-
'@libsql/linux-arm64-gnu@0.5.13':
648
-
resolution: {integrity: sha512-/wCxVdrwl1ee6D6LEjwl+w4SxuLm5UL9Kb1LD5n0bBGs0q+49ChdPPh7tp175iRgkcrTgl23emymvt1yj3KxVQ==}
643
+
'@libsql/linux-arm64-gnu@0.5.16':
644
+
resolution: {integrity: sha512-oqmweYSg5buJhFyDIweW5MfAEg6HYMLSU/fbOZiXT/LIcHxVJ44JlNA53ffWmYSwYx/nZwTiN00m7dIwPWV2zA==}
649
645
cpu: [arm64]
650
646
os: [linux]
651
647
652
-
'@libsql/linux-arm64-musl@0.5.13':
653
-
resolution: {integrity: sha512-xnVAbZIanUgX57XqeI5sNaDnVilp0Di5syCLSEo+bRyBobe/1IAeehNZpyVbCy91U2N6rH1C/mZU7jicVI9x+A==}
648
+
'@libsql/linux-arm64-musl@0.5.16':
649
+
resolution: {integrity: sha512-BRNcyGdZnOPbJfE/HgAVQprikF03JeK3ERmcP4EqRy7AYJ66SuRGFJdW9DSN93O5XSOWkS+upQt+PNFW3OLCew==}
654
650
cpu: [arm64]
655
651
os: [linux]
656
652
657
-
'@libsql/linux-x64-gnu@0.5.13':
658
-
resolution: {integrity: sha512-/mfMRxcQAI9f8t7tU3QZyh25lXgXKzgin9B9TOSnchD73PWtsVhlyfA6qOCfjQl5kr4sHscdXD5Yb3KIoUgrpQ==}
653
+
'@libsql/linux-x64-gnu@0.5.16':
654
+
resolution: {integrity: sha512-NyKxuHvb38rmSfexYbPy7SYV4HqY18L06LYbvU3ZqFfTV7CIGdzuxPOKv05GxHvak46VG+3CjRfq9Q/VIZolwA==}
659
655
cpu: [x64]
660
656
os: [linux]
661
657
662
-
'@libsql/linux-x64-musl@0.5.13':
663
-
resolution: {integrity: sha512-rdefPTpQCVwUjIQYbDLMv3qpd5MdrT0IeD0UZPGqhT9AWU8nJSQoj2lfyIDAWEz7PPOVCY4jHuEn7FS2sw9kRA==}
658
+
'@libsql/linux-x64-musl@0.5.16':
659
+
resolution: {integrity: sha512-xi0nObdngfYuOnji/y7wQmF6y7JMYmonE/HF0snzAAgZflTFdW6ZBn7N4oRz/aGb9+fMfz8sT3wnEe+CuO05qg==}
664
660
cpu: [x64]
665
661
os: [linux]
666
662
667
-
'@libsql/win32-x64-msvc@0.5.13':
668
-
resolution: {integrity: sha512-aNcmDrD1Ws+dNZIv9ECbxBQumqB9MlSVEykwfXJpqv/593nABb8Ttg5nAGUPtnADyaGDTrGvPPP81d/KsKho4Q==}
663
+
'@libsql/win32-x64-msvc@0.5.16':
664
+
resolution: {integrity: sha512-db37ASxpc7aIC7oBuefBGiAJyLVJdvrQy07X2jEU3AtekxpwYCHbJO3Pd3P71hNitFSbaFfpZHHf0GZenzF4JQ==}
669
665
cpu: [x64]
670
666
os: [win32]
671
667
···
687
683
'@phosphor-icons/core@2.1.1':
688
684
resolution: {integrity: sha512-v4ARvrip4qBCImOE5rmPUylOEK4iiED9ZyKjcvzuezqMaiRASCHKcRIuvvxL/twvLpkfnEODCOJp5dM4eZilxQ==}
689
685
690
-
'@pkgr/core@0.2.7':
691
-
resolution: {integrity: sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==}
686
+
'@pkgr/core@0.2.9':
687
+
resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
692
688
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
693
689
694
690
'@rtsao/scc@1.1.0':
695
691
resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
696
692
697
-
'@scalar/code-highlight@0.1.5':
698
-
resolution: {integrity: sha512-gFTorMvDq91IKf0cV17+UvgGsBichGURsS3qBEo72ihc4yUX207/AT2Obm6kT+ckkIYvXydD6MPapk9rEnCPuA==}
693
+
'@scalar/code-highlight@0.1.8':
694
+
resolution: {integrity: sha512-SH7gqBVGotf9Hw2srAKd/s854Wjf5lpR4FgAf/l3AlCYC5QXJ4hbj+fk1/3tvzeRFm+wvS6/ah4FuiIzvDPOug==}
699
695
engines: {node: '>=20'}
700
696
701
-
'@scalar/components@0.14.16':
702
-
resolution: {integrity: sha512-JcF8r93isL+rdTpCccPM8BEdIO17ERTkjNBVviqGHmQ57jXX8c2v1/1HtOz9qez5fE8uEEUJ3KJXUgskeLdWmQ==}
697
+
'@scalar/components@0.14.20':
698
+
resolution: {integrity: sha512-wGHsxz3R6l+u7KASwvm4Y9d7byD2HjfWBbCVXAb+qQIDemaMDBNARjRCbXLpRB9UvYLxtgP/8fzdW+R0LEf4/A==}
703
699
engines: {node: '>=20'}
704
700
705
-
'@scalar/core@0.3.7':
706
-
resolution: {integrity: sha512-Qeq+DfOWxjVHFff9qx0w9gVK6FmgqJtpN3je5C3elKVXNPC/7rxG4BfAuced+SdnogaVzpb9rvvHPblMgsKrwQ==}
701
+
'@scalar/core@0.3.10':
702
+
resolution: {integrity: sha512-WKLaZk5zj65CbS0Ox0BMZ1GX9gFrVdwgV/cdRjT2Av8H5CizOSirXk4PwdsU8V8Q4gAltVy9cnt6yKc2ZnRY+w==}
707
703
engines: {node: '>=20'}
708
704
709
705
'@scalar/helpers@0.0.6':
710
706
resolution: {integrity: sha512-VrkpJmEq3zLu0lYFVRplNLA54rZ9rBkiahEI8laVpLnzGl1QilIn2EhxBT9lK7/2jbPprCbTfgnZZv+zHgGYTw==}
711
707
engines: {node: '>=20'}
712
708
713
-
'@scalar/hono-api-reference@0.9.9':
714
-
resolution: {integrity: sha512-8oJ1xaYVHT3/7Go5FtcZqqsm4NkJL0Jxf3ZipXjoJcvhyiBXyQdXGNnKJVXSci2BhQMqMav6pXzkje8gq74ZAg==}
709
+
'@scalar/hono-api-reference@0.9.12':
710
+
resolution: {integrity: sha512-ygbQsh+5QaRyAx851utApy12FW+wSRLuOBTpL2U5RVzDjvN6vMBZs119mqH1BmY6ltVn8k7DvS2Ooyx0ttah/A==}
715
711
engines: {node: '>=20'}
716
712
peerDependencies:
717
713
hono: ^4.0.0
···
724
720
resolution: {integrity: sha512-4u2gtyhA119T+HdQ4dVKYzQOCOos5Iaj08C1H2Hi6WW64sTNJaZuh9hpVtY94e0I9feRiCyNEtWvmbOjOAxbTw==}
725
721
engines: {node: '>=20'}
726
722
727
-
'@scalar/oas-utils@0.4.11':
728
-
resolution: {integrity: sha512-ptekTIpxCczQxP3iXtSpDWEf0nV0nsYJh/b0/wD3krfw6hUAGVqctRTnOuZBQmiVfVeP47NsVavdpG1fiWuZ5Q==}
723
+
'@scalar/oas-utils@0.4.15':
724
+
resolution: {integrity: sha512-C2kGex6fwHxmBQhyiAmuVJHlIOP/rYoojuROfWvUQSrfLELkIjE5ZTyh4fj9PhwhGbS9iWWVaaOytjeT+8n8AQ==}
729
725
engines: {node: '>=20'}
730
726
731
727
'@scalar/object-utils@1.2.2':
732
728
resolution: {integrity: sha512-dnH/JeXLudjBfEISpYvnMrH3bLjpc06vWVx7UQmtNNWIIonJ+bDMg1ATnYon7q6m+V8aJZ9/To8SwYsunYRL9g==}
733
729
engines: {node: '>=20'}
734
730
735
-
'@scalar/openapi-parser@0.18.1':
736
-
resolution: {integrity: sha512-xlJRmizgAlYp+pUMVmohL1aNwEpPcwJ/FpsWZsDtIW9esddHJ3Zt5dAG1TDO/jsyDsMJg2Lz28IhNObOzIQpzg==}
731
+
'@scalar/openapi-parser@0.18.2':
732
+
resolution: {integrity: sha512-Mb0rRgnn8QgrwcsOcZY3g4uDr49cSuYcmh87oT7gDuV9IPFg5Wc71fjXNx0HdTRy5k21ugS/lDSl8sL+YBudOw==}
737
733
engines: {node: '>=20'}
738
734
739
-
'@scalar/openapi-to-markdown@0.2.19':
740
-
resolution: {integrity: sha512-o/dbYLmggUllLgVXdAMVJT4Bdxy/MPC2UFlzeJ4hoxBSgvTO1CWr6v61HIBrDn0eqId7PF1V9p+EV1RNtgz/jA==}
735
+
'@scalar/openapi-to-markdown@0.2.23':
736
+
resolution: {integrity: sha512-j47K57Q0pDT3C1kAHmewV4kIBInQTjlvG+y4W5QgJkE64mzb8n5aZuMqzSCpyEItX4BsMEasIPMDWBCIhiicpw==}
741
737
engines: {node: '>=20'}
742
738
743
-
'@scalar/openapi-types@0.3.5':
744
-
resolution: {integrity: sha512-/iTUSJMMHVMIFJngeIjTVtU5lwIMNyEIm25e0XtDV0veW6zmIhLsaH2/nwpIgR1iXVyd/uWMyMrtQW329s3c4w==}
739
+
'@scalar/openapi-types@0.3.6':
740
+
resolution: {integrity: sha512-hkLIgDIQxSgZNYCqNkty2p/V8hjeMf711uT8IKIjNw8oaT/cjT1HC/3V0FVhJ6x2eaufir+WXt5Zqv/iVk5pyQ==}
745
741
engines: {node: '>=20'}
746
742
747
-
'@scalar/snippetz@0.4.0':
748
-
resolution: {integrity: sha512-smfJ0UiXsHmPOk6k+oAdShAIwZ7LTgK23l/ecTUQVYg0ub4yIadWFqo3cqjpZJ1zF88LLIfiHcthe2iQ1LHzXw==}
743
+
'@scalar/snippetz@0.4.3':
744
+
resolution: {integrity: sha512-OcYI4uvz/SbIkGupa3SNS403+lCsp4RoPJRTP1Rd59lRX9Kyc8xXo8ZuJis06GYtlBP5rqshI+jFCIP/Ap+dFw==}
749
745
engines: {node: '>=20'}
750
746
751
-
'@scalar/themes@0.13.8':
752
-
resolution: {integrity: sha512-qWAOFpLYEVVkQnHFb5js6njFLHwwXVVRC06edthBTtUvaL8HOQexg6bXp2uksCFStm1bb1VYy9UOp8EqEnfN5Q==}
747
+
'@scalar/themes@0.13.11':
748
+
resolution: {integrity: sha512-9rdNfVDbDFUr6Pi9IHt6OKs7Ui6TtrH7tR+ymga+I+jw8Xsnm4dbD1G2TFk1wUaYLVYdiqyQcj+JT15OJEGlkw==}
753
749
engines: {node: '>=20'}
754
750
755
-
'@scalar/types@0.2.7':
756
-
resolution: {integrity: sha512-C4sbkqzCeQWYWaOUIQPdVm6g3FhUkcqpVorArApv7WfCEgVn1KLOOYELFMWwCHim2GnrZblVVUPubf0UXjUcLA==}
751
+
'@scalar/types@0.2.10':
752
+
resolution: {integrity: sha512-ZlOzYoYzzGRnMr6RufAnjksv94MyL4s4HElg9mdo9gQXPch24lNiE0pE0k6vxdB+ncgbGWZ1T6qCC/lJXMLL1Q==}
757
753
engines: {node: '>=20'}
758
754
759
755
'@scalar/use-hooks@0.2.4':
···
764
760
resolution: {integrity: sha512-u+o77cdTNZ5ePqHPu8ZcFw1BLlISv+cthN0bR1zJHXmqBjvanFTy2kL+Gmv3eW9HxZiHdqycKVETlYd0mWiqJQ==}
765
761
engines: {node: '>=20'}
766
762
767
-
'@scalar/workspace-store@0.8.0':
768
-
resolution: {integrity: sha512-HFtXNCU/qfY08cXhdd5UhnGbrWS6w6w9RAnNql4O3J0P/MiotMIZiUreCfGbiCVOXCj59ClzeOJIhA8R59Z2OA==}
763
+
'@scalar/workspace-store@0.10.2':
764
+
resolution: {integrity: sha512-p4aDfAsZIFBBQPk2CcD96PMc2HFLOtGi2XMRNp86cqpQMncIIAqDTYCydzcsYvMPysmckIAAyuztdKDOPnry7g==}
769
765
engines: {node: '>=18'}
770
766
771
767
'@sinclair/typebox@0.34.37':
772
768
resolution: {integrity: sha512-2TRuQVgQYfy+EzHRTIvkhv2ADEouJ2xNS/Vq+W5EuuewBdOrvATvljZTxHWZSTYr2sTjTHpGvucaGAt67S2akw==}
773
769
774
-
'@skyware/jetstream@0.2.4':
775
-
resolution: {integrity: sha512-QA94YMamBnULAHhDLX3DdvDaEkGEIzEmMmN2NPr+J2xKQ/D9NczOe50kBaGmOST4E19w8CR12/y6ykWNOMlE+Q==}
770
+
'@skyware/jetstream@0.2.5':
771
+
resolution: {integrity: sha512-fM/zs03DLwqRyzZZJFWN20e76KrdqIp97Tlm8Cek+vxn96+tu5d/fx79V6H85L0QN6HvGiX2l9A8hWFqHvYlOA==}
776
772
777
773
'@swc/helpers@0.5.17':
778
774
resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==}
···
809
805
'@types/ms@2.1.0':
810
806
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
811
807
812
-
'@types/node@22.16.2':
813
-
resolution: {integrity: sha512-Cdqa/eJTvt4fC4wmq1Mcc0CPUjp/Qy2FGqLza3z3pKymsI969TcZ54diNJv8UYUgeWxyb8FSbCkhdR6WqmUFhA==}
808
+
'@types/node@22.16.5':
809
+
resolution: {integrity: sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==}
814
810
815
-
'@types/node@24.0.12':
816
-
resolution: {integrity: sha512-LtOrbvDf5ndC9Xi+4QZjVL0woFymF/xSTKZKPgrrl7H7XoeDvnD+E2IclKVDyaK9UM756W/3BXqSU+JEHopA9g==}
811
+
'@types/node@24.1.0':
812
+
resolution: {integrity: sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==}
817
813
818
814
'@types/triple-beam@1.3.5':
819
815
resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==}
···
827
823
'@types/ws@8.18.1':
828
824
resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
829
825
830
-
'@typescript-eslint/eslint-plugin@8.36.0':
831
-
resolution: {integrity: sha512-lZNihHUVB6ZZiPBNgOQGSxUASI7UJWhT8nHyUGCnaQ28XFCw98IfrMCG3rUl1uwUWoAvodJQby2KTs79UTcrAg==}
826
+
'@typescript-eslint/eslint-plugin@8.38.0':
827
+
resolution: {integrity: sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==}
832
828
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
833
829
peerDependencies:
834
-
'@typescript-eslint/parser': ^8.36.0
830
+
'@typescript-eslint/parser': ^8.38.0
835
831
eslint: ^8.57.0 || ^9.0.0
836
832
typescript: '>=4.8.4 <5.9.0'
837
833
838
-
'@typescript-eslint/parser@8.36.0':
839
-
resolution: {integrity: sha512-FuYgkHwZLuPbZjQHzJXrtXreJdFMKl16BFYyRrLxDhWr6Qr7Kbcu2s1Yhu8tsiMXw1S0W1pjfFfYEt+R604s+Q==}
834
+
'@typescript-eslint/parser@8.38.0':
835
+
resolution: {integrity: sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==}
840
836
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
841
837
peerDependencies:
842
838
eslint: ^8.57.0 || ^9.0.0
843
839
typescript: '>=4.8.4 <5.9.0'
844
840
845
-
'@typescript-eslint/project-service@8.36.0':
846
-
resolution: {integrity: sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==}
841
+
'@typescript-eslint/project-service@8.38.0':
842
+
resolution: {integrity: sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==}
847
843
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
848
844
peerDependencies:
849
845
typescript: '>=4.8.4 <5.9.0'
850
846
851
-
'@typescript-eslint/scope-manager@8.36.0':
852
-
resolution: {integrity: sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==}
847
+
'@typescript-eslint/scope-manager@8.38.0':
848
+
resolution: {integrity: sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==}
853
849
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
854
850
855
-
'@typescript-eslint/tsconfig-utils@8.36.0':
856
-
resolution: {integrity: sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==}
851
+
'@typescript-eslint/tsconfig-utils@8.38.0':
852
+
resolution: {integrity: sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==}
857
853
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
858
854
peerDependencies:
859
855
typescript: '>=4.8.4 <5.9.0'
860
856
861
-
'@typescript-eslint/type-utils@8.36.0':
862
-
resolution: {integrity: sha512-5aaGYG8cVDd6cxfk/ynpYzxBRZJk7w/ymto6uiyUFtdCozQIsQWh7M28/6r57Fwkbweng8qAzoMCPwSJfWlmsg==}
857
+
'@typescript-eslint/type-utils@8.38.0':
858
+
resolution: {integrity: sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==}
863
859
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
864
860
peerDependencies:
865
861
eslint: ^8.57.0 || ^9.0.0
866
862
typescript: '>=4.8.4 <5.9.0'
867
863
868
-
'@typescript-eslint/types@8.36.0':
869
-
resolution: {integrity: sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==}
864
+
'@typescript-eslint/types@8.38.0':
865
+
resolution: {integrity: sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==}
870
866
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
871
867
872
-
'@typescript-eslint/typescript-estree@8.36.0':
873
-
resolution: {integrity: sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==}
868
+
'@typescript-eslint/typescript-estree@8.38.0':
869
+
resolution: {integrity: sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==}
874
870
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
875
871
peerDependencies:
876
872
typescript: '>=4.8.4 <5.9.0'
877
873
878
-
'@typescript-eslint/utils@8.36.0':
879
-
resolution: {integrity: sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==}
874
+
'@typescript-eslint/utils@8.38.0':
875
+
resolution: {integrity: sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==}
880
876
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
881
877
peerDependencies:
882
878
eslint: ^8.57.0 || ^9.0.0
883
879
typescript: '>=4.8.4 <5.9.0'
884
880
885
-
'@typescript-eslint/visitor-keys@8.36.0':
886
-
resolution: {integrity: sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==}
881
+
'@typescript-eslint/visitor-keys@8.38.0':
882
+
resolution: {integrity: sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==}
887
883
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
888
884
889
885
'@ungap/structured-clone@1.3.0':
890
886
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
891
887
892
-
'@vue/compiler-core@3.5.17':
893
-
resolution: {integrity: sha512-Xe+AittLbAyV0pabcN7cP7/BenRBNcteM4aSDCtRvGw0d9OL+HG1u/XHLY/kt1q4fyMeZYXyIYrsHuPSiDPosA==}
888
+
'@vue/compiler-core@3.5.18':
889
+
resolution: {integrity: sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==}
894
890
895
-
'@vue/compiler-dom@3.5.17':
896
-
resolution: {integrity: sha512-+2UgfLKoaNLhgfhV5Ihnk6wB4ljyW1/7wUIog2puUqajiC29Lp5R/IKDdkebh9jTbTogTbsgB+OY9cEWzG95JQ==}
891
+
'@vue/compiler-dom@3.5.18':
892
+
resolution: {integrity: sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==}
897
893
898
-
'@vue/compiler-sfc@3.5.17':
899
-
resolution: {integrity: sha512-rQQxbRJMgTqwRugtjw0cnyQv9cP4/4BxWfTdRBkqsTfLOHWykLzbOc3C4GGzAmdMDxhzU/1Ija5bTjMVrddqww==}
894
+
'@vue/compiler-sfc@3.5.18':
895
+
resolution: {integrity: sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==}
900
896
901
-
'@vue/compiler-ssr@3.5.17':
902
-
resolution: {integrity: sha512-hkDbA0Q20ZzGgpj5uZjb9rBzQtIHLS78mMilwrlpWk2Ep37DYntUz0PonQ6kr113vfOEdM+zTBuJDaceNIW0tQ==}
897
+
'@vue/compiler-ssr@3.5.18':
898
+
resolution: {integrity: sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==}
903
899
904
-
'@vue/reactivity@3.5.17':
905
-
resolution: {integrity: sha512-l/rmw2STIscWi7SNJp708FK4Kofs97zc/5aEPQh4bOsReD/8ICuBcEmS7KGwDj5ODQLYWVN2lNibKJL1z5b+Lw==}
900
+
'@vue/reactivity@3.5.18':
901
+
resolution: {integrity: sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==}
906
902
907
-
'@vue/runtime-core@3.5.17':
908
-
resolution: {integrity: sha512-QQLXa20dHg1R0ri4bjKeGFKEkJA7MMBxrKo2G+gJikmumRS7PTD4BOU9FKrDQWMKowz7frJJGqBffYMgQYS96Q==}
903
+
'@vue/runtime-core@3.5.18':
904
+
resolution: {integrity: sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==}
909
905
910
-
'@vue/runtime-dom@3.5.17':
911
-
resolution: {integrity: sha512-8El0M60TcwZ1QMz4/os2MdlQECgGoVHPuLnQBU3m9h3gdNRW9xRmI8iLS4t/22OQlOE6aJvNNlBiCzPHur4H9g==}
906
+
'@vue/runtime-dom@3.5.18':
907
+
resolution: {integrity: sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==}
912
908
913
-
'@vue/server-renderer@3.5.17':
914
-
resolution: {integrity: sha512-BOHhm8HalujY6lmC3DbqF6uXN/K00uWiEeF22LfEsm9Q93XeJ/plHTepGwf6tqFcF7GA5oGSSAAUock3VvzaCA==}
909
+
'@vue/server-renderer@3.5.18':
910
+
resolution: {integrity: sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==}
915
911
peerDependencies:
916
-
vue: 3.5.17
912
+
vue: 3.5.18
917
913
918
-
'@vue/shared@3.5.17':
919
-
resolution: {integrity: sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==}
914
+
'@vue/shared@3.5.18':
915
+
resolution: {integrity: sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==}
920
916
921
917
'@vueuse/core@10.11.1':
922
918
resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==}
···
1206
1202
resolution: {integrity: sha512-tCPWVZWZqWVx2XUsVpJRnH9Mx0ClVOf5YUHerZ5so1OKSlqww4zy1R5ksEdGRcO3tM3zj0PYN6V48TbQCL1RfA==}
1207
1203
hasBin: true
1208
1204
1209
-
drizzle-orm@0.44.2:
1210
-
resolution: {integrity: sha512-zGAqBzWWkVSFjZpwPOrmCrgO++1kZ5H/rZ4qTGeGOe18iXGVJWf3WPfHOVwFIbmi8kHjfJstC6rJomzGx8g/dQ==}
1205
+
drizzle-orm@0.44.3:
1206
+
resolution: {integrity: sha512-8nIiYQxOpgUicEL04YFojJmvC4DNO4KoyXsEIqN44+g6gNBr6hmVpWk3uyAt4CaTiRGDwoU+alfqNNeonLAFOQ==}
1211
1207
peerDependencies:
1212
1208
'@aws-sdk/client-rds-data': '>=3'
1213
1209
'@cloudflare/workers-types': '>=4'
···
1351
1347
engines: {node: '>=12'}
1352
1348
hasBin: true
1353
1349
1354
-
esbuild@0.25.6:
1355
-
resolution: {integrity: sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==}
1350
+
esbuild@0.25.8:
1351
+
resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==}
1356
1352
engines: {node: '>=18'}
1357
1353
hasBin: true
1358
1354
···
1364
1360
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
1365
1361
engines: {node: '>=12'}
1366
1362
1367
-
eslint-config-prettier@10.1.5:
1368
-
resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==}
1363
+
eslint-config-prettier@10.1.8:
1364
+
resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==}
1369
1365
hasBin: true
1370
1366
peerDependencies:
1371
1367
eslint: '>=7.0.0'
···
1409
1405
'@typescript-eslint/parser':
1410
1406
optional: true
1411
1407
1412
-
eslint-plugin-prettier@5.5.1:
1413
-
resolution: {integrity: sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==}
1408
+
eslint-plugin-prettier@5.5.3:
1409
+
resolution: {integrity: sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==}
1414
1410
engines: {node: ^14.18.0 || >=16.0.0}
1415
1411
peerDependencies:
1416
1412
'@types/eslint': '>=8.0.0'
···
1435
1431
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
1436
1432
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1437
1433
1438
-
eslint@9.30.1:
1439
-
resolution: {integrity: sha512-zmxXPNMOXmwm9E0yQLi5uqXHs7uq2UIiqEKo3Gq+3fwo1XrJ+hijAZImyF7hclW3E6oHz43Yk3RP8at6OTKflQ==}
1434
+
eslint@9.31.0:
1435
+
resolution: {integrity: sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==}
1440
1436
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1441
1437
hasBin: true
1442
1438
peerDependencies:
···
1691
1687
highlightjs-vue@1.0.0:
1692
1688
resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==}
1693
1689
1694
-
hono@4.8.4:
1695
-
resolution: {integrity: sha512-KOIBp1+iUs0HrKztM4EHiB2UtzZDTBihDtOF5K6+WaJjCPeaW4Q92R8j63jOhvJI5+tZSMuKD9REVEXXY9illg==}
1690
+
hono@4.8.5:
1691
+
resolution: {integrity: sha512-Up2cQbtNz1s111qpnnECdTGqSIUIhZJMLikdKkshebQSEBcoUKq6XJayLGqSZWidiH0zfHRCJqFu062Mz5UuRA==}
1696
1692
engines: {node: '>=16.9.0'}
1697
1693
1698
1694
html-minifier-terser@7.2.0:
···
1913
1909
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1914
1910
engines: {node: '>= 0.8.0'}
1915
1911
1916
-
libsql@0.5.13:
1917
-
resolution: {integrity: sha512-5Bwoa/CqzgkTwySgqHA5TsaUDRrdLIbdM4egdPcaAnqO3aC+qAgS6BwdzuZwARA5digXwiskogZ8H7Yy4XfdOg==}
1912
+
libsql@0.5.16:
1913
+
resolution: {integrity: sha512-2vZW0MJFDisPQClROZfz956eiqgNZ53eLiALimI0IWBsnPbDLoNDRuqpacd8gu6KCcJHkvKsiEvRa22L0OqNjw==}
1918
1914
cpu: [x64, arm64, wasm32, arm]
1919
1915
os: [darwin, linux, win32]
1920
1916
···
2447
2443
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
2448
2444
engines: {node: '>= 0.4'}
2449
2445
2450
-
synckit@0.11.8:
2451
-
resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==}
2446
+
synckit@0.11.11:
2447
+
resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
2452
2448
engines: {node: ^14.18.0 || >=16.0.0}
2453
2449
2454
2450
tailwind-merge@2.6.0:
···
2530
2526
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
2531
2527
engines: {node: '>= 0.4'}
2532
2528
2533
-
typescript-eslint@8.36.0:
2534
-
resolution: {integrity: sha512-fTCqxthY+h9QbEgSIBfL9iV6CvKDFuoxg6bHPNpJ9HIUzS+jy2lCEyCmGyZRWEBSaykqcDPf1SJ+BfCI8DRopA==}
2529
+
typescript-eslint@8.38.0:
2530
+
resolution: {integrity: sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==}
2535
2531
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
2536
2532
peerDependencies:
2537
2533
eslint: ^8.57.0 || ^9.0.0
···
2606
2602
vue-sonner@1.3.2:
2607
2603
resolution: {integrity: sha512-UbZ48E9VIya3ToiRHAZUbodKute/z/M1iT8/3fU8zEbwBRE11AKuHikssv18LMk2gTTr6eMQT4qf6JoLHWuj/A==}
2608
2604
2609
-
vue@3.5.17:
2610
-
resolution: {integrity: sha512-LbHV3xPN9BeljML+Xctq4lbz2lVHCR6DtbpTf5XIO6gugpXUN49j2QQPcMj086r9+AkJ0FfUT8xjulKKBkkr9g==}
2605
+
vue@3.5.18:
2606
+
resolution: {integrity: sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==}
2611
2607
peerDependencies:
2612
2608
typescript: '*'
2613
2609
peerDependenciesMeta:
···
2686
2682
2687
2683
snapshots:
2688
2684
2689
-
'@atcute/atproto@3.1.0':
2685
+
'@atcute/atproto@3.1.1':
2690
2686
dependencies:
2691
2687
'@atcute/lexicons': 1.1.0
2692
2688
2693
-
'@atcute/bluesky@3.1.4':
2689
+
'@atcute/bluesky@3.1.5':
2694
2690
dependencies:
2695
-
'@atcute/atproto': 3.1.0
2691
+
'@atcute/atproto': 3.1.1
2696
2692
'@atcute/lexicons': 1.1.0
2697
2693
2698
2694
'@atcute/client@4.0.3':
···
2738
2734
2739
2735
'@babel/parser@7.28.0':
2740
2736
dependencies:
2741
-
'@babel/types': 7.28.0
2737
+
'@babel/types': 7.28.1
2742
2738
2743
-
'@babel/types@7.28.0':
2739
+
'@babel/types@7.28.1':
2744
2740
dependencies:
2745
2741
'@babel/helper-string-parser': 7.27.1
2746
2742
'@babel/helper-validator-identifier': 7.27.1
2747
2743
2748
2744
'@badrap/valita@0.4.5': {}
2749
2745
2750
-
'@clipprjs/lexicons@0.1.4':
2746
+
'@clipprjs/lexicons@1.0.2':
2751
2747
dependencies:
2752
-
'@atcute/atproto': 3.1.0
2748
+
'@atcute/atproto': 3.1.1
2753
2749
'@atcute/lexicons': 1.1.0
2754
2750
2755
2751
'@colors/colors@1.6.0': {}
···
2772
2768
'@esbuild-kit/core-utils': 3.3.2
2773
2769
get-tsconfig: 4.10.1
2774
2770
2775
-
'@esbuild/aix-ppc64@0.25.6':
2771
+
'@esbuild/aix-ppc64@0.25.8':
2776
2772
optional: true
2777
2773
2778
2774
'@esbuild/android-arm64@0.18.20':
2779
2775
optional: true
2780
2776
2781
-
'@esbuild/android-arm64@0.25.6':
2777
+
'@esbuild/android-arm64@0.25.8':
2782
2778
optional: true
2783
2779
2784
2780
'@esbuild/android-arm@0.18.20':
2785
2781
optional: true
2786
2782
2787
-
'@esbuild/android-arm@0.25.6':
2783
+
'@esbuild/android-arm@0.25.8':
2788
2784
optional: true
2789
2785
2790
2786
'@esbuild/android-x64@0.18.20':
2791
2787
optional: true
2792
2788
2793
-
'@esbuild/android-x64@0.25.6':
2789
+
'@esbuild/android-x64@0.25.8':
2794
2790
optional: true
2795
2791
2796
2792
'@esbuild/darwin-arm64@0.18.20':
2797
2793
optional: true
2798
2794
2799
-
'@esbuild/darwin-arm64@0.25.6':
2795
+
'@esbuild/darwin-arm64@0.25.8':
2800
2796
optional: true
2801
2797
2802
2798
'@esbuild/darwin-x64@0.18.20':
2803
2799
optional: true
2804
2800
2805
-
'@esbuild/darwin-x64@0.25.6':
2801
+
'@esbuild/darwin-x64@0.25.8':
2806
2802
optional: true
2807
2803
2808
2804
'@esbuild/freebsd-arm64@0.18.20':
2809
2805
optional: true
2810
2806
2811
-
'@esbuild/freebsd-arm64@0.25.6':
2807
+
'@esbuild/freebsd-arm64@0.25.8':
2812
2808
optional: true
2813
2809
2814
2810
'@esbuild/freebsd-x64@0.18.20':
2815
2811
optional: true
2816
2812
2817
-
'@esbuild/freebsd-x64@0.25.6':
2813
+
'@esbuild/freebsd-x64@0.25.8':
2818
2814
optional: true
2819
2815
2820
2816
'@esbuild/linux-arm64@0.18.20':
2821
2817
optional: true
2822
2818
2823
-
'@esbuild/linux-arm64@0.25.6':
2819
+
'@esbuild/linux-arm64@0.25.8':
2824
2820
optional: true
2825
2821
2826
2822
'@esbuild/linux-arm@0.18.20':
2827
2823
optional: true
2828
2824
2829
-
'@esbuild/linux-arm@0.25.6':
2825
+
'@esbuild/linux-arm@0.25.8':
2830
2826
optional: true
2831
2827
2832
2828
'@esbuild/linux-ia32@0.18.20':
2833
2829
optional: true
2834
2830
2835
-
'@esbuild/linux-ia32@0.25.6':
2831
+
'@esbuild/linux-ia32@0.25.8':
2836
2832
optional: true
2837
2833
2838
2834
'@esbuild/linux-loong64@0.18.20':
2839
2835
optional: true
2840
2836
2841
-
'@esbuild/linux-loong64@0.25.6':
2837
+
'@esbuild/linux-loong64@0.25.8':
2842
2838
optional: true
2843
2839
2844
2840
'@esbuild/linux-mips64el@0.18.20':
2845
2841
optional: true
2846
2842
2847
-
'@esbuild/linux-mips64el@0.25.6':
2843
+
'@esbuild/linux-mips64el@0.25.8':
2848
2844
optional: true
2849
2845
2850
2846
'@esbuild/linux-ppc64@0.18.20':
2851
2847
optional: true
2852
2848
2853
-
'@esbuild/linux-ppc64@0.25.6':
2849
+
'@esbuild/linux-ppc64@0.25.8':
2854
2850
optional: true
2855
2851
2856
2852
'@esbuild/linux-riscv64@0.18.20':
2857
2853
optional: true
2858
2854
2859
-
'@esbuild/linux-riscv64@0.25.6':
2855
+
'@esbuild/linux-riscv64@0.25.8':
2860
2856
optional: true
2861
2857
2862
2858
'@esbuild/linux-s390x@0.18.20':
2863
2859
optional: true
2864
2860
2865
-
'@esbuild/linux-s390x@0.25.6':
2861
+
'@esbuild/linux-s390x@0.25.8':
2866
2862
optional: true
2867
2863
2868
2864
'@esbuild/linux-x64@0.18.20':
2869
2865
optional: true
2870
2866
2871
-
'@esbuild/linux-x64@0.25.6':
2867
+
'@esbuild/linux-x64@0.25.8':
2872
2868
optional: true
2873
2869
2874
-
'@esbuild/netbsd-arm64@0.25.6':
2870
+
'@esbuild/netbsd-arm64@0.25.8':
2875
2871
optional: true
2876
2872
2877
2873
'@esbuild/netbsd-x64@0.18.20':
2878
2874
optional: true
2879
2875
2880
-
'@esbuild/netbsd-x64@0.25.6':
2876
+
'@esbuild/netbsd-x64@0.25.8':
2881
2877
optional: true
2882
2878
2883
-
'@esbuild/openbsd-arm64@0.25.6':
2879
+
'@esbuild/openbsd-arm64@0.25.8':
2884
2880
optional: true
2885
2881
2886
2882
'@esbuild/openbsd-x64@0.18.20':
2887
2883
optional: true
2888
2884
2889
-
'@esbuild/openbsd-x64@0.25.6':
2885
+
'@esbuild/openbsd-x64@0.25.8':
2890
2886
optional: true
2891
2887
2892
-
'@esbuild/openharmony-arm64@0.25.6':
2888
+
'@esbuild/openharmony-arm64@0.25.8':
2893
2889
optional: true
2894
2890
2895
2891
'@esbuild/sunos-x64@0.18.20':
2896
2892
optional: true
2897
2893
2898
-
'@esbuild/sunos-x64@0.25.6':
2894
+
'@esbuild/sunos-x64@0.25.8':
2899
2895
optional: true
2900
2896
2901
2897
'@esbuild/win32-arm64@0.18.20':
2902
2898
optional: true
2903
2899
2904
-
'@esbuild/win32-arm64@0.25.6':
2900
+
'@esbuild/win32-arm64@0.25.8':
2905
2901
optional: true
2906
2902
2907
2903
'@esbuild/win32-ia32@0.18.20':
2908
2904
optional: true
2909
2905
2910
-
'@esbuild/win32-ia32@0.25.6':
2906
+
'@esbuild/win32-ia32@0.25.8':
2911
2907
optional: true
2912
2908
2913
2909
'@esbuild/win32-x64@0.18.20':
2914
2910
optional: true
2915
2911
2916
-
'@esbuild/win32-x64@0.25.6':
2912
+
'@esbuild/win32-x64@0.25.8':
2917
2913
optional: true
2918
2914
2919
-
'@eslint-community/eslint-utils@4.7.0(eslint@9.30.1(jiti@2.4.2))':
2915
+
'@eslint-community/eslint-utils@4.7.0(eslint@9.31.0(jiti@2.4.2))':
2920
2916
dependencies:
2921
-
eslint: 9.30.1(jiti@2.4.2)
2917
+
eslint: 9.31.0(jiti@2.4.2)
2922
2918
eslint-visitor-keys: 3.4.3
2923
2919
2924
2920
'@eslint-community/regexpp@4.12.1': {}
···
2933
2929
2934
2930
'@eslint/config-helpers@0.3.0': {}
2935
2931
2936
-
'@eslint/core@0.14.0':
2937
-
dependencies:
2938
-
'@types/json-schema': 7.0.15
2939
-
2940
2932
'@eslint/core@0.15.1':
2941
2933
dependencies:
2942
2934
'@types/json-schema': 7.0.15
···
2955
2947
transitivePeerDependencies:
2956
2948
- supports-color
2957
2949
2958
-
'@eslint/js@9.30.1': {}
2950
+
'@eslint/js@9.31.0': {}
2959
2951
2960
2952
'@eslint/object-schema@2.1.6': {}
2961
2953
2962
-
'@eslint/plugin-kit@0.3.3':
2954
+
'@eslint/plugin-kit@0.3.4':
2963
2955
dependencies:
2964
2956
'@eslint/core': 0.15.1
2965
2957
levn: 0.4.1
···
2979
2971
2980
2972
'@floating-ui/utils@0.2.10': {}
2981
2973
2982
-
'@floating-ui/vue@1.1.7(vue@3.5.17(typescript@5.8.3))':
2974
+
'@floating-ui/vue@1.1.7(vue@3.5.18(typescript@5.8.3))':
2983
2975
dependencies:
2984
2976
'@floating-ui/dom': 1.7.2
2985
2977
'@floating-ui/utils': 0.2.10
2986
-
vue-demi: 0.14.10(vue@3.5.17(typescript@5.8.3))
2978
+
vue-demi: 0.14.10(vue@3.5.18(typescript@5.8.3))
2987
2979
transitivePeerDependencies:
2988
2980
- '@vue/composition-api'
2989
2981
- vue
2990
2982
2991
-
'@headlessui/vue@1.7.23(vue@3.5.17(typescript@5.8.3))':
2983
+
'@headlessui/vue@1.7.23(vue@3.5.18(typescript@5.8.3))':
2992
2984
dependencies:
2993
-
'@tanstack/vue-virtual': 3.13.12(vue@3.5.17(typescript@5.8.3))
2994
-
vue: 3.5.17(typescript@5.8.3)
2985
+
'@tanstack/vue-virtual': 3.13.12(vue@3.5.18(typescript@5.8.3))
2986
+
vue: 3.5.18(typescript@5.8.3)
2995
2987
2996
-
'@hono/node-server@1.15.0(hono@4.8.4)':
2988
+
'@hono/node-server@1.17.1(hono@4.8.5)':
2997
2989
dependencies:
2998
-
hono: 4.8.4
2990
+
hono: 4.8.5
2999
2991
3000
2992
'@humanfs/core@0.19.1': {}
3001
2993
···
3019
3011
3020
3012
'@hyperjump/json-pointer@1.1.1': {}
3021
3013
3022
-
'@hyperjump/json-schema@1.16.1(@hyperjump/browser@1.3.1)':
3014
+
'@hyperjump/json-schema@1.16.2(@hyperjump/browser@1.3.1)':
3023
3015
dependencies:
3024
3016
'@hyperjump/browser': 1.3.1
3025
3017
'@hyperjump/json-pointer': 1.1.1
···
3038
3030
dependencies:
3039
3031
'@swc/helpers': 0.5.17
3040
3032
3041
-
'@internationalized/number@3.6.3':
3033
+
'@internationalized/number@3.6.4':
3042
3034
dependencies:
3043
3035
'@swc/helpers': 0.5.17
3044
3036
···
3061
3053
'@jridgewell/resolve-uri': 3.1.2
3062
3054
'@jridgewell/sourcemap-codec': 1.5.4
3063
3055
3064
-
'@libsql/client@0.15.9':
3056
+
'@libsql/client@0.15.10':
3065
3057
dependencies:
3066
-
'@libsql/core': 0.15.9
3058
+
'@libsql/core': 0.15.10
3067
3059
'@libsql/hrana-client': 0.7.0
3068
3060
js-base64: 3.7.7
3069
-
libsql: 0.5.13
3061
+
libsql: 0.5.16
3070
3062
promise-limit: 2.7.0
3071
3063
transitivePeerDependencies:
3072
3064
- bufferutil
3073
3065
- utf-8-validate
3074
3066
3075
-
'@libsql/core@0.15.9':
3067
+
'@libsql/core@0.15.10':
3076
3068
dependencies:
3077
3069
js-base64: 3.7.7
3078
3070
3079
-
'@libsql/darwin-arm64@0.5.13':
3071
+
'@libsql/darwin-arm64@0.5.16':
3080
3072
optional: true
3081
3073
3082
-
'@libsql/darwin-x64@0.5.13':
3074
+
'@libsql/darwin-x64@0.5.16':
3083
3075
optional: true
3084
3076
3085
3077
'@libsql/hrana-client@0.7.0':
···
3102
3094
- bufferutil
3103
3095
- utf-8-validate
3104
3096
3105
-
'@libsql/linux-arm-gnueabihf@0.5.13':
3097
+
'@libsql/linux-arm-gnueabihf@0.5.16':
3106
3098
optional: true
3107
3099
3108
-
'@libsql/linux-arm-musleabihf@0.5.13':
3100
+
'@libsql/linux-arm-musleabihf@0.5.16':
3109
3101
optional: true
3110
3102
3111
-
'@libsql/linux-arm64-gnu@0.5.13':
3103
+
'@libsql/linux-arm64-gnu@0.5.16':
3112
3104
optional: true
3113
3105
3114
-
'@libsql/linux-arm64-musl@0.5.13':
3106
+
'@libsql/linux-arm64-musl@0.5.16':
3115
3107
optional: true
3116
3108
3117
-
'@libsql/linux-x64-gnu@0.5.13':
3109
+
'@libsql/linux-x64-gnu@0.5.16':
3118
3110
optional: true
3119
3111
3120
-
'@libsql/linux-x64-musl@0.5.13':
3112
+
'@libsql/linux-x64-musl@0.5.16':
3121
3113
optional: true
3122
3114
3123
-
'@libsql/win32-x64-msvc@0.5.13':
3115
+
'@libsql/win32-x64-msvc@0.5.16':
3124
3116
optional: true
3125
3117
3126
3118
'@neon-rs/load@0.0.4': {}
···
3139
3131
3140
3132
'@phosphor-icons/core@2.1.1': {}
3141
3133
3142
-
'@pkgr/core@0.2.7': {}
3134
+
'@pkgr/core@0.2.9': {}
3143
3135
3144
3136
'@rtsao/scc@1.1.0': {}
3145
3137
3146
-
'@scalar/code-highlight@0.1.5':
3138
+
'@scalar/code-highlight@0.1.8':
3147
3139
dependencies:
3148
3140
hast-util-to-text: 4.0.2
3149
3141
highlight.js: 11.11.1
···
3165
3157
transitivePeerDependencies:
3166
3158
- supports-color
3167
3159
3168
-
'@scalar/components@0.14.16(typescript@5.8.3)':
3160
+
'@scalar/components@0.14.20(typescript@5.8.3)':
3169
3161
dependencies:
3170
3162
'@floating-ui/utils': 0.2.10
3171
-
'@floating-ui/vue': 1.1.7(vue@3.5.17(typescript@5.8.3))
3172
-
'@headlessui/vue': 1.7.23(vue@3.5.17(typescript@5.8.3))
3173
-
'@scalar/code-highlight': 0.1.5
3163
+
'@floating-ui/vue': 1.1.7(vue@3.5.18(typescript@5.8.3))
3164
+
'@headlessui/vue': 1.7.23(vue@3.5.18(typescript@5.8.3))
3165
+
'@scalar/code-highlight': 0.1.8
3174
3166
'@scalar/icons': 0.4.6(typescript@5.8.3)
3175
-
'@scalar/oas-utils': 0.4.11(typescript@5.8.3)
3176
-
'@scalar/themes': 0.13.8
3167
+
'@scalar/oas-utils': 0.4.15(typescript@5.8.3)
3168
+
'@scalar/themes': 0.13.11
3177
3169
'@scalar/use-hooks': 0.2.4(typescript@5.8.3)
3178
3170
'@scalar/use-toasts': 0.8.0(typescript@5.8.3)
3179
-
'@vueuse/core': 10.11.1(vue@3.5.17(typescript@5.8.3))
3171
+
'@vueuse/core': 10.11.1(vue@3.5.18(typescript@5.8.3))
3180
3172
cva: 1.0.0-beta.2(typescript@5.8.3)
3181
3173
nanoid: 5.1.5
3182
3174
pretty-bytes: 6.1.1
3183
-
radix-vue: 1.9.17(vue@3.5.17(typescript@5.8.3))
3184
-
vue: 3.5.17(typescript@5.8.3)
3175
+
radix-vue: 1.9.17(vue@3.5.18(typescript@5.8.3))
3176
+
vue: 3.5.18(typescript@5.8.3)
3185
3177
transitivePeerDependencies:
3186
3178
- '@vue/composition-api'
3187
3179
- supports-color
3188
3180
- typescript
3189
3181
3190
-
'@scalar/core@0.3.7':
3182
+
'@scalar/core@0.3.10':
3191
3183
dependencies:
3192
-
'@scalar/types': 0.2.7
3184
+
'@scalar/types': 0.2.10
3193
3185
3194
3186
'@scalar/helpers@0.0.6': {}
3195
3187
3196
-
'@scalar/hono-api-reference@0.9.9(hono@4.8.4)':
3188
+
'@scalar/hono-api-reference@0.9.12(hono@4.8.5)':
3197
3189
dependencies:
3198
-
'@scalar/core': 0.3.7
3199
-
hono: 4.8.4
3190
+
'@scalar/core': 0.3.10
3191
+
hono: 4.8.5
3200
3192
3201
3193
'@scalar/icons@0.4.6(typescript@5.8.3)':
3202
3194
dependencies:
3203
3195
'@phosphor-icons/core': 2.1.1
3204
-
'@types/node': 22.16.2
3196
+
'@types/node': 22.16.5
3205
3197
chalk: 5.4.1
3206
-
vue: 3.5.17(typescript@5.8.3)
3198
+
vue: 3.5.18(typescript@5.8.3)
3207
3199
transitivePeerDependencies:
3208
3200
- typescript
3209
3201
3210
3202
'@scalar/json-diff@0.0.4': {}
3211
3203
3212
-
'@scalar/oas-utils@0.4.11(typescript@5.8.3)':
3204
+
'@scalar/oas-utils@0.4.15(typescript@5.8.3)':
3213
3205
dependencies:
3214
3206
'@hyperjump/browser': 1.3.1
3215
-
'@hyperjump/json-schema': 1.16.1(@hyperjump/browser@1.3.1)
3207
+
'@hyperjump/json-schema': 1.16.2(@hyperjump/browser@1.3.1)
3216
3208
'@scalar/helpers': 0.0.6
3217
3209
'@scalar/object-utils': 1.2.2
3218
-
'@scalar/openapi-types': 0.3.5
3219
-
'@scalar/themes': 0.13.8
3220
-
'@scalar/types': 0.2.7
3221
-
'@scalar/workspace-store': 0.8.0(typescript@5.8.3)
3210
+
'@scalar/openapi-types': 0.3.6
3211
+
'@scalar/themes': 0.13.11
3212
+
'@scalar/types': 0.2.10
3213
+
'@scalar/workspace-store': 0.10.2(typescript@5.8.3)
3222
3214
'@types/har-format': 1.2.16
3223
3215
flatted: 3.3.3
3224
3216
microdiff: 1.5.0
···
3237
3229
ts-deepmerge: 7.0.3
3238
3230
type-fest: 4.41.0
3239
3231
3240
-
'@scalar/openapi-parser@0.18.1':
3232
+
'@scalar/openapi-parser@0.18.2':
3241
3233
dependencies:
3242
3234
ajv: 8.17.1
3243
3235
ajv-draft-04: 1.0.0(ajv@8.17.1)
···
3246
3238
leven: 4.0.0
3247
3239
yaml: 2.8.0
3248
3240
3249
-
'@scalar/openapi-to-markdown@0.2.19(typescript@5.8.3)':
3241
+
'@scalar/openapi-to-markdown@0.2.23(typescript@5.8.3)':
3250
3242
dependencies:
3251
-
'@scalar/components': 0.14.16(typescript@5.8.3)
3252
-
'@scalar/oas-utils': 0.4.11(typescript@5.8.3)
3253
-
'@scalar/openapi-parser': 0.18.1
3254
-
'@scalar/openapi-types': 0.3.5
3255
-
'@scalar/snippetz': 0.4.0
3256
-
'@scalar/types': 0.2.7
3243
+
'@scalar/components': 0.14.20(typescript@5.8.3)
3244
+
'@scalar/oas-utils': 0.4.15(typescript@5.8.3)
3245
+
'@scalar/openapi-parser': 0.18.2
3246
+
'@scalar/openapi-types': 0.3.6
3247
+
'@scalar/snippetz': 0.4.3
3248
+
'@scalar/types': 0.2.10
3257
3249
html-minifier-terser: 7.2.0
3258
3250
object-to-xml: 2.0.0
3259
3251
rehype-parse: 9.0.1
···
3263
3255
remark-gfm: 4.0.1
3264
3256
remark-stringify: 11.0.0
3265
3257
unified: 11.0.5
3266
-
vue: 3.5.17(typescript@5.8.3)
3258
+
vue: 3.5.18(typescript@5.8.3)
3267
3259
transitivePeerDependencies:
3268
3260
- '@vue/composition-api'
3269
3261
- supports-color
3270
3262
- typescript
3271
3263
3272
-
'@scalar/openapi-types@0.3.5':
3264
+
'@scalar/openapi-types@0.3.6':
3273
3265
dependencies:
3274
3266
zod: 3.24.1
3275
3267
3276
-
'@scalar/snippetz@0.4.0':
3268
+
'@scalar/snippetz@0.4.3':
3277
3269
dependencies:
3278
-
'@scalar/types': 0.2.7
3270
+
'@scalar/types': 0.2.10
3279
3271
stringify-object: 5.0.0
3280
3272
3281
-
'@scalar/themes@0.13.8':
3273
+
'@scalar/themes@0.13.11':
3282
3274
dependencies:
3283
-
'@scalar/types': 0.2.7
3275
+
'@scalar/types': 0.2.10
3284
3276
nanoid: 5.1.5
3285
3277
3286
-
'@scalar/types@0.2.7':
3278
+
'@scalar/types@0.2.10':
3287
3279
dependencies:
3288
-
'@scalar/openapi-types': 0.3.5
3280
+
'@scalar/openapi-types': 0.3.6
3289
3281
nanoid: 5.1.5
3290
3282
zod: 3.24.1
3291
3283
3292
3284
'@scalar/use-hooks@0.2.4(typescript@5.8.3)':
3293
3285
dependencies:
3294
3286
'@scalar/use-toasts': 0.8.0(typescript@5.8.3)
3295
-
'@vueuse/core': 10.11.1(vue@3.5.17(typescript@5.8.3))
3287
+
'@vueuse/core': 10.11.1(vue@3.5.18(typescript@5.8.3))
3296
3288
cva: 1.0.0-beta.2(typescript@5.8.3)
3297
3289
tailwind-merge: 2.6.0
3298
-
vue: 3.5.17(typescript@5.8.3)
3290
+
vue: 3.5.18(typescript@5.8.3)
3299
3291
zod: 3.24.1
3300
3292
transitivePeerDependencies:
3301
3293
- '@vue/composition-api'
···
3304
3296
'@scalar/use-toasts@0.8.0(typescript@5.8.3)':
3305
3297
dependencies:
3306
3298
nanoid: 5.1.5
3307
-
vue: 3.5.17(typescript@5.8.3)
3299
+
vue: 3.5.18(typescript@5.8.3)
3308
3300
vue-sonner: 1.3.2
3309
3301
transitivePeerDependencies:
3310
3302
- typescript
3311
3303
3312
-
'@scalar/workspace-store@0.8.0(typescript@5.8.3)':
3304
+
'@scalar/workspace-store@0.10.2(typescript@5.8.3)':
3313
3305
dependencies:
3314
-
'@scalar/code-highlight': 0.1.5
3306
+
'@scalar/code-highlight': 0.1.8
3315
3307
'@scalar/helpers': 0.0.6
3316
3308
'@scalar/json-diff': 0.0.4
3317
-
'@scalar/openapi-parser': 0.18.1
3318
-
'@scalar/openapi-types': 0.3.5
3319
-
'@scalar/types': 0.2.7
3309
+
'@scalar/openapi-parser': 0.18.2
3310
+
'@scalar/openapi-types': 0.3.6
3311
+
'@scalar/types': 0.2.10
3320
3312
'@sinclair/typebox': 0.34.37
3321
3313
github-slugger: 2.0.0
3322
-
vue: 3.5.17(typescript@5.8.3)
3314
+
vue: 3.5.18(typescript@5.8.3)
3323
3315
yaml: 2.8.0
3324
3316
transitivePeerDependencies:
3325
3317
- supports-color
···
3327
3319
3328
3320
'@sinclair/typebox@0.34.37': {}
3329
3321
3330
-
'@skyware/jetstream@0.2.4':
3322
+
'@skyware/jetstream@0.2.5':
3331
3323
dependencies:
3332
-
'@atcute/atproto': 3.1.0
3333
-
'@atcute/bluesky': 3.1.4
3324
+
'@atcute/atproto': 3.1.1
3325
+
'@atcute/bluesky': 3.1.5
3334
3326
'@atcute/lexicons': 1.1.0
3335
3327
partysocket: 1.1.4
3336
3328
tiny-emitter: 2.1.0
···
3341
3333
3342
3334
'@tanstack/virtual-core@3.13.12': {}
3343
3335
3344
-
'@tanstack/vue-virtual@3.13.12(vue@3.5.17(typescript@5.8.3))':
3336
+
'@tanstack/vue-virtual@3.13.12(vue@3.5.18(typescript@5.8.3))':
3345
3337
dependencies:
3346
3338
'@tanstack/virtual-core': 3.13.12
3347
-
vue: 3.5.17(typescript@5.8.3)
3339
+
vue: 3.5.18(typescript@5.8.3)
3348
3340
3349
3341
'@types/debug@4.1.12':
3350
3342
dependencies:
···
3368
3360
3369
3361
'@types/ms@2.1.0': {}
3370
3362
3371
-
'@types/node@22.16.2':
3363
+
'@types/node@22.16.5':
3372
3364
dependencies:
3373
3365
undici-types: 6.21.0
3374
3366
3375
-
'@types/node@24.0.12':
3367
+
'@types/node@24.1.0':
3376
3368
dependencies:
3377
3369
undici-types: 7.8.0
3378
3370
···
3384
3376
3385
3377
'@types/ws@8.18.1':
3386
3378
dependencies:
3387
-
'@types/node': 24.0.12
3379
+
'@types/node': 24.1.0
3388
3380
3389
-
'@typescript-eslint/eslint-plugin@8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)':
3381
+
'@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)':
3390
3382
dependencies:
3391
3383
'@eslint-community/regexpp': 4.12.1
3392
-
'@typescript-eslint/parser': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
3393
-
'@typescript-eslint/scope-manager': 8.36.0
3394
-
'@typescript-eslint/type-utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
3395
-
'@typescript-eslint/utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
3396
-
'@typescript-eslint/visitor-keys': 8.36.0
3397
-
eslint: 9.30.1(jiti@2.4.2)
3384
+
'@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)
3385
+
'@typescript-eslint/scope-manager': 8.38.0
3386
+
'@typescript-eslint/type-utils': 8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)
3387
+
'@typescript-eslint/utils': 8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)
3388
+
'@typescript-eslint/visitor-keys': 8.38.0
3389
+
eslint: 9.31.0(jiti@2.4.2)
3398
3390
graphemer: 1.4.0
3399
3391
ignore: 7.0.5
3400
3392
natural-compare: 1.4.0
···
3403
3395
transitivePeerDependencies:
3404
3396
- supports-color
3405
3397
3406
-
'@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)':
3398
+
'@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)':
3407
3399
dependencies:
3408
-
'@typescript-eslint/scope-manager': 8.36.0
3409
-
'@typescript-eslint/types': 8.36.0
3410
-
'@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3)
3411
-
'@typescript-eslint/visitor-keys': 8.36.0
3400
+
'@typescript-eslint/scope-manager': 8.38.0
3401
+
'@typescript-eslint/types': 8.38.0
3402
+
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
3403
+
'@typescript-eslint/visitor-keys': 8.38.0
3412
3404
debug: 4.4.1
3413
-
eslint: 9.30.1(jiti@2.4.2)
3405
+
eslint: 9.31.0(jiti@2.4.2)
3414
3406
typescript: 5.8.3
3415
3407
transitivePeerDependencies:
3416
3408
- supports-color
3417
3409
3418
-
'@typescript-eslint/project-service@8.36.0(typescript@5.8.3)':
3410
+
'@typescript-eslint/project-service@8.38.0(typescript@5.8.3)':
3419
3411
dependencies:
3420
-
'@typescript-eslint/tsconfig-utils': 8.36.0(typescript@5.8.3)
3421
-
'@typescript-eslint/types': 8.36.0
3412
+
'@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3)
3413
+
'@typescript-eslint/types': 8.38.0
3422
3414
debug: 4.4.1
3423
3415
typescript: 5.8.3
3424
3416
transitivePeerDependencies:
3425
3417
- supports-color
3426
3418
3427
-
'@typescript-eslint/scope-manager@8.36.0':
3419
+
'@typescript-eslint/scope-manager@8.38.0':
3428
3420
dependencies:
3429
-
'@typescript-eslint/types': 8.36.0
3430
-
'@typescript-eslint/visitor-keys': 8.36.0
3421
+
'@typescript-eslint/types': 8.38.0
3422
+
'@typescript-eslint/visitor-keys': 8.38.0
3431
3423
3432
-
'@typescript-eslint/tsconfig-utils@8.36.0(typescript@5.8.3)':
3424
+
'@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.8.3)':
3433
3425
dependencies:
3434
3426
typescript: 5.8.3
3435
3427
3436
-
'@typescript-eslint/type-utils@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)':
3428
+
'@typescript-eslint/type-utils@8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)':
3437
3429
dependencies:
3438
-
'@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3)
3439
-
'@typescript-eslint/utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
3430
+
'@typescript-eslint/types': 8.38.0
3431
+
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
3432
+
'@typescript-eslint/utils': 8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)
3440
3433
debug: 4.4.1
3441
-
eslint: 9.30.1(jiti@2.4.2)
3434
+
eslint: 9.31.0(jiti@2.4.2)
3442
3435
ts-api-utils: 2.1.0(typescript@5.8.3)
3443
3436
typescript: 5.8.3
3444
3437
transitivePeerDependencies:
3445
3438
- supports-color
3446
3439
3447
-
'@typescript-eslint/types@8.36.0': {}
3440
+
'@typescript-eslint/types@8.38.0': {}
3448
3441
3449
-
'@typescript-eslint/typescript-estree@8.36.0(typescript@5.8.3)':
3442
+
'@typescript-eslint/typescript-estree@8.38.0(typescript@5.8.3)':
3450
3443
dependencies:
3451
-
'@typescript-eslint/project-service': 8.36.0(typescript@5.8.3)
3452
-
'@typescript-eslint/tsconfig-utils': 8.36.0(typescript@5.8.3)
3453
-
'@typescript-eslint/types': 8.36.0
3454
-
'@typescript-eslint/visitor-keys': 8.36.0
3444
+
'@typescript-eslint/project-service': 8.38.0(typescript@5.8.3)
3445
+
'@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3)
3446
+
'@typescript-eslint/types': 8.38.0
3447
+
'@typescript-eslint/visitor-keys': 8.38.0
3455
3448
debug: 4.4.1
3456
3449
fast-glob: 3.3.3
3457
3450
is-glob: 4.0.3
···
3462
3455
transitivePeerDependencies:
3463
3456
- supports-color
3464
3457
3465
-
'@typescript-eslint/utils@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)':
3458
+
'@typescript-eslint/utils@8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)':
3466
3459
dependencies:
3467
-
'@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2))
3468
-
'@typescript-eslint/scope-manager': 8.36.0
3469
-
'@typescript-eslint/types': 8.36.0
3470
-
'@typescript-eslint/typescript-estree': 8.36.0(typescript@5.8.3)
3471
-
eslint: 9.30.1(jiti@2.4.2)
3460
+
'@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2))
3461
+
'@typescript-eslint/scope-manager': 8.38.0
3462
+
'@typescript-eslint/types': 8.38.0
3463
+
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
3464
+
eslint: 9.31.0(jiti@2.4.2)
3472
3465
typescript: 5.8.3
3473
3466
transitivePeerDependencies:
3474
3467
- supports-color
3475
3468
3476
-
'@typescript-eslint/visitor-keys@8.36.0':
3469
+
'@typescript-eslint/visitor-keys@8.38.0':
3477
3470
dependencies:
3478
-
'@typescript-eslint/types': 8.36.0
3471
+
'@typescript-eslint/types': 8.38.0
3479
3472
eslint-visitor-keys: 4.2.1
3480
3473
3481
3474
'@ungap/structured-clone@1.3.0': {}
3482
3475
3483
-
'@vue/compiler-core@3.5.17':
3476
+
'@vue/compiler-core@3.5.18':
3484
3477
dependencies:
3485
3478
'@babel/parser': 7.28.0
3486
-
'@vue/shared': 3.5.17
3479
+
'@vue/shared': 3.5.18
3487
3480
entities: 4.5.0
3488
3481
estree-walker: 2.0.2
3489
3482
source-map-js: 1.2.1
3490
3483
3491
-
'@vue/compiler-dom@3.5.17':
3484
+
'@vue/compiler-dom@3.5.18':
3492
3485
dependencies:
3493
-
'@vue/compiler-core': 3.5.17
3494
-
'@vue/shared': 3.5.17
3486
+
'@vue/compiler-core': 3.5.18
3487
+
'@vue/shared': 3.5.18
3495
3488
3496
-
'@vue/compiler-sfc@3.5.17':
3489
+
'@vue/compiler-sfc@3.5.18':
3497
3490
dependencies:
3498
3491
'@babel/parser': 7.28.0
3499
-
'@vue/compiler-core': 3.5.17
3500
-
'@vue/compiler-dom': 3.5.17
3501
-
'@vue/compiler-ssr': 3.5.17
3502
-
'@vue/shared': 3.5.17
3492
+
'@vue/compiler-core': 3.5.18
3493
+
'@vue/compiler-dom': 3.5.18
3494
+
'@vue/compiler-ssr': 3.5.18
3495
+
'@vue/shared': 3.5.18
3503
3496
estree-walker: 2.0.2
3504
3497
magic-string: 0.30.17
3505
3498
postcss: 8.5.6
3506
3499
source-map-js: 1.2.1
3507
3500
3508
-
'@vue/compiler-ssr@3.5.17':
3501
+
'@vue/compiler-ssr@3.5.18':
3509
3502
dependencies:
3510
-
'@vue/compiler-dom': 3.5.17
3511
-
'@vue/shared': 3.5.17
3503
+
'@vue/compiler-dom': 3.5.18
3504
+
'@vue/shared': 3.5.18
3512
3505
3513
-
'@vue/reactivity@3.5.17':
3506
+
'@vue/reactivity@3.5.18':
3514
3507
dependencies:
3515
-
'@vue/shared': 3.5.17
3508
+
'@vue/shared': 3.5.18
3516
3509
3517
-
'@vue/runtime-core@3.5.17':
3510
+
'@vue/runtime-core@3.5.18':
3518
3511
dependencies:
3519
-
'@vue/reactivity': 3.5.17
3520
-
'@vue/shared': 3.5.17
3512
+
'@vue/reactivity': 3.5.18
3513
+
'@vue/shared': 3.5.18
3521
3514
3522
-
'@vue/runtime-dom@3.5.17':
3515
+
'@vue/runtime-dom@3.5.18':
3523
3516
dependencies:
3524
-
'@vue/reactivity': 3.5.17
3525
-
'@vue/runtime-core': 3.5.17
3526
-
'@vue/shared': 3.5.17
3517
+
'@vue/reactivity': 3.5.18
3518
+
'@vue/runtime-core': 3.5.18
3519
+
'@vue/shared': 3.5.18
3527
3520
csstype: 3.1.3
3528
3521
3529
-
'@vue/server-renderer@3.5.17(vue@3.5.17(typescript@5.8.3))':
3522
+
'@vue/server-renderer@3.5.18(vue@3.5.18(typescript@5.8.3))':
3530
3523
dependencies:
3531
-
'@vue/compiler-ssr': 3.5.17
3532
-
'@vue/shared': 3.5.17
3533
-
vue: 3.5.17(typescript@5.8.3)
3524
+
'@vue/compiler-ssr': 3.5.18
3525
+
'@vue/shared': 3.5.18
3526
+
vue: 3.5.18(typescript@5.8.3)
3534
3527
3535
-
'@vue/shared@3.5.17': {}
3528
+
'@vue/shared@3.5.18': {}
3536
3529
3537
-
'@vueuse/core@10.11.1(vue@3.5.17(typescript@5.8.3))':
3530
+
'@vueuse/core@10.11.1(vue@3.5.18(typescript@5.8.3))':
3538
3531
dependencies:
3539
3532
'@types/web-bluetooth': 0.0.20
3540
3533
'@vueuse/metadata': 10.11.1
3541
-
'@vueuse/shared': 10.11.1(vue@3.5.17(typescript@5.8.3))
3542
-
vue-demi: 0.14.10(vue@3.5.17(typescript@5.8.3))
3534
+
'@vueuse/shared': 10.11.1(vue@3.5.18(typescript@5.8.3))
3535
+
vue-demi: 0.14.10(vue@3.5.18(typescript@5.8.3))
3543
3536
transitivePeerDependencies:
3544
3537
- '@vue/composition-api'
3545
3538
- vue
3546
3539
3547
3540
'@vueuse/metadata@10.11.1': {}
3548
3541
3549
-
'@vueuse/shared@10.11.1(vue@3.5.17(typescript@5.8.3))':
3542
+
'@vueuse/shared@10.11.1(vue@3.5.18(typescript@5.8.3))':
3550
3543
dependencies:
3551
-
vue-demi: 0.14.10(vue@3.5.17(typescript@5.8.3))
3544
+
vue-demi: 0.14.10(vue@3.5.18(typescript@5.8.3))
3552
3545
transitivePeerDependencies:
3553
3546
- '@vue/composition-api'
3554
3547
- vue
···
3670
3663
3671
3664
bun-types@1.2.17:
3672
3665
dependencies:
3673
-
'@types/node': 24.0.12
3666
+
'@types/node': 24.1.0
3674
3667
optional: true
3675
3668
3676
3669
call-bind-apply-helpers@1.0.2:
···
3842
3835
dependencies:
3843
3836
'@drizzle-team/brocli': 0.10.2
3844
3837
'@esbuild-kit/esm-loader': 2.6.5
3845
-
esbuild: 0.25.6
3846
-
esbuild-register: 3.6.0(esbuild@0.25.6)
3838
+
esbuild: 0.25.8
3839
+
esbuild-register: 3.6.0(esbuild@0.25.8)
3847
3840
transitivePeerDependencies:
3848
3841
- supports-color
3849
3842
3850
-
drizzle-orm@0.44.2(@libsql/client@0.15.9)(bun-types@1.2.17):
3843
+
drizzle-orm@0.44.3(@libsql/client@0.15.10)(bun-types@1.2.17):
3851
3844
optionalDependencies:
3852
-
'@libsql/client': 0.15.9
3845
+
'@libsql/client': 0.15.10
3853
3846
bun-types: 1.2.17
3854
3847
3855
3848
dunder-proto@1.0.1:
···
3946
3939
is-date-object: 1.1.0
3947
3940
is-symbol: 1.1.1
3948
3941
3949
-
esbuild-register@3.6.0(esbuild@0.25.6):
3942
+
esbuild-register@3.6.0(esbuild@0.25.8):
3950
3943
dependencies:
3951
3944
debug: 4.4.1
3952
-
esbuild: 0.25.6
3945
+
esbuild: 0.25.8
3953
3946
transitivePeerDependencies:
3954
3947
- supports-color
3955
3948
···
3978
3971
'@esbuild/win32-ia32': 0.18.20
3979
3972
'@esbuild/win32-x64': 0.18.20
3980
3973
3981
-
esbuild@0.25.6:
3974
+
esbuild@0.25.8:
3982
3975
optionalDependencies:
3983
-
'@esbuild/aix-ppc64': 0.25.6
3984
-
'@esbuild/android-arm': 0.25.6
3985
-
'@esbuild/android-arm64': 0.25.6
3986
-
'@esbuild/android-x64': 0.25.6
3987
-
'@esbuild/darwin-arm64': 0.25.6
3988
-
'@esbuild/darwin-x64': 0.25.6
3989
-
'@esbuild/freebsd-arm64': 0.25.6
3990
-
'@esbuild/freebsd-x64': 0.25.6
3991
-
'@esbuild/linux-arm': 0.25.6
3992
-
'@esbuild/linux-arm64': 0.25.6
3993
-
'@esbuild/linux-ia32': 0.25.6
3994
-
'@esbuild/linux-loong64': 0.25.6
3995
-
'@esbuild/linux-mips64el': 0.25.6
3996
-
'@esbuild/linux-ppc64': 0.25.6
3997
-
'@esbuild/linux-riscv64': 0.25.6
3998
-
'@esbuild/linux-s390x': 0.25.6
3999
-
'@esbuild/linux-x64': 0.25.6
4000
-
'@esbuild/netbsd-arm64': 0.25.6
4001
-
'@esbuild/netbsd-x64': 0.25.6
4002
-
'@esbuild/openbsd-arm64': 0.25.6
4003
-
'@esbuild/openbsd-x64': 0.25.6
4004
-
'@esbuild/openharmony-arm64': 0.25.6
4005
-
'@esbuild/sunos-x64': 0.25.6
4006
-
'@esbuild/win32-arm64': 0.25.6
4007
-
'@esbuild/win32-ia32': 0.25.6
4008
-
'@esbuild/win32-x64': 0.25.6
3976
+
'@esbuild/aix-ppc64': 0.25.8
3977
+
'@esbuild/android-arm': 0.25.8
3978
+
'@esbuild/android-arm64': 0.25.8
3979
+
'@esbuild/android-x64': 0.25.8
3980
+
'@esbuild/darwin-arm64': 0.25.8
3981
+
'@esbuild/darwin-x64': 0.25.8
3982
+
'@esbuild/freebsd-arm64': 0.25.8
3983
+
'@esbuild/freebsd-x64': 0.25.8
3984
+
'@esbuild/linux-arm': 0.25.8
3985
+
'@esbuild/linux-arm64': 0.25.8
3986
+
'@esbuild/linux-ia32': 0.25.8
3987
+
'@esbuild/linux-loong64': 0.25.8
3988
+
'@esbuild/linux-mips64el': 0.25.8
3989
+
'@esbuild/linux-ppc64': 0.25.8
3990
+
'@esbuild/linux-riscv64': 0.25.8
3991
+
'@esbuild/linux-s390x': 0.25.8
3992
+
'@esbuild/linux-x64': 0.25.8
3993
+
'@esbuild/netbsd-arm64': 0.25.8
3994
+
'@esbuild/netbsd-x64': 0.25.8
3995
+
'@esbuild/openbsd-arm64': 0.25.8
3996
+
'@esbuild/openbsd-x64': 0.25.8
3997
+
'@esbuild/openharmony-arm64': 0.25.8
3998
+
'@esbuild/sunos-x64': 0.25.8
3999
+
'@esbuild/win32-arm64': 0.25.8
4000
+
'@esbuild/win32-ia32': 0.25.8
4001
+
'@esbuild/win32-x64': 0.25.8
4009
4002
4010
4003
escape-string-regexp@4.0.0: {}
4011
4004
4012
4005
escape-string-regexp@5.0.0: {}
4013
4006
4014
-
eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)):
4007
+
eslint-config-prettier@10.1.8(eslint@9.31.0(jiti@2.4.2)):
4015
4008
dependencies:
4016
-
eslint: 9.30.1(jiti@2.4.2)
4009
+
eslint: 9.31.0(jiti@2.4.2)
4017
4010
4018
4011
eslint-import-resolver-node@0.3.9:
4019
4012
dependencies:
···
4023
4016
transitivePeerDependencies:
4024
4017
- supports-color
4025
4018
4026
-
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.30.1(jiti@2.4.2)):
4019
+
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@2.4.2)):
4027
4020
dependencies:
4028
4021
debug: 3.2.7
4029
4022
optionalDependencies:
4030
-
'@typescript-eslint/parser': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
4031
-
eslint: 9.30.1(jiti@2.4.2)
4023
+
'@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)
4024
+
eslint: 9.31.0(jiti@2.4.2)
4032
4025
eslint-import-resolver-node: 0.3.9
4033
4026
transitivePeerDependencies:
4034
4027
- supports-color
4035
4028
4036
-
eslint-plugin-drizzle@0.2.3(eslint@9.30.1(jiti@2.4.2)):
4029
+
eslint-plugin-drizzle@0.2.3(eslint@9.31.0(jiti@2.4.2)):
4037
4030
dependencies:
4038
-
eslint: 9.30.1(jiti@2.4.2)
4031
+
eslint: 9.31.0(jiti@2.4.2)
4039
4032
4040
-
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2)):
4033
+
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2)):
4041
4034
dependencies:
4042
4035
'@rtsao/scc': 1.1.0
4043
4036
array-includes: 3.1.9
···
4046
4039
array.prototype.flatmap: 1.3.3
4047
4040
debug: 3.2.7
4048
4041
doctrine: 2.1.0
4049
-
eslint: 9.30.1(jiti@2.4.2)
4042
+
eslint: 9.31.0(jiti@2.4.2)
4050
4043
eslint-import-resolver-node: 0.3.9
4051
-
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.30.1(jiti@2.4.2))
4044
+
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@2.4.2))
4052
4045
hasown: 2.0.2
4053
4046
is-core-module: 2.16.1
4054
4047
is-glob: 4.0.3
···
4060
4053
string.prototype.trimend: 1.0.9
4061
4054
tsconfig-paths: 3.15.0
4062
4055
optionalDependencies:
4063
-
'@typescript-eslint/parser': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
4056
+
'@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)
4064
4057
transitivePeerDependencies:
4065
4058
- eslint-import-resolver-typescript
4066
4059
- eslint-import-resolver-webpack
4067
4060
- supports-color
4068
4061
4069
-
eslint-plugin-prettier@5.5.1(eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)))(eslint@9.30.1(jiti@2.4.2))(prettier@3.6.2):
4062
+
eslint-plugin-prettier@5.5.3(eslint-config-prettier@10.1.8(eslint@9.31.0(jiti@2.4.2)))(eslint@9.31.0(jiti@2.4.2))(prettier@3.6.2):
4070
4063
dependencies:
4071
-
eslint: 9.30.1(jiti@2.4.2)
4064
+
eslint: 9.31.0(jiti@2.4.2)
4072
4065
prettier: 3.6.2
4073
4066
prettier-linter-helpers: 1.0.0
4074
-
synckit: 0.11.8
4067
+
synckit: 0.11.11
4075
4068
optionalDependencies:
4076
-
eslint-config-prettier: 10.1.5(eslint@9.30.1(jiti@2.4.2))
4069
+
eslint-config-prettier: 10.1.8(eslint@9.31.0(jiti@2.4.2))
4077
4070
4078
4071
eslint-scope@8.4.0:
4079
4072
dependencies:
···
4084
4077
4085
4078
eslint-visitor-keys@4.2.1: {}
4086
4079
4087
-
eslint@9.30.1(jiti@2.4.2):
4080
+
eslint@9.31.0(jiti@2.4.2):
4088
4081
dependencies:
4089
-
'@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2))
4082
+
'@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@2.4.2))
4090
4083
'@eslint-community/regexpp': 4.12.1
4091
4084
'@eslint/config-array': 0.21.0
4092
4085
'@eslint/config-helpers': 0.3.0
4093
-
'@eslint/core': 0.14.0
4086
+
'@eslint/core': 0.15.1
4094
4087
'@eslint/eslintrc': 3.3.1
4095
-
'@eslint/js': 9.30.1
4096
-
'@eslint/plugin-kit': 0.3.3
4088
+
'@eslint/js': 9.31.0
4089
+
'@eslint/plugin-kit': 0.3.4
4097
4090
'@humanfs/node': 0.16.6
4098
4091
'@humanwhocodes/module-importer': 1.0.1
4099
4092
'@humanwhocodes/retry': 0.4.3
···
4457
4450
4458
4451
highlightjs-vue@1.0.0: {}
4459
4452
4460
-
hono@4.8.4: {}
4453
+
hono@4.8.5: {}
4461
4454
4462
4455
html-minifier-terser@7.2.0:
4463
4456
dependencies:
···
4656
4649
prelude-ls: 1.2.1
4657
4650
type-check: 0.4.0
4658
4651
4659
-
libsql@0.5.13:
4652
+
libsql@0.5.16:
4660
4653
dependencies:
4661
4654
'@neon-rs/load': 0.0.4
4662
4655
detect-libc: 2.0.2
4663
4656
optionalDependencies:
4664
-
'@libsql/darwin-arm64': 0.5.13
4665
-
'@libsql/darwin-x64': 0.5.13
4666
-
'@libsql/linux-arm-gnueabihf': 0.5.13
4667
-
'@libsql/linux-arm-musleabihf': 0.5.13
4668
-
'@libsql/linux-arm64-gnu': 0.5.13
4669
-
'@libsql/linux-arm64-musl': 0.5.13
4670
-
'@libsql/linux-x64-gnu': 0.5.13
4671
-
'@libsql/linux-x64-musl': 0.5.13
4672
-
'@libsql/win32-x64-msvc': 0.5.13
4657
+
'@libsql/darwin-arm64': 0.5.16
4658
+
'@libsql/darwin-x64': 0.5.16
4659
+
'@libsql/linux-arm-gnueabihf': 0.5.16
4660
+
'@libsql/linux-arm-musleabihf': 0.5.16
4661
+
'@libsql/linux-arm64-gnu': 0.5.16
4662
+
'@libsql/linux-arm64-musl': 0.5.16
4663
+
'@libsql/linux-x64-gnu': 0.5.16
4664
+
'@libsql/linux-x64-musl': 0.5.16
4665
+
'@libsql/win32-x64-msvc': 0.5.16
4673
4666
4674
4667
locate-path@6.0.0:
4675
4668
dependencies:
···
5177
5170
5178
5171
queue-microtask@1.2.3: {}
5179
5172
5180
-
radix-vue@1.9.17(vue@3.5.17(typescript@5.8.3)):
5173
+
radix-vue@1.9.17(vue@3.5.18(typescript@5.8.3)):
5181
5174
dependencies:
5182
5175
'@floating-ui/dom': 1.7.2
5183
-
'@floating-ui/vue': 1.1.7(vue@3.5.17(typescript@5.8.3))
5176
+
'@floating-ui/vue': 1.1.7(vue@3.5.18(typescript@5.8.3))
5184
5177
'@internationalized/date': 3.8.2
5185
-
'@internationalized/number': 3.6.3
5186
-
'@tanstack/vue-virtual': 3.13.12(vue@3.5.17(typescript@5.8.3))
5187
-
'@vueuse/core': 10.11.1(vue@3.5.17(typescript@5.8.3))
5188
-
'@vueuse/shared': 10.11.1(vue@3.5.17(typescript@5.8.3))
5178
+
'@internationalized/number': 3.6.4
5179
+
'@tanstack/vue-virtual': 3.13.12(vue@3.5.18(typescript@5.8.3))
5180
+
'@vueuse/core': 10.11.1(vue@3.5.18(typescript@5.8.3))
5181
+
'@vueuse/shared': 10.11.1(vue@3.5.18(typescript@5.8.3))
5189
5182
aria-hidden: 1.2.6
5190
5183
defu: 6.1.4
5191
5184
fast-deep-equal: 3.1.3
5192
5185
nanoid: 5.1.5
5193
-
vue: 3.5.17(typescript@5.8.3)
5186
+
vue: 3.5.18(typescript@5.8.3)
5194
5187
transitivePeerDependencies:
5195
5188
- '@vue/composition-api'
5196
5189
···
5479
5472
5480
5473
supports-preserve-symlinks-flag@1.0.0: {}
5481
5474
5482
-
synckit@0.11.8:
5475
+
synckit@0.11.11:
5483
5476
dependencies:
5484
-
'@pkgr/core': 0.2.7
5477
+
'@pkgr/core': 0.2.9
5485
5478
5486
5479
tailwind-merge@2.6.0: {}
5487
5480
···
5527
5520
5528
5521
tsx@4.20.3:
5529
5522
dependencies:
5530
-
esbuild: 0.25.6
5523
+
esbuild: 0.25.8
5531
5524
get-tsconfig: 4.10.1
5532
5525
optionalDependencies:
5533
5526
fsevents: 2.3.3
···
5571
5564
possible-typed-array-names: 1.1.0
5572
5565
reflect.getprototypeof: 1.0.10
5573
5566
5574
-
typescript-eslint@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3):
5567
+
typescript-eslint@8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3):
5575
5568
dependencies:
5576
-
'@typescript-eslint/eslint-plugin': 8.36.0(@typescript-eslint/parser@8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
5577
-
'@typescript-eslint/parser': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
5578
-
'@typescript-eslint/utils': 8.36.0(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)
5579
-
eslint: 9.30.1(jiti@2.4.2)
5569
+
'@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)
5570
+
'@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)
5571
+
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
5572
+
'@typescript-eslint/utils': 8.38.0(eslint@9.31.0(jiti@2.4.2))(typescript@5.8.3)
5573
+
eslint: 9.31.0(jiti@2.4.2)
5580
5574
typescript: 5.8.3
5581
5575
transitivePeerDependencies:
5582
5576
- supports-color
···
5655
5649
'@types/unist': 3.0.3
5656
5650
vfile-message: 4.0.2
5657
5651
5658
-
vue-demi@0.14.10(vue@3.5.17(typescript@5.8.3)):
5652
+
vue-demi@0.14.10(vue@3.5.18(typescript@5.8.3)):
5659
5653
dependencies:
5660
-
vue: 3.5.17(typescript@5.8.3)
5654
+
vue: 3.5.18(typescript@5.8.3)
5661
5655
5662
5656
vue-sonner@1.3.2: {}
5663
5657
5664
-
vue@3.5.17(typescript@5.8.3):
5658
+
vue@3.5.18(typescript@5.8.3):
5665
5659
dependencies:
5666
-
'@vue/compiler-dom': 3.5.17
5667
-
'@vue/compiler-sfc': 3.5.17
5668
-
'@vue/runtime-dom': 3.5.17
5669
-
'@vue/server-renderer': 3.5.17(vue@3.5.17(typescript@5.8.3))
5670
-
'@vue/shared': 3.5.17
5660
+
'@vue/compiler-dom': 3.5.18
5661
+
'@vue/compiler-sfc': 3.5.18
5662
+
'@vue/runtime-dom': 3.5.18
5663
+
'@vue/server-renderer': 3.5.18(vue@3.5.18(typescript@5.8.3))
5664
+
'@vue/shared': 3.5.18
5671
5665
optionalDependencies:
5672
5666
typescript: 5.8.3
5673
5667
+123
backend/src/api/feed.ts
+123
backend/src/api/feed.ts
···
1
+
/*
2
+
* clippr: a social bookmarking service for the AT Protocol
3
+
* Copyright (c) 2025 clippr contributors.
4
+
* SPDX-License-Identifier: AGPL-3.0-only
5
+
*/
6
+
7
+
import {
8
+
SocialClipprActorDefs,
9
+
SocialClipprFeedClip,
10
+
SocialClipprFeedDefs,
11
+
} from "@clipprjs/lexicons";
12
+
import type { ClipViewQuery, ErrorResponse, TagRef } from "./types.js";
13
+
import { getHandleFromDid } from "../network/converters.js";
14
+
import { Database } from "../db/database.js";
15
+
import { clipsTable } from "../db/schema.js";
16
+
import { and, eq } from "drizzle-orm";
17
+
import { createProfileView } from "./profile.js";
18
+
import { is } from "@atcute/lexicons";
19
+
import { validateHash } from "../hasher.js";
20
+
21
+
const db = Database.getInstance().getDb();
22
+
23
+
export async function createClipView(
24
+
query: ClipViewQuery,
25
+
): Promise<SocialClipprFeedDefs.ClipView | ErrorResponse> {
26
+
if (!query.did.startsWith("did:")) {
27
+
let did;
28
+
try {
29
+
did = await getHandleFromDid(query.did);
30
+
} catch (e: unknown) {
31
+
if (e instanceof Error) {
32
+
return {
33
+
error: "InvalidRequest",
34
+
message: `Error: A queried URI does not have a valid DID or handle: ${e.message}`,
35
+
};
36
+
} else {
37
+
return {
38
+
error: "InvalidRequest",
39
+
message:
40
+
"Error: A queried URI does not have a valid DID or handle: unknown error",
41
+
};
42
+
}
43
+
}
44
+
query.did = did;
45
+
}
46
+
47
+
if (query.collection !== "social.clippr.feed.clip") {
48
+
return {
49
+
error: "InvalidRequest",
50
+
message: "Error: A queried URI is not a proper clip",
51
+
};
52
+
}
53
+
54
+
const dbQuery = await db
55
+
.selectDistinct()
56
+
.from(clipsTable)
57
+
.where(
58
+
and(
59
+
eq(clipsTable.did, query.did),
60
+
eq(clipsTable.recordKey, query.recordKey),
61
+
),
62
+
);
63
+
64
+
if (dbQuery.length === 0) {
65
+
return {
66
+
error: "InvalidRequest",
67
+
message: "Could not find a given URI",
68
+
};
69
+
}
70
+
71
+
// Yes, the array thing is not ideal.
72
+
if (!dbQuery[0]?.cid) {
73
+
return {
74
+
error: "InvalidRequest",
75
+
message: "Could not find a given URI",
76
+
};
77
+
}
78
+
79
+
if (!(await validateHash(dbQuery[0]?.url, query.recordKey))) {
80
+
return {
81
+
error: "InvalidRequest",
82
+
message: "Could not find a given URI",
83
+
};
84
+
}
85
+
86
+
const authorView: ErrorResponse | SocialClipprActorDefs.ProfileView =
87
+
await createProfileView(query.did);
88
+
89
+
if (!is(SocialClipprActorDefs.profileViewSchema, authorView)) {
90
+
console.log(authorView);
91
+
return {
92
+
error: "InvalidRequest",
93
+
message: "Could not validate profile view", // I can't get the error message, it seems to always assume the type is the ProfileView
94
+
} as ErrorResponse;
95
+
}
96
+
97
+
let clipTags: TagRef[] | undefined;
98
+
99
+
if (dbQuery[0]?.tags === null) {
100
+
clipTags = undefined;
101
+
}
102
+
103
+
const clipRecord: SocialClipprFeedClip.Main = {
104
+
$type: "social.clippr.feed.clip",
105
+
url: dbQuery[0]?.url as `${string}:${string}`,
106
+
title: dbQuery[0]?.title,
107
+
description: dbQuery[0]?.description,
108
+
tags: clipTags || undefined,
109
+
unlisted: dbQuery[0]?.unlisted,
110
+
unread: dbQuery[0]?.unread || undefined,
111
+
notes: dbQuery[0]?.notes || undefined,
112
+
languages: dbQuery[0]?.languages || undefined,
113
+
createdAt: dbQuery[0]?.createdAt.toISOString(),
114
+
};
115
+
116
+
return {
117
+
cid: dbQuery[0]?.cid,
118
+
uri: `at://${query.did}/${query.collection}/${query.recordKey}`,
119
+
author: authorView,
120
+
record: clipRecord,
121
+
indexedAt: dbQuery[0]?.indexedAt.toISOString(),
122
+
};
123
+
}
+101
backend/src/api/profile.ts
+101
backend/src/api/profile.ts
···
1
+
/*
2
+
* clippr: a social bookmarking service for the AT Protocol
3
+
* Copyright (c) 2025 clippr contributors.
4
+
* SPDX-License-Identifier: AGPL-3.0-only
5
+
*/
6
+
7
+
import { SocialClipprActorDefs } from "@clipprjs/lexicons";
8
+
import type { ErrorResponse } from "./types.js";
9
+
import { getDidFromHandle, getHandleFromDid } from "../network/converters.js";
10
+
import { Database } from "../db/database.js";
11
+
import { usersTable } from "../db/schema.js";
12
+
import { eq } from "drizzle-orm";
13
+
14
+
const db = Database.getInstance().getDb();
15
+
16
+
// TODO: Stop leeching off the Bluesky CDN and get the blob directly from the user's PDS
17
+
//
18
+
// Get a CDN URI from a blob's CID
19
+
export async function createAvatarLink(
20
+
did: string,
21
+
cid: string,
22
+
): Promise<string> {
23
+
return `https://cdn.bsky.app/img/avatar/plain/${did}/${cid}`;
24
+
}
25
+
26
+
export async function createProfileView(
27
+
actor: string,
28
+
): Promise<SocialClipprActorDefs.ProfileView | ErrorResponse> {
29
+
let viewHandle;
30
+
let viewDid;
31
+
32
+
if (actor.startsWith("did:")) {
33
+
viewDid = actor;
34
+
try {
35
+
viewHandle = await getHandleFromDid(viewDid);
36
+
viewHandle = viewHandle.replace("at://", "");
37
+
} catch (e: unknown) {
38
+
if (e instanceof Error) {
39
+
return {
40
+
error: "InvalidRequest",
41
+
message: `Error: A queried URI does not have a valid DID or handle: ${e.message}`,
42
+
};
43
+
} else {
44
+
return {
45
+
error: "InvalidRequest",
46
+
message:
47
+
"Error: A queried URI does not have a valid DID or handle: unknown error",
48
+
};
49
+
}
50
+
}
51
+
} else {
52
+
viewHandle = actor;
53
+
viewHandle = viewHandle.replace("at://", "");
54
+
try {
55
+
viewDid = await getDidFromHandle(viewHandle);
56
+
} catch (e: unknown) {
57
+
if (e instanceof Error) {
58
+
return {
59
+
error: "InvalidRequest",
60
+
message: `Error: A queried URI does not have a valid DID or handle: ${e.message}`,
61
+
};
62
+
} else {
63
+
return {
64
+
error: "InvalidRequest",
65
+
message:
66
+
"Error: A queried URI does not have a valid DID or handle: unknown error",
67
+
};
68
+
}
69
+
}
70
+
}
71
+
72
+
const dbQuery = await db
73
+
.selectDistinct()
74
+
.from(usersTable)
75
+
.where(eq(usersTable.did, viewDid));
76
+
77
+
if (dbQuery.length === 0) {
78
+
return {
79
+
error: "InvalidRequest",
80
+
message: "Could not find a queried URI's profile",
81
+
} as ErrorResponse;
82
+
}
83
+
84
+
const avatarCid = dbQuery[0]?.avatar;
85
+
86
+
let viewAvatar;
87
+
88
+
if (avatarCid === undefined || avatarCid === null) {
89
+
viewAvatar = "https://missing.avatar";
90
+
} else viewAvatar = await createAvatarLink(viewDid, avatarCid);
91
+
92
+
return {
93
+
$type: "social.clippr.actor.defs#profileView",
94
+
did: viewDid as `did:${string}:${string}`,
95
+
handle: viewHandle as `${string}.${string}`,
96
+
avatar: (viewAvatar as `${string}:${string}`) || undefined,
97
+
createdAt: dbQuery[0]?.createdAt.toISOString(),
98
+
description: dbQuery[0]?.description || undefined,
99
+
displayName: dbQuery[0]?.displayName || viewHandle,
100
+
};
101
+
}
+38
backend/src/api/types.ts
+38
backend/src/api/types.ts
···
1
+
/*
2
+
* clippr: a social bookmarking service for the AT Protocol
3
+
* Copyright (c) 2025 clippr contributors.
4
+
* SPDX-License-Identifier: AGPL-3.0-only
5
+
*/
6
+
7
+
import type { ResourceUri } from "@atcute/lexicons";
8
+
9
+
export interface ErrorResponse {
10
+
error: string;
11
+
message: string;
12
+
}
13
+
14
+
export interface ProfileViewQuery {
15
+
actor: string;
16
+
}
17
+
18
+
export interface ClipViewQuery {
19
+
did: string;
20
+
collection: string;
21
+
recordKey: string;
22
+
}
23
+
24
+
export const isClipViewQuery = (query: unknown): query is ClipViewQuery => {
25
+
return typeof query === "object" && query !== null && "did" in query;
26
+
};
27
+
28
+
export interface TagRef {
29
+
$type: "com.atproto.repo.strongRef";
30
+
cid: string;
31
+
uri: ResourceUri;
32
+
}
33
+
34
+
export interface TagViewQuery {
35
+
did: string;
36
+
collection: string;
37
+
recordKey: string;
38
+
}
+26
-5
backend/src/db/schema.ts
+26
-5
backend/src/db/schema.ts
···
4
4
* SPDX-License-Identifier: AGPL-3.0-only
5
5
*/
6
6
7
-
// noinspection Annotator
8
-
9
7
import { int, sqliteTable, text } from "drizzle-orm/sqlite-core";
10
8
import { sql } from "drizzle-orm";
9
+
import type { TagRef } from "../api/types.js";
11
10
12
11
// WebStorm keeps throwing errors with the default statements as it wants
13
12
// an actual SQLite query, despite being valid. Sucks.
···
18
17
.default(sql`(unixepoch() * 1000)`),
19
18
did: text("did").notNull(),
20
19
recordKey: text("rkey").notNull(),
20
+
cid: text("cid").notNull(),
21
21
url: text("url").notNull(),
22
22
title: text("title").notNull(),
23
23
description: text("description").notNull(),
24
24
unlisted: int("unlisted", { mode: "boolean" }).notNull(),
25
25
notes: text("notes"),
26
26
tags: text("tags", { mode: "json" })
27
-
.$type<string[]>()
27
+
.$type<TagRef[]>()
28
28
.default(sql`'[]'`),
29
29
unread: int("unread", { mode: "boolean" }),
30
30
languages: text("languages", { mode: "json" })
···
33
33
createdAt: int("createdAt", { mode: "timestamp_ms" })
34
34
.notNull()
35
35
.default(sql`(unixepoch() * 1000)`),
36
+
indexedAt: int("indexedAt", { mode: "timestamp_ms" })
37
+
.notNull()
38
+
.default(sql`(unixepoch() * 1000)`),
36
39
});
37
40
38
41
export const tagsTable = sqliteTable("tags", {
···
42
45
.default(sql`(unixepoch() * 1000)`),
43
46
did: text("did").notNull(),
44
47
recordKey: text("rkey").notNull(),
48
+
cid: text("cid").notNull(),
45
49
name: text("name").notNull(),
50
+
description: text("description"),
46
51
color: text("color"),
47
52
createdAt: int("createdAt", { mode: "timestamp_ms" })
48
53
.notNull()
49
54
.default(sql`(unixepoch() * 1000)`),
55
+
indexedAt: int("indexedAt", { mode: "timestamp_ms" })
56
+
.notNull()
57
+
.default(sql`(unixepoch() * 1000)`),
50
58
});
51
59
52
60
export const usersTable = sqliteTable("profiles", {
···
54
62
timestamp: int("time_us", { mode: "timestamp_ms" })
55
63
.notNull()
56
64
.default(sql`(unixepoch() * 1000)`),
57
-
did: text("did").notNull(),
58
-
displayName: text("displayName"),
65
+
did: text("did").notNull().unique(),
66
+
cid: text("cid").notNull(),
67
+
displayName: text("displayName").notNull(),
59
68
description: text("description"),
60
69
avatar: text("avatar"),
61
70
createdAt: int("createdAt", { mode: "timestamp_ms" })
62
71
.notNull()
63
72
.default(sql`(unixepoch() * 1000)`),
64
73
});
74
+
75
+
export const preferencesTable = sqliteTable("preferences", {
76
+
id: int("id").primaryKey({ autoIncrement: true }),
77
+
did: text("did").notNull().unique(),
78
+
handle: text("handle").notNull(),
79
+
publishingScopesPref: text("publishingScopesPref", { mode: "json" })
80
+
.$type<string[]>()
81
+
.default(sql`'[]'`),
82
+
lastModified: int("lastModified", { mode: "timestamp_ms" })
83
+
.notNull()
84
+
.default(sql`(unixepoch() * 1000)`),
85
+
});
+21
backend/src/hasher.ts
+21
backend/src/hasher.ts
···
1
+
/*
2
+
* clippr: a social bookmarking service for the AT Protocol
3
+
* Copyright (c) 2025 clippr contributors.
4
+
* SPDX-License-Identifier: AGPL-3.0-only
5
+
*/
6
+
7
+
import xxhash from "xxhash-wasm";
8
+
9
+
/// Hash a given string into a hexadecimal xxh64 string.
10
+
export async function hashString(data: string): Promise<string> {
11
+
const { h64 } = await xxhash();
12
+
return h64(data).toString(16);
13
+
}
14
+
15
+
/// Check if a string is equivalent to a given hash.
16
+
export async function validateHash(
17
+
data: string,
18
+
hash: string,
19
+
): Promise<boolean> {
20
+
return hash === (await hashString(data));
21
+
}
+39
-21
backend/src/network/commit.ts
+39
-21
backend/src/network/commit.ts
···
16
16
import Logger from "../logger.js";
17
17
import { isBlob } from "@atcute/lexicons/interfaces";
18
18
import { validateClip, validateProfile, validateTag } from "./validator.js";
19
-
import xxhash from "xxhash-wasm";
20
19
import { convertDidToString } from "./converters.js";
20
+
import { hashString } from "../hasher.js";
21
21
22
22
const db = Database.getInstance().getDb();
23
23
···
38
38
39
39
if (event.commit.record.$type !== "social.clippr.feed.clip") {
40
40
Logger.verbose(
41
-
"Invalid type for incoming clip record",
41
+
`Mismatched type for incoming clip record (${event.did}/${event.commit.rkey})`,
42
42
event.commit.record,
43
43
);
44
44
}
45
45
46
46
if (!is(SocialClipprFeedClip.mainSchema, event.commit.record)) {
47
47
Logger.verbose(
48
-
"Invalid schema for incoming clip record",
48
+
`Invalid schema for incoming clip record (${event.did}/${event.commit.rkey})`,
49
49
event.commit.record,
50
50
);
51
51
return;
···
65
65
};
66
66
67
67
// xxh64, NOT xxh3 learned that the hard way
68
-
const { h64 } = await xxhash();
69
-
const urlHash = h64(record.url).toString(16);
68
+
const urlHash: string = await hashString(record.url);
70
69
71
70
if (urlHash !== event.commit.rkey) {
72
71
Logger.verbose(
73
-
`Record key hash (${event.commit.rkey}) does not match hash of URL (${urlHash}) in incoming clip record`,
72
+
`Record key hash (${event.commit.rkey}) does not match hash of URL (${urlHash}) in incoming clip record (${event.did})`,
74
73
event.commit.record,
75
74
);
76
75
return;
···
83
82
await db.insert(clipsTable).values({
84
83
// @ts-expect-error Weird type error despite being a normal string.
85
84
did: convertDidToString(event.did),
85
+
cid: event.commit.cid,
86
86
timestamp: convertMicroToDate(event.time_us),
87
87
recordKey: event.commit.rkey,
88
88
createdAt: new Date(record.createdAt),
89
+
indexedAt: new Date(),
89
90
url: record.url,
90
91
title: record.title,
91
92
description: record.description,
···
96
97
languages: record.languages,
97
98
});
98
99
99
-
Logger.verbose("Indexed new clip:", event.did, event.commit.rkey);
100
+
Logger.verbose(`Indexed new clip: ${event.did}/${event.commit.rkey}`, event);
100
101
}
101
102
102
103
export async function handleTag(
···
110
111
} // We currently do not handle these.
111
112
112
113
if (event.commit.record.$type !== "social.clippr.feed.tag") {
113
-
Logger.verbose("Invalid type for incoming tag record", event.commit.record);
114
+
Logger.verbose(
115
+
`Mismatched type for incoming tag record (${event.did}/${event.commit.rkey})`,
116
+
event.commit.record,
117
+
);
114
118
return;
115
119
}
116
120
117
121
if (!is(SocialClipprFeedTag.mainSchema, event.commit.record)) {
118
122
Logger.verbose(
119
-
"Invalid schema for incoming tag record",
123
+
`Invalid schema for incoming tag record (${event.did}/${event.commit.rkey})`,
120
124
event.commit.record,
121
125
);
122
126
return;
···
127
131
createdAt: event.commit.record.createdAt,
128
132
name: event.commit.record.name,
129
133
color: event.commit.record.color,
134
+
description: event.commit.record.description,
130
135
};
131
136
132
137
if (record.name !== event.commit.rkey) {
133
138
Logger.verbose(
134
-
"Record key does not match name of incoming tag record",
139
+
`Record key does not match name of incoming tag record (${event.did}/${event.commit.rkey})`,
135
140
event.commit.record,
136
141
);
137
142
return;
···
143
148
}
144
149
145
150
await db.insert(tagsTable).values({
151
+
timestamp: convertMicroToDate(event.time_us),
146
152
did: convertDidToString(event.did),
147
-
timestamp: convertMicroToDate(event.time_us),
153
+
cid: event.commit.cid,
148
154
recordKey: event.commit.rkey,
149
-
createdAt: new Date(record.createdAt),
150
155
name: record.name,
156
+
description: record.description,
151
157
color: record.color,
158
+
createdAt: new Date(record.createdAt),
159
+
indexedAt: new Date(),
152
160
});
153
161
154
-
Logger.verbose("Indexed new tag:", event.did, event.commit.rkey);
162
+
Logger.verbose(`Indexed new tag: ${event.did}/${event.commit.rkey}`, event);
155
163
}
156
164
157
165
export async function handleProfile(
···
166
174
167
175
if (event.commit.record.$type !== "social.clippr.actor.profile") {
168
176
Logger.verbose(
169
-
"Invalid type for incoming profile record",
177
+
`Mismatched type for incoming profile record (${event.did})`,
170
178
event.commit.record,
171
179
);
172
180
return;
···
174
182
175
183
if (!is(SocialClipprActorProfile.mainSchema, event.commit.record)) {
176
184
Logger.verbose(
177
-
"Invalid schema for incoming profile record",
185
+
`Invalid schema for incoming profile record (${event.did})`,
178
186
event.commit.record,
179
187
);
180
188
return;
···
190
198
191
199
if (event.commit.rkey !== "self") {
192
200
Logger.verbose(
193
-
"Record key of incoming profile record does not match 'self'",
201
+
`Record key of incoming profile record does not match 'self' (${event.did})`,
194
202
event.commit.record,
195
203
);
196
204
return;
···
199
207
// This needs to be here so the avatar can be recognized as a proper blob.
200
208
if (record.avatar) {
201
209
if (!isBlob(record.avatar)) {
202
-
Logger.verbose("Avatar in incoming profile record is not a blob", record);
210
+
Logger.verbose(
211
+
`Avatar in incoming profile record is not a blob (${event.did})`,
212
+
record,
213
+
);
203
214
return;
204
215
}
205
216
206
217
if (record.avatar.mimeType.match(/^image\/(png|jpeg)$/i) === null) {
207
218
Logger.verbose(
208
-
"Avatar in incoming profile record is not a PNG or JPEG",
219
+
`Avatar in incoming profile record is not a PNG or JPEG (${event.did})`,
209
220
record,
210
221
);
211
222
return;
···
213
224
214
225
if (record.avatar.ref?.$link === undefined) {
215
226
Logger.verbose(
216
-
"Avatar in incoming profile record has no link to blob",
227
+
`Avatar in incoming profile record has no link to blob (${event.did})`,
217
228
record,
218
229
);
219
230
return;
220
231
}
221
232
222
233
if (record.avatar.size > 1000000) {
223
-
Logger.verbose("Avatar in incoming profile record is too large", record);
234
+
Logger.verbose(
235
+
`Avatar in incoming profile record is too large (${event.did})`,
236
+
record,
237
+
);
224
238
return;
225
239
}
226
240
}
···
232
246
233
247
await db.insert(usersTable).values({
234
248
did: convertDidToString(event.did),
249
+
cid: event.commit.cid,
235
250
timestamp: convertMicroToDate(event.time_us),
236
251
createdAt: new Date(record.createdAt),
237
252
displayName: record.displayName,
···
239
254
description: record.description,
240
255
});
241
256
242
-
Logger.verbose("Indexed new profile for:", convertDidToString(event.did));
257
+
Logger.verbose(
258
+
`Indexed new profile: ${convertDidToString(event.did)}`,
259
+
event,
260
+
);
243
261
}
+45
-8
backend/src/network/converters.ts
+45
-8
backend/src/network/converters.ts
···
14
14
UnsupportedDidMethodError,
15
15
WebDidDocumentResolver,
16
16
} from "@atcute/identity-resolver";
17
+
import { Client, simpleFetchHandler } from "@atcute/client";
17
18
18
19
/// Converts an ``At.DID`` type to a proper string, for type reasons.
19
20
export function convertDidToString(did: `did:${string}`): string {
···
30
31
}
31
32
}
32
33
33
-
// TODO: Stop leeching off Bluesky's CDN and get the blob directly from the user's PDS
34
-
export async function getUriFromBlobCid(
35
-
did: string,
36
-
cid: string,
37
-
): Promise<string> {
38
-
return `https://cdn.bsky.app/img/avatar/plain/${did}/${cid}`;
39
-
}
40
-
34
+
// Get a user's handle from their DID. DID method agnostic.
41
35
export async function getHandleFromDid(did: string): Promise<string> {
42
36
const docResolver = new CompositeDidDocumentResolver({
43
37
methods: {
···
79
73
doc?.alsoKnownAs[0].lastIndexOf("/" + 1),
80
74
);
81
75
}
76
+
77
+
// Get a user's DID from their handle.
78
+
export async function getDidFromHandle(handle: string): Promise<string> {
79
+
const handler = simpleFetchHandler({
80
+
service: "https://public.api.bsky.app",
81
+
});
82
+
const rpc = new Client({ handler });
83
+
84
+
const { ok, data } = await rpc.get("com.atproto.identity.resolveHandle", {
85
+
params: {
86
+
handle: handle as `${string}.${string}`,
87
+
},
88
+
});
89
+
90
+
if (!ok) {
91
+
switch (data.error) {
92
+
case "InvalidRequest": {
93
+
throw new Error("InvalidRequest", { cause: data.message });
94
+
}
95
+
case "AccountTakedown": {
96
+
throw new Error("AccountTakedown", { cause: data.message });
97
+
}
98
+
case "AccountDeactivated": {
99
+
throw new Error("AccountDeactivated", { cause: data.message });
100
+
}
101
+
default: {
102
+
throw new Error(data.error, { cause: data.message });
103
+
}
104
+
}
105
+
}
106
+
107
+
let actorDid;
108
+
109
+
if (ok) {
110
+
actorDid = data.did as string;
111
+
}
112
+
113
+
if (actorDid === undefined) {
114
+
throw new Error("InvalidRequest");
115
+
}
116
+
117
+
return actorDid;
118
+
}
+9
-28
backend/src/network/validator.ts
+9
-28
backend/src/network/validator.ts
···
87
87
return false;
88
88
}
89
89
90
-
if (record.name.length < 1) {
91
-
Logger.verbose("Name from incoming tag record is too short", record);
92
-
}
93
-
94
90
if (record.color) {
95
91
if (record.color.length > 7) {
96
92
Logger.verbose("Color from incoming tag record is too long", record);
97
93
return false;
98
94
}
99
95
100
-
if (record.color.length < 4) {
101
-
Logger.verbose("Color from incoming tag record is too short", record);
96
+
if (!record.color.match("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$")) {
97
+
Logger.verbose(
98
+
"Invalid hexadecimal color for incoming tag record",
99
+
record,
100
+
);
102
101
return false;
103
102
}
103
+
}
104
104
105
-
if (!record.color.match("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$")) {
105
+
if (record.description) {
106
+
if (record.description.length > 500) {
106
107
Logger.verbose(
107
-
"Invalid hexadecimal color for incoming tag record",
108
+
"Description from incoming tag record is too long",
108
109
record,
109
110
);
110
111
return false;
···
127
128
return false;
128
129
}
129
130
130
-
if (record.url.length < 3) {
131
-
Logger.verbose("Too short url from incoming clip record", record);
132
-
return false;
133
-
}
134
-
135
131
if (record.title.length > 2048) {
136
132
Logger.verbose("Too long title from incoming clip record", record);
137
133
return false;
138
134
}
139
135
140
-
if (record.title.length < 1) {
141
-
Logger.verbose("Too short title from incoming clip record", record);
142
-
return false;
143
-
}
144
-
145
136
if (record.description.length > 4096) {
146
137
Logger.verbose("Too long description from incoming clip record", record);
147
138
return false;
148
139
}
149
140
150
-
if (record.description.length < 1) {
151
-
Logger.verbose("Too short description from incoming clip record", record);
152
-
return false;
153
-
}
154
-
155
141
if (record.notes) {
156
142
if (record.notes.length > 10000) {
157
143
Logger.verbose("Too long notes from incoming clip record", record);
158
-
return false;
159
-
}
160
-
161
-
if (record.notes.length < 1) {
162
-
Logger.verbose("Too short notes from incoming clip record", record);
163
144
return false;
164
145
}
165
146
}
+181
-11
backend/src/routes/xrpc.ts
+181
-11
backend/src/routes/xrpc.ts
···
8
8
import { Database } from "../db/database.js";
9
9
import { usersTable } from "../db/schema.js";
10
10
import { eq } from "drizzle-orm";
11
-
import { getHandleFromDid, getUriFromBlobCid } from "../network/converters.js";
11
+
import { getDidFromHandle, getHandleFromDid } from "../network/converters.js";
12
+
import { createClipView } from "../api/feed.js";
13
+
import { type ClipViewQuery, type ErrorResponse } from "../api/types.js";
14
+
import { createAvatarLink } from "../api/profile.js";
15
+
import { SocialClipprFeedDefs } from "@clipprjs/lexicons";
16
+
import { is } from "@atcute/lexicons";
12
17
13
18
const app = new Hono();
14
19
const db = Database.getInstance().getDb();
15
20
16
21
app.get("/social.clippr.actor.getProfile", async (c) => {
17
-
const did = c.req.query("did");
18
-
if (did === undefined || did.length === 0) {
22
+
const actor = c.req.query("actor");
23
+
if (actor === undefined || actor.trim().length === 0) {
19
24
return c.json(
20
25
{
21
26
error: "InvalidRequest",
22
-
message: "Error: Params must have the did property included",
27
+
message: "Error: Parameters must have the actor property included",
23
28
},
24
29
400,
25
30
);
26
31
}
27
32
33
+
let actorDid = actor;
34
+
35
+
if (!actor.startsWith("did:")) {
36
+
try {
37
+
actorDid = await getDidFromHandle(actor);
38
+
} catch (e: unknown) {
39
+
if (e instanceof Error) {
40
+
return c.json(
41
+
{
42
+
error: e.message,
43
+
message: e.cause,
44
+
},
45
+
400,
46
+
);
47
+
} else {
48
+
return c.json(
49
+
{
50
+
error: "InvalidRequest" as string,
51
+
message: "Unknown error while resolving DID from handle" as string,
52
+
},
53
+
400,
54
+
);
55
+
}
56
+
}
57
+
}
58
+
28
59
const profileSearch = await db
29
60
.selectDistinct()
30
61
.from(usersTable)
31
-
.where(eq(usersTable.did, did));
62
+
.where(eq(usersTable.did, actorDid));
32
63
33
64
if (profileSearch.length === 0) {
34
65
return c.json(
···
40
71
);
41
72
}
42
73
43
-
const handle = await getHandleFromDid(did);
74
+
let actorHandle;
75
+
76
+
if (actor.startsWith("did:")) {
77
+
try {
78
+
actorHandle = await getHandleFromDid(actor);
79
+
} catch (e: unknown) {
80
+
if (e instanceof Error) {
81
+
return c.json(
82
+
{
83
+
error: "InvalidRequest",
84
+
message: `${e.message}`,
85
+
},
86
+
400,
87
+
);
88
+
} else {
89
+
return c.json(
90
+
{
91
+
error: "InvalidRequest" as string,
92
+
message: "Unknown error while resolving handle from DID" as string,
93
+
},
94
+
400,
95
+
);
96
+
}
97
+
}
98
+
99
+
if (actorHandle === undefined) {
100
+
actorHandle = "invalid.handle";
101
+
}
102
+
} else actorHandle = actor;
103
+
44
104
// TODO: Add placeholder avatar
105
+
// This is a mess and should be replaced with a real solution!
45
106
const avatarCid: string =
46
107
profileSearch[0]?.avatar || "https://missing.avatar";
47
-
const avatar = await getUriFromBlobCid(did, avatarCid);
108
+
let actorAvatar;
109
+
if (avatarCid !== "https://missing.avatar") {
110
+
actorAvatar = await createAvatarLink(actorDid, avatarCid);
111
+
} else actorAvatar = avatarCid;
48
112
49
113
// Right now we don't do de-duplication in the database, so we just take the
50
114
// first result and use that for our return call.
51
115
return c.json({
52
-
did: did,
53
-
handle: handle,
54
-
displayName: profileSearch[0]?.displayName || null,
55
-
avatar: avatar,
116
+
did: actorDid,
117
+
handle: actorHandle,
118
+
displayName: profileSearch[0]?.displayName,
119
+
avatar: actorAvatar,
56
120
description: profileSearch[0]?.description || null,
57
121
createdAt: profileSearch[0]?.createdAt,
58
122
});
123
+
});
124
+
125
+
app.get("/social.clippr.feed.getClips", async (c) => {
126
+
const uris = c.req.query("uris");
127
+
if (uris === undefined || uris.trim().length === 0) {
128
+
return c.json(
129
+
{
130
+
error: "InvalidRequest",
131
+
message: "Error: Parameters must have the uris property included",
132
+
},
133
+
400,
134
+
);
135
+
}
136
+
137
+
const rawUriArray: string[] = uris.split(",");
138
+
139
+
if (rawUriArray.length > 25) {
140
+
return c.json(
141
+
{
142
+
error: "InvalidRequest",
143
+
message: "Error: More than 25 URIs have been provided",
144
+
},
145
+
400,
146
+
);
147
+
}
148
+
149
+
if (
150
+
rawUriArray.some((value) => {
151
+
return !value.startsWith("at://");
152
+
})
153
+
) {
154
+
return c.json(
155
+
{
156
+
error: "InvalidRequest",
157
+
message: "Error: A queried URI is missing the at:// identifier",
158
+
},
159
+
400,
160
+
);
161
+
}
162
+
163
+
const parsedUriArray: object[] = [];
164
+
165
+
for (let value of rawUriArray) {
166
+
value = value.replace("at://", "");
167
+
const splitUri: string[] = value.split("/");
168
+
169
+
if (splitUri.length !== 3) {
170
+
c.json(
171
+
{
172
+
error: "InvalidRequest",
173
+
message: "Error: A queried URI is not a proper clip",
174
+
},
175
+
400,
176
+
);
177
+
}
178
+
179
+
let splitUriObject: ClipViewQuery = {
180
+
did: "",
181
+
collection: "",
182
+
recordKey: "",
183
+
};
184
+
185
+
// validate type
186
+
if (
187
+
!splitUri[0] ||
188
+
!splitUri[1] ||
189
+
!splitUri[2] ||
190
+
typeof splitUri[0] !== "string" ||
191
+
typeof splitUri[1] !== "string" ||
192
+
typeof splitUri[2] !== "string"
193
+
) {
194
+
c.json(
195
+
{
196
+
error: "InvalidRequest",
197
+
message: "Error: A queried URI is not a proper clip",
198
+
},
199
+
400,
200
+
);
201
+
} else {
202
+
splitUriObject = {
203
+
did: splitUri[0],
204
+
collection: splitUri[1],
205
+
recordKey: splitUri[2],
206
+
};
207
+
}
208
+
209
+
const clipView = await createClipView(splitUriObject);
210
+
211
+
if (!is(SocialClipprFeedDefs.clipViewSchema, value)) {
212
+
c.json(clipView, 400);
213
+
}
214
+
215
+
parsedUriArray.push(clipView);
216
+
}
217
+
218
+
if (parsedUriArray.length === 0) {
219
+
return c.json(
220
+
{
221
+
error: "InvalidRequest",
222
+
message: "No queried URIs exist",
223
+
} as ErrorResponse,
224
+
400,
225
+
);
226
+
}
227
+
228
+
return c.json(parsedUriArray, 200);
59
229
});
60
230
61
231
app.get("/_health", async (c) => {
+1120
-37
backend/static/api.json
+1120
-37
backend/static/api.json
···
1
1
{
2
2
"openapi": "3.1.1",
3
+
"info": {
4
+
"title": "Clippr AppView API",
5
+
"version": "1.0.1",
6
+
"description": "API reference documentation for Clippr's backend.",
7
+
"license": {
8
+
"name": "GNU Affero General Public License v3.0 only",
9
+
"identifier": "AGPL-3.0-only"
10
+
}
11
+
},
3
12
"servers": [
4
13
{
5
14
"url": "http://localhost:9090",
6
15
"description": "Development server"
7
16
},
8
17
{
9
-
"url": "https://clippr.social",
18
+
"url": "https://api.clippr.social",
10
19
"description": "Production server"
11
20
}
12
21
],
13
-
"info": {
14
-
"title": "Clippr AppView API",
15
-
"version": "0.1.0",
16
-
"description": "Official API reference documentation for Clippr's backend."
17
-
},
18
22
"tags": [
19
23
{
24
+
"name": "Clips",
25
+
"description": "API paths that relate to user bookmarks, or 'clips'."
26
+
},
27
+
{
28
+
"name": "Tags",
29
+
"description": "API paths that relate to user tags."
30
+
},
31
+
{
20
32
"name": "Profile",
21
33
"description": "API paths that relate to user profiles."
22
34
},
···
26
38
}
27
39
],
28
40
"paths": {
41
+
"/xrpc/social.clippr.actor.getPreferences": {
42
+
"get": {
43
+
"tags": ["Profile"],
44
+
"summary": "Get a user's preferences",
45
+
"operationId": "social.clippr.actor.getPreferences",
46
+
"description": "Get a user's private preferences. Requires authentication.",
47
+
"security": [
48
+
{
49
+
"Bearer": []
50
+
}
51
+
],
52
+
"responses": {
53
+
"200": {
54
+
"description": "OK",
55
+
"content": {
56
+
"application/json": {
57
+
"schema": {
58
+
"$ref": "#/components/schemas/social.clippr.actor.defs.preferences"
59
+
}
60
+
}
61
+
}
62
+
},
63
+
"400": {
64
+
"description": "Bad Request",
65
+
"content": {
66
+
"application/json": {
67
+
"schema": {
68
+
"type": "object",
69
+
"properties": {
70
+
"error": {
71
+
"type": "string",
72
+
"description": "A general error code",
73
+
"oneOf": [
74
+
{
75
+
"const": "InvalidRequest"
76
+
},
77
+
{
78
+
"const": "ExpiredToken"
79
+
},
80
+
{
81
+
"const": "InvalidToken"
82
+
}
83
+
]
84
+
},
85
+
"message": {
86
+
"type": "string",
87
+
"description": "A detailed description of the error"
88
+
}
89
+
}
90
+
}
91
+
}
92
+
}
93
+
},
94
+
"401": {
95
+
"description": "Unauthorized",
96
+
"content": {
97
+
"application/json": {
98
+
"schema": {
99
+
"type": "object",
100
+
"properties": {
101
+
"error": {
102
+
"type": "string",
103
+
"description": "A general error code",
104
+
"oneOf": [
105
+
{
106
+
"const": "AuthMissing"
107
+
}
108
+
]
109
+
},
110
+
"message": {
111
+
"type": "string",
112
+
"description": "A detailed description of the error"
113
+
}
114
+
}
115
+
}
116
+
}
117
+
}
118
+
}
119
+
}
120
+
}
121
+
},
29
122
"/xrpc/social.clippr.actor.getProfile": {
30
123
"get": {
124
+
"tags": ["Profile"],
31
125
"summary": "Get a profile",
32
-
"description": "Get an user's profile based on their DID.",
126
+
"operationId": "social.clippr.actor.getProfile",
127
+
"description": "Get a user's profile based on a given DID or handle.",
33
128
"parameters": [
34
129
{
35
-
"name": "did",
130
+
"name": "actor",
36
131
"in": "query",
37
-
"description": "The DID of the account to get the profile record of.",
132
+
"description": "Handle or DID of account to fetch profile of",
38
133
"required": true,
39
134
"content": {
40
135
"schema": {
41
-
"type": "string"
136
+
"type": "string",
137
+
"description": "Handle or DID of account to fetch profile of",
138
+
"format": "at-identifier"
42
139
}
43
140
},
44
141
"deprecated": false,
···
52
149
"application/json": {
53
150
"schema": {
54
151
"type": "object",
152
+
"$ref": "#/components/schemas/social.clippr.actor.defs.profileView"
153
+
}
154
+
}
155
+
}
156
+
},
157
+
"400": {
158
+
"description": "Bad Request",
159
+
"content": {
160
+
"application/json": {
161
+
"schema": {
162
+
"type": "object",
55
163
"properties": {
56
-
"did": {
164
+
"error": {
165
+
"type": "string",
166
+
"description": "A general error code",
167
+
"oneOf": [
168
+
{
169
+
"const": "InvalidRequest"
170
+
}
171
+
]
172
+
},
173
+
"message": {
174
+
"type": "string",
175
+
"description": "A detailed description of the error"
176
+
}
177
+
}
178
+
}
179
+
}
180
+
}
181
+
}
182
+
}
183
+
}
184
+
},
185
+
"/xrpc/social.clippr.actor.putPreferences": {
186
+
"post": {
187
+
"tags": ["Profile"],
188
+
"summary": "Set a user's preferences",
189
+
"operationId": "social.clippr.actor.putPreferences",
190
+
"description": "Sets the private preferences attached to the account. Requires authentication.",
191
+
"security": [
192
+
{
193
+
"Bearer": []
194
+
}
195
+
],
196
+
"requestBody": {
197
+
"required": true,
198
+
"content": {
199
+
"application/json": {
200
+
"schema": {
201
+
"type": "object",
202
+
"properties": {
203
+
"preferences": {
204
+
"$ref": "#/components/schemas/social.clippr.actor.defs.preferences"
205
+
}
206
+
}
207
+
}
208
+
}
209
+
}
210
+
},
211
+
"responses": {
212
+
"200": {
213
+
"description": "OK"
214
+
},
215
+
"400": {
216
+
"description": "Bad Request",
217
+
"content": {
218
+
"application/json": {
219
+
"schema": {
220
+
"type": "object",
221
+
"properties": {
222
+
"error": {
223
+
"type": "string",
224
+
"oneOf": [
225
+
{
226
+
"const": "InvalidRequest"
227
+
},
228
+
{
229
+
"const": "ExpiredToken"
230
+
},
231
+
{
232
+
"const": "InvalidToken"
233
+
}
234
+
],
235
+
"description": "A general error code"
236
+
},
237
+
"message": {
238
+
"type": "string",
239
+
"description": "A detailed description of the error"
240
+
}
241
+
}
242
+
}
243
+
}
244
+
}
245
+
},
246
+
"401": {
247
+
"description": "Unauthorized",
248
+
"content": {
249
+
"application/json": {
250
+
"schema": {
251
+
"type": "object",
252
+
"properties": {
253
+
"error": {
254
+
"type": "string",
255
+
"description": "A general error code",
256
+
"oneOf": [
257
+
{
258
+
"const": "AuthMissing"
259
+
}
260
+
]
261
+
},
262
+
"message": {
263
+
"type": "string",
264
+
"description": "A detailed description of the error"
265
+
}
266
+
}
267
+
}
268
+
}
269
+
}
270
+
}
271
+
}
272
+
}
273
+
},
274
+
"/xrpc/social.clippr.actor.searchClips": {
275
+
"get": {
276
+
"tags": ["Clips"],
277
+
"summary": "Search clips",
278
+
"operationId": "social.clippr.actor.searchClips",
279
+
"description": "Find clips matching search criteria.",
280
+
"parameters": [
281
+
{
282
+
"name": "q",
283
+
"in": "query",
284
+
"description": "Search query string",
285
+
"required": true,
286
+
"schema": {
287
+
"type": "string",
288
+
"description": "Search query string"
289
+
}
290
+
},
291
+
{
292
+
"name": "limit",
293
+
"in": "query",
294
+
"description": "How many clips to return in the query output",
295
+
"required": false,
296
+
"schema": {
297
+
"type": "integer",
298
+
"minimum": 1,
299
+
"maximum": 100,
300
+
"default": 25
301
+
}
302
+
},
303
+
{
304
+
"name": "actor",
305
+
"in": "query",
306
+
"description": "An actor to filter results to",
307
+
"required": false,
308
+
"schema": {
309
+
"type": "string",
310
+
"description": "An actor to filter results to",
311
+
"format": "at-identifier"
312
+
}
313
+
},
314
+
{
315
+
"name": "cursor",
316
+
"in": "query",
317
+
"description": "A parameter to paginate results",
318
+
"required": false,
319
+
"schema": {
320
+
"type": "string",
321
+
"description": "A parameter to paginate results"
322
+
}
323
+
}
324
+
],
325
+
"responses": {
326
+
"200": {
327
+
"description": "OK",
328
+
"content": {
329
+
"application/json": {
330
+
"schema": {
331
+
"type": "object",
332
+
"properties": {
333
+
"cursor": {
334
+
"type": "string",
335
+
"description": "A parameter to paginate results"
336
+
},
337
+
"clips": {
338
+
"type": "array",
339
+
"items": {
340
+
"$ref": "#/components/schemas/social.clippr.feed.defs.clipView"
341
+
}
342
+
}
343
+
}
344
+
}
345
+
}
346
+
}
347
+
},
348
+
"400": {
349
+
"description": "Bad Request",
350
+
"content": {
351
+
"application/json": {
352
+
"schema": {
353
+
"type": "object",
354
+
"properties": {
355
+
"error": {
356
+
"type": "string",
357
+
"description": "A general error code",
358
+
"oneOf": [
359
+
{
360
+
"const": "InvalidRequest"
361
+
}
362
+
]
363
+
},
364
+
"message": {
365
+
"type": "string",
366
+
"description": "A detailed description of the error"
367
+
}
368
+
}
369
+
}
370
+
}
371
+
}
372
+
}
373
+
}
374
+
}
375
+
},
376
+
"/xrpc/social.clippr.actor.searchProfiles": {
377
+
"get": {
378
+
"tags": ["Profile"],
379
+
"summary": "Search profiles",
380
+
"operationId": "social.clippr.actor.searchProfiles",
381
+
"description": "Find profiles matching search criteria.",
382
+
"parameters": [
383
+
{
384
+
"name": "q",
385
+
"in": "query",
386
+
"description": "Search query string",
387
+
"required": false,
388
+
"schema": {
389
+
"type": "string",
390
+
"description": "Search query string"
391
+
}
392
+
},
393
+
{
394
+
"name": "limit",
395
+
"in": "query",
396
+
"description": "The number of profiles to be returned in the query",
397
+
"required": false,
398
+
"schema": {
399
+
"type": "integer",
400
+
"minimum": 1,
401
+
"maximum": 100,
402
+
"default": 25
403
+
}
404
+
},
405
+
{
406
+
"name": "cursor",
407
+
"in": "query",
408
+
"description": "A parameter used for pagination",
409
+
"required": false,
410
+
"schema": {
411
+
"type": "string",
412
+
"description": "A parameter used for pagination"
413
+
}
414
+
}
415
+
],
416
+
"responses": {
417
+
"200": {
418
+
"description": "OK",
419
+
"content": {
420
+
"application/json": {
421
+
"schema": {
422
+
"type": "object",
423
+
"properties": {
424
+
"cursor": {
425
+
"type": "string",
426
+
"description": "A parameter used for pagination"
427
+
},
428
+
"actors": {
429
+
"type": "array",
430
+
"items": {
431
+
"$ref": "#/components/schemas/social.clippr.actor.defs.profileView"
432
+
}
433
+
}
434
+
}
435
+
}
436
+
}
437
+
}
438
+
},
439
+
"400": {
440
+
"description": "Bad Request",
441
+
"content": {
442
+
"application/json": {
443
+
"schema": {
444
+
"type": "object",
445
+
"properties": {
446
+
"error": {
447
+
"type": "string",
448
+
"description": "A general error code",
449
+
"oneOf": [
450
+
{
451
+
"const": "InvalidRequest"
452
+
}
453
+
]
454
+
},
455
+
"message": {
456
+
"type": "string",
457
+
"description": "A detailed description of the error"
458
+
}
459
+
}
460
+
}
461
+
}
462
+
}
463
+
}
464
+
}
465
+
}
466
+
},
467
+
"/xrpc/social.clippr.actor.searchTags": {
468
+
"get": {
469
+
"tags": ["Tags"],
470
+
"summary": "Search tags",
471
+
"operationId": "social.clippr.actor.searchTags",
472
+
"description": "Find tags matching search criteria.",
473
+
"parameters": [
474
+
{
475
+
"name": "q",
476
+
"in": "query",
477
+
"description": "Search query string",
478
+
"required": true,
479
+
"schema": {
480
+
"type": "string",
481
+
"description": "Search query string"
482
+
}
483
+
},
484
+
{
485
+
"name": "limit",
486
+
"in": "query",
487
+
"description": "How many tags to return in the query output",
488
+
"required": false,
489
+
"schema": {
490
+
"type": "integer",
491
+
"minimum": 1,
492
+
"maximum": 100,
493
+
"default": 25
494
+
}
495
+
},
496
+
{
497
+
"name": "actor",
498
+
"in": "query",
499
+
"description": "An actor to filter results to",
500
+
"required": false,
501
+
"schema": {
502
+
"type": "string",
503
+
"description": "An actor to filter results to",
504
+
"format": "at-identifier"
505
+
}
506
+
},
507
+
{
508
+
"name": "cursor",
509
+
"in": "query",
510
+
"description": "A parameter to paginate results",
511
+
"required": false,
512
+
"schema": {
513
+
"type": "string",
514
+
"description": "A parameter to paginate results"
515
+
}
516
+
}
517
+
],
518
+
"responses": {
519
+
"200": {
520
+
"description": "OK",
521
+
"content": {
522
+
"application/json": {
523
+
"schema": {
524
+
"type": "object",
525
+
"properties": {
526
+
"cursor": {
527
+
"type": "string",
528
+
"description": "A parameter to paginate results"
529
+
},
530
+
"tags": {
531
+
"type": "array",
532
+
"items": {
533
+
"$ref": "#/components/schemas/social.clippr.feed.defs.tagView"
534
+
}
535
+
}
536
+
}
537
+
}
538
+
}
539
+
}
540
+
},
541
+
"400": {
542
+
"description": "Bad Request",
543
+
"content": {
544
+
"application/json": {
545
+
"schema": {
546
+
"type": "object",
547
+
"properties": {
548
+
"error": {
549
+
"type": "string",
550
+
"description": "A general error code",
551
+
"oneOf": [
552
+
{
553
+
"const": "InvalidRequest"
554
+
}
555
+
]
556
+
},
557
+
"message": {
558
+
"type": "string",
559
+
"description": "A detailed description of the error"
560
+
}
561
+
}
562
+
}
563
+
}
564
+
}
565
+
}
566
+
}
567
+
}
568
+
},
569
+
"/xrpc/social.clippr.feed.getClips": {
570
+
"get": {
571
+
"tags": ["Clips"],
572
+
"summary": "Get clips",
573
+
"operationId": "social.clippr.feed.getClips",
574
+
"description": "Get the hydrated views of a list of clips from their AT URIs.",
575
+
"parameters": [
576
+
{
577
+
"name": "uris",
578
+
"in": "query",
579
+
"description": "List of tag AT-URIs to return hydrated views for",
580
+
"required": true,
581
+
"schema": {
582
+
"type": "array",
583
+
"items": {
584
+
"type": "string",
585
+
"format": "at-uri"
586
+
},
587
+
"maxItems": 25
588
+
}
589
+
}
590
+
],
591
+
"responses": {
592
+
"200": {
593
+
"description": "OK",
594
+
"content": {
595
+
"application/json": {
596
+
"schema": {
597
+
"type": "array",
598
+
"items": {
599
+
"$ref": "#/components/schemas/social.clippr.feed.defs.clipView"
600
+
}
601
+
}
602
+
}
603
+
}
604
+
},
605
+
"400": {
606
+
"description": "Bad Request",
607
+
"content": {
608
+
"application/json": {
609
+
"schema": {
610
+
"type": "object",
611
+
"properties": {
612
+
"error": {
613
+
"type": "string",
614
+
"description": "A general error code",
615
+
"oneOf": [
616
+
{
617
+
"const": "InvalidRequest"
618
+
}
619
+
]
620
+
},
621
+
"message": {
622
+
"type": "string",
623
+
"description": "A detailed description of the error"
624
+
}
625
+
}
626
+
}
627
+
}
628
+
}
629
+
}
630
+
}
631
+
}
632
+
},
633
+
"/xrpc/social.clippr.feed.getTags": {
634
+
"get": {
635
+
"tags": ["Tags"],
636
+
"summary": "Get tags",
637
+
"operationId": "social.clippr.feed.getTags",
638
+
"description": "Get a the hydrated views of a list of tags from their AT URIs.",
639
+
"parameters": [
640
+
{
641
+
"name": "uris",
642
+
"in": "query",
643
+
"description": "List of tag AT-URIs to return hydrated views for",
644
+
"required": true,
645
+
"schema": {
646
+
"type": "array",
647
+
"items": {
648
+
"type": "string",
649
+
"format": "at-uri"
650
+
},
651
+
"maxItems": 25
652
+
}
653
+
}
654
+
],
655
+
"responses": {
656
+
"200": {
657
+
"description": "OK",
658
+
"content": {
659
+
"application/json": {
660
+
"schema": {
661
+
"type": "array",
662
+
"items": {
663
+
"$ref": "#/components/schemas/social.clippr.feed.defs.tagView"
664
+
}
665
+
}
666
+
}
667
+
}
668
+
},
669
+
"400": {
670
+
"description": "Bad Request",
671
+
"content": {
672
+
"application/json": {
673
+
"schema": {
674
+
"type": "object",
675
+
"properties": {
676
+
"error": {
57
677
"type": "string",
58
-
"description": "The decentralized identifier associated to the profile.",
59
-
"example": "did:plc:z72i7hdynmk6r22z27h6tvur"
678
+
"description": "A general error code",
679
+
"oneOf": [
680
+
{
681
+
"const": "InvalidRequest"
682
+
}
683
+
]
60
684
},
61
-
"handle": {
685
+
"message": {
62
686
"type": "string",
63
-
"description": "The handle associated to the profile.",
64
-
"example": "alice.bsky.social"
687
+
"description": "A detailed description of the error"
688
+
}
689
+
}
690
+
}
691
+
}
692
+
}
693
+
}
694
+
}
695
+
}
696
+
},
697
+
"/xrpc/social.clippr.feed.getProfileClips": {
698
+
"get": {
699
+
"tags": ["Clips"],
700
+
"summary": "Get a profile's clip feed",
701
+
"operationId": "social.clippr.feed.getProfileClips",
702
+
"description": "Get a view of a profile's reverse-chronological clips feed.",
703
+
"parameters": [
704
+
{
705
+
"name": "actor",
706
+
"in": "query",
707
+
"description": "An actor to get feed data from",
708
+
"required": true,
709
+
"schema": {
710
+
"type": "string",
711
+
"description": "An actor to get feed data from",
712
+
"format": "at-identifier"
713
+
}
714
+
},
715
+
{
716
+
"name": "limit",
717
+
"in": "query",
718
+
"description": "How many results to return with the query",
719
+
"required": false,
720
+
"schema": {
721
+
"type": "integer",
722
+
"minimum": 1,
723
+
"maximum": 100,
724
+
"default": 50
725
+
}
726
+
},
727
+
{
728
+
"name": "cursor",
729
+
"in": "query",
730
+
"description": "A parameter to paginate results",
731
+
"required": false,
732
+
"schema": {
733
+
"type": "string",
734
+
"description": "A parameter to paginate results"
735
+
}
736
+
},
737
+
{
738
+
"name": "filter",
739
+
"in": "query",
740
+
"description": "What types to include in response",
741
+
"required": false,
742
+
"schema": {
743
+
"type": "string",
744
+
"description": "What types of clips to include in response",
745
+
"default": "all_clips",
746
+
"enum": ["all_clips", "tagged_clips", "untagged_clips"]
747
+
}
748
+
}
749
+
],
750
+
"responses": {
751
+
"200": {
752
+
"description": "OK",
753
+
"content": {
754
+
"application/json": {
755
+
"schema": {
756
+
"type": "object",
757
+
"properties": {
758
+
"cursor": {
759
+
"type": "string"
65
760
},
66
-
"displayName": {
761
+
"feed": {
762
+
"type": "array",
763
+
"items": {
764
+
"$ref": "#/components/schemas/social.clippr.feed.defs.clipView"
765
+
}
766
+
}
767
+
}
768
+
}
769
+
}
770
+
}
771
+
},
772
+
"400": {
773
+
"description": "Bad Request",
774
+
"content": {
775
+
"application/json": {
776
+
"schema": {
777
+
"type": "object",
778
+
"properties": {
779
+
"error": {
67
780
"type": "string",
68
-
"description": "The display name associated to the profile.",
69
-
"example": "Alice"
781
+
"description": "A general error code",
782
+
"oneOf": [
783
+
{
784
+
"const": "InvalidRequest"
785
+
}
786
+
]
70
787
},
71
-
"avatar": {
788
+
"message": {
72
789
"type": "string",
73
-
"format": "uri",
74
-
"description": "A URI linking to an JPEG or PNG file.",
75
-
"example": "https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:b6bhzquz665p6bgjuaqz6xjp/bafkreicoqygyiqhhmjod4hvezo3besjyza24neldcxkz55keos3dg5mmj4@jpeg"
790
+
"description": "A detailed description of the error"
791
+
}
792
+
}
793
+
}
794
+
}
795
+
}
796
+
}
797
+
}
798
+
}
799
+
},
800
+
"/xrpc/social.clippr.feed.getProfileTags": {
801
+
"get": {
802
+
"tags": ["Tags"],
803
+
"summary": "Get a profile's tag feed",
804
+
"operationId": "social.clippr.feed.getProfileTags",
805
+
"description": "Get a view of a profile's reverse-chronological clips feed.",
806
+
"parameters": [
807
+
{
808
+
"name": "actor",
809
+
"in": "query",
810
+
"description": "An actor to get feed data from",
811
+
"required": true,
812
+
"schema": {
813
+
"type": "string",
814
+
"description": "An actor to get feed data from",
815
+
"format": "at-identifier"
816
+
}
817
+
},
818
+
{
819
+
"name": "limit",
820
+
"in": "query",
821
+
"description": "How many results to return with the query",
822
+
"required": false,
823
+
"schema": {
824
+
"type": "integer",
825
+
"minimum": 1,
826
+
"maximum": 100,
827
+
"default": 50
828
+
}
829
+
},
830
+
{
831
+
"name": "cursor",
832
+
"in": "query",
833
+
"description": "A parameter to paginate results",
834
+
"required": false,
835
+
"schema": {
836
+
"type": "string",
837
+
"description": "A parameter to paginate results"
838
+
}
839
+
}
840
+
],
841
+
"responses": {
842
+
"200": {
843
+
"description": "OK",
844
+
"content": {
845
+
"application/json": {
846
+
"schema": {
847
+
"type": "object",
848
+
"properties": {
849
+
"cursor": {
850
+
"type": "string"
76
851
},
77
-
"description": {
852
+
"feed": {
853
+
"type": "array",
854
+
"items": {
855
+
"$ref": "#/components/schemas/social.clippr.feed.defs.tagView"
856
+
}
857
+
}
858
+
}
859
+
}
860
+
}
861
+
}
862
+
},
863
+
"400": {
864
+
"description": "Bad Request",
865
+
"content": {
866
+
"application/json": {
867
+
"schema": {
868
+
"type": "object",
869
+
"properties": {
870
+
"error": {
78
871
"type": "string",
79
-
"description": "A biography associated to the profile.",
80
-
"example": "This is an example bio."
872
+
"description": "A general error code",
873
+
"oneOf": [
874
+
{
875
+
"const": "InvalidRequest"
876
+
}
877
+
]
81
878
},
82
-
"createdAt": {
879
+
"message": {
83
880
"type": "string",
84
-
"format": "date-time",
85
-
"description": "The date and time of the creation of the profile record."
881
+
"description": "A detailed description of the error"
882
+
}
883
+
}
884
+
}
885
+
}
886
+
}
887
+
}
888
+
}
889
+
}
890
+
},
891
+
"/xrpc/social.clippr.feed.getTagList": {
892
+
"get": {
893
+
"tags": ["Tags"],
894
+
"summary": "Get a profile's tag list",
895
+
"operationId": "social.clippr.feed.getProfileTags",
896
+
"description": "Get a profile's complete list of tags.",
897
+
"parameters": [
898
+
{
899
+
"name": "actor",
900
+
"in": "query",
901
+
"description": "An actor to fetch the tag list from",
902
+
"required": false,
903
+
"schema": {
904
+
"type": "string",
905
+
"description": "An actor to fetch the tag list from",
906
+
"format": "at-identifier"
907
+
}
908
+
}
909
+
],
910
+
"responses": {
911
+
"200": {
912
+
"description": "OK",
913
+
"content": {
914
+
"application/json": {
915
+
"schema": {
916
+
"type": "object",
917
+
"properties": {
918
+
"tags": {
919
+
"type": "array",
920
+
"items": {
921
+
"$ref": "#/components/schemas/social.clippr.feed.defs.tagView"
922
+
}
86
923
}
87
924
}
88
925
}
···
98
935
"properties": {
99
936
"error": {
100
937
"type": "string",
101
-
"description": "A general error code.",
102
-
"example": "InvalidRequest"
938
+
"description": "A general error code",
939
+
"oneOf": [
940
+
{
941
+
"error": "InvalidRequest"
942
+
}
943
+
]
103
944
},
104
945
"message": {
105
946
"type": "string",
106
-
"description": "A detailed description of the error.",
107
-
"example": "Error: Params must have the did property included"
947
+
"description": "A detailed description of the error"
108
948
}
109
949
}
110
950
}
111
951
}
112
952
}
113
953
}
114
-
},
115
-
"tags": ["Profile"]
954
+
}
116
955
}
117
956
},
118
957
"/xrpc/_health": {
···
129
968
"properties": {
130
969
"version": {
131
970
"type": "string",
132
-
"description": "The version number of the AppView.",
133
-
"example": "0.1.0"
971
+
"description": "The version number of the AppView."
134
972
}
135
973
}
136
974
}
···
139
977
}
140
978
},
141
979
"tags": ["Misc"]
980
+
}
981
+
}
982
+
},
983
+
"components": {
984
+
"schemas": {
985
+
"com.atproto.repo.strongRef": {
986
+
"type": "object",
987
+
"required": ["uri", "cid"],
988
+
"properties": {
989
+
"uri": {
990
+
"type": "string",
991
+
"format": "at-uri"
992
+
},
993
+
"cid": {
994
+
"type": "string",
995
+
"format": "cid"
996
+
}
997
+
}
998
+
},
999
+
"social.clippr.actor.defs.profileView": {
1000
+
"type": "object",
1001
+
"description": "A view of an actor's profile",
1002
+
"required": ["did", "handle", "displayName"],
1003
+
"properties": {
1004
+
"did": {
1005
+
"type": "string",
1006
+
"description": "The DID of the profile",
1007
+
"format": "did"
1008
+
},
1009
+
"handle": {
1010
+
"type": "string",
1011
+
"description": "The handle of the profile",
1012
+
"format": "handle"
1013
+
},
1014
+
"displayName": {
1015
+
"type": "string",
1016
+
"description": "The display name associated to the profile",
1017
+
"maxLength": 64
1018
+
},
1019
+
"description": {
1020
+
"type": "string",
1021
+
"description": "The biography associated to the profile",
1022
+
"maxLength": 500
1023
+
},
1024
+
"avatar": {
1025
+
"type": "string",
1026
+
"description": "A link to the profile's avatar",
1027
+
"format": "uri"
1028
+
},
1029
+
"createdAt": {
1030
+
"type": "string",
1031
+
"description": "When the profile record was first created",
1032
+
"format": "date-time"
1033
+
}
1034
+
}
1035
+
},
1036
+
"social.clippr.actor.defs.preferences": {
1037
+
"type": "array",
1038
+
"items": {
1039
+
"oneOf": [
1040
+
{
1041
+
"$ref": "#/components/schemas/social.clippr.actor.defs.publishingScopesPref"
1042
+
}
1043
+
]
1044
+
}
1045
+
},
1046
+
"social.clippr.actor.defs.publishingScopesPref": {
1047
+
"type": "object",
1048
+
"description": "Preferences for a user's publishing scopes",
1049
+
"required": ["defaultScope"],
1050
+
"properties": {
1051
+
"defaultScope": {
1052
+
"type": "string",
1053
+
"description": "What publishing scope to mark a clip as by default",
1054
+
"enum": ["public", "unlisted"]
1055
+
}
1056
+
}
1057
+
},
1058
+
"social.clippr.feed.defs.clipView": {
1059
+
"type": "object",
1060
+
"description": "A view of a single bookmark (or 'clip')",
1061
+
"required": ["uri", "cid", "author", "record", "indexedAt"],
1062
+
"properties": {
1063
+
"uri": {
1064
+
"type": "string",
1065
+
"description": "The AT-URI of the clip",
1066
+
"format": "at-uri"
1067
+
},
1068
+
"cid": {
1069
+
"type": "string",
1070
+
"description": "The CID of the clip",
1071
+
"format": "cid"
1072
+
},
1073
+
"author": {
1074
+
"description": "A reference to the actor's profile",
1075
+
"$ref": "#/components/schemas/social.clippr.actor.defs.profileView"
1076
+
},
1077
+
"record": {
1078
+
"type": "object",
1079
+
"description": "The raw record of the clip"
1080
+
},
1081
+
"indexedAt": {
1082
+
"type": "string",
1083
+
"description": "The time in which the clip's record was indexed by the AppView",
1084
+
"format": "date-time"
1085
+
}
1086
+
}
1087
+
},
1088
+
"social.clippr.feed.defs.tagView": {
1089
+
"type": "object",
1090
+
"description": "A view of a single tag",
1091
+
"required": ["uri", "cid", "author", "record", "indexedAt"],
1092
+
"properties": {
1093
+
"uri": {
1094
+
"type": "string",
1095
+
"description": "The AT-URI to the tag",
1096
+
"format": "at-uri"
1097
+
},
1098
+
"cid": {
1099
+
"type": "string",
1100
+
"description": "The CID of the tag",
1101
+
"format": "cid"
1102
+
},
1103
+
"author": {
1104
+
"description": "A reference to the actor's profile",
1105
+
"$ref": "#/components/schemas/social.clippr.actor.defs.profileView"
1106
+
},
1107
+
"record": {
1108
+
"type": "object",
1109
+
"description": "The raw record of the clip"
1110
+
},
1111
+
"indexedAt": {
1112
+
"type": "string",
1113
+
"description": "The time in which the tag's record was indexed by the AppView",
1114
+
"format": "date-time"
1115
+
}
1116
+
}
1117
+
},
1118
+
"social.clippr.actor.profile": {
1119
+
"type": "object",
1120
+
"required": ["createdAt", "displayName"],
1121
+
"properties": {
1122
+
"displayName": {
1123
+
"type": "string",
1124
+
"description": "A display name to be shown on a profile",
1125
+
"maxLength": 64
1126
+
},
1127
+
"description": {
1128
+
"type": "string",
1129
+
"description": "Text for user to describe themselves",
1130
+
"maxLength": 500
1131
+
},
1132
+
"avatar": {
1133
+
"type": "blob",
1134
+
"maxSize": 1000000,
1135
+
"description": "Image to show on user's profiles"
1136
+
},
1137
+
"createdAt": {
1138
+
"type": "string",
1139
+
"description": "The creation date of the profile",
1140
+
"format": "date-time"
1141
+
}
1142
+
}
1143
+
},
1144
+
"social.clippr.feed.clip": {
1145
+
"type": "object",
1146
+
"required": ["url", "title", "description", "unlisted", "createdAt"],
1147
+
"properties": {
1148
+
"url": {
1149
+
"type": "string",
1150
+
"description": "The URL of the bookmark. Cannot be left empty or be modified after creation.",
1151
+
"format": "uri",
1152
+
"maxLength": 2000
1153
+
},
1154
+
"title": {
1155
+
"type": "string",
1156
+
"description": "The title of the bookmark. If left empty, reuse the URL.",
1157
+
"maxLength": 2048
1158
+
},
1159
+
"description": {
1160
+
"type": "string",
1161
+
"description": "A description of the bookmark's content. This should be ripped from the URL metadata and be static for all records using the URL.",
1162
+
"maxLength": 4096
1163
+
},
1164
+
"notes": {
1165
+
"type": "string",
1166
+
"description": "User-written notes for the bookmark. Public and personal.",
1167
+
"maxLength": 10000
1168
+
},
1169
+
"tags": {
1170
+
"type": "array",
1171
+
"description": "An array of tags. A format of solely alphanumeric characters and dashes should be used.",
1172
+
"items": {
1173
+
"$ref": "#/components/schemas/com.atproto.repo.strongRef"
1174
+
}
1175
+
},
1176
+
"unlisted": {
1177
+
"type": "boolean",
1178
+
"description": "Whether the bookmark can be used for feed indexing and aggregation"
1179
+
},
1180
+
"unread": {
1181
+
"type": "boolean",
1182
+
"description": "Whether the bookmark has been read by the user",
1183
+
"default": true
1184
+
},
1185
+
"languages": {
1186
+
"type": "array",
1187
+
"items": {
1188
+
"type": "string",
1189
+
"format": "language"
1190
+
},
1191
+
"maxItems": 5
1192
+
},
1193
+
"createdAt": {
1194
+
"type": "string",
1195
+
"description": "Client-declared timestamp when the bookmark is created",
1196
+
"format": "date-time"
1197
+
}
1198
+
}
1199
+
},
1200
+
"social.clippr.feed.tag": {
1201
+
"type": "object",
1202
+
"required": ["name", "createdAt"],
1203
+
"properties": {
1204
+
"name": {
1205
+
"type": "string",
1206
+
"description": "A de-duplicated string containing the name of the tag",
1207
+
"maxLength": 64
1208
+
},
1209
+
"color": {
1210
+
"type": "string",
1211
+
"description": "A hexadecimal color code",
1212
+
"maxLength": 7
1213
+
},
1214
+
"description": {
1215
+
"type": "string",
1216
+
"description": "A description of the tag for additional context",
1217
+
"maxLength": 5000
1218
+
},
1219
+
"createdAt": {
1220
+
"type": "string",
1221
+
"description": "A client-defined timestamp for the creation of the tag",
1222
+
"format": "date-time"
1223
+
}
1224
+
}
142
1225
}
143
1226
}
144
1227
}
+31
frontend/.prettierrc
+31
frontend/.prettierrc
···
1
+
{
2
+
"trailingComma": "all",
3
+
"useTabs": true,
4
+
"tabWidth": 2,
5
+
"printWidth": 80,
6
+
"semi": true,
7
+
"singleQuote": false,
8
+
"bracketSpacing": true,
9
+
"plugins": ["prettier-plugin-astro"],
10
+
"overrides": [
11
+
{
12
+
"files": ["tsconfig.json", "jsconfig.json"],
13
+
"options": {
14
+
"parser": "jsonc"
15
+
}
16
+
},
17
+
{
18
+
"files": ["*.md"],
19
+
"options": {
20
+
"printWidth": 100,
21
+
"proseWrap": "always"
22
+
}
23
+
},
24
+
{
25
+
"files": "*.astro",
26
+
"options": {
27
+
"parser": "astro"
28
+
}
29
+
}
30
+
]
31
+
}
+2
-2
frontend/.vscode/extensions.json
+2
-2
frontend/.vscode/extensions.json
+9
-9
frontend/.vscode/launch.json
+9
-9
frontend/.vscode/launch.json
···
1
1
{
2
-
"version": "0.2.0",
3
-
"configurations": [
4
-
{
5
-
"command": "./node_modules/.bin/astro dev",
6
-
"name": "Development server",
7
-
"request": "launch",
8
-
"type": "node-terminal"
9
-
}
10
-
]
2
+
"version": "0.2.0",
3
+
"configurations": [
4
+
{
5
+
"command": "./node_modules/.bin/astro dev",
6
+
"name": "Development server",
7
+
"request": "launch",
8
+
"type": "node-terminal"
9
+
}
10
+
]
11
11
}
+3
-1
frontend/README.md
+3
-1
frontend/README.md
-11
frontend/astro.config.mts
-11
frontend/astro.config.mts
···
1
-
/*
2
-
* clippr: a social bookmarking service for the AT Protocol
3
-
* Copyright (c) 2025 clippr contributors.
4
-
* SPDX-License-Identifier: AGPL-3.0-only
5
-
*/
6
-
7
-
// @ts-check
8
-
import { defineConfig } from 'astro/config';
9
-
10
-
// https://astro.build/config
11
-
export default defineConfig({});
+11
frontend/astro.config.ts
+11
frontend/astro.config.ts
···
1
+
/*
2
+
* clippr: a social bookmarking service for the AT Protocol
3
+
* Copyright (c) 2025 clippr contributors.
4
+
* SPDX-License-Identifier: AGPL-3.0-only
5
+
*/
6
+
7
+
// @ts-check
8
+
import { defineConfig } from "astro/config";
9
+
10
+
// https://astro.build/config
11
+
export default defineConfig({});
+20
frontend/eslint.config.ts
+20
frontend/eslint.config.ts
···
1
+
/*
2
+
* clippr: a social bookmarking service for the AT Protocol
3
+
* Copyright (c) 2025 clippr contributors.
4
+
* SPDX-License-Identifier: AGPL-3.0-only
5
+
*/
6
+
7
+
// @ts-check
8
+
9
+
import eslint from "@eslint/js";
10
+
import tseslint from "typescript-eslint";
11
+
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
12
+
import eslintPluginAstro from "eslint-plugin-astro";
13
+
14
+
export default tseslint.config(
15
+
eslintPluginPrettierRecommended,
16
+
tseslint.configs.recommended,
17
+
tseslint.configs.stylistic,
18
+
eslint.configs.recommended,
19
+
eslintPluginAstro.configs.recommended,
20
+
);
+33
-13
frontend/package.json
+33
-13
frontend/package.json
···
1
1
{
2
-
"name": "@clipprjs/client",
3
-
"type": "module",
4
-
"version": "0.1.0",
5
-
"scripts": {
6
-
"dev": "astro dev",
7
-
"build": "astro build",
8
-
"preview": "astro preview",
9
-
"astro": "astro"
10
-
},
11
-
"dependencies": {
12
-
"astro": "^5.9.1"
13
-
}
14
-
}
2
+
"name": "@clipprjs/client",
3
+
"type": "module",
4
+
"version": "0.1.0",
5
+
"scripts": {
6
+
"dev": "astro dev",
7
+
"build": "astro build",
8
+
"preview": "astro preview",
9
+
"astro": "astro",
10
+
"lint": "pnpm exec eslint .",
11
+
"lint-write": "pnpm exec eslint . --fix",
12
+
"fmt": "pnpm exec prettier --write ."
13
+
},
14
+
"dependencies": {
15
+
"@atcute/oauth-browser-client": "^1.0.26",
16
+
"astro": "^5.12.3"
17
+
},
18
+
"devDependencies": {
19
+
"@eslint/eslintrc": "^3.3.1",
20
+
"@eslint/js": "^9.32.0",
21
+
"@typescript-eslint/eslint-plugin": "^8.38.0",
22
+
"@typescript-eslint/parser": "^8.38.0",
23
+
"eslint": "^9.32.0",
24
+
"eslint-config-prettier": "^10.1.8",
25
+
"eslint-plugin-astro": "^1.3.1",
26
+
"eslint-plugin-prettier": "^5.5.3",
27
+
"globals": "^16.3.0",
28
+
"jiti": "^2.5.1",
29
+
"prettier": "^3.6.2",
30
+
"prettier-plugin-astro": "0.14.1",
31
+
"typescript": "^5.8.3",
32
+
"typescript-eslint": "^8.38.0"
33
+
}
34
+
}
+1575
-347
frontend/pnpm-lock.yaml
+1575
-347
frontend/pnpm-lock.yaml
···
8
8
9
9
.:
10
10
dependencies:
11
+
'@atcute/oauth-browser-client':
12
+
specifier: ^1.0.26
13
+
version: 1.0.26
11
14
astro:
12
-
specifier: ^5.9.1
13
-
version: 5.9.1(@types/node@22.15.30)(rollup@4.42.0)(typescript@5.8.3)
15
+
specifier: ^5.12.3
16
+
version: 5.12.3(@types/node@24.1.0)(jiti@2.5.1)(rollup@4.45.3)(typescript@5.8.3)
17
+
devDependencies:
18
+
'@eslint/eslintrc':
19
+
specifier: ^3.3.1
20
+
version: 3.3.1
21
+
'@eslint/js':
22
+
specifier: ^9.32.0
23
+
version: 9.32.0
24
+
'@typescript-eslint/eslint-plugin':
25
+
specifier: ^8.38.0
26
+
version: 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)
27
+
'@typescript-eslint/parser':
28
+
specifier: ^8.38.0
29
+
version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)
30
+
eslint:
31
+
specifier: ^9.32.0
32
+
version: 9.32.0(jiti@2.5.1)
33
+
eslint-config-prettier:
34
+
specifier: ^10.1.8
35
+
version: 10.1.8(eslint@9.32.0(jiti@2.5.1))
36
+
eslint-plugin-astro:
37
+
specifier: ^1.3.1
38
+
version: 1.3.1(eslint@9.32.0(jiti@2.5.1))
39
+
eslint-plugin-prettier:
40
+
specifier: ^5.5.3
41
+
version: 5.5.3(eslint-config-prettier@10.1.8(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1))(prettier@3.6.2)
42
+
globals:
43
+
specifier: ^16.3.0
44
+
version: 16.3.0
45
+
jiti:
46
+
specifier: ^2.5.1
47
+
version: 2.5.1
48
+
prettier:
49
+
specifier: ^3.6.2
50
+
version: 3.6.2
51
+
prettier-plugin-astro:
52
+
specifier: 0.14.1
53
+
version: 0.14.1
54
+
typescript:
55
+
specifier: ^5.8.3
56
+
version: 5.8.3
57
+
typescript-eslint:
58
+
specifier: ^8.38.0
59
+
version: 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)
14
60
15
61
packages:
16
62
17
-
'@astrojs/compiler@2.12.1':
18
-
resolution: {integrity: sha512-WDSyVIiz7sNcJcCJxJFITu6XjfGhJ50Z0auyaWsrM+xb07IlhBLFtQuDkNy0caVHWNcKTM2LISAaHhgkRqGAVg==}
63
+
'@astrojs/compiler@2.12.2':
64
+
resolution: {integrity: sha512-w2zfvhjNCkNMmMMOn5b0J8+OmUaBL1o40ipMvqcG6NRpdC+lKxmTi48DT8Xw0SzJ3AfmeFLB45zXZXtmbsjcgw==}
19
65
20
66
'@astrojs/internal-helpers@0.6.1':
21
67
resolution: {integrity: sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A==}
22
68
23
-
'@astrojs/markdown-remark@6.3.2':
24
-
resolution: {integrity: sha512-bO35JbWpVvyKRl7cmSJD822e8YA8ThR/YbUsciWNA7yTcqpIAL2hJDToWP5KcZBWxGT6IOdOkHSXARSNZc4l/Q==}
69
+
'@astrojs/markdown-remark@6.3.3':
70
+
resolution: {integrity: sha512-DDRtD1sPvAuA7ms2btc9A7/7DApKqgLMNrE6kh5tmkfy8utD0Z738gqd3p5aViYYdUtHIyEJ1X4mCMxfCfu15w==}
25
71
26
72
'@astrojs/prism@3.3.0':
27
73
resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==}
···
31
77
resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==}
32
78
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
33
79
80
+
'@atcute/client@4.0.3':
81
+
resolution: {integrity: sha512-RIOZWFVLca/HiPAAUDqQPOdOreCxTbL5cb+WUf5yqQOKIu5yEAP3eksinmlLmgIrlr5qVOE7brazUUzaskFCfw==}
82
+
83
+
'@atcute/identity@1.0.3':
84
+
resolution: {integrity: sha512-mNMxbKHFGys03A8JXKk0KfMBzdd0vrYMzZZWjpw1nYTs0+ea6bo5S1hwqVUZxHdo1gFHSe/t63jxQIF4yL9aKw==}
85
+
86
+
'@atcute/lexicons@1.1.0':
87
+
resolution: {integrity: sha512-LFqwnria78xLYb62Ri/+WwQpUTgZp2DuyolNGIIOV1dpiKhFFFh//nscHMA6IExFLQRqWDs3tTjy7zv0h3sf1Q==}
88
+
89
+
'@atcute/multibase@1.1.4':
90
+
resolution: {integrity: sha512-NUf5AeeSOmuZHGU+4GAaMtISJoG+ZHtW/vUVA4lK/YDt/7LODAW0Fd0NNIIUPVUoW0xJS6zSEIWvwLLuxmEHhA==}
91
+
92
+
'@atcute/oauth-browser-client@1.0.26':
93
+
resolution: {integrity: sha512-z8VUmwRO1sFu5Dq1qYQOQLenkTSNaOyzlUZhVwFR41ru+AP84MS5UHHW/NsdC1xJAq1v6mlLySJ+pjxdDW8IYA==}
94
+
95
+
'@atcute/uint8array@1.0.3':
96
+
resolution: {integrity: sha512-M/K+ihiVW8Pl2PFLzaC4E3l4JaZ1IH05Q0AbPWUC4cVHnd/gZ/1kAF5ngdtGvJeDMirHZ2VAy7OmAsPwR/2nlA==}
97
+
34
98
'@babel/helper-string-parser@7.27.1':
35
99
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
36
100
engines: {node: '>=6.9.0'}
···
39
103
resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
40
104
engines: {node: '>=6.9.0'}
41
105
42
-
'@babel/parser@7.27.5':
43
-
resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==}
106
+
'@babel/parser@7.28.0':
107
+
resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==}
44
108
engines: {node: '>=6.0.0'}
45
109
hasBin: true
46
110
47
-
'@babel/types@7.27.6':
48
-
resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==}
111
+
'@babel/types@7.28.2':
112
+
resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==}
49
113
engines: {node: '>=6.9.0'}
50
114
115
+
'@badrap/valita@0.4.5':
116
+
resolution: {integrity: sha512-4QwGbuhh/JesHRQj79mO/l37PvJj4l/tlAu7+S1n4h47qwaNpZ0WDvIwUGLYUsdi9uQ5UPpiG9wb1Wm3XUFBUQ==}
117
+
engines: {node: '>= 18'}
118
+
51
119
'@capsizecss/unpack@2.4.0':
52
120
resolution: {integrity: sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q==}
53
121
54
-
'@emnapi/runtime@1.4.3':
55
-
resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==}
122
+
'@emnapi/runtime@1.4.5':
123
+
resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==}
56
124
57
-
'@esbuild/aix-ppc64@0.25.5':
58
-
resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==}
125
+
'@esbuild/aix-ppc64@0.25.8':
126
+
resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==}
59
127
engines: {node: '>=18'}
60
128
cpu: [ppc64]
61
129
os: [aix]
62
130
63
-
'@esbuild/android-arm64@0.25.5':
64
-
resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==}
131
+
'@esbuild/android-arm64@0.25.8':
132
+
resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==}
65
133
engines: {node: '>=18'}
66
134
cpu: [arm64]
67
135
os: [android]
68
136
69
-
'@esbuild/android-arm@0.25.5':
70
-
resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==}
137
+
'@esbuild/android-arm@0.25.8':
138
+
resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==}
71
139
engines: {node: '>=18'}
72
140
cpu: [arm]
73
141
os: [android]
74
142
75
-
'@esbuild/android-x64@0.25.5':
76
-
resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==}
143
+
'@esbuild/android-x64@0.25.8':
144
+
resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==}
77
145
engines: {node: '>=18'}
78
146
cpu: [x64]
79
147
os: [android]
80
148
81
-
'@esbuild/darwin-arm64@0.25.5':
82
-
resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==}
149
+
'@esbuild/darwin-arm64@0.25.8':
150
+
resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==}
83
151
engines: {node: '>=18'}
84
152
cpu: [arm64]
85
153
os: [darwin]
86
154
87
-
'@esbuild/darwin-x64@0.25.5':
88
-
resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==}
155
+
'@esbuild/darwin-x64@0.25.8':
156
+
resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==}
89
157
engines: {node: '>=18'}
90
158
cpu: [x64]
91
159
os: [darwin]
92
160
93
-
'@esbuild/freebsd-arm64@0.25.5':
94
-
resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==}
161
+
'@esbuild/freebsd-arm64@0.25.8':
162
+
resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==}
95
163
engines: {node: '>=18'}
96
164
cpu: [arm64]
97
165
os: [freebsd]
98
166
99
-
'@esbuild/freebsd-x64@0.25.5':
100
-
resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==}
167
+
'@esbuild/freebsd-x64@0.25.8':
168
+
resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==}
101
169
engines: {node: '>=18'}
102
170
cpu: [x64]
103
171
os: [freebsd]
104
172
105
-
'@esbuild/linux-arm64@0.25.5':
106
-
resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==}
173
+
'@esbuild/linux-arm64@0.25.8':
174
+
resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==}
107
175
engines: {node: '>=18'}
108
176
cpu: [arm64]
109
177
os: [linux]
110
178
111
-
'@esbuild/linux-arm@0.25.5':
112
-
resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==}
179
+
'@esbuild/linux-arm@0.25.8':
180
+
resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==}
113
181
engines: {node: '>=18'}
114
182
cpu: [arm]
115
183
os: [linux]
116
184
117
-
'@esbuild/linux-ia32@0.25.5':
118
-
resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==}
185
+
'@esbuild/linux-ia32@0.25.8':
186
+
resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==}
119
187
engines: {node: '>=18'}
120
188
cpu: [ia32]
121
189
os: [linux]
122
190
123
-
'@esbuild/linux-loong64@0.25.5':
124
-
resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==}
191
+
'@esbuild/linux-loong64@0.25.8':
192
+
resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==}
125
193
engines: {node: '>=18'}
126
194
cpu: [loong64]
127
195
os: [linux]
128
196
129
-
'@esbuild/linux-mips64el@0.25.5':
130
-
resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==}
197
+
'@esbuild/linux-mips64el@0.25.8':
198
+
resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==}
131
199
engines: {node: '>=18'}
132
200
cpu: [mips64el]
133
201
os: [linux]
134
202
135
-
'@esbuild/linux-ppc64@0.25.5':
136
-
resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==}
203
+
'@esbuild/linux-ppc64@0.25.8':
204
+
resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==}
137
205
engines: {node: '>=18'}
138
206
cpu: [ppc64]
139
207
os: [linux]
140
208
141
-
'@esbuild/linux-riscv64@0.25.5':
142
-
resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==}
209
+
'@esbuild/linux-riscv64@0.25.8':
210
+
resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==}
143
211
engines: {node: '>=18'}
144
212
cpu: [riscv64]
145
213
os: [linux]
146
214
147
-
'@esbuild/linux-s390x@0.25.5':
148
-
resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==}
215
+
'@esbuild/linux-s390x@0.25.8':
216
+
resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==}
149
217
engines: {node: '>=18'}
150
218
cpu: [s390x]
151
219
os: [linux]
152
220
153
-
'@esbuild/linux-x64@0.25.5':
154
-
resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==}
221
+
'@esbuild/linux-x64@0.25.8':
222
+
resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==}
155
223
engines: {node: '>=18'}
156
224
cpu: [x64]
157
225
os: [linux]
158
226
159
-
'@esbuild/netbsd-arm64@0.25.5':
160
-
resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==}
227
+
'@esbuild/netbsd-arm64@0.25.8':
228
+
resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==}
161
229
engines: {node: '>=18'}
162
230
cpu: [arm64]
163
231
os: [netbsd]
164
232
165
-
'@esbuild/netbsd-x64@0.25.5':
166
-
resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==}
233
+
'@esbuild/netbsd-x64@0.25.8':
234
+
resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==}
167
235
engines: {node: '>=18'}
168
236
cpu: [x64]
169
237
os: [netbsd]
170
238
171
-
'@esbuild/openbsd-arm64@0.25.5':
172
-
resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==}
239
+
'@esbuild/openbsd-arm64@0.25.8':
240
+
resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==}
173
241
engines: {node: '>=18'}
174
242
cpu: [arm64]
175
243
os: [openbsd]
176
244
177
-
'@esbuild/openbsd-x64@0.25.5':
178
-
resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==}
245
+
'@esbuild/openbsd-x64@0.25.8':
246
+
resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==}
179
247
engines: {node: '>=18'}
180
248
cpu: [x64]
181
249
os: [openbsd]
182
250
183
-
'@esbuild/sunos-x64@0.25.5':
184
-
resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==}
251
+
'@esbuild/openharmony-arm64@0.25.8':
252
+
resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==}
253
+
engines: {node: '>=18'}
254
+
cpu: [arm64]
255
+
os: [openharmony]
256
+
257
+
'@esbuild/sunos-x64@0.25.8':
258
+
resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==}
185
259
engines: {node: '>=18'}
186
260
cpu: [x64]
187
261
os: [sunos]
188
262
189
-
'@esbuild/win32-arm64@0.25.5':
190
-
resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==}
263
+
'@esbuild/win32-arm64@0.25.8':
264
+
resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==}
191
265
engines: {node: '>=18'}
192
266
cpu: [arm64]
193
267
os: [win32]
194
268
195
-
'@esbuild/win32-ia32@0.25.5':
196
-
resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==}
269
+
'@esbuild/win32-ia32@0.25.8':
270
+
resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==}
197
271
engines: {node: '>=18'}
198
272
cpu: [ia32]
199
273
os: [win32]
200
274
201
-
'@esbuild/win32-x64@0.25.5':
202
-
resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==}
275
+
'@esbuild/win32-x64@0.25.8':
276
+
resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==}
203
277
engines: {node: '>=18'}
204
278
cpu: [x64]
205
279
os: [win32]
206
280
281
+
'@eslint-community/eslint-utils@4.7.0':
282
+
resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
283
+
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
284
+
peerDependencies:
285
+
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
286
+
287
+
'@eslint-community/regexpp@4.12.1':
288
+
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
289
+
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
290
+
291
+
'@eslint/config-array@0.21.0':
292
+
resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
293
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
294
+
295
+
'@eslint/config-helpers@0.3.0':
296
+
resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==}
297
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
298
+
299
+
'@eslint/core@0.15.1':
300
+
resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==}
301
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
302
+
303
+
'@eslint/eslintrc@3.3.1':
304
+
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
305
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
306
+
307
+
'@eslint/js@9.32.0':
308
+
resolution: {integrity: sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==}
309
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
310
+
311
+
'@eslint/object-schema@2.1.6':
312
+
resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
313
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
314
+
315
+
'@eslint/plugin-kit@0.3.4':
316
+
resolution: {integrity: sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==}
317
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
318
+
319
+
'@humanfs/core@0.19.1':
320
+
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
321
+
engines: {node: '>=18.18.0'}
322
+
323
+
'@humanfs/node@0.16.6':
324
+
resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
325
+
engines: {node: '>=18.18.0'}
326
+
327
+
'@humanwhocodes/module-importer@1.0.1':
328
+
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
329
+
engines: {node: '>=12.22'}
330
+
331
+
'@humanwhocodes/retry@0.3.1':
332
+
resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
333
+
engines: {node: '>=18.18'}
334
+
335
+
'@humanwhocodes/retry@0.4.3':
336
+
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
337
+
engines: {node: '>=18.18'}
338
+
207
339
'@img/sharp-darwin-arm64@0.33.5':
208
340
resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
209
341
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
···
309
441
cpu: [x64]
310
442
os: [win32]
311
443
312
-
'@jridgewell/sourcemap-codec@1.5.0':
313
-
resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
444
+
'@jridgewell/sourcemap-codec@1.5.4':
445
+
resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==}
446
+
447
+
'@nodelib/fs.scandir@2.1.5':
448
+
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
449
+
engines: {node: '>= 8'}
450
+
451
+
'@nodelib/fs.stat@2.0.5':
452
+
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
453
+
engines: {node: '>= 8'}
454
+
455
+
'@nodelib/fs.walk@1.2.8':
456
+
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
457
+
engines: {node: '>= 8'}
314
458
315
459
'@oslojs/encoding@1.1.0':
316
460
resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==}
317
461
318
-
'@rollup/pluginutils@5.1.4':
319
-
resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==}
462
+
'@pkgr/core@0.2.9':
463
+
resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
464
+
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
465
+
466
+
'@rollup/pluginutils@5.2.0':
467
+
resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==}
320
468
engines: {node: '>=14.0.0'}
321
469
peerDependencies:
322
470
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
···
324
472
rollup:
325
473
optional: true
326
474
327
-
'@rollup/rollup-android-arm-eabi@4.42.0':
328
-
resolution: {integrity: sha512-gldmAyS9hpj+H6LpRNlcjQWbuKUtb94lodB9uCz71Jm+7BxK1VIOo7y62tZZwxhA7j1ylv/yQz080L5WkS+LoQ==}
475
+
'@rollup/rollup-android-arm-eabi@4.45.3':
476
+
resolution: {integrity: sha512-8oQkCTve4H4B4JpmD2FV7fV2ZPTxJHN//bRhCqPUU8v6c5APlxteAXyc7BFaEb4aGpUzrPLU4PoAcGhwmRzZTA==}
329
477
cpu: [arm]
330
478
os: [android]
331
479
332
-
'@rollup/rollup-android-arm64@4.42.0':
333
-
resolution: {integrity: sha512-bpRipfTgmGFdCZDFLRvIkSNO1/3RGS74aWkJJTFJBH7h3MRV4UijkaEUeOMbi9wxtxYmtAbVcnMtHTPBhLEkaw==}
480
+
'@rollup/rollup-android-arm64@4.45.3':
481
+
resolution: {integrity: sha512-StOsmdXHU2hx3UFTTs6yYxCSwSIgLsfjUBICXyWj625M32OOjakXlaZuGKL+jA3Nvv35+hMxrm/64eCoT07SYQ==}
334
482
cpu: [arm64]
335
483
os: [android]
336
484
337
-
'@rollup/rollup-darwin-arm64@4.42.0':
338
-
resolution: {integrity: sha512-JxHtA081izPBVCHLKnl6GEA0w3920mlJPLh89NojpU2GsBSB6ypu4erFg/Wx1qbpUbepn0jY4dVWMGZM8gplgA==}
485
+
'@rollup/rollup-darwin-arm64@4.45.3':
486
+
resolution: {integrity: sha512-6CfLF3eqKhCdhK0GUnR5ZS99OFz+dtOeB/uePznLKxjCsk5QjT/V0eSEBb4vj+o/ri3i35MseSEQHCLLAgClVw==}
339
487
cpu: [arm64]
340
488
os: [darwin]
341
489
342
-
'@rollup/rollup-darwin-x64@4.42.0':
343
-
resolution: {integrity: sha512-rv5UZaWVIJTDMyQ3dCEK+m0SAn6G7H3PRc2AZmExvbDvtaDc+qXkei0knQWcI3+c9tEs7iL/4I4pTQoPbNL2SA==}
490
+
'@rollup/rollup-darwin-x64@4.45.3':
491
+
resolution: {integrity: sha512-QLWyWmAJG9elNTNLdcSXUT/M+J7DhEmvs1XPHYcgYkse3UHf9iWTJ+yTPlKMIetiQnNi+cNp+gY4gvjDpREfKw==}
344
492
cpu: [x64]
345
493
os: [darwin]
346
494
347
-
'@rollup/rollup-freebsd-arm64@4.42.0':
348
-
resolution: {integrity: sha512-fJcN4uSGPWdpVmvLuMtALUFwCHgb2XiQjuECkHT3lWLZhSQ3MBQ9pq+WoWeJq2PrNxr9rPM1Qx+IjyGj8/c6zQ==}
495
+
'@rollup/rollup-freebsd-arm64@4.45.3':
496
+
resolution: {integrity: sha512-ZOvBq+5nL0yrZIEo1eq6r7MPvkJ8kC1XATS/yHvcq3WbDNKNKBQ1uIF4hicyzDMoJt72G+sn1nKsFXpifZyRDA==}
349
497
cpu: [arm64]
350
498
os: [freebsd]
351
499
352
-
'@rollup/rollup-freebsd-x64@4.42.0':
353
-
resolution: {integrity: sha512-CziHfyzpp8hJpCVE/ZdTizw58gr+m7Y2Xq5VOuCSrZR++th2xWAz4Nqk52MoIIrV3JHtVBhbBsJcAxs6NammOQ==}
500
+
'@rollup/rollup-freebsd-x64@4.45.3':
501
+
resolution: {integrity: sha512-AYvGR07wecEnyYSovyJ71pTOulbNvsrpRpK6i/IM1b0UGX1vFx51afYuPYPxnvE9aCl5xPnhQicEvdIMxClRgQ==}
354
502
cpu: [x64]
355
503
os: [freebsd]
356
504
357
-
'@rollup/rollup-linux-arm-gnueabihf@4.42.0':
358
-
resolution: {integrity: sha512-UsQD5fyLWm2Fe5CDM7VPYAo+UC7+2Px4Y+N3AcPh/LdZu23YcuGPegQly++XEVaC8XUTFVPscl5y5Cl1twEI4A==}
505
+
'@rollup/rollup-linux-arm-gnueabihf@4.45.3':
506
+
resolution: {integrity: sha512-Yx8Cp38tfRRToVLuIWzBHV25/QPzpUreOPIiUuNV7KahNPurYg2pYQ4l7aYnvpvklO1riX4643bXLvDsYSBIrA==}
359
507
cpu: [arm]
360
508
os: [linux]
361
509
362
-
'@rollup/rollup-linux-arm-musleabihf@4.42.0':
363
-
resolution: {integrity: sha512-/i8NIrlgc/+4n1lnoWl1zgH7Uo0XK5xK3EDqVTf38KvyYgCU/Rm04+o1VvvzJZnVS5/cWSd07owkzcVasgfIkQ==}
510
+
'@rollup/rollup-linux-arm-musleabihf@4.45.3':
511
+
resolution: {integrity: sha512-4dIYRNxlXGDKnO6qgcda6LxnObPO6r1OBU9HG8F9pAnHHLtfbiOqCzDvkeHknx+5mfFVH4tWOl+h+cHylwsPWA==}
364
512
cpu: [arm]
365
513
os: [linux]
366
514
367
-
'@rollup/rollup-linux-arm64-gnu@4.42.0':
368
-
resolution: {integrity: sha512-eoujJFOvoIBjZEi9hJnXAbWg+Vo1Ov8n/0IKZZcPZ7JhBzxh2A+2NFyeMZIRkY9iwBvSjloKgcvnjTbGKHE44Q==}
515
+
'@rollup/rollup-linux-arm64-gnu@4.45.3':
516
+
resolution: {integrity: sha512-M6uVlWKmhLN7LguLDu6396K1W5IBlAaRonjlHQgc3s4dOGceu0FeBuvbXiUPYvup/6b5Ln7IEX7XNm68DN4vrg==}
369
517
cpu: [arm64]
370
518
os: [linux]
371
519
372
-
'@rollup/rollup-linux-arm64-musl@4.42.0':
373
-
resolution: {integrity: sha512-/3NrcOWFSR7RQUQIuZQChLND36aTU9IYE4j+TB40VU78S+RA0IiqHR30oSh6P1S9f9/wVOenHQnacs/Byb824g==}
520
+
'@rollup/rollup-linux-arm64-musl@4.45.3':
521
+
resolution: {integrity: sha512-emaYiOTQJUd6fC9a6jcw9zIWtzaUiuBC+vomggaM4In2iOra/lA6IMHlqZqQZr08NYXrOPMVigreLMeSAwv3Uw==}
374
522
cpu: [arm64]
375
523
os: [linux]
376
524
377
-
'@rollup/rollup-linux-loongarch64-gnu@4.42.0':
378
-
resolution: {integrity: sha512-O8AplvIeavK5ABmZlKBq9/STdZlnQo7Sle0LLhVA7QT+CiGpNVe197/t8Aph9bhJqbDVGCHpY2i7QyfEDDStDg==}
525
+
'@rollup/rollup-linux-loongarch64-gnu@4.45.3':
526
+
resolution: {integrity: sha512-3P77T5AQ4UfVRJSrTKLiUZDJ6XsxeP80027bp6mOFh8sevSD038mYuIYFiUtrSJxxgFb+NgRJFF9oIa0rlUsmg==}
379
527
cpu: [loong64]
380
528
os: [linux]
381
529
382
-
'@rollup/rollup-linux-powerpc64le-gnu@4.42.0':
383
-
resolution: {integrity: sha512-6Qb66tbKVN7VyQrekhEzbHRxXXFFD8QKiFAwX5v9Xt6FiJ3BnCVBuyBxa2fkFGqxOCSGGYNejxd8ht+q5SnmtA==}
530
+
'@rollup/rollup-linux-ppc64-gnu@4.45.3':
531
+
resolution: {integrity: sha512-/VPH3ZVeSlmCBPhZdx/+4dMXDjaGMhDsWOBo9EwSkGbw2+OAqaslL53Ao2OqCxR0GgYjmmssJ+OoG+qYGE7IBg==}
384
532
cpu: [ppc64]
385
533
os: [linux]
386
534
387
-
'@rollup/rollup-linux-riscv64-gnu@4.42.0':
388
-
resolution: {integrity: sha512-KQETDSEBamQFvg/d8jajtRwLNBlGc3aKpaGiP/LvEbnmVUKlFta1vqJqTrvPtsYsfbE/DLg5CC9zyXRX3fnBiA==}
535
+
'@rollup/rollup-linux-riscv64-gnu@4.45.3':
536
+
resolution: {integrity: sha512-Hs5if0PjROl1MGMmZX3xMAIfqcGxQE2SJWUr/CpDQsOQn43Wq4IvXXxUMWtiY/BrzdqCCJlRgJ5DKxzS3qWkCw==}
389
537
cpu: [riscv64]
390
538
os: [linux]
391
539
392
-
'@rollup/rollup-linux-riscv64-musl@4.42.0':
393
-
resolution: {integrity: sha512-qMvnyjcU37sCo/tuC+JqeDKSuukGAd+pVlRl/oyDbkvPJ3awk6G6ua7tyum02O3lI+fio+eM5wsVd66X0jQtxw==}
540
+
'@rollup/rollup-linux-riscv64-musl@4.45.3':
541
+
resolution: {integrity: sha512-Qm0WOwh3Lk388+HJFl1ILGbd2iOoQf6yl4fdGqOjBzEA+5JYbLcwd+sGsZjs5pkt8Cr/1G42EiXmlRp9ZeTvFA==}
394
542
cpu: [riscv64]
395
543
os: [linux]
396
544
397
-
'@rollup/rollup-linux-s390x-gnu@4.42.0':
398
-
resolution: {integrity: sha512-I2Y1ZUgTgU2RLddUHXTIgyrdOwljjkmcZ/VilvaEumtS3Fkuhbw4p4hgHc39Ypwvo2o7sBFNl2MquNvGCa55Iw==}
545
+
'@rollup/rollup-linux-s390x-gnu@4.45.3':
546
+
resolution: {integrity: sha512-VJdknTaYw+TqXzlh9c7vaVMh/fV2sU8Khfk4a9vAdYXJawpjf6z3U1k7vDWx2IQ9ZOPoOPxgVpDfYOYhxD7QUA==}
399
547
cpu: [s390x]
400
548
os: [linux]
401
549
402
-
'@rollup/rollup-linux-x64-gnu@4.42.0':
403
-
resolution: {integrity: sha512-Gfm6cV6mj3hCUY8TqWa63DB8Mx3NADoFwiJrMpoZ1uESbK8FQV3LXkhfry+8bOniq9pqY1OdsjFWNsSbfjPugw==}
550
+
'@rollup/rollup-linux-x64-gnu@4.45.3':
551
+
resolution: {integrity: sha512-SUDXU5YabLAMl86FpupSQQEWzVG8X0HM+Q/famnJusbPiUgQnTGuSxtxg4UAYgv1ZmRV1nioYYXsgtSokU/7+Q==}
404
552
cpu: [x64]
405
553
os: [linux]
406
554
407
-
'@rollup/rollup-linux-x64-musl@4.42.0':
408
-
resolution: {integrity: sha512-g86PF8YZ9GRqkdi0VoGlcDUb4rYtQKyTD1IVtxxN4Hpe7YqLBShA7oHMKU6oKTCi3uxwW4VkIGnOaH/El8de3w==}
555
+
'@rollup/rollup-linux-x64-musl@4.45.3':
556
+
resolution: {integrity: sha512-ezmqknOUFgZMN6wW+Avlo4sXF3Frswd+ncrwMz4duyZ5Eqd+dAYgJ+A1MY+12LNZ7XDhCiijJceueYvtnzdviw==}
409
557
cpu: [x64]
410
558
os: [linux]
411
559
412
-
'@rollup/rollup-win32-arm64-msvc@4.42.0':
413
-
resolution: {integrity: sha512-+axkdyDGSp6hjyzQ5m1pgcvQScfHnMCcsXkx8pTgy/6qBmWVhtRVlgxjWwDp67wEXXUr0x+vD6tp5W4x6V7u1A==}
560
+
'@rollup/rollup-win32-arm64-msvc@4.45.3':
561
+
resolution: {integrity: sha512-1YfXoUEE++gIW66zNB9Twd0Ua5xCXpfYppFUxVT/Io5ZT3fO6Se+C/Jvmh3usaIHHyi53t3kpfjydO2GAy5eBA==}
414
562
cpu: [arm64]
415
563
os: [win32]
416
564
417
-
'@rollup/rollup-win32-ia32-msvc@4.42.0':
418
-
resolution: {integrity: sha512-F+5J9pelstXKwRSDq92J0TEBXn2nfUrQGg+HK1+Tk7VOL09e0gBqUHugZv7SW4MGrYj41oNCUe3IKCDGVlis2g==}
565
+
'@rollup/rollup-win32-ia32-msvc@4.45.3':
566
+
resolution: {integrity: sha512-Iok2YA3PvC163rVZf2Zy81A0g88IUcSPeU5pOilcbICXre2EP1mxn1Db/l09Z/SK1vdSLtpJXAnwGuMOyf5O9g==}
419
567
cpu: [ia32]
420
568
os: [win32]
421
569
422
-
'@rollup/rollup-win32-x64-msvc@4.42.0':
423
-
resolution: {integrity: sha512-LpHiJRwkaVz/LqjHjK8LCi8osq7elmpwujwbXKNW88bM8eeGxavJIKKjkjpMHAh/2xfnrt1ZSnhTv41WYUHYmA==}
570
+
'@rollup/rollup-win32-x64-msvc@4.45.3':
571
+
resolution: {integrity: sha512-HwHCH5GQTOeGYP5wBEBXFVhfQecwRl24Rugoqhh8YwGarsU09bHhOKuqlyW4ZolZCan3eTUax7UJbGSmKSM51A==}
424
572
cpu: [x64]
425
573
os: [win32]
426
574
427
-
'@shikijs/core@3.6.0':
428
-
resolution: {integrity: sha512-9By7Xb3olEX0o6UeJyPLI1PE1scC4d3wcVepvtv2xbuN9/IThYN4Wcwh24rcFeASzPam11MCq8yQpwwzCgSBRw==}
575
+
'@shikijs/core@3.8.1':
576
+
resolution: {integrity: sha512-uTSXzUBQ/IgFcUa6gmGShCHr4tMdR3pxUiiWKDm8pd42UKJdYhkAYsAmHX5mTwybQ5VyGDgTjW4qKSsRvGSang==}
429
577
430
-
'@shikijs/engine-javascript@3.6.0':
431
-
resolution: {integrity: sha512-7YnLhZG/TU05IHMG14QaLvTW/9WiK8SEYafceccHUSXs2Qr5vJibUwsDfXDLmRi0zHdzsxrGKpSX6hnqe0k8nA==}
578
+
'@shikijs/engine-javascript@3.8.1':
579
+
resolution: {integrity: sha512-rZRp3BM1llrHkuBPAdYAzjlF7OqlM0rm/7EWASeCcY7cRYZIrOnGIHE9qsLz5TCjGefxBFnwgIECzBs2vmOyKA==}
432
580
433
-
'@shikijs/engine-oniguruma@3.6.0':
434
-
resolution: {integrity: sha512-nmOhIZ9yT3Grd+2plmW/d8+vZ2pcQmo/UnVwXMUXAKTXdi+LK0S08Ancrz5tQQPkxvjBalpMW2aKvwXfelauvA==}
581
+
'@shikijs/engine-oniguruma@3.8.1':
582
+
resolution: {integrity: sha512-KGQJZHlNY7c656qPFEQpIoqOuC4LrxjyNndRdzk5WKB/Ie87+NJCF1xo9KkOUxwxylk7rT6nhlZyTGTC4fCe1g==}
435
583
436
-
'@shikijs/langs@3.6.0':
437
-
resolution: {integrity: sha512-IdZkQJaLBu1LCYCwkr30hNuSDfllOT8RWYVZK1tD2J03DkiagYKRxj/pDSl8Didml3xxuyzUjgtioInwEQM/TA==}
584
+
'@shikijs/langs@3.8.1':
585
+
resolution: {integrity: sha512-TjOFg2Wp1w07oKnXjs0AUMb4kJvujML+fJ1C5cmEj45lhjbUXtziT1x2bPQb9Db6kmPhkG5NI2tgYW1/DzhUuQ==}
438
586
439
-
'@shikijs/themes@3.6.0':
440
-
resolution: {integrity: sha512-Fq2j4nWr1DF4drvmhqKq8x5vVQ27VncF8XZMBuHuQMZvUSS3NBgpqfwz/FoGe36+W6PvniZ1yDlg2d4kmYDU6w==}
587
+
'@shikijs/themes@3.8.1':
588
+
resolution: {integrity: sha512-Vu3t3BBLifc0GB0UPg2Pox1naTemrrvyZv2lkiSw3QayVV60me1ujFQwPZGgUTmwXl1yhCPW8Lieesm0CYruLQ==}
441
589
442
-
'@shikijs/types@3.6.0':
443
-
resolution: {integrity: sha512-cLWFiToxYu0aAzJqhXTQsFiJRTFDAGl93IrMSBNaGSzs7ixkLfdG6pH11HipuWFGW5vyx4X47W8HDQ7eSrmBUg==}
590
+
'@shikijs/types@3.8.1':
591
+
resolution: {integrity: sha512-5C39Q8/8r1I26suLh+5TPk1DTrbY/kn3IdWA5HdizR0FhlhD05zx5nKCqhzSfDHH3p4S0ZefxWd77DLV+8FhGg==}
444
592
445
593
'@shikijs/vscode-textmate@10.0.2':
446
594
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
···
451
599
'@types/debug@4.1.12':
452
600
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
453
601
454
-
'@types/estree@1.0.7':
455
-
resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
456
-
457
602
'@types/estree@1.0.8':
458
603
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
459
604
···
463
608
'@types/hast@3.0.4':
464
609
resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
465
610
611
+
'@types/json-schema@7.0.15':
612
+
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
613
+
466
614
'@types/mdast@4.0.4':
467
615
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
468
616
···
472
620
'@types/nlcst@2.0.3':
473
621
resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==}
474
622
475
-
'@types/node@22.15.30':
476
-
resolution: {integrity: sha512-6Q7lr06bEHdlfplU6YRbgG1SFBdlsfNC4/lX+SkhiTs0cpJkOElmWls8PxDFv4yY/xKb8Y6SO0OmSX4wgqTZbA==}
623
+
'@types/node@24.1.0':
624
+
resolution: {integrity: sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==}
477
625
478
626
'@types/unist@3.0.3':
479
627
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
480
628
629
+
'@typescript-eslint/eslint-plugin@8.38.0':
630
+
resolution: {integrity: sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==}
631
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
632
+
peerDependencies:
633
+
'@typescript-eslint/parser': ^8.38.0
634
+
eslint: ^8.57.0 || ^9.0.0
635
+
typescript: '>=4.8.4 <5.9.0'
636
+
637
+
'@typescript-eslint/parser@8.38.0':
638
+
resolution: {integrity: sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==}
639
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
640
+
peerDependencies:
641
+
eslint: ^8.57.0 || ^9.0.0
642
+
typescript: '>=4.8.4 <5.9.0'
643
+
644
+
'@typescript-eslint/project-service@8.38.0':
645
+
resolution: {integrity: sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==}
646
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
647
+
peerDependencies:
648
+
typescript: '>=4.8.4 <5.9.0'
649
+
650
+
'@typescript-eslint/scope-manager@8.38.0':
651
+
resolution: {integrity: sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==}
652
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
653
+
654
+
'@typescript-eslint/tsconfig-utils@8.38.0':
655
+
resolution: {integrity: sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==}
656
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
657
+
peerDependencies:
658
+
typescript: '>=4.8.4 <5.9.0'
659
+
660
+
'@typescript-eslint/type-utils@8.38.0':
661
+
resolution: {integrity: sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==}
662
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
663
+
peerDependencies:
664
+
eslint: ^8.57.0 || ^9.0.0
665
+
typescript: '>=4.8.4 <5.9.0'
666
+
667
+
'@typescript-eslint/types@8.38.0':
668
+
resolution: {integrity: sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==}
669
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
670
+
671
+
'@typescript-eslint/typescript-estree@8.38.0':
672
+
resolution: {integrity: sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==}
673
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
674
+
peerDependencies:
675
+
typescript: '>=4.8.4 <5.9.0'
676
+
677
+
'@typescript-eslint/utils@8.38.0':
678
+
resolution: {integrity: sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==}
679
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
680
+
peerDependencies:
681
+
eslint: ^8.57.0 || ^9.0.0
682
+
typescript: '>=4.8.4 <5.9.0'
683
+
684
+
'@typescript-eslint/visitor-keys@8.38.0':
685
+
resolution: {integrity: sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==}
686
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
687
+
481
688
'@ungap/structured-clone@1.3.0':
482
689
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
483
690
691
+
acorn-jsx@5.3.2:
692
+
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
693
+
peerDependencies:
694
+
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
695
+
484
696
acorn@8.15.0:
485
697
resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
486
698
engines: {node: '>=0.4.0'}
487
699
hasBin: true
488
700
701
+
ajv@6.12.6:
702
+
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
703
+
489
704
ansi-align@3.0.1:
490
705
resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
491
706
···
496
711
ansi-regex@6.1.0:
497
712
resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
498
713
engines: {node: '>=12'}
714
+
715
+
ansi-styles@4.3.0:
716
+
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
717
+
engines: {node: '>=8'}
499
718
500
719
ansi-styles@6.2.1:
501
720
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
···
515
734
array-iterate@2.0.1:
516
735
resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==}
517
736
518
-
astro@5.9.1:
519
-
resolution: {integrity: sha512-wxoJcTbuDZNFSv6EaL0PAlrp0Wx6VnOAULCXvy0scsV70oWMeUkdxuBxfO54JxO5Qgyvwj9h99y6E0elqOpGtA==}
737
+
astro-eslint-parser@1.2.2:
738
+
resolution: {integrity: sha512-JepyLROIad6f44uyqMF6HKE2QbunNzp3mYKRcPoDGt0QkxXmH222FAFC64WTyQu2Kg8NNEXHTN/sWuUId9sSxw==}
739
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
740
+
741
+
astro@5.12.3:
742
+
resolution: {integrity: sha512-fU1hNPMkccm+FuonGsY5DFkC2QyuLCju++8L2ubzBtYBDBf6bmfgmVM7A2dK+Hl+ZJCUNgepsClhBpczj+2LRw==}
520
743
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
521
744
hasBin: true
522
745
746
+
astrojs-compiler-sync@1.1.1:
747
+
resolution: {integrity: sha512-0mKvB9sDQRIZPsEJadw6OaFbGJ92cJPPR++ICca9XEyiUAZqgVuk25jNmzHPT0KF80rI94trSZrUR5iHFXGGOQ==}
748
+
engines: {node: ^18.18.0 || >=20.9.0}
749
+
peerDependencies:
750
+
'@astrojs/compiler': '>=0.27.0'
751
+
523
752
axobject-query@4.1.0:
524
753
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
525
754
engines: {node: '>= 0.4'}
···
527
756
bail@2.0.2:
528
757
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
529
758
759
+
balanced-match@1.0.2:
760
+
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
761
+
530
762
base-64@1.0.0:
531
763
resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==}
532
764
···
540
772
resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==}
541
773
engines: {node: '>=18'}
542
774
775
+
brace-expansion@1.1.12:
776
+
resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
777
+
778
+
brace-expansion@2.0.2:
779
+
resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
780
+
781
+
braces@3.0.3:
782
+
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
783
+
engines: {node: '>=8'}
784
+
543
785
brotli@1.3.3:
544
786
resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==}
787
+
788
+
callsites@3.1.0:
789
+
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
790
+
engines: {node: '>=6'}
545
791
546
792
camelcase@8.0.0:
547
793
resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==}
···
550
796
ccount@2.0.1:
551
797
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
552
798
799
+
chalk@4.1.2:
800
+
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
801
+
engines: {node: '>=10'}
802
+
553
803
chalk@5.4.1:
554
804
resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==}
555
805
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
···
567
817
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
568
818
engines: {node: '>= 14.16.0'}
569
819
570
-
ci-info@4.2.0:
571
-
resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==}
820
+
ci-info@4.3.0:
821
+
resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==}
572
822
engines: {node: '>=8'}
573
823
574
824
cli-boxes@3.0.0:
···
603
853
common-ancestor-path@1.0.1:
604
854
resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
605
855
856
+
concat-map@0.0.1:
857
+
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
858
+
606
859
cookie-es@1.2.2:
607
860
resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==}
608
861
···
612
865
613
866
cross-fetch@3.2.0:
614
867
resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==}
868
+
869
+
cross-spawn@7.0.6:
870
+
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
871
+
engines: {node: '>= 8'}
615
872
616
873
crossws@0.3.5:
617
874
resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==}
···
634
891
supports-color:
635
892
optional: true
636
893
637
-
decode-named-character-reference@1.1.0:
638
-
resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==}
894
+
decode-named-character-reference@1.2.0:
895
+
resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==}
896
+
897
+
deep-is@0.1.4:
898
+
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
639
899
640
900
defu@6.1.4:
641
901
resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
···
688
948
es-module-lexer@1.7.0:
689
949
resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
690
950
691
-
esbuild@0.25.5:
692
-
resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==}
951
+
esbuild@0.25.8:
952
+
resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==}
693
953
engines: {node: '>=18'}
694
954
hasBin: true
695
955
956
+
escape-string-regexp@4.0.0:
957
+
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
958
+
engines: {node: '>=10'}
959
+
696
960
escape-string-regexp@5.0.0:
697
961
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
698
962
engines: {node: '>=12'}
699
963
964
+
eslint-compat-utils@0.6.5:
965
+
resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==}
966
+
engines: {node: '>=12'}
967
+
peerDependencies:
968
+
eslint: '>=6.0.0'
969
+
970
+
eslint-config-prettier@10.1.8:
971
+
resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==}
972
+
hasBin: true
973
+
peerDependencies:
974
+
eslint: '>=7.0.0'
975
+
976
+
eslint-plugin-astro@1.3.1:
977
+
resolution: {integrity: sha512-2XaLCMQm8htW1UvJvy1Zcmg8l0ziskitiUfJTn/w1Mk7r4Mxj0fZeNpN6UTNrm64XBIXSa5h8UCGrg8mdu47+g==}
978
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
979
+
peerDependencies:
980
+
eslint: '>=8.57.0'
981
+
982
+
eslint-plugin-prettier@5.5.3:
983
+
resolution: {integrity: sha512-NAdMYww51ehKfDyDhv59/eIItUVzU0Io9H2E8nHNGKEeeqlnci+1gCvrHib6EmZdf6GxF+LCV5K7UC65Ezvw7w==}
984
+
engines: {node: ^14.18.0 || >=16.0.0}
985
+
peerDependencies:
986
+
'@types/eslint': '>=8.0.0'
987
+
eslint: '>=8.0.0'
988
+
eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0'
989
+
prettier: '>=3.0.0'
990
+
peerDependenciesMeta:
991
+
'@types/eslint':
992
+
optional: true
993
+
eslint-config-prettier:
994
+
optional: true
995
+
996
+
eslint-scope@8.4.0:
997
+
resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
998
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
999
+
1000
+
eslint-visitor-keys@3.4.3:
1001
+
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
1002
+
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1003
+
1004
+
eslint-visitor-keys@4.2.1:
1005
+
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
1006
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1007
+
1008
+
eslint@9.32.0:
1009
+
resolution: {integrity: sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==}
1010
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1011
+
hasBin: true
1012
+
peerDependencies:
1013
+
jiti: '*'
1014
+
peerDependenciesMeta:
1015
+
jiti:
1016
+
optional: true
1017
+
1018
+
esm-env@1.2.2:
1019
+
resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
1020
+
1021
+
espree@10.4.0:
1022
+
resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
1023
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1024
+
1025
+
esquery@1.6.0:
1026
+
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
1027
+
engines: {node: '>=0.10'}
1028
+
1029
+
esrecurse@4.3.0:
1030
+
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1031
+
engines: {node: '>=4.0'}
1032
+
1033
+
estraverse@5.3.0:
1034
+
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1035
+
engines: {node: '>=4.0'}
1036
+
700
1037
estree-walker@2.0.2:
701
1038
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
702
1039
703
1040
estree-walker@3.0.3:
704
1041
resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
705
1042
1043
+
esutils@2.0.3:
1044
+
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1045
+
engines: {node: '>=0.10.0'}
1046
+
706
1047
eventemitter3@5.0.1:
707
1048
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
708
1049
···
712
1053
fast-deep-equal@3.1.3:
713
1054
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
714
1055
715
-
fdir@6.4.5:
716
-
resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==}
1056
+
fast-diff@1.3.0:
1057
+
resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
1058
+
1059
+
fast-glob@3.3.3:
1060
+
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
1061
+
engines: {node: '>=8.6.0'}
1062
+
1063
+
fast-json-stable-stringify@2.1.0:
1064
+
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1065
+
1066
+
fast-levenshtein@2.0.6:
1067
+
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1068
+
1069
+
fastq@1.19.1:
1070
+
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
1071
+
1072
+
fdir@6.4.6:
1073
+
resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==}
717
1074
peerDependencies:
718
1075
picomatch: ^3 || ^4
719
1076
peerDependenciesMeta:
720
1077
picomatch:
721
1078
optional: true
722
1079
1080
+
file-entry-cache@8.0.0:
1081
+
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
1082
+
engines: {node: '>=16.0.0'}
1083
+
1084
+
fill-range@7.1.1:
1085
+
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
1086
+
engines: {node: '>=8'}
1087
+
1088
+
find-up@5.0.0:
1089
+
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1090
+
engines: {node: '>=10'}
1091
+
1092
+
flat-cache@4.0.1:
1093
+
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
1094
+
engines: {node: '>=16'}
1095
+
1096
+
flatted@3.3.3:
1097
+
resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
1098
+
723
1099
flattie@1.1.1:
724
1100
resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==}
725
1101
engines: {node: '>=8'}
···
742
1118
github-slugger@2.0.0:
743
1119
resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==}
744
1120
1121
+
glob-parent@5.1.2:
1122
+
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1123
+
engines: {node: '>= 6'}
1124
+
1125
+
glob-parent@6.0.2:
1126
+
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1127
+
engines: {node: '>=10.13.0'}
1128
+
1129
+
globals@14.0.0:
1130
+
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
1131
+
engines: {node: '>=18'}
1132
+
1133
+
globals@15.15.0:
1134
+
resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
1135
+
engines: {node: '>=18'}
1136
+
1137
+
globals@16.3.0:
1138
+
resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==}
1139
+
engines: {node: '>=18'}
1140
+
1141
+
graphemer@1.4.0:
1142
+
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
1143
+
745
1144
h3@1.15.3:
746
1145
resolution: {integrity: sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ==}
1146
+
1147
+
has-flag@4.0.0:
1148
+
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1149
+
engines: {node: '>=8'}
747
1150
748
1151
hast-util-from-html@2.0.3:
749
1152
resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==}
···
784
1187
http-cache-semantics@4.2.0:
785
1188
resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==}
786
1189
1190
+
ignore@5.3.2:
1191
+
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
1192
+
engines: {node: '>= 4'}
1193
+
1194
+
ignore@7.0.5:
1195
+
resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
1196
+
engines: {node: '>= 4'}
1197
+
1198
+
import-fresh@3.3.1:
1199
+
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
1200
+
engines: {node: '>=6'}
1201
+
787
1202
import-meta-resolve@4.1.0:
788
1203
resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
789
1204
1205
+
imurmurhash@0.1.4:
1206
+
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1207
+
engines: {node: '>=0.8.19'}
1208
+
790
1209
iron-webcrypto@1.2.1:
791
1210
resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==}
792
1211
···
798
1217
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
799
1218
hasBin: true
800
1219
1220
+
is-extglob@2.1.1:
1221
+
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1222
+
engines: {node: '>=0.10.0'}
1223
+
801
1224
is-fullwidth-code-point@3.0.0:
802
1225
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
803
1226
engines: {node: '>=8'}
804
1227
1228
+
is-glob@4.0.3:
1229
+
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1230
+
engines: {node: '>=0.10.0'}
1231
+
805
1232
is-inside-container@1.0.0:
806
1233
resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
807
1234
engines: {node: '>=14.16'}
808
1235
hasBin: true
809
1236
1237
+
is-number@7.0.0:
1238
+
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1239
+
engines: {node: '>=0.12.0'}
1240
+
810
1241
is-plain-obj@4.1.0:
811
1242
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
812
1243
engines: {node: '>=12'}
···
815
1246
resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
816
1247
engines: {node: '>=16'}
817
1248
1249
+
isexe@2.0.0:
1250
+
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1251
+
1252
+
jiti@2.5.1:
1253
+
resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==}
1254
+
hasBin: true
1255
+
818
1256
js-yaml@4.1.0:
819
1257
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
820
1258
hasBin: true
821
1259
1260
+
json-buffer@3.0.1:
1261
+
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1262
+
1263
+
json-schema-traverse@0.4.1:
1264
+
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1265
+
1266
+
json-stable-stringify-without-jsonify@1.0.1:
1267
+
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1268
+
1269
+
keyv@4.5.4:
1270
+
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1271
+
822
1272
kleur@3.0.3:
823
1273
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
824
1274
engines: {node: '>=6'}
···
827
1277
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
828
1278
engines: {node: '>=6'}
829
1279
1280
+
levn@0.4.1:
1281
+
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1282
+
engines: {node: '>= 0.8.0'}
1283
+
1284
+
locate-path@6.0.0:
1285
+
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1286
+
engines: {node: '>=10'}
1287
+
1288
+
lodash.merge@4.6.2:
1289
+
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1290
+
830
1291
longest-streak@3.1.0:
831
1292
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
832
1293
···
883
1344
884
1345
mdn-data@2.12.2:
885
1346
resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==}
1347
+
1348
+
merge2@1.4.1:
1349
+
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1350
+
engines: {node: '>= 8'}
886
1351
887
1352
micromark-core-commonmark@2.0.3:
888
1353
resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
···
968
1433
micromark@4.0.2:
969
1434
resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
970
1435
1436
+
micromatch@4.0.8:
1437
+
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
1438
+
engines: {node: '>=8.6'}
1439
+
1440
+
minimatch@3.1.2:
1441
+
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1442
+
1443
+
minimatch@9.0.5:
1444
+
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
1445
+
engines: {node: '>=16 || 14 >=14.17'}
1446
+
971
1447
mrmime@2.0.1:
972
1448
resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
973
1449
engines: {node: '>=10'}
···
980
1456
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
981
1457
hasBin: true
982
1458
1459
+
nanoid@5.1.5:
1460
+
resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==}
1461
+
engines: {node: ^18 || >=20}
1462
+
hasBin: true
1463
+
1464
+
natural-compare@1.4.0:
1465
+
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1466
+
983
1467
neotraverse@0.6.18:
984
1468
resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==}
985
1469
engines: {node: '>= 10'}
···
999
1483
encoding:
1000
1484
optional: true
1001
1485
1002
-
node-mock-http@1.0.0:
1003
-
resolution: {integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==}
1486
+
node-mock-http@1.0.1:
1487
+
resolution: {integrity: sha512-0gJJgENizp4ghds/Ywu2FCmcRsgBTmRQzYPZm61wy+Em2sBarSka0OhQS5huLBg6od1zkNpnWMCZloQDFVvOMQ==}
1004
1488
1005
1489
normalize-path@3.0.0:
1006
1490
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
···
1018
1502
oniguruma-to-es@4.3.3:
1019
1503
resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==}
1020
1504
1505
+
optionator@0.9.4:
1506
+
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
1507
+
engines: {node: '>= 0.8.0'}
1508
+
1509
+
p-limit@3.1.0:
1510
+
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1511
+
engines: {node: '>=10'}
1512
+
1021
1513
p-limit@6.2.0:
1022
1514
resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==}
1023
1515
engines: {node: '>=18'}
1516
+
1517
+
p-locate@5.0.0:
1518
+
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1519
+
engines: {node: '>=10'}
1024
1520
1025
1521
p-queue@8.1.0:
1026
1522
resolution: {integrity: sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==}
···
1036
1532
pako@0.2.9:
1037
1533
resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==}
1038
1534
1535
+
parent-module@1.0.1:
1536
+
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1537
+
engines: {node: '>=6'}
1538
+
1039
1539
parse-latin@7.0.0:
1040
1540
resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==}
1041
1541
1042
1542
parse5@7.3.0:
1043
1543
resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
1044
1544
1545
+
path-exists@4.0.0:
1546
+
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1547
+
engines: {node: '>=8'}
1548
+
1549
+
path-key@3.1.1:
1550
+
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1551
+
engines: {node: '>=8'}
1552
+
1045
1553
picocolors@1.1.1:
1046
1554
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
1047
1555
···
1049
1557
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1050
1558
engines: {node: '>=8.6'}
1051
1559
1052
-
picomatch@4.0.2:
1053
-
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
1560
+
picomatch@4.0.3:
1561
+
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
1054
1562
engines: {node: '>=12'}
1055
1563
1056
-
postcss@8.5.4:
1057
-
resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==}
1564
+
postcss-selector-parser@7.1.0:
1565
+
resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==}
1566
+
engines: {node: '>=4'}
1567
+
1568
+
postcss@8.5.6:
1569
+
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
1058
1570
engines: {node: ^10 || ^12 || >=14}
1059
1571
1572
+
prelude-ls@1.2.1:
1573
+
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1574
+
engines: {node: '>= 0.8.0'}
1575
+
1576
+
prettier-linter-helpers@1.0.0:
1577
+
resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
1578
+
engines: {node: '>=6.0.0'}
1579
+
1580
+
prettier-plugin-astro@0.14.1:
1581
+
resolution: {integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==}
1582
+
engines: {node: ^14.15.0 || >=16.0.0}
1583
+
1584
+
prettier@3.6.2:
1585
+
resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==}
1586
+
engines: {node: '>=14'}
1587
+
hasBin: true
1588
+
1060
1589
prismjs@1.30.0:
1061
1590
resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
1062
1591
engines: {node: '>=6'}
···
1071
1600
property-information@7.1.0:
1072
1601
resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
1073
1602
1603
+
punycode@2.3.1:
1604
+
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
1605
+
engines: {node: '>=6'}
1606
+
1607
+
queue-microtask@1.2.3:
1608
+
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1609
+
1074
1610
radix3@1.1.2:
1075
1611
resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==}
1076
1612
···
1115
1651
remark-stringify@11.0.0:
1116
1652
resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
1117
1653
1654
+
resolve-from@4.0.0:
1655
+
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1656
+
engines: {node: '>=4'}
1657
+
1118
1658
restructure@3.0.2:
1119
1659
resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==}
1120
1660
···
1130
1670
retext@9.0.0:
1131
1671
resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==}
1132
1672
1133
-
rollup@4.42.0:
1134
-
resolution: {integrity: sha512-LW+Vse3BJPyGJGAJt1j8pWDKPd73QM8cRXYK1IxOBgL2AGLu7Xd2YOW0M2sLUBCkF5MshXXtMApyEAEzMVMsnw==}
1673
+
reusify@1.1.0:
1674
+
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
1675
+
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1676
+
1677
+
rollup@4.45.3:
1678
+
resolution: {integrity: sha512-STwyHZF3G+CrmZhB+qDiROq9s8B5PrOCYN6dtmOvwz585XBnyeHk1GTEhHJtUVb355/9uZhOazyVclTt5uahzA==}
1135
1679
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
1136
1680
hasBin: true
1137
1681
1682
+
run-parallel@1.2.0:
1683
+
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1684
+
1685
+
s.color@0.0.15:
1686
+
resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==}
1687
+
1688
+
sass-formatter@0.7.9:
1689
+
resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==}
1690
+
1138
1691
semver@7.7.2:
1139
1692
resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
1140
1693
engines: {node: '>=10'}
···
1144
1697
resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==}
1145
1698
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1146
1699
1147
-
shiki@3.6.0:
1148
-
resolution: {integrity: sha512-tKn/Y0MGBTffQoklaATXmTqDU02zx8NYBGQ+F6gy87/YjKbizcLd+Cybh/0ZtOBX9r1NEnAy/GTRDKtOsc1L9w==}
1700
+
shebang-command@2.0.0:
1701
+
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1702
+
engines: {node: '>=8'}
1703
+
1704
+
shebang-regex@3.0.0:
1705
+
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1706
+
engines: {node: '>=8'}
1707
+
1708
+
shiki@3.8.1:
1709
+
resolution: {integrity: sha512-+MYIyjwGPCaegbpBeFN9+oOifI8CKiKG3awI/6h3JeT85c//H2wDW/xCJEGuQ5jPqtbboKNqNy+JyX9PYpGwNg==}
1149
1710
1150
1711
simple-swizzle@0.2.2:
1151
1712
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
···
1153
1714
sisteransi@1.0.5:
1154
1715
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
1155
1716
1156
-
smol-toml@1.3.4:
1157
-
resolution: {integrity: sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA==}
1717
+
smol-toml@1.4.1:
1718
+
resolution: {integrity: sha512-CxdwHXyYTONGHThDbq5XdwbFsuY4wlClRGejfE2NtwUtiHYsP1QtNsHb/hnj31jKYSchztJsaA8pSQoVzkfCFg==}
1158
1719
engines: {node: '>= 18'}
1159
1720
1160
1721
source-map-js@1.2.1:
···
1183
1744
resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
1184
1745
engines: {node: '>=12'}
1185
1746
1747
+
strip-json-comments@3.1.1:
1748
+
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1749
+
engines: {node: '>=8'}
1750
+
1751
+
suf-log@2.5.3:
1752
+
resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==}
1753
+
1754
+
supports-color@7.2.0:
1755
+
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1756
+
engines: {node: '>=8'}
1757
+
1758
+
synckit@0.11.11:
1759
+
resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==}
1760
+
engines: {node: ^14.18.0 || >=16.0.0}
1761
+
1186
1762
tiny-inflate@1.0.3:
1187
1763
resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==}
1188
1764
···
1193
1769
resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
1194
1770
engines: {node: '>=12.0.0'}
1195
1771
1772
+
to-regex-range@5.0.1:
1773
+
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1774
+
engines: {node: '>=8.0'}
1775
+
1196
1776
tr46@0.0.3:
1197
1777
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
1198
1778
···
1202
1782
trough@2.2.0:
1203
1783
resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
1204
1784
1785
+
ts-api-utils@2.1.0:
1786
+
resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
1787
+
engines: {node: '>=18.12'}
1788
+
peerDependencies:
1789
+
typescript: '>=4.8.4'
1790
+
1205
1791
tsconfck@3.1.6:
1206
1792
resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==}
1207
1793
engines: {node: ^18 || >=20}
···
1215
1801
tslib@2.8.1:
1216
1802
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
1217
1803
1804
+
type-check@0.4.0:
1805
+
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1806
+
engines: {node: '>= 0.8.0'}
1807
+
1218
1808
type-fest@4.41.0:
1219
1809
resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
1220
1810
engines: {node: '>=16'}
1221
1811
1812
+
typescript-eslint@8.38.0:
1813
+
resolution: {integrity: sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==}
1814
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1815
+
peerDependencies:
1816
+
eslint: ^8.57.0 || ^9.0.0
1817
+
typescript: '>=4.8.4 <5.9.0'
1818
+
1222
1819
typescript@5.8.3:
1223
1820
resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
1224
1821
engines: {node: '>=14.17'}
···
1233
1830
uncrypto@0.1.3:
1234
1831
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
1235
1832
1236
-
undici-types@6.21.0:
1237
-
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
1833
+
undici-types@7.8.0:
1834
+
resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==}
1238
1835
1239
1836
unicode-properties@1.4.1:
1240
1837
resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==}
···
1245
1842
unified@11.0.5:
1246
1843
resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
1247
1844
1248
-
unifont@0.5.0:
1249
-
resolution: {integrity: sha512-4DueXMP5Hy4n607sh+vJ+rajoLu778aU3GzqeTCqsD/EaUcvqZT9wPC8kgK6Vjh22ZskrxyRCR71FwNOaYn6jA==}
1845
+
unifont@0.5.2:
1846
+
resolution: {integrity: sha512-LzR4WUqzH9ILFvjLAUU7dK3Lnou/qd5kD+IakBtBK4S15/+x2y9VX+DcWQv6s551R6W+vzwgVS6tFg3XggGBgg==}
1250
1847
1251
1848
unist-util-find-after@5.0.0:
1252
1849
resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==}
···
1275
1872
unist-util-visit@5.0.0:
1276
1873
resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
1277
1874
1278
-
unstorage@1.16.0:
1279
-
resolution: {integrity: sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==}
1875
+
unstorage@1.16.1:
1876
+
resolution: {integrity: sha512-gdpZ3guLDhz+zWIlYP1UwQ259tG5T5vYRzDaHMkQ1bBY1SQPutvZnrRjTFaWUUpseErJIgAZS51h6NOcZVZiqQ==}
1280
1877
peerDependencies:
1281
1878
'@azure/app-configuration': ^1.8.0
1282
1879
'@azure/cosmos': ^4.2.0
···
1286
1883
'@azure/storage-blob': ^12.26.0
1287
1884
'@capacitor/preferences': ^6.0.3 || ^7.0.0
1288
1885
'@deno/kv': '>=0.9.0'
1289
-
'@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0
1886
+
'@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0
1290
1887
'@planetscale/database': ^1.19.0
1291
1888
'@upstash/redis': ^1.34.3
1292
1889
'@vercel/blob': '>=0.27.1'
···
1334
1931
uploadthing:
1335
1932
optional: true
1336
1933
1934
+
uri-js@4.4.1:
1935
+
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1936
+
1937
+
util-deprecate@1.0.2:
1938
+
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1939
+
1337
1940
vfile-location@5.0.3:
1338
1941
resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
1339
1942
1340
-
vfile-message@4.0.2:
1341
-
resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
1943
+
vfile-message@4.0.3:
1944
+
resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
1342
1945
1343
1946
vfile@6.0.3:
1344
1947
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
···
1383
1986
yaml:
1384
1987
optional: true
1385
1988
1386
-
vitefu@1.0.6:
1387
-
resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==}
1989
+
vitefu@1.1.1:
1990
+
resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==}
1388
1991
peerDependencies:
1389
-
vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0
1992
+
vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0
1390
1993
peerDependenciesMeta:
1391
1994
vite:
1392
1995
optional: true
···
1404
2007
resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==}
1405
2008
engines: {node: '>=4'}
1406
2009
2010
+
which@2.0.2:
2011
+
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
2012
+
engines: {node: '>= 8'}
2013
+
hasBin: true
2014
+
1407
2015
widest-line@5.0.0:
1408
2016
resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==}
1409
2017
engines: {node: '>=18'}
1410
2018
2019
+
word-wrap@1.2.5:
2020
+
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
2021
+
engines: {node: '>=0.10.0'}
2022
+
1411
2023
wrap-ansi@9.0.0:
1412
2024
resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==}
1413
2025
engines: {node: '>=18'}
···
1419
2031
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
1420
2032
engines: {node: '>=12'}
1421
2033
2034
+
yocto-queue@0.1.0:
2035
+
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
2036
+
engines: {node: '>=10'}
2037
+
1422
2038
yocto-queue@1.2.1:
1423
2039
resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==}
1424
2040
engines: {node: '>=12.20'}
···
1431
2047
resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==}
1432
2048
engines: {node: '>=18'}
1433
2049
1434
-
zod-to-json-schema@3.24.5:
1435
-
resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==}
2050
+
zod-to-json-schema@3.24.6:
2051
+
resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==}
1436
2052
peerDependencies:
1437
2053
zod: ^3.24.1
1438
2054
···
1442
2058
typescript: ^4.9.4 || ^5.0.2
1443
2059
zod: ^3
1444
2060
1445
-
zod@3.25.56:
1446
-
resolution: {integrity: sha512-rd6eEF3BTNvQnR2e2wwolfTmUTnp70aUTqr0oaGbHifzC3BKJsoV+Gat8vxUMR1hwOKBs6El+qWehrHbCpW6SQ==}
2061
+
zod@3.25.76:
2062
+
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
1447
2063
1448
2064
zwitch@2.0.4:
1449
2065
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
1450
2066
1451
2067
snapshots:
1452
2068
1453
-
'@astrojs/compiler@2.12.1': {}
2069
+
'@astrojs/compiler@2.12.2': {}
1454
2070
1455
2071
'@astrojs/internal-helpers@0.6.1': {}
1456
2072
1457
-
'@astrojs/markdown-remark@6.3.2':
2073
+
'@astrojs/markdown-remark@6.3.3':
1458
2074
dependencies:
1459
2075
'@astrojs/internal-helpers': 0.6.1
1460
2076
'@astrojs/prism': 3.3.0
···
1470
2086
remark-parse: 11.0.0
1471
2087
remark-rehype: 11.1.2
1472
2088
remark-smartypants: 3.0.2
1473
-
shiki: 3.6.0
1474
-
smol-toml: 1.3.4
2089
+
shiki: 3.8.1
2090
+
smol-toml: 1.4.1
1475
2091
unified: 11.0.5
1476
2092
unist-util-remove-position: 5.0.0
1477
2093
unist-util-visit: 5.0.0
···
1486
2102
1487
2103
'@astrojs/telemetry@3.3.0':
1488
2104
dependencies:
1489
-
ci-info: 4.2.0
2105
+
ci-info: 4.3.0
1490
2106
debug: 4.4.1
1491
2107
dlv: 1.1.3
1492
2108
dset: 3.1.4
···
1496
2112
transitivePeerDependencies:
1497
2113
- supports-color
1498
2114
2115
+
'@atcute/client@4.0.3':
2116
+
dependencies:
2117
+
'@atcute/identity': 1.0.3
2118
+
'@atcute/lexicons': 1.1.0
2119
+
2120
+
'@atcute/identity@1.0.3':
2121
+
dependencies:
2122
+
'@atcute/lexicons': 1.1.0
2123
+
'@badrap/valita': 0.4.5
2124
+
2125
+
'@atcute/lexicons@1.1.0':
2126
+
dependencies:
2127
+
esm-env: 1.2.2
2128
+
2129
+
'@atcute/multibase@1.1.4':
2130
+
dependencies:
2131
+
'@atcute/uint8array': 1.0.3
2132
+
2133
+
'@atcute/oauth-browser-client@1.0.26':
2134
+
dependencies:
2135
+
'@atcute/client': 4.0.3
2136
+
'@atcute/identity': 1.0.3
2137
+
'@atcute/lexicons': 1.1.0
2138
+
'@atcute/multibase': 1.1.4
2139
+
'@atcute/uint8array': 1.0.3
2140
+
nanoid: 5.1.5
2141
+
2142
+
'@atcute/uint8array@1.0.3': {}
2143
+
1499
2144
'@babel/helper-string-parser@7.27.1': {}
1500
2145
1501
2146
'@babel/helper-validator-identifier@7.27.1': {}
1502
2147
1503
-
'@babel/parser@7.27.5':
2148
+
'@babel/parser@7.28.0':
1504
2149
dependencies:
1505
-
'@babel/types': 7.27.6
2150
+
'@babel/types': 7.28.2
1506
2151
1507
-
'@babel/types@7.27.6':
2152
+
'@babel/types@7.28.2':
1508
2153
dependencies:
1509
2154
'@babel/helper-string-parser': 7.27.1
1510
2155
'@babel/helper-validator-identifier': 7.27.1
2156
+
2157
+
'@badrap/valita@0.4.5': {}
1511
2158
1512
2159
'@capsizecss/unpack@2.4.0':
1513
2160
dependencies:
···
1517
2164
transitivePeerDependencies:
1518
2165
- encoding
1519
2166
1520
-
'@emnapi/runtime@1.4.3':
2167
+
'@emnapi/runtime@1.4.5':
1521
2168
dependencies:
1522
2169
tslib: 2.8.1
1523
2170
optional: true
1524
2171
1525
-
'@esbuild/aix-ppc64@0.25.5':
2172
+
'@esbuild/aix-ppc64@0.25.8':
2173
+
optional: true
2174
+
2175
+
'@esbuild/android-arm64@0.25.8':
1526
2176
optional: true
1527
2177
1528
-
'@esbuild/android-arm64@0.25.5':
2178
+
'@esbuild/android-arm@0.25.8':
1529
2179
optional: true
1530
2180
1531
-
'@esbuild/android-arm@0.25.5':
2181
+
'@esbuild/android-x64@0.25.8':
1532
2182
optional: true
1533
2183
1534
-
'@esbuild/android-x64@0.25.5':
2184
+
'@esbuild/darwin-arm64@0.25.8':
1535
2185
optional: true
1536
2186
1537
-
'@esbuild/darwin-arm64@0.25.5':
2187
+
'@esbuild/darwin-x64@0.25.8':
1538
2188
optional: true
1539
2189
1540
-
'@esbuild/darwin-x64@0.25.5':
2190
+
'@esbuild/freebsd-arm64@0.25.8':
1541
2191
optional: true
1542
2192
1543
-
'@esbuild/freebsd-arm64@0.25.5':
2193
+
'@esbuild/freebsd-x64@0.25.8':
1544
2194
optional: true
1545
2195
1546
-
'@esbuild/freebsd-x64@0.25.5':
2196
+
'@esbuild/linux-arm64@0.25.8':
1547
2197
optional: true
1548
2198
1549
-
'@esbuild/linux-arm64@0.25.5':
2199
+
'@esbuild/linux-arm@0.25.8':
1550
2200
optional: true
1551
2201
1552
-
'@esbuild/linux-arm@0.25.5':
2202
+
'@esbuild/linux-ia32@0.25.8':
1553
2203
optional: true
1554
2204
1555
-
'@esbuild/linux-ia32@0.25.5':
2205
+
'@esbuild/linux-loong64@0.25.8':
1556
2206
optional: true
1557
2207
1558
-
'@esbuild/linux-loong64@0.25.5':
2208
+
'@esbuild/linux-mips64el@0.25.8':
1559
2209
optional: true
1560
2210
1561
-
'@esbuild/linux-mips64el@0.25.5':
2211
+
'@esbuild/linux-ppc64@0.25.8':
1562
2212
optional: true
1563
2213
1564
-
'@esbuild/linux-ppc64@0.25.5':
2214
+
'@esbuild/linux-riscv64@0.25.8':
1565
2215
optional: true
1566
2216
1567
-
'@esbuild/linux-riscv64@0.25.5':
2217
+
'@esbuild/linux-s390x@0.25.8':
1568
2218
optional: true
1569
2219
1570
-
'@esbuild/linux-s390x@0.25.5':
2220
+
'@esbuild/linux-x64@0.25.8':
1571
2221
optional: true
1572
2222
1573
-
'@esbuild/linux-x64@0.25.5':
2223
+
'@esbuild/netbsd-arm64@0.25.8':
1574
2224
optional: true
1575
2225
1576
-
'@esbuild/netbsd-arm64@0.25.5':
2226
+
'@esbuild/netbsd-x64@0.25.8':
1577
2227
optional: true
1578
2228
1579
-
'@esbuild/netbsd-x64@0.25.5':
2229
+
'@esbuild/openbsd-arm64@0.25.8':
1580
2230
optional: true
1581
2231
1582
-
'@esbuild/openbsd-arm64@0.25.5':
2232
+
'@esbuild/openbsd-x64@0.25.8':
1583
2233
optional: true
1584
2234
1585
-
'@esbuild/openbsd-x64@0.25.5':
2235
+
'@esbuild/openharmony-arm64@0.25.8':
1586
2236
optional: true
1587
2237
1588
-
'@esbuild/sunos-x64@0.25.5':
2238
+
'@esbuild/sunos-x64@0.25.8':
1589
2239
optional: true
1590
2240
1591
-
'@esbuild/win32-arm64@0.25.5':
2241
+
'@esbuild/win32-arm64@0.25.8':
1592
2242
optional: true
1593
2243
1594
-
'@esbuild/win32-ia32@0.25.5':
2244
+
'@esbuild/win32-ia32@0.25.8':
1595
2245
optional: true
1596
2246
1597
-
'@esbuild/win32-x64@0.25.5':
2247
+
'@esbuild/win32-x64@0.25.8':
1598
2248
optional: true
1599
2249
2250
+
'@eslint-community/eslint-utils@4.7.0(eslint@9.32.0(jiti@2.5.1))':
2251
+
dependencies:
2252
+
eslint: 9.32.0(jiti@2.5.1)
2253
+
eslint-visitor-keys: 3.4.3
2254
+
2255
+
'@eslint-community/regexpp@4.12.1': {}
2256
+
2257
+
'@eslint/config-array@0.21.0':
2258
+
dependencies:
2259
+
'@eslint/object-schema': 2.1.6
2260
+
debug: 4.4.1
2261
+
minimatch: 3.1.2
2262
+
transitivePeerDependencies:
2263
+
- supports-color
2264
+
2265
+
'@eslint/config-helpers@0.3.0': {}
2266
+
2267
+
'@eslint/core@0.15.1':
2268
+
dependencies:
2269
+
'@types/json-schema': 7.0.15
2270
+
2271
+
'@eslint/eslintrc@3.3.1':
2272
+
dependencies:
2273
+
ajv: 6.12.6
2274
+
debug: 4.4.1
2275
+
espree: 10.4.0
2276
+
globals: 14.0.0
2277
+
ignore: 5.3.2
2278
+
import-fresh: 3.3.1
2279
+
js-yaml: 4.1.0
2280
+
minimatch: 3.1.2
2281
+
strip-json-comments: 3.1.1
2282
+
transitivePeerDependencies:
2283
+
- supports-color
2284
+
2285
+
'@eslint/js@9.32.0': {}
2286
+
2287
+
'@eslint/object-schema@2.1.6': {}
2288
+
2289
+
'@eslint/plugin-kit@0.3.4':
2290
+
dependencies:
2291
+
'@eslint/core': 0.15.1
2292
+
levn: 0.4.1
2293
+
2294
+
'@humanfs/core@0.19.1': {}
2295
+
2296
+
'@humanfs/node@0.16.6':
2297
+
dependencies:
2298
+
'@humanfs/core': 0.19.1
2299
+
'@humanwhocodes/retry': 0.3.1
2300
+
2301
+
'@humanwhocodes/module-importer@1.0.1': {}
2302
+
2303
+
'@humanwhocodes/retry@0.3.1': {}
2304
+
2305
+
'@humanwhocodes/retry@0.4.3': {}
2306
+
1600
2307
'@img/sharp-darwin-arm64@0.33.5':
1601
2308
optionalDependencies:
1602
2309
'@img/sharp-libvips-darwin-arm64': 1.0.4
···
1663
2370
1664
2371
'@img/sharp-wasm32@0.33.5':
1665
2372
dependencies:
1666
-
'@emnapi/runtime': 1.4.3
2373
+
'@emnapi/runtime': 1.4.5
1667
2374
optional: true
1668
2375
1669
2376
'@img/sharp-win32-ia32@0.33.5':
···
1672
2379
'@img/sharp-win32-x64@0.33.5':
1673
2380
optional: true
1674
2381
1675
-
'@jridgewell/sourcemap-codec@1.5.0': {}
2382
+
'@jridgewell/sourcemap-codec@1.5.4': {}
2383
+
2384
+
'@nodelib/fs.scandir@2.1.5':
2385
+
dependencies:
2386
+
'@nodelib/fs.stat': 2.0.5
2387
+
run-parallel: 1.2.0
2388
+
2389
+
'@nodelib/fs.stat@2.0.5': {}
2390
+
2391
+
'@nodelib/fs.walk@1.2.8':
2392
+
dependencies:
2393
+
'@nodelib/fs.scandir': 2.1.5
2394
+
fastq: 1.19.1
1676
2395
1677
2396
'@oslojs/encoding@1.1.0': {}
1678
2397
1679
-
'@rollup/pluginutils@5.1.4(rollup@4.42.0)':
2398
+
'@pkgr/core@0.2.9': {}
2399
+
2400
+
'@rollup/pluginutils@5.2.0(rollup@4.45.3)':
1680
2401
dependencies:
1681
2402
'@types/estree': 1.0.8
1682
2403
estree-walker: 2.0.2
1683
-
picomatch: 4.0.2
2404
+
picomatch: 4.0.3
1684
2405
optionalDependencies:
1685
-
rollup: 4.42.0
2406
+
rollup: 4.45.3
1686
2407
1687
-
'@rollup/rollup-android-arm-eabi@4.42.0':
2408
+
'@rollup/rollup-android-arm-eabi@4.45.3':
1688
2409
optional: true
1689
2410
1690
-
'@rollup/rollup-android-arm64@4.42.0':
2411
+
'@rollup/rollup-android-arm64@4.45.3':
1691
2412
optional: true
1692
2413
1693
-
'@rollup/rollup-darwin-arm64@4.42.0':
2414
+
'@rollup/rollup-darwin-arm64@4.45.3':
1694
2415
optional: true
1695
2416
1696
-
'@rollup/rollup-darwin-x64@4.42.0':
2417
+
'@rollup/rollup-darwin-x64@4.45.3':
1697
2418
optional: true
1698
2419
1699
-
'@rollup/rollup-freebsd-arm64@4.42.0':
2420
+
'@rollup/rollup-freebsd-arm64@4.45.3':
1700
2421
optional: true
1701
2422
1702
-
'@rollup/rollup-freebsd-x64@4.42.0':
2423
+
'@rollup/rollup-freebsd-x64@4.45.3':
1703
2424
optional: true
1704
2425
1705
-
'@rollup/rollup-linux-arm-gnueabihf@4.42.0':
2426
+
'@rollup/rollup-linux-arm-gnueabihf@4.45.3':
1706
2427
optional: true
1707
2428
1708
-
'@rollup/rollup-linux-arm-musleabihf@4.42.0':
2429
+
'@rollup/rollup-linux-arm-musleabihf@4.45.3':
1709
2430
optional: true
1710
2431
1711
-
'@rollup/rollup-linux-arm64-gnu@4.42.0':
2432
+
'@rollup/rollup-linux-arm64-gnu@4.45.3':
1712
2433
optional: true
1713
2434
1714
-
'@rollup/rollup-linux-arm64-musl@4.42.0':
2435
+
'@rollup/rollup-linux-arm64-musl@4.45.3':
1715
2436
optional: true
1716
2437
1717
-
'@rollup/rollup-linux-loongarch64-gnu@4.42.0':
2438
+
'@rollup/rollup-linux-loongarch64-gnu@4.45.3':
1718
2439
optional: true
1719
2440
1720
-
'@rollup/rollup-linux-powerpc64le-gnu@4.42.0':
2441
+
'@rollup/rollup-linux-ppc64-gnu@4.45.3':
1721
2442
optional: true
1722
2443
1723
-
'@rollup/rollup-linux-riscv64-gnu@4.42.0':
2444
+
'@rollup/rollup-linux-riscv64-gnu@4.45.3':
1724
2445
optional: true
1725
2446
1726
-
'@rollup/rollup-linux-riscv64-musl@4.42.0':
2447
+
'@rollup/rollup-linux-riscv64-musl@4.45.3':
1727
2448
optional: true
1728
2449
1729
-
'@rollup/rollup-linux-s390x-gnu@4.42.0':
2450
+
'@rollup/rollup-linux-s390x-gnu@4.45.3':
1730
2451
optional: true
1731
2452
1732
-
'@rollup/rollup-linux-x64-gnu@4.42.0':
2453
+
'@rollup/rollup-linux-x64-gnu@4.45.3':
1733
2454
optional: true
1734
2455
1735
-
'@rollup/rollup-linux-x64-musl@4.42.0':
2456
+
'@rollup/rollup-linux-x64-musl@4.45.3':
1736
2457
optional: true
1737
2458
1738
-
'@rollup/rollup-win32-arm64-msvc@4.42.0':
2459
+
'@rollup/rollup-win32-arm64-msvc@4.45.3':
1739
2460
optional: true
1740
2461
1741
-
'@rollup/rollup-win32-ia32-msvc@4.42.0':
2462
+
'@rollup/rollup-win32-ia32-msvc@4.45.3':
1742
2463
optional: true
1743
2464
1744
-
'@rollup/rollup-win32-x64-msvc@4.42.0':
2465
+
'@rollup/rollup-win32-x64-msvc@4.45.3':
1745
2466
optional: true
1746
2467
1747
-
'@shikijs/core@3.6.0':
2468
+
'@shikijs/core@3.8.1':
1748
2469
dependencies:
1749
-
'@shikijs/types': 3.6.0
2470
+
'@shikijs/types': 3.8.1
1750
2471
'@shikijs/vscode-textmate': 10.0.2
1751
2472
'@types/hast': 3.0.4
1752
2473
hast-util-to-html: 9.0.5
1753
2474
1754
-
'@shikijs/engine-javascript@3.6.0':
2475
+
'@shikijs/engine-javascript@3.8.1':
1755
2476
dependencies:
1756
-
'@shikijs/types': 3.6.0
2477
+
'@shikijs/types': 3.8.1
1757
2478
'@shikijs/vscode-textmate': 10.0.2
1758
2479
oniguruma-to-es: 4.3.3
1759
2480
1760
-
'@shikijs/engine-oniguruma@3.6.0':
2481
+
'@shikijs/engine-oniguruma@3.8.1':
1761
2482
dependencies:
1762
-
'@shikijs/types': 3.6.0
2483
+
'@shikijs/types': 3.8.1
1763
2484
'@shikijs/vscode-textmate': 10.0.2
1764
2485
1765
-
'@shikijs/langs@3.6.0':
2486
+
'@shikijs/langs@3.8.1':
1766
2487
dependencies:
1767
-
'@shikijs/types': 3.6.0
2488
+
'@shikijs/types': 3.8.1
1768
2489
1769
-
'@shikijs/themes@3.6.0':
2490
+
'@shikijs/themes@3.8.1':
1770
2491
dependencies:
1771
-
'@shikijs/types': 3.6.0
2492
+
'@shikijs/types': 3.8.1
1772
2493
1773
-
'@shikijs/types@3.6.0':
2494
+
'@shikijs/types@3.8.1':
1774
2495
dependencies:
1775
2496
'@shikijs/vscode-textmate': 10.0.2
1776
2497
'@types/hast': 3.0.4
···
1785
2506
dependencies:
1786
2507
'@types/ms': 2.1.0
1787
2508
1788
-
'@types/estree@1.0.7': {}
1789
-
1790
2509
'@types/estree@1.0.8': {}
1791
2510
1792
2511
'@types/fontkit@2.0.8':
1793
2512
dependencies:
1794
-
'@types/node': 22.15.30
2513
+
'@types/node': 24.1.0
1795
2514
1796
2515
'@types/hast@3.0.4':
1797
2516
dependencies:
1798
2517
'@types/unist': 3.0.3
1799
2518
2519
+
'@types/json-schema@7.0.15': {}
2520
+
1800
2521
'@types/mdast@4.0.4':
1801
2522
dependencies:
1802
2523
'@types/unist': 3.0.3
···
1807
2528
dependencies:
1808
2529
'@types/unist': 3.0.3
1809
2530
1810
-
'@types/node@22.15.30':
2531
+
'@types/node@24.1.0':
1811
2532
dependencies:
1812
-
undici-types: 6.21.0
2533
+
undici-types: 7.8.0
1813
2534
1814
2535
'@types/unist@3.0.3': {}
1815
2536
2537
+
'@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)':
2538
+
dependencies:
2539
+
'@eslint-community/regexpp': 4.12.1
2540
+
'@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)
2541
+
'@typescript-eslint/scope-manager': 8.38.0
2542
+
'@typescript-eslint/type-utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)
2543
+
'@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)
2544
+
'@typescript-eslint/visitor-keys': 8.38.0
2545
+
eslint: 9.32.0(jiti@2.5.1)
2546
+
graphemer: 1.4.0
2547
+
ignore: 7.0.5
2548
+
natural-compare: 1.4.0
2549
+
ts-api-utils: 2.1.0(typescript@5.8.3)
2550
+
typescript: 5.8.3
2551
+
transitivePeerDependencies:
2552
+
- supports-color
2553
+
2554
+
'@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)':
2555
+
dependencies:
2556
+
'@typescript-eslint/scope-manager': 8.38.0
2557
+
'@typescript-eslint/types': 8.38.0
2558
+
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
2559
+
'@typescript-eslint/visitor-keys': 8.38.0
2560
+
debug: 4.4.1
2561
+
eslint: 9.32.0(jiti@2.5.1)
2562
+
typescript: 5.8.3
2563
+
transitivePeerDependencies:
2564
+
- supports-color
2565
+
2566
+
'@typescript-eslint/project-service@8.38.0(typescript@5.8.3)':
2567
+
dependencies:
2568
+
'@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3)
2569
+
'@typescript-eslint/types': 8.38.0
2570
+
debug: 4.4.1
2571
+
typescript: 5.8.3
2572
+
transitivePeerDependencies:
2573
+
- supports-color
2574
+
2575
+
'@typescript-eslint/scope-manager@8.38.0':
2576
+
dependencies:
2577
+
'@typescript-eslint/types': 8.38.0
2578
+
'@typescript-eslint/visitor-keys': 8.38.0
2579
+
2580
+
'@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.8.3)':
2581
+
dependencies:
2582
+
typescript: 5.8.3
2583
+
2584
+
'@typescript-eslint/type-utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)':
2585
+
dependencies:
2586
+
'@typescript-eslint/types': 8.38.0
2587
+
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
2588
+
'@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)
2589
+
debug: 4.4.1
2590
+
eslint: 9.32.0(jiti@2.5.1)
2591
+
ts-api-utils: 2.1.0(typescript@5.8.3)
2592
+
typescript: 5.8.3
2593
+
transitivePeerDependencies:
2594
+
- supports-color
2595
+
2596
+
'@typescript-eslint/types@8.38.0': {}
2597
+
2598
+
'@typescript-eslint/typescript-estree@8.38.0(typescript@5.8.3)':
2599
+
dependencies:
2600
+
'@typescript-eslint/project-service': 8.38.0(typescript@5.8.3)
2601
+
'@typescript-eslint/tsconfig-utils': 8.38.0(typescript@5.8.3)
2602
+
'@typescript-eslint/types': 8.38.0
2603
+
'@typescript-eslint/visitor-keys': 8.38.0
2604
+
debug: 4.4.1
2605
+
fast-glob: 3.3.3
2606
+
is-glob: 4.0.3
2607
+
minimatch: 9.0.5
2608
+
semver: 7.7.2
2609
+
ts-api-utils: 2.1.0(typescript@5.8.3)
2610
+
typescript: 5.8.3
2611
+
transitivePeerDependencies:
2612
+
- supports-color
2613
+
2614
+
'@typescript-eslint/utils@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)':
2615
+
dependencies:
2616
+
'@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1))
2617
+
'@typescript-eslint/scope-manager': 8.38.0
2618
+
'@typescript-eslint/types': 8.38.0
2619
+
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
2620
+
eslint: 9.32.0(jiti@2.5.1)
2621
+
typescript: 5.8.3
2622
+
transitivePeerDependencies:
2623
+
- supports-color
2624
+
2625
+
'@typescript-eslint/visitor-keys@8.38.0':
2626
+
dependencies:
2627
+
'@typescript-eslint/types': 8.38.0
2628
+
eslint-visitor-keys: 4.2.1
2629
+
1816
2630
'@ungap/structured-clone@1.3.0': {}
1817
2631
2632
+
acorn-jsx@5.3.2(acorn@8.15.0):
2633
+
dependencies:
2634
+
acorn: 8.15.0
2635
+
1818
2636
acorn@8.15.0: {}
1819
2637
2638
+
ajv@6.12.6:
2639
+
dependencies:
2640
+
fast-deep-equal: 3.1.3
2641
+
fast-json-stable-stringify: 2.1.0
2642
+
json-schema-traverse: 0.4.1
2643
+
uri-js: 4.4.1
2644
+
1820
2645
ansi-align@3.0.1:
1821
2646
dependencies:
1822
2647
string-width: 4.2.3
···
1825
2650
1826
2651
ansi-regex@6.1.0: {}
1827
2652
2653
+
ansi-styles@4.3.0:
2654
+
dependencies:
2655
+
color-convert: 2.0.1
2656
+
1828
2657
ansi-styles@6.2.1: {}
1829
2658
1830
2659
anymatch@3.1.3:
···
1838
2667
1839
2668
array-iterate@2.0.1: {}
1840
2669
1841
-
astro@5.9.1(@types/node@22.15.30)(rollup@4.42.0)(typescript@5.8.3):
2670
+
astro-eslint-parser@1.2.2:
1842
2671
dependencies:
1843
-
'@astrojs/compiler': 2.12.1
2672
+
'@astrojs/compiler': 2.12.2
2673
+
'@typescript-eslint/scope-manager': 8.38.0
2674
+
'@typescript-eslint/types': 8.38.0
2675
+
astrojs-compiler-sync: 1.1.1(@astrojs/compiler@2.12.2)
2676
+
debug: 4.4.1
2677
+
entities: 6.0.1
2678
+
eslint-scope: 8.4.0
2679
+
eslint-visitor-keys: 4.2.1
2680
+
espree: 10.4.0
2681
+
fast-glob: 3.3.3
2682
+
is-glob: 4.0.3
2683
+
semver: 7.7.2
2684
+
transitivePeerDependencies:
2685
+
- supports-color
2686
+
2687
+
astro@5.12.3(@types/node@24.1.0)(jiti@2.5.1)(rollup@4.45.3)(typescript@5.8.3):
2688
+
dependencies:
2689
+
'@astrojs/compiler': 2.12.2
1844
2690
'@astrojs/internal-helpers': 0.6.1
1845
-
'@astrojs/markdown-remark': 6.3.2
2691
+
'@astrojs/markdown-remark': 6.3.3
1846
2692
'@astrojs/telemetry': 3.3.0
1847
2693
'@capsizecss/unpack': 2.4.0
1848
2694
'@oslojs/encoding': 1.1.0
1849
-
'@rollup/pluginutils': 5.1.4(rollup@4.42.0)
2695
+
'@rollup/pluginutils': 5.2.0(rollup@4.45.3)
1850
2696
acorn: 8.15.0
1851
2697
aria-query: 5.3.2
1852
2698
axobject-query: 4.1.0
1853
2699
boxen: 8.0.1
1854
-
ci-info: 4.2.0
2700
+
ci-info: 4.3.0
1855
2701
clsx: 2.1.1
1856
2702
common-ancestor-path: 1.0.1
1857
2703
cookie: 1.0.2
···
1863
2709
dlv: 1.1.3
1864
2710
dset: 3.1.4
1865
2711
es-module-lexer: 1.7.0
1866
-
esbuild: 0.25.5
2712
+
esbuild: 0.25.8
1867
2713
estree-walker: 3.0.3
1868
2714
flattie: 1.1.1
1869
2715
fontace: 0.3.0
···
1880
2726
p-limit: 6.2.0
1881
2727
p-queue: 8.1.0
1882
2728
package-manager-detector: 1.3.0
1883
-
picomatch: 4.0.2
2729
+
picomatch: 4.0.3
1884
2730
prompts: 2.4.2
1885
2731
rehype: 13.0.2
1886
2732
semver: 7.7.2
1887
-
shiki: 3.6.0
2733
+
shiki: 3.8.1
2734
+
smol-toml: 1.4.1
1888
2735
tinyexec: 0.3.2
1889
2736
tinyglobby: 0.2.14
1890
2737
tsconfck: 3.1.6(typescript@5.8.3)
1891
2738
ultrahtml: 1.6.0
1892
-
unifont: 0.5.0
2739
+
unifont: 0.5.2
1893
2740
unist-util-visit: 5.0.0
1894
-
unstorage: 1.16.0
2741
+
unstorage: 1.16.1
1895
2742
vfile: 6.0.3
1896
-
vite: 6.3.5(@types/node@22.15.30)
1897
-
vitefu: 1.0.6(vite@6.3.5(@types/node@22.15.30))
2743
+
vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)
2744
+
vitefu: 1.1.1(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1))
1898
2745
xxhash-wasm: 1.1.0
1899
2746
yargs-parser: 21.1.1
1900
2747
yocto-spinner: 0.2.3
1901
-
zod: 3.25.56
1902
-
zod-to-json-schema: 3.24.5(zod@3.25.56)
1903
-
zod-to-ts: 1.2.0(typescript@5.8.3)(zod@3.25.56)
2748
+
zod: 3.25.76
2749
+
zod-to-json-schema: 3.24.6(zod@3.25.76)
2750
+
zod-to-ts: 1.2.0(typescript@5.8.3)(zod@3.25.76)
1904
2751
optionalDependencies:
1905
2752
sharp: 0.33.5
1906
2753
transitivePeerDependencies:
···
1938
2785
- uploadthing
1939
2786
- yaml
1940
2787
2788
+
astrojs-compiler-sync@1.1.1(@astrojs/compiler@2.12.2):
2789
+
dependencies:
2790
+
'@astrojs/compiler': 2.12.2
2791
+
synckit: 0.11.11
2792
+
1941
2793
axobject-query@4.1.0: {}
1942
2794
1943
2795
bail@2.0.2: {}
2796
+
2797
+
balanced-match@1.0.2: {}
1944
2798
1945
2799
base-64@1.0.0: {}
1946
2800
···
1959
2813
widest-line: 5.0.0
1960
2814
wrap-ansi: 9.0.0
1961
2815
2816
+
brace-expansion@1.1.12:
2817
+
dependencies:
2818
+
balanced-match: 1.0.2
2819
+
concat-map: 0.0.1
2820
+
2821
+
brace-expansion@2.0.2:
2822
+
dependencies:
2823
+
balanced-match: 1.0.2
2824
+
2825
+
braces@3.0.3:
2826
+
dependencies:
2827
+
fill-range: 7.1.1
2828
+
1962
2829
brotli@1.3.3:
1963
2830
dependencies:
1964
2831
base64-js: 1.5.1
2832
+
2833
+
callsites@3.1.0: {}
1965
2834
1966
2835
camelcase@8.0.0: {}
1967
2836
1968
2837
ccount@2.0.1: {}
1969
2838
2839
+
chalk@4.1.2:
2840
+
dependencies:
2841
+
ansi-styles: 4.3.0
2842
+
supports-color: 7.2.0
2843
+
1970
2844
chalk@5.4.1: {}
1971
2845
1972
2846
character-entities-html4@2.1.0: {}
···
1979
2853
dependencies:
1980
2854
readdirp: 4.1.2
1981
2855
1982
-
ci-info@4.2.0: {}
2856
+
ci-info@4.3.0: {}
1983
2857
1984
2858
cli-boxes@3.0.0: {}
1985
2859
···
1990
2864
color-convert@2.0.1:
1991
2865
dependencies:
1992
2866
color-name: 1.1.4
1993
-
optional: true
1994
2867
1995
-
color-name@1.1.4:
1996
-
optional: true
2868
+
color-name@1.1.4: {}
1997
2869
1998
2870
color-string@1.9.1:
1999
2871
dependencies:
···
2011
2883
2012
2884
common-ancestor-path@1.0.1: {}
2013
2885
2886
+
concat-map@0.0.1: {}
2887
+
2014
2888
cookie-es@1.2.2: {}
2015
2889
2016
2890
cookie@1.0.2: {}
···
2020
2894
node-fetch: 2.7.0
2021
2895
transitivePeerDependencies:
2022
2896
- encoding
2897
+
2898
+
cross-spawn@7.0.6:
2899
+
dependencies:
2900
+
path-key: 3.1.1
2901
+
shebang-command: 2.0.0
2902
+
which: 2.0.2
2023
2903
2024
2904
crossws@0.3.5:
2025
2905
dependencies:
···
2036
2916
dependencies:
2037
2917
ms: 2.1.3
2038
2918
2039
-
decode-named-character-reference@1.1.0:
2919
+
decode-named-character-reference@1.2.0:
2040
2920
dependencies:
2041
2921
character-entities: 2.0.2
2922
+
2923
+
deep-is@0.1.4: {}
2042
2924
2043
2925
defu@6.1.4: {}
2044
2926
···
2075
2957
2076
2958
es-module-lexer@1.7.0: {}
2077
2959
2078
-
esbuild@0.25.5:
2960
+
esbuild@0.25.8:
2079
2961
optionalDependencies:
2080
-
'@esbuild/aix-ppc64': 0.25.5
2081
-
'@esbuild/android-arm': 0.25.5
2082
-
'@esbuild/android-arm64': 0.25.5
2083
-
'@esbuild/android-x64': 0.25.5
2084
-
'@esbuild/darwin-arm64': 0.25.5
2085
-
'@esbuild/darwin-x64': 0.25.5
2086
-
'@esbuild/freebsd-arm64': 0.25.5
2087
-
'@esbuild/freebsd-x64': 0.25.5
2088
-
'@esbuild/linux-arm': 0.25.5
2089
-
'@esbuild/linux-arm64': 0.25.5
2090
-
'@esbuild/linux-ia32': 0.25.5
2091
-
'@esbuild/linux-loong64': 0.25.5
2092
-
'@esbuild/linux-mips64el': 0.25.5
2093
-
'@esbuild/linux-ppc64': 0.25.5
2094
-
'@esbuild/linux-riscv64': 0.25.5
2095
-
'@esbuild/linux-s390x': 0.25.5
2096
-
'@esbuild/linux-x64': 0.25.5
2097
-
'@esbuild/netbsd-arm64': 0.25.5
2098
-
'@esbuild/netbsd-x64': 0.25.5
2099
-
'@esbuild/openbsd-arm64': 0.25.5
2100
-
'@esbuild/openbsd-x64': 0.25.5
2101
-
'@esbuild/sunos-x64': 0.25.5
2102
-
'@esbuild/win32-arm64': 0.25.5
2103
-
'@esbuild/win32-ia32': 0.25.5
2104
-
'@esbuild/win32-x64': 0.25.5
2962
+
'@esbuild/aix-ppc64': 0.25.8
2963
+
'@esbuild/android-arm': 0.25.8
2964
+
'@esbuild/android-arm64': 0.25.8
2965
+
'@esbuild/android-x64': 0.25.8
2966
+
'@esbuild/darwin-arm64': 0.25.8
2967
+
'@esbuild/darwin-x64': 0.25.8
2968
+
'@esbuild/freebsd-arm64': 0.25.8
2969
+
'@esbuild/freebsd-x64': 0.25.8
2970
+
'@esbuild/linux-arm': 0.25.8
2971
+
'@esbuild/linux-arm64': 0.25.8
2972
+
'@esbuild/linux-ia32': 0.25.8
2973
+
'@esbuild/linux-loong64': 0.25.8
2974
+
'@esbuild/linux-mips64el': 0.25.8
2975
+
'@esbuild/linux-ppc64': 0.25.8
2976
+
'@esbuild/linux-riscv64': 0.25.8
2977
+
'@esbuild/linux-s390x': 0.25.8
2978
+
'@esbuild/linux-x64': 0.25.8
2979
+
'@esbuild/netbsd-arm64': 0.25.8
2980
+
'@esbuild/netbsd-x64': 0.25.8
2981
+
'@esbuild/openbsd-arm64': 0.25.8
2982
+
'@esbuild/openbsd-x64': 0.25.8
2983
+
'@esbuild/openharmony-arm64': 0.25.8
2984
+
'@esbuild/sunos-x64': 0.25.8
2985
+
'@esbuild/win32-arm64': 0.25.8
2986
+
'@esbuild/win32-ia32': 0.25.8
2987
+
'@esbuild/win32-x64': 0.25.8
2988
+
2989
+
escape-string-regexp@4.0.0: {}
2105
2990
2106
2991
escape-string-regexp@5.0.0: {}
2107
2992
2993
+
eslint-compat-utils@0.6.5(eslint@9.32.0(jiti@2.5.1)):
2994
+
dependencies:
2995
+
eslint: 9.32.0(jiti@2.5.1)
2996
+
semver: 7.7.2
2997
+
2998
+
eslint-config-prettier@10.1.8(eslint@9.32.0(jiti@2.5.1)):
2999
+
dependencies:
3000
+
eslint: 9.32.0(jiti@2.5.1)
3001
+
3002
+
eslint-plugin-astro@1.3.1(eslint@9.32.0(jiti@2.5.1)):
3003
+
dependencies:
3004
+
'@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1))
3005
+
'@jridgewell/sourcemap-codec': 1.5.4
3006
+
'@typescript-eslint/types': 8.38.0
3007
+
astro-eslint-parser: 1.2.2
3008
+
eslint: 9.32.0(jiti@2.5.1)
3009
+
eslint-compat-utils: 0.6.5(eslint@9.32.0(jiti@2.5.1))
3010
+
globals: 15.15.0
3011
+
postcss: 8.5.6
3012
+
postcss-selector-parser: 7.1.0
3013
+
transitivePeerDependencies:
3014
+
- supports-color
3015
+
3016
+
eslint-plugin-prettier@5.5.3(eslint-config-prettier@10.1.8(eslint@9.32.0(jiti@2.5.1)))(eslint@9.32.0(jiti@2.5.1))(prettier@3.6.2):
3017
+
dependencies:
3018
+
eslint: 9.32.0(jiti@2.5.1)
3019
+
prettier: 3.6.2
3020
+
prettier-linter-helpers: 1.0.0
3021
+
synckit: 0.11.11
3022
+
optionalDependencies:
3023
+
eslint-config-prettier: 10.1.8(eslint@9.32.0(jiti@2.5.1))
3024
+
3025
+
eslint-scope@8.4.0:
3026
+
dependencies:
3027
+
esrecurse: 4.3.0
3028
+
estraverse: 5.3.0
3029
+
3030
+
eslint-visitor-keys@3.4.3: {}
3031
+
3032
+
eslint-visitor-keys@4.2.1: {}
3033
+
3034
+
eslint@9.32.0(jiti@2.5.1):
3035
+
dependencies:
3036
+
'@eslint-community/eslint-utils': 4.7.0(eslint@9.32.0(jiti@2.5.1))
3037
+
'@eslint-community/regexpp': 4.12.1
3038
+
'@eslint/config-array': 0.21.0
3039
+
'@eslint/config-helpers': 0.3.0
3040
+
'@eslint/core': 0.15.1
3041
+
'@eslint/eslintrc': 3.3.1
3042
+
'@eslint/js': 9.32.0
3043
+
'@eslint/plugin-kit': 0.3.4
3044
+
'@humanfs/node': 0.16.6
3045
+
'@humanwhocodes/module-importer': 1.0.1
3046
+
'@humanwhocodes/retry': 0.4.3
3047
+
'@types/estree': 1.0.8
3048
+
'@types/json-schema': 7.0.15
3049
+
ajv: 6.12.6
3050
+
chalk: 4.1.2
3051
+
cross-spawn: 7.0.6
3052
+
debug: 4.4.1
3053
+
escape-string-regexp: 4.0.0
3054
+
eslint-scope: 8.4.0
3055
+
eslint-visitor-keys: 4.2.1
3056
+
espree: 10.4.0
3057
+
esquery: 1.6.0
3058
+
esutils: 2.0.3
3059
+
fast-deep-equal: 3.1.3
3060
+
file-entry-cache: 8.0.0
3061
+
find-up: 5.0.0
3062
+
glob-parent: 6.0.2
3063
+
ignore: 5.3.2
3064
+
imurmurhash: 0.1.4
3065
+
is-glob: 4.0.3
3066
+
json-stable-stringify-without-jsonify: 1.0.1
3067
+
lodash.merge: 4.6.2
3068
+
minimatch: 3.1.2
3069
+
natural-compare: 1.4.0
3070
+
optionator: 0.9.4
3071
+
optionalDependencies:
3072
+
jiti: 2.5.1
3073
+
transitivePeerDependencies:
3074
+
- supports-color
3075
+
3076
+
esm-env@1.2.2: {}
3077
+
3078
+
espree@10.4.0:
3079
+
dependencies:
3080
+
acorn: 8.15.0
3081
+
acorn-jsx: 5.3.2(acorn@8.15.0)
3082
+
eslint-visitor-keys: 4.2.1
3083
+
3084
+
esquery@1.6.0:
3085
+
dependencies:
3086
+
estraverse: 5.3.0
3087
+
3088
+
esrecurse@4.3.0:
3089
+
dependencies:
3090
+
estraverse: 5.3.0
3091
+
3092
+
estraverse@5.3.0: {}
3093
+
2108
3094
estree-walker@2.0.2: {}
2109
3095
2110
3096
estree-walker@3.0.3:
2111
3097
dependencies:
2112
3098
'@types/estree': 1.0.8
2113
3099
3100
+
esutils@2.0.3: {}
3101
+
2114
3102
eventemitter3@5.0.1: {}
2115
3103
2116
3104
extend@3.0.2: {}
2117
3105
2118
3106
fast-deep-equal@3.1.3: {}
2119
3107
2120
-
fdir@6.4.5(picomatch@4.0.2):
3108
+
fast-diff@1.3.0: {}
3109
+
3110
+
fast-glob@3.3.3:
3111
+
dependencies:
3112
+
'@nodelib/fs.stat': 2.0.5
3113
+
'@nodelib/fs.walk': 1.2.8
3114
+
glob-parent: 5.1.2
3115
+
merge2: 1.4.1
3116
+
micromatch: 4.0.8
3117
+
3118
+
fast-json-stable-stringify@2.1.0: {}
3119
+
3120
+
fast-levenshtein@2.0.6: {}
3121
+
3122
+
fastq@1.19.1:
3123
+
dependencies:
3124
+
reusify: 1.1.0
3125
+
3126
+
fdir@6.4.6(picomatch@4.0.3):
2121
3127
optionalDependencies:
2122
-
picomatch: 4.0.2
3128
+
picomatch: 4.0.3
3129
+
3130
+
file-entry-cache@8.0.0:
3131
+
dependencies:
3132
+
flat-cache: 4.0.1
3133
+
3134
+
fill-range@7.1.1:
3135
+
dependencies:
3136
+
to-regex-range: 5.0.1
3137
+
3138
+
find-up@5.0.0:
3139
+
dependencies:
3140
+
locate-path: 6.0.0
3141
+
path-exists: 4.0.0
3142
+
3143
+
flat-cache@4.0.1:
3144
+
dependencies:
3145
+
flatted: 3.3.3
3146
+
keyv: 4.5.4
3147
+
3148
+
flatted@3.3.3: {}
2123
3149
2124
3150
flattie@1.1.1: {}
2125
3151
···
2147
3173
2148
3174
github-slugger@2.0.0: {}
2149
3175
3176
+
glob-parent@5.1.2:
3177
+
dependencies:
3178
+
is-glob: 4.0.3
3179
+
3180
+
glob-parent@6.0.2:
3181
+
dependencies:
3182
+
is-glob: 4.0.3
3183
+
3184
+
globals@14.0.0: {}
3185
+
3186
+
globals@15.15.0: {}
3187
+
3188
+
globals@16.3.0: {}
3189
+
3190
+
graphemer@1.4.0: {}
3191
+
2150
3192
h3@1.15.3:
2151
3193
dependencies:
2152
3194
cookie-es: 1.2.2
···
2154
3196
defu: 6.1.4
2155
3197
destr: 2.0.5
2156
3198
iron-webcrypto: 1.2.1
2157
-
node-mock-http: 1.0.0
3199
+
node-mock-http: 1.0.1
2158
3200
radix3: 1.1.2
2159
3201
ufo: 1.6.1
2160
3202
uncrypto: 0.1.3
3203
+
3204
+
has-flag@4.0.0: {}
2161
3205
2162
3206
hast-util-from-html@2.0.3:
2163
3207
dependencies:
···
2166
3210
hast-util-from-parse5: 8.0.3
2167
3211
parse5: 7.3.0
2168
3212
vfile: 6.0.3
2169
-
vfile-message: 4.0.2
3213
+
vfile-message: 4.0.3
2170
3214
2171
3215
hast-util-from-parse5@8.0.3:
2172
3216
dependencies:
···
2252
3296
2253
3297
http-cache-semantics@4.2.0: {}
2254
3298
3299
+
ignore@5.3.2: {}
3300
+
3301
+
ignore@7.0.5: {}
3302
+
3303
+
import-fresh@3.3.1:
3304
+
dependencies:
3305
+
parent-module: 1.0.1
3306
+
resolve-from: 4.0.0
3307
+
2255
3308
import-meta-resolve@4.1.0: {}
2256
3309
3310
+
imurmurhash@0.1.4: {}
3311
+
2257
3312
iron-webcrypto@1.2.1: {}
2258
3313
2259
3314
is-arrayish@0.3.2:
···
2261
3316
2262
3317
is-docker@3.0.0: {}
2263
3318
3319
+
is-extglob@2.1.1: {}
3320
+
2264
3321
is-fullwidth-code-point@3.0.0: {}
2265
3322
3323
+
is-glob@4.0.3:
3324
+
dependencies:
3325
+
is-extglob: 2.1.1
3326
+
2266
3327
is-inside-container@1.0.0:
2267
3328
dependencies:
2268
3329
is-docker: 3.0.0
2269
3330
3331
+
is-number@7.0.0: {}
3332
+
2270
3333
is-plain-obj@4.1.0: {}
2271
3334
2272
3335
is-wsl@3.1.0:
2273
3336
dependencies:
2274
3337
is-inside-container: 1.0.0
2275
3338
3339
+
isexe@2.0.0: {}
3340
+
3341
+
jiti@2.5.1: {}
3342
+
2276
3343
js-yaml@4.1.0:
2277
3344
dependencies:
2278
3345
argparse: 2.0.1
2279
3346
3347
+
json-buffer@3.0.1: {}
3348
+
3349
+
json-schema-traverse@0.4.1: {}
3350
+
3351
+
json-stable-stringify-without-jsonify@1.0.1: {}
3352
+
3353
+
keyv@4.5.4:
3354
+
dependencies:
3355
+
json-buffer: 3.0.1
3356
+
2280
3357
kleur@3.0.3: {}
2281
3358
2282
3359
kleur@4.1.5: {}
2283
3360
3361
+
levn@0.4.1:
3362
+
dependencies:
3363
+
prelude-ls: 1.2.1
3364
+
type-check: 0.4.0
3365
+
3366
+
locate-path@6.0.0:
3367
+
dependencies:
3368
+
p-locate: 5.0.0
3369
+
3370
+
lodash.merge@4.6.2: {}
3371
+
2284
3372
longest-streak@3.1.0: {}
2285
3373
2286
3374
lru-cache@10.4.3: {}
2287
3375
2288
3376
magic-string@0.30.17:
2289
3377
dependencies:
2290
-
'@jridgewell/sourcemap-codec': 1.5.0
3378
+
'@jridgewell/sourcemap-codec': 1.5.4
2291
3379
2292
3380
magicast@0.3.5:
2293
3381
dependencies:
2294
-
'@babel/parser': 7.27.5
2295
-
'@babel/types': 7.27.6
3382
+
'@babel/parser': 7.28.0
3383
+
'@babel/types': 7.28.2
2296
3384
source-map-js: 1.2.1
2297
3385
2298
3386
markdown-table@3.0.4: {}
···
2314
3402
dependencies:
2315
3403
'@types/mdast': 4.0.4
2316
3404
'@types/unist': 3.0.3
2317
-
decode-named-character-reference: 1.1.0
3405
+
decode-named-character-reference: 1.2.0
2318
3406
devlop: 1.1.0
2319
3407
mdast-util-to-string: 4.0.0
2320
3408
micromark: 4.0.2
···
2419
3507
2420
3508
mdn-data@2.12.2: {}
2421
3509
3510
+
merge2@1.4.1: {}
3511
+
2422
3512
micromark-core-commonmark@2.0.3:
2423
3513
dependencies:
2424
-
decode-named-character-reference: 1.1.0
3514
+
decode-named-character-reference: 1.2.0
2425
3515
devlop: 1.1.0
2426
3516
micromark-factory-destination: 2.0.1
2427
3517
micromark-factory-label: 2.0.1
···
2554
3644
2555
3645
micromark-util-decode-string@2.0.1:
2556
3646
dependencies:
2557
-
decode-named-character-reference: 1.1.0
3647
+
decode-named-character-reference: 1.2.0
2558
3648
micromark-util-character: 2.1.1
2559
3649
micromark-util-decode-numeric-character-reference: 2.0.2
2560
3650
micromark-util-symbol: 2.0.1
···
2592
3682
dependencies:
2593
3683
'@types/debug': 4.1.12
2594
3684
debug: 4.4.1
2595
-
decode-named-character-reference: 1.1.0
3685
+
decode-named-character-reference: 1.2.0
2596
3686
devlop: 1.1.0
2597
3687
micromark-core-commonmark: 2.0.3
2598
3688
micromark-factory-space: 2.0.1
···
2610
3700
transitivePeerDependencies:
2611
3701
- supports-color
2612
3702
3703
+
micromatch@4.0.8:
3704
+
dependencies:
3705
+
braces: 3.0.3
3706
+
picomatch: 2.3.1
3707
+
3708
+
minimatch@3.1.2:
3709
+
dependencies:
3710
+
brace-expansion: 1.1.12
3711
+
3712
+
minimatch@9.0.5:
3713
+
dependencies:
3714
+
brace-expansion: 2.0.2
3715
+
2613
3716
mrmime@2.0.1: {}
2614
3717
2615
3718
ms@2.1.3: {}
2616
3719
2617
3720
nanoid@3.3.11: {}
2618
3721
3722
+
nanoid@5.1.5: {}
3723
+
3724
+
natural-compare@1.4.0: {}
3725
+
2619
3726
neotraverse@0.6.18: {}
2620
3727
2621
3728
nlcst-to-string@4.0.0:
···
2628
3735
dependencies:
2629
3736
whatwg-url: 5.0.0
2630
3737
2631
-
node-mock-http@1.0.0: {}
3738
+
node-mock-http@1.0.1: {}
2632
3739
2633
3740
normalize-path@3.0.0: {}
2634
3741
···
2648
3755
regex: 6.0.1
2649
3756
regex-recursion: 6.0.2
2650
3757
3758
+
optionator@0.9.4:
3759
+
dependencies:
3760
+
deep-is: 0.1.4
3761
+
fast-levenshtein: 2.0.6
3762
+
levn: 0.4.1
3763
+
prelude-ls: 1.2.1
3764
+
type-check: 0.4.0
3765
+
word-wrap: 1.2.5
3766
+
3767
+
p-limit@3.1.0:
3768
+
dependencies:
3769
+
yocto-queue: 0.1.0
3770
+
2651
3771
p-limit@6.2.0:
2652
3772
dependencies:
2653
3773
yocto-queue: 1.2.1
3774
+
3775
+
p-locate@5.0.0:
3776
+
dependencies:
3777
+
p-limit: 3.1.0
2654
3778
2655
3779
p-queue@8.1.0:
2656
3780
dependencies:
···
2663
3787
2664
3788
pako@0.2.9: {}
2665
3789
3790
+
parent-module@1.0.1:
3791
+
dependencies:
3792
+
callsites: 3.1.0
3793
+
2666
3794
parse-latin@7.0.0:
2667
3795
dependencies:
2668
3796
'@types/nlcst': 2.0.3
···
2675
3803
parse5@7.3.0:
2676
3804
dependencies:
2677
3805
entities: 6.0.1
3806
+
3807
+
path-exists@4.0.0: {}
3808
+
3809
+
path-key@3.1.1: {}
2678
3810
2679
3811
picocolors@1.1.1: {}
2680
3812
2681
3813
picomatch@2.3.1: {}
2682
3814
2683
-
picomatch@4.0.2: {}
3815
+
picomatch@4.0.3: {}
2684
3816
2685
-
postcss@8.5.4:
3817
+
postcss-selector-parser@7.1.0:
3818
+
dependencies:
3819
+
cssesc: 3.0.0
3820
+
util-deprecate: 1.0.2
3821
+
3822
+
postcss@8.5.6:
2686
3823
dependencies:
2687
3824
nanoid: 3.3.11
2688
3825
picocolors: 1.1.1
2689
3826
source-map-js: 1.2.1
2690
3827
3828
+
prelude-ls@1.2.1: {}
3829
+
3830
+
prettier-linter-helpers@1.0.0:
3831
+
dependencies:
3832
+
fast-diff: 1.3.0
3833
+
3834
+
prettier-plugin-astro@0.14.1:
3835
+
dependencies:
3836
+
'@astrojs/compiler': 2.12.2
3837
+
prettier: 3.6.2
3838
+
sass-formatter: 0.7.9
3839
+
3840
+
prettier@3.6.2: {}
3841
+
2691
3842
prismjs@1.30.0: {}
2692
3843
2693
3844
prompts@2.4.2:
···
2698
3849
property-information@6.5.0: {}
2699
3850
2700
3851
property-information@7.1.0: {}
3852
+
3853
+
punycode@2.3.1: {}
3854
+
3855
+
queue-microtask@1.2.3: {}
2701
3856
2702
3857
radix3@1.1.2: {}
2703
3858
···
2779
3934
mdast-util-to-markdown: 2.1.2
2780
3935
unified: 11.0.5
2781
3936
3937
+
resolve-from@4.0.0: {}
3938
+
2782
3939
restructure@3.0.2: {}
2783
3940
2784
3941
retext-latin@4.0.0:
···
2806
3963
retext-stringify: 4.0.0
2807
3964
unified: 11.0.5
2808
3965
2809
-
rollup@4.42.0:
3966
+
reusify@1.1.0: {}
3967
+
3968
+
rollup@4.45.3:
2810
3969
dependencies:
2811
-
'@types/estree': 1.0.7
3970
+
'@types/estree': 1.0.8
2812
3971
optionalDependencies:
2813
-
'@rollup/rollup-android-arm-eabi': 4.42.0
2814
-
'@rollup/rollup-android-arm64': 4.42.0
2815
-
'@rollup/rollup-darwin-arm64': 4.42.0
2816
-
'@rollup/rollup-darwin-x64': 4.42.0
2817
-
'@rollup/rollup-freebsd-arm64': 4.42.0
2818
-
'@rollup/rollup-freebsd-x64': 4.42.0
2819
-
'@rollup/rollup-linux-arm-gnueabihf': 4.42.0
2820
-
'@rollup/rollup-linux-arm-musleabihf': 4.42.0
2821
-
'@rollup/rollup-linux-arm64-gnu': 4.42.0
2822
-
'@rollup/rollup-linux-arm64-musl': 4.42.0
2823
-
'@rollup/rollup-linux-loongarch64-gnu': 4.42.0
2824
-
'@rollup/rollup-linux-powerpc64le-gnu': 4.42.0
2825
-
'@rollup/rollup-linux-riscv64-gnu': 4.42.0
2826
-
'@rollup/rollup-linux-riscv64-musl': 4.42.0
2827
-
'@rollup/rollup-linux-s390x-gnu': 4.42.0
2828
-
'@rollup/rollup-linux-x64-gnu': 4.42.0
2829
-
'@rollup/rollup-linux-x64-musl': 4.42.0
2830
-
'@rollup/rollup-win32-arm64-msvc': 4.42.0
2831
-
'@rollup/rollup-win32-ia32-msvc': 4.42.0
2832
-
'@rollup/rollup-win32-x64-msvc': 4.42.0
3972
+
'@rollup/rollup-android-arm-eabi': 4.45.3
3973
+
'@rollup/rollup-android-arm64': 4.45.3
3974
+
'@rollup/rollup-darwin-arm64': 4.45.3
3975
+
'@rollup/rollup-darwin-x64': 4.45.3
3976
+
'@rollup/rollup-freebsd-arm64': 4.45.3
3977
+
'@rollup/rollup-freebsd-x64': 4.45.3
3978
+
'@rollup/rollup-linux-arm-gnueabihf': 4.45.3
3979
+
'@rollup/rollup-linux-arm-musleabihf': 4.45.3
3980
+
'@rollup/rollup-linux-arm64-gnu': 4.45.3
3981
+
'@rollup/rollup-linux-arm64-musl': 4.45.3
3982
+
'@rollup/rollup-linux-loongarch64-gnu': 4.45.3
3983
+
'@rollup/rollup-linux-ppc64-gnu': 4.45.3
3984
+
'@rollup/rollup-linux-riscv64-gnu': 4.45.3
3985
+
'@rollup/rollup-linux-riscv64-musl': 4.45.3
3986
+
'@rollup/rollup-linux-s390x-gnu': 4.45.3
3987
+
'@rollup/rollup-linux-x64-gnu': 4.45.3
3988
+
'@rollup/rollup-linux-x64-musl': 4.45.3
3989
+
'@rollup/rollup-win32-arm64-msvc': 4.45.3
3990
+
'@rollup/rollup-win32-ia32-msvc': 4.45.3
3991
+
'@rollup/rollup-win32-x64-msvc': 4.45.3
2833
3992
fsevents: 2.3.3
2834
3993
3994
+
run-parallel@1.2.0:
3995
+
dependencies:
3996
+
queue-microtask: 1.2.3
3997
+
3998
+
s.color@0.0.15: {}
3999
+
4000
+
sass-formatter@0.7.9:
4001
+
dependencies:
4002
+
suf-log: 2.5.3
4003
+
2835
4004
semver@7.7.2: {}
2836
4005
2837
4006
sharp@0.33.5:
···
2861
4030
'@img/sharp-win32-x64': 0.33.5
2862
4031
optional: true
2863
4032
2864
-
shiki@3.6.0:
4033
+
shebang-command@2.0.0:
2865
4034
dependencies:
2866
-
'@shikijs/core': 3.6.0
2867
-
'@shikijs/engine-javascript': 3.6.0
2868
-
'@shikijs/engine-oniguruma': 3.6.0
2869
-
'@shikijs/langs': 3.6.0
2870
-
'@shikijs/themes': 3.6.0
2871
-
'@shikijs/types': 3.6.0
4035
+
shebang-regex: 3.0.0
4036
+
4037
+
shebang-regex@3.0.0: {}
4038
+
4039
+
shiki@3.8.1:
4040
+
dependencies:
4041
+
'@shikijs/core': 3.8.1
4042
+
'@shikijs/engine-javascript': 3.8.1
4043
+
'@shikijs/engine-oniguruma': 3.8.1
4044
+
'@shikijs/langs': 3.8.1
4045
+
'@shikijs/themes': 3.8.1
4046
+
'@shikijs/types': 3.8.1
2872
4047
'@shikijs/vscode-textmate': 10.0.2
2873
4048
'@types/hast': 3.0.4
2874
4049
···
2879
4054
2880
4055
sisteransi@1.0.5: {}
2881
4056
2882
-
smol-toml@1.3.4: {}
4057
+
smol-toml@1.4.1: {}
2883
4058
2884
4059
source-map-js@1.2.1: {}
2885
4060
···
2910
4085
dependencies:
2911
4086
ansi-regex: 6.1.0
2912
4087
4088
+
strip-json-comments@3.1.1: {}
4089
+
4090
+
suf-log@2.5.3:
4091
+
dependencies:
4092
+
s.color: 0.0.15
4093
+
4094
+
supports-color@7.2.0:
4095
+
dependencies:
4096
+
has-flag: 4.0.0
4097
+
4098
+
synckit@0.11.11:
4099
+
dependencies:
4100
+
'@pkgr/core': 0.2.9
4101
+
2913
4102
tiny-inflate@1.0.3: {}
2914
4103
2915
4104
tinyexec@0.3.2: {}
2916
4105
2917
4106
tinyglobby@0.2.14:
2918
4107
dependencies:
2919
-
fdir: 6.4.5(picomatch@4.0.2)
2920
-
picomatch: 4.0.2
4108
+
fdir: 6.4.6(picomatch@4.0.3)
4109
+
picomatch: 4.0.3
4110
+
4111
+
to-regex-range@5.0.1:
4112
+
dependencies:
4113
+
is-number: 7.0.0
2921
4114
2922
4115
tr46@0.0.3: {}
2923
4116
···
2925
4118
2926
4119
trough@2.2.0: {}
2927
4120
4121
+
ts-api-utils@2.1.0(typescript@5.8.3):
4122
+
dependencies:
4123
+
typescript: 5.8.3
4124
+
2928
4125
tsconfck@3.1.6(typescript@5.8.3):
2929
4126
optionalDependencies:
2930
4127
typescript: 5.8.3
2931
4128
2932
4129
tslib@2.8.1: {}
2933
4130
4131
+
type-check@0.4.0:
4132
+
dependencies:
4133
+
prelude-ls: 1.2.1
4134
+
2934
4135
type-fest@4.41.0: {}
2935
4136
4137
+
typescript-eslint@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3):
4138
+
dependencies:
4139
+
'@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3))(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)
4140
+
'@typescript-eslint/parser': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)
4141
+
'@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3)
4142
+
'@typescript-eslint/utils': 8.38.0(eslint@9.32.0(jiti@2.5.1))(typescript@5.8.3)
4143
+
eslint: 9.32.0(jiti@2.5.1)
4144
+
typescript: 5.8.3
4145
+
transitivePeerDependencies:
4146
+
- supports-color
4147
+
2936
4148
typescript@5.8.3: {}
2937
4149
2938
4150
ufo@1.6.1: {}
···
2941
4153
2942
4154
uncrypto@0.1.3: {}
2943
4155
2944
-
undici-types@6.21.0: {}
4156
+
undici-types@7.8.0: {}
2945
4157
2946
4158
unicode-properties@1.4.1:
2947
4159
dependencies:
···
2963
4175
trough: 2.2.0
2964
4176
vfile: 6.0.3
2965
4177
2966
-
unifont@0.5.0:
4178
+
unifont@0.5.2:
2967
4179
dependencies:
2968
4180
css-tree: 3.1.0
4181
+
ofetch: 1.4.1
2969
4182
ohash: 2.0.11
2970
4183
2971
4184
unist-util-find-after@5.0.0:
···
3010
4223
unist-util-is: 6.0.0
3011
4224
unist-util-visit-parents: 6.0.1
3012
4225
3013
-
unstorage@1.16.0:
4226
+
unstorage@1.16.1:
3014
4227
dependencies:
3015
4228
anymatch: 3.1.3
3016
4229
chokidar: 4.0.3
···
3021
4234
ofetch: 1.4.1
3022
4235
ufo: 1.6.1
3023
4236
4237
+
uri-js@4.4.1:
4238
+
dependencies:
4239
+
punycode: 2.3.1
4240
+
4241
+
util-deprecate@1.0.2: {}
4242
+
3024
4243
vfile-location@5.0.3:
3025
4244
dependencies:
3026
4245
'@types/unist': 3.0.3
3027
4246
vfile: 6.0.3
3028
4247
3029
-
vfile-message@4.0.2:
4248
+
vfile-message@4.0.3:
3030
4249
dependencies:
3031
4250
'@types/unist': 3.0.3
3032
4251
unist-util-stringify-position: 4.0.0
···
3034
4253
vfile@6.0.3:
3035
4254
dependencies:
3036
4255
'@types/unist': 3.0.3
3037
-
vfile-message: 4.0.2
4256
+
vfile-message: 4.0.3
3038
4257
3039
-
vite@6.3.5(@types/node@22.15.30):
4258
+
vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1):
3040
4259
dependencies:
3041
-
esbuild: 0.25.5
3042
-
fdir: 6.4.5(picomatch@4.0.2)
3043
-
picomatch: 4.0.2
3044
-
postcss: 8.5.4
3045
-
rollup: 4.42.0
4260
+
esbuild: 0.25.8
4261
+
fdir: 6.4.6(picomatch@4.0.3)
4262
+
picomatch: 4.0.3
4263
+
postcss: 8.5.6
4264
+
rollup: 4.45.3
3046
4265
tinyglobby: 0.2.14
3047
4266
optionalDependencies:
3048
-
'@types/node': 22.15.30
4267
+
'@types/node': 24.1.0
3049
4268
fsevents: 2.3.3
4269
+
jiti: 2.5.1
3050
4270
3051
-
vitefu@1.0.6(vite@6.3.5(@types/node@22.15.30)):
4271
+
vitefu@1.1.1(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)):
3052
4272
optionalDependencies:
3053
-
vite: 6.3.5(@types/node@22.15.30)
4273
+
vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)
3054
4274
3055
4275
web-namespaces@2.0.1: {}
3056
4276
···
3063
4283
3064
4284
which-pm-runs@1.1.0: {}
3065
4285
4286
+
which@2.0.2:
4287
+
dependencies:
4288
+
isexe: 2.0.0
4289
+
3066
4290
widest-line@5.0.0:
3067
4291
dependencies:
3068
4292
string-width: 7.2.0
4293
+
4294
+
word-wrap@1.2.5: {}
3069
4295
3070
4296
wrap-ansi@9.0.0:
3071
4297
dependencies:
···
3077
4303
3078
4304
yargs-parser@21.1.1: {}
3079
4305
4306
+
yocto-queue@0.1.0: {}
4307
+
3080
4308
yocto-queue@1.2.1: {}
3081
4309
3082
4310
yocto-spinner@0.2.3:
···
3085
4313
3086
4314
yoctocolors@2.1.1: {}
3087
4315
3088
-
zod-to-json-schema@3.24.5(zod@3.25.56):
4316
+
zod-to-json-schema@3.24.6(zod@3.25.76):
3089
4317
dependencies:
3090
-
zod: 3.25.56
4318
+
zod: 3.25.76
3091
4319
3092
-
zod-to-ts@1.2.0(typescript@5.8.3)(zod@3.25.56):
4320
+
zod-to-ts@1.2.0(typescript@5.8.3)(zod@3.25.76):
3093
4321
dependencies:
3094
4322
typescript: 5.8.3
3095
-
zod: 3.25.56
4323
+
zod: 3.25.76
3096
4324
3097
-
zod@3.25.56: {}
4325
+
zod@3.25.76: {}
3098
4326
3099
4327
zwitch@2.0.4: {}
+19
-14
frontend/src/components/Clip.astro
+19
-14
frontend/src/components/Clip.astro
···
1
1
---
2
2
import TagList from "./TagList.astro";
3
-
const { title, tagList, link, description, originalClipper, firstClipDate } = Astro.props;
3
+
const { title, tagList, link, description, originalClipper, firstClipDate } =
4
+
Astro.props;
4
5
---
6
+
5
7
<div class="clip">
6
-
<div class="clip-head">
7
-
<h2 class="clip-title"><a href={link}>{title}</a></h2>
8
-
<TagList tags={tagList} />
9
-
</div>
10
-
<small class="clip-link"><a href={link}>{link}</a></small>
11
-
<p class="clip-description">{description}</p>
12
-
<div class="clip-actions">
13
-
<a href="#">clip</a>
14
-
<a href="#">respond</a>
15
-
<a href="#">hide</a>
16
-
<span class="original-clipper">[first clipped by <a href="#">@{originalClipper}</a> {firstClipDate} ago]</span>
17
-
</div>
18
-
</div>
8
+
<div class="clip-head">
9
+
<h2 class="clip-title"><a href={link}>{title}</a></h2>
10
+
<TagList tags={tagList} />
11
+
</div>
12
+
<small class="clip-link"><a href={link}>{link}</a></small>
13
+
<p class="clip-description">{description}</p>
14
+
<div class="clip-actions">
15
+
<a href="#">clip</a>
16
+
<a href="#">respond</a>
17
+
<a href="#">hide</a>
18
+
<span class="original-clipper"
19
+
>[first clipped by <a href="#">@{originalClipper}</a>
20
+
{firstClipDate} ago]</span
21
+
>
22
+
</div>
23
+
</div>
+6
-5
frontend/src/components/SidebarItem.astro
+6
-5
frontend/src/components/SidebarItem.astro
+6
-7
frontend/src/components/TagList.astro
+6
-7
frontend/src/components/TagList.astro
···
1
1
---
2
-
const {tags} = Astro.props;
2
+
const { tags } = Astro.props;
3
3
let tags_arr;
4
-
if (typeof tags !== 'undefined') {
5
-
tags_arr = tags.split(',');
4
+
if (typeof tags !== "undefined") {
5
+
tags_arr = tags.split(",");
6
6
}
7
7
---
8
+
8
9
<div class="clip-tags">
9
-
{
10
-
tags_arr?.map((element: string) => (<small>{element}</small>))
11
-
}
12
-
</div>
10
+
{tags_arr?.map((element: string) => <small>{element}</small>)}
11
+
</div>
+10
-9
frontend/src/layouts/Base.astro
+10
-9
frontend/src/layouts/Base.astro
···
1
1
---
2
2
const { title } = Astro.props;
3
-
import '../styles/main.css';
3
+
import "../styles/main.css";
4
4
---
5
+
5
6
<!doctype html>
6
7
<!--
7
8
* clippr: a social bookmarking service for the AT Protocol
···
9
10
* SPDX-License-Identifier: AGPL-3.0-only
10
11
-->
11
12
<html lang="en">
12
-
<head>
13
-
<meta charset="UTF-8"/>
14
-
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
15
-
<title>{title} | clippr</title>
16
-
</head>
17
-
<body>
18
-
<slot />
19
-
</body>
13
+
<head>
14
+
<meta charset="UTF-8" />
15
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
16
+
<title>{title} | clippr</title>
17
+
</head>
18
+
<body>
19
+
<slot />
20
+
</body>
20
21
</html>
+9
-7
frontend/src/layouts/Header.astro
+9
-7
frontend/src/layouts/Header.astro
···
1
1
---
2
+
2
3
---
4
+
3
5
<header id="header-navbar">
4
-
<h1>clippr (beta!)</h1>
5
-
<ul>
6
-
<li><a href="/">home</a></li>
7
-
<li><a href="/about">about</a></li>
8
-
<li><a href="/login">login</a></li>
9
-
</ul>
10
-
</header>
6
+
<h1>clippr (beta!)</h1>
7
+
<ul>
8
+
<li><a href="/">home</a></li>
9
+
<li><a href="/about">about</a></li>
10
+
<li><a href="/login">login</a></li>
11
+
</ul>
12
+
</header>
+23
-21
frontend/src/pages/404.astro
+23
-21
frontend/src/pages/404.astro
···
3
3
import Header from "../layouts/Header.astro";
4
4
import Footer from "../layouts/Footer.astro";
5
5
---
6
+
6
7
<Base title="404">
7
-
<Header/>
8
-
<main class="404-page">
9
-
<h2>404 | page not found</h2>
10
-
<p>the party seems to be over...</p>
11
-
<a href="/">ยซ go home</a>
12
-
</main>
13
-
<Footer/>
8
+
<Header />
9
+
<main class="404-page">
10
+
<h2>404 | page not found</h2>
11
+
<p>the party seems to be over...</p>
12
+
<a href="/">ยซ go home</a>
13
+
</main>
14
+
<Footer />
14
15
</Base>
15
16
16
17
<style>
17
-
main {
18
-
display: flex !important;
19
-
flex-direction: column !important;
20
-
gap: 0.1rem;
21
-
align-items: center;
22
-
justify-content: center;
23
-
}
18
+
main {
19
+
display: flex !important;
20
+
flex-direction: column !important;
21
+
gap: 0.1rem;
22
+
align-items: center;
23
+
justify-content: center;
24
+
}
24
25
25
-
h2, p {
26
-
margin: 0.5rem 0;
27
-
}
26
+
h2,
27
+
p {
28
+
margin: 0.5rem 0;
29
+
}
28
30
29
-
a {
30
-
color: revert;
31
-
}
32
-
</style>
31
+
a {
32
+
color: revert;
33
+
}
34
+
</style>
+7
-6
frontend/src/pages/about.astro
+7
-6
frontend/src/pages/about.astro
···
3
3
import Header from "../layouts/Header.astro";
4
4
import Footer from "../layouts/Footer.astro";
5
5
---
6
+
6
7
<Base title="about">
7
-
<Header/>
8
-
<main>
9
-
<p>Fill in later!</p>
10
-
</main>
11
-
<Footer/>
12
-
</Base>
8
+
<Header />
9
+
<main>
10
+
<p>Fill in later!</p>
11
+
</main>
12
+
<Footer />
13
+
</Base>
+38
-29
frontend/src/pages/index.astro
+38
-29
frontend/src/pages/index.astro
···
1
1
---
2
-
import Base from '../layouts/Base.astro';
2
+
import Base from "../layouts/Base.astro";
3
3
import Header from "../layouts/Header.astro";
4
4
import Footer from "../layouts/Footer.astro";
5
5
import Clip from "../components/Clip.astro";
6
6
import SidebarItem from "../components/SidebarItem.astro";
7
7
---
8
+
8
9
<Base title="home">
9
-
<Header/>
10
-
<main>
11
-
<div id="main-content">
12
-
<div id="clip-list">
13
-
<Clip title="google" link="https://google.com" tagList="technology,search,google"
14
-
description="tests woah"
15
-
originalClipper="popbob.com" firstClipDate="30m"/>
16
-
</div>
17
-
</div>
18
-
<div id="sidebar">
19
-
<SidebarItem title="what is clippr?">
20
-
<p>clippr is a bookmarking site that doubles as a news aggregator.</p>
21
-
<p>using your bookmarks (or "clips") and their associated tags, a constantly updated news feed is
22
-
created based on what users are clipping to their collection.</p>
23
-
<a href="/about">learn more ยป</a>
24
-
</SidebarItem>
25
-
<SidebarItem title="stats">
26
-
<h3>clips</h3>
27
-
<p class="item-counter">0</p>
28
-
<h3>sites</h3>
29
-
<p class="item-counter">0</p>
30
-
<h3>users</h3>
31
-
<p class="item-counter">0</p>
32
-
</SidebarItem>
33
-
</div>
34
-
</main>
35
-
<Footer/>
36
-
</Base>
10
+
<Header />
11
+
<main>
12
+
<div id="main-content">
13
+
<div id="clip-list">
14
+
<Clip
15
+
title="google"
16
+
link="https://google.com"
17
+
tagList="technology,search,google"
18
+
description="tests woah"
19
+
originalClipper="popbob.com"
20
+
firstClipDate="30m"
21
+
/>
22
+
</div>
23
+
</div>
24
+
<div id="sidebar">
25
+
<SidebarItem title="what is clippr?">
26
+
<p>clippr is a bookmarking site that doubles as a news aggregator.</p>
27
+
<p>
28
+
using your bookmarks (or "clips") and their associated tags, a
29
+
constantly updated news feed is created based on what users are
30
+
clipping to their collection.
31
+
</p>
32
+
<a href="/about">learn more ยป</a>
33
+
</SidebarItem>
34
+
<SidebarItem title="stats">
35
+
<h3>clips</h3>
36
+
<p class="item-counter">0</p>
37
+
<h3>sites</h3>
38
+
<p class="item-counter">0</p>
39
+
<h3>users</h3>
40
+
<p class="item-counter">0</p>
41
+
</SidebarItem>
42
+
</div>
43
+
</main>
44
+
<Footer />
45
+
</Base>
+83
-77
frontend/src/pages/login.astro
+83
-77
frontend/src/pages/login.astro
···
1
1
---
2
-
import Base from '../layouts/Base.astro';
2
+
import Base from "../layouts/Base.astro";
3
3
import Header from "../layouts/Header.astro";
4
4
import Footer from "../layouts/Footer.astro";
5
5
---
6
+
6
7
<Base title="login">
7
-
<Header/>
8
-
<main>
9
-
<div id="oauth-login">
10
-
<h2>log in</h2>
11
-
<p>Enter your Bluesky handle.</p>
12
-
<form>
13
-
<label for="handle">handle</label>
14
-
<input type="text" id="handle" name="handle" placeholder="handle">
15
-
<input type="submit" value="Authenticate">
16
-
</form>
17
-
</div>
18
-
<!--<p id="or">or...</p>-->
19
-
<!--<div id="bluesky-login">-->
20
-
<!-- <h2>use your bluesky account</h2>-->
21
-
<!-- <button id="bluesky-login-button">login to bluesky</button>-->
22
-
<!--</div>-->
23
-
</main>
24
-
<Footer/>
8
+
<Header />
9
+
<main>
10
+
<div id="oauth-login">
11
+
<h2>log in</h2>
12
+
<p>Enter your Bluesky handle.</p>
13
+
<form>
14
+
<label for="handle">handle</label>
15
+
<input
16
+
type="text"
17
+
id="handle"
18
+
name="handle"
19
+
placeholder="clippr.social"
20
+
/>
21
+
<input type="submit" value="Authenticate" />
22
+
</form>
23
+
</div>
24
+
<!--<p id="or">or...</p>-->
25
+
<!--<div id="bluesky-login">-->
26
+
<!-- <h2>use your bluesky account</h2>-->
27
+
<!-- <button id="bluesky-login-button">login to bluesky</button>-->
28
+
<!--</div>-->
29
+
</main>
30
+
<Footer />
25
31
</Base>
26
32
27
33
<style>
28
-
main {
29
-
display: flex !important;
30
-
flex-direction: column;
31
-
align-items: center;
32
-
justify-content: center;
33
-
gap: 1rem;
34
-
}
34
+
main {
35
+
display: flex !important;
36
+
flex-direction: column;
37
+
align-items: center;
38
+
justify-content: center;
39
+
gap: 1rem;
40
+
}
35
41
36
-
form {
37
-
display: flex;
38
-
flex-direction: column;
39
-
justify-content: center;
42
+
form {
43
+
display: flex;
44
+
flex-direction: column;
45
+
justify-content: center;
40
46
41
-
label {
42
-
text-align: center;
43
-
font-weight: bold;
44
-
margin-bottom: 0.5rem;
45
-
}
47
+
label {
48
+
text-align: center;
49
+
font-weight: bold;
50
+
margin-bottom: 0.5rem;
51
+
}
46
52
47
-
input[type="submit"] {
48
-
margin: 1rem 0 0 0;
49
-
padding: 0.5rem 0;
50
-
width: 50%;
51
-
align-self: center;
52
-
}
53
-
}
53
+
input[type="submit"] {
54
+
margin: 1rem 0 0 0;
55
+
padding: 0.5rem 0;
56
+
width: 50%;
57
+
align-self: center;
58
+
}
59
+
}
54
60
55
-
a {
56
-
color: revert;
57
-
}
61
+
a {
62
+
color: revert;
63
+
}
58
64
59
-
#or {
60
-
border: 2px black solid;
61
-
padding: 0.5rem 2rem;
62
-
margin: 0;
63
-
font-weight: bold;
64
-
}
65
+
#or {
66
+
border: 2px black solid;
67
+
padding: 0.5rem 2rem;
68
+
margin: 0;
69
+
font-weight: bold;
70
+
}
65
71
66
-
h2 {
67
-
text-align: center;
68
-
}
72
+
h2 {
73
+
text-align: center;
74
+
margin-top: 0;
75
+
}
69
76
70
-
#bluesky-login {
71
-
display: flex;
72
-
flex-direction: column;
73
-
justify-content: center;
74
-
align-items: center;
77
+
#bluesky-login {
78
+
display: flex;
79
+
flex-direction: column;
80
+
justify-content: center;
81
+
align-items: center;
75
82
76
-
h2 {
77
-
margin: 1rem 0;
78
-
margin-top: 0;
79
-
}
80
-
}
83
+
h2 {
84
+
margin: 0 0 1rem;
85
+
}
86
+
}
81
87
82
-
#bluesky-login-button {
83
-
background: linear-gradient(deepskyblue, lightskyblue);
84
-
border: none;
85
-
border-radius: 10px;
86
-
font-weight: bold;
87
-
padding: 1rem 2rem;
88
-
}
88
+
#bluesky-login-button {
89
+
background: linear-gradient(deepskyblue, lightskyblue);
90
+
border: none;
91
+
border-radius: 10px;
92
+
font-weight: bold;
93
+
padding: 1rem 2rem;
94
+
}
89
95
90
-
#bluesky-login-button:hover {
91
-
cursor: pointer;
92
-
filter: brightness(90%);
93
-
transition: filter 0.3s ease-in-out;
94
-
}
95
-
</style>
96
+
#bluesky-login-button:hover {
97
+
cursor: pointer;
98
+
filter: brightness(90%);
99
+
transition: filter 0.3s ease-in-out;
100
+
}
101
+
</style>
+120
-120
frontend/src/styles/main.css
+120
-120
frontend/src/styles/main.css
···
5
5
*/
6
6
7
7
body {
8
-
margin: 2rem auto;
9
-
font-family: Arial, sans-serif;
10
-
background-color: #bbb;
11
-
width: 63%;
8
+
margin: 2rem auto;
9
+
font-family: Arial, sans-serif;
10
+
background-color: #bbb;
11
+
width: 63%;
12
12
}
13
13
14
14
@media (max-width: 768px) {
15
-
body {
16
-
margin: auto;
17
-
width: 100%;
18
-
}
15
+
body {
16
+
margin: auto;
17
+
width: 100%;
18
+
}
19
19
}
20
20
21
21
header {
22
-
background-image: linear-gradient(#455372, #2b3854);
23
-
color: white;
24
-
display: flex;
25
-
flex-direction: row;
26
-
align-items: center;
27
-
justify-content: space-between;
28
-
padding: 0.5rem 1rem;
22
+
background-image: linear-gradient(#455372, #2b3854);
23
+
color: white;
24
+
display: flex;
25
+
flex-direction: row;
26
+
align-items: center;
27
+
justify-content: space-between;
28
+
padding: 0.5rem 1rem;
29
29
30
-
h1 {
31
-
font-size: 1rem;
32
-
}
30
+
h1 {
31
+
font-size: 1rem;
32
+
}
33
33
34
-
ul {
35
-
list-style-type: none;
36
-
margin: 0;
37
-
display: flex;
38
-
flex-direction: row;
39
-
gap: 1.5rem;
40
-
}
34
+
ul {
35
+
list-style-type: none;
36
+
margin: 0;
37
+
display: flex;
38
+
flex-direction: row;
39
+
gap: 1.5rem;
40
+
}
41
41
}
42
42
43
43
a {
44
-
text-decoration: none;
45
-
color: white;
44
+
text-decoration: none;
45
+
color: white;
46
46
}
47
47
48
48
a:hover {
49
-
font-style: italic;
49
+
font-style: italic;
50
+
font-weight: bold;
50
51
}
51
52
52
53
main {
53
-
background-color: white;
54
-
background-clip: border-box;
55
-
padding: 1rem 0.5rem;
54
+
background-color: white;
55
+
background-clip: border-box;
56
+
padding: 1rem 0.5rem;
56
57
57
-
display: grid;
58
-
grid-template-columns: 70% 30%;
58
+
display: grid;
59
+
grid-template-columns: 70% 30%;
59
60
}
60
61
61
62
#clip-list {
62
-
margin: 0 0.5rem;
63
+
margin: 0 0.5rem;
63
64
64
-
.clip:first-of-type {
65
-
margin: 0;
66
-
}
65
+
.clip:first-of-type {
66
+
margin: 0;
67
+
}
67
68
68
-
.clip {
69
-
margin: 1.5rem 0;
70
-
}
69
+
.clip {
70
+
margin: 1.5rem 0;
71
+
}
71
72
}
72
73
73
74
.clip {
74
-
display: grid;
75
-
grid-template-columns: auto;
76
-
grid-template-rows: auto;
77
-
grid-gap: 0.5rem;
75
+
display: grid;
76
+
grid-template-columns: auto;
77
+
grid-template-rows: auto;
78
+
grid-gap: 0.5rem;
78
79
79
-
a {
80
-
color: revert;
81
-
}
80
+
a {
81
+
color: revert;
82
+
}
82
83
83
-
.clip-head {
84
-
display: flex;
85
-
flex-direction: row;
86
-
align-items: center;
87
-
gap: 1rem;
84
+
.clip-head {
85
+
display: flex;
86
+
flex-direction: row;
87
+
align-items: center;
88
+
gap: 1rem;
88
89
89
-
h2 {
90
-
margin: 0;
91
-
}
90
+
h2 {
91
+
margin: 0;
92
+
}
92
93
93
-
grid-column: 1;
94
-
grid-row: 1;
95
-
}
94
+
grid-column: 1;
95
+
grid-row: 1;
96
+
}
96
97
97
-
.clip-link {
98
-
grid-column: 1;
99
-
grid-row: 2;
100
-
}
98
+
.clip-link {
99
+
grid-column: 1;
100
+
grid-row: 2;
101
+
}
101
102
102
-
.clip-description {
103
-
grid-column: 1;
104
-
grid-row: 3;
103
+
.clip-description {
104
+
grid-column: 1;
105
+
grid-row: 3;
105
106
106
-
font-size: 0.8rem;
107
-
margin: 0.25rem 0;
108
-
}
107
+
font-size: 0.8rem;
108
+
margin: 0.25rem 0;
109
+
}
109
110
110
-
.clip-tags {
111
-
margin: 0;
112
-
}
111
+
.clip-tags {
112
+
margin: 0;
113
+
}
113
114
114
-
.clip-tags * {
115
-
background: linear-gradient(#ffe076, #fff0cb) !important;
116
-
padding: 0.25rem;
117
-
margin: 0 0.25rem !important;
118
-
border-radius: 0.34rem;
119
-
border: 0.09rem solid black;
120
-
}
115
+
.clip-tags * {
116
+
background: linear-gradient(#ffe076, #fff0cb) !important;
117
+
padding: 0.25rem;
118
+
margin: 0 0.25rem !important;
119
+
border-radius: 0.34rem;
120
+
border: 0.09rem solid black;
121
+
}
121
122
122
-
.clip-actions {
123
-
display: flex;
124
-
flex-direction: row;
125
-
gap: 0.5rem;
126
-
font-size: 0.8rem;
123
+
.clip-actions {
124
+
display: flex;
125
+
flex-direction: row;
126
+
gap: 0.5rem;
127
+
font-size: 0.8rem;
127
128
128
-
grid-column: 1;
129
-
grid-row: 4;
130
-
}
129
+
grid-column: 1;
130
+
grid-row: 4;
131
+
}
131
132
132
-
.original-clipper {
133
-
color: #777 !important;
134
-
}
133
+
.original-clipper {
134
+
color: #777 !important;
135
+
}
135
136
}
136
137
137
138
#sidebar {
138
-
margin: 0 1rem;
139
+
margin: 0 1rem;
139
140
}
140
141
141
142
.sidebar-content {
142
-
background-color: #bbbbbb;
143
-
display: flex;
144
-
flex-direction: column;
145
-
align-items: center;
146
-
justify-content: center;
143
+
background-color: #bbbbbb;
144
+
display: flex;
145
+
flex-direction: column;
146
+
align-items: center;
147
+
justify-content: center;
147
148
148
-
h3, p {
149
-
margin: 0.5rem;
150
-
}
149
+
h3,
150
+
p {
151
+
margin: 0.5rem;
152
+
}
151
153
152
-
.item-counter {
153
-
font-size: 2rem;
154
-
}
154
+
.item-counter {
155
+
font-size: 2rem;
156
+
}
155
157
}
156
158
157
159
.sidebar-item {
158
-
padding: 0.5rem 0;
160
+
padding: 0.5rem 0;
159
161
160
-
h2 {
161
-
margin: 0.5rem 0;
162
-
}
162
+
h2 {
163
+
margin: 0.5rem 0;
164
+
}
163
165
164
-
a {
165
-
align-self: start;
166
-
color: revert;
167
-
padding: 0.5rem 0.5rem;
168
-
}
166
+
a {
167
+
align-self: start;
168
+
color: revert;
169
+
padding: 0.5rem 0.5rem;
170
+
}
169
171
170
-
a:hover {
171
-
font-style: revert;
172
-
text-decoration: underline;
173
-
}
172
+
a:hover {
173
+
font-style: revert;
174
+
text-decoration: underline;
175
+
}
174
176
}
175
177
176
178
.sidebar-item:first-of-type {
177
-
padding-top: 0;
179
+
padding-top: 0;
178
180
179
-
h2 {
180
-
margin-top: 0;
181
-
}
181
+
h2 {
182
+
margin-top: 0;
183
+
}
182
184
}
183
-
184
-
+3
-3
frontend/tsconfig.json
+3
-3
frontend/tsconfig.json
+39
lexicons/CHANGELOG.md
+39
lexicons/CHANGELOG.md
···
1
+
# changelog for @clipprjs/lexicons
2
+
3
+
## v1.0.2
4
+
* fix some description typos
5
+
* fix `social.clippr.feed.getTags` not existing due to an ID collision
6
+
7
+
## v1.0.1
8
+
9
+
* remove minimum character prompts due to schema validation errors that broke otherwise valid records
10
+
11
+
## v1.0.0
12
+
13
+
> this version should be considered as the starting point for a usable Lexicon API. previous versions should be ignored.
14
+
15
+
* added search queries for clips, tags and profiles
16
+
* added `social.clippr.actor.defs#preferences` with an accompanying query and procedure lexicon
17
+
* added more inline documentation to previously existing lexicons
18
+
* added query lexicons for having a clip and tag feed on a profile
19
+
* added general query lexicons for at:// URIs linking to clips and tags
20
+
21
+
## v0.1.4
22
+
23
+
* added length constraints to more strings in record lexicons
24
+
25
+
## v0.1.3
26
+
27
+
* made `displayName` required for profile records
28
+
29
+
## v0.1.2
30
+
31
+
* added npm tags.. i guess
32
+
33
+
## v0.1.1
34
+
35
+
* something(?)
36
+
37
+
## v0.1.0
38
+
39
+
* initial record and `social.clippr.actor.getProfile` query lexicons
+2
-2
lexicons/README.md
+2
-2
lexicons/README.md
···
2
2
3
3
Lexicon package auto-generated with `@atcute/lex-cli`
4
4
5
-
> This package is *very* unstable. Lexicon attributes can be modified at any moment.
5
+
> This package is *somewhat* unstable. Lexicon attributes can be modified at any moment.
6
6
> Please do not use this package for anything until the [Clippr server](https://tangled.sh/@hexmani.ac/clippr) has been
7
-
> deployed for either public or developer consumption.
7
+
> deployed for either public or developer usage.
8
8
9
9
## Usage
10
10
+16
-16
lexicons/lex.config.js
+16
-16
lexicons/lex.config.js
···
8
8
import {defineLexiconConfig} from "@atcute/lex-cli";
9
9
10
10
export default defineLexiconConfig({
11
-
files: ["../lexdocs/**/*.json"],
12
-
outdir: "lib/lexicons",
13
-
mappings: [
14
-
{
15
-
nsid: ["com.atproto.*"],
16
-
imports: (nsid) => {
17
-
const specifier = nsid
18
-
.slice("com.atproto.".length)
19
-
.replaceAll(".", "/");
20
-
return {
21
-
type: "namespace",
22
-
from: `@atcute/atproto/types/${specifier}`,
23
-
};
24
-
},
25
-
},
26
-
],
11
+
files: ["../lexdocs/**/*.json"],
12
+
outdir: "lib/lexicons",
13
+
mappings: [
14
+
{
15
+
nsid: ["com.atproto.*"],
16
+
imports: (nsid) => {
17
+
const specifier = nsid
18
+
.slice("com.atproto.".length)
19
+
.replaceAll(".", "/");
20
+
return {
21
+
type: "namespace",
22
+
from: `@atcute/atproto/types/${specifier}`,
23
+
};
24
+
},
25
+
},
26
+
],
27
27
});
+11
lexicons/lib/lexicons/index.ts
+11
lexicons/lib/lexicons/index.ts
···
5
5
*/
6
6
7
7
export * as SocialClipprActorDefs from "./types/social/clippr/actor/defs.js";
8
+
export * as SocialClipprActorGetPreferences from "./types/social/clippr/actor/getPreferences.js";
8
9
export * as SocialClipprActorGetProfile from "./types/social/clippr/actor/getProfile.js";
9
10
export * as SocialClipprActorProfile from "./types/social/clippr/actor/profile.js";
11
+
export * as SocialClipprActorPutPreferences from "./types/social/clippr/actor/putPreferences.js";
12
+
export * as SocialClipprActorSearchClips from "./types/social/clippr/actor/searchClips.js";
13
+
export * as SocialClipprActorSearchProfiles from "./types/social/clippr/actor/searchProfiles.js";
14
+
export * as SocialClipprActorSearchTags from "./types/social/clippr/actor/searchTags.js";
10
15
export * as SocialClipprFeedClip from "./types/social/clippr/feed/clip.js";
16
+
export * as SocialClipprFeedDefs from "./types/social/clippr/feed/defs.js";
17
+
export * as SocialClipprFeedGetClips from "./types/social/clippr/feed/getClips.js";
18
+
export * as SocialClipprFeedGetProfileClips from "./types/social/clippr/feed/getProfileClips.js";
19
+
export * as SocialClipprFeedGetProfileTags from "./types/social/clippr/feed/getProfileTags.js";
20
+
export * as SocialClipprFeedGetTagList from "./types/social/clippr/feed/getTagList.js";
21
+
export * as SocialClipprFeedGetTags from "./types/social/clippr/feed/getTags.js";
11
22
export * as SocialClipprFeedTag from "./types/social/clippr/feed/tag.js";
+2
-2
lexicons/package.json
+2
-2
lexicons/package.json
···
1
1
{
2
2
"type": "module",
3
3
"name": "@clipprjs/lexicons",
4
-
"version": "0.1.4",
4
+
"version": "1.0.2",
5
5
"description": "Clippr schema definitions",
6
6
"license": "AGPL-3.0-only",
7
7
"private": false,
···
29
29
"prepublish": "rm -rf dist; pnpm run build"
30
30
},
31
31
"dependencies": {
32
-
"@atcute/atproto": "^3.1.0",
32
+
"@atcute/atproto": "^3.1.1",
33
33
"@atcute/lexicons": "^1.1.0"
34
34
},
35
35
"devDependencies": {
+5
-5
lexicons/pnpm-lock.yaml
+5
-5
lexicons/pnpm-lock.yaml
···
9
9
.:
10
10
dependencies:
11
11
'@atcute/atproto':
12
-
specifier: ^3.1.0
13
-
version: 3.1.0
12
+
specifier: ^3.1.1
13
+
version: 3.1.1
14
14
'@atcute/lexicons':
15
15
specifier: ^1.1.0
16
16
version: 1.1.0
···
24
24
25
25
packages:
26
26
27
-
'@atcute/atproto@3.1.0':
28
-
resolution: {integrity: sha512-aJbDsY7FcIh8APWKAimBtshPwqoRE056tc0UV6vw4TW4e3nYaHedoJmKhlh/k8KQWxyw64MQThNGMaC89HNoTg==}
27
+
'@atcute/atproto@3.1.1':
28
+
resolution: {integrity: sha512-D+RLTIPF0xLu7BPZY8KSewAPemJFh+3n3zeQ3ROsLxbTtCHbrTDMAmAFexaVRAPGcPYrwXaBUlv7yZjScJolMg==}
29
29
30
30
'@atcute/lex-cli@2.1.1':
31
31
resolution: {integrity: sha512-QaR0sOP8Z24opGHKsSfleDbP/ahUb6HECkVaOqSwG7ORZzbLK1w0265o1BRjCVr2dT6FxlsMUa2Ge85JMA9bxg==}
···
64
64
65
65
snapshots:
66
66
67
-
'@atcute/atproto@3.1.0':
67
+
'@atcute/atproto@3.1.1':
68
68
dependencies:
69
69
'@atcute/lexicons': 1.1.0
70
70