+3
-1
.dockerignore
+3
-1
.dockerignore
.tangled/images/network.webp
.tangled/images/network.webp
This is a binary file and will not be displayed.
+1
-1
Dockerfiles/web-ui.Dockerfile
+1
-1
Dockerfiles/web-ui.Dockerfile
+2
-2
README.md
+2
-2
README.md
···
9
9
10
10
- Looking for the old pds moover for simple code to fork
11
11
check [here](https://tangled.org/@baileytownsend.dev/pds-moover/tree/803d8a70b7100c9e14df3402277441050e0f6194), if
12
-
you'd like to see the newer front end check [here](./web/ui-code/src)
12
+
you'd like to see the newer front end check [here](./web-ui)
13
13
- Want to run your own instance of PDS MOOver? [check this docker compose](./compose.selfhost.yml). It should have all
14
14
the
15
15
services in one easy `docker compose up`, just don't forget to create a `.env` from [.env.template](.env.template)
···
43
43
## Do you have a pretty picture to show how the network looks?
44
44
45
45
yes. Thanks to [Orual](https://bsky.app/profile/nonbinary.computer)
46
-

46
+

+1
-1
justfile
+1
-1
justfile
+5
-1
packages/moover/lib/pdsmoover.js
+5
-1
packages/moover/lib/pdsmoover.js
···
49
49
* @param {string|null} inviteCode - The invite code you got from the PDS you are migrating to. If null does not include one
50
50
* @param {function|null} statusUpdateHandler - a function that takes a string used to update the UI. Like (status) => console.log(status)
51
51
* @param {string|null} twoFactorCode - Optional, but needed if it fails with 2fa required
52
+
* @param verificationCode - Optional verification captcha code for account creation if the PDS requires it
52
53
*/
53
-
async migrate(oldHandle, password, newPdsUrl, newEmail, newHandle, inviteCode, statusUpdateHandler = null, twoFactorCode = null) {
54
+
async migrate(oldHandle, password, newPdsUrl, newEmail, newHandle, inviteCode, statusUpdateHandler = null, twoFactorCode = null, verificationCode = null) {
54
55
//Leaving this logic that either sets the agent to bsky.social, or the PDS since it's what I found worked best for migrations.
55
56
// handleAndPDSResolver should be able to handle it, but there have been edge cases and this was what worked best
56
57
oldHandle = cleanHandle(oldHandle);
···
114
115
};
115
116
if (inviteCode) {
116
117
createAccountRequest.inviteCode = inviteCode;
118
+
}
119
+
if (verificationCode) {
120
+
createAccountRequest.verificationCode = verificationCode;
117
121
}
118
122
const createNewAccount = await newAgent.com.atproto.server.createAccount(
119
123
createAccountRequest,
+1
-1
packages/moover/package.json
+1
-1
packages/moover/package.json
+2
-1
packages/moover/types/pdsmoover.d.ts
+2
-1
packages/moover/types/pdsmoover.d.ts
···
35
35
* @param {string|null} inviteCode - The invite code you got from the PDS you are migrating to. If null does not include one
36
36
* @param {function|null} statusUpdateHandler - a function that takes a string used to update the UI. Like (status) => console.log(status)
37
37
* @param {string|null} twoFactorCode - Optional, but needed if it fails with 2fa required
38
+
* @param verificationCode - Optional verification captcha code for account creation if the PDS requires it
38
39
*/
39
-
migrate(oldHandle: string, password: string, newPdsUrl: string, newEmail: string, newHandle: string, inviteCode: string | null, statusUpdateHandler?: Function | null, twoFactorCode?: string | null): Promise<void>;
40
+
migrate(oldHandle: string, password: string, newPdsUrl: string, newEmail: string, newHandle: string, inviteCode: string | null, statusUpdateHandler?: Function | null, twoFactorCode?: string | null, verificationCode?: any): Promise<void>;
40
41
/**
41
42
* Sign and submits the PLC operation to officially migrate the account
42
43
* @param {string} token - the PLC token sent in the email. If you're just wanting to run this rerun migrate with all the flags set as false except for migratePlcRecord
+1
-1
packages/moover/types/pdsmoover.d.ts.map
+1
-1
packages/moover/types/pdsmoover.d.ts.map
···
1
-
{"version":3,"file":"pdsmoover.d.ts","sourceRoot":"","sources":["../lib/pdsmoover.js"],"names":[],"mappings":"AAUA;;;GAGG;AACH;IAEQ,uBAAuB;IACvB,UADW,QAAQ,CACC;IACpB,uBAAuB;IACvB,UADW,QAAQ,CACC;IACpB,uBAAuB;IACvB,cADW,CAAC,MAAM,CAAC,CACG;IAEtB,sBAAsB;IACtB,kBADW,OAAO,CACU;IAC5B,sBAAsB;IACtB,aADW,OAAO,CACK;IACvB,sBAAsB;IACtB,cADW,OAAO,CACM;IACxB,sBAAsB;IACtB,qBADW,OAAO,CACa;IAC/B,sBAAsB;IACtB,cADW,OAAO,CACM;IACxB,sBAAsB;IACtB,kBADW,OAAO,CACU;IAGhC;;;;;;;;;;;;;;OAcG;IACH,mBATW,MAAM,YACN,MAAM,aACN,MAAM,YACN,MAAM,aACN,MAAM,cACN,MAAM,GAAC,IAAI,wBACX,WAAS,IAAI,kBACb,MAAM,GAAC,IAAI,iBAuLrB;IAED;;;;;OAKG;IACH,wBAJW,MAAM,gCACsB,MAAM,EAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CA4BzB;IAED;;;;;;;;;;;OAWG;IACH,gCAPqB,MAAM,eACJ,MAAM,wBAClB,WAAS,IAAI,kBAEb,MAAM,GAAC,IAAI,GACT,OAAO,CAAC,IAAI,CAAC,CAiEzB;IAED;;;;;OAKG;IACH,uCAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAkCzB;CACJ;yBAhYsB,cAAc"}
1
+
{"version":3,"file":"pdsmoover.d.ts","sourceRoot":"","sources":["../lib/pdsmoover.js"],"names":[],"mappings":"AAUA;;;GAGG;AACH;IAEQ,uBAAuB;IACvB,UADW,QAAQ,CACC;IACpB,uBAAuB;IACvB,UADW,QAAQ,CACC;IACpB,uBAAuB;IACvB,cADW,CAAC,MAAM,CAAC,CACG;IAEtB,sBAAsB;IACtB,kBADW,OAAO,CACU;IAC5B,sBAAsB;IACtB,aADW,OAAO,CACK;IACvB,sBAAsB;IACtB,cADW,OAAO,CACM;IACxB,sBAAsB;IACtB,qBADW,OAAO,CACa;IAC/B,sBAAsB;IACtB,cADW,OAAO,CACM;IACxB,sBAAsB;IACtB,kBADW,OAAO,CACU;IAGhC;;;;;;;;;;;;;;;OAeG;IACH,mBAVW,MAAM,YACN,MAAM,aACN,MAAM,YACN,MAAM,aACN,MAAM,cACN,MAAM,GAAC,IAAI,wBACX,WAAS,IAAI,kBACb,MAAM,GAAC,IAAI,yCA2LrB;IAED;;;;;OAKG;IACH,wBAJW,MAAM,gCACsB,MAAM,EAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CA4BzB;IAED;;;;;;;;;;;OAWG;IACH,gCAPqB,MAAM,eACJ,MAAM,wBAClB,WAAS,IAAI,kBAEb,MAAM,GAAC,IAAI,GACT,OAAO,CAAC,IAAI,CAAC,CAiEzB;IAED;;;;;OAKG;IACH,uCAHW,MAAM,GACJ,OAAO,CAAC,IAAI,CAAC,CAkCzB;CACJ;yBApYsB,cAAc"}
-2713
web-ui/package-lock.json
-2713
web-ui/package-lock.json
···
1
-
{
2
-
"name": "web-ui",
3
-
"version": "0.0.1",
4
-
"lockfileVersion": 3,
5
-
"requires": true,
6
-
"packages": {
7
-
"": {
8
-
"name": "web-ui",
9
-
"version": "0.0.1",
10
-
"dependencies": {
11
-
"@atcute/client": "^4.0.5",
12
-
"@atcute/lexicons": "^1.2.2",
13
-
"@pds-moover/lexicons": "^1.0.1",
14
-
"@pds-moover/moover": "^1.0.4"
15
-
},
16
-
"devDependencies": {
17
-
"@eslint/compat": "^1.4.0",
18
-
"@eslint/js": "^9.36.0",
19
-
"@sveltejs/adapter-auto": "^6.1.0",
20
-
"@sveltejs/adapter-node": "^5.4.0",
21
-
"@sveltejs/kit": "^2.43.2",
22
-
"@sveltejs/vite-plugin-svelte": "^6.2.0",
23
-
"@types/node": "^22",
24
-
"eslint": "^9.36.0",
25
-
"eslint-plugin-svelte": "^3.12.4",
26
-
"globals": "^16.4.0",
27
-
"svelte": "^5.39.5",
28
-
"svelte-check": "^4.3.2",
29
-
"typescript": "^5.9.2",
30
-
"typescript-eslint": "^8.44.1",
31
-
"vite": "^7.1.7"
32
-
},
33
-
"optionalDependencies": {
34
-
"@rollup/rollup-linux-x64-musl": "^4.52.5"
35
-
}
36
-
},
37
-
"../lexicon_types": {
38
-
"name": "@pds-moover/lexicon_types",
39
-
"version": "0.0.0",
40
-
"extraneous": true,
41
-
"dependencies": {
42
-
"@atproto/lexicon": "^0.5.1",
43
-
"@atproto/xrpc": "^0.7.5",
44
-
"cid": "multiformats/cid"
45
-
},
46
-
"devDependencies": {
47
-
"@atcute/lex-cli": "^2.2.2",
48
-
"@types/node": "^24.7.2",
49
-
"typescript": "~5.9.3",
50
-
"vite": "^7.1.7",
51
-
"vite-plugin-dts": "^4.5.4"
52
-
}
53
-
},
54
-
"../packages/lexicon_types": {
55
-
"name": "@pds-moover/lexicon_types",
56
-
"version": "0.0.0",
57
-
"extraneous": true,
58
-
"dependencies": {
59
-
"@atproto/lexicon": "^0.5.1",
60
-
"@atproto/xrpc": "^0.7.5",
61
-
"cid": "multiformats/cid"
62
-
},
63
-
"devDependencies": {
64
-
"@atcute/lex-cli": "^2.2.2"
65
-
}
66
-
},
67
-
"../packages/moover": {
68
-
"name": "@pds-moover/moover",
69
-
"version": "1.0.4",
70
-
"license": "MIT",
71
-
"dependencies": {
72
-
"@atcute/cbor": "^2.2.7",
73
-
"@atcute/client": "^4.0.4",
74
-
"@atcute/crypto": "^2.2.5",
75
-
"@atcute/did-plc": "^0.1.7",
76
-
"@atcute/identity-resolver": "^1.1.3",
77
-
"@atcute/lexicons": "^1.2.2",
78
-
"@atcute/multibase": "^1.1.6",
79
-
"@atproto/api": "^0.16.7",
80
-
"@pds-moover/lexicons": "^1.0.0",
81
-
"alpinejs": "^3.15.0",
82
-
"vite-plugin-full-reload": "^1.2.0",
83
-
"vite-rs-plugin": "1.0.1"
84
-
},
85
-
"devDependencies": {
86
-
"eslint": "^9.34.0",
87
-
"eslint-plugin-import": "^2.32.0",
88
-
"vite": "^7.1.7"
89
-
}
90
-
},
91
-
"../packages/moover/types": {
92
-
"extraneous": true
93
-
},
94
-
"node_modules/@atcute/client": {
95
-
"version": "4.0.5",
96
-
"resolved": "https://registry.npmjs.org/@atcute/client/-/client-4.0.5.tgz",
97
-
"integrity": "sha512-R8Qen8goGmEkynYGg2m6XFlVmz0GTDvQ+9w+4QqOob+XMk8/WDpF4aImev7WKEde/rV2gjcqW7zM8E6W9NShDA==",
98
-
"license": "0BSD",
99
-
"dependencies": {
100
-
"@atcute/identity": "^1.1.1",
101
-
"@atcute/lexicons": "^1.2.2"
102
-
}
103
-
},
104
-
"node_modules/@atcute/identity": {
105
-
"version": "1.1.1",
106
-
"resolved": "https://registry.npmjs.org/@atcute/identity/-/identity-1.1.1.tgz",
107
-
"integrity": "sha512-zax42n693VEhnC+5tndvO2KLDTMkHOz8UExwmklvJv7R9VujfEwiSWhcv6Jgwb3ellaG8wjiQ1lMOIjLLvwh0Q==",
108
-
"license": "0BSD",
109
-
"dependencies": {
110
-
"@atcute/lexicons": "^1.2.2",
111
-
"@badrap/valita": "^0.4.6"
112
-
}
113
-
},
114
-
"node_modules/@atcute/lexicons": {
115
-
"version": "1.2.2",
116
-
"resolved": "https://registry.npmjs.org/@atcute/lexicons/-/lexicons-1.2.2.tgz",
117
-
"integrity": "sha512-bgEhJq5Z70/0TbK5sx+tAkrR8FsCODNiL2gUEvS5PuJfPxmFmRYNWaMGehxSPaXWpU2+Oa9ckceHiYbrItDTkA==",
118
-
"license": "0BSD",
119
-
"dependencies": {
120
-
"@standard-schema/spec": "^1.0.0",
121
-
"esm-env": "^1.2.2"
122
-
}
123
-
},
124
-
"node_modules/@atproto/common-web": {
125
-
"version": "0.4.3",
126
-
"resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.3.tgz",
127
-
"integrity": "sha512-nRDINmSe4VycJzPo6fP/hEltBcULFxt9Kw7fQk6405FyAWZiTluYHlXOnU7GkQfeUK44OENG1qFTBcmCJ7e8pg==",
128
-
"license": "MIT",
129
-
"dependencies": {
130
-
"graphemer": "^1.4.0",
131
-
"multiformats": "^9.9.0",
132
-
"uint8arrays": "3.0.0",
133
-
"zod": "^3.23.8"
134
-
}
135
-
},
136
-
"node_modules/@atproto/lexicon": {
137
-
"version": "0.5.1",
138
-
"resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.5.1.tgz",
139
-
"integrity": "sha512-y8AEtYmfgVl4fqFxqXAeGvhesiGkxiy3CWoJIfsFDDdTlZUC8DFnZrYhcqkIop3OlCkkljvpSJi1hbeC1tbi8A==",
140
-
"license": "MIT",
141
-
"dependencies": {
142
-
"@atproto/common-web": "^0.4.3",
143
-
"@atproto/syntax": "^0.4.1",
144
-
"iso-datestring-validator": "^2.2.2",
145
-
"multiformats": "^9.9.0",
146
-
"zod": "^3.23.8"
147
-
}
148
-
},
149
-
"node_modules/@atproto/syntax": {
150
-
"version": "0.4.1",
151
-
"resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.4.1.tgz",
152
-
"integrity": "sha512-CJdImtLAiFO+0z3BWTtxwk6aY5w4t8orHTMVJgkf++QRJWTxPbIFko/0hrkADB7n2EruDxDSeAgfUGehpH6ngw==",
153
-
"license": "MIT"
154
-
},
155
-
"node_modules/@atproto/xrpc": {
156
-
"version": "0.7.5",
157
-
"resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.7.5.tgz",
158
-
"integrity": "sha512-MUYNn5d2hv8yVegRL0ccHvTHAVj5JSnW07bkbiaz96UH45lvYNRVwt44z+yYVnb0/mvBzyD3/ZQ55TRGt7fHkA==",
159
-
"license": "MIT",
160
-
"dependencies": {
161
-
"@atproto/lexicon": "^0.5.1",
162
-
"zod": "^3.23.8"
163
-
}
164
-
},
165
-
"node_modules/@badrap/valita": {
166
-
"version": "0.4.6",
167
-
"resolved": "https://registry.npmjs.org/@badrap/valita/-/valita-0.4.6.tgz",
168
-
"integrity": "sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==",
169
-
"license": "MIT",
170
-
"engines": {
171
-
"node": ">= 18"
172
-
}
173
-
},
174
-
"node_modules/@esbuild/darwin-arm64": {
175
-
"version": "0.25.11",
176
-
"cpu": [
177
-
"arm64"
178
-
],
179
-
"dev": true,
180
-
"license": "MIT",
181
-
"optional": true,
182
-
"os": [
183
-
"darwin"
184
-
],
185
-
"engines": {
186
-
"node": ">=18"
187
-
}
188
-
},
189
-
"node_modules/@eslint-community/eslint-utils": {
190
-
"version": "4.9.0",
191
-
"dev": true,
192
-
"license": "MIT",
193
-
"dependencies": {
194
-
"eslint-visitor-keys": "^3.4.3"
195
-
},
196
-
"engines": {
197
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
198
-
},
199
-
"funding": {
200
-
"url": "https://opencollective.com/eslint"
201
-
},
202
-
"peerDependencies": {
203
-
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
204
-
}
205
-
},
206
-
"node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
207
-
"version": "3.4.3",
208
-
"dev": true,
209
-
"license": "Apache-2.0",
210
-
"engines": {
211
-
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
212
-
},
213
-
"funding": {
214
-
"url": "https://opencollective.com/eslint"
215
-
}
216
-
},
217
-
"node_modules/@eslint-community/regexpp": {
218
-
"version": "4.12.2",
219
-
"dev": true,
220
-
"license": "MIT",
221
-
"engines": {
222
-
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
223
-
}
224
-
},
225
-
"node_modules/@eslint/compat": {
226
-
"version": "1.4.0",
227
-
"dev": true,
228
-
"license": "Apache-2.0",
229
-
"dependencies": {
230
-
"@eslint/core": "^0.16.0"
231
-
},
232
-
"engines": {
233
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
234
-
},
235
-
"peerDependencies": {
236
-
"eslint": "^8.40 || 9"
237
-
},
238
-
"peerDependenciesMeta": {
239
-
"eslint": {
240
-
"optional": true
241
-
}
242
-
}
243
-
},
244
-
"node_modules/@eslint/config-array": {
245
-
"version": "0.21.1",
246
-
"dev": true,
247
-
"license": "Apache-2.0",
248
-
"dependencies": {
249
-
"@eslint/object-schema": "^2.1.7",
250
-
"debug": "^4.3.1",
251
-
"minimatch": "^3.1.2"
252
-
},
253
-
"engines": {
254
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
255
-
}
256
-
},
257
-
"node_modules/@eslint/config-helpers": {
258
-
"version": "0.4.1",
259
-
"dev": true,
260
-
"license": "Apache-2.0",
261
-
"dependencies": {
262
-
"@eslint/core": "^0.16.0"
263
-
},
264
-
"engines": {
265
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
266
-
}
267
-
},
268
-
"node_modules/@eslint/core": {
269
-
"version": "0.16.0",
270
-
"dev": true,
271
-
"license": "Apache-2.0",
272
-
"dependencies": {
273
-
"@types/json-schema": "^7.0.15"
274
-
},
275
-
"engines": {
276
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
277
-
}
278
-
},
279
-
"node_modules/@eslint/eslintrc": {
280
-
"version": "3.3.1",
281
-
"dev": true,
282
-
"license": "MIT",
283
-
"dependencies": {
284
-
"ajv": "^6.12.4",
285
-
"debug": "^4.3.2",
286
-
"espree": "^10.0.1",
287
-
"globals": "^14.0.0",
288
-
"ignore": "^5.2.0",
289
-
"import-fresh": "^3.2.1",
290
-
"js-yaml": "^4.1.0",
291
-
"minimatch": "^3.1.2",
292
-
"strip-json-comments": "^3.1.1"
293
-
},
294
-
"engines": {
295
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
296
-
},
297
-
"funding": {
298
-
"url": "https://opencollective.com/eslint"
299
-
}
300
-
},
301
-
"node_modules/@eslint/eslintrc/node_modules/globals": {
302
-
"version": "14.0.0",
303
-
"dev": true,
304
-
"license": "MIT",
305
-
"engines": {
306
-
"node": ">=18"
307
-
},
308
-
"funding": {
309
-
"url": "https://github.com/sponsors/sindresorhus"
310
-
}
311
-
},
312
-
"node_modules/@eslint/js": {
313
-
"version": "9.38.0",
314
-
"dev": true,
315
-
"license": "MIT",
316
-
"engines": {
317
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
318
-
},
319
-
"funding": {
320
-
"url": "https://eslint.org/donate"
321
-
}
322
-
},
323
-
"node_modules/@eslint/object-schema": {
324
-
"version": "2.1.7",
325
-
"dev": true,
326
-
"license": "Apache-2.0",
327
-
"engines": {
328
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
329
-
}
330
-
},
331
-
"node_modules/@eslint/plugin-kit": {
332
-
"version": "0.4.0",
333
-
"dev": true,
334
-
"license": "Apache-2.0",
335
-
"dependencies": {
336
-
"@eslint/core": "^0.16.0",
337
-
"levn": "^0.4.1"
338
-
},
339
-
"engines": {
340
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
341
-
}
342
-
},
343
-
"node_modules/@humanfs/core": {
344
-
"version": "0.19.1",
345
-
"dev": true,
346
-
"license": "Apache-2.0",
347
-
"engines": {
348
-
"node": ">=18.18.0"
349
-
}
350
-
},
351
-
"node_modules/@humanfs/node": {
352
-
"version": "0.16.7",
353
-
"dev": true,
354
-
"license": "Apache-2.0",
355
-
"dependencies": {
356
-
"@humanfs/core": "^0.19.1",
357
-
"@humanwhocodes/retry": "^0.4.0"
358
-
},
359
-
"engines": {
360
-
"node": ">=18.18.0"
361
-
}
362
-
},
363
-
"node_modules/@humanwhocodes/module-importer": {
364
-
"version": "1.0.1",
365
-
"dev": true,
366
-
"license": "Apache-2.0",
367
-
"engines": {
368
-
"node": ">=12.22"
369
-
},
370
-
"funding": {
371
-
"type": "github",
372
-
"url": "https://github.com/sponsors/nzakas"
373
-
}
374
-
},
375
-
"node_modules/@humanwhocodes/retry": {
376
-
"version": "0.4.3",
377
-
"dev": true,
378
-
"license": "Apache-2.0",
379
-
"engines": {
380
-
"node": ">=18.18"
381
-
},
382
-
"funding": {
383
-
"type": "github",
384
-
"url": "https://github.com/sponsors/nzakas"
385
-
}
386
-
},
387
-
"node_modules/@jridgewell/gen-mapping": {
388
-
"version": "0.3.13",
389
-
"dev": true,
390
-
"license": "MIT",
391
-
"dependencies": {
392
-
"@jridgewell/sourcemap-codec": "^1.5.0",
393
-
"@jridgewell/trace-mapping": "^0.3.24"
394
-
}
395
-
},
396
-
"node_modules/@jridgewell/remapping": {
397
-
"version": "2.3.5",
398
-
"dev": true,
399
-
"license": "MIT",
400
-
"dependencies": {
401
-
"@jridgewell/gen-mapping": "^0.3.5",
402
-
"@jridgewell/trace-mapping": "^0.3.24"
403
-
}
404
-
},
405
-
"node_modules/@jridgewell/resolve-uri": {
406
-
"version": "3.1.2",
407
-
"dev": true,
408
-
"license": "MIT",
409
-
"engines": {
410
-
"node": ">=6.0.0"
411
-
}
412
-
},
413
-
"node_modules/@jridgewell/sourcemap-codec": {
414
-
"version": "1.5.5",
415
-
"dev": true,
416
-
"license": "MIT"
417
-
},
418
-
"node_modules/@jridgewell/trace-mapping": {
419
-
"version": "0.3.31",
420
-
"dev": true,
421
-
"license": "MIT",
422
-
"dependencies": {
423
-
"@jridgewell/resolve-uri": "^3.1.0",
424
-
"@jridgewell/sourcemap-codec": "^1.4.14"
425
-
}
426
-
},
427
-
"node_modules/@nodelib/fs.scandir": {
428
-
"version": "2.1.5",
429
-
"dev": true,
430
-
"license": "MIT",
431
-
"dependencies": {
432
-
"@nodelib/fs.stat": "2.0.5",
433
-
"run-parallel": "^1.1.9"
434
-
},
435
-
"engines": {
436
-
"node": ">= 8"
437
-
}
438
-
},
439
-
"node_modules/@nodelib/fs.stat": {
440
-
"version": "2.0.5",
441
-
"dev": true,
442
-
"license": "MIT",
443
-
"engines": {
444
-
"node": ">= 8"
445
-
}
446
-
},
447
-
"node_modules/@nodelib/fs.walk": {
448
-
"version": "1.2.8",
449
-
"dev": true,
450
-
"license": "MIT",
451
-
"dependencies": {
452
-
"@nodelib/fs.scandir": "2.1.5",
453
-
"fastq": "^1.6.0"
454
-
},
455
-
"engines": {
456
-
"node": ">= 8"
457
-
}
458
-
},
459
-
"node_modules/@pds-moover/lexicons": {
460
-
"version": "1.0.1",
461
-
"resolved": "https://registry.npmjs.org/@pds-moover/lexicons/-/lexicons-1.0.1.tgz",
462
-
"integrity": "sha512-fv5b/DtHM7FEo/JklyF9gdK0ainlb6mWjWrBe6cmSAeg9G/4O2jBlQUOqfOAICY9gOcrCpkOrk9PHgGw//JQ2A==",
463
-
"license": "MIT",
464
-
"dependencies": {
465
-
"@atproto/lexicon": "^0.5.1",
466
-
"@atproto/xrpc": "^0.7.5"
467
-
}
468
-
},
469
-
"node_modules/@pds-moover/moover": {
470
-
"resolved": "../packages/moover",
471
-
"link": true
472
-
},
473
-
"node_modules/@polka/url": {
474
-
"version": "1.0.0-next.29",
475
-
"dev": true,
476
-
"license": "MIT"
477
-
},
478
-
"node_modules/@rollup/plugin-commonjs": {
479
-
"version": "28.0.9",
480
-
"dev": true,
481
-
"license": "MIT",
482
-
"dependencies": {
483
-
"@rollup/pluginutils": "^5.0.1",
484
-
"commondir": "^1.0.1",
485
-
"estree-walker": "^2.0.2",
486
-
"fdir": "^6.2.0",
487
-
"is-reference": "1.2.1",
488
-
"magic-string": "^0.30.3",
489
-
"picomatch": "^4.0.2"
490
-
},
491
-
"engines": {
492
-
"node": ">=16.0.0 || 14 >= 14.17"
493
-
},
494
-
"peerDependencies": {
495
-
"rollup": "^2.68.0||^3.0.0||^4.0.0"
496
-
},
497
-
"peerDependenciesMeta": {
498
-
"rollup": {
499
-
"optional": true
500
-
}
501
-
}
502
-
},
503
-
"node_modules/@rollup/plugin-commonjs/node_modules/is-reference": {
504
-
"version": "1.2.1",
505
-
"dev": true,
506
-
"license": "MIT",
507
-
"dependencies": {
508
-
"@types/estree": "*"
509
-
}
510
-
},
511
-
"node_modules/@rollup/plugin-json": {
512
-
"version": "6.1.0",
513
-
"dev": true,
514
-
"license": "MIT",
515
-
"dependencies": {
516
-
"@rollup/pluginutils": "^5.1.0"
517
-
},
518
-
"engines": {
519
-
"node": ">=14.0.0"
520
-
},
521
-
"peerDependencies": {
522
-
"rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
523
-
},
524
-
"peerDependenciesMeta": {
525
-
"rollup": {
526
-
"optional": true
527
-
}
528
-
}
529
-
},
530
-
"node_modules/@rollup/plugin-node-resolve": {
531
-
"version": "16.0.3",
532
-
"dev": true,
533
-
"license": "MIT",
534
-
"dependencies": {
535
-
"@rollup/pluginutils": "^5.0.1",
536
-
"@types/resolve": "1.20.2",
537
-
"deepmerge": "^4.2.2",
538
-
"is-module": "^1.0.0",
539
-
"resolve": "^1.22.1"
540
-
},
541
-
"engines": {
542
-
"node": ">=14.0.0"
543
-
},
544
-
"peerDependencies": {
545
-
"rollup": "^2.78.0||^3.0.0||^4.0.0"
546
-
},
547
-
"peerDependenciesMeta": {
548
-
"rollup": {
549
-
"optional": true
550
-
}
551
-
}
552
-
},
553
-
"node_modules/@rollup/pluginutils": {
554
-
"version": "5.3.0",
555
-
"dev": true,
556
-
"license": "MIT",
557
-
"dependencies": {
558
-
"@types/estree": "^1.0.0",
559
-
"estree-walker": "^2.0.2",
560
-
"picomatch": "^4.0.2"
561
-
},
562
-
"engines": {
563
-
"node": ">=14.0.0"
564
-
},
565
-
"peerDependencies": {
566
-
"rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
567
-
},
568
-
"peerDependenciesMeta": {
569
-
"rollup": {
570
-
"optional": true
571
-
}
572
-
}
573
-
},
574
-
"node_modules/@rollup/rollup-darwin-arm64": {
575
-
"version": "4.52.5",
576
-
"cpu": [
577
-
"arm64"
578
-
],
579
-
"dev": true,
580
-
"license": "MIT",
581
-
"optional": true,
582
-
"os": [
583
-
"darwin"
584
-
]
585
-
},
586
-
"node_modules/@rollup/rollup-linux-x64-musl": {
587
-
"version": "4.52.5",
588
-
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz",
589
-
"integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==",
590
-
"cpu": [
591
-
"x64"
592
-
],
593
-
"license": "MIT",
594
-
"optional": true,
595
-
"os": [
596
-
"linux"
597
-
]
598
-
},
599
-
"node_modules/@standard-schema/spec": {
600
-
"version": "1.0.0",
601
-
"license": "MIT"
602
-
},
603
-
"node_modules/@sveltejs/acorn-typescript": {
604
-
"version": "1.0.6",
605
-
"dev": true,
606
-
"license": "MIT",
607
-
"peerDependencies": {
608
-
"acorn": "^8.9.0"
609
-
}
610
-
},
611
-
"node_modules/@sveltejs/adapter-auto": {
612
-
"version": "6.1.1",
613
-
"dev": true,
614
-
"license": "MIT",
615
-
"peerDependencies": {
616
-
"@sveltejs/kit": "^2.0.0"
617
-
}
618
-
},
619
-
"node_modules/@sveltejs/adapter-node": {
620
-
"version": "5.4.0",
621
-
"dev": true,
622
-
"license": "MIT",
623
-
"dependencies": {
624
-
"@rollup/plugin-commonjs": "^28.0.1",
625
-
"@rollup/plugin-json": "^6.1.0",
626
-
"@rollup/plugin-node-resolve": "^16.0.0",
627
-
"rollup": "^4.9.5"
628
-
},
629
-
"peerDependencies": {
630
-
"@sveltejs/kit": "^2.4.0"
631
-
}
632
-
},
633
-
"node_modules/@sveltejs/kit": {
634
-
"version": "2.48.0",
635
-
"dev": true,
636
-
"license": "MIT",
637
-
"dependencies": {
638
-
"@standard-schema/spec": "^1.0.0",
639
-
"@sveltejs/acorn-typescript": "^1.0.5",
640
-
"@types/cookie": "^0.6.0",
641
-
"acorn": "^8.14.1",
642
-
"cookie": "^0.6.0",
643
-
"devalue": "^5.3.2",
644
-
"esm-env": "^1.2.2",
645
-
"kleur": "^4.1.5",
646
-
"magic-string": "^0.30.5",
647
-
"mrmime": "^2.0.0",
648
-
"sade": "^1.8.1",
649
-
"set-cookie-parser": "^2.6.0",
650
-
"sirv": "^3.0.0"
651
-
},
652
-
"bin": {
653
-
"svelte-kit": "svelte-kit.js"
654
-
},
655
-
"engines": {
656
-
"node": ">=18.13"
657
-
},
658
-
"peerDependencies": {
659
-
"@opentelemetry/api": "^1.0.0",
660
-
"@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0",
661
-
"svelte": "^4.0.0 || ^5.0.0-next.0",
662
-
"vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0"
663
-
},
664
-
"peerDependenciesMeta": {
665
-
"@opentelemetry/api": {
666
-
"optional": true
667
-
}
668
-
}
669
-
},
670
-
"node_modules/@sveltejs/vite-plugin-svelte": {
671
-
"version": "6.2.1",
672
-
"dev": true,
673
-
"license": "MIT",
674
-
"dependencies": {
675
-
"@sveltejs/vite-plugin-svelte-inspector": "^5.0.0",
676
-
"debug": "^4.4.1",
677
-
"deepmerge": "^4.3.1",
678
-
"magic-string": "^0.30.17",
679
-
"vitefu": "^1.1.1"
680
-
},
681
-
"engines": {
682
-
"node": "^20.19 || ^22.12 || >=24"
683
-
},
684
-
"peerDependencies": {
685
-
"svelte": "^5.0.0",
686
-
"vite": "^6.3.0 || ^7.0.0"
687
-
}
688
-
},
689
-
"node_modules/@sveltejs/vite-plugin-svelte-inspector": {
690
-
"version": "5.0.1",
691
-
"dev": true,
692
-
"license": "MIT",
693
-
"dependencies": {
694
-
"debug": "^4.4.1"
695
-
},
696
-
"engines": {
697
-
"node": "^20.19 || ^22.12 || >=24"
698
-
},
699
-
"peerDependencies": {
700
-
"@sveltejs/vite-plugin-svelte": "^6.0.0-next.0",
701
-
"svelte": "^5.0.0",
702
-
"vite": "^6.3.0 || ^7.0.0"
703
-
}
704
-
},
705
-
"node_modules/@types/cookie": {
706
-
"version": "0.6.0",
707
-
"dev": true,
708
-
"license": "MIT"
709
-
},
710
-
"node_modules/@types/estree": {
711
-
"version": "1.0.8",
712
-
"dev": true,
713
-
"license": "MIT"
714
-
},
715
-
"node_modules/@types/json-schema": {
716
-
"version": "7.0.15",
717
-
"dev": true,
718
-
"license": "MIT"
719
-
},
720
-
"node_modules/@types/node": {
721
-
"version": "22.18.12",
722
-
"dev": true,
723
-
"license": "MIT",
724
-
"dependencies": {
725
-
"undici-types": "~6.21.0"
726
-
}
727
-
},
728
-
"node_modules/@types/resolve": {
729
-
"version": "1.20.2",
730
-
"dev": true,
731
-
"license": "MIT"
732
-
},
733
-
"node_modules/@typescript-eslint/eslint-plugin": {
734
-
"version": "8.46.2",
735
-
"dev": true,
736
-
"license": "MIT",
737
-
"dependencies": {
738
-
"@eslint-community/regexpp": "^4.10.0",
739
-
"@typescript-eslint/scope-manager": "8.46.2",
740
-
"@typescript-eslint/type-utils": "8.46.2",
741
-
"@typescript-eslint/utils": "8.46.2",
742
-
"@typescript-eslint/visitor-keys": "8.46.2",
743
-
"graphemer": "^1.4.0",
744
-
"ignore": "^7.0.0",
745
-
"natural-compare": "^1.4.0",
746
-
"ts-api-utils": "^2.1.0"
747
-
},
748
-
"engines": {
749
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
750
-
},
751
-
"funding": {
752
-
"type": "opencollective",
753
-
"url": "https://opencollective.com/typescript-eslint"
754
-
},
755
-
"peerDependencies": {
756
-
"@typescript-eslint/parser": "^8.46.2",
757
-
"eslint": "^8.57.0 || ^9.0.0",
758
-
"typescript": ">=4.8.4 <6.0.0"
759
-
}
760
-
},
761
-
"node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
762
-
"version": "7.0.5",
763
-
"dev": true,
764
-
"license": "MIT",
765
-
"engines": {
766
-
"node": ">= 4"
767
-
}
768
-
},
769
-
"node_modules/@typescript-eslint/parser": {
770
-
"version": "8.46.2",
771
-
"dev": true,
772
-
"license": "MIT",
773
-
"dependencies": {
774
-
"@typescript-eslint/scope-manager": "8.46.2",
775
-
"@typescript-eslint/types": "8.46.2",
776
-
"@typescript-eslint/typescript-estree": "8.46.2",
777
-
"@typescript-eslint/visitor-keys": "8.46.2",
778
-
"debug": "^4.3.4"
779
-
},
780
-
"engines": {
781
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
782
-
},
783
-
"funding": {
784
-
"type": "opencollective",
785
-
"url": "https://opencollective.com/typescript-eslint"
786
-
},
787
-
"peerDependencies": {
788
-
"eslint": "^8.57.0 || ^9.0.0",
789
-
"typescript": ">=4.8.4 <6.0.0"
790
-
}
791
-
},
792
-
"node_modules/@typescript-eslint/project-service": {
793
-
"version": "8.46.2",
794
-
"dev": true,
795
-
"license": "MIT",
796
-
"dependencies": {
797
-
"@typescript-eslint/tsconfig-utils": "^8.46.2",
798
-
"@typescript-eslint/types": "^8.46.2",
799
-
"debug": "^4.3.4"
800
-
},
801
-
"engines": {
802
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
803
-
},
804
-
"funding": {
805
-
"type": "opencollective",
806
-
"url": "https://opencollective.com/typescript-eslint"
807
-
},
808
-
"peerDependencies": {
809
-
"typescript": ">=4.8.4 <6.0.0"
810
-
}
811
-
},
812
-
"node_modules/@typescript-eslint/scope-manager": {
813
-
"version": "8.46.2",
814
-
"dev": true,
815
-
"license": "MIT",
816
-
"dependencies": {
817
-
"@typescript-eslint/types": "8.46.2",
818
-
"@typescript-eslint/visitor-keys": "8.46.2"
819
-
},
820
-
"engines": {
821
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
822
-
},
823
-
"funding": {
824
-
"type": "opencollective",
825
-
"url": "https://opencollective.com/typescript-eslint"
826
-
}
827
-
},
828
-
"node_modules/@typescript-eslint/tsconfig-utils": {
829
-
"version": "8.46.2",
830
-
"dev": true,
831
-
"license": "MIT",
832
-
"engines": {
833
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
834
-
},
835
-
"funding": {
836
-
"type": "opencollective",
837
-
"url": "https://opencollective.com/typescript-eslint"
838
-
},
839
-
"peerDependencies": {
840
-
"typescript": ">=4.8.4 <6.0.0"
841
-
}
842
-
},
843
-
"node_modules/@typescript-eslint/type-utils": {
844
-
"version": "8.46.2",
845
-
"dev": true,
846
-
"license": "MIT",
847
-
"dependencies": {
848
-
"@typescript-eslint/types": "8.46.2",
849
-
"@typescript-eslint/typescript-estree": "8.46.2",
850
-
"@typescript-eslint/utils": "8.46.2",
851
-
"debug": "^4.3.4",
852
-
"ts-api-utils": "^2.1.0"
853
-
},
854
-
"engines": {
855
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
856
-
},
857
-
"funding": {
858
-
"type": "opencollective",
859
-
"url": "https://opencollective.com/typescript-eslint"
860
-
},
861
-
"peerDependencies": {
862
-
"eslint": "^8.57.0 || ^9.0.0",
863
-
"typescript": ">=4.8.4 <6.0.0"
864
-
}
865
-
},
866
-
"node_modules/@typescript-eslint/types": {
867
-
"version": "8.46.2",
868
-
"dev": true,
869
-
"license": "MIT",
870
-
"engines": {
871
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
872
-
},
873
-
"funding": {
874
-
"type": "opencollective",
875
-
"url": "https://opencollective.com/typescript-eslint"
876
-
}
877
-
},
878
-
"node_modules/@typescript-eslint/typescript-estree": {
879
-
"version": "8.46.2",
880
-
"dev": true,
881
-
"license": "MIT",
882
-
"dependencies": {
883
-
"@typescript-eslint/project-service": "8.46.2",
884
-
"@typescript-eslint/tsconfig-utils": "8.46.2",
885
-
"@typescript-eslint/types": "8.46.2",
886
-
"@typescript-eslint/visitor-keys": "8.46.2",
887
-
"debug": "^4.3.4",
888
-
"fast-glob": "^3.3.2",
889
-
"is-glob": "^4.0.3",
890
-
"minimatch": "^9.0.4",
891
-
"semver": "^7.6.0",
892
-
"ts-api-utils": "^2.1.0"
893
-
},
894
-
"engines": {
895
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
896
-
},
897
-
"funding": {
898
-
"type": "opencollective",
899
-
"url": "https://opencollective.com/typescript-eslint"
900
-
},
901
-
"peerDependencies": {
902
-
"typescript": ">=4.8.4 <6.0.0"
903
-
}
904
-
},
905
-
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
906
-
"version": "9.0.5",
907
-
"dev": true,
908
-
"license": "ISC",
909
-
"dependencies": {
910
-
"brace-expansion": "^2.0.1"
911
-
},
912
-
"engines": {
913
-
"node": ">=16 || 14 >=14.17"
914
-
},
915
-
"funding": {
916
-
"url": "https://github.com/sponsors/isaacs"
917
-
}
918
-
},
919
-
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/node_modules/brace-expansion": {
920
-
"version": "2.0.2",
921
-
"dev": true,
922
-
"license": "MIT",
923
-
"dependencies": {
924
-
"balanced-match": "^1.0.0"
925
-
}
926
-
},
927
-
"node_modules/@typescript-eslint/utils": {
928
-
"version": "8.46.2",
929
-
"dev": true,
930
-
"license": "MIT",
931
-
"dependencies": {
932
-
"@eslint-community/eslint-utils": "^4.7.0",
933
-
"@typescript-eslint/scope-manager": "8.46.2",
934
-
"@typescript-eslint/types": "8.46.2",
935
-
"@typescript-eslint/typescript-estree": "8.46.2"
936
-
},
937
-
"engines": {
938
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
939
-
},
940
-
"funding": {
941
-
"type": "opencollective",
942
-
"url": "https://opencollective.com/typescript-eslint"
943
-
},
944
-
"peerDependencies": {
945
-
"eslint": "^8.57.0 || ^9.0.0",
946
-
"typescript": ">=4.8.4 <6.0.0"
947
-
}
948
-
},
949
-
"node_modules/@typescript-eslint/visitor-keys": {
950
-
"version": "8.46.2",
951
-
"dev": true,
952
-
"license": "MIT",
953
-
"dependencies": {
954
-
"@typescript-eslint/types": "8.46.2",
955
-
"eslint-visitor-keys": "^4.2.1"
956
-
},
957
-
"engines": {
958
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
959
-
},
960
-
"funding": {
961
-
"type": "opencollective",
962
-
"url": "https://opencollective.com/typescript-eslint"
963
-
}
964
-
},
965
-
"node_modules/acorn": {
966
-
"version": "8.15.0",
967
-
"dev": true,
968
-
"license": "MIT",
969
-
"bin": {
970
-
"acorn": "bin/acorn"
971
-
},
972
-
"engines": {
973
-
"node": ">=0.4.0"
974
-
}
975
-
},
976
-
"node_modules/acorn-jsx": {
977
-
"version": "5.3.2",
978
-
"dev": true,
979
-
"license": "MIT",
980
-
"peerDependencies": {
981
-
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
982
-
}
983
-
},
984
-
"node_modules/ajv": {
985
-
"version": "6.12.6",
986
-
"dev": true,
987
-
"license": "MIT",
988
-
"dependencies": {
989
-
"fast-deep-equal": "^3.1.1",
990
-
"fast-json-stable-stringify": "^2.0.0",
991
-
"json-schema-traverse": "^0.4.1",
992
-
"uri-js": "^4.2.2"
993
-
},
994
-
"funding": {
995
-
"type": "github",
996
-
"url": "https://github.com/sponsors/epoberezkin"
997
-
}
998
-
},
999
-
"node_modules/ansi-styles": {
1000
-
"version": "4.3.0",
1001
-
"dev": true,
1002
-
"license": "MIT",
1003
-
"dependencies": {
1004
-
"color-convert": "^2.0.1"
1005
-
},
1006
-
"engines": {
1007
-
"node": ">=8"
1008
-
},
1009
-
"funding": {
1010
-
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
1011
-
}
1012
-
},
1013
-
"node_modules/argparse": {
1014
-
"version": "2.0.1",
1015
-
"dev": true,
1016
-
"license": "Python-2.0"
1017
-
},
1018
-
"node_modules/aria-query": {
1019
-
"version": "5.3.2",
1020
-
"dev": true,
1021
-
"license": "Apache-2.0",
1022
-
"engines": {
1023
-
"node": ">= 0.4"
1024
-
}
1025
-
},
1026
-
"node_modules/axobject-query": {
1027
-
"version": "4.1.0",
1028
-
"dev": true,
1029
-
"license": "Apache-2.0",
1030
-
"engines": {
1031
-
"node": ">= 0.4"
1032
-
}
1033
-
},
1034
-
"node_modules/balanced-match": {
1035
-
"version": "1.0.2",
1036
-
"dev": true,
1037
-
"license": "MIT"
1038
-
},
1039
-
"node_modules/brace-expansion": {
1040
-
"version": "1.1.12",
1041
-
"dev": true,
1042
-
"license": "MIT",
1043
-
"dependencies": {
1044
-
"balanced-match": "^1.0.0",
1045
-
"concat-map": "0.0.1"
1046
-
}
1047
-
},
1048
-
"node_modules/braces": {
1049
-
"version": "3.0.3",
1050
-
"dev": true,
1051
-
"license": "MIT",
1052
-
"dependencies": {
1053
-
"fill-range": "^7.1.1"
1054
-
},
1055
-
"engines": {
1056
-
"node": ">=8"
1057
-
}
1058
-
},
1059
-
"node_modules/callsites": {
1060
-
"version": "3.1.0",
1061
-
"dev": true,
1062
-
"license": "MIT",
1063
-
"engines": {
1064
-
"node": ">=6"
1065
-
}
1066
-
},
1067
-
"node_modules/chalk": {
1068
-
"version": "4.1.2",
1069
-
"dev": true,
1070
-
"license": "MIT",
1071
-
"dependencies": {
1072
-
"ansi-styles": "^4.1.0",
1073
-
"supports-color": "^7.1.0"
1074
-
},
1075
-
"engines": {
1076
-
"node": ">=10"
1077
-
},
1078
-
"funding": {
1079
-
"url": "https://github.com/chalk/chalk?sponsor=1"
1080
-
}
1081
-
},
1082
-
"node_modules/chokidar": {
1083
-
"version": "4.0.3",
1084
-
"dev": true,
1085
-
"license": "MIT",
1086
-
"dependencies": {
1087
-
"readdirp": "^4.0.1"
1088
-
},
1089
-
"engines": {
1090
-
"node": ">= 14.16.0"
1091
-
},
1092
-
"funding": {
1093
-
"url": "https://paulmillr.com/funding/"
1094
-
}
1095
-
},
1096
-
"node_modules/clsx": {
1097
-
"version": "2.1.1",
1098
-
"dev": true,
1099
-
"license": "MIT",
1100
-
"engines": {
1101
-
"node": ">=6"
1102
-
}
1103
-
},
1104
-
"node_modules/color-convert": {
1105
-
"version": "2.0.1",
1106
-
"dev": true,
1107
-
"license": "MIT",
1108
-
"dependencies": {
1109
-
"color-name": "~1.1.4"
1110
-
},
1111
-
"engines": {
1112
-
"node": ">=7.0.0"
1113
-
}
1114
-
},
1115
-
"node_modules/color-name": {
1116
-
"version": "1.1.4",
1117
-
"dev": true,
1118
-
"license": "MIT"
1119
-
},
1120
-
"node_modules/commondir": {
1121
-
"version": "1.0.1",
1122
-
"dev": true,
1123
-
"license": "MIT"
1124
-
},
1125
-
"node_modules/concat-map": {
1126
-
"version": "0.0.1",
1127
-
"dev": true,
1128
-
"license": "MIT"
1129
-
},
1130
-
"node_modules/cookie": {
1131
-
"version": "0.6.0",
1132
-
"dev": true,
1133
-
"license": "MIT",
1134
-
"engines": {
1135
-
"node": ">= 0.6"
1136
-
}
1137
-
},
1138
-
"node_modules/cross-spawn": {
1139
-
"version": "7.0.6",
1140
-
"dev": true,
1141
-
"license": "MIT",
1142
-
"dependencies": {
1143
-
"path-key": "^3.1.0",
1144
-
"shebang-command": "^2.0.0",
1145
-
"which": "^2.0.1"
1146
-
},
1147
-
"engines": {
1148
-
"node": ">= 8"
1149
-
}
1150
-
},
1151
-
"node_modules/cssesc": {
1152
-
"version": "3.0.0",
1153
-
"dev": true,
1154
-
"license": "MIT",
1155
-
"bin": {
1156
-
"cssesc": "bin/cssesc"
1157
-
},
1158
-
"engines": {
1159
-
"node": ">=4"
1160
-
}
1161
-
},
1162
-
"node_modules/debug": {
1163
-
"version": "4.4.3",
1164
-
"dev": true,
1165
-
"license": "MIT",
1166
-
"dependencies": {
1167
-
"ms": "^2.1.3"
1168
-
},
1169
-
"engines": {
1170
-
"node": ">=6.0"
1171
-
},
1172
-
"peerDependenciesMeta": {
1173
-
"supports-color": {
1174
-
"optional": true
1175
-
}
1176
-
}
1177
-
},
1178
-
"node_modules/deep-is": {
1179
-
"version": "0.1.4",
1180
-
"dev": true,
1181
-
"license": "MIT"
1182
-
},
1183
-
"node_modules/deepmerge": {
1184
-
"version": "4.3.1",
1185
-
"dev": true,
1186
-
"license": "MIT",
1187
-
"engines": {
1188
-
"node": ">=0.10.0"
1189
-
}
1190
-
},
1191
-
"node_modules/devalue": {
1192
-
"version": "5.4.2",
1193
-
"dev": true,
1194
-
"license": "MIT"
1195
-
},
1196
-
"node_modules/esbuild": {
1197
-
"version": "0.25.11",
1198
-
"dev": true,
1199
-
"hasInstallScript": true,
1200
-
"license": "MIT",
1201
-
"bin": {
1202
-
"esbuild": "bin/esbuild"
1203
-
},
1204
-
"engines": {
1205
-
"node": ">=18"
1206
-
},
1207
-
"optionalDependencies": {
1208
-
"@esbuild/aix-ppc64": "0.25.11",
1209
-
"@esbuild/android-arm": "0.25.11",
1210
-
"@esbuild/android-arm64": "0.25.11",
1211
-
"@esbuild/android-x64": "0.25.11",
1212
-
"@esbuild/darwin-arm64": "0.25.11",
1213
-
"@esbuild/darwin-x64": "0.25.11",
1214
-
"@esbuild/freebsd-arm64": "0.25.11",
1215
-
"@esbuild/freebsd-x64": "0.25.11",
1216
-
"@esbuild/linux-arm": "0.25.11",
1217
-
"@esbuild/linux-arm64": "0.25.11",
1218
-
"@esbuild/linux-ia32": "0.25.11",
1219
-
"@esbuild/linux-loong64": "0.25.11",
1220
-
"@esbuild/linux-mips64el": "0.25.11",
1221
-
"@esbuild/linux-ppc64": "0.25.11",
1222
-
"@esbuild/linux-riscv64": "0.25.11",
1223
-
"@esbuild/linux-s390x": "0.25.11",
1224
-
"@esbuild/linux-x64": "0.25.11",
1225
-
"@esbuild/netbsd-arm64": "0.25.11",
1226
-
"@esbuild/netbsd-x64": "0.25.11",
1227
-
"@esbuild/openbsd-arm64": "0.25.11",
1228
-
"@esbuild/openbsd-x64": "0.25.11",
1229
-
"@esbuild/openharmony-arm64": "0.25.11",
1230
-
"@esbuild/sunos-x64": "0.25.11",
1231
-
"@esbuild/win32-arm64": "0.25.11",
1232
-
"@esbuild/win32-ia32": "0.25.11",
1233
-
"@esbuild/win32-x64": "0.25.11"
1234
-
}
1235
-
},
1236
-
"node_modules/escape-string-regexp": {
1237
-
"version": "4.0.0",
1238
-
"dev": true,
1239
-
"license": "MIT",
1240
-
"engines": {
1241
-
"node": ">=10"
1242
-
},
1243
-
"funding": {
1244
-
"url": "https://github.com/sponsors/sindresorhus"
1245
-
}
1246
-
},
1247
-
"node_modules/eslint": {
1248
-
"version": "9.38.0",
1249
-
"dev": true,
1250
-
"license": "MIT",
1251
-
"dependencies": {
1252
-
"@eslint-community/eslint-utils": "^4.8.0",
1253
-
"@eslint-community/regexpp": "^4.12.1",
1254
-
"@eslint/config-array": "^0.21.1",
1255
-
"@eslint/config-helpers": "^0.4.1",
1256
-
"@eslint/core": "^0.16.0",
1257
-
"@eslint/eslintrc": "^3.3.1",
1258
-
"@eslint/js": "9.38.0",
1259
-
"@eslint/plugin-kit": "^0.4.0",
1260
-
"@humanfs/node": "^0.16.6",
1261
-
"@humanwhocodes/module-importer": "^1.0.1",
1262
-
"@humanwhocodes/retry": "^0.4.2",
1263
-
"@types/estree": "^1.0.6",
1264
-
"ajv": "^6.12.4",
1265
-
"chalk": "^4.0.0",
1266
-
"cross-spawn": "^7.0.6",
1267
-
"debug": "^4.3.2",
1268
-
"escape-string-regexp": "^4.0.0",
1269
-
"eslint-scope": "^8.4.0",
1270
-
"eslint-visitor-keys": "^4.2.1",
1271
-
"espree": "^10.4.0",
1272
-
"esquery": "^1.5.0",
1273
-
"esutils": "^2.0.2",
1274
-
"fast-deep-equal": "^3.1.3",
1275
-
"file-entry-cache": "^8.0.0",
1276
-
"find-up": "^5.0.0",
1277
-
"glob-parent": "^6.0.2",
1278
-
"ignore": "^5.2.0",
1279
-
"imurmurhash": "^0.1.4",
1280
-
"is-glob": "^4.0.0",
1281
-
"json-stable-stringify-without-jsonify": "^1.0.1",
1282
-
"lodash.merge": "^4.6.2",
1283
-
"minimatch": "^3.1.2",
1284
-
"natural-compare": "^1.4.0",
1285
-
"optionator": "^0.9.3"
1286
-
},
1287
-
"bin": {
1288
-
"eslint": "bin/eslint.js"
1289
-
},
1290
-
"engines": {
1291
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1292
-
},
1293
-
"funding": {
1294
-
"url": "https://eslint.org/donate"
1295
-
},
1296
-
"peerDependencies": {
1297
-
"jiti": "*"
1298
-
},
1299
-
"peerDependenciesMeta": {
1300
-
"jiti": {
1301
-
"optional": true
1302
-
}
1303
-
}
1304
-
},
1305
-
"node_modules/eslint-plugin-svelte": {
1306
-
"version": "3.12.5",
1307
-
"dev": true,
1308
-
"license": "MIT",
1309
-
"dependencies": {
1310
-
"@eslint-community/eslint-utils": "^4.6.1",
1311
-
"@jridgewell/sourcemap-codec": "^1.5.0",
1312
-
"esutils": "^2.0.3",
1313
-
"globals": "^16.0.0",
1314
-
"known-css-properties": "^0.37.0",
1315
-
"postcss": "^8.4.49",
1316
-
"postcss-load-config": "^3.1.4",
1317
-
"postcss-safe-parser": "^7.0.0",
1318
-
"semver": "^7.6.3",
1319
-
"svelte-eslint-parser": "^1.4.0"
1320
-
},
1321
-
"engines": {
1322
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1323
-
},
1324
-
"funding": {
1325
-
"url": "https://github.com/sponsors/ota-meshi"
1326
-
},
1327
-
"peerDependencies": {
1328
-
"eslint": "^8.57.1 || ^9.0.0",
1329
-
"svelte": "^3.37.0 || ^4.0.0 || ^5.0.0"
1330
-
},
1331
-
"peerDependenciesMeta": {
1332
-
"svelte": {
1333
-
"optional": true
1334
-
}
1335
-
}
1336
-
},
1337
-
"node_modules/eslint-scope": {
1338
-
"version": "8.4.0",
1339
-
"dev": true,
1340
-
"license": "BSD-2-Clause",
1341
-
"dependencies": {
1342
-
"esrecurse": "^4.3.0",
1343
-
"estraverse": "^5.2.0"
1344
-
},
1345
-
"engines": {
1346
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1347
-
},
1348
-
"funding": {
1349
-
"url": "https://opencollective.com/eslint"
1350
-
}
1351
-
},
1352
-
"node_modules/eslint-visitor-keys": {
1353
-
"version": "4.2.1",
1354
-
"dev": true,
1355
-
"license": "Apache-2.0",
1356
-
"engines": {
1357
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1358
-
},
1359
-
"funding": {
1360
-
"url": "https://opencollective.com/eslint"
1361
-
}
1362
-
},
1363
-
"node_modules/esm-env": {
1364
-
"version": "1.2.2",
1365
-
"license": "MIT"
1366
-
},
1367
-
"node_modules/espree": {
1368
-
"version": "10.4.0",
1369
-
"dev": true,
1370
-
"license": "BSD-2-Clause",
1371
-
"dependencies": {
1372
-
"acorn": "^8.15.0",
1373
-
"acorn-jsx": "^5.3.2",
1374
-
"eslint-visitor-keys": "^4.2.1"
1375
-
},
1376
-
"engines": {
1377
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
1378
-
},
1379
-
"funding": {
1380
-
"url": "https://opencollective.com/eslint"
1381
-
}
1382
-
},
1383
-
"node_modules/esquery": {
1384
-
"version": "1.6.0",
1385
-
"dev": true,
1386
-
"license": "BSD-3-Clause",
1387
-
"dependencies": {
1388
-
"estraverse": "^5.1.0"
1389
-
},
1390
-
"engines": {
1391
-
"node": ">=0.10"
1392
-
}
1393
-
},
1394
-
"node_modules/esrap": {
1395
-
"version": "2.1.1",
1396
-
"dev": true,
1397
-
"license": "MIT",
1398
-
"dependencies": {
1399
-
"@jridgewell/sourcemap-codec": "^1.4.15"
1400
-
}
1401
-
},
1402
-
"node_modules/esrecurse": {
1403
-
"version": "4.3.0",
1404
-
"dev": true,
1405
-
"license": "BSD-2-Clause",
1406
-
"dependencies": {
1407
-
"estraverse": "^5.2.0"
1408
-
},
1409
-
"engines": {
1410
-
"node": ">=4.0"
1411
-
}
1412
-
},
1413
-
"node_modules/estraverse": {
1414
-
"version": "5.3.0",
1415
-
"dev": true,
1416
-
"license": "BSD-2-Clause",
1417
-
"engines": {
1418
-
"node": ">=4.0"
1419
-
}
1420
-
},
1421
-
"node_modules/estree-walker": {
1422
-
"version": "2.0.2",
1423
-
"dev": true,
1424
-
"license": "MIT"
1425
-
},
1426
-
"node_modules/esutils": {
1427
-
"version": "2.0.3",
1428
-
"dev": true,
1429
-
"license": "BSD-2-Clause",
1430
-
"engines": {
1431
-
"node": ">=0.10.0"
1432
-
}
1433
-
},
1434
-
"node_modules/fast-deep-equal": {
1435
-
"version": "3.1.3",
1436
-
"dev": true,
1437
-
"license": "MIT"
1438
-
},
1439
-
"node_modules/fast-glob": {
1440
-
"version": "3.3.3",
1441
-
"dev": true,
1442
-
"license": "MIT",
1443
-
"dependencies": {
1444
-
"@nodelib/fs.stat": "^2.0.2",
1445
-
"@nodelib/fs.walk": "^1.2.3",
1446
-
"glob-parent": "^5.1.2",
1447
-
"merge2": "^1.3.0",
1448
-
"micromatch": "^4.0.8"
1449
-
},
1450
-
"engines": {
1451
-
"node": ">=8.6.0"
1452
-
}
1453
-
},
1454
-
"node_modules/fast-glob/node_modules/glob-parent": {
1455
-
"version": "5.1.2",
1456
-
"dev": true,
1457
-
"license": "ISC",
1458
-
"dependencies": {
1459
-
"is-glob": "^4.0.1"
1460
-
},
1461
-
"engines": {
1462
-
"node": ">= 6"
1463
-
}
1464
-
},
1465
-
"node_modules/fast-json-stable-stringify": {
1466
-
"version": "2.1.0",
1467
-
"dev": true,
1468
-
"license": "MIT"
1469
-
},
1470
-
"node_modules/fast-levenshtein": {
1471
-
"version": "2.0.6",
1472
-
"dev": true,
1473
-
"license": "MIT"
1474
-
},
1475
-
"node_modules/fastq": {
1476
-
"version": "1.19.1",
1477
-
"dev": true,
1478
-
"license": "ISC",
1479
-
"dependencies": {
1480
-
"reusify": "^1.0.4"
1481
-
}
1482
-
},
1483
-
"node_modules/fdir": {
1484
-
"version": "6.5.0",
1485
-
"dev": true,
1486
-
"license": "MIT",
1487
-
"engines": {
1488
-
"node": ">=12.0.0"
1489
-
},
1490
-
"peerDependencies": {
1491
-
"picomatch": "^3 || ^4"
1492
-
},
1493
-
"peerDependenciesMeta": {
1494
-
"picomatch": {
1495
-
"optional": true
1496
-
}
1497
-
}
1498
-
},
1499
-
"node_modules/file-entry-cache": {
1500
-
"version": "8.0.0",
1501
-
"dev": true,
1502
-
"license": "MIT",
1503
-
"dependencies": {
1504
-
"flat-cache": "^4.0.0"
1505
-
},
1506
-
"engines": {
1507
-
"node": ">=16.0.0"
1508
-
}
1509
-
},
1510
-
"node_modules/fill-range": {
1511
-
"version": "7.1.1",
1512
-
"dev": true,
1513
-
"license": "MIT",
1514
-
"dependencies": {
1515
-
"to-regex-range": "^5.0.1"
1516
-
},
1517
-
"engines": {
1518
-
"node": ">=8"
1519
-
}
1520
-
},
1521
-
"node_modules/find-up": {
1522
-
"version": "5.0.0",
1523
-
"dev": true,
1524
-
"license": "MIT",
1525
-
"dependencies": {
1526
-
"locate-path": "^6.0.0",
1527
-
"path-exists": "^4.0.0"
1528
-
},
1529
-
"engines": {
1530
-
"node": ">=10"
1531
-
},
1532
-
"funding": {
1533
-
"url": "https://github.com/sponsors/sindresorhus"
1534
-
}
1535
-
},
1536
-
"node_modules/flat-cache": {
1537
-
"version": "4.0.1",
1538
-
"dev": true,
1539
-
"license": "MIT",
1540
-
"dependencies": {
1541
-
"flatted": "^3.2.9",
1542
-
"keyv": "^4.5.4"
1543
-
},
1544
-
"engines": {
1545
-
"node": ">=16"
1546
-
}
1547
-
},
1548
-
"node_modules/flatted": {
1549
-
"version": "3.3.3",
1550
-
"dev": true,
1551
-
"license": "ISC"
1552
-
},
1553
-
"node_modules/fsevents": {
1554
-
"version": "2.3.3",
1555
-
"dev": true,
1556
-
"license": "MIT",
1557
-
"optional": true,
1558
-
"os": [
1559
-
"darwin"
1560
-
],
1561
-
"engines": {
1562
-
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1563
-
}
1564
-
},
1565
-
"node_modules/function-bind": {
1566
-
"version": "1.1.2",
1567
-
"dev": true,
1568
-
"license": "MIT",
1569
-
"funding": {
1570
-
"url": "https://github.com/sponsors/ljharb"
1571
-
}
1572
-
},
1573
-
"node_modules/glob-parent": {
1574
-
"version": "6.0.2",
1575
-
"dev": true,
1576
-
"license": "ISC",
1577
-
"dependencies": {
1578
-
"is-glob": "^4.0.3"
1579
-
},
1580
-
"engines": {
1581
-
"node": ">=10.13.0"
1582
-
}
1583
-
},
1584
-
"node_modules/globals": {
1585
-
"version": "16.4.0",
1586
-
"dev": true,
1587
-
"license": "MIT",
1588
-
"engines": {
1589
-
"node": ">=18"
1590
-
},
1591
-
"funding": {
1592
-
"url": "https://github.com/sponsors/sindresorhus"
1593
-
}
1594
-
},
1595
-
"node_modules/graphemer": {
1596
-
"version": "1.4.0",
1597
-
"license": "MIT"
1598
-
},
1599
-
"node_modules/has-flag": {
1600
-
"version": "4.0.0",
1601
-
"dev": true,
1602
-
"license": "MIT",
1603
-
"engines": {
1604
-
"node": ">=8"
1605
-
}
1606
-
},
1607
-
"node_modules/hasown": {
1608
-
"version": "2.0.2",
1609
-
"dev": true,
1610
-
"license": "MIT",
1611
-
"dependencies": {
1612
-
"function-bind": "^1.1.2"
1613
-
},
1614
-
"engines": {
1615
-
"node": ">= 0.4"
1616
-
}
1617
-
},
1618
-
"node_modules/ignore": {
1619
-
"version": "5.3.2",
1620
-
"dev": true,
1621
-
"license": "MIT",
1622
-
"engines": {
1623
-
"node": ">= 4"
1624
-
}
1625
-
},
1626
-
"node_modules/import-fresh": {
1627
-
"version": "3.3.1",
1628
-
"dev": true,
1629
-
"license": "MIT",
1630
-
"dependencies": {
1631
-
"parent-module": "^1.0.0",
1632
-
"resolve-from": "^4.0.0"
1633
-
},
1634
-
"engines": {
1635
-
"node": ">=6"
1636
-
},
1637
-
"funding": {
1638
-
"url": "https://github.com/sponsors/sindresorhus"
1639
-
}
1640
-
},
1641
-
"node_modules/imurmurhash": {
1642
-
"version": "0.1.4",
1643
-
"dev": true,
1644
-
"license": "MIT",
1645
-
"engines": {
1646
-
"node": ">=0.8.19"
1647
-
}
1648
-
},
1649
-
"node_modules/is-core-module": {
1650
-
"version": "2.16.1",
1651
-
"dev": true,
1652
-
"license": "MIT",
1653
-
"dependencies": {
1654
-
"hasown": "^2.0.2"
1655
-
},
1656
-
"engines": {
1657
-
"node": ">= 0.4"
1658
-
},
1659
-
"funding": {
1660
-
"url": "https://github.com/sponsors/ljharb"
1661
-
}
1662
-
},
1663
-
"node_modules/is-extglob": {
1664
-
"version": "2.1.1",
1665
-
"dev": true,
1666
-
"license": "MIT",
1667
-
"engines": {
1668
-
"node": ">=0.10.0"
1669
-
}
1670
-
},
1671
-
"node_modules/is-glob": {
1672
-
"version": "4.0.3",
1673
-
"dev": true,
1674
-
"license": "MIT",
1675
-
"dependencies": {
1676
-
"is-extglob": "^2.1.1"
1677
-
},
1678
-
"engines": {
1679
-
"node": ">=0.10.0"
1680
-
}
1681
-
},
1682
-
"node_modules/is-module": {
1683
-
"version": "1.0.0",
1684
-
"dev": true,
1685
-
"license": "MIT"
1686
-
},
1687
-
"node_modules/is-number": {
1688
-
"version": "7.0.0",
1689
-
"dev": true,
1690
-
"license": "MIT",
1691
-
"engines": {
1692
-
"node": ">=0.12.0"
1693
-
}
1694
-
},
1695
-
"node_modules/is-reference": {
1696
-
"version": "3.0.3",
1697
-
"dev": true,
1698
-
"license": "MIT",
1699
-
"dependencies": {
1700
-
"@types/estree": "^1.0.6"
1701
-
}
1702
-
},
1703
-
"node_modules/isexe": {
1704
-
"version": "2.0.0",
1705
-
"dev": true,
1706
-
"license": "ISC"
1707
-
},
1708
-
"node_modules/iso-datestring-validator": {
1709
-
"version": "2.2.2",
1710
-
"resolved": "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz",
1711
-
"integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==",
1712
-
"license": "MIT"
1713
-
},
1714
-
"node_modules/js-yaml": {
1715
-
"version": "4.1.0",
1716
-
"dev": true,
1717
-
"license": "MIT",
1718
-
"dependencies": {
1719
-
"argparse": "^2.0.1"
1720
-
},
1721
-
"bin": {
1722
-
"js-yaml": "bin/js-yaml.js"
1723
-
}
1724
-
},
1725
-
"node_modules/json-buffer": {
1726
-
"version": "3.0.1",
1727
-
"dev": true,
1728
-
"license": "MIT"
1729
-
},
1730
-
"node_modules/json-schema-traverse": {
1731
-
"version": "0.4.1",
1732
-
"dev": true,
1733
-
"license": "MIT"
1734
-
},
1735
-
"node_modules/json-stable-stringify-without-jsonify": {
1736
-
"version": "1.0.1",
1737
-
"dev": true,
1738
-
"license": "MIT"
1739
-
},
1740
-
"node_modules/keyv": {
1741
-
"version": "4.5.4",
1742
-
"dev": true,
1743
-
"license": "MIT",
1744
-
"dependencies": {
1745
-
"json-buffer": "3.0.1"
1746
-
}
1747
-
},
1748
-
"node_modules/kleur": {
1749
-
"version": "4.1.5",
1750
-
"dev": true,
1751
-
"license": "MIT",
1752
-
"engines": {
1753
-
"node": ">=6"
1754
-
}
1755
-
},
1756
-
"node_modules/known-css-properties": {
1757
-
"version": "0.37.0",
1758
-
"dev": true,
1759
-
"license": "MIT"
1760
-
},
1761
-
"node_modules/levn": {
1762
-
"version": "0.4.1",
1763
-
"dev": true,
1764
-
"license": "MIT",
1765
-
"dependencies": {
1766
-
"prelude-ls": "^1.2.1",
1767
-
"type-check": "~0.4.0"
1768
-
},
1769
-
"engines": {
1770
-
"node": ">= 0.8.0"
1771
-
}
1772
-
},
1773
-
"node_modules/lilconfig": {
1774
-
"version": "2.1.0",
1775
-
"dev": true,
1776
-
"license": "MIT",
1777
-
"engines": {
1778
-
"node": ">=10"
1779
-
}
1780
-
},
1781
-
"node_modules/locate-character": {
1782
-
"version": "3.0.0",
1783
-
"dev": true,
1784
-
"license": "MIT"
1785
-
},
1786
-
"node_modules/locate-path": {
1787
-
"version": "6.0.0",
1788
-
"dev": true,
1789
-
"license": "MIT",
1790
-
"dependencies": {
1791
-
"p-locate": "^5.0.0"
1792
-
},
1793
-
"engines": {
1794
-
"node": ">=10"
1795
-
},
1796
-
"funding": {
1797
-
"url": "https://github.com/sponsors/sindresorhus"
1798
-
}
1799
-
},
1800
-
"node_modules/lodash.merge": {
1801
-
"version": "4.6.2",
1802
-
"dev": true,
1803
-
"license": "MIT"
1804
-
},
1805
-
"node_modules/magic-string": {
1806
-
"version": "0.30.21",
1807
-
"dev": true,
1808
-
"license": "MIT",
1809
-
"dependencies": {
1810
-
"@jridgewell/sourcemap-codec": "^1.5.5"
1811
-
}
1812
-
},
1813
-
"node_modules/merge2": {
1814
-
"version": "1.4.1",
1815
-
"dev": true,
1816
-
"license": "MIT",
1817
-
"engines": {
1818
-
"node": ">= 8"
1819
-
}
1820
-
},
1821
-
"node_modules/micromatch": {
1822
-
"version": "4.0.8",
1823
-
"dev": true,
1824
-
"license": "MIT",
1825
-
"dependencies": {
1826
-
"braces": "^3.0.3",
1827
-
"picomatch": "^2.3.1"
1828
-
},
1829
-
"engines": {
1830
-
"node": ">=8.6"
1831
-
}
1832
-
},
1833
-
"node_modules/micromatch/node_modules/picomatch": {
1834
-
"version": "2.3.1",
1835
-
"dev": true,
1836
-
"license": "MIT",
1837
-
"engines": {
1838
-
"node": ">=8.6"
1839
-
},
1840
-
"funding": {
1841
-
"url": "https://github.com/sponsors/jonschlinkert"
1842
-
}
1843
-
},
1844
-
"node_modules/minimatch": {
1845
-
"version": "3.1.2",
1846
-
"dev": true,
1847
-
"license": "ISC",
1848
-
"dependencies": {
1849
-
"brace-expansion": "^1.1.7"
1850
-
},
1851
-
"engines": {
1852
-
"node": "*"
1853
-
}
1854
-
},
1855
-
"node_modules/mri": {
1856
-
"version": "1.2.0",
1857
-
"dev": true,
1858
-
"license": "MIT",
1859
-
"engines": {
1860
-
"node": ">=4"
1861
-
}
1862
-
},
1863
-
"node_modules/mrmime": {
1864
-
"version": "2.0.1",
1865
-
"dev": true,
1866
-
"license": "MIT",
1867
-
"engines": {
1868
-
"node": ">=10"
1869
-
}
1870
-
},
1871
-
"node_modules/ms": {
1872
-
"version": "2.1.3",
1873
-
"dev": true,
1874
-
"license": "MIT"
1875
-
},
1876
-
"node_modules/multiformats": {
1877
-
"version": "9.9.0",
1878
-
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
1879
-
"integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==",
1880
-
"license": "(Apache-2.0 AND MIT)"
1881
-
},
1882
-
"node_modules/nanoid": {
1883
-
"version": "3.3.11",
1884
-
"dev": true,
1885
-
"funding": [
1886
-
{
1887
-
"type": "github",
1888
-
"url": "https://github.com/sponsors/ai"
1889
-
}
1890
-
],
1891
-
"license": "MIT",
1892
-
"bin": {
1893
-
"nanoid": "bin/nanoid.cjs"
1894
-
},
1895
-
"engines": {
1896
-
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1897
-
}
1898
-
},
1899
-
"node_modules/natural-compare": {
1900
-
"version": "1.4.0",
1901
-
"dev": true,
1902
-
"license": "MIT"
1903
-
},
1904
-
"node_modules/optionator": {
1905
-
"version": "0.9.4",
1906
-
"dev": true,
1907
-
"license": "MIT",
1908
-
"dependencies": {
1909
-
"deep-is": "^0.1.3",
1910
-
"fast-levenshtein": "^2.0.6",
1911
-
"levn": "^0.4.1",
1912
-
"prelude-ls": "^1.2.1",
1913
-
"type-check": "^0.4.0",
1914
-
"word-wrap": "^1.2.5"
1915
-
},
1916
-
"engines": {
1917
-
"node": ">= 0.8.0"
1918
-
}
1919
-
},
1920
-
"node_modules/p-limit": {
1921
-
"version": "3.1.0",
1922
-
"dev": true,
1923
-
"license": "MIT",
1924
-
"dependencies": {
1925
-
"yocto-queue": "^0.1.0"
1926
-
},
1927
-
"engines": {
1928
-
"node": ">=10"
1929
-
},
1930
-
"funding": {
1931
-
"url": "https://github.com/sponsors/sindresorhus"
1932
-
}
1933
-
},
1934
-
"node_modules/p-locate": {
1935
-
"version": "5.0.0",
1936
-
"dev": true,
1937
-
"license": "MIT",
1938
-
"dependencies": {
1939
-
"p-limit": "^3.0.2"
1940
-
},
1941
-
"engines": {
1942
-
"node": ">=10"
1943
-
},
1944
-
"funding": {
1945
-
"url": "https://github.com/sponsors/sindresorhus"
1946
-
}
1947
-
},
1948
-
"node_modules/parent-module": {
1949
-
"version": "1.0.1",
1950
-
"dev": true,
1951
-
"license": "MIT",
1952
-
"dependencies": {
1953
-
"callsites": "^3.0.0"
1954
-
},
1955
-
"engines": {
1956
-
"node": ">=6"
1957
-
}
1958
-
},
1959
-
"node_modules/path-exists": {
1960
-
"version": "4.0.0",
1961
-
"dev": true,
1962
-
"license": "MIT",
1963
-
"engines": {
1964
-
"node": ">=8"
1965
-
}
1966
-
},
1967
-
"node_modules/path-key": {
1968
-
"version": "3.1.1",
1969
-
"dev": true,
1970
-
"license": "MIT",
1971
-
"engines": {
1972
-
"node": ">=8"
1973
-
}
1974
-
},
1975
-
"node_modules/path-parse": {
1976
-
"version": "1.0.7",
1977
-
"dev": true,
1978
-
"license": "MIT"
1979
-
},
1980
-
"node_modules/picocolors": {
1981
-
"version": "1.1.1",
1982
-
"dev": true,
1983
-
"license": "ISC"
1984
-
},
1985
-
"node_modules/picomatch": {
1986
-
"version": "4.0.3",
1987
-
"dev": true,
1988
-
"license": "MIT",
1989
-
"engines": {
1990
-
"node": ">=12"
1991
-
},
1992
-
"funding": {
1993
-
"url": "https://github.com/sponsors/jonschlinkert"
1994
-
}
1995
-
},
1996
-
"node_modules/postcss": {
1997
-
"version": "8.5.6",
1998
-
"dev": true,
1999
-
"funding": [
2000
-
{
2001
-
"type": "opencollective",
2002
-
"url": "https://opencollective.com/postcss/"
2003
-
},
2004
-
{
2005
-
"type": "tidelift",
2006
-
"url": "https://tidelift.com/funding/github/npm/postcss"
2007
-
},
2008
-
{
2009
-
"type": "github",
2010
-
"url": "https://github.com/sponsors/ai"
2011
-
}
2012
-
],
2013
-
"license": "MIT",
2014
-
"dependencies": {
2015
-
"nanoid": "^3.3.11",
2016
-
"picocolors": "^1.1.1",
2017
-
"source-map-js": "^1.2.1"
2018
-
},
2019
-
"engines": {
2020
-
"node": "^10 || ^12 || >=14"
2021
-
}
2022
-
},
2023
-
"node_modules/postcss-load-config": {
2024
-
"version": "3.1.4",
2025
-
"dev": true,
2026
-
"license": "MIT",
2027
-
"dependencies": {
2028
-
"lilconfig": "^2.0.5",
2029
-
"yaml": "^1.10.2"
2030
-
},
2031
-
"engines": {
2032
-
"node": ">= 10"
2033
-
},
2034
-
"funding": {
2035
-
"type": "opencollective",
2036
-
"url": "https://opencollective.com/postcss/"
2037
-
},
2038
-
"peerDependencies": {
2039
-
"postcss": ">=8.0.9",
2040
-
"ts-node": ">=9.0.0"
2041
-
},
2042
-
"peerDependenciesMeta": {
2043
-
"postcss": {
2044
-
"optional": true
2045
-
},
2046
-
"ts-node": {
2047
-
"optional": true
2048
-
}
2049
-
}
2050
-
},
2051
-
"node_modules/postcss-load-config/node_modules/yaml": {
2052
-
"version": "1.10.2",
2053
-
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
2054
-
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
2055
-
"dev": true,
2056
-
"license": "ISC",
2057
-
"engines": {
2058
-
"node": ">= 6"
2059
-
}
2060
-
},
2061
-
"node_modules/postcss-safe-parser": {
2062
-
"version": "7.0.1",
2063
-
"dev": true,
2064
-
"funding": [
2065
-
{
2066
-
"type": "opencollective",
2067
-
"url": "https://opencollective.com/postcss/"
2068
-
},
2069
-
{
2070
-
"type": "tidelift",
2071
-
"url": "https://tidelift.com/funding/github/npm/postcss-safe-parser"
2072
-
},
2073
-
{
2074
-
"type": "github",
2075
-
"url": "https://github.com/sponsors/ai"
2076
-
}
2077
-
],
2078
-
"license": "MIT",
2079
-
"engines": {
2080
-
"node": ">=18.0"
2081
-
},
2082
-
"peerDependencies": {
2083
-
"postcss": "^8.4.31"
2084
-
}
2085
-
},
2086
-
"node_modules/postcss-scss": {
2087
-
"version": "4.0.9",
2088
-
"dev": true,
2089
-
"funding": [
2090
-
{
2091
-
"type": "opencollective",
2092
-
"url": "https://opencollective.com/postcss/"
2093
-
},
2094
-
{
2095
-
"type": "tidelift",
2096
-
"url": "https://tidelift.com/funding/github/npm/postcss-scss"
2097
-
},
2098
-
{
2099
-
"type": "github",
2100
-
"url": "https://github.com/sponsors/ai"
2101
-
}
2102
-
],
2103
-
"license": "MIT",
2104
-
"engines": {
2105
-
"node": ">=12.0"
2106
-
},
2107
-
"peerDependencies": {
2108
-
"postcss": "^8.4.29"
2109
-
}
2110
-
},
2111
-
"node_modules/postcss-selector-parser": {
2112
-
"version": "7.1.0",
2113
-
"dev": true,
2114
-
"license": "MIT",
2115
-
"dependencies": {
2116
-
"cssesc": "^3.0.0",
2117
-
"util-deprecate": "^1.0.2"
2118
-
},
2119
-
"engines": {
2120
-
"node": ">=4"
2121
-
}
2122
-
},
2123
-
"node_modules/prelude-ls": {
2124
-
"version": "1.2.1",
2125
-
"dev": true,
2126
-
"license": "MIT",
2127
-
"engines": {
2128
-
"node": ">= 0.8.0"
2129
-
}
2130
-
},
2131
-
"node_modules/punycode": {
2132
-
"version": "2.3.1",
2133
-
"dev": true,
2134
-
"license": "MIT",
2135
-
"engines": {
2136
-
"node": ">=6"
2137
-
}
2138
-
},
2139
-
"node_modules/queue-microtask": {
2140
-
"version": "1.2.3",
2141
-
"dev": true,
2142
-
"funding": [
2143
-
{
2144
-
"type": "github",
2145
-
"url": "https://github.com/sponsors/feross"
2146
-
},
2147
-
{
2148
-
"type": "patreon",
2149
-
"url": "https://www.patreon.com/feross"
2150
-
},
2151
-
{
2152
-
"type": "consulting",
2153
-
"url": "https://feross.org/support"
2154
-
}
2155
-
],
2156
-
"license": "MIT"
2157
-
},
2158
-
"node_modules/readdirp": {
2159
-
"version": "4.1.2",
2160
-
"dev": true,
2161
-
"license": "MIT",
2162
-
"engines": {
2163
-
"node": ">= 14.18.0"
2164
-
},
2165
-
"funding": {
2166
-
"type": "individual",
2167
-
"url": "https://paulmillr.com/funding/"
2168
-
}
2169
-
},
2170
-
"node_modules/resolve": {
2171
-
"version": "1.22.11",
2172
-
"dev": true,
2173
-
"license": "MIT",
2174
-
"dependencies": {
2175
-
"is-core-module": "^2.16.1",
2176
-
"path-parse": "^1.0.7",
2177
-
"supports-preserve-symlinks-flag": "^1.0.0"
2178
-
},
2179
-
"bin": {
2180
-
"resolve": "bin/resolve"
2181
-
},
2182
-
"engines": {
2183
-
"node": ">= 0.4"
2184
-
},
2185
-
"funding": {
2186
-
"url": "https://github.com/sponsors/ljharb"
2187
-
}
2188
-
},
2189
-
"node_modules/resolve-from": {
2190
-
"version": "4.0.0",
2191
-
"dev": true,
2192
-
"license": "MIT",
2193
-
"engines": {
2194
-
"node": ">=4"
2195
-
}
2196
-
},
2197
-
"node_modules/reusify": {
2198
-
"version": "1.1.0",
2199
-
"dev": true,
2200
-
"license": "MIT",
2201
-
"engines": {
2202
-
"iojs": ">=1.0.0",
2203
-
"node": ">=0.10.0"
2204
-
}
2205
-
},
2206
-
"node_modules/rollup": {
2207
-
"version": "4.52.5",
2208
-
"dev": true,
2209
-
"license": "MIT",
2210
-
"dependencies": {
2211
-
"@types/estree": "1.0.8"
2212
-
},
2213
-
"bin": {
2214
-
"rollup": "dist/bin/rollup"
2215
-
},
2216
-
"engines": {
2217
-
"node": ">=18.0.0",
2218
-
"npm": ">=8.0.0"
2219
-
},
2220
-
"optionalDependencies": {
2221
-
"@rollup/rollup-android-arm-eabi": "4.52.5",
2222
-
"@rollup/rollup-android-arm64": "4.52.5",
2223
-
"@rollup/rollup-darwin-arm64": "4.52.5",
2224
-
"@rollup/rollup-darwin-x64": "4.52.5",
2225
-
"@rollup/rollup-freebsd-arm64": "4.52.5",
2226
-
"@rollup/rollup-freebsd-x64": "4.52.5",
2227
-
"@rollup/rollup-linux-arm-gnueabihf": "4.52.5",
2228
-
"@rollup/rollup-linux-arm-musleabihf": "4.52.5",
2229
-
"@rollup/rollup-linux-arm64-gnu": "4.52.5",
2230
-
"@rollup/rollup-linux-arm64-musl": "4.52.5",
2231
-
"@rollup/rollup-linux-loong64-gnu": "4.52.5",
2232
-
"@rollup/rollup-linux-ppc64-gnu": "4.52.5",
2233
-
"@rollup/rollup-linux-riscv64-gnu": "4.52.5",
2234
-
"@rollup/rollup-linux-riscv64-musl": "4.52.5",
2235
-
"@rollup/rollup-linux-s390x-gnu": "4.52.5",
2236
-
"@rollup/rollup-linux-x64-gnu": "4.52.5",
2237
-
"@rollup/rollup-linux-x64-musl": "4.52.5",
2238
-
"@rollup/rollup-openharmony-arm64": "4.52.5",
2239
-
"@rollup/rollup-win32-arm64-msvc": "4.52.5",
2240
-
"@rollup/rollup-win32-ia32-msvc": "4.52.5",
2241
-
"@rollup/rollup-win32-x64-gnu": "4.52.5",
2242
-
"@rollup/rollup-win32-x64-msvc": "4.52.5",
2243
-
"fsevents": "~2.3.2"
2244
-
}
2245
-
},
2246
-
"node_modules/run-parallel": {
2247
-
"version": "1.2.0",
2248
-
"dev": true,
2249
-
"funding": [
2250
-
{
2251
-
"type": "github",
2252
-
"url": "https://github.com/sponsors/feross"
2253
-
},
2254
-
{
2255
-
"type": "patreon",
2256
-
"url": "https://www.patreon.com/feross"
2257
-
},
2258
-
{
2259
-
"type": "consulting",
2260
-
"url": "https://feross.org/support"
2261
-
}
2262
-
],
2263
-
"license": "MIT",
2264
-
"dependencies": {
2265
-
"queue-microtask": "^1.2.2"
2266
-
}
2267
-
},
2268
-
"node_modules/sade": {
2269
-
"version": "1.8.1",
2270
-
"dev": true,
2271
-
"license": "MIT",
2272
-
"dependencies": {
2273
-
"mri": "^1.1.0"
2274
-
},
2275
-
"engines": {
2276
-
"node": ">=6"
2277
-
}
2278
-
},
2279
-
"node_modules/semver": {
2280
-
"version": "7.7.3",
2281
-
"dev": true,
2282
-
"license": "ISC",
2283
-
"bin": {
2284
-
"semver": "bin/semver.js"
2285
-
},
2286
-
"engines": {
2287
-
"node": ">=10"
2288
-
}
2289
-
},
2290
-
"node_modules/set-cookie-parser": {
2291
-
"version": "2.7.1",
2292
-
"dev": true,
2293
-
"license": "MIT"
2294
-
},
2295
-
"node_modules/shebang-command": {
2296
-
"version": "2.0.0",
2297
-
"dev": true,
2298
-
"license": "MIT",
2299
-
"dependencies": {
2300
-
"shebang-regex": "^3.0.0"
2301
-
},
2302
-
"engines": {
2303
-
"node": ">=8"
2304
-
}
2305
-
},
2306
-
"node_modules/shebang-regex": {
2307
-
"version": "3.0.0",
2308
-
"dev": true,
2309
-
"license": "MIT",
2310
-
"engines": {
2311
-
"node": ">=8"
2312
-
}
2313
-
},
2314
-
"node_modules/sirv": {
2315
-
"version": "3.0.2",
2316
-
"dev": true,
2317
-
"license": "MIT",
2318
-
"dependencies": {
2319
-
"@polka/url": "^1.0.0-next.24",
2320
-
"mrmime": "^2.0.0",
2321
-
"totalist": "^3.0.0"
2322
-
},
2323
-
"engines": {
2324
-
"node": ">=18"
2325
-
}
2326
-
},
2327
-
"node_modules/source-map-js": {
2328
-
"version": "1.2.1",
2329
-
"dev": true,
2330
-
"license": "BSD-3-Clause",
2331
-
"engines": {
2332
-
"node": ">=0.10.0"
2333
-
}
2334
-
},
2335
-
"node_modules/strip-json-comments": {
2336
-
"version": "3.1.1",
2337
-
"dev": true,
2338
-
"license": "MIT",
2339
-
"engines": {
2340
-
"node": ">=8"
2341
-
},
2342
-
"funding": {
2343
-
"url": "https://github.com/sponsors/sindresorhus"
2344
-
}
2345
-
},
2346
-
"node_modules/supports-color": {
2347
-
"version": "7.2.0",
2348
-
"dev": true,
2349
-
"license": "MIT",
2350
-
"dependencies": {
2351
-
"has-flag": "^4.0.0"
2352
-
},
2353
-
"engines": {
2354
-
"node": ">=8"
2355
-
}
2356
-
},
2357
-
"node_modules/supports-preserve-symlinks-flag": {
2358
-
"version": "1.0.0",
2359
-
"dev": true,
2360
-
"license": "MIT",
2361
-
"engines": {
2362
-
"node": ">= 0.4"
2363
-
},
2364
-
"funding": {
2365
-
"url": "https://github.com/sponsors/ljharb"
2366
-
}
2367
-
},
2368
-
"node_modules/svelte": {
2369
-
"version": "5.42.2",
2370
-
"dev": true,
2371
-
"license": "MIT",
2372
-
"dependencies": {
2373
-
"@jridgewell/remapping": "^2.3.4",
2374
-
"@jridgewell/sourcemap-codec": "^1.5.0",
2375
-
"@sveltejs/acorn-typescript": "^1.0.5",
2376
-
"@types/estree": "^1.0.5",
2377
-
"acorn": "^8.12.1",
2378
-
"aria-query": "^5.3.1",
2379
-
"axobject-query": "^4.1.0",
2380
-
"clsx": "^2.1.1",
2381
-
"esm-env": "^1.2.1",
2382
-
"esrap": "^2.1.0",
2383
-
"is-reference": "^3.0.3",
2384
-
"locate-character": "^3.0.0",
2385
-
"magic-string": "^0.30.11",
2386
-
"zimmerframe": "^1.1.2"
2387
-
},
2388
-
"engines": {
2389
-
"node": ">=18"
2390
-
}
2391
-
},
2392
-
"node_modules/svelte-check": {
2393
-
"version": "4.3.3",
2394
-
"dev": true,
2395
-
"license": "MIT",
2396
-
"dependencies": {
2397
-
"@jridgewell/trace-mapping": "^0.3.25",
2398
-
"chokidar": "^4.0.1",
2399
-
"fdir": "^6.2.0",
2400
-
"picocolors": "^1.0.0",
2401
-
"sade": "^1.7.4"
2402
-
},
2403
-
"bin": {
2404
-
"svelte-check": "bin/svelte-check"
2405
-
},
2406
-
"engines": {
2407
-
"node": ">= 18.0.0"
2408
-
},
2409
-
"peerDependencies": {
2410
-
"svelte": "^4.0.0 || ^5.0.0-next.0",
2411
-
"typescript": ">=5.0.0"
2412
-
}
2413
-
},
2414
-
"node_modules/svelte-eslint-parser": {
2415
-
"version": "1.4.0",
2416
-
"dev": true,
2417
-
"license": "MIT",
2418
-
"dependencies": {
2419
-
"eslint-scope": "^8.2.0",
2420
-
"eslint-visitor-keys": "^4.0.0",
2421
-
"espree": "^10.0.0",
2422
-
"postcss": "^8.4.49",
2423
-
"postcss-scss": "^4.0.9",
2424
-
"postcss-selector-parser": "^7.0.0"
2425
-
},
2426
-
"engines": {
2427
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0",
2428
-
"pnpm": "10.18.3"
2429
-
},
2430
-
"funding": {
2431
-
"url": "https://github.com/sponsors/ota-meshi"
2432
-
},
2433
-
"peerDependencies": {
2434
-
"svelte": "^3.37.0 || ^4.0.0 || ^5.0.0"
2435
-
},
2436
-
"peerDependenciesMeta": {
2437
-
"svelte": {
2438
-
"optional": true
2439
-
}
2440
-
}
2441
-
},
2442
-
"node_modules/tinyglobby": {
2443
-
"version": "0.2.15",
2444
-
"dev": true,
2445
-
"license": "MIT",
2446
-
"dependencies": {
2447
-
"fdir": "^6.5.0",
2448
-
"picomatch": "^4.0.3"
2449
-
},
2450
-
"engines": {
2451
-
"node": ">=12.0.0"
2452
-
},
2453
-
"funding": {
2454
-
"url": "https://github.com/sponsors/SuperchupuDev"
2455
-
}
2456
-
},
2457
-
"node_modules/to-regex-range": {
2458
-
"version": "5.0.1",
2459
-
"dev": true,
2460
-
"license": "MIT",
2461
-
"dependencies": {
2462
-
"is-number": "^7.0.0"
2463
-
},
2464
-
"engines": {
2465
-
"node": ">=8.0"
2466
-
}
2467
-
},
2468
-
"node_modules/totalist": {
2469
-
"version": "3.0.1",
2470
-
"dev": true,
2471
-
"license": "MIT",
2472
-
"engines": {
2473
-
"node": ">=6"
2474
-
}
2475
-
},
2476
-
"node_modules/ts-api-utils": {
2477
-
"version": "2.1.0",
2478
-
"dev": true,
2479
-
"license": "MIT",
2480
-
"engines": {
2481
-
"node": ">=18.12"
2482
-
},
2483
-
"peerDependencies": {
2484
-
"typescript": ">=4.8.4"
2485
-
}
2486
-
},
2487
-
"node_modules/type-check": {
2488
-
"version": "0.4.0",
2489
-
"dev": true,
2490
-
"license": "MIT",
2491
-
"dependencies": {
2492
-
"prelude-ls": "^1.2.1"
2493
-
},
2494
-
"engines": {
2495
-
"node": ">= 0.8.0"
2496
-
}
2497
-
},
2498
-
"node_modules/typescript": {
2499
-
"version": "5.9.3",
2500
-
"dev": true,
2501
-
"license": "Apache-2.0",
2502
-
"bin": {
2503
-
"tsc": "bin/tsc",
2504
-
"tsserver": "bin/tsserver"
2505
-
},
2506
-
"engines": {
2507
-
"node": ">=14.17"
2508
-
}
2509
-
},
2510
-
"node_modules/typescript-eslint": {
2511
-
"version": "8.46.2",
2512
-
"dev": true,
2513
-
"license": "MIT",
2514
-
"dependencies": {
2515
-
"@typescript-eslint/eslint-plugin": "8.46.2",
2516
-
"@typescript-eslint/parser": "8.46.2",
2517
-
"@typescript-eslint/typescript-estree": "8.46.2",
2518
-
"@typescript-eslint/utils": "8.46.2"
2519
-
},
2520
-
"engines": {
2521
-
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
2522
-
},
2523
-
"funding": {
2524
-
"type": "opencollective",
2525
-
"url": "https://opencollective.com/typescript-eslint"
2526
-
},
2527
-
"peerDependencies": {
2528
-
"eslint": "^8.57.0 || ^9.0.0",
2529
-
"typescript": ">=4.8.4 <6.0.0"
2530
-
}
2531
-
},
2532
-
"node_modules/uint8arrays": {
2533
-
"version": "3.0.0",
2534
-
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz",
2535
-
"integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==",
2536
-
"license": "MIT",
2537
-
"dependencies": {
2538
-
"multiformats": "^9.4.2"
2539
-
}
2540
-
},
2541
-
"node_modules/undici-types": {
2542
-
"version": "6.21.0",
2543
-
"dev": true,
2544
-
"license": "MIT"
2545
-
},
2546
-
"node_modules/uri-js": {
2547
-
"version": "4.4.1",
2548
-
"dev": true,
2549
-
"license": "BSD-2-Clause",
2550
-
"dependencies": {
2551
-
"punycode": "^2.1.0"
2552
-
}
2553
-
},
2554
-
"node_modules/util-deprecate": {
2555
-
"version": "1.0.2",
2556
-
"dev": true,
2557
-
"license": "MIT"
2558
-
},
2559
-
"node_modules/vite": {
2560
-
"version": "7.1.12",
2561
-
"dev": true,
2562
-
"license": "MIT",
2563
-
"dependencies": {
2564
-
"esbuild": "^0.25.0",
2565
-
"fdir": "^6.5.0",
2566
-
"picomatch": "^4.0.3",
2567
-
"postcss": "^8.5.6",
2568
-
"rollup": "^4.43.0",
2569
-
"tinyglobby": "^0.2.15"
2570
-
},
2571
-
"bin": {
2572
-
"vite": "bin/vite.js"
2573
-
},
2574
-
"engines": {
2575
-
"node": "^20.19.0 || >=22.12.0"
2576
-
},
2577
-
"funding": {
2578
-
"url": "https://github.com/vitejs/vite?sponsor=1"
2579
-
},
2580
-
"optionalDependencies": {
2581
-
"fsevents": "~2.3.3"
2582
-
},
2583
-
"peerDependencies": {
2584
-
"@types/node": "^20.19.0 || >=22.12.0",
2585
-
"jiti": ">=1.21.0",
2586
-
"less": "^4.0.0",
2587
-
"lightningcss": "^1.21.0",
2588
-
"sass": "^1.70.0",
2589
-
"sass-embedded": "^1.70.0",
2590
-
"stylus": ">=0.54.8",
2591
-
"sugarss": "^5.0.0",
2592
-
"terser": "^5.16.0",
2593
-
"tsx": "^4.8.1",
2594
-
"yaml": "^2.4.2"
2595
-
},
2596
-
"peerDependenciesMeta": {
2597
-
"@types/node": {
2598
-
"optional": true
2599
-
},
2600
-
"jiti": {
2601
-
"optional": true
2602
-
},
2603
-
"less": {
2604
-
"optional": true
2605
-
},
2606
-
"lightningcss": {
2607
-
"optional": true
2608
-
},
2609
-
"sass": {
2610
-
"optional": true
2611
-
},
2612
-
"sass-embedded": {
2613
-
"optional": true
2614
-
},
2615
-
"stylus": {
2616
-
"optional": true
2617
-
},
2618
-
"sugarss": {
2619
-
"optional": true
2620
-
},
2621
-
"terser": {
2622
-
"optional": true
2623
-
},
2624
-
"tsx": {
2625
-
"optional": true
2626
-
},
2627
-
"yaml": {
2628
-
"optional": true
2629
-
}
2630
-
}
2631
-
},
2632
-
"node_modules/vitefu": {
2633
-
"version": "1.1.1",
2634
-
"dev": true,
2635
-
"license": "MIT",
2636
-
"workspaces": [
2637
-
"tests/deps/*",
2638
-
"tests/projects/*",
2639
-
"tests/projects/workspace/packages/*"
2640
-
],
2641
-
"peerDependencies": {
2642
-
"vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0"
2643
-
},
2644
-
"peerDependenciesMeta": {
2645
-
"vite": {
2646
-
"optional": true
2647
-
}
2648
-
}
2649
-
},
2650
-
"node_modules/which": {
2651
-
"version": "2.0.2",
2652
-
"dev": true,
2653
-
"license": "ISC",
2654
-
"dependencies": {
2655
-
"isexe": "^2.0.0"
2656
-
},
2657
-
"bin": {
2658
-
"node-which": "bin/node-which"
2659
-
},
2660
-
"engines": {
2661
-
"node": ">= 8"
2662
-
}
2663
-
},
2664
-
"node_modules/word-wrap": {
2665
-
"version": "1.2.5",
2666
-
"dev": true,
2667
-
"license": "MIT",
2668
-
"engines": {
2669
-
"node": ">=0.10.0"
2670
-
}
2671
-
},
2672
-
"node_modules/yaml": {
2673
-
"version": "2.8.1",
2674
-
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz",
2675
-
"integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
2676
-
"dev": true,
2677
-
"license": "ISC",
2678
-
"optional": true,
2679
-
"peer": true,
2680
-
"bin": {
2681
-
"yaml": "bin.mjs"
2682
-
},
2683
-
"engines": {
2684
-
"node": ">= 14.6"
2685
-
}
2686
-
},
2687
-
"node_modules/yocto-queue": {
2688
-
"version": "0.1.0",
2689
-
"dev": true,
2690
-
"license": "MIT",
2691
-
"engines": {
2692
-
"node": ">=10"
2693
-
},
2694
-
"funding": {
2695
-
"url": "https://github.com/sponsors/sindresorhus"
2696
-
}
2697
-
},
2698
-
"node_modules/zimmerframe": {
2699
-
"version": "1.1.4",
2700
-
"dev": true,
2701
-
"license": "MIT"
2702
-
},
2703
-
"node_modules/zod": {
2704
-
"version": "3.25.76",
2705
-
"resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
2706
-
"integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
2707
-
"license": "MIT",
2708
-
"funding": {
2709
-
"url": "https://github.com/sponsors/colinhacks"
2710
-
}
2711
-
}
2712
-
}
2713
-
}
+2
-1
web-ui/package.json
+2
-1
web-ui/package.json
···
13
13
"lint": "eslint ."
14
14
},
15
15
"dependencies": {
16
+
"@atcute/atproto": "^3.1.9",
16
17
"@atcute/client": "^4.0.5",
17
18
"@atcute/lexicons": "^1.2.2",
18
19
"@pds-moover/lexicons": "^1.0.1",
19
-
"@pds-moover/moover": "^1.0.4"
20
+
"@pds-moover/moover": "^1.0.5"
20
21
},
21
22
"devDependencies": {
22
23
"@eslint/compat": "^1.4.0",
+2561
web-ui/pnpm-lock.yaml
+2561
web-ui/pnpm-lock.yaml
···
1
+
lockfileVersion: '9.0'
2
+
3
+
settings:
4
+
autoInstallPeers: true
5
+
excludeLinksFromLockfile: false
6
+
7
+
importers:
8
+
9
+
.:
10
+
dependencies:
11
+
'@atcute/atproto':
12
+
specifier: ^3.1.9
13
+
version: 3.1.9
14
+
'@atcute/client':
15
+
specifier: ^4.0.5
16
+
version: 4.0.5
17
+
'@atcute/lexicons':
18
+
specifier: ^1.2.2
19
+
version: 1.2.2
20
+
'@pds-moover/lexicons':
21
+
specifier: ^1.0.1
22
+
version: 1.0.1
23
+
'@pds-moover/moover':
24
+
specifier: ^1.0.5
25
+
version: 1.0.5(@atcute/identity@1.1.1)(vite@7.1.12(@types/node@22.19.0))
26
+
devDependencies:
27
+
'@eslint/compat':
28
+
specifier: ^1.4.0
29
+
version: 1.4.1(eslint@9.39.0)
30
+
'@eslint/js':
31
+
specifier: ^9.36.0
32
+
version: 9.39.0
33
+
'@sveltejs/adapter-auto':
34
+
specifier: ^6.1.0
35
+
version: 6.1.1(@sveltejs/kit@2.48.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))
36
+
'@sveltejs/adapter-node':
37
+
specifier: ^5.4.0
38
+
version: 5.4.0(@sveltejs/kit@2.48.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))
39
+
'@sveltejs/kit':
40
+
specifier: ^2.43.2
41
+
version: 2.48.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0))
42
+
'@sveltejs/vite-plugin-svelte':
43
+
specifier: ^6.2.0
44
+
version: 6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0))
45
+
'@types/node':
46
+
specifier: ^22
47
+
version: 22.19.0
48
+
eslint:
49
+
specifier: ^9.36.0
50
+
version: 9.39.0
51
+
eslint-plugin-svelte:
52
+
specifier: ^3.12.4
53
+
version: 3.13.0(eslint@9.39.0)(svelte@5.43.2)
54
+
globals:
55
+
specifier: ^16.4.0
56
+
version: 16.5.0
57
+
svelte:
58
+
specifier: ^5.39.5
59
+
version: 5.43.2
60
+
svelte-check:
61
+
specifier: ^4.3.2
62
+
version: 4.3.3(picomatch@4.0.3)(svelte@5.43.2)(typescript@5.9.3)
63
+
typescript:
64
+
specifier: ^5.9.2
65
+
version: 5.9.3
66
+
typescript-eslint:
67
+
specifier: ^8.44.1
68
+
version: 8.46.3(eslint@9.39.0)(typescript@5.9.3)
69
+
vite:
70
+
specifier: ^7.1.7
71
+
version: 7.1.12(@types/node@22.19.0)
72
+
optionalDependencies:
73
+
'@rollup/rollup-linux-x64-musl':
74
+
specifier: ^4.52.5
75
+
version: 4.52.5
76
+
77
+
packages:
78
+
79
+
'@atcute/atproto@3.1.9':
80
+
resolution: {integrity: sha512-DyWwHCTdR4hY2BPNbLXgVmm7lI+fceOwWbE4LXbGvbvVtSn+ejSVFaAv01Ra3kWDha0whsOmbJL8JP0QPpf1+w==}
81
+
82
+
'@atcute/cbor@2.2.8':
83
+
resolution: {integrity: sha512-UzOAN9BuN6JCXgn0ryV8qZuRJUDrNqrbLd6EFM8jc6RYssjRyGRxNy6RZ1NU/07Hd8Tq/0pz8+nQiMu5Zai5uw==}
84
+
85
+
'@atcute/cid@2.2.6':
86
+
resolution: {integrity: sha512-bTAHHbJ24p+E//V4KCS4xdmd39o211jJswvqQOevj7vk+5IYcgDLx1ryZWZ1sEPOo9x875li/kj5gpKL14RDwQ==}
87
+
88
+
'@atcute/client@4.0.5':
89
+
resolution: {integrity: sha512-R8Qen8goGmEkynYGg2m6XFlVmz0GTDvQ+9w+4QqOob+XMk8/WDpF4aImev7WKEde/rV2gjcqW7zM8E6W9NShDA==}
90
+
91
+
'@atcute/crypto@2.2.6':
92
+
resolution: {integrity: sha512-vkuexF+kmrKE1/Uqzub99Qi4QpnxA2jbu60E6PTgL4XypELQ6rb59MB/J1VbY2gs0kd3ET7+L3+NWpKD5nXyfA==}
93
+
94
+
'@atcute/did-plc@0.1.7':
95
+
resolution: {integrity: sha512-a7yOQNqViae3rB5/xa3U0EPJbFD9l8zOHXx6XASZ5F8+Vy2uTgXK3omurpNZ5UxRpy1ni1AMhSohXr61cqWbkg==}
96
+
97
+
'@atcute/identity-resolver@1.1.4':
98
+
resolution: {integrity: sha512-/SVh8vf2cXFJenmBnGeYF2aY3WGQm3cJeew5NWTlkqoy3LvJ5wkvKq9PWu4Tv653VF40rPOp6LOdVr9Fa+q5rA==}
99
+
peerDependencies:
100
+
'@atcute/identity': ^1.0.0
101
+
102
+
'@atcute/identity@1.1.1':
103
+
resolution: {integrity: sha512-zax42n693VEhnC+5tndvO2KLDTMkHOz8UExwmklvJv7R9VujfEwiSWhcv6Jgwb3ellaG8wjiQ1lMOIjLLvwh0Q==}
104
+
105
+
'@atcute/lexicons@1.2.2':
106
+
resolution: {integrity: sha512-bgEhJq5Z70/0TbK5sx+tAkrR8FsCODNiL2gUEvS5PuJfPxmFmRYNWaMGehxSPaXWpU2+Oa9ckceHiYbrItDTkA==}
107
+
108
+
'@atcute/multibase@1.1.6':
109
+
resolution: {integrity: sha512-HBxuCgYLKPPxETV0Rot4VP9e24vKl8JdzGCZOVsDaOXJgbRZoRIF67Lp0H/OgnJeH/Xpva8Z5ReoTNJE5dn3kg==}
110
+
111
+
'@atcute/uint8array@1.0.5':
112
+
resolution: {integrity: sha512-XLWWxoR2HNl2qU+FCr0rp1APwJXci7HnzbOQLxK55OaMNBXZ19+xNC5ii4QCsThsDxa4JS/JTzuiQLziITWf2Q==}
113
+
114
+
'@atcute/util-fetch@1.0.4':
115
+
resolution: {integrity: sha512-sIU9Qk0dE8PLEXSfhy+gIJV+HpiiknMytCI2SqLlqd0vgZUtEKI/EQfP+23LHWvP+CLCzVDOa6cpH045OlmNBg==}
116
+
117
+
'@atproto/api@0.16.11':
118
+
resolution: {integrity: sha512-1dhfQNHiclb102RW+Ea8Nft5olfqU0Ev/vlQaSX6mWNo1aP5zT+sPODJ8+BTUOYk3vcuvL7QMkqA/rLYy2PMyw==}
119
+
120
+
'@atproto/common-web@0.4.3':
121
+
resolution: {integrity: sha512-nRDINmSe4VycJzPo6fP/hEltBcULFxt9Kw7fQk6405FyAWZiTluYHlXOnU7GkQfeUK44OENG1qFTBcmCJ7e8pg==}
122
+
123
+
'@atproto/lexicon@0.5.1':
124
+
resolution: {integrity: sha512-y8AEtYmfgVl4fqFxqXAeGvhesiGkxiy3CWoJIfsFDDdTlZUC8DFnZrYhcqkIop3OlCkkljvpSJi1hbeC1tbi8A==}
125
+
126
+
'@atproto/syntax@0.4.1':
127
+
resolution: {integrity: sha512-CJdImtLAiFO+0z3BWTtxwk6aY5w4t8orHTMVJgkf++QRJWTxPbIFko/0hrkADB7n2EruDxDSeAgfUGehpH6ngw==}
128
+
129
+
'@atproto/xrpc@0.7.5':
130
+
resolution: {integrity: sha512-MUYNn5d2hv8yVegRL0ccHvTHAVj5JSnW07bkbiaz96UH45lvYNRVwt44z+yYVnb0/mvBzyD3/ZQ55TRGt7fHkA==}
131
+
132
+
'@badrap/valita@0.4.6':
133
+
resolution: {integrity: sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==}
134
+
engines: {node: '>= 18'}
135
+
136
+
'@esbuild/aix-ppc64@0.25.12':
137
+
resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
138
+
engines: {node: '>=18'}
139
+
cpu: [ppc64]
140
+
os: [aix]
141
+
142
+
'@esbuild/android-arm64@0.25.12':
143
+
resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
144
+
engines: {node: '>=18'}
145
+
cpu: [arm64]
146
+
os: [android]
147
+
148
+
'@esbuild/android-arm@0.25.12':
149
+
resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
150
+
engines: {node: '>=18'}
151
+
cpu: [arm]
152
+
os: [android]
153
+
154
+
'@esbuild/android-x64@0.25.12':
155
+
resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
156
+
engines: {node: '>=18'}
157
+
cpu: [x64]
158
+
os: [android]
159
+
160
+
'@esbuild/darwin-arm64@0.25.12':
161
+
resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
162
+
engines: {node: '>=18'}
163
+
cpu: [arm64]
164
+
os: [darwin]
165
+
166
+
'@esbuild/darwin-x64@0.25.12':
167
+
resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
168
+
engines: {node: '>=18'}
169
+
cpu: [x64]
170
+
os: [darwin]
171
+
172
+
'@esbuild/freebsd-arm64@0.25.12':
173
+
resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
174
+
engines: {node: '>=18'}
175
+
cpu: [arm64]
176
+
os: [freebsd]
177
+
178
+
'@esbuild/freebsd-x64@0.25.12':
179
+
resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
180
+
engines: {node: '>=18'}
181
+
cpu: [x64]
182
+
os: [freebsd]
183
+
184
+
'@esbuild/linux-arm64@0.25.12':
185
+
resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
186
+
engines: {node: '>=18'}
187
+
cpu: [arm64]
188
+
os: [linux]
189
+
190
+
'@esbuild/linux-arm@0.25.12':
191
+
resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
192
+
engines: {node: '>=18'}
193
+
cpu: [arm]
194
+
os: [linux]
195
+
196
+
'@esbuild/linux-ia32@0.25.12':
197
+
resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
198
+
engines: {node: '>=18'}
199
+
cpu: [ia32]
200
+
os: [linux]
201
+
202
+
'@esbuild/linux-loong64@0.25.12':
203
+
resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
204
+
engines: {node: '>=18'}
205
+
cpu: [loong64]
206
+
os: [linux]
207
+
208
+
'@esbuild/linux-mips64el@0.25.12':
209
+
resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
210
+
engines: {node: '>=18'}
211
+
cpu: [mips64el]
212
+
os: [linux]
213
+
214
+
'@esbuild/linux-ppc64@0.25.12':
215
+
resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
216
+
engines: {node: '>=18'}
217
+
cpu: [ppc64]
218
+
os: [linux]
219
+
220
+
'@esbuild/linux-riscv64@0.25.12':
221
+
resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
222
+
engines: {node: '>=18'}
223
+
cpu: [riscv64]
224
+
os: [linux]
225
+
226
+
'@esbuild/linux-s390x@0.25.12':
227
+
resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
228
+
engines: {node: '>=18'}
229
+
cpu: [s390x]
230
+
os: [linux]
231
+
232
+
'@esbuild/linux-x64@0.25.12':
233
+
resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
234
+
engines: {node: '>=18'}
235
+
cpu: [x64]
236
+
os: [linux]
237
+
238
+
'@esbuild/netbsd-arm64@0.25.12':
239
+
resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
240
+
engines: {node: '>=18'}
241
+
cpu: [arm64]
242
+
os: [netbsd]
243
+
244
+
'@esbuild/netbsd-x64@0.25.12':
245
+
resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
246
+
engines: {node: '>=18'}
247
+
cpu: [x64]
248
+
os: [netbsd]
249
+
250
+
'@esbuild/openbsd-arm64@0.25.12':
251
+
resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
252
+
engines: {node: '>=18'}
253
+
cpu: [arm64]
254
+
os: [openbsd]
255
+
256
+
'@esbuild/openbsd-x64@0.25.12':
257
+
resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
258
+
engines: {node: '>=18'}
259
+
cpu: [x64]
260
+
os: [openbsd]
261
+
262
+
'@esbuild/openharmony-arm64@0.25.12':
263
+
resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==}
264
+
engines: {node: '>=18'}
265
+
cpu: [arm64]
266
+
os: [openharmony]
267
+
268
+
'@esbuild/sunos-x64@0.25.12':
269
+
resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
270
+
engines: {node: '>=18'}
271
+
cpu: [x64]
272
+
os: [sunos]
273
+
274
+
'@esbuild/win32-arm64@0.25.12':
275
+
resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
276
+
engines: {node: '>=18'}
277
+
cpu: [arm64]
278
+
os: [win32]
279
+
280
+
'@esbuild/win32-ia32@0.25.12':
281
+
resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
282
+
engines: {node: '>=18'}
283
+
cpu: [ia32]
284
+
os: [win32]
285
+
286
+
'@esbuild/win32-x64@0.25.12':
287
+
resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
288
+
engines: {node: '>=18'}
289
+
cpu: [x64]
290
+
os: [win32]
291
+
292
+
'@eslint-community/eslint-utils@4.9.0':
293
+
resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==}
294
+
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
295
+
peerDependencies:
296
+
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
297
+
298
+
'@eslint-community/regexpp@4.12.2':
299
+
resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
300
+
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
301
+
302
+
'@eslint/compat@1.4.1':
303
+
resolution: {integrity: sha512-cfO82V9zxxGBxcQDr1lfaYB7wykTa0b00mGa36FrJl7iTFd0Z2cHfEYuxcBRP/iNijCsWsEkA+jzT8hGYmv33w==}
304
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
305
+
peerDependencies:
306
+
eslint: ^8.40 || 9
307
+
peerDependenciesMeta:
308
+
eslint:
309
+
optional: true
310
+
311
+
'@eslint/config-array@0.21.1':
312
+
resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==}
313
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
314
+
315
+
'@eslint/config-helpers@0.4.2':
316
+
resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==}
317
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
318
+
319
+
'@eslint/core@0.17.0':
320
+
resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
321
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
322
+
323
+
'@eslint/eslintrc@3.3.1':
324
+
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
325
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
326
+
327
+
'@eslint/js@9.39.0':
328
+
resolution: {integrity: sha512-BIhe0sW91JGPiaF1mOuPy5v8NflqfjIcDNpC+LbW9f609WVRX1rArrhi6Z2ymvrAry9jw+5POTj4t2t62o8Bmw==}
329
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
330
+
331
+
'@eslint/object-schema@2.1.7':
332
+
resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==}
333
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
334
+
335
+
'@eslint/plugin-kit@0.4.1':
336
+
resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
337
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
338
+
339
+
'@humanfs/core@0.19.1':
340
+
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
341
+
engines: {node: '>=18.18.0'}
342
+
343
+
'@humanfs/node@0.16.7':
344
+
resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==}
345
+
engines: {node: '>=18.18.0'}
346
+
347
+
'@humanwhocodes/module-importer@1.0.1':
348
+
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
349
+
engines: {node: '>=12.22'}
350
+
351
+
'@humanwhocodes/retry@0.4.3':
352
+
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
353
+
engines: {node: '>=18.18'}
354
+
355
+
'@jridgewell/gen-mapping@0.3.13':
356
+
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
357
+
358
+
'@jridgewell/remapping@2.3.5':
359
+
resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
360
+
361
+
'@jridgewell/resolve-uri@3.1.2':
362
+
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
363
+
engines: {node: '>=6.0.0'}
364
+
365
+
'@jridgewell/sourcemap-codec@1.5.5':
366
+
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
367
+
368
+
'@jridgewell/trace-mapping@0.3.31':
369
+
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
370
+
371
+
'@noble/secp256k1@3.0.0':
372
+
resolution: {integrity: sha512-NJBaR352KyIvj3t6sgT/+7xrNyF9Xk9QlLSIqUGVUYlsnDTAUqY8LOmwpcgEx4AMJXRITQ5XEVHD+mMaPfr3mg==}
373
+
374
+
'@nodelib/fs.scandir@2.1.5':
375
+
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
376
+
engines: {node: '>= 8'}
377
+
378
+
'@nodelib/fs.stat@2.0.5':
379
+
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
380
+
engines: {node: '>= 8'}
381
+
382
+
'@nodelib/fs.walk@1.2.8':
383
+
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
384
+
engines: {node: '>= 8'}
385
+
386
+
'@pds-moover/lexicons@1.0.1':
387
+
resolution: {integrity: sha512-fv5b/DtHM7FEo/JklyF9gdK0ainlb6mWjWrBe6cmSAeg9G/4O2jBlQUOqfOAICY9gOcrCpkOrk9PHgGw//JQ2A==}
388
+
389
+
'@pds-moover/moover@1.0.5':
390
+
resolution: {integrity: sha512-do8Itd1mrH/446KYJf+velZqsA45ldJCPrEV10eD3nhFJyhf4KBEuseSHIhV0+KIZGU06HvmofBO+v8EZx9ToA==}
391
+
392
+
'@polka/url@1.0.0-next.29':
393
+
resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
394
+
395
+
'@rollup/plugin-commonjs@28.0.9':
396
+
resolution: {integrity: sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==}
397
+
engines: {node: '>=16.0.0 || 14 >= 14.17'}
398
+
peerDependencies:
399
+
rollup: ^2.68.0||^3.0.0||^4.0.0
400
+
peerDependenciesMeta:
401
+
rollup:
402
+
optional: true
403
+
404
+
'@rollup/plugin-json@6.1.0':
405
+
resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==}
406
+
engines: {node: '>=14.0.0'}
407
+
peerDependencies:
408
+
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
409
+
peerDependenciesMeta:
410
+
rollup:
411
+
optional: true
412
+
413
+
'@rollup/plugin-node-resolve@16.0.3':
414
+
resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==}
415
+
engines: {node: '>=14.0.0'}
416
+
peerDependencies:
417
+
rollup: ^2.78.0||^3.0.0||^4.0.0
418
+
peerDependenciesMeta:
419
+
rollup:
420
+
optional: true
421
+
422
+
'@rollup/pluginutils@5.3.0':
423
+
resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
424
+
engines: {node: '>=14.0.0'}
425
+
peerDependencies:
426
+
rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
427
+
peerDependenciesMeta:
428
+
rollup:
429
+
optional: true
430
+
431
+
'@rollup/rollup-android-arm-eabi@4.52.5':
432
+
resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==}
433
+
cpu: [arm]
434
+
os: [android]
435
+
436
+
'@rollup/rollup-android-arm64@4.52.5':
437
+
resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==}
438
+
cpu: [arm64]
439
+
os: [android]
440
+
441
+
'@rollup/rollup-darwin-arm64@4.52.5':
442
+
resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==}
443
+
cpu: [arm64]
444
+
os: [darwin]
445
+
446
+
'@rollup/rollup-darwin-x64@4.52.5':
447
+
resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==}
448
+
cpu: [x64]
449
+
os: [darwin]
450
+
451
+
'@rollup/rollup-freebsd-arm64@4.52.5':
452
+
resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==}
453
+
cpu: [arm64]
454
+
os: [freebsd]
455
+
456
+
'@rollup/rollup-freebsd-x64@4.52.5':
457
+
resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==}
458
+
cpu: [x64]
459
+
os: [freebsd]
460
+
461
+
'@rollup/rollup-linux-arm-gnueabihf@4.52.5':
462
+
resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==}
463
+
cpu: [arm]
464
+
os: [linux]
465
+
466
+
'@rollup/rollup-linux-arm-musleabihf@4.52.5':
467
+
resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==}
468
+
cpu: [arm]
469
+
os: [linux]
470
+
471
+
'@rollup/rollup-linux-arm64-gnu@4.52.5':
472
+
resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==}
473
+
cpu: [arm64]
474
+
os: [linux]
475
+
476
+
'@rollup/rollup-linux-arm64-musl@4.52.5':
477
+
resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==}
478
+
cpu: [arm64]
479
+
os: [linux]
480
+
481
+
'@rollup/rollup-linux-loong64-gnu@4.52.5':
482
+
resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==}
483
+
cpu: [loong64]
484
+
os: [linux]
485
+
486
+
'@rollup/rollup-linux-ppc64-gnu@4.52.5':
487
+
resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==}
488
+
cpu: [ppc64]
489
+
os: [linux]
490
+
491
+
'@rollup/rollup-linux-riscv64-gnu@4.52.5':
492
+
resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==}
493
+
cpu: [riscv64]
494
+
os: [linux]
495
+
496
+
'@rollup/rollup-linux-riscv64-musl@4.52.5':
497
+
resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==}
498
+
cpu: [riscv64]
499
+
os: [linux]
500
+
501
+
'@rollup/rollup-linux-s390x-gnu@4.52.5':
502
+
resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==}
503
+
cpu: [s390x]
504
+
os: [linux]
505
+
506
+
'@rollup/rollup-linux-x64-gnu@4.52.5':
507
+
resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==}
508
+
cpu: [x64]
509
+
os: [linux]
510
+
511
+
'@rollup/rollup-linux-x64-musl@4.52.5':
512
+
resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==}
513
+
cpu: [x64]
514
+
os: [linux]
515
+
516
+
'@rollup/rollup-openharmony-arm64@4.52.5':
517
+
resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==}
518
+
cpu: [arm64]
519
+
os: [openharmony]
520
+
521
+
'@rollup/rollup-win32-arm64-msvc@4.52.5':
522
+
resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==}
523
+
cpu: [arm64]
524
+
os: [win32]
525
+
526
+
'@rollup/rollup-win32-ia32-msvc@4.52.5':
527
+
resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==}
528
+
cpu: [ia32]
529
+
os: [win32]
530
+
531
+
'@rollup/rollup-win32-x64-gnu@4.52.5':
532
+
resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==}
533
+
cpu: [x64]
534
+
os: [win32]
535
+
536
+
'@rollup/rollup-win32-x64-msvc@4.52.5':
537
+
resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==}
538
+
cpu: [x64]
539
+
os: [win32]
540
+
541
+
'@standard-schema/spec@1.0.0':
542
+
resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==}
543
+
544
+
'@sveltejs/acorn-typescript@1.0.6':
545
+
resolution: {integrity: sha512-4awhxtMh4cx9blePWl10HRHj8Iivtqj+2QdDCSMDzxG+XKa9+VCNupQuCuvzEhYPzZSrX+0gC+0lHA/0fFKKQQ==}
546
+
peerDependencies:
547
+
acorn: ^8.9.0
548
+
549
+
'@sveltejs/adapter-auto@6.1.1':
550
+
resolution: {integrity: sha512-cBNt4jgH4KuaNO5gRSB2CZKkGtz+OCZ8lPjRQGjhvVUD4akotnj2weUia6imLl2v07K3IgsQRyM36909miSwoQ==}
551
+
peerDependencies:
552
+
'@sveltejs/kit': ^2.0.0
553
+
554
+
'@sveltejs/adapter-node@5.4.0':
555
+
resolution: {integrity: sha512-NMsrwGVPEn+J73zH83Uhss/hYYZN6zT3u31R3IHAn3MiKC3h8fjmIAhLfTSOeNHr5wPYfjjMg8E+1gyFgyrEcQ==}
556
+
peerDependencies:
557
+
'@sveltejs/kit': ^2.4.0
558
+
559
+
'@sveltejs/kit@2.48.4':
560
+
resolution: {integrity: sha512-TGFX1pZUt9qqY20Cv5NyYvy0iLWHf2jXi8s+eCGsig7jQMdwZWKUFMR6TbvFNhfDSUpc1sH/Y5EHv20g3HHA3g==}
561
+
engines: {node: '>=18.13'}
562
+
hasBin: true
563
+
peerDependencies:
564
+
'@opentelemetry/api': ^1.0.0
565
+
'@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0
566
+
svelte: ^4.0.0 || ^5.0.0-next.0
567
+
vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0
568
+
peerDependenciesMeta:
569
+
'@opentelemetry/api':
570
+
optional: true
571
+
572
+
'@sveltejs/vite-plugin-svelte-inspector@5.0.1':
573
+
resolution: {integrity: sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA==}
574
+
engines: {node: ^20.19 || ^22.12 || >=24}
575
+
peerDependencies:
576
+
'@sveltejs/vite-plugin-svelte': ^6.0.0-next.0
577
+
svelte: ^5.0.0
578
+
vite: ^6.3.0 || ^7.0.0
579
+
580
+
'@sveltejs/vite-plugin-svelte@6.2.1':
581
+
resolution: {integrity: sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==}
582
+
engines: {node: ^20.19 || ^22.12 || >=24}
583
+
peerDependencies:
584
+
svelte: ^5.0.0
585
+
vite: ^6.3.0 || ^7.0.0
586
+
587
+
'@types/cookie@0.6.0':
588
+
resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
589
+
590
+
'@types/estree@1.0.8':
591
+
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
592
+
593
+
'@types/json-schema@7.0.15':
594
+
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
595
+
596
+
'@types/node@22.19.0':
597
+
resolution: {integrity: sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA==}
598
+
599
+
'@types/resolve@1.20.2':
600
+
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
601
+
602
+
'@typescript-eslint/eslint-plugin@8.46.3':
603
+
resolution: {integrity: sha512-sbaQ27XBUopBkRiuY/P9sWGOWUW4rl8fDoHIUmLpZd8uldsTyB4/Zg6bWTegPoTLnKj9Hqgn3QD6cjPNB32Odw==}
604
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
605
+
peerDependencies:
606
+
'@typescript-eslint/parser': ^8.46.3
607
+
eslint: ^8.57.0 || ^9.0.0
608
+
typescript: '>=4.8.4 <6.0.0'
609
+
610
+
'@typescript-eslint/parser@8.46.3':
611
+
resolution: {integrity: sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg==}
612
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
613
+
peerDependencies:
614
+
eslint: ^8.57.0 || ^9.0.0
615
+
typescript: '>=4.8.4 <6.0.0'
616
+
617
+
'@typescript-eslint/project-service@8.46.3':
618
+
resolution: {integrity: sha512-Fz8yFXsp2wDFeUElO88S9n4w1I4CWDTXDqDr9gYvZgUpwXQqmZBr9+NTTql5R3J7+hrJZPdpiWaB9VNhAKYLuQ==}
619
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
620
+
peerDependencies:
621
+
typescript: '>=4.8.4 <6.0.0'
622
+
623
+
'@typescript-eslint/scope-manager@8.46.3':
624
+
resolution: {integrity: sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==}
625
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
626
+
627
+
'@typescript-eslint/tsconfig-utils@8.46.3':
628
+
resolution: {integrity: sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA==}
629
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
630
+
peerDependencies:
631
+
typescript: '>=4.8.4 <6.0.0'
632
+
633
+
'@typescript-eslint/type-utils@8.46.3':
634
+
resolution: {integrity: sha512-ZPCADbr+qfz3aiTTYNNkCbUt+cjNwI/5McyANNrFBpVxPt7GqpEYz5ZfdwuFyGUnJ9FdDXbGODUu6iRCI6XRXw==}
635
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
636
+
peerDependencies:
637
+
eslint: ^8.57.0 || ^9.0.0
638
+
typescript: '>=4.8.4 <6.0.0'
639
+
640
+
'@typescript-eslint/types@8.46.3':
641
+
resolution: {integrity: sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==}
642
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
643
+
644
+
'@typescript-eslint/typescript-estree@8.46.3':
645
+
resolution: {integrity: sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==}
646
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
647
+
peerDependencies:
648
+
typescript: '>=4.8.4 <6.0.0'
649
+
650
+
'@typescript-eslint/utils@8.46.3':
651
+
resolution: {integrity: sha512-VXw7qmdkucEx9WkmR3ld/u6VhRyKeiF1uxWwCy/iuNfokjJ7VhsgLSOTjsol8BunSw190zABzpwdNsze2Kpo4g==}
652
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
653
+
peerDependencies:
654
+
eslint: ^8.57.0 || ^9.0.0
655
+
typescript: '>=4.8.4 <6.0.0'
656
+
657
+
'@typescript-eslint/visitor-keys@8.46.3':
658
+
resolution: {integrity: sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==}
659
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
660
+
661
+
'@vue/reactivity@3.1.5':
662
+
resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==}
663
+
664
+
'@vue/shared@3.1.5':
665
+
resolution: {integrity: sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==}
666
+
667
+
acorn-jsx@5.3.2:
668
+
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
669
+
peerDependencies:
670
+
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
671
+
672
+
acorn@8.15.0:
673
+
resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
674
+
engines: {node: '>=0.4.0'}
675
+
hasBin: true
676
+
677
+
ajv@6.12.6:
678
+
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
679
+
680
+
alpinejs@3.15.2:
681
+
resolution: {integrity: sha512-2kYF2aG+DTFkE6p0rHG5XmN4VEb6sO9b02aOdU4+i8QN6rL0DbRZQiypDE1gBcGO65yDcqMz5KKYUYgMUxgNkw==}
682
+
683
+
ansi-styles@4.3.0:
684
+
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
685
+
engines: {node: '>=8'}
686
+
687
+
argparse@2.0.1:
688
+
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
689
+
690
+
aria-query@5.3.2:
691
+
resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
692
+
engines: {node: '>= 0.4'}
693
+
694
+
await-lock@2.2.2:
695
+
resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==}
696
+
697
+
axobject-query@4.1.0:
698
+
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
699
+
engines: {node: '>= 0.4'}
700
+
701
+
balanced-match@1.0.2:
702
+
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
703
+
704
+
brace-expansion@1.1.12:
705
+
resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
706
+
707
+
brace-expansion@2.0.2:
708
+
resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
709
+
710
+
braces@3.0.3:
711
+
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
712
+
engines: {node: '>=8'}
713
+
714
+
callsites@3.1.0:
715
+
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
716
+
engines: {node: '>=6'}
717
+
718
+
chalk@4.1.2:
719
+
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
720
+
engines: {node: '>=10'}
721
+
722
+
chokidar@4.0.3:
723
+
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
724
+
engines: {node: '>= 14.16.0'}
725
+
726
+
clsx@2.1.1:
727
+
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
728
+
engines: {node: '>=6'}
729
+
730
+
color-convert@2.0.1:
731
+
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
732
+
engines: {node: '>=7.0.0'}
733
+
734
+
color-name@1.1.4:
735
+
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
736
+
737
+
commondir@1.0.1:
738
+
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
739
+
740
+
concat-map@0.0.1:
741
+
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
742
+
743
+
cookie@0.6.0:
744
+
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
745
+
engines: {node: '>= 0.6'}
746
+
747
+
cross-spawn@7.0.6:
748
+
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
749
+
engines: {node: '>= 8'}
750
+
751
+
cssesc@3.0.0:
752
+
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
753
+
engines: {node: '>=4'}
754
+
hasBin: true
755
+
756
+
debug@4.4.3:
757
+
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
758
+
engines: {node: '>=6.0'}
759
+
peerDependencies:
760
+
supports-color: '*'
761
+
peerDependenciesMeta:
762
+
supports-color:
763
+
optional: true
764
+
765
+
deep-is@0.1.4:
766
+
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
767
+
768
+
deepmerge@4.3.1:
769
+
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
770
+
engines: {node: '>=0.10.0'}
771
+
772
+
devalue@5.4.2:
773
+
resolution: {integrity: sha512-MwPZTKEPK2k8Qgfmqrd48ZKVvzSQjgW0lXLxiIBA8dQjtf/6mw6pggHNLcyDKyf+fI6eXxlQwPsfaCMTU5U+Bw==}
774
+
775
+
esbuild@0.25.12:
776
+
resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
777
+
engines: {node: '>=18'}
778
+
hasBin: true
779
+
780
+
escape-string-regexp@4.0.0:
781
+
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
782
+
engines: {node: '>=10'}
783
+
784
+
eslint-plugin-svelte@3.13.0:
785
+
resolution: {integrity: sha512-2ohCCQJJTNbIpQCSDSTWj+FN0OVfPmSO03lmSNT7ytqMaWF6kpT86LdzDqtm4sh7TVPl/OEWJ/d7R87bXP2Vjg==}
786
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
787
+
peerDependencies:
788
+
eslint: ^8.57.1 || ^9.0.0
789
+
svelte: ^3.37.0 || ^4.0.0 || ^5.0.0
790
+
peerDependenciesMeta:
791
+
svelte:
792
+
optional: true
793
+
794
+
eslint-scope@8.4.0:
795
+
resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
796
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
797
+
798
+
eslint-visitor-keys@3.4.3:
799
+
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
800
+
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
801
+
802
+
eslint-visitor-keys@4.2.1:
803
+
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
804
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
805
+
806
+
eslint@9.39.0:
807
+
resolution: {integrity: sha512-iy2GE3MHrYTL5lrCtMZ0X1KLEKKUjmK0kzwcnefhR66txcEmXZD2YWgR5GNdcEwkNx3a0siYkSvl0vIC+Svjmg==}
808
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
809
+
hasBin: true
810
+
peerDependencies:
811
+
jiti: '*'
812
+
peerDependenciesMeta:
813
+
jiti:
814
+
optional: true
815
+
816
+
esm-env@1.2.2:
817
+
resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
818
+
819
+
espree@10.4.0:
820
+
resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
821
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
822
+
823
+
esquery@1.6.0:
824
+
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
825
+
engines: {node: '>=0.10'}
826
+
827
+
esrap@2.1.2:
828
+
resolution: {integrity: sha512-DgvlIQeowRNyvLPWW4PT7Gu13WznY288Du086E751mwwbsgr29ytBiYeLzAGIo0qk3Ujob0SDk8TiSaM5WQzNg==}
829
+
830
+
esrecurse@4.3.0:
831
+
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
832
+
engines: {node: '>=4.0'}
833
+
834
+
estraverse@5.3.0:
835
+
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
836
+
engines: {node: '>=4.0'}
837
+
838
+
estree-walker@2.0.2:
839
+
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
840
+
841
+
esutils@2.0.3:
842
+
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
843
+
engines: {node: '>=0.10.0'}
844
+
845
+
fast-deep-equal@3.1.3:
846
+
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
847
+
848
+
fast-glob@3.3.3:
849
+
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
850
+
engines: {node: '>=8.6.0'}
851
+
852
+
fast-json-stable-stringify@2.1.0:
853
+
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
854
+
855
+
fast-levenshtein@2.0.6:
856
+
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
857
+
858
+
fastq@1.19.1:
859
+
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
860
+
861
+
fdir@6.5.0:
862
+
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
863
+
engines: {node: '>=12.0.0'}
864
+
peerDependencies:
865
+
picomatch: ^3 || ^4
866
+
peerDependenciesMeta:
867
+
picomatch:
868
+
optional: true
869
+
870
+
file-entry-cache@8.0.0:
871
+
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
872
+
engines: {node: '>=16.0.0'}
873
+
874
+
fill-range@7.1.1:
875
+
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
876
+
engines: {node: '>=8'}
877
+
878
+
find-up@5.0.0:
879
+
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
880
+
engines: {node: '>=10'}
881
+
882
+
flat-cache@4.0.1:
883
+
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
884
+
engines: {node: '>=16'}
885
+
886
+
flatted@3.3.3:
887
+
resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
888
+
889
+
fsevents@2.3.3:
890
+
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
891
+
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
892
+
os: [darwin]
893
+
894
+
function-bind@1.1.2:
895
+
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
896
+
897
+
glob-parent@5.1.2:
898
+
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
899
+
engines: {node: '>= 6'}
900
+
901
+
glob-parent@6.0.2:
902
+
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
903
+
engines: {node: '>=10.13.0'}
904
+
905
+
globals@14.0.0:
906
+
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
907
+
engines: {node: '>=18'}
908
+
909
+
globals@16.5.0:
910
+
resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==}
911
+
engines: {node: '>=18'}
912
+
913
+
graphemer@1.4.0:
914
+
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
915
+
916
+
has-flag@4.0.0:
917
+
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
918
+
engines: {node: '>=8'}
919
+
920
+
hasown@2.0.2:
921
+
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
922
+
engines: {node: '>= 0.4'}
923
+
924
+
ignore@5.3.2:
925
+
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
926
+
engines: {node: '>= 4'}
927
+
928
+
ignore@7.0.5:
929
+
resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
930
+
engines: {node: '>= 4'}
931
+
932
+
import-fresh@3.3.1:
933
+
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
934
+
engines: {node: '>=6'}
935
+
936
+
imurmurhash@0.1.4:
937
+
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
938
+
engines: {node: '>=0.8.19'}
939
+
940
+
is-core-module@2.16.1:
941
+
resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
942
+
engines: {node: '>= 0.4'}
943
+
944
+
is-extglob@2.1.1:
945
+
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
946
+
engines: {node: '>=0.10.0'}
947
+
948
+
is-glob@4.0.3:
949
+
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
950
+
engines: {node: '>=0.10.0'}
951
+
952
+
is-module@1.0.0:
953
+
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
954
+
955
+
is-number@7.0.0:
956
+
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
957
+
engines: {node: '>=0.12.0'}
958
+
959
+
is-reference@1.2.1:
960
+
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
961
+
962
+
is-reference@3.0.3:
963
+
resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}
964
+
965
+
isexe@2.0.0:
966
+
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
967
+
968
+
iso-datestring-validator@2.2.2:
969
+
resolution: {integrity: sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==}
970
+
971
+
js-yaml@4.1.0:
972
+
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
973
+
hasBin: true
974
+
975
+
json-buffer@3.0.1:
976
+
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
977
+
978
+
json-schema-traverse@0.4.1:
979
+
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
980
+
981
+
json-stable-stringify-without-jsonify@1.0.1:
982
+
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
983
+
984
+
keyv@4.5.4:
985
+
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
986
+
987
+
kleur@4.1.5:
988
+
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
989
+
engines: {node: '>=6'}
990
+
991
+
known-css-properties@0.37.0:
992
+
resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==}
993
+
994
+
levn@0.4.1:
995
+
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
996
+
engines: {node: '>= 0.8.0'}
997
+
998
+
lilconfig@2.1.0:
999
+
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
1000
+
engines: {node: '>=10'}
1001
+
1002
+
locate-character@3.0.0:
1003
+
resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
1004
+
1005
+
locate-path@6.0.0:
1006
+
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1007
+
engines: {node: '>=10'}
1008
+
1009
+
lodash.merge@4.6.2:
1010
+
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1011
+
1012
+
magic-string@0.30.21:
1013
+
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
1014
+
1015
+
merge2@1.4.1:
1016
+
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1017
+
engines: {node: '>= 8'}
1018
+
1019
+
micromatch@4.0.8:
1020
+
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
1021
+
engines: {node: '>=8.6'}
1022
+
1023
+
minimatch@3.1.2:
1024
+
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1025
+
1026
+
minimatch@9.0.5:
1027
+
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
1028
+
engines: {node: '>=16 || 14 >=14.17'}
1029
+
1030
+
mri@1.2.0:
1031
+
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
1032
+
engines: {node: '>=4'}
1033
+
1034
+
mrmime@2.0.1:
1035
+
resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
1036
+
engines: {node: '>=10'}
1037
+
1038
+
ms@2.1.3:
1039
+
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1040
+
1041
+
multiformats@9.9.0:
1042
+
resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==}
1043
+
1044
+
nanoid@3.3.11:
1045
+
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
1046
+
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1047
+
hasBin: true
1048
+
1049
+
natural-compare@1.4.0:
1050
+
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1051
+
1052
+
optionator@0.9.4:
1053
+
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
1054
+
engines: {node: '>= 0.8.0'}
1055
+
1056
+
p-limit@3.1.0:
1057
+
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1058
+
engines: {node: '>=10'}
1059
+
1060
+
p-locate@5.0.0:
1061
+
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1062
+
engines: {node: '>=10'}
1063
+
1064
+
parent-module@1.0.1:
1065
+
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1066
+
engines: {node: '>=6'}
1067
+
1068
+
path-exists@4.0.0:
1069
+
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1070
+
engines: {node: '>=8'}
1071
+
1072
+
path-key@3.1.1:
1073
+
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1074
+
engines: {node: '>=8'}
1075
+
1076
+
path-parse@1.0.7:
1077
+
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1078
+
1079
+
picocolors@1.1.1:
1080
+
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
1081
+
1082
+
picomatch@2.3.1:
1083
+
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1084
+
engines: {node: '>=8.6'}
1085
+
1086
+
picomatch@4.0.3:
1087
+
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
1088
+
engines: {node: '>=12'}
1089
+
1090
+
postcss-load-config@3.1.4:
1091
+
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
1092
+
engines: {node: '>= 10'}
1093
+
peerDependencies:
1094
+
postcss: '>=8.0.9'
1095
+
ts-node: '>=9.0.0'
1096
+
peerDependenciesMeta:
1097
+
postcss:
1098
+
optional: true
1099
+
ts-node:
1100
+
optional: true
1101
+
1102
+
postcss-safe-parser@7.0.1:
1103
+
resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==}
1104
+
engines: {node: '>=18.0'}
1105
+
peerDependencies:
1106
+
postcss: ^8.4.31
1107
+
1108
+
postcss-scss@4.0.9:
1109
+
resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==}
1110
+
engines: {node: '>=12.0'}
1111
+
peerDependencies:
1112
+
postcss: ^8.4.29
1113
+
1114
+
postcss-selector-parser@7.1.0:
1115
+
resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==}
1116
+
engines: {node: '>=4'}
1117
+
1118
+
postcss@8.5.6:
1119
+
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
1120
+
engines: {node: ^10 || ^12 || >=14}
1121
+
1122
+
prelude-ls@1.2.1:
1123
+
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1124
+
engines: {node: '>= 0.8.0'}
1125
+
1126
+
punycode@2.3.1:
1127
+
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
1128
+
engines: {node: '>=6'}
1129
+
1130
+
queue-microtask@1.2.3:
1131
+
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1132
+
1133
+
readdirp@4.1.2:
1134
+
resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
1135
+
engines: {node: '>= 14.18.0'}
1136
+
1137
+
resolve-from@4.0.0:
1138
+
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1139
+
engines: {node: '>=4'}
1140
+
1141
+
resolve@1.22.11:
1142
+
resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==}
1143
+
engines: {node: '>= 0.4'}
1144
+
hasBin: true
1145
+
1146
+
reusify@1.1.0:
1147
+
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
1148
+
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1149
+
1150
+
rollup@4.52.5:
1151
+
resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==}
1152
+
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
1153
+
hasBin: true
1154
+
1155
+
run-parallel@1.2.0:
1156
+
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1157
+
1158
+
sade@1.8.1:
1159
+
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
1160
+
engines: {node: '>=6'}
1161
+
1162
+
semver@7.7.3:
1163
+
resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
1164
+
engines: {node: '>=10'}
1165
+
hasBin: true
1166
+
1167
+
set-cookie-parser@2.7.2:
1168
+
resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==}
1169
+
1170
+
shebang-command@2.0.0:
1171
+
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1172
+
engines: {node: '>=8'}
1173
+
1174
+
shebang-regex@3.0.0:
1175
+
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1176
+
engines: {node: '>=8'}
1177
+
1178
+
sirv@3.0.2:
1179
+
resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==}
1180
+
engines: {node: '>=18'}
1181
+
1182
+
source-map-js@1.2.1:
1183
+
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
1184
+
engines: {node: '>=0.10.0'}
1185
+
1186
+
strip-json-comments@3.1.1:
1187
+
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1188
+
engines: {node: '>=8'}
1189
+
1190
+
supports-color@7.2.0:
1191
+
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1192
+
engines: {node: '>=8'}
1193
+
1194
+
supports-preserve-symlinks-flag@1.0.0:
1195
+
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1196
+
engines: {node: '>= 0.4'}
1197
+
1198
+
svelte-check@4.3.3:
1199
+
resolution: {integrity: sha512-RYP0bEwenDXzfv0P1sKAwjZSlaRyqBn0Fz1TVni58lqyEiqgwztTpmodJrGzP6ZT2aHl4MbTvWP6gbmQ3FOnBg==}
1200
+
engines: {node: '>= 18.0.0'}
1201
+
hasBin: true
1202
+
peerDependencies:
1203
+
svelte: ^4.0.0 || ^5.0.0-next.0
1204
+
typescript: '>=5.0.0'
1205
+
1206
+
svelte-eslint-parser@1.4.0:
1207
+
resolution: {integrity: sha512-fjPzOfipR5S7gQ/JvI9r2H8y9gMGXO3JtmrylHLLyahEMquXI0lrebcjT+9/hNgDej0H7abTyox5HpHmW1PSWA==}
1208
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0, pnpm: 10.18.3}
1209
+
peerDependencies:
1210
+
svelte: ^3.37.0 || ^4.0.0 || ^5.0.0
1211
+
peerDependenciesMeta:
1212
+
svelte:
1213
+
optional: true
1214
+
1215
+
svelte@5.43.2:
1216
+
resolution: {integrity: sha512-ro1umEzX8rT5JpCmlf0PPv7ncD8MdVob9e18bhwqTKNoLjS8kDvhVpaoYVPc+qMwDAOfcwJtyY7ZFSDbOaNPgA==}
1217
+
engines: {node: '>=18'}
1218
+
1219
+
tinyglobby@0.2.15:
1220
+
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
1221
+
engines: {node: '>=12.0.0'}
1222
+
1223
+
tlds@1.261.0:
1224
+
resolution: {integrity: sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==}
1225
+
hasBin: true
1226
+
1227
+
to-regex-range@5.0.1:
1228
+
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1229
+
engines: {node: '>=8.0'}
1230
+
1231
+
totalist@3.0.1:
1232
+
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
1233
+
engines: {node: '>=6'}
1234
+
1235
+
ts-api-utils@2.1.0:
1236
+
resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
1237
+
engines: {node: '>=18.12'}
1238
+
peerDependencies:
1239
+
typescript: '>=4.8.4'
1240
+
1241
+
type-check@0.4.0:
1242
+
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1243
+
engines: {node: '>= 0.8.0'}
1244
+
1245
+
typescript-eslint@8.46.3:
1246
+
resolution: {integrity: sha512-bAfgMavTuGo+8n6/QQDVQz4tZ4f7Soqg53RbrlZQEoAltYop/XR4RAts/I0BrO3TTClTSTFJ0wYbla+P8cEWJA==}
1247
+
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1248
+
peerDependencies:
1249
+
eslint: ^8.57.0 || ^9.0.0
1250
+
typescript: '>=4.8.4 <6.0.0'
1251
+
1252
+
typescript@5.9.3:
1253
+
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
1254
+
engines: {node: '>=14.17'}
1255
+
hasBin: true
1256
+
1257
+
uint8arrays@3.0.0:
1258
+
resolution: {integrity: sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==}
1259
+
1260
+
undici-types@6.21.0:
1261
+
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
1262
+
1263
+
uri-js@4.4.1:
1264
+
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1265
+
1266
+
util-deprecate@1.0.2:
1267
+
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1268
+
1269
+
vite-plugin-full-reload@1.2.0:
1270
+
resolution: {integrity: sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==}
1271
+
1272
+
vite-rs-plugin@1.0.1:
1273
+
resolution: {integrity: sha512-YhgflKQIRzuS5x66J3yICoVLH25D2fNU+jThK8tpYl/jGrXeIKT4w5VH1lkLPRC0SjK2ZCm9S6K9Z2ZFVDHjPQ==}
1274
+
hasBin: true
1275
+
peerDependencies:
1276
+
vite: ^5.0.0
1277
+
1278
+
vite@7.1.12:
1279
+
resolution: {integrity: sha512-ZWyE8YXEXqJrrSLvYgrRP7p62OziLW7xI5HYGWFzOvupfAlrLvURSzv/FyGyy0eidogEM3ujU+kUG1zuHgb6Ug==}
1280
+
engines: {node: ^20.19.0 || >=22.12.0}
1281
+
hasBin: true
1282
+
peerDependencies:
1283
+
'@types/node': ^20.19.0 || >=22.12.0
1284
+
jiti: '>=1.21.0'
1285
+
less: ^4.0.0
1286
+
lightningcss: ^1.21.0
1287
+
sass: ^1.70.0
1288
+
sass-embedded: ^1.70.0
1289
+
stylus: '>=0.54.8'
1290
+
sugarss: ^5.0.0
1291
+
terser: ^5.16.0
1292
+
tsx: ^4.8.1
1293
+
yaml: ^2.4.2
1294
+
peerDependenciesMeta:
1295
+
'@types/node':
1296
+
optional: true
1297
+
jiti:
1298
+
optional: true
1299
+
less:
1300
+
optional: true
1301
+
lightningcss:
1302
+
optional: true
1303
+
sass:
1304
+
optional: true
1305
+
sass-embedded:
1306
+
optional: true
1307
+
stylus:
1308
+
optional: true
1309
+
sugarss:
1310
+
optional: true
1311
+
terser:
1312
+
optional: true
1313
+
tsx:
1314
+
optional: true
1315
+
yaml:
1316
+
optional: true
1317
+
1318
+
vitefu@1.1.1:
1319
+
resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==}
1320
+
peerDependencies:
1321
+
vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0
1322
+
peerDependenciesMeta:
1323
+
vite:
1324
+
optional: true
1325
+
1326
+
which@2.0.2:
1327
+
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1328
+
engines: {node: '>= 8'}
1329
+
hasBin: true
1330
+
1331
+
word-wrap@1.2.5:
1332
+
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
1333
+
engines: {node: '>=0.10.0'}
1334
+
1335
+
yaml@1.10.2:
1336
+
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
1337
+
engines: {node: '>= 6'}
1338
+
1339
+
yocto-queue@0.1.0:
1340
+
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1341
+
engines: {node: '>=10'}
1342
+
1343
+
zimmerframe@1.1.4:
1344
+
resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==}
1345
+
1346
+
zod@3.25.76:
1347
+
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
1348
+
1349
+
snapshots:
1350
+
1351
+
'@atcute/atproto@3.1.9':
1352
+
dependencies:
1353
+
'@atcute/lexicons': 1.2.2
1354
+
1355
+
'@atcute/cbor@2.2.8':
1356
+
dependencies:
1357
+
'@atcute/cid': 2.2.6
1358
+
'@atcute/multibase': 1.1.6
1359
+
'@atcute/uint8array': 1.0.5
1360
+
1361
+
'@atcute/cid@2.2.6':
1362
+
dependencies:
1363
+
'@atcute/multibase': 1.1.6
1364
+
'@atcute/uint8array': 1.0.5
1365
+
1366
+
'@atcute/client@4.0.5':
1367
+
dependencies:
1368
+
'@atcute/identity': 1.1.1
1369
+
'@atcute/lexicons': 1.2.2
1370
+
1371
+
'@atcute/crypto@2.2.6':
1372
+
dependencies:
1373
+
'@atcute/multibase': 1.1.6
1374
+
'@atcute/uint8array': 1.0.5
1375
+
'@noble/secp256k1': 3.0.0
1376
+
1377
+
'@atcute/did-plc@0.1.7':
1378
+
dependencies:
1379
+
'@atcute/cbor': 2.2.8
1380
+
'@atcute/cid': 2.2.6
1381
+
'@atcute/crypto': 2.2.6
1382
+
'@atcute/identity': 1.1.1
1383
+
'@atcute/lexicons': 1.2.2
1384
+
'@atcute/multibase': 1.1.6
1385
+
'@atcute/uint8array': 1.0.5
1386
+
'@badrap/valita': 0.4.6
1387
+
1388
+
'@atcute/identity-resolver@1.1.4(@atcute/identity@1.1.1)':
1389
+
dependencies:
1390
+
'@atcute/identity': 1.1.1
1391
+
'@atcute/lexicons': 1.2.2
1392
+
'@atcute/util-fetch': 1.0.4
1393
+
'@badrap/valita': 0.4.6
1394
+
1395
+
'@atcute/identity@1.1.1':
1396
+
dependencies:
1397
+
'@atcute/lexicons': 1.2.2
1398
+
'@badrap/valita': 0.4.6
1399
+
1400
+
'@atcute/lexicons@1.2.2':
1401
+
dependencies:
1402
+
'@standard-schema/spec': 1.0.0
1403
+
esm-env: 1.2.2
1404
+
1405
+
'@atcute/multibase@1.1.6':
1406
+
dependencies:
1407
+
'@atcute/uint8array': 1.0.5
1408
+
1409
+
'@atcute/uint8array@1.0.5': {}
1410
+
1411
+
'@atcute/util-fetch@1.0.4':
1412
+
dependencies:
1413
+
'@badrap/valita': 0.4.6
1414
+
1415
+
'@atproto/api@0.16.11':
1416
+
dependencies:
1417
+
'@atproto/common-web': 0.4.3
1418
+
'@atproto/lexicon': 0.5.1
1419
+
'@atproto/syntax': 0.4.1
1420
+
'@atproto/xrpc': 0.7.5
1421
+
await-lock: 2.2.2
1422
+
multiformats: 9.9.0
1423
+
tlds: 1.261.0
1424
+
zod: 3.25.76
1425
+
1426
+
'@atproto/common-web@0.4.3':
1427
+
dependencies:
1428
+
graphemer: 1.4.0
1429
+
multiformats: 9.9.0
1430
+
uint8arrays: 3.0.0
1431
+
zod: 3.25.76
1432
+
1433
+
'@atproto/lexicon@0.5.1':
1434
+
dependencies:
1435
+
'@atproto/common-web': 0.4.3
1436
+
'@atproto/syntax': 0.4.1
1437
+
iso-datestring-validator: 2.2.2
1438
+
multiformats: 9.9.0
1439
+
zod: 3.25.76
1440
+
1441
+
'@atproto/syntax@0.4.1': {}
1442
+
1443
+
'@atproto/xrpc@0.7.5':
1444
+
dependencies:
1445
+
'@atproto/lexicon': 0.5.1
1446
+
zod: 3.25.76
1447
+
1448
+
'@badrap/valita@0.4.6': {}
1449
+
1450
+
'@esbuild/aix-ppc64@0.25.12':
1451
+
optional: true
1452
+
1453
+
'@esbuild/android-arm64@0.25.12':
1454
+
optional: true
1455
+
1456
+
'@esbuild/android-arm@0.25.12':
1457
+
optional: true
1458
+
1459
+
'@esbuild/android-x64@0.25.12':
1460
+
optional: true
1461
+
1462
+
'@esbuild/darwin-arm64@0.25.12':
1463
+
optional: true
1464
+
1465
+
'@esbuild/darwin-x64@0.25.12':
1466
+
optional: true
1467
+
1468
+
'@esbuild/freebsd-arm64@0.25.12':
1469
+
optional: true
1470
+
1471
+
'@esbuild/freebsd-x64@0.25.12':
1472
+
optional: true
1473
+
1474
+
'@esbuild/linux-arm64@0.25.12':
1475
+
optional: true
1476
+
1477
+
'@esbuild/linux-arm@0.25.12':
1478
+
optional: true
1479
+
1480
+
'@esbuild/linux-ia32@0.25.12':
1481
+
optional: true
1482
+
1483
+
'@esbuild/linux-loong64@0.25.12':
1484
+
optional: true
1485
+
1486
+
'@esbuild/linux-mips64el@0.25.12':
1487
+
optional: true
1488
+
1489
+
'@esbuild/linux-ppc64@0.25.12':
1490
+
optional: true
1491
+
1492
+
'@esbuild/linux-riscv64@0.25.12':
1493
+
optional: true
1494
+
1495
+
'@esbuild/linux-s390x@0.25.12':
1496
+
optional: true
1497
+
1498
+
'@esbuild/linux-x64@0.25.12':
1499
+
optional: true
1500
+
1501
+
'@esbuild/netbsd-arm64@0.25.12':
1502
+
optional: true
1503
+
1504
+
'@esbuild/netbsd-x64@0.25.12':
1505
+
optional: true
1506
+
1507
+
'@esbuild/openbsd-arm64@0.25.12':
1508
+
optional: true
1509
+
1510
+
'@esbuild/openbsd-x64@0.25.12':
1511
+
optional: true
1512
+
1513
+
'@esbuild/openharmony-arm64@0.25.12':
1514
+
optional: true
1515
+
1516
+
'@esbuild/sunos-x64@0.25.12':
1517
+
optional: true
1518
+
1519
+
'@esbuild/win32-arm64@0.25.12':
1520
+
optional: true
1521
+
1522
+
'@esbuild/win32-ia32@0.25.12':
1523
+
optional: true
1524
+
1525
+
'@esbuild/win32-x64@0.25.12':
1526
+
optional: true
1527
+
1528
+
'@eslint-community/eslint-utils@4.9.0(eslint@9.39.0)':
1529
+
dependencies:
1530
+
eslint: 9.39.0
1531
+
eslint-visitor-keys: 3.4.3
1532
+
1533
+
'@eslint-community/regexpp@4.12.2': {}
1534
+
1535
+
'@eslint/compat@1.4.1(eslint@9.39.0)':
1536
+
dependencies:
1537
+
'@eslint/core': 0.17.0
1538
+
optionalDependencies:
1539
+
eslint: 9.39.0
1540
+
1541
+
'@eslint/config-array@0.21.1':
1542
+
dependencies:
1543
+
'@eslint/object-schema': 2.1.7
1544
+
debug: 4.4.3
1545
+
minimatch: 3.1.2
1546
+
transitivePeerDependencies:
1547
+
- supports-color
1548
+
1549
+
'@eslint/config-helpers@0.4.2':
1550
+
dependencies:
1551
+
'@eslint/core': 0.17.0
1552
+
1553
+
'@eslint/core@0.17.0':
1554
+
dependencies:
1555
+
'@types/json-schema': 7.0.15
1556
+
1557
+
'@eslint/eslintrc@3.3.1':
1558
+
dependencies:
1559
+
ajv: 6.12.6
1560
+
debug: 4.4.3
1561
+
espree: 10.4.0
1562
+
globals: 14.0.0
1563
+
ignore: 5.3.2
1564
+
import-fresh: 3.3.1
1565
+
js-yaml: 4.1.0
1566
+
minimatch: 3.1.2
1567
+
strip-json-comments: 3.1.1
1568
+
transitivePeerDependencies:
1569
+
- supports-color
1570
+
1571
+
'@eslint/js@9.39.0': {}
1572
+
1573
+
'@eslint/object-schema@2.1.7': {}
1574
+
1575
+
'@eslint/plugin-kit@0.4.1':
1576
+
dependencies:
1577
+
'@eslint/core': 0.17.0
1578
+
levn: 0.4.1
1579
+
1580
+
'@humanfs/core@0.19.1': {}
1581
+
1582
+
'@humanfs/node@0.16.7':
1583
+
dependencies:
1584
+
'@humanfs/core': 0.19.1
1585
+
'@humanwhocodes/retry': 0.4.3
1586
+
1587
+
'@humanwhocodes/module-importer@1.0.1': {}
1588
+
1589
+
'@humanwhocodes/retry@0.4.3': {}
1590
+
1591
+
'@jridgewell/gen-mapping@0.3.13':
1592
+
dependencies:
1593
+
'@jridgewell/sourcemap-codec': 1.5.5
1594
+
'@jridgewell/trace-mapping': 0.3.31
1595
+
1596
+
'@jridgewell/remapping@2.3.5':
1597
+
dependencies:
1598
+
'@jridgewell/gen-mapping': 0.3.13
1599
+
'@jridgewell/trace-mapping': 0.3.31
1600
+
1601
+
'@jridgewell/resolve-uri@3.1.2': {}
1602
+
1603
+
'@jridgewell/sourcemap-codec@1.5.5': {}
1604
+
1605
+
'@jridgewell/trace-mapping@0.3.31':
1606
+
dependencies:
1607
+
'@jridgewell/resolve-uri': 3.1.2
1608
+
'@jridgewell/sourcemap-codec': 1.5.5
1609
+
1610
+
'@noble/secp256k1@3.0.0': {}
1611
+
1612
+
'@nodelib/fs.scandir@2.1.5':
1613
+
dependencies:
1614
+
'@nodelib/fs.stat': 2.0.5
1615
+
run-parallel: 1.2.0
1616
+
1617
+
'@nodelib/fs.stat@2.0.5': {}
1618
+
1619
+
'@nodelib/fs.walk@1.2.8':
1620
+
dependencies:
1621
+
'@nodelib/fs.scandir': 2.1.5
1622
+
fastq: 1.19.1
1623
+
1624
+
'@pds-moover/lexicons@1.0.1':
1625
+
dependencies:
1626
+
'@atproto/lexicon': 0.5.1
1627
+
'@atproto/xrpc': 0.7.5
1628
+
1629
+
'@pds-moover/moover@1.0.5(@atcute/identity@1.1.1)(vite@7.1.12(@types/node@22.19.0))':
1630
+
dependencies:
1631
+
'@atcute/cbor': 2.2.8
1632
+
'@atcute/client': 4.0.5
1633
+
'@atcute/crypto': 2.2.6
1634
+
'@atcute/did-plc': 0.1.7
1635
+
'@atcute/identity-resolver': 1.1.4(@atcute/identity@1.1.1)
1636
+
'@atcute/lexicons': 1.2.2
1637
+
'@atcute/multibase': 1.1.6
1638
+
'@atproto/api': 0.16.11
1639
+
'@pds-moover/lexicons': 1.0.1
1640
+
alpinejs: 3.15.2
1641
+
vite-plugin-full-reload: 1.2.0
1642
+
vite-rs-plugin: 1.0.1(vite@7.1.12(@types/node@22.19.0))
1643
+
transitivePeerDependencies:
1644
+
- '@atcute/identity'
1645
+
- vite
1646
+
1647
+
'@polka/url@1.0.0-next.29': {}
1648
+
1649
+
'@rollup/plugin-commonjs@28.0.9(rollup@4.52.5)':
1650
+
dependencies:
1651
+
'@rollup/pluginutils': 5.3.0(rollup@4.52.5)
1652
+
commondir: 1.0.1
1653
+
estree-walker: 2.0.2
1654
+
fdir: 6.5.0(picomatch@4.0.3)
1655
+
is-reference: 1.2.1
1656
+
magic-string: 0.30.21
1657
+
picomatch: 4.0.3
1658
+
optionalDependencies:
1659
+
rollup: 4.52.5
1660
+
1661
+
'@rollup/plugin-json@6.1.0(rollup@4.52.5)':
1662
+
dependencies:
1663
+
'@rollup/pluginutils': 5.3.0(rollup@4.52.5)
1664
+
optionalDependencies:
1665
+
rollup: 4.52.5
1666
+
1667
+
'@rollup/plugin-node-resolve@16.0.3(rollup@4.52.5)':
1668
+
dependencies:
1669
+
'@rollup/pluginutils': 5.3.0(rollup@4.52.5)
1670
+
'@types/resolve': 1.20.2
1671
+
deepmerge: 4.3.1
1672
+
is-module: 1.0.0
1673
+
resolve: 1.22.11
1674
+
optionalDependencies:
1675
+
rollup: 4.52.5
1676
+
1677
+
'@rollup/pluginutils@5.3.0(rollup@4.52.5)':
1678
+
dependencies:
1679
+
'@types/estree': 1.0.8
1680
+
estree-walker: 2.0.2
1681
+
picomatch: 4.0.3
1682
+
optionalDependencies:
1683
+
rollup: 4.52.5
1684
+
1685
+
'@rollup/rollup-android-arm-eabi@4.52.5':
1686
+
optional: true
1687
+
1688
+
'@rollup/rollup-android-arm64@4.52.5':
1689
+
optional: true
1690
+
1691
+
'@rollup/rollup-darwin-arm64@4.52.5':
1692
+
optional: true
1693
+
1694
+
'@rollup/rollup-darwin-x64@4.52.5':
1695
+
optional: true
1696
+
1697
+
'@rollup/rollup-freebsd-arm64@4.52.5':
1698
+
optional: true
1699
+
1700
+
'@rollup/rollup-freebsd-x64@4.52.5':
1701
+
optional: true
1702
+
1703
+
'@rollup/rollup-linux-arm-gnueabihf@4.52.5':
1704
+
optional: true
1705
+
1706
+
'@rollup/rollup-linux-arm-musleabihf@4.52.5':
1707
+
optional: true
1708
+
1709
+
'@rollup/rollup-linux-arm64-gnu@4.52.5':
1710
+
optional: true
1711
+
1712
+
'@rollup/rollup-linux-arm64-musl@4.52.5':
1713
+
optional: true
1714
+
1715
+
'@rollup/rollup-linux-loong64-gnu@4.52.5':
1716
+
optional: true
1717
+
1718
+
'@rollup/rollup-linux-ppc64-gnu@4.52.5':
1719
+
optional: true
1720
+
1721
+
'@rollup/rollup-linux-riscv64-gnu@4.52.5':
1722
+
optional: true
1723
+
1724
+
'@rollup/rollup-linux-riscv64-musl@4.52.5':
1725
+
optional: true
1726
+
1727
+
'@rollup/rollup-linux-s390x-gnu@4.52.5':
1728
+
optional: true
1729
+
1730
+
'@rollup/rollup-linux-x64-gnu@4.52.5':
1731
+
optional: true
1732
+
1733
+
'@rollup/rollup-linux-x64-musl@4.52.5':
1734
+
optional: true
1735
+
1736
+
'@rollup/rollup-openharmony-arm64@4.52.5':
1737
+
optional: true
1738
+
1739
+
'@rollup/rollup-win32-arm64-msvc@4.52.5':
1740
+
optional: true
1741
+
1742
+
'@rollup/rollup-win32-ia32-msvc@4.52.5':
1743
+
optional: true
1744
+
1745
+
'@rollup/rollup-win32-x64-gnu@4.52.5':
1746
+
optional: true
1747
+
1748
+
'@rollup/rollup-win32-x64-msvc@4.52.5':
1749
+
optional: true
1750
+
1751
+
'@standard-schema/spec@1.0.0': {}
1752
+
1753
+
'@sveltejs/acorn-typescript@1.0.6(acorn@8.15.0)':
1754
+
dependencies:
1755
+
acorn: 8.15.0
1756
+
1757
+
'@sveltejs/adapter-auto@6.1.1(@sveltejs/kit@2.48.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))':
1758
+
dependencies:
1759
+
'@sveltejs/kit': 2.48.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0))
1760
+
1761
+
'@sveltejs/adapter-node@5.4.0(@sveltejs/kit@2.48.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))':
1762
+
dependencies:
1763
+
'@rollup/plugin-commonjs': 28.0.9(rollup@4.52.5)
1764
+
'@rollup/plugin-json': 6.1.0(rollup@4.52.5)
1765
+
'@rollup/plugin-node-resolve': 16.0.3(rollup@4.52.5)
1766
+
'@sveltejs/kit': 2.48.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0))
1767
+
rollup: 4.52.5
1768
+
1769
+
'@sveltejs/kit@2.48.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0))':
1770
+
dependencies:
1771
+
'@standard-schema/spec': 1.0.0
1772
+
'@sveltejs/acorn-typescript': 1.0.6(acorn@8.15.0)
1773
+
'@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0))
1774
+
'@types/cookie': 0.6.0
1775
+
acorn: 8.15.0
1776
+
cookie: 0.6.0
1777
+
devalue: 5.4.2
1778
+
esm-env: 1.2.2
1779
+
kleur: 4.1.5
1780
+
magic-string: 0.30.21
1781
+
mrmime: 2.0.1
1782
+
sade: 1.8.1
1783
+
set-cookie-parser: 2.7.2
1784
+
sirv: 3.0.2
1785
+
svelte: 5.43.2
1786
+
vite: 7.1.12(@types/node@22.19.0)
1787
+
1788
+
'@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0))':
1789
+
dependencies:
1790
+
'@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0))
1791
+
debug: 4.4.3
1792
+
svelte: 5.43.2
1793
+
vite: 7.1.12(@types/node@22.19.0)
1794
+
transitivePeerDependencies:
1795
+
- supports-color
1796
+
1797
+
'@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0))':
1798
+
dependencies:
1799
+
'@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0)))(svelte@5.43.2)(vite@7.1.12(@types/node@22.19.0))
1800
+
debug: 4.4.3
1801
+
deepmerge: 4.3.1
1802
+
magic-string: 0.30.21
1803
+
svelte: 5.43.2
1804
+
vite: 7.1.12(@types/node@22.19.0)
1805
+
vitefu: 1.1.1(vite@7.1.12(@types/node@22.19.0))
1806
+
transitivePeerDependencies:
1807
+
- supports-color
1808
+
1809
+
'@types/cookie@0.6.0': {}
1810
+
1811
+
'@types/estree@1.0.8': {}
1812
+
1813
+
'@types/json-schema@7.0.15': {}
1814
+
1815
+
'@types/node@22.19.0':
1816
+
dependencies:
1817
+
undici-types: 6.21.0
1818
+
1819
+
'@types/resolve@1.20.2': {}
1820
+
1821
+
'@typescript-eslint/eslint-plugin@8.46.3(@typescript-eslint/parser@8.46.3(eslint@9.39.0)(typescript@5.9.3))(eslint@9.39.0)(typescript@5.9.3)':
1822
+
dependencies:
1823
+
'@eslint-community/regexpp': 4.12.2
1824
+
'@typescript-eslint/parser': 8.46.3(eslint@9.39.0)(typescript@5.9.3)
1825
+
'@typescript-eslint/scope-manager': 8.46.3
1826
+
'@typescript-eslint/type-utils': 8.46.3(eslint@9.39.0)(typescript@5.9.3)
1827
+
'@typescript-eslint/utils': 8.46.3(eslint@9.39.0)(typescript@5.9.3)
1828
+
'@typescript-eslint/visitor-keys': 8.46.3
1829
+
eslint: 9.39.0
1830
+
graphemer: 1.4.0
1831
+
ignore: 7.0.5
1832
+
natural-compare: 1.4.0
1833
+
ts-api-utils: 2.1.0(typescript@5.9.3)
1834
+
typescript: 5.9.3
1835
+
transitivePeerDependencies:
1836
+
- supports-color
1837
+
1838
+
'@typescript-eslint/parser@8.46.3(eslint@9.39.0)(typescript@5.9.3)':
1839
+
dependencies:
1840
+
'@typescript-eslint/scope-manager': 8.46.3
1841
+
'@typescript-eslint/types': 8.46.3
1842
+
'@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3)
1843
+
'@typescript-eslint/visitor-keys': 8.46.3
1844
+
debug: 4.4.3
1845
+
eslint: 9.39.0
1846
+
typescript: 5.9.3
1847
+
transitivePeerDependencies:
1848
+
- supports-color
1849
+
1850
+
'@typescript-eslint/project-service@8.46.3(typescript@5.9.3)':
1851
+
dependencies:
1852
+
'@typescript-eslint/tsconfig-utils': 8.46.3(typescript@5.9.3)
1853
+
'@typescript-eslint/types': 8.46.3
1854
+
debug: 4.4.3
1855
+
typescript: 5.9.3
1856
+
transitivePeerDependencies:
1857
+
- supports-color
1858
+
1859
+
'@typescript-eslint/scope-manager@8.46.3':
1860
+
dependencies:
1861
+
'@typescript-eslint/types': 8.46.3
1862
+
'@typescript-eslint/visitor-keys': 8.46.3
1863
+
1864
+
'@typescript-eslint/tsconfig-utils@8.46.3(typescript@5.9.3)':
1865
+
dependencies:
1866
+
typescript: 5.9.3
1867
+
1868
+
'@typescript-eslint/type-utils@8.46.3(eslint@9.39.0)(typescript@5.9.3)':
1869
+
dependencies:
1870
+
'@typescript-eslint/types': 8.46.3
1871
+
'@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3)
1872
+
'@typescript-eslint/utils': 8.46.3(eslint@9.39.0)(typescript@5.9.3)
1873
+
debug: 4.4.3
1874
+
eslint: 9.39.0
1875
+
ts-api-utils: 2.1.0(typescript@5.9.3)
1876
+
typescript: 5.9.3
1877
+
transitivePeerDependencies:
1878
+
- supports-color
1879
+
1880
+
'@typescript-eslint/types@8.46.3': {}
1881
+
1882
+
'@typescript-eslint/typescript-estree@8.46.3(typescript@5.9.3)':
1883
+
dependencies:
1884
+
'@typescript-eslint/project-service': 8.46.3(typescript@5.9.3)
1885
+
'@typescript-eslint/tsconfig-utils': 8.46.3(typescript@5.9.3)
1886
+
'@typescript-eslint/types': 8.46.3
1887
+
'@typescript-eslint/visitor-keys': 8.46.3
1888
+
debug: 4.4.3
1889
+
fast-glob: 3.3.3
1890
+
is-glob: 4.0.3
1891
+
minimatch: 9.0.5
1892
+
semver: 7.7.3
1893
+
ts-api-utils: 2.1.0(typescript@5.9.3)
1894
+
typescript: 5.9.3
1895
+
transitivePeerDependencies:
1896
+
- supports-color
1897
+
1898
+
'@typescript-eslint/utils@8.46.3(eslint@9.39.0)(typescript@5.9.3)':
1899
+
dependencies:
1900
+
'@eslint-community/eslint-utils': 4.9.0(eslint@9.39.0)
1901
+
'@typescript-eslint/scope-manager': 8.46.3
1902
+
'@typescript-eslint/types': 8.46.3
1903
+
'@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3)
1904
+
eslint: 9.39.0
1905
+
typescript: 5.9.3
1906
+
transitivePeerDependencies:
1907
+
- supports-color
1908
+
1909
+
'@typescript-eslint/visitor-keys@8.46.3':
1910
+
dependencies:
1911
+
'@typescript-eslint/types': 8.46.3
1912
+
eslint-visitor-keys: 4.2.1
1913
+
1914
+
'@vue/reactivity@3.1.5':
1915
+
dependencies:
1916
+
'@vue/shared': 3.1.5
1917
+
1918
+
'@vue/shared@3.1.5': {}
1919
+
1920
+
acorn-jsx@5.3.2(acorn@8.15.0):
1921
+
dependencies:
1922
+
acorn: 8.15.0
1923
+
1924
+
acorn@8.15.0: {}
1925
+
1926
+
ajv@6.12.6:
1927
+
dependencies:
1928
+
fast-deep-equal: 3.1.3
1929
+
fast-json-stable-stringify: 2.1.0
1930
+
json-schema-traverse: 0.4.1
1931
+
uri-js: 4.4.1
1932
+
1933
+
alpinejs@3.15.2:
1934
+
dependencies:
1935
+
'@vue/reactivity': 3.1.5
1936
+
1937
+
ansi-styles@4.3.0:
1938
+
dependencies:
1939
+
color-convert: 2.0.1
1940
+
1941
+
argparse@2.0.1: {}
1942
+
1943
+
aria-query@5.3.2: {}
1944
+
1945
+
await-lock@2.2.2: {}
1946
+
1947
+
axobject-query@4.1.0: {}
1948
+
1949
+
balanced-match@1.0.2: {}
1950
+
1951
+
brace-expansion@1.1.12:
1952
+
dependencies:
1953
+
balanced-match: 1.0.2
1954
+
concat-map: 0.0.1
1955
+
1956
+
brace-expansion@2.0.2:
1957
+
dependencies:
1958
+
balanced-match: 1.0.2
1959
+
1960
+
braces@3.0.3:
1961
+
dependencies:
1962
+
fill-range: 7.1.1
1963
+
1964
+
callsites@3.1.0: {}
1965
+
1966
+
chalk@4.1.2:
1967
+
dependencies:
1968
+
ansi-styles: 4.3.0
1969
+
supports-color: 7.2.0
1970
+
1971
+
chokidar@4.0.3:
1972
+
dependencies:
1973
+
readdirp: 4.1.2
1974
+
1975
+
clsx@2.1.1: {}
1976
+
1977
+
color-convert@2.0.1:
1978
+
dependencies:
1979
+
color-name: 1.1.4
1980
+
1981
+
color-name@1.1.4: {}
1982
+
1983
+
commondir@1.0.1: {}
1984
+
1985
+
concat-map@0.0.1: {}
1986
+
1987
+
cookie@0.6.0: {}
1988
+
1989
+
cross-spawn@7.0.6:
1990
+
dependencies:
1991
+
path-key: 3.1.1
1992
+
shebang-command: 2.0.0
1993
+
which: 2.0.2
1994
+
1995
+
cssesc@3.0.0: {}
1996
+
1997
+
debug@4.4.3:
1998
+
dependencies:
1999
+
ms: 2.1.3
2000
+
2001
+
deep-is@0.1.4: {}
2002
+
2003
+
deepmerge@4.3.1: {}
2004
+
2005
+
devalue@5.4.2: {}
2006
+
2007
+
esbuild@0.25.12:
2008
+
optionalDependencies:
2009
+
'@esbuild/aix-ppc64': 0.25.12
2010
+
'@esbuild/android-arm': 0.25.12
2011
+
'@esbuild/android-arm64': 0.25.12
2012
+
'@esbuild/android-x64': 0.25.12
2013
+
'@esbuild/darwin-arm64': 0.25.12
2014
+
'@esbuild/darwin-x64': 0.25.12
2015
+
'@esbuild/freebsd-arm64': 0.25.12
2016
+
'@esbuild/freebsd-x64': 0.25.12
2017
+
'@esbuild/linux-arm': 0.25.12
2018
+
'@esbuild/linux-arm64': 0.25.12
2019
+
'@esbuild/linux-ia32': 0.25.12
2020
+
'@esbuild/linux-loong64': 0.25.12
2021
+
'@esbuild/linux-mips64el': 0.25.12
2022
+
'@esbuild/linux-ppc64': 0.25.12
2023
+
'@esbuild/linux-riscv64': 0.25.12
2024
+
'@esbuild/linux-s390x': 0.25.12
2025
+
'@esbuild/linux-x64': 0.25.12
2026
+
'@esbuild/netbsd-arm64': 0.25.12
2027
+
'@esbuild/netbsd-x64': 0.25.12
2028
+
'@esbuild/openbsd-arm64': 0.25.12
2029
+
'@esbuild/openbsd-x64': 0.25.12
2030
+
'@esbuild/openharmony-arm64': 0.25.12
2031
+
'@esbuild/sunos-x64': 0.25.12
2032
+
'@esbuild/win32-arm64': 0.25.12
2033
+
'@esbuild/win32-ia32': 0.25.12
2034
+
'@esbuild/win32-x64': 0.25.12
2035
+
2036
+
escape-string-regexp@4.0.0: {}
2037
+
2038
+
eslint-plugin-svelte@3.13.0(eslint@9.39.0)(svelte@5.43.2):
2039
+
dependencies:
2040
+
'@eslint-community/eslint-utils': 4.9.0(eslint@9.39.0)
2041
+
'@jridgewell/sourcemap-codec': 1.5.5
2042
+
eslint: 9.39.0
2043
+
esutils: 2.0.3
2044
+
globals: 16.5.0
2045
+
known-css-properties: 0.37.0
2046
+
postcss: 8.5.6
2047
+
postcss-load-config: 3.1.4(postcss@8.5.6)
2048
+
postcss-safe-parser: 7.0.1(postcss@8.5.6)
2049
+
semver: 7.7.3
2050
+
svelte-eslint-parser: 1.4.0(svelte@5.43.2)
2051
+
optionalDependencies:
2052
+
svelte: 5.43.2
2053
+
transitivePeerDependencies:
2054
+
- ts-node
2055
+
2056
+
eslint-scope@8.4.0:
2057
+
dependencies:
2058
+
esrecurse: 4.3.0
2059
+
estraverse: 5.3.0
2060
+
2061
+
eslint-visitor-keys@3.4.3: {}
2062
+
2063
+
eslint-visitor-keys@4.2.1: {}
2064
+
2065
+
eslint@9.39.0:
2066
+
dependencies:
2067
+
'@eslint-community/eslint-utils': 4.9.0(eslint@9.39.0)
2068
+
'@eslint-community/regexpp': 4.12.2
2069
+
'@eslint/config-array': 0.21.1
2070
+
'@eslint/config-helpers': 0.4.2
2071
+
'@eslint/core': 0.17.0
2072
+
'@eslint/eslintrc': 3.3.1
2073
+
'@eslint/js': 9.39.0
2074
+
'@eslint/plugin-kit': 0.4.1
2075
+
'@humanfs/node': 0.16.7
2076
+
'@humanwhocodes/module-importer': 1.0.1
2077
+
'@humanwhocodes/retry': 0.4.3
2078
+
'@types/estree': 1.0.8
2079
+
ajv: 6.12.6
2080
+
chalk: 4.1.2
2081
+
cross-spawn: 7.0.6
2082
+
debug: 4.4.3
2083
+
escape-string-regexp: 4.0.0
2084
+
eslint-scope: 8.4.0
2085
+
eslint-visitor-keys: 4.2.1
2086
+
espree: 10.4.0
2087
+
esquery: 1.6.0
2088
+
esutils: 2.0.3
2089
+
fast-deep-equal: 3.1.3
2090
+
file-entry-cache: 8.0.0
2091
+
find-up: 5.0.0
2092
+
glob-parent: 6.0.2
2093
+
ignore: 5.3.2
2094
+
imurmurhash: 0.1.4
2095
+
is-glob: 4.0.3
2096
+
json-stable-stringify-without-jsonify: 1.0.1
2097
+
lodash.merge: 4.6.2
2098
+
minimatch: 3.1.2
2099
+
natural-compare: 1.4.0
2100
+
optionator: 0.9.4
2101
+
transitivePeerDependencies:
2102
+
- supports-color
2103
+
2104
+
esm-env@1.2.2: {}
2105
+
2106
+
espree@10.4.0:
2107
+
dependencies:
2108
+
acorn: 8.15.0
2109
+
acorn-jsx: 5.3.2(acorn@8.15.0)
2110
+
eslint-visitor-keys: 4.2.1
2111
+
2112
+
esquery@1.6.0:
2113
+
dependencies:
2114
+
estraverse: 5.3.0
2115
+
2116
+
esrap@2.1.2:
2117
+
dependencies:
2118
+
'@jridgewell/sourcemap-codec': 1.5.5
2119
+
2120
+
esrecurse@4.3.0:
2121
+
dependencies:
2122
+
estraverse: 5.3.0
2123
+
2124
+
estraverse@5.3.0: {}
2125
+
2126
+
estree-walker@2.0.2: {}
2127
+
2128
+
esutils@2.0.3: {}
2129
+
2130
+
fast-deep-equal@3.1.3: {}
2131
+
2132
+
fast-glob@3.3.3:
2133
+
dependencies:
2134
+
'@nodelib/fs.stat': 2.0.5
2135
+
'@nodelib/fs.walk': 1.2.8
2136
+
glob-parent: 5.1.2
2137
+
merge2: 1.4.1
2138
+
micromatch: 4.0.8
2139
+
2140
+
fast-json-stable-stringify@2.1.0: {}
2141
+
2142
+
fast-levenshtein@2.0.6: {}
2143
+
2144
+
fastq@1.19.1:
2145
+
dependencies:
2146
+
reusify: 1.1.0
2147
+
2148
+
fdir@6.5.0(picomatch@4.0.3):
2149
+
optionalDependencies:
2150
+
picomatch: 4.0.3
2151
+
2152
+
file-entry-cache@8.0.0:
2153
+
dependencies:
2154
+
flat-cache: 4.0.1
2155
+
2156
+
fill-range@7.1.1:
2157
+
dependencies:
2158
+
to-regex-range: 5.0.1
2159
+
2160
+
find-up@5.0.0:
2161
+
dependencies:
2162
+
locate-path: 6.0.0
2163
+
path-exists: 4.0.0
2164
+
2165
+
flat-cache@4.0.1:
2166
+
dependencies:
2167
+
flatted: 3.3.3
2168
+
keyv: 4.5.4
2169
+
2170
+
flatted@3.3.3: {}
2171
+
2172
+
fsevents@2.3.3:
2173
+
optional: true
2174
+
2175
+
function-bind@1.1.2: {}
2176
+
2177
+
glob-parent@5.1.2:
2178
+
dependencies:
2179
+
is-glob: 4.0.3
2180
+
2181
+
glob-parent@6.0.2:
2182
+
dependencies:
2183
+
is-glob: 4.0.3
2184
+
2185
+
globals@14.0.0: {}
2186
+
2187
+
globals@16.5.0: {}
2188
+
2189
+
graphemer@1.4.0: {}
2190
+
2191
+
has-flag@4.0.0: {}
2192
+
2193
+
hasown@2.0.2:
2194
+
dependencies:
2195
+
function-bind: 1.1.2
2196
+
2197
+
ignore@5.3.2: {}
2198
+
2199
+
ignore@7.0.5: {}
2200
+
2201
+
import-fresh@3.3.1:
2202
+
dependencies:
2203
+
parent-module: 1.0.1
2204
+
resolve-from: 4.0.0
2205
+
2206
+
imurmurhash@0.1.4: {}
2207
+
2208
+
is-core-module@2.16.1:
2209
+
dependencies:
2210
+
hasown: 2.0.2
2211
+
2212
+
is-extglob@2.1.1: {}
2213
+
2214
+
is-glob@4.0.3:
2215
+
dependencies:
2216
+
is-extglob: 2.1.1
2217
+
2218
+
is-module@1.0.0: {}
2219
+
2220
+
is-number@7.0.0: {}
2221
+
2222
+
is-reference@1.2.1:
2223
+
dependencies:
2224
+
'@types/estree': 1.0.8
2225
+
2226
+
is-reference@3.0.3:
2227
+
dependencies:
2228
+
'@types/estree': 1.0.8
2229
+
2230
+
isexe@2.0.0: {}
2231
+
2232
+
iso-datestring-validator@2.2.2: {}
2233
+
2234
+
js-yaml@4.1.0:
2235
+
dependencies:
2236
+
argparse: 2.0.1
2237
+
2238
+
json-buffer@3.0.1: {}
2239
+
2240
+
json-schema-traverse@0.4.1: {}
2241
+
2242
+
json-stable-stringify-without-jsonify@1.0.1: {}
2243
+
2244
+
keyv@4.5.4:
2245
+
dependencies:
2246
+
json-buffer: 3.0.1
2247
+
2248
+
kleur@4.1.5: {}
2249
+
2250
+
known-css-properties@0.37.0: {}
2251
+
2252
+
levn@0.4.1:
2253
+
dependencies:
2254
+
prelude-ls: 1.2.1
2255
+
type-check: 0.4.0
2256
+
2257
+
lilconfig@2.1.0: {}
2258
+
2259
+
locate-character@3.0.0: {}
2260
+
2261
+
locate-path@6.0.0:
2262
+
dependencies:
2263
+
p-locate: 5.0.0
2264
+
2265
+
lodash.merge@4.6.2: {}
2266
+
2267
+
magic-string@0.30.21:
2268
+
dependencies:
2269
+
'@jridgewell/sourcemap-codec': 1.5.5
2270
+
2271
+
merge2@1.4.1: {}
2272
+
2273
+
micromatch@4.0.8:
2274
+
dependencies:
2275
+
braces: 3.0.3
2276
+
picomatch: 2.3.1
2277
+
2278
+
minimatch@3.1.2:
2279
+
dependencies:
2280
+
brace-expansion: 1.1.12
2281
+
2282
+
minimatch@9.0.5:
2283
+
dependencies:
2284
+
brace-expansion: 2.0.2
2285
+
2286
+
mri@1.2.0: {}
2287
+
2288
+
mrmime@2.0.1: {}
2289
+
2290
+
ms@2.1.3: {}
2291
+
2292
+
multiformats@9.9.0: {}
2293
+
2294
+
nanoid@3.3.11: {}
2295
+
2296
+
natural-compare@1.4.0: {}
2297
+
2298
+
optionator@0.9.4:
2299
+
dependencies:
2300
+
deep-is: 0.1.4
2301
+
fast-levenshtein: 2.0.6
2302
+
levn: 0.4.1
2303
+
prelude-ls: 1.2.1
2304
+
type-check: 0.4.0
2305
+
word-wrap: 1.2.5
2306
+
2307
+
p-limit@3.1.0:
2308
+
dependencies:
2309
+
yocto-queue: 0.1.0
2310
+
2311
+
p-locate@5.0.0:
2312
+
dependencies:
2313
+
p-limit: 3.1.0
2314
+
2315
+
parent-module@1.0.1:
2316
+
dependencies:
2317
+
callsites: 3.1.0
2318
+
2319
+
path-exists@4.0.0: {}
2320
+
2321
+
path-key@3.1.1: {}
2322
+
2323
+
path-parse@1.0.7: {}
2324
+
2325
+
picocolors@1.1.1: {}
2326
+
2327
+
picomatch@2.3.1: {}
2328
+
2329
+
picomatch@4.0.3: {}
2330
+
2331
+
postcss-load-config@3.1.4(postcss@8.5.6):
2332
+
dependencies:
2333
+
lilconfig: 2.1.0
2334
+
yaml: 1.10.2
2335
+
optionalDependencies:
2336
+
postcss: 8.5.6
2337
+
2338
+
postcss-safe-parser@7.0.1(postcss@8.5.6):
2339
+
dependencies:
2340
+
postcss: 8.5.6
2341
+
2342
+
postcss-scss@4.0.9(postcss@8.5.6):
2343
+
dependencies:
2344
+
postcss: 8.5.6
2345
+
2346
+
postcss-selector-parser@7.1.0:
2347
+
dependencies:
2348
+
cssesc: 3.0.0
2349
+
util-deprecate: 1.0.2
2350
+
2351
+
postcss@8.5.6:
2352
+
dependencies:
2353
+
nanoid: 3.3.11
2354
+
picocolors: 1.1.1
2355
+
source-map-js: 1.2.1
2356
+
2357
+
prelude-ls@1.2.1: {}
2358
+
2359
+
punycode@2.3.1: {}
2360
+
2361
+
queue-microtask@1.2.3: {}
2362
+
2363
+
readdirp@4.1.2: {}
2364
+
2365
+
resolve-from@4.0.0: {}
2366
+
2367
+
resolve@1.22.11:
2368
+
dependencies:
2369
+
is-core-module: 2.16.1
2370
+
path-parse: 1.0.7
2371
+
supports-preserve-symlinks-flag: 1.0.0
2372
+
2373
+
reusify@1.1.0: {}
2374
+
2375
+
rollup@4.52.5:
2376
+
dependencies:
2377
+
'@types/estree': 1.0.8
2378
+
optionalDependencies:
2379
+
'@rollup/rollup-android-arm-eabi': 4.52.5
2380
+
'@rollup/rollup-android-arm64': 4.52.5
2381
+
'@rollup/rollup-darwin-arm64': 4.52.5
2382
+
'@rollup/rollup-darwin-x64': 4.52.5
2383
+
'@rollup/rollup-freebsd-arm64': 4.52.5
2384
+
'@rollup/rollup-freebsd-x64': 4.52.5
2385
+
'@rollup/rollup-linux-arm-gnueabihf': 4.52.5
2386
+
'@rollup/rollup-linux-arm-musleabihf': 4.52.5
2387
+
'@rollup/rollup-linux-arm64-gnu': 4.52.5
2388
+
'@rollup/rollup-linux-arm64-musl': 4.52.5
2389
+
'@rollup/rollup-linux-loong64-gnu': 4.52.5
2390
+
'@rollup/rollup-linux-ppc64-gnu': 4.52.5
2391
+
'@rollup/rollup-linux-riscv64-gnu': 4.52.5
2392
+
'@rollup/rollup-linux-riscv64-musl': 4.52.5
2393
+
'@rollup/rollup-linux-s390x-gnu': 4.52.5
2394
+
'@rollup/rollup-linux-x64-gnu': 4.52.5
2395
+
'@rollup/rollup-linux-x64-musl': 4.52.5
2396
+
'@rollup/rollup-openharmony-arm64': 4.52.5
2397
+
'@rollup/rollup-win32-arm64-msvc': 4.52.5
2398
+
'@rollup/rollup-win32-ia32-msvc': 4.52.5
2399
+
'@rollup/rollup-win32-x64-gnu': 4.52.5
2400
+
'@rollup/rollup-win32-x64-msvc': 4.52.5
2401
+
fsevents: 2.3.3
2402
+
2403
+
run-parallel@1.2.0:
2404
+
dependencies:
2405
+
queue-microtask: 1.2.3
2406
+
2407
+
sade@1.8.1:
2408
+
dependencies:
2409
+
mri: 1.2.0
2410
+
2411
+
semver@7.7.3: {}
2412
+
2413
+
set-cookie-parser@2.7.2: {}
2414
+
2415
+
shebang-command@2.0.0:
2416
+
dependencies:
2417
+
shebang-regex: 3.0.0
2418
+
2419
+
shebang-regex@3.0.0: {}
2420
+
2421
+
sirv@3.0.2:
2422
+
dependencies:
2423
+
'@polka/url': 1.0.0-next.29
2424
+
mrmime: 2.0.1
2425
+
totalist: 3.0.1
2426
+
2427
+
source-map-js@1.2.1: {}
2428
+
2429
+
strip-json-comments@3.1.1: {}
2430
+
2431
+
supports-color@7.2.0:
2432
+
dependencies:
2433
+
has-flag: 4.0.0
2434
+
2435
+
supports-preserve-symlinks-flag@1.0.0: {}
2436
+
2437
+
svelte-check@4.3.3(picomatch@4.0.3)(svelte@5.43.2)(typescript@5.9.3):
2438
+
dependencies:
2439
+
'@jridgewell/trace-mapping': 0.3.31
2440
+
chokidar: 4.0.3
2441
+
fdir: 6.5.0(picomatch@4.0.3)
2442
+
picocolors: 1.1.1
2443
+
sade: 1.8.1
2444
+
svelte: 5.43.2
2445
+
typescript: 5.9.3
2446
+
transitivePeerDependencies:
2447
+
- picomatch
2448
+
2449
+
svelte-eslint-parser@1.4.0(svelte@5.43.2):
2450
+
dependencies:
2451
+
eslint-scope: 8.4.0
2452
+
eslint-visitor-keys: 4.2.1
2453
+
espree: 10.4.0
2454
+
postcss: 8.5.6
2455
+
postcss-scss: 4.0.9(postcss@8.5.6)
2456
+
postcss-selector-parser: 7.1.0
2457
+
optionalDependencies:
2458
+
svelte: 5.43.2
2459
+
2460
+
svelte@5.43.2:
2461
+
dependencies:
2462
+
'@jridgewell/remapping': 2.3.5
2463
+
'@jridgewell/sourcemap-codec': 1.5.5
2464
+
'@sveltejs/acorn-typescript': 1.0.6(acorn@8.15.0)
2465
+
'@types/estree': 1.0.8
2466
+
acorn: 8.15.0
2467
+
aria-query: 5.3.2
2468
+
axobject-query: 4.1.0
2469
+
clsx: 2.1.1
2470
+
esm-env: 1.2.2
2471
+
esrap: 2.1.2
2472
+
is-reference: 3.0.3
2473
+
locate-character: 3.0.0
2474
+
magic-string: 0.30.21
2475
+
zimmerframe: 1.1.4
2476
+
2477
+
tinyglobby@0.2.15:
2478
+
dependencies:
2479
+
fdir: 6.5.0(picomatch@4.0.3)
2480
+
picomatch: 4.0.3
2481
+
2482
+
tlds@1.261.0: {}
2483
+
2484
+
to-regex-range@5.0.1:
2485
+
dependencies:
2486
+
is-number: 7.0.0
2487
+
2488
+
totalist@3.0.1: {}
2489
+
2490
+
ts-api-utils@2.1.0(typescript@5.9.3):
2491
+
dependencies:
2492
+
typescript: 5.9.3
2493
+
2494
+
type-check@0.4.0:
2495
+
dependencies:
2496
+
prelude-ls: 1.2.1
2497
+
2498
+
typescript-eslint@8.46.3(eslint@9.39.0)(typescript@5.9.3):
2499
+
dependencies:
2500
+
'@typescript-eslint/eslint-plugin': 8.46.3(@typescript-eslint/parser@8.46.3(eslint@9.39.0)(typescript@5.9.3))(eslint@9.39.0)(typescript@5.9.3)
2501
+
'@typescript-eslint/parser': 8.46.3(eslint@9.39.0)(typescript@5.9.3)
2502
+
'@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3)
2503
+
'@typescript-eslint/utils': 8.46.3(eslint@9.39.0)(typescript@5.9.3)
2504
+
eslint: 9.39.0
2505
+
typescript: 5.9.3
2506
+
transitivePeerDependencies:
2507
+
- supports-color
2508
+
2509
+
typescript@5.9.3: {}
2510
+
2511
+
uint8arrays@3.0.0:
2512
+
dependencies:
2513
+
multiformats: 9.9.0
2514
+
2515
+
undici-types@6.21.0: {}
2516
+
2517
+
uri-js@4.4.1:
2518
+
dependencies:
2519
+
punycode: 2.3.1
2520
+
2521
+
util-deprecate@1.0.2: {}
2522
+
2523
+
vite-plugin-full-reload@1.2.0:
2524
+
dependencies:
2525
+
picocolors: 1.1.1
2526
+
picomatch: 2.3.1
2527
+
2528
+
vite-rs-plugin@1.0.1(vite@7.1.12(@types/node@22.19.0)):
2529
+
dependencies:
2530
+
vite: 7.1.12(@types/node@22.19.0)
2531
+
vite-plugin-full-reload: 1.2.0
2532
+
2533
+
vite@7.1.12(@types/node@22.19.0):
2534
+
dependencies:
2535
+
esbuild: 0.25.12
2536
+
fdir: 6.5.0(picomatch@4.0.3)
2537
+
picomatch: 4.0.3
2538
+
postcss: 8.5.6
2539
+
rollup: 4.52.5
2540
+
tinyglobby: 0.2.15
2541
+
optionalDependencies:
2542
+
'@types/node': 22.19.0
2543
+
fsevents: 2.3.3
2544
+
2545
+
vitefu@1.1.1(vite@7.1.12(@types/node@22.19.0)):
2546
+
optionalDependencies:
2547
+
vite: 7.1.12(@types/node@22.19.0)
2548
+
2549
+
which@2.0.2:
2550
+
dependencies:
2551
+
isexe: 2.0.0
2552
+
2553
+
word-wrap@1.2.5: {}
2554
+
2555
+
yaml@1.10.2: {}
2556
+
2557
+
yocto-queue@0.1.0: {}
2558
+
2559
+
zimmerframe@1.1.4: {}
2560
+
2561
+
zod@3.25.76: {}
+8
-8
web-ui/src/app.html
+8
-8
web-ui/src/app.html
···
1
1
<!doctype html>
2
2
<html lang="en">
3
-
<head>
4
-
<meta charset="utf-8" />
5
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
6
-
%sveltekit.head%
7
-
</head>
8
-
<body data-sveltekit-preload-data="hover">
9
-
<div style="display: contents">%sveltekit.body%</div>
10
-
</body>
3
+
<head>
4
+
<meta charset="utf-8"/>
5
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
6
+
%sveltekit.head%
7
+
</head>
8
+
<body data-sveltekit-preload-data="hover">
9
+
<div style="display: contents">%sveltekit.body%</div>
10
+
</body>
11
11
</html>
+33
web-ui/src/lib/assets/style.css
+33
web-ui/src/lib/assets/style.css
···
89
89
box-sizing: border-box;
90
90
}
91
91
92
+
/* Input group for handle with domain dropdown */
93
+
.input-group {
94
+
display: flex;
95
+
width: 100%;
96
+
}
97
+
98
+
.input-group input {
99
+
flex: 1;
100
+
border-top-right-radius: 0;
101
+
border-bottom-right-radius: 0;
102
+
border-right: none;
103
+
}
104
+
105
+
.input-group .domain-select {
106
+
padding: 8px;
107
+
border: 1px solid rgba(128, 128, 128, 0.5);
108
+
border-top-left-radius: 0;
109
+
border-bottom-left-radius: 0;
110
+
border-top-right-radius: 4px;
111
+
border-bottom-right-radius: 4px;
112
+
background-color: #1a1a1a;
113
+
color: rgba(255, 255, 255, 0.87);
114
+
cursor: pointer;
115
+
min-width: 120px;
116
+
}
117
+
118
+
@media (prefers-color-scheme: light) {
119
+
.input-group .domain-select {
120
+
background-color: #f9f9f9;
121
+
color: #213547;
122
+
}
123
+
}
124
+
92
125
.cow-image {
93
126
height: 150px;
94
127
margin: 20px 0 8px 0;
+1
-1
web-ui/src/lib/components/OgImage.svelte
+1
-1
web-ui/src/lib/components/OgImage.svelte
+2
-2
web-ui/src/routes/+page.ts
+2
-2
web-ui/src/routes/+page.ts
···
1
1
import {Client, ok, simpleFetchHandler} from '@atcute/client';
2
2
import {ComPdsmooverBackupDescribeServer} from '@pds-moover/lexicons';
3
3
import type {PageLoad} from './$types';
4
-
import {PUBLIC_XRPC_BASE} from '$env/static/public';
4
+
import {env} from '$env/dynamic/public';
5
5
import type {InferXRPCBodyOutput} from '@atcute/lexicons';
6
6
7
7
export const load: PageLoad = async () => {
8
-
const handler = simpleFetchHandler({service: `https://${PUBLIC_XRPC_BASE}`});
8
+
const handler = simpleFetchHandler({service: `https://${env.PUBLIC_XRPC_BASE}`});
9
9
const rpc = new Client({handler});
10
10
return await ok(
11
11
//@ts-expect-error: says it's not assignable to never
+2
-2
web-ui/src/routes/backups/+page.svelte
+2
-2
web-ui/src/routes/backups/+page.svelte
···
6
6
import LoadingSpinner from '$lib/components/LoadingSpinner.svelte';
7
7
import type {InferXRPCBodyOutput} from '@atcute/lexicons';
8
8
import {ComPdsmooverBackupGetRepoStatus} from '@pds-moover/lexicons';
9
-
import {PUBLIC_XRPC_BASE} from '$env/static/public';
9
+
import {env} from '$env/dynamic/public';
10
10
11
11
12
12
// Service instances
13
-
let backupService = $state(new BackupService(`did:web:${PUBLIC_XRPC_BASE}`));
13
+
let backupService = $state(new BackupService(`did:web:${env.PUBLIC_XRPC_BASE}`));
14
14
let plcOps = $state(new PlcOps());
15
15
16
16
// State variables
+1
-1
web-ui/src/routes/info/+page.svelte
+1
-1
web-ui/src/routes/info/+page.svelte
···
60
60
and enter it on PDS MOOver, this is the final step.
61
61
</li>
62
62
<li>Your data will not be deleted from Bluesky(or your previous PDS) during migration. If you find you
63
-
are missing any pictures or videos after the move you can use the <a href="/missing">Missing
63
+
are missing any pictures or videos after the move you can use the <a href="/missing-blobs">Missing
64
64
tool</a> to recover those from your previous PDS.
65
65
</li>
66
66
</ul>
-267
web-ui/src/routes/moover/+page.svelte
-267
web-ui/src/routes/moover/+page.svelte
···
1
-
<script lang="ts">
2
-
import MooHeader from '$lib/components/MooHeader.svelte';
3
-
import OgImage from '$lib/components/OgImage.svelte';
4
-
import {resolve} from '$app/paths';
5
-
import {Migrator} from '@pds-moover/moover';
6
-
import SignThePapers from './SignThePapers.svelte';
7
-
8
-
let formData = $state({
9
-
handle: '',
10
-
password: '',
11
-
newPds: '',
12
-
newEmail: '',
13
-
newHandle: '',
14
-
inviteCode: null,
15
-
twoFactorCode: null,
16
-
confirmation: false,
17
-
// Advanced options
18
-
createNewAccount: true,
19
-
migrateRepo: true,
20
-
migrateBlobs: true,
21
-
migrateMissingBlobs: true,
22
-
migratePrefs: true,
23
-
migratePlcRecord: true,
24
-
});
25
-
26
-
let migrator = $state(new Migrator());
27
-
28
-
//UI state
29
-
let showTwoFactorCodeInput = $state(false);
30
-
let showAdvance = $state(false);
31
-
let showStatusMessage = $state(false);
32
-
let askForPlcToken = $state(false);
33
-
let disableSubmit = $state(false);
34
-
35
-
let errorMessage: null | string = $state(null);
36
-
let statusMessage: null | string = $state(null);
37
-
38
-
const updateStatusHandler = (status: string) => {
39
-
statusMessage = status;
40
-
}
41
-
42
-
async function submitMoove(event: SubmitEvent & { currentTarget: EventTarget & HTMLFormElement }) {
43
-
event.preventDefault();
44
-
disableSubmit = true;
45
-
errorMessage = null;
46
-
showStatusMessage = false;
47
-
48
-
if (!formData.confirmation) {
49
-
errorMessage = 'Please confirm that you understand the risks of doing an account migration';
50
-
disableSubmit = false;
51
-
return;
52
-
}
53
-
54
-
try {
55
-
56
-
if (showTwoFactorCodeInput) {
57
-
if (showTwoFactorCodeInput === null) {
58
-
errorMessage = 'Please enter the 2FA that was sent to your email.'
59
-
disableSubmit = false;
60
-
return;
61
-
}
62
-
}
63
-
64
-
// Advance options from $state
65
-
migrator.createNewAccount = formData.createNewAccount;
66
-
migrator.migrateRepo = formData.migrateRepo;
67
-
migrator.migrateBlobs = formData.migrateBlobs;
68
-
migrator.migrateMissingBlobs = formData.migrateMissingBlobs;
69
-
migrator.migratePrefs = formData.migratePrefs;
70
-
migrator.migratePlcRecord = formData.migratePlcRecord;
71
-
72
-
console.log(migrator);
73
-
74
-
updateStatusHandler('Starting migration...');
75
-
showStatusMessage = true;
76
-
await migrator.migrate(
77
-
formData.handle,
78
-
formData.password,
79
-
formData.newPds,
80
-
formData.newEmail,
81
-
formData.newHandle,
82
-
formData.inviteCode,
83
-
updateStatusHandler,
84
-
formData.twoFactorCode,
85
-
);
86
-
if (migrator.migratePlcRecord) {
87
-
//I don't think disable submit is needed, but you never know.
88
-
disableSubmit = false;
89
-
askForPlcToken = true;
90
-
} else {
91
-
updateStatusHandler('Migration of your repo is complete! But the PLC operation was not done so your old account is still the valid one.');
92
-
}
93
-
} catch (error) {
94
-
disableSubmit = false;
95
-
console.error(error);
96
-
//@ts-expect-error: JS being js. doesn't like not having the type'
97
-
if (error.error === 'AuthFactorTokenRequired') {
98
-
showTwoFactorCodeInput = true;
99
-
}
100
-
//@ts-expect-error: JS being js. doesn't like not having the type'
101
-
errorMessage = error.message;
102
-
}
103
-
}
104
-
</script>
105
-
106
-
<svelte:head>
107
-
<title>PDS MOOver</title>
108
-
<meta property="og:description" content="ATProto account migration tool"/>
109
-
<OgImage/>
110
-
</svelte:head>
111
-
112
-
<div class="container">
113
-
<MooHeader title="PDS MOOver"/>
114
-
{#if !askForPlcToken}
115
-
<a href={resolve('/info')}>Idk if I trust a cow to move my atproto account to a new PDS</a>
116
-
<br/>
117
-
<a href="https://blacksky.community/profile/did:plc:g7j6qok5us4hjqlwjxwrrkjm/post/3lw3hcuojck2u">Video guide for
118
-
joining blacksky.app</a>
119
-
120
-
<form id="moover-form" onsubmit={submitMoove}>
121
-
<!-- First section: Login credentials -->
122
-
<div class="section">
123
-
<h2>Login for your current PDS</h2>
124
-
<div class="form-group">
125
-
<label for="handle">Old Handle:</label>
126
-
<input type="text" id="handle" name="handle" placeholder="alice.bsky.social" required
127
-
bind:value={formData.handle}>
128
-
</div>
129
-
130
-
<div class="form-group">
131
-
<label for="password">Old Password (Will also be your new password):</label>
132
-
<input type="password" id="password" name="password" required bind:value={formData.password}>
133
-
</div>
134
-
{#if showTwoFactorCodeInput}
135
-
<div class="form-group">
136
-
<label for="two-factor-code">2FA from the email sent</label>
137
-
<input type="text" id="two-factor-code" name="twoFactorCode"
138
-
bind:value={formData.twoFactorCode}>
139
-
<div class="error-message">Enter your 2fa code here</div>
140
-
141
-
</div>
142
-
{/if}
143
-
</div>
144
-
145
-
<!-- Second section: New account details -->
146
-
<div class="section">
147
-
<h2>Setup for the new PDS</h2>
148
-
<div class="form-group">
149
-
<label for="new-pds">New PDS (URL):</label>
150
-
<input type="url" id="new-pds" name="newPds" placeholder="https://coolnewpds.com"
151
-
required bind:value={formData.newPds}>
152
-
</div>
153
-
154
-
<div class="form-group">
155
-
<label for="new-email">New Email:</label>
156
-
<input type="email" id="new-email" name="newEmail" placeholder="CanBeSameEmailAsTheOldPds@email.com"
157
-
required bind:value={formData.newEmail}>
158
-
</div>
159
-
160
-
<div class="form-group">
161
-
<label for="new-handle">New Handle:</label>
162
-
<input type="text" id="new-handle" name="newHandle"
163
-
placeholder="username.newpds.com or mycooldomain.com" required
164
-
bind:value={formData.newHandle}>
165
-
</div>
166
-
167
-
<div class="form-group">
168
-
<label for="invite-code">Invite Code:</label>
169
-
<input type="text" id="invite-code" name="inviteCode"
170
-
placeholder="Invite code from your new PDS (Leave blank if you don't have one)"
171
-
bind:value={formData.inviteCode}>
172
-
</div>
173
-
</div>
174
-
175
-
<div class="form-group">
176
-
<button type="button" onclick={() => showAdvance = !showAdvance} id="advance" name="advance">Advance
177
-
Options
178
-
</button>
179
-
</div>
180
-
{#if showAdvance}
181
-
<div class="section" style="padding-bottom: 10px; text-align: left">
182
-
<h3>Pick and choose which actions to run</h3>
183
-
<p>Useful if a migration failed and you want to have a bit more manual control</p>
184
-
<div class="form-control">
185
-
<label class="moove-checkbox-label">
186
-
<input type="checkbox" id="createNewAccount" name="createNewAccount"
187
-
bind:checked={formData.createNewAccount}>
188
-
Create a New Account on the New PDS
189
-
</label>
190
-
</div>
191
-
<div class="form-control">
192
-
<label class="moove-checkbox-label">
193
-
<input bind:checked={formData.migrateRepo} type="checkbox" id="migrateRepo"
194
-
name="migrateRepo">
195
-
Migrate Repo
196
-
</label>
197
-
</div>
198
-
<div class="form-control">
199
-
<label class="moove-checkbox-label">
200
-
<input bind:checked={formData.migrateBlobs} type="checkbox" id="migrateBlobs"
201
-
name="migrateBlobs">
202
-
Migrate Blobs
203
-
</label>
204
-
</div>
205
-
<div class="form-control">
206
-
<label class="moove-checkbox-label">
207
-
<input bind:checked={formData.migrateMissingBlobs} type="checkbox" id="migrateMissingBlobs"
208
-
name="migrateMissingBlobs">
209
-
Migrate Missing Blobs
210
-
</label>
211
-
</div>
212
-
<div class="form-control">
213
-
<label class="moove-checkbox-label">
214
-
<input bind:checked={formData.migratePrefs} type="checkbox" id="migratePrefs"
215
-
name="migratePrefs">
216
-
Migrate Prefs
217
-
</label>
218
-
</div>
219
-
<div class="form-control">
220
-
<label class="moove-checkbox-label">
221
-
<input bind:checked={formData.migratePlcRecord} type="checkbox" id="migratePlcRecord"
222
-
name="migratePlcRecord">
223
-
Migrate PLC Record
224
-
</label>
225
-
</div>
226
-
227
-
</div>
228
-
{/if}
229
-
230
-
<p style="text-align: left">There are some risks that come with doing an account migration.
231
-
(Can view them
232
-
<a href="https://github.com/bluesky-social/pds/blob/main/ACCOUNT_MIGRATION.md#%EF%B8%8F-warning-%EF%B8%8F-%EF%B8%8F">here</a>)
233
-
and that the creator or host of this migration tool is not liable and will not be able to help you in
234
-
the
235
-
event something goes wrong. I also have read over the <a href={resolve('/info')}>extended information
236
-
from
237
-
PDS MOOver
238
-
about account
239
-
migrations.</a>
240
-
</p>
241
-
<div class="form-group">
242
-
<label for="confirmation" class="moove-checkbox-label">
243
-
<input bind:checked={formData.confirmation} type="checkbox" id="confirmation" name="confirmation"
244
-
required>
245
-
<span>I understand</span>
246
-
</label>
247
-
</div>
248
-
{#if errorMessage !== null}
249
-
<div class="error-message">{errorMessage}</div>
250
-
{/if}
251
-
252
-
{#if showStatusMessage}
253
-
<div id="warning">*Please make sure to stay on this page during the MOOve for the
254
-
best result
255
-
</div>
256
-
<div id="status-message" class="status-message">{statusMessage}</div>
257
-
{/if}
258
-
259
-
<div>
260
-
<button disabled={disableSubmit} type="submit">MOOve</button>
261
-
</div>
262
-
</form>
263
-
264
-
{:else}
265
-
<SignThePapers migrator={migrator} newHandle={formData.newHandle}/>
266
-
{/if}
267
-
</div>
-178
web-ui/src/routes/moover/SignThePapers.svelte
-178
web-ui/src/routes/moover/SignThePapers.svelte
···
1
-
<script lang="ts">
2
-
import {Migrator, PlcOps} from '@pds-moover/moover'
3
-
import {resolve} from '$app/paths'
4
-
import RotationKeyDisplay from '$lib/components/RotationKeyDisplay.svelte';
5
-
import type {RotationKeyType} from '$lib/types';
6
-
import {PUBLIC_XRPC_BASE} from '$env/static/public';
7
-
8
-
let {migrator, newHandle}: { migrator: Migrator, newHandle: string } = $props();
9
-
10
-
//UI State
11
-
let errorMessage: null | string = $state(null);
12
-
let done = $state(false);
13
-
let plcStatus: null | string = $state(null);
14
-
let showAdvancedPlcOptions = $state(false);
15
-
let backupSignupMessage: null | string = $state(null);
16
-
let backupSignupError: null | string = $state(null);
17
-
18
-
//Input State
19
-
let createANewRotationKey = $state(false);
20
-
let signupForBackups = $state(false);
21
-
let plcToken = $state('');
22
-
let rotationKeys = $state(['', '', '', '']);
23
-
let newlyCreatedRotationKey: RotationKeyType | null = $state(null);
24
-
25
-
26
-
async function signPlcOperation(event: SubmitEvent & { currentTarget: EventTarget & HTMLFormElement }) {
27
-
event.preventDefault();
28
-
try {
29
-
plcStatus = 'Signing PLC operation...';
30
-
backupSignupMessage = null;
31
-
backupSignupError = null;
32
-
// Build an additional rotation keys list (user-provided and/or newly created)
33
-
const additionalRotationKeysToAdd: string[] = [];
34
-
// Generate a new rotation key if requested
35
-
if (createANewRotationKey) {
36
-
37
-
let plcOps = new PlcOps();
38
-
const created = await plcOps.createANewSecp256k1();
39
-
newlyCreatedRotationKey = created; // { publicKey, privateKey }
40
-
// Reserve the first slot for the newly created key (will appear above the PDS rotation key)
41
-
additionalRotationKeysToAdd.push(created.publicKey);
42
-
}
43
-
// Append any manually entered rotation keys (non-empty)
44
-
//TODO idk about this i need to look at it again
45
-
for (let i = 0; i < rotationKeys.length; i++) {
46
-
const k = (rotationKeys[i] || '').trim();
47
-
if (k) {
48
-
additionalRotationKeysToAdd.push(k);
49
-
}
50
-
}
51
-
52
-
//TODO nervous about this state
53
-
await migrator.signPlcOperation(plcToken, additionalRotationKeysToAdd);
54
-
plcStatus = 'PLC operation signed successfully! Your account has been MOOved to the new PDS.';
55
-
done = true;
56
-
57
-
if (signupForBackups) {
58
-
try {
59
-
backupSignupMessage = 'Signing you up for automated backups...';
60
-
//TODO nervous about this state
61
-
await migrator.signUpForBackupsFromMigration(`did:web:${PUBLIC_XRPC_BASE}`);
62
-
backupSignupMessage = 'Signed up for automated backups successfully.';
63
-
} catch (e) {
64
-
console.error(e);
65
-
//@ts-expect-error: There is a e.message, or at least a check for it
66
-
backupSignupError = e?.message || 'Failed to sign you up for automated backups.';
67
-
}
68
-
}
69
-
} catch (error) {
70
-
//@ts-expect-error: There is a message
71
-
errorMessage = error.message;
72
-
console.error(error);
73
-
}
74
-
}
75
-
76
-
</script>
77
-
78
-
79
-
<div class="section">
80
-
<form onsubmit="{signPlcOperation}">
81
-
{#if !done}
82
-
<div>
83
-
<h2>Please enter your PLC Token you received in an email</h2>
84
-
<div class="form-group">
85
-
<label for="plc-token">PLC Token:</label>
86
-
<input type="text" id="plc-token" name="plc-token" bind:value={plcToken} required>
87
-
</div>
88
-
<p style="text-align: left">You can now select to add a new Rotation Key during migration and sign up
89
-
for PDS MOOver's free backup service. With a Rotation Key and backups if your new PDS ever goes down
90
-
you can recover your account and it's data.</p>
91
-
<div class="form-group">
92
-
<label for="rotation-key" class="moove-checkbox-label">
93
-
<input bind:checked={createANewRotationKey} type="checkbox" id="rotation-key"
94
-
name="rotation-key">
95
-
<span>Create and add a new Rotation Key</span>
96
-
</label>
97
-
</div>
98
-
<div class="form-group">
99
-
<label for="backups-signup" class="moove-checkbox-label">
100
-
<input bind:checked={signupForBackups} type="checkbox" id="backups-signup"
101
-
name="backups-signup">
102
-
<span>Signup for automated account backups</span>
103
-
</label>
104
-
</div>
105
-
<div class="form-group">
106
-
<button type="button" id="plc-advance"
107
-
onclick={() => showAdvancedPlcOptions = !showAdvancedPlcOptions}>Add
108
-
Additional Rotation Keys
109
-
</button>
110
-
</div>
111
-
{#if showAdvancedPlcOptions}
112
-
<div class="section" style="padding-bottom: 10px;">
113
-
<div style="text-align: left;">
114
-
You can pick up to 4 rotation keys to your PLC document. These will appear above your new
115
-
PDS
116
-
rotation key so you can recover your account in the event of an adversarial take over from a
117
-
rogue PDS
118
-
</div>
119
-
<div class="form-group" style="margin-top: 10px;">
120
-
<label for="rotation-key-1">Rotation key 1</label>
121
-
<input type="text" id="rotation-key-1" name="rotation-key-1"
122
-
bind:value={rotationKeys[0]}
123
-
disabled={createANewRotationKey}
124
-
placeholder={createANewRotationKey ? 'reserved for the newly created rotation key' : ''}>
125
-
</div>
126
-
<div class="form-group">
127
-
<label for="rotation-key-2">Rotation key 2</label>
128
-
<input type="text" id="rotation-key-2" name="rotation-key-2" bind:value={rotationKeys[1]}>
129
-
</div>
130
-
<div class="form-group">
131
-
<label for="rotation-key-3">Rotation key 3</label>
132
-
<input type="text" id="rotation-key-3" name="rotation-key-3" bind:value={rotationKeys[2]}>
133
-
</div>
134
-
<div class="form-group">
135
-
<label for="rotation-key-4">Rotation key 4</label>
136
-
<input type="text" id="rotation-key-4" name="rotation-key-4" bind:value={rotationKeys[3]}>
137
-
</div>
138
-
</div>
139
-
{/if}
140
-
</div>
141
-
{/if}
142
-
{#if errorMessage}
143
-
<div class="error-message">{errorMessage}</div>
144
-
{/if}
145
-
146
-
{#if done && createANewRotationKey && newlyCreatedRotationKey}
147
-
<div>
148
-
<RotationKeyDisplay handle={newHandle} rotationKey={newlyCreatedRotationKey}/>
149
-
</div>
150
-
{/if}
151
-
152
-
{#if !done && plcStatus}
153
-
<div class="status-message">{plcStatus}</div>
154
-
{/if}
155
-
156
-
{#if signupForBackups && backupSignupMessage}
157
-
<div>
158
-
<div class="status-message">{backupSignupMessage}</div>
159
-
{#if backupSignupError}
160
-
<div class="error-message">{backupSignupError}</div>
161
-
{/if}
162
-
163
-
</div>
164
-
{/if}
165
-
166
-
{#if done}
167
-
<div class="status-message">Congratulations! You have MOOved to a new PDS! Remember to use
168
-
your new PDS URL under "Hosting provider" when logging in on Bluesky. Can find more detail information
169
-
<a href={resolve('/info#cant-login')}>here.</a></div>
170
-
{:else }
171
-
<div>
172
-
<button type="submit">Sign the papers</button>
173
-
</div>
174
-
{/if}
175
-
176
-
177
-
</form>
178
-
</div>
+34
web-ui/src/routes/moover/[[pds]]/+page.server.ts
+34
web-ui/src/routes/moover/[[pds]]/+page.server.ts
···
1
+
import type {PageServerLoad} from './$types';
2
+
import {Client, simpleFetchHandler} from '@atcute/client';
3
+
import type {} from '@atcute/atproto';
4
+
import {env} from '$env/dynamic/private';
5
+
6
+
export const load: PageServerLoad = async ({params}) => {
7
+
8
+
if (!params.pds) {
9
+
return {pdsOptions: null, intinalDomain: null};
10
+
}
11
+
12
+
const allowedPds = env.PDS_AUTOFILL.split(',');
13
+
if (!allowedPds.includes(params.pds.toLowerCase())) {
14
+
console.error('PDS not allowed', params.pds);
15
+
return {pdsOptions: null, intinalDomain: null};
16
+
}
17
+
18
+
try {
19
+
const handler = simpleFetchHandler({service: `https://${params.pds}`});
20
+
const rpc = new Client({handler});
21
+
const {ok, data} = await rpc.get('com.atproto.server.describeServer', {})
22
+
if (!ok) {
23
+
console.error('Failed to describe the PDS server', data);
24
+
return {pds: null};
25
+
}
26
+
return {
27
+
pdsOptions: data,
28
+
intinalDomain: data?.availableUserDomains[0] ?? ''
29
+
};
30
+
} catch (e) {
31
+
console.error('Failed to describe the PDS server', e);
32
+
return {pdsOptions: null, intinalDomain: null};
33
+
}
34
+
};
+413
web-ui/src/routes/moover/[[pds]]/+page.svelte
+413
web-ui/src/routes/moover/[[pds]]/+page.svelte
···
1
+
<script lang="ts">
2
+
import MooHeader from '$lib/components/MooHeader.svelte';
3
+
import OgImage from '$lib/components/OgImage.svelte';
4
+
import {resolve} from '$app/paths';
5
+
import {Migrator} from '@pds-moover/moover';
6
+
import SignThePapers from './SignThePapers.svelte';
7
+
import Captcha from './Captcha.svelte';
8
+
9
+
let {data} = $props();
10
+
11
+
let selectedPds = $derived(data.pdsOptions);
12
+
let cleanSelectedPds = $derived(selectedPds?.did.replace('did:web:', ''));
13
+
//Kept as a "global" state to handle logic of passing the full handle that is used to SignThePapers
14
+
let newHandle = $state('');
15
+
16
+
let selectedDomain = $state(data.intinalDomain);
17
+
18
+
let handlePlaceHolder = $derived(
19
+
selectedPds ? `username${selectedDomain === 'custom' ? '' : `${selectedPds?.availableUserDomains[0]}`} or mydomain.com` : 'username.newpds.com or mycooldomain.com')
20
+
21
+
22
+
$effect(() => {
23
+
if (!selectedPds) return;
24
+
25
+
if (selectedDomain == 'custom') return;
26
+
27
+
28
+
if (formData.newHandle.includes('.')) {
29
+
// When a period is typed, force custom domain selection
30
+
selectedDomain = 'custom';
31
+
} else {
32
+
// If user clears the dot and we have provider domains, fall back to first option
33
+
if ((selectedPds?.availableUserDomains?.length ?? 0) > 0 && selectedDomain === 'custom') {
34
+
selectedDomain = selectedPds!.availableUserDomains[0]!
35
+
}
36
+
}
37
+
});
38
+
39
+
let formData = $state({
40
+
handle: '',
41
+
password: '',
42
+
newPds: '',
43
+
newEmail: '',
44
+
newHandle: '',
45
+
inviteCode: null,
46
+
twoFactorCode: null,
47
+
verificationCode: null,
48
+
confirmation: false,
49
+
// Acceptance of provider policies (when required by selected PDS)
50
+
acceptPolicies: false,
51
+
// Advanced options
52
+
createNewAccount: true,
53
+
migrateRepo: true,
54
+
migrateBlobs: true,
55
+
migrateMissingBlobs: true,
56
+
migratePrefs: true,
57
+
migratePlcRecord: true,
58
+
});
59
+
60
+
let migrator = $state(new Migrator());
61
+
62
+
//UI state
63
+
let showTwoFactorCodeInput = $state(false);
64
+
let showAdvance = $state(false);
65
+
let showStatusMessage = $state(false);
66
+
let askForPlcToken = $state(false);
67
+
let disableSubmit = $state(false);
68
+
let showCaptcha = $state(false);
69
+
70
+
let errorMessage: null | string = $state(null);
71
+
let statusMessage: null | string = $state(null);
72
+
73
+
// Links that may require acceptance prior to migration from the selected PDS
74
+
const privacyUrl = $derived(selectedPds?.links?.privacyPolicy);
75
+
const tosUrl = $derived(selectedPds?.links?.termsOfService);
76
+
const requiresAccept = $derived(!!(privacyUrl || tosUrl));
77
+
78
+
// Check if phone verification is required
79
+
const captchaVerificationRequired = $derived(selectedPds?.phoneVerificationRequired === true);
80
+
81
+
const updateStatusHandler = (status: string) => {
82
+
statusMessage = status;
83
+
}
84
+
85
+
function handleCaptchaSuccess(code: string) {
86
+
formData.verificationCode = code;
87
+
showCaptcha = false;
88
+
// Continue with the migration
89
+
performMigration();
90
+
}
91
+
92
+
function handleCaptchaError(error: string) {
93
+
errorMessage = `Verification failed: ${error}`;
94
+
disableSubmit = false;
95
+
}
96
+
97
+
async function submitMoove(event: SubmitEvent & { currentTarget: EventTarget & HTMLFormElement }) {
98
+
event.preventDefault();
99
+
disableSubmit = true;
100
+
errorMessage = null;
101
+
showStatusMessage = false;
102
+
103
+
if (!formData.confirmation) {
104
+
errorMessage = 'Please confirm that you understand the risks of doing an account migration';
105
+
disableSubmit = false;
106
+
return;
107
+
}
108
+
109
+
// If the selected PDS provides policy or privacy links, require explicit acceptance
110
+
if (requiresAccept && !formData.acceptPolicies) {
111
+
errorMessage = 'Please review and accept the providers policies';
112
+
disableSubmit = false;
113
+
return;
114
+
}
115
+
newHandle = formData.newHandle;
116
+
if (selectedPds) {
117
+
//Not happy about this unwrap, but it should always have a value on a legit PDS that I know of
118
+
119
+
formData.newPds = `https://${cleanSelectedPds!}`;
120
+
// Combine username and selected domain for the new handle
121
+
if (selectedDomain !== 'custom') {
122
+
newHandle = formData.newHandle + selectedDomain;
123
+
}
124
+
}
125
+
126
+
if (captchaVerificationRequired && formData.createNewAccount && !formData.verificationCode) {
127
+
showCaptcha = true;
128
+
return;
129
+
}
130
+
131
+
// Continue with migration
132
+
await performMigration();
133
+
}
134
+
135
+
async function performMigration() {
136
+
try {
137
+
138
+
if (showTwoFactorCodeInput) {
139
+
if (showTwoFactorCodeInput === null) {
140
+
errorMessage = 'Please enter the 2FA that was sent to your email.'
141
+
disableSubmit = false;
142
+
return;
143
+
}
144
+
}
145
+
146
+
// Advance options from $state
147
+
migrator.createNewAccount = formData.createNewAccount;
148
+
migrator.migrateRepo = formData.migrateRepo;
149
+
migrator.migrateBlobs = formData.migrateBlobs;
150
+
migrator.migrateMissingBlobs = formData.migrateMissingBlobs;
151
+
migrator.migratePrefs = formData.migratePrefs;
152
+
migrator.migratePlcRecord = formData.migratePlcRecord;
153
+
154
+
console.log(formData.newPds, newHandle);
155
+
156
+
updateStatusHandler('Starting migration...');
157
+
showStatusMessage = true;
158
+
159
+
await migrator.migrate(
160
+
formData.handle,
161
+
formData.password,
162
+
formData.newPds,
163
+
formData.newEmail,
164
+
newHandle,
165
+
formData.inviteCode,
166
+
updateStatusHandler,
167
+
formData.twoFactorCode,
168
+
formData.verificationCode,
169
+
);
170
+
if (migrator.migratePlcRecord) {
171
+
//I don't think disable submit is needed, but you never know.
172
+
disableSubmit = false;
173
+
askForPlcToken = true;
174
+
} else {
175
+
updateStatusHandler('Migration of your repo is complete! But the PLC operation was not done so your old account is still the valid one.');
176
+
}
177
+
} catch (error) {
178
+
disableSubmit = false;
179
+
console.error(error);
180
+
//@ts-expect-error: JS being js. doesn't like not having the type'
181
+
if (error.error === 'AuthFactorTokenRequired') {
182
+
showTwoFactorCodeInput = true;
183
+
}
184
+
//@ts-expect-error: JS being js. doesn't like not having the type'
185
+
errorMessage = error.message;
186
+
}
187
+
}
188
+
</script>
189
+
190
+
<svelte:head>
191
+
<title>PDS MOOver</title>
192
+
<meta property="og:description" content="ATProto account migration tool"/>
193
+
<OgImage/>
194
+
</svelte:head>
195
+
196
+
<div class="container">
197
+
<MooHeader title="PDS MOOver"/>
198
+
{#if !askForPlcToken}
199
+
<a href={resolve('/info')}>Idk if I trust a cow to move my atproto account to a new PDS</a>
200
+
<br/>
201
+
<a href="https://blacksky.community/profile/did:plc:g7j6qok5us4hjqlwjxwrrkjm/post/3lw3hcuojck2u">Video guide for
202
+
joining blacksky.app</a>
203
+
{#if showCaptcha}
204
+
<Captcha
205
+
pdsUrl={formData.newPds}
206
+
handle={newHandle}
207
+
onSuccess={handleCaptchaSuccess}
208
+
onError={handleCaptchaError}
209
+
/>
210
+
{:else}
211
+
212
+
<form id="moover-form" onsubmit={submitMoove}>
213
+
<!-- First section: Login credentials -->
214
+
<div class="section">
215
+
<h2>Login for your current PDS</h2>
216
+
<div class="form-group">
217
+
<label for="handle">Old Handle:</label>
218
+
<input type="text" id="handle" name="handle" placeholder="alice.bsky.social" required
219
+
bind:value={formData.handle}>
220
+
</div>
221
+
222
+
<div class="form-group">
223
+
<label for="password">Old Password (Will also be your new password):</label>
224
+
<input type="password" id="password" name="password" required bind:value={formData.password}>
225
+
</div>
226
+
{#if showTwoFactorCodeInput}
227
+
<div class="form-group">
228
+
<label for="two-factor-code">2FA from the email sent</label>
229
+
<input type="text" id="two-factor-code" name="twoFactorCode"
230
+
bind:value={formData.twoFactorCode}>
231
+
<div class="error-message">Enter your 2fa code here</div>
232
+
233
+
</div>
234
+
{/if}
235
+
</div>
236
+
237
+
<!-- Second section: New account details -->
238
+
<div class="section">
239
+
<h2>{selectedPds ? `Setup for ${cleanSelectedPds}` : 'Setup for the new PDS'}</h2>
240
+
{#if !selectedPds}
241
+
<div class="form-group">
242
+
<label for="new-pds">New PDS (URL):</label>
243
+
<input type="url" id="new-pds" name="newPds" placeholder="https://coolnewpds.com"
244
+
required bind:value={formData.newPds}>
245
+
</div>
246
+
{/if}
247
+
248
+
<div class="form-group">
249
+
<label for="new-email">New Email:</label>
250
+
<input type="email" id="new-email" name="newEmail"
251
+
placeholder="CanBeSameEmailAsTheOldPds@email.com"
252
+
required bind:value={formData.newEmail}>
253
+
</div>
254
+
255
+
256
+
<div class="form-group">
257
+
<label for="new-handle">New Handle:</label>
258
+
<div class={selectedPds ? 'input-group' : ''}>
259
+
<input type="text" id="new-handle" name="newHandle"
260
+
placeholder="{handlePlaceHolder}"
261
+
required
262
+
bind:value={formData.newHandle}>
263
+
{#if selectedPds}
264
+
265
+
<select bind:value={selectedDomain} class="domain-select">
266
+
{#each selectedPds?.availableUserDomains as domain (domain)}
267
+
<option value={domain}>{domain}</option>
268
+
{/each}
269
+
<option value="custom">I have my own domain setup</option>
270
+
271
+
</select>
272
+
{/if}
273
+
</div>
274
+
</div>
275
+
276
+
{#if !selectedPds || selectedPds.inviteCodeRequired !== false}
277
+
<div class="form-group">
278
+
<label for="invite-code">Invite Code:</label>
279
+
<input type="text" id="invite-code" name="inviteCode"
280
+
placeholder="Invite code from your new PDS (Leave blank if you don't have one)"
281
+
bind:value={formData.inviteCode}>
282
+
</div>
283
+
{/if}
284
+
</div>
285
+
286
+
287
+
<div class="form-group">
288
+
<button type="button" onclick={() => showAdvance = !showAdvance} id="advance" name="advance">Advance
289
+
Options
290
+
</button>
291
+
</div>
292
+
{#if showAdvance}
293
+
<div class="section" style="padding-bottom: 10px; text-align: left">
294
+
<h3>Pick and choose which actions to run</h3>
295
+
<p>Useful if a migration failed and you want to have a bit more manual control</p>
296
+
<div class="form-control">
297
+
<label class="moove-checkbox-label">
298
+
<input type="checkbox" id="createNewAccount" name="createNewAccount"
299
+
bind:checked={formData.createNewAccount}>
300
+
Create a New Account on the New PDS
301
+
</label>
302
+
</div>
303
+
<div class="form-control">
304
+
<label class="moove-checkbox-label">
305
+
<input bind:checked={formData.migrateRepo} type="checkbox" id="migrateRepo"
306
+
name="migrateRepo">
307
+
Migrate Repo
308
+
</label>
309
+
</div>
310
+
<div class="form-control">
311
+
<label class="moove-checkbox-label">
312
+
<input bind:checked={formData.migrateBlobs} type="checkbox" id="migrateBlobs"
313
+
name="migrateBlobs">
314
+
Migrate Blobs
315
+
</label>
316
+
</div>
317
+
<div class="form-control">
318
+
<label class="moove-checkbox-label">
319
+
<input bind:checked={formData.migrateMissingBlobs} type="checkbox"
320
+
id="migrateMissingBlobs"
321
+
name="migrateMissingBlobs">
322
+
Migrate Missing Blobs
323
+
</label>
324
+
</div>
325
+
<div class="form-control">
326
+
<label class="moove-checkbox-label">
327
+
<input bind:checked={formData.migratePrefs} type="checkbox" id="migratePrefs"
328
+
name="migratePrefs">
329
+
Migrate Prefs
330
+
</label>
331
+
</div>
332
+
<div class="form-control">
333
+
<label class="moove-checkbox-label">
334
+
<input bind:checked={formData.migratePlcRecord} type="checkbox" id="migratePlcRecord"
335
+
name="migratePlcRecord">
336
+
Migrate PLC Record
337
+
</label>
338
+
</div>
339
+
340
+
</div>
341
+
{/if}
342
+
343
+
{#if requiresAccept}
344
+
<div class="section" style="text-align: left">
345
+
<h3>Provider policies</h3>
346
+
<p>
347
+
To migrate to {cleanSelectedPds}, you must review and accept:
348
+
</p>
349
+
<ul>
350
+
{#if privacyUrl}
351
+
<li><a href={privacyUrl} target="_blank" rel="noopener noreferrer">Privacy
352
+
Policy</a></li>
353
+
{/if}
354
+
{#if tosUrl}
355
+
<li><a href={tosUrl} target="_blank" rel="noopener noreferrer">Terms of Service</a></li>
356
+
{/if}
357
+
</ul>
358
+
<div class="form-group">
359
+
<label for="accept-policies" class="moove-checkbox-label">
360
+
<input bind:checked={formData.acceptPolicies} type="checkbox" id="accept-policies"
361
+
name="acceptPolicies" required>
362
+
<span>
363
+
I have read and accept
364
+
365
+
</span>
366
+
</label>
367
+
</div>
368
+
</div>
369
+
{/if}
370
+
<p style="text-align: left">There are some risks that come with doing an account migration.
371
+
(Can view them
372
+
<a href="https://github.com/bluesky-social/pds/blob/main/ACCOUNT_MIGRATION.md#%EF%B8%8F-warning-%EF%B8%8F-%EF%B8%8F">here</a>)
373
+
and that the creator or host of this migration tool is not liable and will not be able to help you
374
+
in
375
+
the
376
+
event something goes wrong. I also have read over the <a href={resolve('/info')}>extended
377
+
information
378
+
from
379
+
PDS MOOver
380
+
about account
381
+
migrations.</a>
382
+
</p>
383
+
<div class="form-group">
384
+
<label for="confirmation" class="moove-checkbox-label">
385
+
<input bind:checked={formData.confirmation} type="checkbox" id="confirmation"
386
+
name="confirmation"
387
+
required>
388
+
<span>I understand</span>
389
+
</label>
390
+
</div>
391
+
{#if errorMessage !== null}
392
+
<div class="error-message">{errorMessage}</div>
393
+
{/if}
394
+
395
+
{#if showStatusMessage}
396
+
<div id="warning">*Please make sure to stay on this page during the MOOve for the
397
+
best result
398
+
</div>
399
+
<div id="status-message" class="status-message">{statusMessage}</div>
400
+
{/if}
401
+
402
+
403
+
<div>
404
+
<button disabled={disableSubmit}
405
+
type="submit">{selectedPds ? `MOOve to ${cleanSelectedPds}` : 'MOOve'}</button>
406
+
</div>
407
+
408
+
</form>
409
+
{/if}
410
+
{:else}
411
+
<SignThePapers migrator={migrator} newHandle={newHandle}/>
412
+
{/if}
413
+
</div>
+116
web-ui/src/routes/moover/[[pds]]/Captcha.svelte
+116
web-ui/src/routes/moover/[[pds]]/Captcha.svelte
···
1
+
<script lang="ts">
2
+
import {onMount} from 'svelte';
3
+
4
+
interface CaptchaProps {
5
+
pdsUrl: string;
6
+
handle: string;
7
+
onSuccess: (code: string) => void;
8
+
onError?: (error: string) => void;
9
+
}
10
+
11
+
let {pdsUrl, handle, onSuccess, onError}: CaptchaProps = $props();
12
+
13
+
function generateState(): string {
14
+
const array = new Uint8Array(32);
15
+
crypto.getRandomValues(array);
16
+
return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');
17
+
}
18
+
19
+
let captcha_state = $state(generateState());
20
+
let iframeRef: HTMLIFrameElement | null = $state(null);
21
+
let isLoading = $state(true);
22
+
23
+
24
+
const gateUrl = $derived(
25
+
`${pdsUrl}/gate/signup?state=${encodeURIComponent(captcha_state)}&handle=${encodeURIComponent(handle)}&redirect_url=${encodeURIComponent(window.location.origin)}`,
26
+
);
27
+
28
+
// Monitor iframe for URL changes
29
+
function checkIframeUrl() {
30
+
if (!iframeRef) return;
31
+
32
+
try {
33
+
const iframeUrl = new URL(iframeRef.contentWindow?.location.href ?? '');
34
+
35
+
// Check if the iframe has been redirected with code and state parameters
36
+
// This indicates the captcha was completed
37
+
const urlState = iframeUrl.searchParams.get('state');
38
+
const code = iframeUrl.searchParams.get('code');
39
+
40
+
// Only process if we have at least a state parameter (indicates redirect happened)
41
+
if (urlState) {
42
+
43
+
// Verify state matches
44
+
if (urlState !== captcha_state) {
45
+
const stateError = 'State mismatch - possible security issue';
46
+
onError?.(stateError);
47
+
return;
48
+
}
49
+
if (!code) {
50
+
const codeError = 'No code returned from captcha';
51
+
onError?.(codeError);
52
+
return;
53
+
54
+
}
55
+
56
+
onSuccess(code);
57
+
}
58
+
} catch {
59
+
/* empty */
60
+
}
61
+
}
62
+
63
+
onMount(() => {
64
+
// Poll for URL changes
65
+
const interval = setInterval(checkIframeUrl, 100);
66
+
67
+
return () => clearInterval(interval);
68
+
});
69
+
</script>
70
+
71
+
<div class="iframe-wrapper">
72
+
<iframe
73
+
bind:this={iframeRef}
74
+
src={gateUrl}
75
+
title="Captcha Verification"
76
+
onload={() => isLoading = false}
77
+
></iframe>
78
+
{#if isLoading}
79
+
<div class="loading-overlay">
80
+
<p>Loading verification...</p>
81
+
</div>
82
+
{/if}
83
+
</div>
84
+
85
+
<style>
86
+
87
+
.iframe-wrapper {
88
+
position: relative;
89
+
width: 100%;
90
+
height: 500px;
91
+
background: white;
92
+
border: 1px solid #ddd;
93
+
border-radius: 4px;
94
+
overflow: hidden;
95
+
}
96
+
97
+
iframe {
98
+
width: 100%;
99
+
height: 100%;
100
+
border: none;
101
+
}
102
+
103
+
.loading-overlay {
104
+
position: absolute;
105
+
top: 0;
106
+
left: 0;
107
+
right: 0;
108
+
bottom: 0;
109
+
background: rgba(255, 255, 255, 0.9);
110
+
display: flex;
111
+
align-items: center;
112
+
justify-content: center;
113
+
color: #666;
114
+
}
115
+
116
+
</style>
+178
web-ui/src/routes/moover/[[pds]]/SignThePapers.svelte
+178
web-ui/src/routes/moover/[[pds]]/SignThePapers.svelte
···
1
+
<script lang="ts">
2
+
import {Migrator, PlcOps} from '@pds-moover/moover'
3
+
import {resolve} from '$app/paths'
4
+
import RotationKeyDisplay from '$lib/components/RotationKeyDisplay.svelte';
5
+
import type {RotationKeyType} from '$lib/types';
6
+
import {env} from '$env/dynamic/public';
7
+
8
+
let {migrator, newHandle}: { migrator: Migrator, newHandle: string } = $props();
9
+
10
+
//UI State
11
+
let errorMessage: null | string = $state(null);
12
+
let done = $state(false);
13
+
let plcStatus: null | string = $state(null);
14
+
let showAdvancedPlcOptions = $state(false);
15
+
let backupSignupMessage: null | string = $state(null);
16
+
let backupSignupError: null | string = $state(null);
17
+
18
+
//Input State
19
+
let createANewRotationKey = $state(false);
20
+
let signupForBackups = $state(false);
21
+
let plcToken = $state('');
22
+
let rotationKeys = $state(['', '', '', '']);
23
+
let newlyCreatedRotationKey: RotationKeyType | null = $state(null);
24
+
25
+
26
+
async function signPlcOperation(event: SubmitEvent & { currentTarget: EventTarget & HTMLFormElement }) {
27
+
event.preventDefault();
28
+
try {
29
+
plcStatus = 'Signing PLC operation...';
30
+
backupSignupMessage = null;
31
+
backupSignupError = null;
32
+
// Build an additional rotation keys list (user-provided and/or newly created)
33
+
const additionalRotationKeysToAdd: string[] = [];
34
+
// Generate a new rotation key if requested
35
+
if (createANewRotationKey) {
36
+
37
+
let plcOps = new PlcOps();
38
+
const created = await plcOps.createANewSecp256k1();
39
+
newlyCreatedRotationKey = created; // { publicKey, privateKey }
40
+
// Reserve the first slot for the newly created key (will appear above the PDS rotation key)
41
+
additionalRotationKeysToAdd.push(created.publicKey);
42
+
}
43
+
// Append any manually entered rotation keys (non-empty)
44
+
//TODO idk about this i need to look at it again
45
+
for (let i = 0; i < rotationKeys.length; i++) {
46
+
const k = (rotationKeys[i] || '').trim();
47
+
if (k) {
48
+
additionalRotationKeysToAdd.push(k);
49
+
}
50
+
}
51
+
52
+
//TODO nervous about this state
53
+
await migrator.signPlcOperation(plcToken, additionalRotationKeysToAdd);
54
+
plcStatus = 'PLC operation signed successfully! Your account has been MOOved to the new PDS.';
55
+
done = true;
56
+
57
+
if (signupForBackups) {
58
+
try {
59
+
backupSignupMessage = 'Signing you up for automated backups...';
60
+
//TODO nervous about this state
61
+
await migrator.signUpForBackupsFromMigration(`did:web:${env.PUBLIC_XRPC_BASE}`);
62
+
backupSignupMessage = 'Signed up for automated backups successfully.';
63
+
} catch (e) {
64
+
console.error(e);
65
+
//@ts-expect-error: There is a e.message, or at least a check for it
66
+
backupSignupError = e?.message || 'Failed to sign you up for automated backups.';
67
+
}
68
+
}
69
+
} catch (error) {
70
+
//@ts-expect-error: There is a message
71
+
errorMessage = error.message;
72
+
console.error(error);
73
+
}
74
+
}
75
+
76
+
</script>
77
+
78
+
79
+
<div class="section">
80
+
<form onsubmit="{signPlcOperation}">
81
+
{#if !done}
82
+
<div>
83
+
<h2>Please enter your PLC Token you received in an email</h2>
84
+
<div class="form-group">
85
+
<label for="plc-token">PLC Token:</label>
86
+
<input type="text" id="plc-token" name="plc-token" bind:value={plcToken} required>
87
+
</div>
88
+
<p style="text-align: left">You can now select to add a new Rotation Key during migration and sign up
89
+
for PDS MOOver's free backup service. With a Rotation Key and backups if your new PDS ever goes down
90
+
you can recover your account and it's data.</p>
91
+
<div class="form-group">
92
+
<label for="rotation-key" class="moove-checkbox-label">
93
+
<input bind:checked={createANewRotationKey} type="checkbox" id="rotation-key"
94
+
name="rotation-key">
95
+
<span>Create and add a new Rotation Key</span>
96
+
</label>
97
+
</div>
98
+
<div class="form-group">
99
+
<label for="backups-signup" class="moove-checkbox-label">
100
+
<input bind:checked={signupForBackups} type="checkbox" id="backups-signup"
101
+
name="backups-signup">
102
+
<span>Signup for automated account backups</span>
103
+
</label>
104
+
</div>
105
+
<div class="form-group">
106
+
<button type="button" id="plc-advance"
107
+
onclick={() => showAdvancedPlcOptions = !showAdvancedPlcOptions}>Add
108
+
Additional Rotation Keys
109
+
</button>
110
+
</div>
111
+
{#if showAdvancedPlcOptions}
112
+
<div class="section" style="padding-bottom: 10px;">
113
+
<div style="text-align: left;">
114
+
You can pick up to 4 rotation keys to your PLC document. These will appear above your new
115
+
PDS
116
+
rotation key so you can recover your account in the event of an adversarial take over from a
117
+
rogue PDS
118
+
</div>
119
+
<div class="form-group" style="margin-top: 10px;">
120
+
<label for="rotation-key-1">Rotation key 1</label>
121
+
<input type="text" id="rotation-key-1" name="rotation-key-1"
122
+
bind:value={rotationKeys[0]}
123
+
disabled={createANewRotationKey}
124
+
placeholder={createANewRotationKey ? 'reserved for the newly created rotation key' : ''}>
125
+
</div>
126
+
<div class="form-group">
127
+
<label for="rotation-key-2">Rotation key 2</label>
128
+
<input type="text" id="rotation-key-2" name="rotation-key-2" bind:value={rotationKeys[1]}>
129
+
</div>
130
+
<div class="form-group">
131
+
<label for="rotation-key-3">Rotation key 3</label>
132
+
<input type="text" id="rotation-key-3" name="rotation-key-3" bind:value={rotationKeys[2]}>
133
+
</div>
134
+
<div class="form-group">
135
+
<label for="rotation-key-4">Rotation key 4</label>
136
+
<input type="text" id="rotation-key-4" name="rotation-key-4" bind:value={rotationKeys[3]}>
137
+
</div>
138
+
</div>
139
+
{/if}
140
+
</div>
141
+
{/if}
142
+
{#if errorMessage}
143
+
<div class="error-message">{errorMessage}</div>
144
+
{/if}
145
+
146
+
{#if done && createANewRotationKey && newlyCreatedRotationKey}
147
+
<div>
148
+
<RotationKeyDisplay handle={newHandle} rotationKey={newlyCreatedRotationKey}/>
149
+
</div>
150
+
{/if}
151
+
152
+
{#if !done && plcStatus}
153
+
<div class="status-message">{plcStatus}</div>
154
+
{/if}
155
+
156
+
{#if signupForBackups && backupSignupMessage}
157
+
<div>
158
+
<div class="status-message">{backupSignupMessage}</div>
159
+
{#if backupSignupError}
160
+
<div class="error-message">{backupSignupError}</div>
161
+
{/if}
162
+
163
+
</div>
164
+
{/if}
165
+
166
+
{#if done}
167
+
<div class="status-message">Congratulations! You have MOOved to a new PDS! Remember to use
168
+
your new PDS URL under "Hosting provider" when logging in on Bluesky. Can find more detail information
169
+
<a href={resolve('/info#cant-login')}>here.</a></div>
170
+
{:else }
171
+
<div>
172
+
<button type="submit">Sign the papers</button>
173
+
</div>
174
+
{/if}
175
+
176
+
177
+
</form>
178
+
</div>
+2
-2
web-ui/src/routes/restore/+page.svelte
+2
-2
web-ui/src/routes/restore/+page.svelte
···
2
2
import {Restore} from '@pds-moover/moover';
3
3
import MooHeader from '$lib/components/MooHeader.svelte';
4
4
import LoadingSpinner from '$lib/components/LoadingSpinner.svelte';
5
-
import {PUBLIC_XRPC_BASE} from '$env/static/public';
5
+
import {env} from '$env/dynamic/public';
6
6
import OgImage from '$lib/components/OgImage.svelte';
7
7
8
8
//Regexs to catch rotation key type
9
9
const HEX_REGEX = /^[0-9a-f]+$/i;
10
10
11
11
// Service instances
12
-
let restoreService = $state(new Restore(`https://${PUBLIC_XRPC_BASE}`));
12
+
let restoreService = $state(new Restore(`https://${env.PUBLIC_XRPC_BASE}`));
13
13
14
14
// Form inputs
15
15
let currentHandle = $state('');