├── 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 | [](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 |
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 |
--------------------------------------------------------------------------------