+25
.gitignore
+25
.gitignore
···
1
+
# Logs
2
+
logs
3
+
*.log
4
+
npm-debug.log*
5
+
yarn-debug.log*
6
+
yarn-error.log*
7
+
pnpm-debug.log*
8
+
lerna-debug.log*
9
+
10
+
node_modules
11
+
dist
12
+
dist-ssr
13
+
*.local
14
+
15
+
# Editor directories and files
16
+
.vscode/*
17
+
!.vscode/extensions.json
18
+
.idea
19
+
.DS_Store
20
+
*.suo
21
+
*.ntvs*
22
+
*.njsproj
23
+
*.sln
24
+
*.sw?
25
+
.idea
+47
README.md
+47
README.md
···
1
+
# Svelte + TS + Vite
2
+
3
+
This template should help get you started developing with Svelte and TypeScript in Vite.
4
+
5
+
## Recommended IDE Setup
6
+
7
+
[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode).
8
+
9
+
## Need an official Svelte framework?
10
+
11
+
Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more.
12
+
13
+
## Technical considerations
14
+
15
+
**Why use this over SvelteKit?**
16
+
17
+
- It brings its own routing solution which might not be preferable for some users.
18
+
- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
19
+
20
+
This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project.
21
+
22
+
Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate.
23
+
24
+
**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?**
25
+
26
+
Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information.
27
+
28
+
**Why include `.vscode/extensions.json`?**
29
+
30
+
Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project.
31
+
32
+
**Why enable `allowJs` in the TS template?**
33
+
34
+
While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant.
35
+
36
+
**Why is HMR not preserving my local component state?**
37
+
38
+
HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr).
39
+
40
+
If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR.
41
+
42
+
```ts
43
+
// store.ts
44
+
// An extremely simple external store
45
+
import { writable } from 'svelte/store'
46
+
export default writable(0)
47
+
```
+13
index.html
+13
index.html
···
1
+
<!doctype html>
2
+
<html lang="en">
3
+
<head>
4
+
<meta charset="UTF-8" />
5
+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+
<title>repo-walk-example</title>
8
+
</head>
9
+
<body>
10
+
<div id="app"></div>
11
+
<script type="module" src="/src/main.ts"></script>
12
+
</body>
13
+
</html>
+26
package.json
+26
package.json
···
1
+
{
2
+
"name": "repo-walk-example",
3
+
"private": true,
4
+
"version": "0.0.0",
5
+
"type": "module",
6
+
"scripts": {
7
+
"dev": "vite",
8
+
"build": "vite build",
9
+
"preview": "vite preview",
10
+
"check": "svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json"
11
+
},
12
+
"devDependencies": {
13
+
"@sveltejs/vite-plugin-svelte": "^6.2.1",
14
+
"@tsconfig/svelte": "^5.0.6",
15
+
"@types/node": "^24.10.1",
16
+
"svelte": "^5.43.8",
17
+
"svelte-check": "^4.3.4",
18
+
"typescript": "~5.9.3",
19
+
"vite": "^7.2.4"
20
+
},
21
+
"dependencies": {
22
+
"@atproto-labs/did-resolver": "^0.2.5",
23
+
"@atproto-labs/handle-resolver": "^0.3.5",
24
+
"@atproto/identity": "^0.4.10"
25
+
}
26
+
}
+1081
pnpm-lock.yaml
+1081
pnpm-lock.yaml
···
1
+
lockfileVersion: '9.0'
2
+
3
+
settings:
4
+
autoInstallPeers: true
5
+
excludeLinksFromLockfile: false
6
+
7
+
importers:
8
+
9
+
.:
10
+
dependencies:
11
+
'@atproto-labs/did-resolver':
12
+
specifier: ^0.2.5
13
+
version: 0.2.5
14
+
'@atproto-labs/handle-resolver':
15
+
specifier: ^0.3.5
16
+
version: 0.3.5
17
+
'@atproto/identity':
18
+
specifier: ^0.4.10
19
+
version: 0.4.10
20
+
devDependencies:
21
+
'@sveltejs/vite-plugin-svelte':
22
+
specifier: ^6.2.1
23
+
version: 6.2.3(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.4))
24
+
'@tsconfig/svelte':
25
+
specifier: ^5.0.6
26
+
version: 5.0.6
27
+
'@types/node':
28
+
specifier: ^24.10.1
29
+
version: 24.10.4
30
+
svelte:
31
+
specifier: ^5.43.8
32
+
version: 5.46.1
33
+
svelte-check:
34
+
specifier: ^4.3.4
35
+
version: 4.3.5(picomatch@4.0.3)(svelte@5.46.1)(typescript@5.9.3)
36
+
typescript:
37
+
specifier: ~5.9.3
38
+
version: 5.9.3
39
+
vite:
40
+
specifier: ^7.2.4
41
+
version: 7.3.1(@types/node@24.10.4)
42
+
43
+
packages:
44
+
45
+
'@atproto-labs/did-resolver@0.2.5':
46
+
resolution: {integrity: sha512-he7EC6OMSifNs01a4RT9mta/yYitoKDzlK9ty2TFV5Uj/+HpB4vYMRdIDFrRW0Hcsehy90E2t/dw0t7361MEKQ==}
47
+
48
+
'@atproto-labs/fetch@0.2.3':
49
+
resolution: {integrity: sha512-NZtbJOCbxKUFRFKMpamT38PUQMY0hX0p7TG5AEYOPhZKZEP7dHZ1K2s1aB8MdVH0qxmqX7nQleNrrvLf09Zfdw==}
50
+
51
+
'@atproto-labs/handle-resolver@0.3.5':
52
+
resolution: {integrity: sha512-r3b+plCh/0arN535Aool9gL6yTSbAPDOyReURbA2TWAaeW4vrSJPwR6yYUx0k0vmVPjkZPIdUVd63bG/+VG5MA==}
53
+
54
+
'@atproto-labs/pipe@0.1.1':
55
+
resolution: {integrity: sha512-hdNw2oUs2B6BN1lp+32pF7cp8EMKuIN5Qok2Vvv/aOpG/3tNSJ9YkvfI0k6Zd188LeDDYRUpYpxcoFIcGH/FNg==}
56
+
57
+
'@atproto-labs/simple-store-memory@0.1.4':
58
+
resolution: {integrity: sha512-3mKY4dP8I7yKPFj9VKpYyCRzGJOi5CEpOLPlRhoJyLmgs3J4RzDrjn323Oakjz2Aj2JzRU/AIvWRAZVhpYNJHw==}
59
+
60
+
'@atproto-labs/simple-store@0.3.0':
61
+
resolution: {integrity: sha512-nOb6ONKBRJHRlukW1sVawUkBqReLlLx6hT35VS3imaNPwiXDxLnTK7lxw3Lrl9k5yugSBDQAkZAq3MPTEFSUBQ==}
62
+
63
+
'@atproto/common-web@0.4.11':
64
+
resolution: {integrity: sha512-VHejNmSABU8/03VrQ3e36AmT5U3UIeio+qSUqCrO1oNgrJcWfGy1rpj0FVtUugWF8Un29+yzkukzWGZfXL70rQ==}
65
+
66
+
'@atproto/crypto@0.4.5':
67
+
resolution: {integrity: sha512-n40aKkMoCatP0u9Yvhrdk6fXyOHFDDbkdm4h4HCyWW+KlKl8iXfD5iV+ECq+w5BM+QH25aIpt3/j6EUNerhLxw==}
68
+
engines: {node: '>=18.7.0'}
69
+
70
+
'@atproto/did@0.2.4':
71
+
resolution: {integrity: sha512-nxNiCgXeo7pfjojq9fpfZxCO0X0xUipNVKW+AHNZwQKiUDt6zYL0VXEfm8HBUwQOCmKvj2pRRSM1Cur+tUWk3g==}
72
+
73
+
'@atproto/identity@0.4.10':
74
+
resolution: {integrity: sha512-nQbzDLXOhM8p/wo0cTh5DfMSOSHzj6jizpodX37LJ4S1TZzumSxAjHEZa5Rev3JaoD5uSWMVE0MmKEGWkPPvfQ==}
75
+
engines: {node: '>=18.7.0'}
76
+
77
+
'@atproto/lex-data@0.0.7':
78
+
resolution: {integrity: sha512-W/Q5o9o7n2Sv3UywckChu01X5lwQUtaiiOkGJLnRsdkQTyC6813nPgY+p2sG7NwwM+82lu+FUV9fE/Ul3VqaJw==}
79
+
80
+
'@atproto/lex-json@0.0.7':
81
+
resolution: {integrity: sha512-bjNPD5M/MhLfjNM7tcxuls80UgXpHqxdOxDXEUouAtZQV/nIDhGjmNUvKxOmOgnDsiZRnT2g5y3onrnjH3a44g==}
82
+
83
+
'@atproto/syntax@0.4.2':
84
+
resolution: {integrity: sha512-X9XSRPinBy/0VQ677j8VXlBsYSsUXaiqxWVpGGxJYsAhugdQRb0jqaVKJFtm6RskeNkV6y9xclSUi9UYG/COrA==}
85
+
86
+
'@esbuild/aix-ppc64@0.27.2':
87
+
resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==}
88
+
engines: {node: '>=18'}
89
+
cpu: [ppc64]
90
+
os: [aix]
91
+
92
+
'@esbuild/android-arm64@0.27.2':
93
+
resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==}
94
+
engines: {node: '>=18'}
95
+
cpu: [arm64]
96
+
os: [android]
97
+
98
+
'@esbuild/android-arm@0.27.2':
99
+
resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==}
100
+
engines: {node: '>=18'}
101
+
cpu: [arm]
102
+
os: [android]
103
+
104
+
'@esbuild/android-x64@0.27.2':
105
+
resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==}
106
+
engines: {node: '>=18'}
107
+
cpu: [x64]
108
+
os: [android]
109
+
110
+
'@esbuild/darwin-arm64@0.27.2':
111
+
resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==}
112
+
engines: {node: '>=18'}
113
+
cpu: [arm64]
114
+
os: [darwin]
115
+
116
+
'@esbuild/darwin-x64@0.27.2':
117
+
resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==}
118
+
engines: {node: '>=18'}
119
+
cpu: [x64]
120
+
os: [darwin]
121
+
122
+
'@esbuild/freebsd-arm64@0.27.2':
123
+
resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==}
124
+
engines: {node: '>=18'}
125
+
cpu: [arm64]
126
+
os: [freebsd]
127
+
128
+
'@esbuild/freebsd-x64@0.27.2':
129
+
resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==}
130
+
engines: {node: '>=18'}
131
+
cpu: [x64]
132
+
os: [freebsd]
133
+
134
+
'@esbuild/linux-arm64@0.27.2':
135
+
resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==}
136
+
engines: {node: '>=18'}
137
+
cpu: [arm64]
138
+
os: [linux]
139
+
140
+
'@esbuild/linux-arm@0.27.2':
141
+
resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==}
142
+
engines: {node: '>=18'}
143
+
cpu: [arm]
144
+
os: [linux]
145
+
146
+
'@esbuild/linux-ia32@0.27.2':
147
+
resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==}
148
+
engines: {node: '>=18'}
149
+
cpu: [ia32]
150
+
os: [linux]
151
+
152
+
'@esbuild/linux-loong64@0.27.2':
153
+
resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==}
154
+
engines: {node: '>=18'}
155
+
cpu: [loong64]
156
+
os: [linux]
157
+
158
+
'@esbuild/linux-mips64el@0.27.2':
159
+
resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==}
160
+
engines: {node: '>=18'}
161
+
cpu: [mips64el]
162
+
os: [linux]
163
+
164
+
'@esbuild/linux-ppc64@0.27.2':
165
+
resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==}
166
+
engines: {node: '>=18'}
167
+
cpu: [ppc64]
168
+
os: [linux]
169
+
170
+
'@esbuild/linux-riscv64@0.27.2':
171
+
resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==}
172
+
engines: {node: '>=18'}
173
+
cpu: [riscv64]
174
+
os: [linux]
175
+
176
+
'@esbuild/linux-s390x@0.27.2':
177
+
resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==}
178
+
engines: {node: '>=18'}
179
+
cpu: [s390x]
180
+
os: [linux]
181
+
182
+
'@esbuild/linux-x64@0.27.2':
183
+
resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==}
184
+
engines: {node: '>=18'}
185
+
cpu: [x64]
186
+
os: [linux]
187
+
188
+
'@esbuild/netbsd-arm64@0.27.2':
189
+
resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==}
190
+
engines: {node: '>=18'}
191
+
cpu: [arm64]
192
+
os: [netbsd]
193
+
194
+
'@esbuild/netbsd-x64@0.27.2':
195
+
resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==}
196
+
engines: {node: '>=18'}
197
+
cpu: [x64]
198
+
os: [netbsd]
199
+
200
+
'@esbuild/openbsd-arm64@0.27.2':
201
+
resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==}
202
+
engines: {node: '>=18'}
203
+
cpu: [arm64]
204
+
os: [openbsd]
205
+
206
+
'@esbuild/openbsd-x64@0.27.2':
207
+
resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==}
208
+
engines: {node: '>=18'}
209
+
cpu: [x64]
210
+
os: [openbsd]
211
+
212
+
'@esbuild/openharmony-arm64@0.27.2':
213
+
resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==}
214
+
engines: {node: '>=18'}
215
+
cpu: [arm64]
216
+
os: [openharmony]
217
+
218
+
'@esbuild/sunos-x64@0.27.2':
219
+
resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==}
220
+
engines: {node: '>=18'}
221
+
cpu: [x64]
222
+
os: [sunos]
223
+
224
+
'@esbuild/win32-arm64@0.27.2':
225
+
resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==}
226
+
engines: {node: '>=18'}
227
+
cpu: [arm64]
228
+
os: [win32]
229
+
230
+
'@esbuild/win32-ia32@0.27.2':
231
+
resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==}
232
+
engines: {node: '>=18'}
233
+
cpu: [ia32]
234
+
os: [win32]
235
+
236
+
'@esbuild/win32-x64@0.27.2':
237
+
resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==}
238
+
engines: {node: '>=18'}
239
+
cpu: [x64]
240
+
os: [win32]
241
+
242
+
'@jridgewell/gen-mapping@0.3.13':
243
+
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
244
+
245
+
'@jridgewell/remapping@2.3.5':
246
+
resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
247
+
248
+
'@jridgewell/resolve-uri@3.1.2':
249
+
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
250
+
engines: {node: '>=6.0.0'}
251
+
252
+
'@jridgewell/sourcemap-codec@1.5.5':
253
+
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
254
+
255
+
'@jridgewell/trace-mapping@0.3.31':
256
+
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
257
+
258
+
'@noble/curves@1.9.7':
259
+
resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
260
+
engines: {node: ^14.21.3 || >=16}
261
+
262
+
'@noble/hashes@1.8.0':
263
+
resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
264
+
engines: {node: ^14.21.3 || >=16}
265
+
266
+
'@rollup/rollup-android-arm-eabi@4.55.1':
267
+
resolution: {integrity: sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==}
268
+
cpu: [arm]
269
+
os: [android]
270
+
271
+
'@rollup/rollup-android-arm64@4.55.1':
272
+
resolution: {integrity: sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==}
273
+
cpu: [arm64]
274
+
os: [android]
275
+
276
+
'@rollup/rollup-darwin-arm64@4.55.1':
277
+
resolution: {integrity: sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==}
278
+
cpu: [arm64]
279
+
os: [darwin]
280
+
281
+
'@rollup/rollup-darwin-x64@4.55.1':
282
+
resolution: {integrity: sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==}
283
+
cpu: [x64]
284
+
os: [darwin]
285
+
286
+
'@rollup/rollup-freebsd-arm64@4.55.1':
287
+
resolution: {integrity: sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==}
288
+
cpu: [arm64]
289
+
os: [freebsd]
290
+
291
+
'@rollup/rollup-freebsd-x64@4.55.1':
292
+
resolution: {integrity: sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==}
293
+
cpu: [x64]
294
+
os: [freebsd]
295
+
296
+
'@rollup/rollup-linux-arm-gnueabihf@4.55.1':
297
+
resolution: {integrity: sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==}
298
+
cpu: [arm]
299
+
os: [linux]
300
+
301
+
'@rollup/rollup-linux-arm-musleabihf@4.55.1':
302
+
resolution: {integrity: sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==}
303
+
cpu: [arm]
304
+
os: [linux]
305
+
306
+
'@rollup/rollup-linux-arm64-gnu@4.55.1':
307
+
resolution: {integrity: sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==}
308
+
cpu: [arm64]
309
+
os: [linux]
310
+
311
+
'@rollup/rollup-linux-arm64-musl@4.55.1':
312
+
resolution: {integrity: sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==}
313
+
cpu: [arm64]
314
+
os: [linux]
315
+
316
+
'@rollup/rollup-linux-loong64-gnu@4.55.1':
317
+
resolution: {integrity: sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==}
318
+
cpu: [loong64]
319
+
os: [linux]
320
+
321
+
'@rollup/rollup-linux-loong64-musl@4.55.1':
322
+
resolution: {integrity: sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==}
323
+
cpu: [loong64]
324
+
os: [linux]
325
+
326
+
'@rollup/rollup-linux-ppc64-gnu@4.55.1':
327
+
resolution: {integrity: sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==}
328
+
cpu: [ppc64]
329
+
os: [linux]
330
+
331
+
'@rollup/rollup-linux-ppc64-musl@4.55.1':
332
+
resolution: {integrity: sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==}
333
+
cpu: [ppc64]
334
+
os: [linux]
335
+
336
+
'@rollup/rollup-linux-riscv64-gnu@4.55.1':
337
+
resolution: {integrity: sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==}
338
+
cpu: [riscv64]
339
+
os: [linux]
340
+
341
+
'@rollup/rollup-linux-riscv64-musl@4.55.1':
342
+
resolution: {integrity: sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==}
343
+
cpu: [riscv64]
344
+
os: [linux]
345
+
346
+
'@rollup/rollup-linux-s390x-gnu@4.55.1':
347
+
resolution: {integrity: sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==}
348
+
cpu: [s390x]
349
+
os: [linux]
350
+
351
+
'@rollup/rollup-linux-x64-gnu@4.55.1':
352
+
resolution: {integrity: sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==}
353
+
cpu: [x64]
354
+
os: [linux]
355
+
356
+
'@rollup/rollup-linux-x64-musl@4.55.1':
357
+
resolution: {integrity: sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==}
358
+
cpu: [x64]
359
+
os: [linux]
360
+
361
+
'@rollup/rollup-openbsd-x64@4.55.1':
362
+
resolution: {integrity: sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==}
363
+
cpu: [x64]
364
+
os: [openbsd]
365
+
366
+
'@rollup/rollup-openharmony-arm64@4.55.1':
367
+
resolution: {integrity: sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==}
368
+
cpu: [arm64]
369
+
os: [openharmony]
370
+
371
+
'@rollup/rollup-win32-arm64-msvc@4.55.1':
372
+
resolution: {integrity: sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==}
373
+
cpu: [arm64]
374
+
os: [win32]
375
+
376
+
'@rollup/rollup-win32-ia32-msvc@4.55.1':
377
+
resolution: {integrity: sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==}
378
+
cpu: [ia32]
379
+
os: [win32]
380
+
381
+
'@rollup/rollup-win32-x64-gnu@4.55.1':
382
+
resolution: {integrity: sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==}
383
+
cpu: [x64]
384
+
os: [win32]
385
+
386
+
'@rollup/rollup-win32-x64-msvc@4.55.1':
387
+
resolution: {integrity: sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==}
388
+
cpu: [x64]
389
+
os: [win32]
390
+
391
+
'@sveltejs/acorn-typescript@1.0.8':
392
+
resolution: {integrity: sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==}
393
+
peerDependencies:
394
+
acorn: ^8.9.0
395
+
396
+
'@sveltejs/vite-plugin-svelte-inspector@5.0.2':
397
+
resolution: {integrity: sha512-TZzRTcEtZffICSAoZGkPSl6Etsj2torOVrx6Uw0KpXxrec9Gg6jFWQ60Q3+LmNGfZSxHRCZL7vXVZIWmuV50Ig==}
398
+
engines: {node: ^20.19 || ^22.12 || >=24}
399
+
peerDependencies:
400
+
'@sveltejs/vite-plugin-svelte': ^6.0.0-next.0
401
+
svelte: ^5.0.0
402
+
vite: ^6.3.0 || ^7.0.0
403
+
404
+
'@sveltejs/vite-plugin-svelte@6.2.3':
405
+
resolution: {integrity: sha512-a+uxqQ9j6Lxmq4plbGaNdM9hgDCZyxAv/yvuyF5iWoA2H5icZkqD3rdK155ZQgFLX2lc3NvahHG4OgKpYqYPiQ==}
406
+
engines: {node: ^20.19 || ^22.12 || >=24}
407
+
peerDependencies:
408
+
svelte: ^5.0.0
409
+
vite: ^6.3.0 || ^7.0.0
410
+
411
+
'@tsconfig/svelte@5.0.6':
412
+
resolution: {integrity: sha512-yGxYL0I9eETH1/DR9qVJey4DAsCdeau4a9wYPKuXfEhm8lFO8wg+LLYJjIpAm6Fw7HSlhepPhYPDop75485yWQ==}
413
+
414
+
'@types/estree@1.0.8':
415
+
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
416
+
417
+
'@types/node@24.10.4':
418
+
resolution: {integrity: sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==}
419
+
420
+
acorn@8.15.0:
421
+
resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
422
+
engines: {node: '>=0.4.0'}
423
+
hasBin: true
424
+
425
+
aria-query@5.3.2:
426
+
resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
427
+
engines: {node: '>= 0.4'}
428
+
429
+
axobject-query@4.1.0:
430
+
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
431
+
engines: {node: '>= 0.4'}
432
+
433
+
chokidar@4.0.3:
434
+
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
435
+
engines: {node: '>= 14.16.0'}
436
+
437
+
clsx@2.1.1:
438
+
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
439
+
engines: {node: '>=6'}
440
+
441
+
deepmerge@4.3.1:
442
+
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
443
+
engines: {node: '>=0.10.0'}
444
+
445
+
devalue@5.6.1:
446
+
resolution: {integrity: sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==}
447
+
448
+
esbuild@0.27.2:
449
+
resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==}
450
+
engines: {node: '>=18'}
451
+
hasBin: true
452
+
453
+
esm-env@1.2.2:
454
+
resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==}
455
+
456
+
esrap@2.2.1:
457
+
resolution: {integrity: sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==}
458
+
459
+
fdir@6.5.0:
460
+
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
461
+
engines: {node: '>=12.0.0'}
462
+
peerDependencies:
463
+
picomatch: ^3 || ^4
464
+
peerDependenciesMeta:
465
+
picomatch:
466
+
optional: true
467
+
468
+
fsevents@2.3.3:
469
+
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
470
+
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
471
+
os: [darwin]
472
+
473
+
is-reference@3.0.3:
474
+
resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}
475
+
476
+
locate-character@3.0.0:
477
+
resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
478
+
479
+
lru-cache@10.4.3:
480
+
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
481
+
482
+
magic-string@0.30.21:
483
+
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
484
+
485
+
mri@1.2.0:
486
+
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
487
+
engines: {node: '>=4'}
488
+
489
+
multiformats@9.9.0:
490
+
resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==}
491
+
492
+
nanoid@3.3.11:
493
+
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
494
+
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
495
+
hasBin: true
496
+
497
+
obug@2.1.1:
498
+
resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==}
499
+
500
+
picocolors@1.1.1:
501
+
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
502
+
503
+
picomatch@4.0.3:
504
+
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
505
+
engines: {node: '>=12'}
506
+
507
+
postcss@8.5.6:
508
+
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
509
+
engines: {node: ^10 || ^12 || >=14}
510
+
511
+
readdirp@4.1.2:
512
+
resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
513
+
engines: {node: '>= 14.18.0'}
514
+
515
+
rollup@4.55.1:
516
+
resolution: {integrity: sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==}
517
+
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
518
+
hasBin: true
519
+
520
+
sade@1.8.1:
521
+
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
522
+
engines: {node: '>=6'}
523
+
524
+
source-map-js@1.2.1:
525
+
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
526
+
engines: {node: '>=0.10.0'}
527
+
528
+
svelte-check@4.3.5:
529
+
resolution: {integrity: sha512-e4VWZETyXaKGhpkxOXP+B/d0Fp/zKViZoJmneZWe/05Y2aqSKj3YN2nLfYPJBQ87WEiY4BQCQ9hWGu9mPT1a1Q==}
530
+
engines: {node: '>= 18.0.0'}
531
+
hasBin: true
532
+
peerDependencies:
533
+
svelte: ^4.0.0 || ^5.0.0-next.0
534
+
typescript: '>=5.0.0'
535
+
536
+
svelte@5.46.1:
537
+
resolution: {integrity: sha512-ynjfCHD3nP2el70kN5Pmg37sSi0EjOm9FgHYQdC4giWG/hzO3AatzXXJJgP305uIhGQxSufJLuYWtkY8uK/8RA==}
538
+
engines: {node: '>=18'}
539
+
540
+
tinyglobby@0.2.15:
541
+
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
542
+
engines: {node: '>=12.0.0'}
543
+
544
+
tslib@2.8.1:
545
+
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
546
+
547
+
typescript@5.9.3:
548
+
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
549
+
engines: {node: '>=14.17'}
550
+
hasBin: true
551
+
552
+
uint8arrays@3.0.0:
553
+
resolution: {integrity: sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==}
554
+
555
+
undici-types@7.16.0:
556
+
resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
557
+
558
+
unicode-segmenter@0.14.5:
559
+
resolution: {integrity: sha512-jHGmj2LUuqDcX3hqY12Ql+uhUTn8huuxNZGq7GvtF6bSybzH3aFgedYu/KTzQStEgt1Ra2F3HxadNXsNjb3m3g==}
560
+
561
+
vite@7.3.1:
562
+
resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==}
563
+
engines: {node: ^20.19.0 || >=22.12.0}
564
+
hasBin: true
565
+
peerDependencies:
566
+
'@types/node': ^20.19.0 || >=22.12.0
567
+
jiti: '>=1.21.0'
568
+
less: ^4.0.0
569
+
lightningcss: ^1.21.0
570
+
sass: ^1.70.0
571
+
sass-embedded: ^1.70.0
572
+
stylus: '>=0.54.8'
573
+
sugarss: ^5.0.0
574
+
terser: ^5.16.0
575
+
tsx: ^4.8.1
576
+
yaml: ^2.4.2
577
+
peerDependenciesMeta:
578
+
'@types/node':
579
+
optional: true
580
+
jiti:
581
+
optional: true
582
+
less:
583
+
optional: true
584
+
lightningcss:
585
+
optional: true
586
+
sass:
587
+
optional: true
588
+
sass-embedded:
589
+
optional: true
590
+
stylus:
591
+
optional: true
592
+
sugarss:
593
+
optional: true
594
+
terser:
595
+
optional: true
596
+
tsx:
597
+
optional: true
598
+
yaml:
599
+
optional: true
600
+
601
+
vitefu@1.1.1:
602
+
resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==}
603
+
peerDependencies:
604
+
vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0
605
+
peerDependenciesMeta:
606
+
vite:
607
+
optional: true
608
+
609
+
zimmerframe@1.1.4:
610
+
resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==}
611
+
612
+
zod@3.25.76:
613
+
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
614
+
615
+
snapshots:
616
+
617
+
'@atproto-labs/did-resolver@0.2.5':
618
+
dependencies:
619
+
'@atproto-labs/fetch': 0.2.3
620
+
'@atproto-labs/pipe': 0.1.1
621
+
'@atproto-labs/simple-store': 0.3.0
622
+
'@atproto-labs/simple-store-memory': 0.1.4
623
+
'@atproto/did': 0.2.4
624
+
zod: 3.25.76
625
+
626
+
'@atproto-labs/fetch@0.2.3':
627
+
dependencies:
628
+
'@atproto-labs/pipe': 0.1.1
629
+
630
+
'@atproto-labs/handle-resolver@0.3.5':
631
+
dependencies:
632
+
'@atproto-labs/simple-store': 0.3.0
633
+
'@atproto-labs/simple-store-memory': 0.1.4
634
+
'@atproto/did': 0.2.4
635
+
zod: 3.25.76
636
+
637
+
'@atproto-labs/pipe@0.1.1': {}
638
+
639
+
'@atproto-labs/simple-store-memory@0.1.4':
640
+
dependencies:
641
+
'@atproto-labs/simple-store': 0.3.0
642
+
lru-cache: 10.4.3
643
+
644
+
'@atproto-labs/simple-store@0.3.0': {}
645
+
646
+
'@atproto/common-web@0.4.11':
647
+
dependencies:
648
+
'@atproto/lex-data': 0.0.7
649
+
'@atproto/lex-json': 0.0.7
650
+
zod: 3.25.76
651
+
652
+
'@atproto/crypto@0.4.5':
653
+
dependencies:
654
+
'@noble/curves': 1.9.7
655
+
'@noble/hashes': 1.8.0
656
+
uint8arrays: 3.0.0
657
+
658
+
'@atproto/did@0.2.4':
659
+
dependencies:
660
+
zod: 3.25.76
661
+
662
+
'@atproto/identity@0.4.10':
663
+
dependencies:
664
+
'@atproto/common-web': 0.4.11
665
+
'@atproto/crypto': 0.4.5
666
+
667
+
'@atproto/lex-data@0.0.7':
668
+
dependencies:
669
+
'@atproto/syntax': 0.4.2
670
+
multiformats: 9.9.0
671
+
tslib: 2.8.1
672
+
uint8arrays: 3.0.0
673
+
unicode-segmenter: 0.14.5
674
+
675
+
'@atproto/lex-json@0.0.7':
676
+
dependencies:
677
+
'@atproto/lex-data': 0.0.7
678
+
tslib: 2.8.1
679
+
680
+
'@atproto/syntax@0.4.2': {}
681
+
682
+
'@esbuild/aix-ppc64@0.27.2':
683
+
optional: true
684
+
685
+
'@esbuild/android-arm64@0.27.2':
686
+
optional: true
687
+
688
+
'@esbuild/android-arm@0.27.2':
689
+
optional: true
690
+
691
+
'@esbuild/android-x64@0.27.2':
692
+
optional: true
693
+
694
+
'@esbuild/darwin-arm64@0.27.2':
695
+
optional: true
696
+
697
+
'@esbuild/darwin-x64@0.27.2':
698
+
optional: true
699
+
700
+
'@esbuild/freebsd-arm64@0.27.2':
701
+
optional: true
702
+
703
+
'@esbuild/freebsd-x64@0.27.2':
704
+
optional: true
705
+
706
+
'@esbuild/linux-arm64@0.27.2':
707
+
optional: true
708
+
709
+
'@esbuild/linux-arm@0.27.2':
710
+
optional: true
711
+
712
+
'@esbuild/linux-ia32@0.27.2':
713
+
optional: true
714
+
715
+
'@esbuild/linux-loong64@0.27.2':
716
+
optional: true
717
+
718
+
'@esbuild/linux-mips64el@0.27.2':
719
+
optional: true
720
+
721
+
'@esbuild/linux-ppc64@0.27.2':
722
+
optional: true
723
+
724
+
'@esbuild/linux-riscv64@0.27.2':
725
+
optional: true
726
+
727
+
'@esbuild/linux-s390x@0.27.2':
728
+
optional: true
729
+
730
+
'@esbuild/linux-x64@0.27.2':
731
+
optional: true
732
+
733
+
'@esbuild/netbsd-arm64@0.27.2':
734
+
optional: true
735
+
736
+
'@esbuild/netbsd-x64@0.27.2':
737
+
optional: true
738
+
739
+
'@esbuild/openbsd-arm64@0.27.2':
740
+
optional: true
741
+
742
+
'@esbuild/openbsd-x64@0.27.2':
743
+
optional: true
744
+
745
+
'@esbuild/openharmony-arm64@0.27.2':
746
+
optional: true
747
+
748
+
'@esbuild/sunos-x64@0.27.2':
749
+
optional: true
750
+
751
+
'@esbuild/win32-arm64@0.27.2':
752
+
optional: true
753
+
754
+
'@esbuild/win32-ia32@0.27.2':
755
+
optional: true
756
+
757
+
'@esbuild/win32-x64@0.27.2':
758
+
optional: true
759
+
760
+
'@jridgewell/gen-mapping@0.3.13':
761
+
dependencies:
762
+
'@jridgewell/sourcemap-codec': 1.5.5
763
+
'@jridgewell/trace-mapping': 0.3.31
764
+
765
+
'@jridgewell/remapping@2.3.5':
766
+
dependencies:
767
+
'@jridgewell/gen-mapping': 0.3.13
768
+
'@jridgewell/trace-mapping': 0.3.31
769
+
770
+
'@jridgewell/resolve-uri@3.1.2': {}
771
+
772
+
'@jridgewell/sourcemap-codec@1.5.5': {}
773
+
774
+
'@jridgewell/trace-mapping@0.3.31':
775
+
dependencies:
776
+
'@jridgewell/resolve-uri': 3.1.2
777
+
'@jridgewell/sourcemap-codec': 1.5.5
778
+
779
+
'@noble/curves@1.9.7':
780
+
dependencies:
781
+
'@noble/hashes': 1.8.0
782
+
783
+
'@noble/hashes@1.8.0': {}
784
+
785
+
'@rollup/rollup-android-arm-eabi@4.55.1':
786
+
optional: true
787
+
788
+
'@rollup/rollup-android-arm64@4.55.1':
789
+
optional: true
790
+
791
+
'@rollup/rollup-darwin-arm64@4.55.1':
792
+
optional: true
793
+
794
+
'@rollup/rollup-darwin-x64@4.55.1':
795
+
optional: true
796
+
797
+
'@rollup/rollup-freebsd-arm64@4.55.1':
798
+
optional: true
799
+
800
+
'@rollup/rollup-freebsd-x64@4.55.1':
801
+
optional: true
802
+
803
+
'@rollup/rollup-linux-arm-gnueabihf@4.55.1':
804
+
optional: true
805
+
806
+
'@rollup/rollup-linux-arm-musleabihf@4.55.1':
807
+
optional: true
808
+
809
+
'@rollup/rollup-linux-arm64-gnu@4.55.1':
810
+
optional: true
811
+
812
+
'@rollup/rollup-linux-arm64-musl@4.55.1':
813
+
optional: true
814
+
815
+
'@rollup/rollup-linux-loong64-gnu@4.55.1':
816
+
optional: true
817
+
818
+
'@rollup/rollup-linux-loong64-musl@4.55.1':
819
+
optional: true
820
+
821
+
'@rollup/rollup-linux-ppc64-gnu@4.55.1':
822
+
optional: true
823
+
824
+
'@rollup/rollup-linux-ppc64-musl@4.55.1':
825
+
optional: true
826
+
827
+
'@rollup/rollup-linux-riscv64-gnu@4.55.1':
828
+
optional: true
829
+
830
+
'@rollup/rollup-linux-riscv64-musl@4.55.1':
831
+
optional: true
832
+
833
+
'@rollup/rollup-linux-s390x-gnu@4.55.1':
834
+
optional: true
835
+
836
+
'@rollup/rollup-linux-x64-gnu@4.55.1':
837
+
optional: true
838
+
839
+
'@rollup/rollup-linux-x64-musl@4.55.1':
840
+
optional: true
841
+
842
+
'@rollup/rollup-openbsd-x64@4.55.1':
843
+
optional: true
844
+
845
+
'@rollup/rollup-openharmony-arm64@4.55.1':
846
+
optional: true
847
+
848
+
'@rollup/rollup-win32-arm64-msvc@4.55.1':
849
+
optional: true
850
+
851
+
'@rollup/rollup-win32-ia32-msvc@4.55.1':
852
+
optional: true
853
+
854
+
'@rollup/rollup-win32-x64-gnu@4.55.1':
855
+
optional: true
856
+
857
+
'@rollup/rollup-win32-x64-msvc@4.55.1':
858
+
optional: true
859
+
860
+
'@sveltejs/acorn-typescript@1.0.8(acorn@8.15.0)':
861
+
dependencies:
862
+
acorn: 8.15.0
863
+
864
+
'@sveltejs/vite-plugin-svelte-inspector@5.0.2(@sveltejs/vite-plugin-svelte@6.2.3(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.4)))(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.4))':
865
+
dependencies:
866
+
'@sveltejs/vite-plugin-svelte': 6.2.3(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.4))
867
+
obug: 2.1.1
868
+
svelte: 5.46.1
869
+
vite: 7.3.1(@types/node@24.10.4)
870
+
871
+
'@sveltejs/vite-plugin-svelte@6.2.3(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.4))':
872
+
dependencies:
873
+
'@sveltejs/vite-plugin-svelte-inspector': 5.0.2(@sveltejs/vite-plugin-svelte@6.2.3(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.4)))(svelte@5.46.1)(vite@7.3.1(@types/node@24.10.4))
874
+
deepmerge: 4.3.1
875
+
magic-string: 0.30.21
876
+
obug: 2.1.1
877
+
svelte: 5.46.1
878
+
vite: 7.3.1(@types/node@24.10.4)
879
+
vitefu: 1.1.1(vite@7.3.1(@types/node@24.10.4))
880
+
881
+
'@tsconfig/svelte@5.0.6': {}
882
+
883
+
'@types/estree@1.0.8': {}
884
+
885
+
'@types/node@24.10.4':
886
+
dependencies:
887
+
undici-types: 7.16.0
888
+
889
+
acorn@8.15.0: {}
890
+
891
+
aria-query@5.3.2: {}
892
+
893
+
axobject-query@4.1.0: {}
894
+
895
+
chokidar@4.0.3:
896
+
dependencies:
897
+
readdirp: 4.1.2
898
+
899
+
clsx@2.1.1: {}
900
+
901
+
deepmerge@4.3.1: {}
902
+
903
+
devalue@5.6.1: {}
904
+
905
+
esbuild@0.27.2:
906
+
optionalDependencies:
907
+
'@esbuild/aix-ppc64': 0.27.2
908
+
'@esbuild/android-arm': 0.27.2
909
+
'@esbuild/android-arm64': 0.27.2
910
+
'@esbuild/android-x64': 0.27.2
911
+
'@esbuild/darwin-arm64': 0.27.2
912
+
'@esbuild/darwin-x64': 0.27.2
913
+
'@esbuild/freebsd-arm64': 0.27.2
914
+
'@esbuild/freebsd-x64': 0.27.2
915
+
'@esbuild/linux-arm': 0.27.2
916
+
'@esbuild/linux-arm64': 0.27.2
917
+
'@esbuild/linux-ia32': 0.27.2
918
+
'@esbuild/linux-loong64': 0.27.2
919
+
'@esbuild/linux-mips64el': 0.27.2
920
+
'@esbuild/linux-ppc64': 0.27.2
921
+
'@esbuild/linux-riscv64': 0.27.2
922
+
'@esbuild/linux-s390x': 0.27.2
923
+
'@esbuild/linux-x64': 0.27.2
924
+
'@esbuild/netbsd-arm64': 0.27.2
925
+
'@esbuild/netbsd-x64': 0.27.2
926
+
'@esbuild/openbsd-arm64': 0.27.2
927
+
'@esbuild/openbsd-x64': 0.27.2
928
+
'@esbuild/openharmony-arm64': 0.27.2
929
+
'@esbuild/sunos-x64': 0.27.2
930
+
'@esbuild/win32-arm64': 0.27.2
931
+
'@esbuild/win32-ia32': 0.27.2
932
+
'@esbuild/win32-x64': 0.27.2
933
+
934
+
esm-env@1.2.2: {}
935
+
936
+
esrap@2.2.1:
937
+
dependencies:
938
+
'@jridgewell/sourcemap-codec': 1.5.5
939
+
940
+
fdir@6.5.0(picomatch@4.0.3):
941
+
optionalDependencies:
942
+
picomatch: 4.0.3
943
+
944
+
fsevents@2.3.3:
945
+
optional: true
946
+
947
+
is-reference@3.0.3:
948
+
dependencies:
949
+
'@types/estree': 1.0.8
950
+
951
+
locate-character@3.0.0: {}
952
+
953
+
lru-cache@10.4.3: {}
954
+
955
+
magic-string@0.30.21:
956
+
dependencies:
957
+
'@jridgewell/sourcemap-codec': 1.5.5
958
+
959
+
mri@1.2.0: {}
960
+
961
+
multiformats@9.9.0: {}
962
+
963
+
nanoid@3.3.11: {}
964
+
965
+
obug@2.1.1: {}
966
+
967
+
picocolors@1.1.1: {}
968
+
969
+
picomatch@4.0.3: {}
970
+
971
+
postcss@8.5.6:
972
+
dependencies:
973
+
nanoid: 3.3.11
974
+
picocolors: 1.1.1
975
+
source-map-js: 1.2.1
976
+
977
+
readdirp@4.1.2: {}
978
+
979
+
rollup@4.55.1:
980
+
dependencies:
981
+
'@types/estree': 1.0.8
982
+
optionalDependencies:
983
+
'@rollup/rollup-android-arm-eabi': 4.55.1
984
+
'@rollup/rollup-android-arm64': 4.55.1
985
+
'@rollup/rollup-darwin-arm64': 4.55.1
986
+
'@rollup/rollup-darwin-x64': 4.55.1
987
+
'@rollup/rollup-freebsd-arm64': 4.55.1
988
+
'@rollup/rollup-freebsd-x64': 4.55.1
989
+
'@rollup/rollup-linux-arm-gnueabihf': 4.55.1
990
+
'@rollup/rollup-linux-arm-musleabihf': 4.55.1
991
+
'@rollup/rollup-linux-arm64-gnu': 4.55.1
992
+
'@rollup/rollup-linux-arm64-musl': 4.55.1
993
+
'@rollup/rollup-linux-loong64-gnu': 4.55.1
994
+
'@rollup/rollup-linux-loong64-musl': 4.55.1
995
+
'@rollup/rollup-linux-ppc64-gnu': 4.55.1
996
+
'@rollup/rollup-linux-ppc64-musl': 4.55.1
997
+
'@rollup/rollup-linux-riscv64-gnu': 4.55.1
998
+
'@rollup/rollup-linux-riscv64-musl': 4.55.1
999
+
'@rollup/rollup-linux-s390x-gnu': 4.55.1
1000
+
'@rollup/rollup-linux-x64-gnu': 4.55.1
1001
+
'@rollup/rollup-linux-x64-musl': 4.55.1
1002
+
'@rollup/rollup-openbsd-x64': 4.55.1
1003
+
'@rollup/rollup-openharmony-arm64': 4.55.1
1004
+
'@rollup/rollup-win32-arm64-msvc': 4.55.1
1005
+
'@rollup/rollup-win32-ia32-msvc': 4.55.1
1006
+
'@rollup/rollup-win32-x64-gnu': 4.55.1
1007
+
'@rollup/rollup-win32-x64-msvc': 4.55.1
1008
+
fsevents: 2.3.3
1009
+
1010
+
sade@1.8.1:
1011
+
dependencies:
1012
+
mri: 1.2.0
1013
+
1014
+
source-map-js@1.2.1: {}
1015
+
1016
+
svelte-check@4.3.5(picomatch@4.0.3)(svelte@5.46.1)(typescript@5.9.3):
1017
+
dependencies:
1018
+
'@jridgewell/trace-mapping': 0.3.31
1019
+
chokidar: 4.0.3
1020
+
fdir: 6.5.0(picomatch@4.0.3)
1021
+
picocolors: 1.1.1
1022
+
sade: 1.8.1
1023
+
svelte: 5.46.1
1024
+
typescript: 5.9.3
1025
+
transitivePeerDependencies:
1026
+
- picomatch
1027
+
1028
+
svelte@5.46.1:
1029
+
dependencies:
1030
+
'@jridgewell/remapping': 2.3.5
1031
+
'@jridgewell/sourcemap-codec': 1.5.5
1032
+
'@sveltejs/acorn-typescript': 1.0.8(acorn@8.15.0)
1033
+
'@types/estree': 1.0.8
1034
+
acorn: 8.15.0
1035
+
aria-query: 5.3.2
1036
+
axobject-query: 4.1.0
1037
+
clsx: 2.1.1
1038
+
devalue: 5.6.1
1039
+
esm-env: 1.2.2
1040
+
esrap: 2.2.1
1041
+
is-reference: 3.0.3
1042
+
locate-character: 3.0.0
1043
+
magic-string: 0.30.21
1044
+
zimmerframe: 1.1.4
1045
+
1046
+
tinyglobby@0.2.15:
1047
+
dependencies:
1048
+
fdir: 6.5.0(picomatch@4.0.3)
1049
+
picomatch: 4.0.3
1050
+
1051
+
tslib@2.8.1: {}
1052
+
1053
+
typescript@5.9.3: {}
1054
+
1055
+
uint8arrays@3.0.0:
1056
+
dependencies:
1057
+
multiformats: 9.9.0
1058
+
1059
+
undici-types@7.16.0: {}
1060
+
1061
+
unicode-segmenter@0.14.5: {}
1062
+
1063
+
vite@7.3.1(@types/node@24.10.4):
1064
+
dependencies:
1065
+
esbuild: 0.27.2
1066
+
fdir: 6.5.0(picomatch@4.0.3)
1067
+
picomatch: 4.0.3
1068
+
postcss: 8.5.6
1069
+
rollup: 4.55.1
1070
+
tinyglobby: 0.2.15
1071
+
optionalDependencies:
1072
+
'@types/node': 24.10.4
1073
+
fsevents: 2.3.3
1074
+
1075
+
vitefu@1.1.1(vite@7.3.1(@types/node@24.10.4)):
1076
+
optionalDependencies:
1077
+
vite: 7.3.1(@types/node@24.10.4)
1078
+
1079
+
zimmerframe@1.1.4: {}
1080
+
1081
+
zod@3.25.76: {}
+1
public/vite.svg
+1
public/vite.svg
···
1
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
+21
src/App.svelte
+21
src/App.svelte
···
1
+
<script lang="ts">
2
+
3
+
import SearchForm from "./lib/SearchForm.svelte";
4
+
5
+
const resolvedResult = (did: string, pdsUrl: string) => {
6
+
console.log(did, pdsUrl);
7
+
}
8
+
</script>
9
+
10
+
<main>
11
+
<h1>Repo Walk Example</h1>
12
+
13
+
<div class="card">
14
+
<SearchForm resolvedResult={resolvedResult} />
15
+
</div>
16
+
17
+
</main>
18
+
19
+
<style>
20
+
21
+
</style>
+79
src/app.css
+79
src/app.css
···
1
+
:root {
2
+
font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
3
+
line-height: 1.5;
4
+
font-weight: 400;
5
+
6
+
color-scheme: light dark;
7
+
color: rgba(255, 255, 255, 0.87);
8
+
background-color: #242424;
9
+
10
+
font-synthesis: none;
11
+
text-rendering: optimizeLegibility;
12
+
-webkit-font-smoothing: antialiased;
13
+
-moz-osx-font-smoothing: grayscale;
14
+
}
15
+
16
+
a {
17
+
font-weight: 500;
18
+
color: #646cff;
19
+
text-decoration: inherit;
20
+
}
21
+
a:hover {
22
+
color: #535bf2;
23
+
}
24
+
25
+
body {
26
+
margin: 0;
27
+
display: flex;
28
+
place-items: start;
29
+
min-width: 320px;
30
+
min-height: 100vh;
31
+
}
32
+
33
+
h1 {
34
+
font-size: 3.2em;
35
+
line-height: 1.1;
36
+
}
37
+
38
+
.card {
39
+
padding: 2em;
40
+
}
41
+
42
+
#app {
43
+
max-width: 1280px;
44
+
margin: 0 auto;
45
+
padding: 2rem;
46
+
text-align: center;
47
+
}
48
+
49
+
button {
50
+
border-radius: 8px;
51
+
border: 1px solid transparent;
52
+
padding: 0.6em 1.2em;
53
+
font-size: 1em;
54
+
font-weight: 500;
55
+
font-family: inherit;
56
+
background-color: #1a1a1a;
57
+
cursor: pointer;
58
+
transition: border-color 0.25s;
59
+
}
60
+
button:hover {
61
+
border-color: #646cff;
62
+
}
63
+
button:focus,
64
+
button:focus-visible {
65
+
outline: 4px auto -webkit-focus-ring-color;
66
+
}
67
+
68
+
@media (prefers-color-scheme: light) {
69
+
:root {
70
+
color: #213547;
71
+
background-color: #ffffff;
72
+
}
73
+
a:hover {
74
+
color: #747bff;
75
+
}
76
+
button {
77
+
background-color: #f9f9f9;
78
+
}
79
+
}
+1
src/assets/svelte.svg
+1
src/assets/svelte.svg
···
1
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="26.6" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 308"><path fill="#FF3E00" d="M239.682 40.707C211.113-.182 154.69-12.301 113.895 13.69L42.247 59.356a82.198 82.198 0 0 0-37.135 55.056a86.566 86.566 0 0 0 8.536 55.576a82.425 82.425 0 0 0-12.296 30.719a87.596 87.596 0 0 0 14.964 66.244c28.574 40.893 84.997 53.007 125.787 27.016l71.648-45.664a82.182 82.182 0 0 0 37.135-55.057a86.601 86.601 0 0 0-8.53-55.577a82.409 82.409 0 0 0 12.29-30.718a87.573 87.573 0 0 0-14.963-66.244"></path><path fill="#FFF" d="M106.889 270.841c-23.102 6.007-47.497-3.036-61.103-22.648a52.685 52.685 0 0 1-9.003-39.85a49.978 49.978 0 0 1 1.713-6.693l1.35-4.115l3.671 2.697a92.447 92.447 0 0 0 28.036 14.007l2.663.808l-.245 2.659a16.067 16.067 0 0 0 2.89 10.656a17.143 17.143 0 0 0 18.397 6.828a15.786 15.786 0 0 0 4.403-1.935l71.67-45.672a14.922 14.922 0 0 0 6.734-9.977a15.923 15.923 0 0 0-2.713-12.011a17.156 17.156 0 0 0-18.404-6.832a15.78 15.78 0 0 0-4.396 1.933l-27.35 17.434a52.298 52.298 0 0 1-14.553 6.391c-23.101 6.007-47.497-3.036-61.101-22.649a52.681 52.681 0 0 1-9.004-39.849a49.428 49.428 0 0 1 22.34-33.114l71.664-45.677a52.218 52.218 0 0 1 14.563-6.398c23.101-6.007 47.497 3.036 61.101 22.648a52.685 52.685 0 0 1 9.004 39.85a50.559 50.559 0 0 1-1.713 6.692l-1.35 4.116l-3.67-2.693a92.373 92.373 0 0 0-28.037-14.013l-2.664-.809l.246-2.658a16.099 16.099 0 0 0-2.89-10.656a17.143 17.143 0 0 0-18.398-6.828a15.786 15.786 0 0 0-4.402 1.935l-71.67 45.674a14.898 14.898 0 0 0-6.73 9.975a15.9 15.9 0 0 0 2.709 12.012a17.156 17.156 0 0 0 18.404 6.832a15.841 15.841 0 0 0 4.402-1.935l27.345-17.427a52.147 52.147 0 0 1 14.552-6.397c23.101-6.006 47.497 3.037 61.102 22.65a52.681 52.681 0 0 1 9.003 39.848a49.453 49.453 0 0 1-22.34 33.12l-71.664 45.673a52.218 52.218 0 0 1-14.563 6.398"></path></svg>
+54
src/lib/SearchForm.svelte
+54
src/lib/SearchForm.svelte
···
1
+
<script lang="ts">
2
+
import { AtprotoDohHandleResolver} from "@atproto-labs/handle-resolver";
3
+
import { DidResolver } from "@atproto/identity"
4
+
5
+
const didResolver = new DidResolver({})
6
+
const handleResolver = new AtprotoDohHandleResolver({ dohEndpoint: 'https://cloudflare-dns.com/dns-query'});
7
+
8
+
let handleToLookUp = $state('');
9
+
let error: string | null = $state(null);
10
+
11
+
let { resolvedResult } = $props();
12
+
13
+
14
+
const searchForUser = async (event: Event) => {
15
+
event.preventDefault();
16
+
error = null;
17
+
18
+
let did = await handleResolver.resolve(handleToLookUp)
19
+
if (did === null) {
20
+
error = 'No result found';
21
+
return;
22
+
}
23
+
24
+
const didDoc = await didResolver.resolve(did);
25
+
if (!didDoc){
26
+
error = 'No did doc found';
27
+
return
28
+
}
29
+
if (!didDoc.service){
30
+
error = 'No services?';
31
+
return
32
+
}
33
+
const pds = didDoc?.service?.find(s => s.id === '#atproto_pds')
34
+
if (!pds){
35
+
error = 'No pds service found????';
36
+
return
37
+
}
38
+
const pdsUrl = pds.serviceEndpoint;
39
+
resolvedResult(did, pdsUrl)
40
+
}
41
+
42
+
43
+
44
+
</script>
45
+
46
+
<form onsubmit={searchForUser}>
47
+
<label for="search">ATProto Handle</label>
48
+
<input bind:value={handleToLookUp} id="search" type="text" placeholder="alice.bsky.social"/>
49
+
<button>Lookup</button>
50
+
<br>
51
+
{#if error}
52
+
<p style="color: red;">Error: {error}</p>
53
+
{/if}
54
+
</form>
+9
src/main.ts
+9
src/main.ts
+8
svelte.config.js
+8
svelte.config.js
···
1
+
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
2
+
3
+
/** @type {import("@sveltejs/vite-plugin-svelte").SvelteConfig} */
4
+
export default {
5
+
// Consult https://svelte.dev/docs#compile-time-svelte-preprocess
6
+
// for more information about preprocessors
7
+
preprocess: vitePreprocess(),
8
+
}
+21
tsconfig.app.json
+21
tsconfig.app.json
···
1
+
{
2
+
"extends": "@tsconfig/svelte/tsconfig.json",
3
+
"compilerOptions": {
4
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
5
+
"target": "ES2022",
6
+
"useDefineForClassFields": true,
7
+
"module": "ESNext",
8
+
"types": ["svelte", "vite/client"],
9
+
"noEmit": true,
10
+
/**
11
+
* Typecheck JS in `.svelte` and `.js` files by default.
12
+
* Disable checkJs if you'd like to use dynamic types in JS.
13
+
* Note that setting allowJs false does not prevent the use
14
+
* of JS in `.svelte` files.
15
+
*/
16
+
"allowJs": true,
17
+
"checkJs": true,
18
+
"moduleDetection": "force"
19
+
},
20
+
"include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"]
21
+
}
+7
tsconfig.json
+7
tsconfig.json
+26
tsconfig.node.json
+26
tsconfig.node.json
···
1
+
{
2
+
"compilerOptions": {
3
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4
+
"target": "ES2023",
5
+
"lib": ["ES2023"],
6
+
"module": "ESNext",
7
+
"types": ["node"],
8
+
"skipLibCheck": true,
9
+
10
+
/* Bundler mode */
11
+
"moduleResolution": "bundler",
12
+
"allowImportingTsExtensions": true,
13
+
"verbatimModuleSyntax": true,
14
+
"moduleDetection": "force",
15
+
"noEmit": true,
16
+
17
+
/* Linting */
18
+
"strict": true,
19
+
"noUnusedLocals": true,
20
+
"noUnusedParameters": true,
21
+
"erasableSyntaxOnly": true,
22
+
"noFallthroughCasesInSwitch": true,
23
+
"noUncheckedSideEffectImports": true
24
+
},
25
+
"include": ["vite.config.ts"]
26
+
}