├── src ├── routes │ ├── error │ │ ├── +page.ts │ │ └── +page.svelte │ ├── redirect │ │ ├── +page.svelte │ │ └── +page.server.ts │ ├── nested │ │ └── route │ │ │ ├── +page.ts │ │ │ ├── +page.server.ts │ │ │ └── +page.svelte │ ├── +page.server.ts │ ├── +layout.server.ts │ ├── api │ │ └── secret │ │ │ └── +server.ts │ ├── +page.ts │ ├── +layout.ts │ ├── stores │ │ ├── +page.svelte │ │ ├── +layout.server.ts │ │ └── +layout.svelte │ ├── locals │ │ ├── +page.svelte │ │ └── +page.server.ts │ ├── +page.svelte │ ├── actions │ │ ├── +page.server.ts │ │ └── +page.svelte │ ├── +error.svelte │ └── +layout.svelte ├── hooks.client.ts ├── app.d.ts ├── hooks.server.ts ├── app.html ├── lib │ ├── pre.svelte │ └── utils │ │ └── log.ts └── app.css ├── .npmrc ├── static └── favicon.png ├── vite.config.ts ├── .gitignore ├── tsconfig.json ├── README.md ├── svelte.config.js ├── package.json └── pnpm-lock.yaml /src/routes/error/+page.ts: -------------------------------------------------------------------------------- 1 | throw new Error('💣️') 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | resolution-mode=highest 3 | -------------------------------------------------------------------------------- /src/routes/redirect/+page.svelte: -------------------------------------------------------------------------------- 1 |

Redirect

2 | -------------------------------------------------------------------------------- /static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joysofcode/sveltekit-data-flow/HEAD/static/favicon.png -------------------------------------------------------------------------------- /src/hooks.client.ts: -------------------------------------------------------------------------------- 1 | import log from '$lib/utils/log' 2 | 3 | export async function handleError({ error, event }) { 4 | log.hooks('hooks.client.ts') 5 | } 6 | -------------------------------------------------------------------------------- /src/routes/error/+page.svelte: -------------------------------------------------------------------------------- 1 | 6 | 7 |

Error

8 | -------------------------------------------------------------------------------- /src/routes/nested/route/+page.ts: -------------------------------------------------------------------------------- 1 | export async function load({ parent }) { 2 | // parent `+layout.ts` data 3 | const data = await parent() 4 | console.log(data) 5 | } 6 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite'; 2 | import { defineConfig } from 'vite'; 3 | 4 | export default defineConfig({ 5 | plugins: [sveltekit()] 6 | }); 7 | -------------------------------------------------------------------------------- /src/routes/nested/route/+page.server.ts: -------------------------------------------------------------------------------- 1 | export async function load({ parent }) { 2 | // parent `+layout.server.ts` data 3 | const data = await parent() 4 | console.log(data) 5 | } 6 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /src/routes/+page.server.ts: -------------------------------------------------------------------------------- 1 | import log from '$lib/utils/log' 2 | 3 | export async function load() { 4 | log.page('+page.server.ts (load)') 5 | 6 | return { 7 | c: 3, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/routes/+layout.server.ts: -------------------------------------------------------------------------------- 1 | import log from '$lib/utils/log' 2 | 3 | export async function load() { 4 | log.layout('+layout.server.ts (load)') 5 | 6 | return { 7 | a: 1, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/routes/api/secret/+server.ts: -------------------------------------------------------------------------------- 1 | import log from '$lib/utils/log' 2 | 3 | export async function GET({ locals }) { 4 | log.endpoint('+server.ts (GET)') 5 | return new Response(locals.secret) 6 | } 7 | -------------------------------------------------------------------------------- /src/routes/+page.ts: -------------------------------------------------------------------------------- 1 | import log from '$lib/utils/log' 2 | 3 | export async function load({ data }) { 4 | log.page('+page.ts (load)') 5 | 6 | return { 7 | ...data, 8 | d: 4, 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/routes/+layout.ts: -------------------------------------------------------------------------------- 1 | import log from '$lib/utils/log' 2 | 3 | export async function load({ data }) { 4 | log.layout('+layout.ts (load)') 5 | 6 | return { 7 | ...data, 8 | b: 2, 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/routes/stores/+page.svelte: -------------------------------------------------------------------------------- 1 | 6 | 7 |

Stores with context

8 |

Welcome {$user.name}!

9 | -------------------------------------------------------------------------------- /src/routes/locals/+page.svelte: -------------------------------------------------------------------------------- 1 | 6 | 7 |

Adding custom data to a request

8 | 9 |
10 | 


--------------------------------------------------------------------------------
/src/routes/stores/+layout.server.ts:
--------------------------------------------------------------------------------
 1 | const users = ['Jet', 'Spike', 'Faye', 'Ed', 'Ein']
 2 | 
 3 | export async function load() {
 4 | 	return {
 5 | 		user: {
 6 | 			name: users[Math.floor(Math.random() * users.length)],
 7 | 		},
 8 | 	}
 9 | }
10 | 


--------------------------------------------------------------------------------
/src/routes/locals/+page.server.ts:
--------------------------------------------------------------------------------
 1 | import { redirect } from '@sveltejs/kit'
 2 | 
 3 | export async function load({ locals }) {
 4 | 	if (locals.secret !== '🍌') {
 5 | 		throw redirect(307, '/')
 6 | 	}
 7 | 
 8 | 	return {
 9 | 		secret: locals.secret,
10 | 	}
11 | }
12 | 


--------------------------------------------------------------------------------
/src/routes/redirect/+page.server.ts:
--------------------------------------------------------------------------------
 1 | import { redirect } from '@sveltejs/kit'
 2 | import log from '$lib/utils/log'
 3 | 
 4 | export async function load({ locals }) {
 5 | 	log.page('/redirect/+page.server.ts (load)')
 6 | 
 7 | 	if (!locals) {
 8 | 		throw redirect(307, '/')
 9 | 	}
10 | }
11 | 


--------------------------------------------------------------------------------
/src/routes/stores/+layout.svelte:
--------------------------------------------------------------------------------
 1 | 
12 | 
13 | 
14 | 


--------------------------------------------------------------------------------
/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 | 			secret: string
 8 | 		}
 9 | 		// interface PageData {}
10 | 		// interface Platform {}
11 | 	}
12 | }
13 | 
14 | export {}
15 | 


--------------------------------------------------------------------------------
/src/routes/+page.svelte:
--------------------------------------------------------------------------------
 1 | 
10 | 
11 | 

Home

12 | 13 |
14 | 
15 | 


--------------------------------------------------------------------------------
/src/routes/actions/+page.server.ts:
--------------------------------------------------------------------------------
 1 | import log from '$lib/utils/log'
 2 | 
 3 | export async function load() {
 4 | 	log.page('/forms/+page.server.ts (load)')
 5 | }
 6 | 
 7 | export const actions = {
 8 | 	async login({ url }) {
 9 | 		log.page(`LOGIN ACTION: ${url.href}`)
10 | 	},
11 | 	async register({ url }) {
12 | 		log.page(`REGISTER ACTION: ${url.href}`)
13 | 	},
14 | }
15 | 


--------------------------------------------------------------------------------
/src/hooks.server.ts:
--------------------------------------------------------------------------------
 1 | import log from '$lib/utils/log'
 2 | 
 3 | export async function handle({ event, resolve }) {
 4 | 	log.bold(`📣 NEW REQUEST IS BEING MADE FROM ${event.url.pathname}`)
 5 | 	log.hooks('hooks.server.ts')
 6 | 
 7 | 	event.locals.secret = '🍌'
 8 | 
 9 | 	const response = await resolve(event)
10 | 	log.bold(`🔥 THE PAGE IS READY, I'M SENDING THE RESPONSE`)
11 | 	return response
12 | }
13 | 


--------------------------------------------------------------------------------
/src/app.html:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 	
 4 | 		
 5 | 		
 6 | 		
 7 | 		%sveltekit.head%
 8 | 		
11 | 	
12 | 	
13 | 		
%sveltekit.body%
14 | 15 | 16 | -------------------------------------------------------------------------------- /src/routes/nested/route/+page.svelte: -------------------------------------------------------------------------------- 1 | 10 | 11 |

Nested route

12 | 13 |

{data.a} + {data.b} = {data.a + data.b}

14 | 15 |
16 | 
17 | 


--------------------------------------------------------------------------------
/src/routes/+error.svelte:
--------------------------------------------------------------------------------
 1 | 
 8 | 
 9 | 

Error

10 | 11 |

12 | Even though you're on the {$page.url.pathname} route this is not the 13 | +page.svelte component but the +error.svelte component. 14 |

15 | 16 |
17 | 


--------------------------------------------------------------------------------
/src/routes/+layout.svelte:
--------------------------------------------------------------------------------
 1 | 
 7 | 
 8 | 
16 | 
17 | 
18 | 
19 | 
25 | 


--------------------------------------------------------------------------------
/src/lib/pre.svelte:
--------------------------------------------------------------------------------
 1 | 
 5 | 
 6 | 
7 |

{name}

8 | 9 |
10 | {JSON.stringify(value, null, 2)}
11 |   
12 |
13 | 14 | 29 | -------------------------------------------------------------------------------- /tsconfig.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 | } 13 | // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias 14 | // 15 | // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes 16 | // from the referenced tsconfig.json - TypeScript does not merge them in 17 | } 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SvelteKit Data Flow 2 | 3 | Learn how data flows in your SvelteKit app. 4 | 5 | ## Post 6 | 7 | ✍️ https://joyofcode.xyz/sveltekit-data-flow 8 | 9 | ## Remote Development 10 | 11 | [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/joysofcode/sveltekit-data-flow) 12 | 13 | ## Local Development 14 | 15 | ### 🧑‍🤝‍🧑 Clone the project 16 | 17 | ```sh 18 | https://github.com/joysofcode/sveltekit-data-flow 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 | -------------------------------------------------------------------------------- /src/app.css: -------------------------------------------------------------------------------- 1 | @import '@fontsource/manrope'; 2 | @import '@fontsource/jetbrains-mono'; 3 | 4 | @import 'open-props/style'; 5 | @import 'open-props/normalize'; 6 | @import 'open-props/buttons'; 7 | 8 | html { 9 | --font-sans: 'Manrope', sans-serif; 10 | --font-mono: 'JetBrains Mono', monospace; 11 | --link-visited: var(--gray-0); 12 | --brand: var(--red-6); 13 | } 14 | 15 | body { 16 | padding: var(--size-7); 17 | } 18 | 19 | h1 { 20 | margin-block: var(--size-7); 21 | text-transform: capitalize; 22 | } 23 | 24 | a { 25 | color: var(--gray-0); 26 | text-decoration: none; 27 | transition: color 0.3s; 28 | } 29 | 30 | a:hover { 31 | color: var(--brand); 32 | } 33 | -------------------------------------------------------------------------------- /src/lib/utils/log.ts: -------------------------------------------------------------------------------- 1 | import chalk from 'chalk' 2 | 3 | const styles = { 4 | tomato: chalk.hex('#000000').bgHex('#ff6347'), 5 | aqua: chalk.hex('#000000').bgHex('#7ffd4'), 6 | white: chalk.hex('#000000').bgHex('#ffffff'), 7 | black: chalk.hex('#ffffff').bgHex('#000000'), 8 | } 9 | 10 | export default { 11 | hooks(text: string) { 12 | console.log(styles.tomato(text)) 13 | }, 14 | layout(text: string) { 15 | console.log(styles.aqua(text)) 16 | }, 17 | page(text: string) { 18 | console.log(styles.white(text)) 19 | }, 20 | endpoint(text: string) { 21 | console.log(styles.black(text)) 22 | }, 23 | bold(text: string) { 24 | console.log(chalk.bold(text)) 25 | }, 26 | } 27 | -------------------------------------------------------------------------------- /svelte.config.js: -------------------------------------------------------------------------------- 1 | import adapter from '@sveltejs/adapter-auto'; 2 | import { vitePreprocess } from '@sveltejs/kit/vite'; 3 | 4 | /** @type {import('@sveltejs/kit').Config} */ 5 | const config = { 6 | // Consult https://kit.svelte.dev/docs/integrations#preprocessors 7 | // for more information about preprocessors 8 | preprocess: vitePreprocess(), 9 | 10 | kit: { 11 | // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. 12 | // If your environment is not supported or you settled on a specific environment, switch out the adapter. 13 | // See https://kit.svelte.dev/docs/adapters for more information about adapters. 14 | adapter: adapter() 15 | } 16 | }; 17 | 18 | export default config; 19 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module", 3 | "name": "sveltekit-data-flow", 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 ./tsconfig.json", 10 | "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" 11 | }, 12 | "devDependencies": { 13 | "@sveltejs/adapter-auto": "^2.0.0", 14 | "@sveltejs/kit": "^1.5.0", 15 | "svelte": "^3.54.0", 16 | "svelte-check": "^3.0.1", 17 | "tslib": "^2.4.1", 18 | "typescript": "^5.0.0", 19 | "vite": "^4.3.0" 20 | }, 21 | "dependencies": { 22 | "@fontsource/jetbrains-mono": "^4.5.12", 23 | "@fontsource/manrope": "^4.5.13", 24 | "chalk": "^5.2.0", 25 | "open-props": "^1.5.8" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/routes/actions/+page.svelte: -------------------------------------------------------------------------------- 1 | 11 | 12 |

Form Actions

13 | 14 |
15 | 19 | 20 | 24 | 25 |
26 | 27 | 28 |
29 |
30 | 31 |
32 | 
33 | 
34 | 
41 | 


--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
   1 | lockfileVersion: '6.0'
   2 | 
   3 | dependencies:
   4 |   '@fontsource/jetbrains-mono':
   5 |     specifier: ^4.5.12
   6 |     version: 4.5.12
   7 |   '@fontsource/manrope':
   8 |     specifier: ^4.5.13
   9 |     version: 4.5.13
  10 |   chalk:
  11 |     specifier: ^5.2.0
  12 |     version: 5.2.0
  13 |   open-props:
  14 |     specifier: ^1.5.8
  15 |     version: 1.5.8
  16 | 
  17 | devDependencies:
  18 |   '@sveltejs/adapter-auto':
  19 |     specifier: ^2.0.0
  20 |     version: 2.0.1(@sveltejs/kit@1.16.2)
  21 |   '@sveltejs/kit':
  22 |     specifier: ^1.5.0
  23 |     version: 1.16.2(svelte@3.59.0)(vite@4.3.5)
  24 |   svelte:
  25 |     specifier: ^3.54.0
  26 |     version: 3.59.0
  27 |   svelte-check:
  28 |     specifier: ^3.0.1
  29 |     version: 3.3.1(svelte@3.59.0)
  30 |   tslib:
  31 |     specifier: ^2.4.1
  32 |     version: 2.5.0
  33 |   typescript:
  34 |     specifier: ^5.0.0
  35 |     version: 5.0.4
  36 |   vite:
  37 |     specifier: ^4.3.0
  38 |     version: 4.3.5
  39 | 
  40 | packages:
  41 | 
  42 |   /@esbuild/android-arm64@0.17.18:
  43 |     resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==}
  44 |     engines: {node: '>=12'}
  45 |     cpu: [arm64]
  46 |     os: [android]
  47 |     requiresBuild: true
  48 |     dev: true
  49 |     optional: true
  50 | 
  51 |   /@esbuild/android-arm@0.17.18:
  52 |     resolution: {integrity: sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==}
  53 |     engines: {node: '>=12'}
  54 |     cpu: [arm]
  55 |     os: [android]
  56 |     requiresBuild: true
  57 |     dev: true
  58 |     optional: true
  59 | 
  60 |   /@esbuild/android-x64@0.17.18:
  61 |     resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==}
  62 |     engines: {node: '>=12'}
  63 |     cpu: [x64]
  64 |     os: [android]
  65 |     requiresBuild: true
  66 |     dev: true
  67 |     optional: true
  68 | 
  69 |   /@esbuild/darwin-arm64@0.17.18:
  70 |     resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==}
  71 |     engines: {node: '>=12'}
  72 |     cpu: [arm64]
  73 |     os: [darwin]
  74 |     requiresBuild: true
  75 |     dev: true
  76 |     optional: true
  77 | 
  78 |   /@esbuild/darwin-x64@0.17.18:
  79 |     resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==}
  80 |     engines: {node: '>=12'}
  81 |     cpu: [x64]
  82 |     os: [darwin]
  83 |     requiresBuild: true
  84 |     dev: true
  85 |     optional: true
  86 | 
  87 |   /@esbuild/freebsd-arm64@0.17.18:
  88 |     resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==}
  89 |     engines: {node: '>=12'}
  90 |     cpu: [arm64]
  91 |     os: [freebsd]
  92 |     requiresBuild: true
  93 |     dev: true
  94 |     optional: true
  95 | 
  96 |   /@esbuild/freebsd-x64@0.17.18:
  97 |     resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==}
  98 |     engines: {node: '>=12'}
  99 |     cpu: [x64]
 100 |     os: [freebsd]
 101 |     requiresBuild: true
 102 |     dev: true
 103 |     optional: true
 104 | 
 105 |   /@esbuild/linux-arm64@0.17.18:
 106 |     resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==}
 107 |     engines: {node: '>=12'}
 108 |     cpu: [arm64]
 109 |     os: [linux]
 110 |     requiresBuild: true
 111 |     dev: true
 112 |     optional: true
 113 | 
 114 |   /@esbuild/linux-arm@0.17.18:
 115 |     resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==}
 116 |     engines: {node: '>=12'}
 117 |     cpu: [arm]
 118 |     os: [linux]
 119 |     requiresBuild: true
 120 |     dev: true
 121 |     optional: true
 122 | 
 123 |   /@esbuild/linux-ia32@0.17.18:
 124 |     resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==}
 125 |     engines: {node: '>=12'}
 126 |     cpu: [ia32]
 127 |     os: [linux]
 128 |     requiresBuild: true
 129 |     dev: true
 130 |     optional: true
 131 | 
 132 |   /@esbuild/linux-loong64@0.17.18:
 133 |     resolution: {integrity: sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==}
 134 |     engines: {node: '>=12'}
 135 |     cpu: [loong64]
 136 |     os: [linux]
 137 |     requiresBuild: true
 138 |     dev: true
 139 |     optional: true
 140 | 
 141 |   /@esbuild/linux-mips64el@0.17.18:
 142 |     resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==}
 143 |     engines: {node: '>=12'}
 144 |     cpu: [mips64el]
 145 |     os: [linux]
 146 |     requiresBuild: true
 147 |     dev: true
 148 |     optional: true
 149 | 
 150 |   /@esbuild/linux-ppc64@0.17.18:
 151 |     resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==}
 152 |     engines: {node: '>=12'}
 153 |     cpu: [ppc64]
 154 |     os: [linux]
 155 |     requiresBuild: true
 156 |     dev: true
 157 |     optional: true
 158 | 
 159 |   /@esbuild/linux-riscv64@0.17.18:
 160 |     resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==}
 161 |     engines: {node: '>=12'}
 162 |     cpu: [riscv64]
 163 |     os: [linux]
 164 |     requiresBuild: true
 165 |     dev: true
 166 |     optional: true
 167 | 
 168 |   /@esbuild/linux-s390x@0.17.18:
 169 |     resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==}
 170 |     engines: {node: '>=12'}
 171 |     cpu: [s390x]
 172 |     os: [linux]
 173 |     requiresBuild: true
 174 |     dev: true
 175 |     optional: true
 176 | 
 177 |   /@esbuild/linux-x64@0.17.18:
 178 |     resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==}
 179 |     engines: {node: '>=12'}
 180 |     cpu: [x64]
 181 |     os: [linux]
 182 |     requiresBuild: true
 183 |     dev: true
 184 |     optional: true
 185 | 
 186 |   /@esbuild/netbsd-x64@0.17.18:
 187 |     resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==}
 188 |     engines: {node: '>=12'}
 189 |     cpu: [x64]
 190 |     os: [netbsd]
 191 |     requiresBuild: true
 192 |     dev: true
 193 |     optional: true
 194 | 
 195 |   /@esbuild/openbsd-x64@0.17.18:
 196 |     resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==}
 197 |     engines: {node: '>=12'}
 198 |     cpu: [x64]
 199 |     os: [openbsd]
 200 |     requiresBuild: true
 201 |     dev: true
 202 |     optional: true
 203 | 
 204 |   /@esbuild/sunos-x64@0.17.18:
 205 |     resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==}
 206 |     engines: {node: '>=12'}
 207 |     cpu: [x64]
 208 |     os: [sunos]
 209 |     requiresBuild: true
 210 |     dev: true
 211 |     optional: true
 212 | 
 213 |   /@esbuild/win32-arm64@0.17.18:
 214 |     resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==}
 215 |     engines: {node: '>=12'}
 216 |     cpu: [arm64]
 217 |     os: [win32]
 218 |     requiresBuild: true
 219 |     dev: true
 220 |     optional: true
 221 | 
 222 |   /@esbuild/win32-ia32@0.17.18:
 223 |     resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==}
 224 |     engines: {node: '>=12'}
 225 |     cpu: [ia32]
 226 |     os: [win32]
 227 |     requiresBuild: true
 228 |     dev: true
 229 |     optional: true
 230 | 
 231 |   /@esbuild/win32-x64@0.17.18:
 232 |     resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==}
 233 |     engines: {node: '>=12'}
 234 |     cpu: [x64]
 235 |     os: [win32]
 236 |     requiresBuild: true
 237 |     dev: true
 238 |     optional: true
 239 | 
 240 |   /@fontsource/jetbrains-mono@4.5.12:
 241 |     resolution: {integrity: sha512-LJF1ala1/u+wXZmESFqIk08FA9yGX4/uAAleCHmXUMgEjvNAYFHUQQ7eK5hQQoBOwh99cU5suTrqYqEkgzwzPA==}
 242 |     dev: false
 243 | 
 244 |   /@fontsource/manrope@4.5.13:
 245 |     resolution: {integrity: sha512-UFN5DMGBp8nFpwhPQXfpSbsEm4OVISqUKQy+rA+pb1zYGoH+OGN1woKEND8VLx+pC7rY3nrPRCJvSuuOaNdW7Q==}
 246 |     dev: false
 247 | 
 248 |   /@jridgewell/resolve-uri@3.1.0:
 249 |     resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
 250 |     engines: {node: '>=6.0.0'}
 251 |     dev: true
 252 | 
 253 |   /@jridgewell/sourcemap-codec@1.4.14:
 254 |     resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
 255 |     dev: true
 256 | 
 257 |   /@jridgewell/sourcemap-codec@1.4.15:
 258 |     resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
 259 |     dev: true
 260 | 
 261 |   /@jridgewell/trace-mapping@0.3.18:
 262 |     resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==}
 263 |     dependencies:
 264 |       '@jridgewell/resolve-uri': 3.1.0
 265 |       '@jridgewell/sourcemap-codec': 1.4.14
 266 |     dev: true
 267 | 
 268 |   /@nodelib/fs.scandir@2.1.5:
 269 |     resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
 270 |     engines: {node: '>= 8'}
 271 |     dependencies:
 272 |       '@nodelib/fs.stat': 2.0.5
 273 |       run-parallel: 1.2.0
 274 |     dev: true
 275 | 
 276 |   /@nodelib/fs.stat@2.0.5:
 277 |     resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
 278 |     engines: {node: '>= 8'}
 279 |     dev: true
 280 | 
 281 |   /@nodelib/fs.walk@1.2.8:
 282 |     resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
 283 |     engines: {node: '>= 8'}
 284 |     dependencies:
 285 |       '@nodelib/fs.scandir': 2.1.5
 286 |       fastq: 1.15.0
 287 |     dev: true
 288 | 
 289 |   /@polka/url@1.0.0-next.21:
 290 |     resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
 291 |     dev: true
 292 | 
 293 |   /@sveltejs/adapter-auto@2.0.1(@sveltejs/kit@1.16.2):
 294 |     resolution: {integrity: sha512-anxxYMcQy7HWSKxN4YNaVcgNzCHtNFwygq72EA1Xv7c+5gSECOJ1ez1PYoLciPiFa7A3XBvMDQXUFJ2eqLDtAA==}
 295 |     peerDependencies:
 296 |       '@sveltejs/kit': ^1.0.0
 297 |     dependencies:
 298 |       '@sveltejs/kit': 1.16.2(svelte@3.59.0)(vite@4.3.5)
 299 |       import-meta-resolve: 3.0.0
 300 |     dev: true
 301 | 
 302 |   /@sveltejs/kit@1.16.2(svelte@3.59.0)(vite@4.3.5):
 303 |     resolution: {integrity: sha512-yxcpA4nvlVlJ+VyYnj0zD3QN05kfmoh4OyitlPrVG34nnZSHzFpE4eZ33X1A/tc9prslSFRhpM6rWngCs0nM8w==}
 304 |     engines: {node: ^16.14 || >=18}
 305 |     hasBin: true
 306 |     requiresBuild: true
 307 |     peerDependencies:
 308 |       svelte: ^3.54.0
 309 |       vite: ^4.0.0
 310 |     dependencies:
 311 |       '@sveltejs/vite-plugin-svelte': 2.2.0(svelte@3.59.0)(vite@4.3.5)
 312 |       '@types/cookie': 0.5.1
 313 |       cookie: 0.5.0
 314 |       devalue: 4.3.0
 315 |       esm-env: 1.0.0
 316 |       kleur: 4.1.5
 317 |       magic-string: 0.30.0
 318 |       mime: 3.0.0
 319 |       sade: 1.8.1
 320 |       set-cookie-parser: 2.6.0
 321 |       sirv: 2.0.3
 322 |       svelte: 3.59.0
 323 |       tiny-glob: 0.2.9
 324 |       undici: 5.22.0
 325 |       vite: 4.3.5
 326 |     transitivePeerDependencies:
 327 |       - supports-color
 328 |     dev: true
 329 | 
 330 |   /@sveltejs/vite-plugin-svelte@2.2.0(svelte@3.59.0)(vite@4.3.5):
 331 |     resolution: {integrity: sha512-KDtdva+FZrZlyug15KlbXuubntAPKcBau0K7QhAIqC5SAy0uDbjZwoexDRx0L0J2T4niEfC6FnA9GuQQJKg+Aw==}
 332 |     engines: {node: ^14.18.0 || >= 16}
 333 |     peerDependencies:
 334 |       svelte: ^3.54.0
 335 |       vite: ^4.0.0
 336 |     dependencies:
 337 |       debug: 4.3.4
 338 |       deepmerge: 4.3.1
 339 |       kleur: 4.1.5
 340 |       magic-string: 0.30.0
 341 |       svelte: 3.59.0
 342 |       svelte-hmr: 0.15.1(svelte@3.59.0)
 343 |       vite: 4.3.5
 344 |       vitefu: 0.2.4(vite@4.3.5)
 345 |     transitivePeerDependencies:
 346 |       - supports-color
 347 |     dev: true
 348 | 
 349 |   /@types/cookie@0.5.1:
 350 |     resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==}
 351 |     dev: true
 352 | 
 353 |   /@types/pug@2.0.6:
 354 |     resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==}
 355 |     dev: true
 356 | 
 357 |   /anymatch@3.1.3:
 358 |     resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
 359 |     engines: {node: '>= 8'}
 360 |     dependencies:
 361 |       normalize-path: 3.0.0
 362 |       picomatch: 2.3.1
 363 |     dev: true
 364 | 
 365 |   /balanced-match@1.0.2:
 366 |     resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
 367 |     dev: true
 368 | 
 369 |   /binary-extensions@2.2.0:
 370 |     resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
 371 |     engines: {node: '>=8'}
 372 |     dev: true
 373 | 
 374 |   /brace-expansion@1.1.11:
 375 |     resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
 376 |     dependencies:
 377 |       balanced-match: 1.0.2
 378 |       concat-map: 0.0.1
 379 |     dev: true
 380 | 
 381 |   /braces@3.0.2:
 382 |     resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
 383 |     engines: {node: '>=8'}
 384 |     dependencies:
 385 |       fill-range: 7.0.1
 386 |     dev: true
 387 | 
 388 |   /buffer-crc32@0.2.13:
 389 |     resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
 390 |     dev: true
 391 | 
 392 |   /busboy@1.6.0:
 393 |     resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
 394 |     engines: {node: '>=10.16.0'}
 395 |     dependencies:
 396 |       streamsearch: 1.1.0
 397 |     dev: true
 398 | 
 399 |   /callsites@3.1.0:
 400 |     resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
 401 |     engines: {node: '>=6'}
 402 |     dev: true
 403 | 
 404 |   /chalk@5.2.0:
 405 |     resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==}
 406 |     engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
 407 |     dev: false
 408 | 
 409 |   /chokidar@3.5.3:
 410 |     resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
 411 |     engines: {node: '>= 8.10.0'}
 412 |     dependencies:
 413 |       anymatch: 3.1.3
 414 |       braces: 3.0.2
 415 |       glob-parent: 5.1.2
 416 |       is-binary-path: 2.1.0
 417 |       is-glob: 4.0.3
 418 |       normalize-path: 3.0.0
 419 |       readdirp: 3.6.0
 420 |     optionalDependencies:
 421 |       fsevents: 2.3.2
 422 |     dev: true
 423 | 
 424 |   /concat-map@0.0.1:
 425 |     resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
 426 |     dev: true
 427 | 
 428 |   /cookie@0.5.0:
 429 |     resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
 430 |     engines: {node: '>= 0.6'}
 431 |     dev: true
 432 | 
 433 |   /debug@4.3.4:
 434 |     resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
 435 |     engines: {node: '>=6.0'}
 436 |     peerDependencies:
 437 |       supports-color: '*'
 438 |     peerDependenciesMeta:
 439 |       supports-color:
 440 |         optional: true
 441 |     dependencies:
 442 |       ms: 2.1.2
 443 |     dev: true
 444 | 
 445 |   /deepmerge@4.3.1:
 446 |     resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
 447 |     engines: {node: '>=0.10.0'}
 448 |     dev: true
 449 | 
 450 |   /detect-indent@6.1.0:
 451 |     resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
 452 |     engines: {node: '>=8'}
 453 |     dev: true
 454 | 
 455 |   /devalue@4.3.0:
 456 |     resolution: {integrity: sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==}
 457 |     dev: true
 458 | 
 459 |   /es6-promise@3.3.1:
 460 |     resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
 461 |     dev: true
 462 | 
 463 |   /esbuild@0.17.18:
 464 |     resolution: {integrity: sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==}
 465 |     engines: {node: '>=12'}
 466 |     hasBin: true
 467 |     requiresBuild: true
 468 |     optionalDependencies:
 469 |       '@esbuild/android-arm': 0.17.18
 470 |       '@esbuild/android-arm64': 0.17.18
 471 |       '@esbuild/android-x64': 0.17.18
 472 |       '@esbuild/darwin-arm64': 0.17.18
 473 |       '@esbuild/darwin-x64': 0.17.18
 474 |       '@esbuild/freebsd-arm64': 0.17.18
 475 |       '@esbuild/freebsd-x64': 0.17.18
 476 |       '@esbuild/linux-arm': 0.17.18
 477 |       '@esbuild/linux-arm64': 0.17.18
 478 |       '@esbuild/linux-ia32': 0.17.18
 479 |       '@esbuild/linux-loong64': 0.17.18
 480 |       '@esbuild/linux-mips64el': 0.17.18
 481 |       '@esbuild/linux-ppc64': 0.17.18
 482 |       '@esbuild/linux-riscv64': 0.17.18
 483 |       '@esbuild/linux-s390x': 0.17.18
 484 |       '@esbuild/linux-x64': 0.17.18
 485 |       '@esbuild/netbsd-x64': 0.17.18
 486 |       '@esbuild/openbsd-x64': 0.17.18
 487 |       '@esbuild/sunos-x64': 0.17.18
 488 |       '@esbuild/win32-arm64': 0.17.18
 489 |       '@esbuild/win32-ia32': 0.17.18
 490 |       '@esbuild/win32-x64': 0.17.18
 491 |     dev: true
 492 | 
 493 |   /esm-env@1.0.0:
 494 |     resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==}
 495 |     dev: true
 496 | 
 497 |   /fast-glob@3.2.12:
 498 |     resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
 499 |     engines: {node: '>=8.6.0'}
 500 |     dependencies:
 501 |       '@nodelib/fs.stat': 2.0.5
 502 |       '@nodelib/fs.walk': 1.2.8
 503 |       glob-parent: 5.1.2
 504 |       merge2: 1.4.1
 505 |       micromatch: 4.0.5
 506 |     dev: true
 507 | 
 508 |   /fastq@1.15.0:
 509 |     resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
 510 |     dependencies:
 511 |       reusify: 1.0.4
 512 |     dev: true
 513 | 
 514 |   /fill-range@7.0.1:
 515 |     resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
 516 |     engines: {node: '>=8'}
 517 |     dependencies:
 518 |       to-regex-range: 5.0.1
 519 |     dev: true
 520 | 
 521 |   /fs.realpath@1.0.0:
 522 |     resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
 523 |     dev: true
 524 | 
 525 |   /fsevents@2.3.2:
 526 |     resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
 527 |     engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
 528 |     os: [darwin]
 529 |     requiresBuild: true
 530 |     dev: true
 531 |     optional: true
 532 | 
 533 |   /glob-parent@5.1.2:
 534 |     resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
 535 |     engines: {node: '>= 6'}
 536 |     dependencies:
 537 |       is-glob: 4.0.3
 538 |     dev: true
 539 | 
 540 |   /glob@7.2.3:
 541 |     resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
 542 |     dependencies:
 543 |       fs.realpath: 1.0.0
 544 |       inflight: 1.0.6
 545 |       inherits: 2.0.4
 546 |       minimatch: 3.1.2
 547 |       once: 1.4.0
 548 |       path-is-absolute: 1.0.1
 549 |     dev: true
 550 | 
 551 |   /globalyzer@0.1.0:
 552 |     resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
 553 |     dev: true
 554 | 
 555 |   /globrex@0.1.2:
 556 |     resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
 557 |     dev: true
 558 | 
 559 |   /graceful-fs@4.2.11:
 560 |     resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
 561 |     dev: true
 562 | 
 563 |   /import-fresh@3.3.0:
 564 |     resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
 565 |     engines: {node: '>=6'}
 566 |     dependencies:
 567 |       parent-module: 1.0.1
 568 |       resolve-from: 4.0.0
 569 |     dev: true
 570 | 
 571 |   /import-meta-resolve@3.0.0:
 572 |     resolution: {integrity: sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==}
 573 |     dev: true
 574 | 
 575 |   /inflight@1.0.6:
 576 |     resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
 577 |     dependencies:
 578 |       once: 1.4.0
 579 |       wrappy: 1.0.2
 580 |     dev: true
 581 | 
 582 |   /inherits@2.0.4:
 583 |     resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
 584 |     dev: true
 585 | 
 586 |   /is-binary-path@2.1.0:
 587 |     resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
 588 |     engines: {node: '>=8'}
 589 |     dependencies:
 590 |       binary-extensions: 2.2.0
 591 |     dev: true
 592 | 
 593 |   /is-extglob@2.1.1:
 594 |     resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
 595 |     engines: {node: '>=0.10.0'}
 596 |     dev: true
 597 | 
 598 |   /is-glob@4.0.3:
 599 |     resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
 600 |     engines: {node: '>=0.10.0'}
 601 |     dependencies:
 602 |       is-extglob: 2.1.1
 603 |     dev: true
 604 | 
 605 |   /is-number@7.0.0:
 606 |     resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
 607 |     engines: {node: '>=0.12.0'}
 608 |     dev: true
 609 | 
 610 |   /kleur@4.1.5:
 611 |     resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
 612 |     engines: {node: '>=6'}
 613 |     dev: true
 614 | 
 615 |   /magic-string@0.27.0:
 616 |     resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
 617 |     engines: {node: '>=12'}
 618 |     dependencies:
 619 |       '@jridgewell/sourcemap-codec': 1.4.15
 620 |     dev: true
 621 | 
 622 |   /magic-string@0.30.0:
 623 |     resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==}
 624 |     engines: {node: '>=12'}
 625 |     dependencies:
 626 |       '@jridgewell/sourcemap-codec': 1.4.15
 627 |     dev: true
 628 | 
 629 |   /merge2@1.4.1:
 630 |     resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
 631 |     engines: {node: '>= 8'}
 632 |     dev: true
 633 | 
 634 |   /micromatch@4.0.5:
 635 |     resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
 636 |     engines: {node: '>=8.6'}
 637 |     dependencies:
 638 |       braces: 3.0.2
 639 |       picomatch: 2.3.1
 640 |     dev: true
 641 | 
 642 |   /mime@3.0.0:
 643 |     resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
 644 |     engines: {node: '>=10.0.0'}
 645 |     hasBin: true
 646 |     dev: true
 647 | 
 648 |   /min-indent@1.0.1:
 649 |     resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
 650 |     engines: {node: '>=4'}
 651 |     dev: true
 652 | 
 653 |   /minimatch@3.1.2:
 654 |     resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
 655 |     dependencies:
 656 |       brace-expansion: 1.1.11
 657 |     dev: true
 658 | 
 659 |   /minimist@1.2.8:
 660 |     resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
 661 |     dev: true
 662 | 
 663 |   /mkdirp@0.5.6:
 664 |     resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
 665 |     hasBin: true
 666 |     dependencies:
 667 |       minimist: 1.2.8
 668 |     dev: true
 669 | 
 670 |   /mri@1.2.0:
 671 |     resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
 672 |     engines: {node: '>=4'}
 673 |     dev: true
 674 | 
 675 |   /mrmime@1.0.1:
 676 |     resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
 677 |     engines: {node: '>=10'}
 678 |     dev: true
 679 | 
 680 |   /ms@2.1.2:
 681 |     resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
 682 |     dev: true
 683 | 
 684 |   /nanoid@3.3.6:
 685 |     resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
 686 |     engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
 687 |     hasBin: true
 688 |     dev: true
 689 | 
 690 |   /normalize-path@3.0.0:
 691 |     resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
 692 |     engines: {node: '>=0.10.0'}
 693 |     dev: true
 694 | 
 695 |   /once@1.4.0:
 696 |     resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
 697 |     dependencies:
 698 |       wrappy: 1.0.2
 699 |     dev: true
 700 | 
 701 |   /open-props@1.5.8:
 702 |     resolution: {integrity: sha512-pE9oKg+4rDrKNJpHNSP1ensgMz41YW5pPCHExd4P12595gdObMmiO1OhTvXG0t7inRS54GhyZr5jm+28XzapEg==}
 703 |     dev: false
 704 | 
 705 |   /parent-module@1.0.1:
 706 |     resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
 707 |     engines: {node: '>=6'}
 708 |     dependencies:
 709 |       callsites: 3.1.0
 710 |     dev: true
 711 | 
 712 |   /path-is-absolute@1.0.1:
 713 |     resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
 714 |     engines: {node: '>=0.10.0'}
 715 |     dev: true
 716 | 
 717 |   /picocolors@1.0.0:
 718 |     resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
 719 |     dev: true
 720 | 
 721 |   /picomatch@2.3.1:
 722 |     resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
 723 |     engines: {node: '>=8.6'}
 724 |     dev: true
 725 | 
 726 |   /postcss@8.4.23:
 727 |     resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==}
 728 |     engines: {node: ^10 || ^12 || >=14}
 729 |     dependencies:
 730 |       nanoid: 3.3.6
 731 |       picocolors: 1.0.0
 732 |       source-map-js: 1.0.2
 733 |     dev: true
 734 | 
 735 |   /queue-microtask@1.2.3:
 736 |     resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
 737 |     dev: true
 738 | 
 739 |   /readdirp@3.6.0:
 740 |     resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
 741 |     engines: {node: '>=8.10.0'}
 742 |     dependencies:
 743 |       picomatch: 2.3.1
 744 |     dev: true
 745 | 
 746 |   /resolve-from@4.0.0:
 747 |     resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
 748 |     engines: {node: '>=4'}
 749 |     dev: true
 750 | 
 751 |   /reusify@1.0.4:
 752 |     resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
 753 |     engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
 754 |     dev: true
 755 | 
 756 |   /rimraf@2.7.1:
 757 |     resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
 758 |     hasBin: true
 759 |     dependencies:
 760 |       glob: 7.2.3
 761 |     dev: true
 762 | 
 763 |   /rollup@3.21.5:
 764 |     resolution: {integrity: sha512-a4NTKS4u9PusbUJcfF4IMxuqjFzjm6ifj76P54a7cKnvVzJaG12BLVR+hgU2YDGHzyMMQNxLAZWuALsn8q2oQg==}
 765 |     engines: {node: '>=14.18.0', npm: '>=8.0.0'}
 766 |     hasBin: true
 767 |     optionalDependencies:
 768 |       fsevents: 2.3.2
 769 |     dev: true
 770 | 
 771 |   /run-parallel@1.2.0:
 772 |     resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
 773 |     dependencies:
 774 |       queue-microtask: 1.2.3
 775 |     dev: true
 776 | 
 777 |   /sade@1.8.1:
 778 |     resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
 779 |     engines: {node: '>=6'}
 780 |     dependencies:
 781 |       mri: 1.2.0
 782 |     dev: true
 783 | 
 784 |   /sander@0.5.1:
 785 |     resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==}
 786 |     dependencies:
 787 |       es6-promise: 3.3.1
 788 |       graceful-fs: 4.2.11
 789 |       mkdirp: 0.5.6
 790 |       rimraf: 2.7.1
 791 |     dev: true
 792 | 
 793 |   /set-cookie-parser@2.6.0:
 794 |     resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
 795 |     dev: true
 796 | 
 797 |   /sirv@2.0.3:
 798 |     resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==}
 799 |     engines: {node: '>= 10'}
 800 |     dependencies:
 801 |       '@polka/url': 1.0.0-next.21
 802 |       mrmime: 1.0.1
 803 |       totalist: 3.0.1
 804 |     dev: true
 805 | 
 806 |   /sorcery@0.11.0:
 807 |     resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==}
 808 |     hasBin: true
 809 |     dependencies:
 810 |       '@jridgewell/sourcemap-codec': 1.4.15
 811 |       buffer-crc32: 0.2.13
 812 |       minimist: 1.2.8
 813 |       sander: 0.5.1
 814 |     dev: true
 815 | 
 816 |   /source-map-js@1.0.2:
 817 |     resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
 818 |     engines: {node: '>=0.10.0'}
 819 |     dev: true
 820 | 
 821 |   /streamsearch@1.1.0:
 822 |     resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
 823 |     engines: {node: '>=10.0.0'}
 824 |     dev: true
 825 | 
 826 |   /strip-indent@3.0.0:
 827 |     resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
 828 |     engines: {node: '>=8'}
 829 |     dependencies:
 830 |       min-indent: 1.0.1
 831 |     dev: true
 832 | 
 833 |   /svelte-check@3.3.1(svelte@3.59.0):
 834 |     resolution: {integrity: sha512-+Yb1F50M76JRPdZlxB8/blg75GiqKH/8QJTNtC3cKvxCbrRK7zpgmOg2oxem9n4eDAIllesm74guR3AnlAtNVg==}
 835 |     hasBin: true
 836 |     peerDependencies:
 837 |       svelte: ^3.55.0
 838 |     dependencies:
 839 |       '@jridgewell/trace-mapping': 0.3.18
 840 |       chokidar: 3.5.3
 841 |       fast-glob: 3.2.12
 842 |       import-fresh: 3.3.0
 843 |       picocolors: 1.0.0
 844 |       sade: 1.8.1
 845 |       svelte: 3.59.0
 846 |       svelte-preprocess: 5.0.3(svelte@3.59.0)(typescript@5.0.4)
 847 |       typescript: 5.0.4
 848 |     transitivePeerDependencies:
 849 |       - '@babel/core'
 850 |       - coffeescript
 851 |       - less
 852 |       - postcss
 853 |       - postcss-load-config
 854 |       - pug
 855 |       - sass
 856 |       - stylus
 857 |       - sugarss
 858 |     dev: true
 859 | 
 860 |   /svelte-hmr@0.15.1(svelte@3.59.0):
 861 |     resolution: {integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==}
 862 |     engines: {node: ^12.20 || ^14.13.1 || >= 16}
 863 |     peerDependencies:
 864 |       svelte: '>=3.19.0'
 865 |     dependencies:
 866 |       svelte: 3.59.0
 867 |     dev: true
 868 | 
 869 |   /svelte-preprocess@5.0.3(svelte@3.59.0)(typescript@5.0.4):
 870 |     resolution: {integrity: sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==}
 871 |     engines: {node: '>= 14.10.0'}
 872 |     requiresBuild: true
 873 |     peerDependencies:
 874 |       '@babel/core': ^7.10.2
 875 |       coffeescript: ^2.5.1
 876 |       less: ^3.11.3 || ^4.0.0
 877 |       postcss: ^7 || ^8
 878 |       postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0
 879 |       pug: ^3.0.0
 880 |       sass: ^1.26.8
 881 |       stylus: ^0.55.0
 882 |       sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0
 883 |       svelte: ^3.23.0
 884 |       typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0'
 885 |     peerDependenciesMeta:
 886 |       '@babel/core':
 887 |         optional: true
 888 |       coffeescript:
 889 |         optional: true
 890 |       less:
 891 |         optional: true
 892 |       postcss:
 893 |         optional: true
 894 |       postcss-load-config:
 895 |         optional: true
 896 |       pug:
 897 |         optional: true
 898 |       sass:
 899 |         optional: true
 900 |       stylus:
 901 |         optional: true
 902 |       sugarss:
 903 |         optional: true
 904 |       typescript:
 905 |         optional: true
 906 |     dependencies:
 907 |       '@types/pug': 2.0.6
 908 |       detect-indent: 6.1.0
 909 |       magic-string: 0.27.0
 910 |       sorcery: 0.11.0
 911 |       strip-indent: 3.0.0
 912 |       svelte: 3.59.0
 913 |       typescript: 5.0.4
 914 |     dev: true
 915 | 
 916 |   /svelte@3.59.0:
 917 |     resolution: {integrity: sha512-Di1wVPwdWriw5pSyInMRpr5EZmwrzKxtDKv5aXu8A/WDUi59Y5bIvl42eLef0x1vwz+ZtrjdnT8nXir2bDqR/A==}
 918 |     engines: {node: '>= 8'}
 919 |     dev: true
 920 | 
 921 |   /tiny-glob@0.2.9:
 922 |     resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
 923 |     dependencies:
 924 |       globalyzer: 0.1.0
 925 |       globrex: 0.1.2
 926 |     dev: true
 927 | 
 928 |   /to-regex-range@5.0.1:
 929 |     resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
 930 |     engines: {node: '>=8.0'}
 931 |     dependencies:
 932 |       is-number: 7.0.0
 933 |     dev: true
 934 | 
 935 |   /totalist@3.0.1:
 936 |     resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
 937 |     engines: {node: '>=6'}
 938 |     dev: true
 939 | 
 940 |   /tslib@2.5.0:
 941 |     resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
 942 |     dev: true
 943 | 
 944 |   /typescript@5.0.4:
 945 |     resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==}
 946 |     engines: {node: '>=12.20'}
 947 |     hasBin: true
 948 |     dev: true
 949 | 
 950 |   /undici@5.22.0:
 951 |     resolution: {integrity: sha512-fR9RXCc+6Dxav4P9VV/sp5w3eFiSdOjJYsbtWfd4s5L5C4ogyuVpdKIVHeW0vV1MloM65/f7W45nR9ZxwVdyiA==}
 952 |     engines: {node: '>=14.0'}
 953 |     dependencies:
 954 |       busboy: 1.6.0
 955 |     dev: true
 956 | 
 957 |   /vite@4.3.5:
 958 |     resolution: {integrity: sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==}
 959 |     engines: {node: ^14.18.0 || >=16.0.0}
 960 |     hasBin: true
 961 |     peerDependencies:
 962 |       '@types/node': '>= 14'
 963 |       less: '*'
 964 |       sass: '*'
 965 |       stylus: '*'
 966 |       sugarss: '*'
 967 |       terser: ^5.4.0
 968 |     peerDependenciesMeta:
 969 |       '@types/node':
 970 |         optional: true
 971 |       less:
 972 |         optional: true
 973 |       sass:
 974 |         optional: true
 975 |       stylus:
 976 |         optional: true
 977 |       sugarss:
 978 |         optional: true
 979 |       terser:
 980 |         optional: true
 981 |     dependencies:
 982 |       esbuild: 0.17.18
 983 |       postcss: 8.4.23
 984 |       rollup: 3.21.5
 985 |     optionalDependencies:
 986 |       fsevents: 2.3.2
 987 |     dev: true
 988 | 
 989 |   /vitefu@0.2.4(vite@4.3.5):
 990 |     resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==}
 991 |     peerDependencies:
 992 |       vite: ^3.0.0 || ^4.0.0
 993 |     peerDependenciesMeta:
 994 |       vite:
 995 |         optional: true
 996 |     dependencies:
 997 |       vite: 4.3.5
 998 |     dev: true
 999 | 
1000 |   /wrappy@1.0.2:
1001 |     resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1002 |     dev: true
1003 | 


--------------------------------------------------------------------------------