├── .gitignore ├── .npmrc ├── .prettierrc ├── README.md ├── package.json ├── pnpm-lock.yaml ├── src ├── app.css ├── app.d.ts ├── app.html ├── lib │ ├── motion.ts │ └── utils.ts └── routes │ ├── +layout.svelte │ └── +page.svelte ├── static ├── favicon.png └── sfx │ ├── tally.mp3 │ └── transition.mp3 ├── svelte.config.js ├── tsconfig.json └── vite.config.ts /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /build 4 | /.svelte-kit 5 | /package 6 | .env 7 | .env.* 8 | !.env.example 9 | vite.config.js.timestamp-* 10 | vite.config.ts.timestamp-* 11 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true, 4 | "printWidth": 100 5 | } 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Svelte SVG Animation Library 2 | 3 | Learn how to make a SVG animation library with Svelte. 4 | 5 | ## Post 6 | 7 | ✍️ https://joyofcode.xyz/svg-animation-library 8 | 9 | ## Remote Development 10 | 11 | [](https://stackblitz.com/github/joysofcode/motion-svg) 12 | 13 | ## Local Development 14 | 15 | ### 🧑🤝🧑 Clone the project 16 | 17 | ```sh 18 | https://github.com/joysofcode/motion-svg.git 19 | ``` 20 | 21 | ### 📦️ Install dependencies 22 | 23 | ```sh 24 | pnpm i 25 | ``` 26 | 27 | ### 💿️ Run the development server 28 | 29 | ```sh 30 | pnpm run dev 31 | ``` 32 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "motion-svg", 3 | "type": "module", 4 | "scripts": { 5 | "dev": "vite dev", 6 | "build": "vite build", 7 | "preview": "vite preview", 8 | "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", 9 | "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" 10 | }, 11 | "devDependencies": { 12 | "@sveltejs/adapter-auto": "^2.0.0", 13 | "@sveltejs/kit": "^1.20.4", 14 | "@types/d3-interpolate": "^3.0.3", 15 | "svelte": "^4.0.5", 16 | "svelte-check": "^3.4.3", 17 | "tslib": "^2.4.1", 18 | "typescript": "^5.0.0", 19 | "vite": "^4.4.2" 20 | }, 21 | "dependencies": { 22 | "d3-interpolate": "^3.0.1" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | d3-interpolate: 9 | specifier: ^3.0.1 10 | version: 3.0.1 11 | 12 | devDependencies: 13 | '@sveltejs/adapter-auto': 14 | specifier: ^2.0.0 15 | version: 2.1.0(@sveltejs/kit@1.27.1) 16 | '@sveltejs/kit': 17 | specifier: ^1.20.4 18 | version: 1.27.1(svelte@4.2.2)(vite@4.5.0) 19 | '@types/d3-interpolate': 20 | specifier: ^3.0.3 21 | version: 3.0.3 22 | svelte: 23 | specifier: ^4.0.5 24 | version: 4.2.2 25 | svelte-check: 26 | specifier: ^3.4.3 27 | version: 3.5.2(svelte@4.2.2) 28 | tslib: 29 | specifier: ^2.4.1 30 | version: 2.6.2 31 | typescript: 32 | specifier: ^5.0.0 33 | version: 5.2.2 34 | vite: 35 | specifier: ^4.4.2 36 | version: 4.5.0 37 | 38 | packages: 39 | 40 | /@ampproject/remapping@2.2.1: 41 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} 42 | engines: {node: '>=6.0.0'} 43 | dependencies: 44 | '@jridgewell/gen-mapping': 0.3.3 45 | '@jridgewell/trace-mapping': 0.3.20 46 | dev: true 47 | 48 | /@esbuild/android-arm64@0.18.20: 49 | resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} 50 | engines: {node: '>=12'} 51 | cpu: [arm64] 52 | os: [android] 53 | requiresBuild: true 54 | dev: true 55 | optional: true 56 | 57 | /@esbuild/android-arm@0.18.20: 58 | resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} 59 | engines: {node: '>=12'} 60 | cpu: [arm] 61 | os: [android] 62 | requiresBuild: true 63 | dev: true 64 | optional: true 65 | 66 | /@esbuild/android-x64@0.18.20: 67 | resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} 68 | engines: {node: '>=12'} 69 | cpu: [x64] 70 | os: [android] 71 | requiresBuild: true 72 | dev: true 73 | optional: true 74 | 75 | /@esbuild/darwin-arm64@0.18.20: 76 | resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} 77 | engines: {node: '>=12'} 78 | cpu: [arm64] 79 | os: [darwin] 80 | requiresBuild: true 81 | dev: true 82 | optional: true 83 | 84 | /@esbuild/darwin-x64@0.18.20: 85 | resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} 86 | engines: {node: '>=12'} 87 | cpu: [x64] 88 | os: [darwin] 89 | requiresBuild: true 90 | dev: true 91 | optional: true 92 | 93 | /@esbuild/freebsd-arm64@0.18.20: 94 | resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} 95 | engines: {node: '>=12'} 96 | cpu: [arm64] 97 | os: [freebsd] 98 | requiresBuild: true 99 | dev: true 100 | optional: true 101 | 102 | /@esbuild/freebsd-x64@0.18.20: 103 | resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} 104 | engines: {node: '>=12'} 105 | cpu: [x64] 106 | os: [freebsd] 107 | requiresBuild: true 108 | dev: true 109 | optional: true 110 | 111 | /@esbuild/linux-arm64@0.18.20: 112 | resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} 113 | engines: {node: '>=12'} 114 | cpu: [arm64] 115 | os: [linux] 116 | requiresBuild: true 117 | dev: true 118 | optional: true 119 | 120 | /@esbuild/linux-arm@0.18.20: 121 | resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} 122 | engines: {node: '>=12'} 123 | cpu: [arm] 124 | os: [linux] 125 | requiresBuild: true 126 | dev: true 127 | optional: true 128 | 129 | /@esbuild/linux-ia32@0.18.20: 130 | resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} 131 | engines: {node: '>=12'} 132 | cpu: [ia32] 133 | os: [linux] 134 | requiresBuild: true 135 | dev: true 136 | optional: true 137 | 138 | /@esbuild/linux-loong64@0.18.20: 139 | resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} 140 | engines: {node: '>=12'} 141 | cpu: [loong64] 142 | os: [linux] 143 | requiresBuild: true 144 | dev: true 145 | optional: true 146 | 147 | /@esbuild/linux-mips64el@0.18.20: 148 | resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} 149 | engines: {node: '>=12'} 150 | cpu: [mips64el] 151 | os: [linux] 152 | requiresBuild: true 153 | dev: true 154 | optional: true 155 | 156 | /@esbuild/linux-ppc64@0.18.20: 157 | resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} 158 | engines: {node: '>=12'} 159 | cpu: [ppc64] 160 | os: [linux] 161 | requiresBuild: true 162 | dev: true 163 | optional: true 164 | 165 | /@esbuild/linux-riscv64@0.18.20: 166 | resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} 167 | engines: {node: '>=12'} 168 | cpu: [riscv64] 169 | os: [linux] 170 | requiresBuild: true 171 | dev: true 172 | optional: true 173 | 174 | /@esbuild/linux-s390x@0.18.20: 175 | resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} 176 | engines: {node: '>=12'} 177 | cpu: [s390x] 178 | os: [linux] 179 | requiresBuild: true 180 | dev: true 181 | optional: true 182 | 183 | /@esbuild/linux-x64@0.18.20: 184 | resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} 185 | engines: {node: '>=12'} 186 | cpu: [x64] 187 | os: [linux] 188 | requiresBuild: true 189 | dev: true 190 | optional: true 191 | 192 | /@esbuild/netbsd-x64@0.18.20: 193 | resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} 194 | engines: {node: '>=12'} 195 | cpu: [x64] 196 | os: [netbsd] 197 | requiresBuild: true 198 | dev: true 199 | optional: true 200 | 201 | /@esbuild/openbsd-x64@0.18.20: 202 | resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} 203 | engines: {node: '>=12'} 204 | cpu: [x64] 205 | os: [openbsd] 206 | requiresBuild: true 207 | dev: true 208 | optional: true 209 | 210 | /@esbuild/sunos-x64@0.18.20: 211 | resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} 212 | engines: {node: '>=12'} 213 | cpu: [x64] 214 | os: [sunos] 215 | requiresBuild: true 216 | dev: true 217 | optional: true 218 | 219 | /@esbuild/win32-arm64@0.18.20: 220 | resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} 221 | engines: {node: '>=12'} 222 | cpu: [arm64] 223 | os: [win32] 224 | requiresBuild: true 225 | dev: true 226 | optional: true 227 | 228 | /@esbuild/win32-ia32@0.18.20: 229 | resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} 230 | engines: {node: '>=12'} 231 | cpu: [ia32] 232 | os: [win32] 233 | requiresBuild: true 234 | dev: true 235 | optional: true 236 | 237 | /@esbuild/win32-x64@0.18.20: 238 | resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} 239 | engines: {node: '>=12'} 240 | cpu: [x64] 241 | os: [win32] 242 | requiresBuild: true 243 | dev: true 244 | optional: true 245 | 246 | /@fastify/busboy@2.0.0: 247 | resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} 248 | engines: {node: '>=14'} 249 | dev: true 250 | 251 | /@jridgewell/gen-mapping@0.3.3: 252 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 253 | engines: {node: '>=6.0.0'} 254 | dependencies: 255 | '@jridgewell/set-array': 1.1.2 256 | '@jridgewell/sourcemap-codec': 1.4.15 257 | '@jridgewell/trace-mapping': 0.3.20 258 | dev: true 259 | 260 | /@jridgewell/resolve-uri@3.1.1: 261 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 262 | engines: {node: '>=6.0.0'} 263 | dev: true 264 | 265 | /@jridgewell/set-array@1.1.2: 266 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 267 | engines: {node: '>=6.0.0'} 268 | dev: true 269 | 270 | /@jridgewell/sourcemap-codec@1.4.15: 271 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 272 | dev: true 273 | 274 | /@jridgewell/trace-mapping@0.3.20: 275 | resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} 276 | dependencies: 277 | '@jridgewell/resolve-uri': 3.1.1 278 | '@jridgewell/sourcemap-codec': 1.4.15 279 | dev: true 280 | 281 | /@nodelib/fs.scandir@2.1.5: 282 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 283 | engines: {node: '>= 8'} 284 | dependencies: 285 | '@nodelib/fs.stat': 2.0.5 286 | run-parallel: 1.2.0 287 | dev: true 288 | 289 | /@nodelib/fs.stat@2.0.5: 290 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 291 | engines: {node: '>= 8'} 292 | dev: true 293 | 294 | /@nodelib/fs.walk@1.2.8: 295 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 296 | engines: {node: '>= 8'} 297 | dependencies: 298 | '@nodelib/fs.scandir': 2.1.5 299 | fastq: 1.15.0 300 | dev: true 301 | 302 | /@polka/url@1.0.0-next.23: 303 | resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} 304 | dev: true 305 | 306 | /@sveltejs/adapter-auto@2.1.0(@sveltejs/kit@1.27.1): 307 | resolution: {integrity: sha512-o2pZCfATFtA/Gw/BB0Xm7k4EYaekXxaPGER3xGSY3FvzFJGTlJlZjBseaXwYSM94lZ0HniOjTokN3cWaLX6fow==} 308 | peerDependencies: 309 | '@sveltejs/kit': ^1.0.0 310 | dependencies: 311 | '@sveltejs/kit': 1.27.1(svelte@4.2.2)(vite@4.5.0) 312 | import-meta-resolve: 3.0.0 313 | dev: true 314 | 315 | /@sveltejs/kit@1.27.1(svelte@4.2.2)(vite@4.5.0): 316 | resolution: {integrity: sha512-nYkOUJKbeI8fcwvt/cyhTdz6VG4kT6XVprNnzfIwif+IZ8RvxvJuPhPhYjz14ASIcMLpq8xC6D3X4xH3bvWi+Q==} 317 | engines: {node: ^16.14 || >=18} 318 | hasBin: true 319 | requiresBuild: true 320 | peerDependencies: 321 | svelte: ^3.54.0 || ^4.0.0-next.0 322 | vite: ^4.0.0 323 | dependencies: 324 | '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.2)(vite@4.5.0) 325 | '@types/cookie': 0.5.3 326 | cookie: 0.5.0 327 | devalue: 4.3.2 328 | esm-env: 1.0.0 329 | kleur: 4.1.5 330 | magic-string: 0.30.5 331 | mrmime: 1.0.1 332 | sade: 1.8.1 333 | set-cookie-parser: 2.6.0 334 | sirv: 2.0.3 335 | svelte: 4.2.2 336 | tiny-glob: 0.2.9 337 | undici: 5.26.5 338 | vite: 4.5.0 339 | transitivePeerDependencies: 340 | - supports-color 341 | dev: true 342 | 343 | /@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@4.2.2)(vite@4.5.0): 344 | resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} 345 | engines: {node: ^14.18.0 || >= 16} 346 | peerDependencies: 347 | '@sveltejs/vite-plugin-svelte': ^2.2.0 348 | svelte: ^3.54.0 || ^4.0.0 349 | vite: ^4.0.0 350 | dependencies: 351 | '@sveltejs/vite-plugin-svelte': 2.4.6(svelte@4.2.2)(vite@4.5.0) 352 | debug: 4.3.4 353 | svelte: 4.2.2 354 | vite: 4.5.0 355 | transitivePeerDependencies: 356 | - supports-color 357 | dev: true 358 | 359 | /@sveltejs/vite-plugin-svelte@2.4.6(svelte@4.2.2)(vite@4.5.0): 360 | resolution: {integrity: sha512-zO79p0+DZnXPnF0ltIigWDx/ux7Ni+HRaFOw720Qeivc1azFUrJxTl0OryXVibYNx1hCboGia1NRV3x8RNv4cA==} 361 | engines: {node: ^14.18.0 || >= 16} 362 | peerDependencies: 363 | svelte: ^3.54.0 || ^4.0.0 364 | vite: ^4.0.0 365 | dependencies: 366 | '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.4.6)(svelte@4.2.2)(vite@4.5.0) 367 | debug: 4.3.4 368 | deepmerge: 4.3.1 369 | kleur: 4.1.5 370 | magic-string: 0.30.5 371 | svelte: 4.2.2 372 | svelte-hmr: 0.15.3(svelte@4.2.2) 373 | vite: 4.5.0 374 | vitefu: 0.2.5(vite@4.5.0) 375 | transitivePeerDependencies: 376 | - supports-color 377 | dev: true 378 | 379 | /@types/cookie@0.5.3: 380 | resolution: {integrity: sha512-SLg07AS9z1Ab2LU+QxzU8RCmzsja80ywjf/t5oqw+4NSH20gIGlhLOrBDm1L3PBWzPa4+wkgFQVZAjE6Ioj2ug==} 381 | dev: true 382 | 383 | /@types/d3-color@3.1.2: 384 | resolution: {integrity: sha512-At+Ski7dL8Bs58E8g8vPcFJc8tGcaC12Z4m07+p41+DRqnZQcAlp3NfYjLrhNYv+zEyQitU1CUxXNjqUyf+c0g==} 385 | dev: true 386 | 387 | /@types/d3-interpolate@3.0.3: 388 | resolution: {integrity: sha512-6OZ2EIB4lLj+8cUY7I/Cgn9Q+hLdA4DjJHYOQDiHL0SzqS1K9DL5xIOVBSIHgF+tiuO9MU1D36qvdIvRDRPh+Q==} 389 | dependencies: 390 | '@types/d3-color': 3.1.2 391 | dev: true 392 | 393 | /@types/estree@1.0.3: 394 | resolution: {integrity: sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==} 395 | dev: true 396 | 397 | /@types/pug@2.0.8: 398 | resolution: {integrity: sha512-QzhsZ1dMGyJbn/D9V80zp4GIA4J4rfAjCCxc3MP+new0E8dyVdSkR735Lx+n3LIaHNFcjHL5+TbziccuT+fdoQ==} 399 | dev: true 400 | 401 | /acorn@8.11.2: 402 | resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} 403 | engines: {node: '>=0.4.0'} 404 | hasBin: true 405 | dev: true 406 | 407 | /anymatch@3.1.3: 408 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 409 | engines: {node: '>= 8'} 410 | dependencies: 411 | normalize-path: 3.0.0 412 | picomatch: 2.3.1 413 | dev: true 414 | 415 | /aria-query@5.3.0: 416 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 417 | dependencies: 418 | dequal: 2.0.3 419 | dev: true 420 | 421 | /axobject-query@3.2.1: 422 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} 423 | dependencies: 424 | dequal: 2.0.3 425 | dev: true 426 | 427 | /balanced-match@1.0.2: 428 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 429 | dev: true 430 | 431 | /binary-extensions@2.2.0: 432 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 433 | engines: {node: '>=8'} 434 | dev: true 435 | 436 | /brace-expansion@1.1.11: 437 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 438 | dependencies: 439 | balanced-match: 1.0.2 440 | concat-map: 0.0.1 441 | dev: true 442 | 443 | /braces@3.0.2: 444 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 445 | engines: {node: '>=8'} 446 | dependencies: 447 | fill-range: 7.0.1 448 | dev: true 449 | 450 | /buffer-crc32@0.2.13: 451 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 452 | dev: true 453 | 454 | /callsites@3.1.0: 455 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 456 | engines: {node: '>=6'} 457 | dev: true 458 | 459 | /chokidar@3.5.3: 460 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 461 | engines: {node: '>= 8.10.0'} 462 | dependencies: 463 | anymatch: 3.1.3 464 | braces: 3.0.2 465 | glob-parent: 5.1.2 466 | is-binary-path: 2.1.0 467 | is-glob: 4.0.3 468 | normalize-path: 3.0.0 469 | readdirp: 3.6.0 470 | optionalDependencies: 471 | fsevents: 2.3.3 472 | dev: true 473 | 474 | /code-red@1.0.4: 475 | resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} 476 | dependencies: 477 | '@jridgewell/sourcemap-codec': 1.4.15 478 | '@types/estree': 1.0.3 479 | acorn: 8.11.2 480 | estree-walker: 3.0.3 481 | periscopic: 3.1.0 482 | dev: true 483 | 484 | /concat-map@0.0.1: 485 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 486 | dev: true 487 | 488 | /cookie@0.5.0: 489 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 490 | engines: {node: '>= 0.6'} 491 | dev: true 492 | 493 | /css-tree@2.3.1: 494 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} 495 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 496 | dependencies: 497 | mdn-data: 2.0.30 498 | source-map-js: 1.0.2 499 | dev: true 500 | 501 | /d3-color@3.1.0: 502 | resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} 503 | engines: {node: '>=12'} 504 | dev: false 505 | 506 | /d3-interpolate@3.0.1: 507 | resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} 508 | engines: {node: '>=12'} 509 | dependencies: 510 | d3-color: 3.1.0 511 | dev: false 512 | 513 | /debug@4.3.4: 514 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 515 | engines: {node: '>=6.0'} 516 | peerDependencies: 517 | supports-color: '*' 518 | peerDependenciesMeta: 519 | supports-color: 520 | optional: true 521 | dependencies: 522 | ms: 2.1.2 523 | dev: true 524 | 525 | /deepmerge@4.3.1: 526 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 527 | engines: {node: '>=0.10.0'} 528 | dev: true 529 | 530 | /dequal@2.0.3: 531 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 532 | engines: {node: '>=6'} 533 | dev: true 534 | 535 | /detect-indent@6.1.0: 536 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 537 | engines: {node: '>=8'} 538 | dev: true 539 | 540 | /devalue@4.3.2: 541 | resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} 542 | dev: true 543 | 544 | /es6-promise@3.3.1: 545 | resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} 546 | dev: true 547 | 548 | /esbuild@0.18.20: 549 | resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} 550 | engines: {node: '>=12'} 551 | hasBin: true 552 | requiresBuild: true 553 | optionalDependencies: 554 | '@esbuild/android-arm': 0.18.20 555 | '@esbuild/android-arm64': 0.18.20 556 | '@esbuild/android-x64': 0.18.20 557 | '@esbuild/darwin-arm64': 0.18.20 558 | '@esbuild/darwin-x64': 0.18.20 559 | '@esbuild/freebsd-arm64': 0.18.20 560 | '@esbuild/freebsd-x64': 0.18.20 561 | '@esbuild/linux-arm': 0.18.20 562 | '@esbuild/linux-arm64': 0.18.20 563 | '@esbuild/linux-ia32': 0.18.20 564 | '@esbuild/linux-loong64': 0.18.20 565 | '@esbuild/linux-mips64el': 0.18.20 566 | '@esbuild/linux-ppc64': 0.18.20 567 | '@esbuild/linux-riscv64': 0.18.20 568 | '@esbuild/linux-s390x': 0.18.20 569 | '@esbuild/linux-x64': 0.18.20 570 | '@esbuild/netbsd-x64': 0.18.20 571 | '@esbuild/openbsd-x64': 0.18.20 572 | '@esbuild/sunos-x64': 0.18.20 573 | '@esbuild/win32-arm64': 0.18.20 574 | '@esbuild/win32-ia32': 0.18.20 575 | '@esbuild/win32-x64': 0.18.20 576 | dev: true 577 | 578 | /esm-env@1.0.0: 579 | resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} 580 | dev: true 581 | 582 | /estree-walker@3.0.3: 583 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 584 | dependencies: 585 | '@types/estree': 1.0.3 586 | dev: true 587 | 588 | /fast-glob@3.3.1: 589 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 590 | engines: {node: '>=8.6.0'} 591 | dependencies: 592 | '@nodelib/fs.stat': 2.0.5 593 | '@nodelib/fs.walk': 1.2.8 594 | glob-parent: 5.1.2 595 | merge2: 1.4.1 596 | micromatch: 4.0.5 597 | dev: true 598 | 599 | /fastq@1.15.0: 600 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 601 | dependencies: 602 | reusify: 1.0.4 603 | dev: true 604 | 605 | /fill-range@7.0.1: 606 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 607 | engines: {node: '>=8'} 608 | dependencies: 609 | to-regex-range: 5.0.1 610 | dev: true 611 | 612 | /fs.realpath@1.0.0: 613 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 614 | dev: true 615 | 616 | /fsevents@2.3.3: 617 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 618 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 619 | os: [darwin] 620 | requiresBuild: true 621 | dev: true 622 | optional: true 623 | 624 | /glob-parent@5.1.2: 625 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 626 | engines: {node: '>= 6'} 627 | dependencies: 628 | is-glob: 4.0.3 629 | dev: true 630 | 631 | /glob@7.2.3: 632 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 633 | dependencies: 634 | fs.realpath: 1.0.0 635 | inflight: 1.0.6 636 | inherits: 2.0.4 637 | minimatch: 3.1.2 638 | once: 1.4.0 639 | path-is-absolute: 1.0.1 640 | dev: true 641 | 642 | /globalyzer@0.1.0: 643 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 644 | dev: true 645 | 646 | /globrex@0.1.2: 647 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 648 | dev: true 649 | 650 | /graceful-fs@4.2.11: 651 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 652 | dev: true 653 | 654 | /import-fresh@3.3.0: 655 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 656 | engines: {node: '>=6'} 657 | dependencies: 658 | parent-module: 1.0.1 659 | resolve-from: 4.0.0 660 | dev: true 661 | 662 | /import-meta-resolve@3.0.0: 663 | resolution: {integrity: sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==} 664 | dev: true 665 | 666 | /inflight@1.0.6: 667 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 668 | dependencies: 669 | once: 1.4.0 670 | wrappy: 1.0.2 671 | dev: true 672 | 673 | /inherits@2.0.4: 674 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 675 | dev: true 676 | 677 | /is-binary-path@2.1.0: 678 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 679 | engines: {node: '>=8'} 680 | dependencies: 681 | binary-extensions: 2.2.0 682 | dev: true 683 | 684 | /is-extglob@2.1.1: 685 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 686 | engines: {node: '>=0.10.0'} 687 | dev: true 688 | 689 | /is-glob@4.0.3: 690 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 691 | engines: {node: '>=0.10.0'} 692 | dependencies: 693 | is-extglob: 2.1.1 694 | dev: true 695 | 696 | /is-number@7.0.0: 697 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 698 | engines: {node: '>=0.12.0'} 699 | dev: true 700 | 701 | /is-reference@3.0.2: 702 | resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} 703 | dependencies: 704 | '@types/estree': 1.0.3 705 | dev: true 706 | 707 | /kleur@4.1.5: 708 | resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 709 | engines: {node: '>=6'} 710 | dev: true 711 | 712 | /locate-character@3.0.0: 713 | resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} 714 | dev: true 715 | 716 | /magic-string@0.27.0: 717 | resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} 718 | engines: {node: '>=12'} 719 | dependencies: 720 | '@jridgewell/sourcemap-codec': 1.4.15 721 | dev: true 722 | 723 | /magic-string@0.30.5: 724 | resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} 725 | engines: {node: '>=12'} 726 | dependencies: 727 | '@jridgewell/sourcemap-codec': 1.4.15 728 | dev: true 729 | 730 | /mdn-data@2.0.30: 731 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} 732 | dev: true 733 | 734 | /merge2@1.4.1: 735 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 736 | engines: {node: '>= 8'} 737 | dev: true 738 | 739 | /micromatch@4.0.5: 740 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 741 | engines: {node: '>=8.6'} 742 | dependencies: 743 | braces: 3.0.2 744 | picomatch: 2.3.1 745 | dev: true 746 | 747 | /min-indent@1.0.1: 748 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 749 | engines: {node: '>=4'} 750 | dev: true 751 | 752 | /minimatch@3.1.2: 753 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 754 | dependencies: 755 | brace-expansion: 1.1.11 756 | dev: true 757 | 758 | /minimist@1.2.8: 759 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 760 | dev: true 761 | 762 | /mkdirp@0.5.6: 763 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 764 | hasBin: true 765 | dependencies: 766 | minimist: 1.2.8 767 | dev: true 768 | 769 | /mri@1.2.0: 770 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 771 | engines: {node: '>=4'} 772 | dev: true 773 | 774 | /mrmime@1.0.1: 775 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} 776 | engines: {node: '>=10'} 777 | dev: true 778 | 779 | /ms@2.1.2: 780 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 781 | dev: true 782 | 783 | /nanoid@3.3.6: 784 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 785 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 786 | hasBin: true 787 | dev: true 788 | 789 | /normalize-path@3.0.0: 790 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 791 | engines: {node: '>=0.10.0'} 792 | dev: true 793 | 794 | /once@1.4.0: 795 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 796 | dependencies: 797 | wrappy: 1.0.2 798 | dev: true 799 | 800 | /parent-module@1.0.1: 801 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 802 | engines: {node: '>=6'} 803 | dependencies: 804 | callsites: 3.1.0 805 | dev: true 806 | 807 | /path-is-absolute@1.0.1: 808 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 809 | engines: {node: '>=0.10.0'} 810 | dev: true 811 | 812 | /periscopic@3.1.0: 813 | resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} 814 | dependencies: 815 | '@types/estree': 1.0.3 816 | estree-walker: 3.0.3 817 | is-reference: 3.0.2 818 | dev: true 819 | 820 | /picocolors@1.0.0: 821 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 822 | dev: true 823 | 824 | /picomatch@2.3.1: 825 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 826 | engines: {node: '>=8.6'} 827 | dev: true 828 | 829 | /postcss@8.4.31: 830 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 831 | engines: {node: ^10 || ^12 || >=14} 832 | dependencies: 833 | nanoid: 3.3.6 834 | picocolors: 1.0.0 835 | source-map-js: 1.0.2 836 | dev: true 837 | 838 | /queue-microtask@1.2.3: 839 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 840 | dev: true 841 | 842 | /readdirp@3.6.0: 843 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 844 | engines: {node: '>=8.10.0'} 845 | dependencies: 846 | picomatch: 2.3.1 847 | dev: true 848 | 849 | /resolve-from@4.0.0: 850 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 851 | engines: {node: '>=4'} 852 | dev: true 853 | 854 | /reusify@1.0.4: 855 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 856 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 857 | dev: true 858 | 859 | /rimraf@2.7.1: 860 | resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 861 | hasBin: true 862 | dependencies: 863 | glob: 7.2.3 864 | dev: true 865 | 866 | /rollup@3.29.4: 867 | resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} 868 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 869 | hasBin: true 870 | optionalDependencies: 871 | fsevents: 2.3.3 872 | dev: true 873 | 874 | /run-parallel@1.2.0: 875 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 876 | dependencies: 877 | queue-microtask: 1.2.3 878 | dev: true 879 | 880 | /sade@1.8.1: 881 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 882 | engines: {node: '>=6'} 883 | dependencies: 884 | mri: 1.2.0 885 | dev: true 886 | 887 | /sander@0.5.1: 888 | resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} 889 | dependencies: 890 | es6-promise: 3.3.1 891 | graceful-fs: 4.2.11 892 | mkdirp: 0.5.6 893 | rimraf: 2.7.1 894 | dev: true 895 | 896 | /set-cookie-parser@2.6.0: 897 | resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} 898 | dev: true 899 | 900 | /sirv@2.0.3: 901 | resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} 902 | engines: {node: '>= 10'} 903 | dependencies: 904 | '@polka/url': 1.0.0-next.23 905 | mrmime: 1.0.1 906 | totalist: 3.0.1 907 | dev: true 908 | 909 | /sorcery@0.11.0: 910 | resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} 911 | hasBin: true 912 | dependencies: 913 | '@jridgewell/sourcemap-codec': 1.4.15 914 | buffer-crc32: 0.2.13 915 | minimist: 1.2.8 916 | sander: 0.5.1 917 | dev: true 918 | 919 | /source-map-js@1.0.2: 920 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 921 | engines: {node: '>=0.10.0'} 922 | dev: true 923 | 924 | /strip-indent@3.0.0: 925 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 926 | engines: {node: '>=8'} 927 | dependencies: 928 | min-indent: 1.0.1 929 | dev: true 930 | 931 | /svelte-check@3.5.2(svelte@4.2.2): 932 | resolution: {integrity: sha512-5a/YWbiH4c+AqAUP+0VneiV5bP8YOk9JL3jwvN+k2PEPLgpu85bjQc5eE67+eIZBBwUEJzmO3I92OqKcqbp3fw==} 933 | hasBin: true 934 | peerDependencies: 935 | svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 936 | dependencies: 937 | '@jridgewell/trace-mapping': 0.3.20 938 | chokidar: 3.5.3 939 | fast-glob: 3.3.1 940 | import-fresh: 3.3.0 941 | picocolors: 1.0.0 942 | sade: 1.8.1 943 | svelte: 4.2.2 944 | svelte-preprocess: 5.0.4(svelte@4.2.2)(typescript@5.2.2) 945 | typescript: 5.2.2 946 | transitivePeerDependencies: 947 | - '@babel/core' 948 | - coffeescript 949 | - less 950 | - postcss 951 | - postcss-load-config 952 | - pug 953 | - sass 954 | - stylus 955 | - sugarss 956 | dev: true 957 | 958 | /svelte-hmr@0.15.3(svelte@4.2.2): 959 | resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} 960 | engines: {node: ^12.20 || ^14.13.1 || >= 16} 961 | peerDependencies: 962 | svelte: ^3.19.0 || ^4.0.0 963 | dependencies: 964 | svelte: 4.2.2 965 | dev: true 966 | 967 | /svelte-preprocess@5.0.4(svelte@4.2.2)(typescript@5.2.2): 968 | resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} 969 | engines: {node: '>= 14.10.0'} 970 | requiresBuild: true 971 | peerDependencies: 972 | '@babel/core': ^7.10.2 973 | coffeescript: ^2.5.1 974 | less: ^3.11.3 || ^4.0.0 975 | postcss: ^7 || ^8 976 | postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 977 | pug: ^3.0.0 978 | sass: ^1.26.8 979 | stylus: ^0.55.0 980 | sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 981 | svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 982 | typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' 983 | peerDependenciesMeta: 984 | '@babel/core': 985 | optional: true 986 | coffeescript: 987 | optional: true 988 | less: 989 | optional: true 990 | postcss: 991 | optional: true 992 | postcss-load-config: 993 | optional: true 994 | pug: 995 | optional: true 996 | sass: 997 | optional: true 998 | stylus: 999 | optional: true 1000 | sugarss: 1001 | optional: true 1002 | typescript: 1003 | optional: true 1004 | dependencies: 1005 | '@types/pug': 2.0.8 1006 | detect-indent: 6.1.0 1007 | magic-string: 0.27.0 1008 | sorcery: 0.11.0 1009 | strip-indent: 3.0.0 1010 | svelte: 4.2.2 1011 | typescript: 5.2.2 1012 | dev: true 1013 | 1014 | /svelte@4.2.2: 1015 | resolution: {integrity: sha512-My2tytF2e2NnHSpn2M7/3VdXT4JdTglYVUuSuK/mXL2XtulPYbeBfl8Dm1QiaKRn0zoULRnL+EtfZHHP0k4H3A==} 1016 | engines: {node: '>=16'} 1017 | dependencies: 1018 | '@ampproject/remapping': 2.2.1 1019 | '@jridgewell/sourcemap-codec': 1.4.15 1020 | '@jridgewell/trace-mapping': 0.3.20 1021 | acorn: 8.11.2 1022 | aria-query: 5.3.0 1023 | axobject-query: 3.2.1 1024 | code-red: 1.0.4 1025 | css-tree: 2.3.1 1026 | estree-walker: 3.0.3 1027 | is-reference: 3.0.2 1028 | locate-character: 3.0.0 1029 | magic-string: 0.30.5 1030 | periscopic: 3.1.0 1031 | dev: true 1032 | 1033 | /tiny-glob@0.2.9: 1034 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 1035 | dependencies: 1036 | globalyzer: 0.1.0 1037 | globrex: 0.1.2 1038 | dev: true 1039 | 1040 | /to-regex-range@5.0.1: 1041 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1042 | engines: {node: '>=8.0'} 1043 | dependencies: 1044 | is-number: 7.0.0 1045 | dev: true 1046 | 1047 | /totalist@3.0.1: 1048 | resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 1049 | engines: {node: '>=6'} 1050 | dev: true 1051 | 1052 | /tslib@2.6.2: 1053 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 1054 | dev: true 1055 | 1056 | /typescript@5.2.2: 1057 | resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} 1058 | engines: {node: '>=14.17'} 1059 | hasBin: true 1060 | dev: true 1061 | 1062 | /undici@5.26.5: 1063 | resolution: {integrity: sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==} 1064 | engines: {node: '>=14.0'} 1065 | dependencies: 1066 | '@fastify/busboy': 2.0.0 1067 | dev: true 1068 | 1069 | /vite@4.5.0: 1070 | resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} 1071 | engines: {node: ^14.18.0 || >=16.0.0} 1072 | hasBin: true 1073 | peerDependencies: 1074 | '@types/node': '>= 14' 1075 | less: '*' 1076 | lightningcss: ^1.21.0 1077 | sass: '*' 1078 | stylus: '*' 1079 | sugarss: '*' 1080 | terser: ^5.4.0 1081 | peerDependenciesMeta: 1082 | '@types/node': 1083 | optional: true 1084 | less: 1085 | optional: true 1086 | lightningcss: 1087 | optional: true 1088 | sass: 1089 | optional: true 1090 | stylus: 1091 | optional: true 1092 | sugarss: 1093 | optional: true 1094 | terser: 1095 | optional: true 1096 | dependencies: 1097 | esbuild: 0.18.20 1098 | postcss: 8.4.31 1099 | rollup: 3.29.4 1100 | optionalDependencies: 1101 | fsevents: 2.3.3 1102 | dev: true 1103 | 1104 | /vitefu@0.2.5(vite@4.5.0): 1105 | resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} 1106 | peerDependencies: 1107 | vite: ^3.0.0 || ^4.0.0 || ^5.0.0 1108 | peerDependenciesMeta: 1109 | vite: 1110 | optional: true 1111 | dependencies: 1112 | vite: 4.5.0 1113 | dev: true 1114 | 1115 | /wrappy@1.0.2: 1116 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1117 | dev: true 1118 | -------------------------------------------------------------------------------- /src/app.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | height: 100%; 4 | } 5 | 6 | body { 7 | display: grid; 8 | place-content: center; 9 | font-family: 'MonoLisa', monospace; 10 | color: hsl(220 10% 98%); 11 | background-color: hsl(220 10% 10%); 12 | background: #13171e; 13 | overflow: hidden; 14 | } 15 | -------------------------------------------------------------------------------- /src/app.d.ts: -------------------------------------------------------------------------------- 1 | // See https://kit.svelte.dev/docs/types#app 2 | // for information about these interfaces 3 | declare global { 4 | namespace App { 5 | // interface Error {} 6 | // interface Locals {} 7 | // interface PageData {} 8 | // interface Platform {} 9 | } 10 | } 11 | 12 | export {}; 13 | -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | %sveltekit.head% 7 | 8 | 9 | 10 | 11 |