Shows how to get repo export and walk it in TypeScript walktherepo.wisp.place

Walking start

+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
+3
.vscode/extensions.json
··· 1 + { 2 + "recommendations": ["svelte.svelte-vscode"] 3 + }
+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
··· 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
··· 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
··· 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 + <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
··· 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
··· 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 + <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
··· 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
··· 1 + import { mount } from 'svelte' 2 + import './app.css' 3 + import App from './App.svelte' 4 + 5 + const app = mount(App, { 6 + target: document.getElementById('app')!, 7 + }) 8 + 9 + export default app
+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
··· 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
··· 1 + { 2 + "files": [], 3 + "references": [ 4 + { "path": "./tsconfig.app.json" }, 5 + { "path": "./tsconfig.node.json" } 6 + ] 7 + }
+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 + }
+7
vite.config.ts
··· 1 + import { defineConfig } from 'vite' 2 + import { svelte } from '@sveltejs/vite-plugin-svelte' 3 + 4 + // https://vite.dev/config/ 5 + export default defineConfig({ 6 + plugins: [svelte()], 7 + })