├── .gitattributes ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── README.md ├── jsconfig.json ├── package-lock.json ├── package.json ├── src ├── app.css ├── app.d.ts ├── app.html ├── data │ └── data.json ├── lib │ ├── components │ │ ├── DatawrapperIframe.svelte │ │ └── InfoDisplay.svelte │ ├── stores.js │ └── utils │ │ ├── events.js │ │ └── format.js └── routes │ ├── +layout.server.js │ └── +page.svelte ├── static └── favicon.png ├── svelte.config.js └── vite.config.js /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Ignore files for PNPM, NPM and YARN 2 | pnpm-lock.yaml 3 | package-lock.json 4 | yarn.lock 5 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "singleQuote": true, 4 | "trailingComma": "none", 5 | "printWidth": 100, 6 | "plugins": ["prettier-plugin-svelte"], 7 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] 8 | } 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SvelteKit Template for Datawrapper Interaction Events 2 | 3 | The purpose of this template repository is to get you started with a SvelteKit project that captures Datawrapper chart interaction events and uses a data key to display information from a lookup dataset. 4 | 5 | If you're unfamiliar with this workflow, check out the following documentation: 6 | 7 | - [Svelte Interactive Tutorial](https://learn.svelte.dev/tutorial/welcome-to-svelte) 8 | - [SvelteKit Documentation](https://kit.svelte.dev) 9 | - [Datawrapper: Listening to Chart Interaction Events](https://developer.datawrapper.de/docs/listening-to-chart-interaction-events) 10 | 11 | ## Project structure and key files (`.src/`) 12 | 13 | - `data/data.json`: A sample dataset to use as a lookup table. 14 | - `lib/stores.js`: Writable/readable stores to capture/display information. These are named `selectedKey` and `lookupData`. 15 | - `lib/components/DatawrapperIframe.svelte`: A Svelte component that wraps the Datawrapper iframe and listens to interaction events. Define which events are dispatched here. 16 | - `lib/components/InfoDisplay.svelte`: A Svelte component that displays the information from the lookup dataset. 17 | - `lib/utils/events.js`: Utility script for attaching interaciton event listeners to Datawrapper charts. Copied and slightly modified from the [Datawrapper documentation](https://developer.datawrapper.de/docs/listening-to-chart-interaction-events). 18 | - `routes/+page.svelte`: The parent page for the application. 19 | 20 | ### Project Settings 21 | 22 | [JSDoc for type checking](https://github.com/jsdoc/jsdoc) and [Prettier for code formatting](https://prettier.io/) are enabled by default. 23 | 24 | ## Developing 25 | 26 | Install dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: 27 | 28 | ```bash 29 | npm run dev 30 | 31 | # or start the server and open the app in a new browser tab 32 | npm run dev -- --open 33 | ``` 34 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.svelte-kit/tsconfig.json", 3 | "compilerOptions": { 4 | "allowJs": true, 5 | "checkJs": true, 6 | "esModuleInterop": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "resolveJsonModule": true, 9 | "skipLibCheck": true, 10 | "sourceMap": true, 11 | "strict": true, 12 | "moduleResolution": "bundler" 13 | } 14 | // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias and https://kit.svelte.dev/docs/configuration#files 15 | // 16 | // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes 17 | // from the referenced tsconfig.json - TypeScript does not merge them in 18 | } 19 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-template-datawrapper-interaction-events", 3 | "version": "0.0.1", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "svelte-template-datawrapper-interaction-events", 9 | "version": "0.0.1", 10 | "devDependencies": { 11 | "@sveltejs/adapter-auto": "^3.0.0", 12 | "@sveltejs/kit": "^2.0.0", 13 | "@sveltejs/vite-plugin-svelte": "^3.0.0", 14 | "prettier": "^3.1.1", 15 | "prettier-plugin-svelte": "^3.1.2", 16 | "svelte": "^4.2.7", 17 | "svelte-check": "^3.6.0", 18 | "typescript": "^5.0.0", 19 | "vite": "^5.0.3" 20 | } 21 | }, 22 | "node_modules/@ampproject/remapping": { 23 | "version": "2.3.0", 24 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", 25 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", 26 | "dev": true, 27 | "dependencies": { 28 | "@jridgewell/gen-mapping": "^0.3.5", 29 | "@jridgewell/trace-mapping": "^0.3.24" 30 | }, 31 | "engines": { 32 | "node": ">=6.0.0" 33 | } 34 | }, 35 | "node_modules/@esbuild/aix-ppc64": { 36 | "version": "0.19.12", 37 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", 38 | "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", 39 | "cpu": [ 40 | "ppc64" 41 | ], 42 | "dev": true, 43 | "optional": true, 44 | "os": [ 45 | "aix" 46 | ], 47 | "engines": { 48 | "node": ">=12" 49 | } 50 | }, 51 | "node_modules/@esbuild/android-arm": { 52 | "version": "0.19.12", 53 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", 54 | "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", 55 | "cpu": [ 56 | "arm" 57 | ], 58 | "dev": true, 59 | "optional": true, 60 | "os": [ 61 | "android" 62 | ], 63 | "engines": { 64 | "node": ">=12" 65 | } 66 | }, 67 | "node_modules/@esbuild/android-arm64": { 68 | "version": "0.19.12", 69 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", 70 | "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", 71 | "cpu": [ 72 | "arm64" 73 | ], 74 | "dev": true, 75 | "optional": true, 76 | "os": [ 77 | "android" 78 | ], 79 | "engines": { 80 | "node": ">=12" 81 | } 82 | }, 83 | "node_modules/@esbuild/android-x64": { 84 | "version": "0.19.12", 85 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", 86 | "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", 87 | "cpu": [ 88 | "x64" 89 | ], 90 | "dev": true, 91 | "optional": true, 92 | "os": [ 93 | "android" 94 | ], 95 | "engines": { 96 | "node": ">=12" 97 | } 98 | }, 99 | "node_modules/@esbuild/darwin-arm64": { 100 | "version": "0.19.12", 101 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", 102 | "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", 103 | "cpu": [ 104 | "arm64" 105 | ], 106 | "dev": true, 107 | "optional": true, 108 | "os": [ 109 | "darwin" 110 | ], 111 | "engines": { 112 | "node": ">=12" 113 | } 114 | }, 115 | "node_modules/@esbuild/darwin-x64": { 116 | "version": "0.19.12", 117 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", 118 | "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", 119 | "cpu": [ 120 | "x64" 121 | ], 122 | "dev": true, 123 | "optional": true, 124 | "os": [ 125 | "darwin" 126 | ], 127 | "engines": { 128 | "node": ">=12" 129 | } 130 | }, 131 | "node_modules/@esbuild/freebsd-arm64": { 132 | "version": "0.19.12", 133 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", 134 | "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", 135 | "cpu": [ 136 | "arm64" 137 | ], 138 | "dev": true, 139 | "optional": true, 140 | "os": [ 141 | "freebsd" 142 | ], 143 | "engines": { 144 | "node": ">=12" 145 | } 146 | }, 147 | "node_modules/@esbuild/freebsd-x64": { 148 | "version": "0.19.12", 149 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", 150 | "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", 151 | "cpu": [ 152 | "x64" 153 | ], 154 | "dev": true, 155 | "optional": true, 156 | "os": [ 157 | "freebsd" 158 | ], 159 | "engines": { 160 | "node": ">=12" 161 | } 162 | }, 163 | "node_modules/@esbuild/linux-arm": { 164 | "version": "0.19.12", 165 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", 166 | "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", 167 | "cpu": [ 168 | "arm" 169 | ], 170 | "dev": true, 171 | "optional": true, 172 | "os": [ 173 | "linux" 174 | ], 175 | "engines": { 176 | "node": ">=12" 177 | } 178 | }, 179 | "node_modules/@esbuild/linux-arm64": { 180 | "version": "0.19.12", 181 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", 182 | "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", 183 | "cpu": [ 184 | "arm64" 185 | ], 186 | "dev": true, 187 | "optional": true, 188 | "os": [ 189 | "linux" 190 | ], 191 | "engines": { 192 | "node": ">=12" 193 | } 194 | }, 195 | "node_modules/@esbuild/linux-ia32": { 196 | "version": "0.19.12", 197 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", 198 | "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", 199 | "cpu": [ 200 | "ia32" 201 | ], 202 | "dev": true, 203 | "optional": true, 204 | "os": [ 205 | "linux" 206 | ], 207 | "engines": { 208 | "node": ">=12" 209 | } 210 | }, 211 | "node_modules/@esbuild/linux-loong64": { 212 | "version": "0.19.12", 213 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", 214 | "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", 215 | "cpu": [ 216 | "loong64" 217 | ], 218 | "dev": true, 219 | "optional": true, 220 | "os": [ 221 | "linux" 222 | ], 223 | "engines": { 224 | "node": ">=12" 225 | } 226 | }, 227 | "node_modules/@esbuild/linux-mips64el": { 228 | "version": "0.19.12", 229 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", 230 | "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", 231 | "cpu": [ 232 | "mips64el" 233 | ], 234 | "dev": true, 235 | "optional": true, 236 | "os": [ 237 | "linux" 238 | ], 239 | "engines": { 240 | "node": ">=12" 241 | } 242 | }, 243 | "node_modules/@esbuild/linux-ppc64": { 244 | "version": "0.19.12", 245 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", 246 | "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", 247 | "cpu": [ 248 | "ppc64" 249 | ], 250 | "dev": true, 251 | "optional": true, 252 | "os": [ 253 | "linux" 254 | ], 255 | "engines": { 256 | "node": ">=12" 257 | } 258 | }, 259 | "node_modules/@esbuild/linux-riscv64": { 260 | "version": "0.19.12", 261 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", 262 | "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", 263 | "cpu": [ 264 | "riscv64" 265 | ], 266 | "dev": true, 267 | "optional": true, 268 | "os": [ 269 | "linux" 270 | ], 271 | "engines": { 272 | "node": ">=12" 273 | } 274 | }, 275 | "node_modules/@esbuild/linux-s390x": { 276 | "version": "0.19.12", 277 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", 278 | "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", 279 | "cpu": [ 280 | "s390x" 281 | ], 282 | "dev": true, 283 | "optional": true, 284 | "os": [ 285 | "linux" 286 | ], 287 | "engines": { 288 | "node": ">=12" 289 | } 290 | }, 291 | "node_modules/@esbuild/linux-x64": { 292 | "version": "0.19.12", 293 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", 294 | "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", 295 | "cpu": [ 296 | "x64" 297 | ], 298 | "dev": true, 299 | "optional": true, 300 | "os": [ 301 | "linux" 302 | ], 303 | "engines": { 304 | "node": ">=12" 305 | } 306 | }, 307 | "node_modules/@esbuild/netbsd-x64": { 308 | "version": "0.19.12", 309 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", 310 | "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", 311 | "cpu": [ 312 | "x64" 313 | ], 314 | "dev": true, 315 | "optional": true, 316 | "os": [ 317 | "netbsd" 318 | ], 319 | "engines": { 320 | "node": ">=12" 321 | } 322 | }, 323 | "node_modules/@esbuild/openbsd-x64": { 324 | "version": "0.19.12", 325 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", 326 | "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", 327 | "cpu": [ 328 | "x64" 329 | ], 330 | "dev": true, 331 | "optional": true, 332 | "os": [ 333 | "openbsd" 334 | ], 335 | "engines": { 336 | "node": ">=12" 337 | } 338 | }, 339 | "node_modules/@esbuild/sunos-x64": { 340 | "version": "0.19.12", 341 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", 342 | "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", 343 | "cpu": [ 344 | "x64" 345 | ], 346 | "dev": true, 347 | "optional": true, 348 | "os": [ 349 | "sunos" 350 | ], 351 | "engines": { 352 | "node": ">=12" 353 | } 354 | }, 355 | "node_modules/@esbuild/win32-arm64": { 356 | "version": "0.19.12", 357 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", 358 | "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", 359 | "cpu": [ 360 | "arm64" 361 | ], 362 | "dev": true, 363 | "optional": true, 364 | "os": [ 365 | "win32" 366 | ], 367 | "engines": { 368 | "node": ">=12" 369 | } 370 | }, 371 | "node_modules/@esbuild/win32-ia32": { 372 | "version": "0.19.12", 373 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", 374 | "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", 375 | "cpu": [ 376 | "ia32" 377 | ], 378 | "dev": true, 379 | "optional": true, 380 | "os": [ 381 | "win32" 382 | ], 383 | "engines": { 384 | "node": ">=12" 385 | } 386 | }, 387 | "node_modules/@esbuild/win32-x64": { 388 | "version": "0.19.12", 389 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", 390 | "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", 391 | "cpu": [ 392 | "x64" 393 | ], 394 | "dev": true, 395 | "optional": true, 396 | "os": [ 397 | "win32" 398 | ], 399 | "engines": { 400 | "node": ">=12" 401 | } 402 | }, 403 | "node_modules/@jridgewell/gen-mapping": { 404 | "version": "0.3.5", 405 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", 406 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", 407 | "dev": true, 408 | "dependencies": { 409 | "@jridgewell/set-array": "^1.2.1", 410 | "@jridgewell/sourcemap-codec": "^1.4.10", 411 | "@jridgewell/trace-mapping": "^0.3.24" 412 | }, 413 | "engines": { 414 | "node": ">=6.0.0" 415 | } 416 | }, 417 | "node_modules/@jridgewell/resolve-uri": { 418 | "version": "3.1.2", 419 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 420 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 421 | "dev": true, 422 | "engines": { 423 | "node": ">=6.0.0" 424 | } 425 | }, 426 | "node_modules/@jridgewell/set-array": { 427 | "version": "1.2.1", 428 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 429 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 430 | "dev": true, 431 | "engines": { 432 | "node": ">=6.0.0" 433 | } 434 | }, 435 | "node_modules/@jridgewell/sourcemap-codec": { 436 | "version": "1.4.15", 437 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", 438 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", 439 | "dev": true 440 | }, 441 | "node_modules/@jridgewell/trace-mapping": { 442 | "version": "0.3.25", 443 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 444 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 445 | "dev": true, 446 | "dependencies": { 447 | "@jridgewell/resolve-uri": "^3.1.0", 448 | "@jridgewell/sourcemap-codec": "^1.4.14" 449 | } 450 | }, 451 | "node_modules/@nodelib/fs.scandir": { 452 | "version": "2.1.5", 453 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 454 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 455 | "dev": true, 456 | "dependencies": { 457 | "@nodelib/fs.stat": "2.0.5", 458 | "run-parallel": "^1.1.9" 459 | }, 460 | "engines": { 461 | "node": ">= 8" 462 | } 463 | }, 464 | "node_modules/@nodelib/fs.stat": { 465 | "version": "2.0.5", 466 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 467 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 468 | "dev": true, 469 | "engines": { 470 | "node": ">= 8" 471 | } 472 | }, 473 | "node_modules/@nodelib/fs.walk": { 474 | "version": "1.2.8", 475 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 476 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 477 | "dev": true, 478 | "dependencies": { 479 | "@nodelib/fs.scandir": "2.1.5", 480 | "fastq": "^1.6.0" 481 | }, 482 | "engines": { 483 | "node": ">= 8" 484 | } 485 | }, 486 | "node_modules/@polka/url": { 487 | "version": "1.0.0-next.25", 488 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", 489 | "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", 490 | "dev": true 491 | }, 492 | "node_modules/@rollup/rollup-android-arm-eabi": { 493 | "version": "4.13.0", 494 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", 495 | "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", 496 | "cpu": [ 497 | "arm" 498 | ], 499 | "dev": true, 500 | "optional": true, 501 | "os": [ 502 | "android" 503 | ] 504 | }, 505 | "node_modules/@rollup/rollup-android-arm64": { 506 | "version": "4.13.0", 507 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", 508 | "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", 509 | "cpu": [ 510 | "arm64" 511 | ], 512 | "dev": true, 513 | "optional": true, 514 | "os": [ 515 | "android" 516 | ] 517 | }, 518 | "node_modules/@rollup/rollup-darwin-arm64": { 519 | "version": "4.13.0", 520 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", 521 | "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", 522 | "cpu": [ 523 | "arm64" 524 | ], 525 | "dev": true, 526 | "optional": true, 527 | "os": [ 528 | "darwin" 529 | ] 530 | }, 531 | "node_modules/@rollup/rollup-darwin-x64": { 532 | "version": "4.13.0", 533 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", 534 | "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", 535 | "cpu": [ 536 | "x64" 537 | ], 538 | "dev": true, 539 | "optional": true, 540 | "os": [ 541 | "darwin" 542 | ] 543 | }, 544 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 545 | "version": "4.13.0", 546 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", 547 | "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", 548 | "cpu": [ 549 | "arm" 550 | ], 551 | "dev": true, 552 | "optional": true, 553 | "os": [ 554 | "linux" 555 | ] 556 | }, 557 | "node_modules/@rollup/rollup-linux-arm64-gnu": { 558 | "version": "4.13.0", 559 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", 560 | "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", 561 | "cpu": [ 562 | "arm64" 563 | ], 564 | "dev": true, 565 | "optional": true, 566 | "os": [ 567 | "linux" 568 | ] 569 | }, 570 | "node_modules/@rollup/rollup-linux-arm64-musl": { 571 | "version": "4.13.0", 572 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", 573 | "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", 574 | "cpu": [ 575 | "arm64" 576 | ], 577 | "dev": true, 578 | "optional": true, 579 | "os": [ 580 | "linux" 581 | ] 582 | }, 583 | "node_modules/@rollup/rollup-linux-riscv64-gnu": { 584 | "version": "4.13.0", 585 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", 586 | "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", 587 | "cpu": [ 588 | "riscv64" 589 | ], 590 | "dev": true, 591 | "optional": true, 592 | "os": [ 593 | "linux" 594 | ] 595 | }, 596 | "node_modules/@rollup/rollup-linux-x64-gnu": { 597 | "version": "4.13.0", 598 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", 599 | "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", 600 | "cpu": [ 601 | "x64" 602 | ], 603 | "dev": true, 604 | "optional": true, 605 | "os": [ 606 | "linux" 607 | ] 608 | }, 609 | "node_modules/@rollup/rollup-linux-x64-musl": { 610 | "version": "4.13.0", 611 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", 612 | "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", 613 | "cpu": [ 614 | "x64" 615 | ], 616 | "dev": true, 617 | "optional": true, 618 | "os": [ 619 | "linux" 620 | ] 621 | }, 622 | "node_modules/@rollup/rollup-win32-arm64-msvc": { 623 | "version": "4.13.0", 624 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", 625 | "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", 626 | "cpu": [ 627 | "arm64" 628 | ], 629 | "dev": true, 630 | "optional": true, 631 | "os": [ 632 | "win32" 633 | ] 634 | }, 635 | "node_modules/@rollup/rollup-win32-ia32-msvc": { 636 | "version": "4.13.0", 637 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", 638 | "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", 639 | "cpu": [ 640 | "ia32" 641 | ], 642 | "dev": true, 643 | "optional": true, 644 | "os": [ 645 | "win32" 646 | ] 647 | }, 648 | "node_modules/@rollup/rollup-win32-x64-msvc": { 649 | "version": "4.13.0", 650 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", 651 | "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", 652 | "cpu": [ 653 | "x64" 654 | ], 655 | "dev": true, 656 | "optional": true, 657 | "os": [ 658 | "win32" 659 | ] 660 | }, 661 | "node_modules/@sveltejs/adapter-auto": { 662 | "version": "3.1.1", 663 | "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.1.1.tgz", 664 | "integrity": "sha512-6LeZft2Fo/4HfmLBi5CucMYmgRxgcETweQl/yQoZo/895K3S9YWYN4Sfm/IhwlIpbJp3QNvhKmwCHbsqQNYQpw==", 665 | "dev": true, 666 | "dependencies": { 667 | "import-meta-resolve": "^4.0.0" 668 | }, 669 | "peerDependencies": { 670 | "@sveltejs/kit": "^2.0.0" 671 | } 672 | }, 673 | "node_modules/@sveltejs/kit": { 674 | "version": "2.5.4", 675 | "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.5.4.tgz", 676 | "integrity": "sha512-eDxK2d4EGzk99QsZNoPXe7jlzA5EGqfcCpUwZ912bhnalsZ2ZsG5wGRthkydupVjYyqdmzEanVKFhLxU2vkPSQ==", 677 | "dev": true, 678 | "hasInstallScript": true, 679 | "dependencies": { 680 | "@types/cookie": "^0.6.0", 681 | "cookie": "^0.6.0", 682 | "devalue": "^4.3.2", 683 | "esm-env": "^1.0.0", 684 | "import-meta-resolve": "^4.0.0", 685 | "kleur": "^4.1.5", 686 | "magic-string": "^0.30.5", 687 | "mrmime": "^2.0.0", 688 | "sade": "^1.8.1", 689 | "set-cookie-parser": "^2.6.0", 690 | "sirv": "^2.0.4", 691 | "tiny-glob": "^0.2.9" 692 | }, 693 | "bin": { 694 | "svelte-kit": "svelte-kit.js" 695 | }, 696 | "engines": { 697 | "node": ">=18.13" 698 | }, 699 | "peerDependencies": { 700 | "@sveltejs/vite-plugin-svelte": "^3.0.0", 701 | "svelte": "^4.0.0 || ^5.0.0-next.0", 702 | "vite": "^5.0.3" 703 | } 704 | }, 705 | "node_modules/@sveltejs/vite-plugin-svelte": { 706 | "version": "3.0.2", 707 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.0.2.tgz", 708 | "integrity": "sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==", 709 | "dev": true, 710 | "dependencies": { 711 | "@sveltejs/vite-plugin-svelte-inspector": "^2.0.0", 712 | "debug": "^4.3.4", 713 | "deepmerge": "^4.3.1", 714 | "kleur": "^4.1.5", 715 | "magic-string": "^0.30.5", 716 | "svelte-hmr": "^0.15.3", 717 | "vitefu": "^0.2.5" 718 | }, 719 | "engines": { 720 | "node": "^18.0.0 || >=20" 721 | }, 722 | "peerDependencies": { 723 | "svelte": "^4.0.0 || ^5.0.0-next.0", 724 | "vite": "^5.0.0" 725 | } 726 | }, 727 | "node_modules/@sveltejs/vite-plugin-svelte-inspector": { 728 | "version": "2.0.0", 729 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.0.0.tgz", 730 | "integrity": "sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==", 731 | "dev": true, 732 | "dependencies": { 733 | "debug": "^4.3.4" 734 | }, 735 | "engines": { 736 | "node": "^18.0.0 || >=20" 737 | }, 738 | "peerDependencies": { 739 | "@sveltejs/vite-plugin-svelte": "^3.0.0", 740 | "svelte": "^4.0.0 || ^5.0.0-next.0", 741 | "vite": "^5.0.0" 742 | } 743 | }, 744 | "node_modules/@types/cookie": { 745 | "version": "0.6.0", 746 | "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", 747 | "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", 748 | "dev": true 749 | }, 750 | "node_modules/@types/estree": { 751 | "version": "1.0.5", 752 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", 753 | "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", 754 | "dev": true 755 | }, 756 | "node_modules/@types/pug": { 757 | "version": "2.0.10", 758 | "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz", 759 | "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==", 760 | "dev": true 761 | }, 762 | "node_modules/acorn": { 763 | "version": "8.11.3", 764 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", 765 | "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", 766 | "dev": true, 767 | "bin": { 768 | "acorn": "bin/acorn" 769 | }, 770 | "engines": { 771 | "node": ">=0.4.0" 772 | } 773 | }, 774 | "node_modules/anymatch": { 775 | "version": "3.1.3", 776 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 777 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 778 | "dev": true, 779 | "dependencies": { 780 | "normalize-path": "^3.0.0", 781 | "picomatch": "^2.0.4" 782 | }, 783 | "engines": { 784 | "node": ">= 8" 785 | } 786 | }, 787 | "node_modules/aria-query": { 788 | "version": "5.3.0", 789 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", 790 | "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", 791 | "dev": true, 792 | "dependencies": { 793 | "dequal": "^2.0.3" 794 | } 795 | }, 796 | "node_modules/axobject-query": { 797 | "version": "4.0.0", 798 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", 799 | "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", 800 | "dev": true, 801 | "dependencies": { 802 | "dequal": "^2.0.3" 803 | } 804 | }, 805 | "node_modules/balanced-match": { 806 | "version": "1.0.2", 807 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 808 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 809 | "dev": true 810 | }, 811 | "node_modules/binary-extensions": { 812 | "version": "2.3.0", 813 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", 814 | "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", 815 | "dev": true, 816 | "engines": { 817 | "node": ">=8" 818 | }, 819 | "funding": { 820 | "url": "https://github.com/sponsors/sindresorhus" 821 | } 822 | }, 823 | "node_modules/brace-expansion": { 824 | "version": "1.1.11", 825 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 826 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 827 | "dev": true, 828 | "dependencies": { 829 | "balanced-match": "^1.0.0", 830 | "concat-map": "0.0.1" 831 | } 832 | }, 833 | "node_modules/braces": { 834 | "version": "3.0.2", 835 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 836 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 837 | "dev": true, 838 | "dependencies": { 839 | "fill-range": "^7.0.1" 840 | }, 841 | "engines": { 842 | "node": ">=8" 843 | } 844 | }, 845 | "node_modules/buffer-crc32": { 846 | "version": "0.2.13", 847 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 848 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", 849 | "dev": true, 850 | "engines": { 851 | "node": "*" 852 | } 853 | }, 854 | "node_modules/callsites": { 855 | "version": "3.1.0", 856 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 857 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 858 | "dev": true, 859 | "engines": { 860 | "node": ">=6" 861 | } 862 | }, 863 | "node_modules/chokidar": { 864 | "version": "3.6.0", 865 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", 866 | "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", 867 | "dev": true, 868 | "dependencies": { 869 | "anymatch": "~3.1.2", 870 | "braces": "~3.0.2", 871 | "glob-parent": "~5.1.2", 872 | "is-binary-path": "~2.1.0", 873 | "is-glob": "~4.0.1", 874 | "normalize-path": "~3.0.0", 875 | "readdirp": "~3.6.0" 876 | }, 877 | "engines": { 878 | "node": ">= 8.10.0" 879 | }, 880 | "funding": { 881 | "url": "https://paulmillr.com/funding/" 882 | }, 883 | "optionalDependencies": { 884 | "fsevents": "~2.3.2" 885 | } 886 | }, 887 | "node_modules/code-red": { 888 | "version": "1.0.4", 889 | "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", 890 | "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", 891 | "dev": true, 892 | "dependencies": { 893 | "@jridgewell/sourcemap-codec": "^1.4.15", 894 | "@types/estree": "^1.0.1", 895 | "acorn": "^8.10.0", 896 | "estree-walker": "^3.0.3", 897 | "periscopic": "^3.1.0" 898 | } 899 | }, 900 | "node_modules/concat-map": { 901 | "version": "0.0.1", 902 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 903 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 904 | "dev": true 905 | }, 906 | "node_modules/cookie": { 907 | "version": "0.6.0", 908 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", 909 | "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", 910 | "dev": true, 911 | "engines": { 912 | "node": ">= 0.6" 913 | } 914 | }, 915 | "node_modules/css-tree": { 916 | "version": "2.3.1", 917 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", 918 | "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", 919 | "dev": true, 920 | "dependencies": { 921 | "mdn-data": "2.0.30", 922 | "source-map-js": "^1.0.1" 923 | }, 924 | "engines": { 925 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" 926 | } 927 | }, 928 | "node_modules/debug": { 929 | "version": "4.3.4", 930 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 931 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 932 | "dev": true, 933 | "dependencies": { 934 | "ms": "2.1.2" 935 | }, 936 | "engines": { 937 | "node": ">=6.0" 938 | }, 939 | "peerDependenciesMeta": { 940 | "supports-color": { 941 | "optional": true 942 | } 943 | } 944 | }, 945 | "node_modules/deepmerge": { 946 | "version": "4.3.1", 947 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", 948 | "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", 949 | "dev": true, 950 | "engines": { 951 | "node": ">=0.10.0" 952 | } 953 | }, 954 | "node_modules/dequal": { 955 | "version": "2.0.3", 956 | "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", 957 | "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", 958 | "dev": true, 959 | "engines": { 960 | "node": ">=6" 961 | } 962 | }, 963 | "node_modules/detect-indent": { 964 | "version": "6.1.0", 965 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", 966 | "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", 967 | "dev": true, 968 | "engines": { 969 | "node": ">=8" 970 | } 971 | }, 972 | "node_modules/devalue": { 973 | "version": "4.3.2", 974 | "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.2.tgz", 975 | "integrity": "sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==", 976 | "dev": true 977 | }, 978 | "node_modules/es6-promise": { 979 | "version": "3.3.1", 980 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", 981 | "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", 982 | "dev": true 983 | }, 984 | "node_modules/esbuild": { 985 | "version": "0.19.12", 986 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", 987 | "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", 988 | "dev": true, 989 | "hasInstallScript": true, 990 | "bin": { 991 | "esbuild": "bin/esbuild" 992 | }, 993 | "engines": { 994 | "node": ">=12" 995 | }, 996 | "optionalDependencies": { 997 | "@esbuild/aix-ppc64": "0.19.12", 998 | "@esbuild/android-arm": "0.19.12", 999 | "@esbuild/android-arm64": "0.19.12", 1000 | "@esbuild/android-x64": "0.19.12", 1001 | "@esbuild/darwin-arm64": "0.19.12", 1002 | "@esbuild/darwin-x64": "0.19.12", 1003 | "@esbuild/freebsd-arm64": "0.19.12", 1004 | "@esbuild/freebsd-x64": "0.19.12", 1005 | "@esbuild/linux-arm": "0.19.12", 1006 | "@esbuild/linux-arm64": "0.19.12", 1007 | "@esbuild/linux-ia32": "0.19.12", 1008 | "@esbuild/linux-loong64": "0.19.12", 1009 | "@esbuild/linux-mips64el": "0.19.12", 1010 | "@esbuild/linux-ppc64": "0.19.12", 1011 | "@esbuild/linux-riscv64": "0.19.12", 1012 | "@esbuild/linux-s390x": "0.19.12", 1013 | "@esbuild/linux-x64": "0.19.12", 1014 | "@esbuild/netbsd-x64": "0.19.12", 1015 | "@esbuild/openbsd-x64": "0.19.12", 1016 | "@esbuild/sunos-x64": "0.19.12", 1017 | "@esbuild/win32-arm64": "0.19.12", 1018 | "@esbuild/win32-ia32": "0.19.12", 1019 | "@esbuild/win32-x64": "0.19.12" 1020 | } 1021 | }, 1022 | "node_modules/esm-env": { 1023 | "version": "1.0.0", 1024 | "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", 1025 | "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", 1026 | "dev": true 1027 | }, 1028 | "node_modules/estree-walker": { 1029 | "version": "3.0.3", 1030 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", 1031 | "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", 1032 | "dev": true, 1033 | "dependencies": { 1034 | "@types/estree": "^1.0.0" 1035 | } 1036 | }, 1037 | "node_modules/fast-glob": { 1038 | "version": "3.3.2", 1039 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", 1040 | "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", 1041 | "dev": true, 1042 | "dependencies": { 1043 | "@nodelib/fs.stat": "^2.0.2", 1044 | "@nodelib/fs.walk": "^1.2.3", 1045 | "glob-parent": "^5.1.2", 1046 | "merge2": "^1.3.0", 1047 | "micromatch": "^4.0.4" 1048 | }, 1049 | "engines": { 1050 | "node": ">=8.6.0" 1051 | } 1052 | }, 1053 | "node_modules/fastq": { 1054 | "version": "1.17.1", 1055 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", 1056 | "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", 1057 | "dev": true, 1058 | "dependencies": { 1059 | "reusify": "^1.0.4" 1060 | } 1061 | }, 1062 | "node_modules/fill-range": { 1063 | "version": "7.0.1", 1064 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1065 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1066 | "dev": true, 1067 | "dependencies": { 1068 | "to-regex-range": "^5.0.1" 1069 | }, 1070 | "engines": { 1071 | "node": ">=8" 1072 | } 1073 | }, 1074 | "node_modules/fs.realpath": { 1075 | "version": "1.0.0", 1076 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1077 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", 1078 | "dev": true 1079 | }, 1080 | "node_modules/fsevents": { 1081 | "version": "2.3.3", 1082 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 1083 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1084 | "dev": true, 1085 | "hasInstallScript": true, 1086 | "optional": true, 1087 | "os": [ 1088 | "darwin" 1089 | ], 1090 | "engines": { 1091 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1092 | } 1093 | }, 1094 | "node_modules/glob": { 1095 | "version": "7.2.3", 1096 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", 1097 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", 1098 | "dev": true, 1099 | "dependencies": { 1100 | "fs.realpath": "^1.0.0", 1101 | "inflight": "^1.0.4", 1102 | "inherits": "2", 1103 | "minimatch": "^3.1.1", 1104 | "once": "^1.3.0", 1105 | "path-is-absolute": "^1.0.0" 1106 | }, 1107 | "engines": { 1108 | "node": "*" 1109 | }, 1110 | "funding": { 1111 | "url": "https://github.com/sponsors/isaacs" 1112 | } 1113 | }, 1114 | "node_modules/glob-parent": { 1115 | "version": "5.1.2", 1116 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1117 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1118 | "dev": true, 1119 | "dependencies": { 1120 | "is-glob": "^4.0.1" 1121 | }, 1122 | "engines": { 1123 | "node": ">= 6" 1124 | } 1125 | }, 1126 | "node_modules/globalyzer": { 1127 | "version": "0.1.0", 1128 | "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", 1129 | "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", 1130 | "dev": true 1131 | }, 1132 | "node_modules/globrex": { 1133 | "version": "0.1.2", 1134 | "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", 1135 | "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", 1136 | "dev": true 1137 | }, 1138 | "node_modules/graceful-fs": { 1139 | "version": "4.2.11", 1140 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 1141 | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 1142 | "dev": true 1143 | }, 1144 | "node_modules/import-fresh": { 1145 | "version": "3.3.0", 1146 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1147 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1148 | "dev": true, 1149 | "dependencies": { 1150 | "parent-module": "^1.0.0", 1151 | "resolve-from": "^4.0.0" 1152 | }, 1153 | "engines": { 1154 | "node": ">=6" 1155 | }, 1156 | "funding": { 1157 | "url": "https://github.com/sponsors/sindresorhus" 1158 | } 1159 | }, 1160 | "node_modules/import-meta-resolve": { 1161 | "version": "4.0.0", 1162 | "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", 1163 | "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", 1164 | "dev": true, 1165 | "funding": { 1166 | "type": "github", 1167 | "url": "https://github.com/sponsors/wooorm" 1168 | } 1169 | }, 1170 | "node_modules/inflight": { 1171 | "version": "1.0.6", 1172 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1173 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", 1174 | "dev": true, 1175 | "dependencies": { 1176 | "once": "^1.3.0", 1177 | "wrappy": "1" 1178 | } 1179 | }, 1180 | "node_modules/inherits": { 1181 | "version": "2.0.4", 1182 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1183 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1184 | "dev": true 1185 | }, 1186 | "node_modules/is-binary-path": { 1187 | "version": "2.1.0", 1188 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1189 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1190 | "dev": true, 1191 | "dependencies": { 1192 | "binary-extensions": "^2.0.0" 1193 | }, 1194 | "engines": { 1195 | "node": ">=8" 1196 | } 1197 | }, 1198 | "node_modules/is-extglob": { 1199 | "version": "2.1.1", 1200 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1201 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1202 | "dev": true, 1203 | "engines": { 1204 | "node": ">=0.10.0" 1205 | } 1206 | }, 1207 | "node_modules/is-glob": { 1208 | "version": "4.0.3", 1209 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1210 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1211 | "dev": true, 1212 | "dependencies": { 1213 | "is-extglob": "^2.1.1" 1214 | }, 1215 | "engines": { 1216 | "node": ">=0.10.0" 1217 | } 1218 | }, 1219 | "node_modules/is-number": { 1220 | "version": "7.0.0", 1221 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1222 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1223 | "dev": true, 1224 | "engines": { 1225 | "node": ">=0.12.0" 1226 | } 1227 | }, 1228 | "node_modules/is-reference": { 1229 | "version": "3.0.2", 1230 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", 1231 | "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", 1232 | "dev": true, 1233 | "dependencies": { 1234 | "@types/estree": "*" 1235 | } 1236 | }, 1237 | "node_modules/kleur": { 1238 | "version": "4.1.5", 1239 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 1240 | "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 1241 | "dev": true, 1242 | "engines": { 1243 | "node": ">=6" 1244 | } 1245 | }, 1246 | "node_modules/locate-character": { 1247 | "version": "3.0.0", 1248 | "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", 1249 | "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", 1250 | "dev": true 1251 | }, 1252 | "node_modules/magic-string": { 1253 | "version": "0.30.8", 1254 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", 1255 | "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", 1256 | "dev": true, 1257 | "dependencies": { 1258 | "@jridgewell/sourcemap-codec": "^1.4.15" 1259 | }, 1260 | "engines": { 1261 | "node": ">=12" 1262 | } 1263 | }, 1264 | "node_modules/mdn-data": { 1265 | "version": "2.0.30", 1266 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", 1267 | "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", 1268 | "dev": true 1269 | }, 1270 | "node_modules/merge2": { 1271 | "version": "1.4.1", 1272 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 1273 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1274 | "dev": true, 1275 | "engines": { 1276 | "node": ">= 8" 1277 | } 1278 | }, 1279 | "node_modules/micromatch": { 1280 | "version": "4.0.5", 1281 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 1282 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 1283 | "dev": true, 1284 | "dependencies": { 1285 | "braces": "^3.0.2", 1286 | "picomatch": "^2.3.1" 1287 | }, 1288 | "engines": { 1289 | "node": ">=8.6" 1290 | } 1291 | }, 1292 | "node_modules/min-indent": { 1293 | "version": "1.0.1", 1294 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 1295 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", 1296 | "dev": true, 1297 | "engines": { 1298 | "node": ">=4" 1299 | } 1300 | }, 1301 | "node_modules/minimatch": { 1302 | "version": "3.1.2", 1303 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1304 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1305 | "dev": true, 1306 | "dependencies": { 1307 | "brace-expansion": "^1.1.7" 1308 | }, 1309 | "engines": { 1310 | "node": "*" 1311 | } 1312 | }, 1313 | "node_modules/minimist": { 1314 | "version": "1.2.8", 1315 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 1316 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 1317 | "dev": true, 1318 | "funding": { 1319 | "url": "https://github.com/sponsors/ljharb" 1320 | } 1321 | }, 1322 | "node_modules/mkdirp": { 1323 | "version": "0.5.6", 1324 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", 1325 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", 1326 | "dev": true, 1327 | "dependencies": { 1328 | "minimist": "^1.2.6" 1329 | }, 1330 | "bin": { 1331 | "mkdirp": "bin/cmd.js" 1332 | } 1333 | }, 1334 | "node_modules/mri": { 1335 | "version": "1.2.0", 1336 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", 1337 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", 1338 | "dev": true, 1339 | "engines": { 1340 | "node": ">=4" 1341 | } 1342 | }, 1343 | "node_modules/mrmime": { 1344 | "version": "2.0.0", 1345 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", 1346 | "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", 1347 | "dev": true, 1348 | "engines": { 1349 | "node": ">=10" 1350 | } 1351 | }, 1352 | "node_modules/ms": { 1353 | "version": "2.1.2", 1354 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1355 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1356 | "dev": true 1357 | }, 1358 | "node_modules/nanoid": { 1359 | "version": "3.3.7", 1360 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", 1361 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", 1362 | "dev": true, 1363 | "funding": [ 1364 | { 1365 | "type": "github", 1366 | "url": "https://github.com/sponsors/ai" 1367 | } 1368 | ], 1369 | "bin": { 1370 | "nanoid": "bin/nanoid.cjs" 1371 | }, 1372 | "engines": { 1373 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1374 | } 1375 | }, 1376 | "node_modules/normalize-path": { 1377 | "version": "3.0.0", 1378 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1379 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1380 | "dev": true, 1381 | "engines": { 1382 | "node": ">=0.10.0" 1383 | } 1384 | }, 1385 | "node_modules/once": { 1386 | "version": "1.4.0", 1387 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1388 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 1389 | "dev": true, 1390 | "dependencies": { 1391 | "wrappy": "1" 1392 | } 1393 | }, 1394 | "node_modules/parent-module": { 1395 | "version": "1.0.1", 1396 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1397 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1398 | "dev": true, 1399 | "dependencies": { 1400 | "callsites": "^3.0.0" 1401 | }, 1402 | "engines": { 1403 | "node": ">=6" 1404 | } 1405 | }, 1406 | "node_modules/path-is-absolute": { 1407 | "version": "1.0.1", 1408 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1409 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", 1410 | "dev": true, 1411 | "engines": { 1412 | "node": ">=0.10.0" 1413 | } 1414 | }, 1415 | "node_modules/periscopic": { 1416 | "version": "3.1.0", 1417 | "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", 1418 | "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", 1419 | "dev": true, 1420 | "dependencies": { 1421 | "@types/estree": "^1.0.0", 1422 | "estree-walker": "^3.0.0", 1423 | "is-reference": "^3.0.0" 1424 | } 1425 | }, 1426 | "node_modules/picocolors": { 1427 | "version": "1.0.0", 1428 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1429 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1430 | "dev": true 1431 | }, 1432 | "node_modules/picomatch": { 1433 | "version": "2.3.1", 1434 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1435 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1436 | "dev": true, 1437 | "engines": { 1438 | "node": ">=8.6" 1439 | }, 1440 | "funding": { 1441 | "url": "https://github.com/sponsors/jonschlinkert" 1442 | } 1443 | }, 1444 | "node_modules/postcss": { 1445 | "version": "8.4.35", 1446 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", 1447 | "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", 1448 | "dev": true, 1449 | "funding": [ 1450 | { 1451 | "type": "opencollective", 1452 | "url": "https://opencollective.com/postcss/" 1453 | }, 1454 | { 1455 | "type": "tidelift", 1456 | "url": "https://tidelift.com/funding/github/npm/postcss" 1457 | }, 1458 | { 1459 | "type": "github", 1460 | "url": "https://github.com/sponsors/ai" 1461 | } 1462 | ], 1463 | "dependencies": { 1464 | "nanoid": "^3.3.7", 1465 | "picocolors": "^1.0.0", 1466 | "source-map-js": "^1.0.2" 1467 | }, 1468 | "engines": { 1469 | "node": "^10 || ^12 || >=14" 1470 | } 1471 | }, 1472 | "node_modules/prettier": { 1473 | "version": "3.2.5", 1474 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", 1475 | "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", 1476 | "dev": true, 1477 | "bin": { 1478 | "prettier": "bin/prettier.cjs" 1479 | }, 1480 | "engines": { 1481 | "node": ">=14" 1482 | }, 1483 | "funding": { 1484 | "url": "https://github.com/prettier/prettier?sponsor=1" 1485 | } 1486 | }, 1487 | "node_modules/prettier-plugin-svelte": { 1488 | "version": "3.2.2", 1489 | "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.2.tgz", 1490 | "integrity": "sha512-ZzzE/wMuf48/1+Lf2Ffko0uDa6pyCfgHV6+uAhtg2U0AAXGrhCSW88vEJNAkAxW5qyrFY1y1zZ4J8TgHrjW++Q==", 1491 | "dev": true, 1492 | "peerDependencies": { 1493 | "prettier": "^3.0.0", 1494 | "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" 1495 | } 1496 | }, 1497 | "node_modules/queue-microtask": { 1498 | "version": "1.2.3", 1499 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1500 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1501 | "dev": true, 1502 | "funding": [ 1503 | { 1504 | "type": "github", 1505 | "url": "https://github.com/sponsors/feross" 1506 | }, 1507 | { 1508 | "type": "patreon", 1509 | "url": "https://www.patreon.com/feross" 1510 | }, 1511 | { 1512 | "type": "consulting", 1513 | "url": "https://feross.org/support" 1514 | } 1515 | ] 1516 | }, 1517 | "node_modules/readdirp": { 1518 | "version": "3.6.0", 1519 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1520 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1521 | "dev": true, 1522 | "dependencies": { 1523 | "picomatch": "^2.2.1" 1524 | }, 1525 | "engines": { 1526 | "node": ">=8.10.0" 1527 | } 1528 | }, 1529 | "node_modules/resolve-from": { 1530 | "version": "4.0.0", 1531 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1532 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1533 | "dev": true, 1534 | "engines": { 1535 | "node": ">=4" 1536 | } 1537 | }, 1538 | "node_modules/reusify": { 1539 | "version": "1.0.4", 1540 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1541 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1542 | "dev": true, 1543 | "engines": { 1544 | "iojs": ">=1.0.0", 1545 | "node": ">=0.10.0" 1546 | } 1547 | }, 1548 | "node_modules/rimraf": { 1549 | "version": "2.7.1", 1550 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", 1551 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", 1552 | "dev": true, 1553 | "dependencies": { 1554 | "glob": "^7.1.3" 1555 | }, 1556 | "bin": { 1557 | "rimraf": "bin.js" 1558 | } 1559 | }, 1560 | "node_modules/rollup": { 1561 | "version": "4.13.0", 1562 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", 1563 | "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", 1564 | "dev": true, 1565 | "dependencies": { 1566 | "@types/estree": "1.0.5" 1567 | }, 1568 | "bin": { 1569 | "rollup": "dist/bin/rollup" 1570 | }, 1571 | "engines": { 1572 | "node": ">=18.0.0", 1573 | "npm": ">=8.0.0" 1574 | }, 1575 | "optionalDependencies": { 1576 | "@rollup/rollup-android-arm-eabi": "4.13.0", 1577 | "@rollup/rollup-android-arm64": "4.13.0", 1578 | "@rollup/rollup-darwin-arm64": "4.13.0", 1579 | "@rollup/rollup-darwin-x64": "4.13.0", 1580 | "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", 1581 | "@rollup/rollup-linux-arm64-gnu": "4.13.0", 1582 | "@rollup/rollup-linux-arm64-musl": "4.13.0", 1583 | "@rollup/rollup-linux-riscv64-gnu": "4.13.0", 1584 | "@rollup/rollup-linux-x64-gnu": "4.13.0", 1585 | "@rollup/rollup-linux-x64-musl": "4.13.0", 1586 | "@rollup/rollup-win32-arm64-msvc": "4.13.0", 1587 | "@rollup/rollup-win32-ia32-msvc": "4.13.0", 1588 | "@rollup/rollup-win32-x64-msvc": "4.13.0", 1589 | "fsevents": "~2.3.2" 1590 | } 1591 | }, 1592 | "node_modules/run-parallel": { 1593 | "version": "1.2.0", 1594 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1595 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1596 | "dev": true, 1597 | "funding": [ 1598 | { 1599 | "type": "github", 1600 | "url": "https://github.com/sponsors/feross" 1601 | }, 1602 | { 1603 | "type": "patreon", 1604 | "url": "https://www.patreon.com/feross" 1605 | }, 1606 | { 1607 | "type": "consulting", 1608 | "url": "https://feross.org/support" 1609 | } 1610 | ], 1611 | "dependencies": { 1612 | "queue-microtask": "^1.2.2" 1613 | } 1614 | }, 1615 | "node_modules/sade": { 1616 | "version": "1.8.1", 1617 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", 1618 | "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", 1619 | "dev": true, 1620 | "dependencies": { 1621 | "mri": "^1.1.0" 1622 | }, 1623 | "engines": { 1624 | "node": ">=6" 1625 | } 1626 | }, 1627 | "node_modules/sander": { 1628 | "version": "0.5.1", 1629 | "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", 1630 | "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", 1631 | "dev": true, 1632 | "dependencies": { 1633 | "es6-promise": "^3.1.2", 1634 | "graceful-fs": "^4.1.3", 1635 | "mkdirp": "^0.5.1", 1636 | "rimraf": "^2.5.2" 1637 | } 1638 | }, 1639 | "node_modules/set-cookie-parser": { 1640 | "version": "2.6.0", 1641 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", 1642 | "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", 1643 | "dev": true 1644 | }, 1645 | "node_modules/sirv": { 1646 | "version": "2.0.4", 1647 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", 1648 | "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", 1649 | "dev": true, 1650 | "dependencies": { 1651 | "@polka/url": "^1.0.0-next.24", 1652 | "mrmime": "^2.0.0", 1653 | "totalist": "^3.0.0" 1654 | }, 1655 | "engines": { 1656 | "node": ">= 10" 1657 | } 1658 | }, 1659 | "node_modules/sorcery": { 1660 | "version": "0.11.0", 1661 | "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", 1662 | "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", 1663 | "dev": true, 1664 | "dependencies": { 1665 | "@jridgewell/sourcemap-codec": "^1.4.14", 1666 | "buffer-crc32": "^0.2.5", 1667 | "minimist": "^1.2.0", 1668 | "sander": "^0.5.0" 1669 | }, 1670 | "bin": { 1671 | "sorcery": "bin/sorcery" 1672 | } 1673 | }, 1674 | "node_modules/source-map-js": { 1675 | "version": "1.0.2", 1676 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1677 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1678 | "dev": true, 1679 | "engines": { 1680 | "node": ">=0.10.0" 1681 | } 1682 | }, 1683 | "node_modules/strip-indent": { 1684 | "version": "3.0.0", 1685 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 1686 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 1687 | "dev": true, 1688 | "dependencies": { 1689 | "min-indent": "^1.0.0" 1690 | }, 1691 | "engines": { 1692 | "node": ">=8" 1693 | } 1694 | }, 1695 | "node_modules/svelte": { 1696 | "version": "4.2.12", 1697 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.12.tgz", 1698 | "integrity": "sha512-d8+wsh5TfPwqVzbm4/HCXC783/KPHV60NvwitJnyTA5lWn1elhXMNWhXGCJ7PwPa8qFUnyJNIyuIRt2mT0WMug==", 1699 | "dev": true, 1700 | "dependencies": { 1701 | "@ampproject/remapping": "^2.2.1", 1702 | "@jridgewell/sourcemap-codec": "^1.4.15", 1703 | "@jridgewell/trace-mapping": "^0.3.18", 1704 | "@types/estree": "^1.0.1", 1705 | "acorn": "^8.9.0", 1706 | "aria-query": "^5.3.0", 1707 | "axobject-query": "^4.0.0", 1708 | "code-red": "^1.0.3", 1709 | "css-tree": "^2.3.1", 1710 | "estree-walker": "^3.0.3", 1711 | "is-reference": "^3.0.1", 1712 | "locate-character": "^3.0.0", 1713 | "magic-string": "^0.30.4", 1714 | "periscopic": "^3.1.0" 1715 | }, 1716 | "engines": { 1717 | "node": ">=16" 1718 | } 1719 | }, 1720 | "node_modules/svelte-check": { 1721 | "version": "3.6.7", 1722 | "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.7.tgz", 1723 | "integrity": "sha512-tKEjemK9FYCySAseCaIt+ps5o0XRvLC7ECjyJXXtO7vOQhR9E6JavgoUbGP1PCulD2OTcB/fi9RjV3nyF1AROw==", 1724 | "dev": true, 1725 | "dependencies": { 1726 | "@jridgewell/trace-mapping": "^0.3.17", 1727 | "chokidar": "^3.4.1", 1728 | "fast-glob": "^3.2.7", 1729 | "import-fresh": "^3.2.1", 1730 | "picocolors": "^1.0.0", 1731 | "sade": "^1.7.4", 1732 | "svelte-preprocess": "^5.1.3", 1733 | "typescript": "^5.0.3" 1734 | }, 1735 | "bin": { 1736 | "svelte-check": "bin/svelte-check" 1737 | }, 1738 | "peerDependencies": { 1739 | "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" 1740 | } 1741 | }, 1742 | "node_modules/svelte-hmr": { 1743 | "version": "0.15.3", 1744 | "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz", 1745 | "integrity": "sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==", 1746 | "dev": true, 1747 | "engines": { 1748 | "node": "^12.20 || ^14.13.1 || >= 16" 1749 | }, 1750 | "peerDependencies": { 1751 | "svelte": "^3.19.0 || ^4.0.0" 1752 | } 1753 | }, 1754 | "node_modules/svelte-preprocess": { 1755 | "version": "5.1.3", 1756 | "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.3.tgz", 1757 | "integrity": "sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==", 1758 | "dev": true, 1759 | "hasInstallScript": true, 1760 | "dependencies": { 1761 | "@types/pug": "^2.0.6", 1762 | "detect-indent": "^6.1.0", 1763 | "magic-string": "^0.30.5", 1764 | "sorcery": "^0.11.0", 1765 | "strip-indent": "^3.0.0" 1766 | }, 1767 | "engines": { 1768 | "node": ">= 16.0.0", 1769 | "pnpm": "^8.0.0" 1770 | }, 1771 | "peerDependencies": { 1772 | "@babel/core": "^7.10.2", 1773 | "coffeescript": "^2.5.1", 1774 | "less": "^3.11.3 || ^4.0.0", 1775 | "postcss": "^7 || ^8", 1776 | "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", 1777 | "pug": "^3.0.0", 1778 | "sass": "^1.26.8", 1779 | "stylus": "^0.55.0", 1780 | "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", 1781 | "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0", 1782 | "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" 1783 | }, 1784 | "peerDependenciesMeta": { 1785 | "@babel/core": { 1786 | "optional": true 1787 | }, 1788 | "coffeescript": { 1789 | "optional": true 1790 | }, 1791 | "less": { 1792 | "optional": true 1793 | }, 1794 | "postcss": { 1795 | "optional": true 1796 | }, 1797 | "postcss-load-config": { 1798 | "optional": true 1799 | }, 1800 | "pug": { 1801 | "optional": true 1802 | }, 1803 | "sass": { 1804 | "optional": true 1805 | }, 1806 | "stylus": { 1807 | "optional": true 1808 | }, 1809 | "sugarss": { 1810 | "optional": true 1811 | }, 1812 | "typescript": { 1813 | "optional": true 1814 | } 1815 | } 1816 | }, 1817 | "node_modules/tiny-glob": { 1818 | "version": "0.2.9", 1819 | "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", 1820 | "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", 1821 | "dev": true, 1822 | "dependencies": { 1823 | "globalyzer": "0.1.0", 1824 | "globrex": "^0.1.2" 1825 | } 1826 | }, 1827 | "node_modules/to-regex-range": { 1828 | "version": "5.0.1", 1829 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1830 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1831 | "dev": true, 1832 | "dependencies": { 1833 | "is-number": "^7.0.0" 1834 | }, 1835 | "engines": { 1836 | "node": ">=8.0" 1837 | } 1838 | }, 1839 | "node_modules/totalist": { 1840 | "version": "3.0.1", 1841 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", 1842 | "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", 1843 | "dev": true, 1844 | "engines": { 1845 | "node": ">=6" 1846 | } 1847 | }, 1848 | "node_modules/typescript": { 1849 | "version": "5.4.2", 1850 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", 1851 | "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", 1852 | "dev": true, 1853 | "bin": { 1854 | "tsc": "bin/tsc", 1855 | "tsserver": "bin/tsserver" 1856 | }, 1857 | "engines": { 1858 | "node": ">=14.17" 1859 | } 1860 | }, 1861 | "node_modules/vite": { 1862 | "version": "5.1.6", 1863 | "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.6.tgz", 1864 | "integrity": "sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==", 1865 | "dev": true, 1866 | "dependencies": { 1867 | "esbuild": "^0.19.3", 1868 | "postcss": "^8.4.35", 1869 | "rollup": "^4.2.0" 1870 | }, 1871 | "bin": { 1872 | "vite": "bin/vite.js" 1873 | }, 1874 | "engines": { 1875 | "node": "^18.0.0 || >=20.0.0" 1876 | }, 1877 | "funding": { 1878 | "url": "https://github.com/vitejs/vite?sponsor=1" 1879 | }, 1880 | "optionalDependencies": { 1881 | "fsevents": "~2.3.3" 1882 | }, 1883 | "peerDependencies": { 1884 | "@types/node": "^18.0.0 || >=20.0.0", 1885 | "less": "*", 1886 | "lightningcss": "^1.21.0", 1887 | "sass": "*", 1888 | "stylus": "*", 1889 | "sugarss": "*", 1890 | "terser": "^5.4.0" 1891 | }, 1892 | "peerDependenciesMeta": { 1893 | "@types/node": { 1894 | "optional": true 1895 | }, 1896 | "less": { 1897 | "optional": true 1898 | }, 1899 | "lightningcss": { 1900 | "optional": true 1901 | }, 1902 | "sass": { 1903 | "optional": true 1904 | }, 1905 | "stylus": { 1906 | "optional": true 1907 | }, 1908 | "sugarss": { 1909 | "optional": true 1910 | }, 1911 | "terser": { 1912 | "optional": true 1913 | } 1914 | } 1915 | }, 1916 | "node_modules/vitefu": { 1917 | "version": "0.2.5", 1918 | "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz", 1919 | "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==", 1920 | "dev": true, 1921 | "peerDependencies": { 1922 | "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" 1923 | }, 1924 | "peerDependenciesMeta": { 1925 | "vite": { 1926 | "optional": true 1927 | } 1928 | } 1929 | }, 1930 | "node_modules/wrappy": { 1931 | "version": "1.0.2", 1932 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1933 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 1934 | "dev": true 1935 | } 1936 | } 1937 | } 1938 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "svelte-template-datawrapper-interaction-events", 3 | "version": "0.0.1", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vite dev", 7 | "build": "vite build", 8 | "preview": "vite preview", 9 | "check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json", 10 | "check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch", 11 | "lint": "prettier --check .", 12 | "format": "prettier --write ." 13 | }, 14 | "devDependencies": { 15 | "@sveltejs/adapter-auto": "^3.0.0", 16 | "@sveltejs/kit": "^2.0.0", 17 | "@sveltejs/vite-plugin-svelte": "^3.0.0", 18 | "prettier": "^3.1.1", 19 | "prettier-plugin-svelte": "^3.1.2", 20 | "svelte": "^4.2.7", 21 | "svelte-check": "^3.6.0", 22 | "typescript": "^5.0.0", 23 | "vite": "^5.0.3" 24 | }, 25 | "type": "module" 26 | } 27 | -------------------------------------------------------------------------------- /src/app.css: -------------------------------------------------------------------------------- 1 | /* global styles go here */ 2 | -------------------------------------------------------------------------------- /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 PageState {} 9 | // interface Platform {} 10 | } 11 | } 12 | 13 | export {}; 14 | -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | %sveltekit.head% 8 | 9 | 10 |{d.label}: {comma($lookupData[d.var])}
29 | {/each} 30 | *Data for 2022 31 | 32 | 35 | -------------------------------------------------------------------------------- /src/lib/stores.js: -------------------------------------------------------------------------------- 1 | import { writable, derived } from 'svelte/store'; 2 | import data from '../data/data.json'; 3 | 4 | export const selectedKey = writable(null); 5 | 6 | // create a read-only, derived store of lookup data 7 | export const lookupData = derived(selectedKey, ($selectedKey) => { 8 | if (!$selectedKey) return data[0]['00000']; 9 | return data[0][$selectedKey]; 10 | }); 11 | -------------------------------------------------------------------------------- /src/lib/utils/events.js: -------------------------------------------------------------------------------- 1 | // @ts-nocheck 2 | export default function datawrapper_events() { 3 | if (typeof window !== 'undefined') { 4 | if (typeof window.datawrapper === 'undefined') window.datawrapper = {}; 5 | 6 | var datawrapper = window.datawrapper; 7 | var listeners = {}; 8 | 9 | window.addEventListener('message', receiveMessage, false); 10 | 11 | function receiveMessage(event) { 12 | if ( 13 | event.data && 14 | event.data.source === 'datawrapper' && 15 | event.data.chartId && 16 | listeners[event.data.type] 17 | ) { 18 | listeners[event.data.type].forEach(function (cb) { 19 | if (typeof cb === 'function') cb(event.data); 20 | }); 21 | } 22 | } 23 | 24 | datawrapper.on = function (event, callback) { 25 | if (typeof event !== 'string') throw new Error('event name must be a string'); 26 | if (typeof callback !== 'function') throw new Error('callback must be a function'); 27 | if (!listeners[event]) listeners[event] = []; 28 | listeners[event].push(callback); 29 | return datawrapper; 30 | }; 31 | 32 | datawrapper.one = function (event, callback) { 33 | datawrapper.on(event, function wrap() { 34 | callback.apply(null, arguments); 35 | datawrapper.off(event, wrap); 36 | }); 37 | }; 38 | 39 | datawrapper.off = function (event, callback) { 40 | if (!listeners[event]) return; 41 | if (!callback) listeners[event].length = 0; 42 | var i = listeners[event].indexOf(callback); 43 | if (i > -1) { 44 | listeners[event].splice(i, 1); 45 | } 46 | return datawrapper; 47 | }; 48 | return datawrapper; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/lib/utils/format.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Adds commas to a number for formatting purposes. 3 | * 4 | * @param {number} num - The number to add commas to. 5 | * @returns {string} The formatted number with commas. 6 | */ 7 | export const comma = (num) => { 8 | return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); 9 | }; 10 | -------------------------------------------------------------------------------- /src/routes/+layout.server.js: -------------------------------------------------------------------------------- 1 | export const prerender = true; 2 | -------------------------------------------------------------------------------- /src/routes/+page.svelte: -------------------------------------------------------------------------------- 1 | 7 | 8 |