irongit

A prebuilt stack for Django + Tailwind + Svelte

first commit

huncholanehuncholaneauthored
commit 546f006c42432b9087d5463d1d0164a3f4eb1b66Browse files

29 files changed, +3883 -0

+1-0.gitignore
@@ -0,0 +1 @@
1+venv
+161-0backend/.gitignore
@@ -0,0 +1,161 @@
1+# Byte-compiled / optimized / DLL files
2+__pycache__/
3+*.py[cod]
4+*$py.class
5+
6+# C extensions
7+*.so
8+
9+# Distribution / packaging
10+.Python
11+build/
12+develop-eggs/
13+dist/
14+downloads/
15+eggs/
16+.eggs/
17+lib/
18+lib64/
19+parts/
20+sdist/
21+var/
22+wheels/
23+share/python-wheels/
24+*.egg-info/
25+.installed.cfg
26+*.egg
27+MANIFEST
28+
29+# PyInstaller
30+# Usually these files are written by a python script from a template
31+# before PyInstaller builds the exe, so as to inject date/other infos into it.
32+*.manifest
33+*.spec
34+
35+# Installer logs
36+pip-log.txt
37+pip-delete-this-directory.txt
38+
39+# Unit test / coverage reports
40+htmlcov/
41+.tox/
42+.nox/
43+.coverage
44+.coverage.*
45+.cache
46+nosetests.xml
47+coverage.xml
48+*.cover
49+*.py,cover
50+.hypothesis/
51+.pytest_cache/
52+cover/
53+
54+# Translations
55+*.mo
56+*.pot
57+
58+# Django stuff:
59+*.log
60+local_settings.py
61+db.sqlite3
62+db.sqlite3-journal
63+
64+# Flask stuff:
65+instance/
66+.webassets-cache
67+
68+# Scrapy stuff:
69+.scrapy
70+
71+# Sphinx documentation
72+docs/_build/
73+
74+# PyBuilder
75+.pybuilder/
76+target/
77+
78+# Jupyter Notebook
79+.ipynb_checkpoints
80+
81+# IPython
82+profile_default/
83+ipython_config.py
84+
85+# pyenv
86+# For a library or package, you might want to ignore these files since the code is
87+# intended to run in multiple environments; otherwise, check them in:
88+# .python-version
89+
90+# pipenv
91+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92+# However, in case of collaboration, if having platform-specific dependencies or dependencies
93+# having no cross-platform support, pipenv may install dependencies that don't work, or not
94+# install all needed dependencies.
95+#Pipfile.lock
96+
97+# poetry
98+# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99+# This is especially recommended for binary packages to ensure reproducibility, and is more
100+# commonly ignored for libraries.
101+# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102+#poetry.lock
103+
104+# pdm
105+# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106+#pdm.lock
107+# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108+# in version control.
109+# https://pdm.fming.dev/#use-with-ide
110+.pdm.toml
111+
112+# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113+__pypackages__/
114+
115+# Celery stuff
116+celerybeat-schedule
117+celerybeat.pid
118+
119+# SageMath parsed files
120+*.sage.py
121+
122+# Environments
123+.env
124+.venv
125+env/
126+venv/
127+ENV/
128+env.bak/
129+venv.bak/
130+
131+# Spyder project settings
132+.spyderproject
133+.spyproject
134+
135+# Rope project settings
136+.ropeproject
137+
138+# mkdocs documentation
139+/site
140+
141+# mypy
142+.mypy_cache/
143+.dmypy.json
144+dmypy.json
145+
146+# Pyre type checker
147+.pyre/
148+
149+# pytype static type analyzer
150+.pytype/
151+
152+# Cython debug symbols
153+cython_debug/
154+
155+# PyCharm
156+# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157+# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158+# and can be added to the global gitignore or merged into this file. For a more nuclear
159+# option (not recommended) you can uncomment the following to ignore the entire idea folder.
160+#.idea/
161+**/secret_key.py
+0-0backend/backend/__init__.py

No content changes (mode or rename only).

+16-0backend/backend/asgi.py
@@ -0,0 +1,16 @@
1+"""
2+ASGI config for backend project.
3+
4+It exposes the ASGI callable as a module-level variable named ``application``.
5+
6+For more information on this file, see
7+https://docs.djangoproject.com/en/4.1/howto/deployment/asgi/
8+"""
9+
10+import os
11+
12+from django.core.asgi import get_asgi_application
13+
14+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')
15+
16+application = get_asgi_application()
+133-0backend/backend/settings.py
@@ -0,0 +1,133 @@
1+"""
2+Django settings for backend project.
3+
4+Generated by 'django-admin startproject' using Django 4.1.4.
5+
6+For more information on this file, see
7+https://docs.djangoproject.com/en/4.1/topics/settings/
8+
9+For the full list of settings and their values, see
10+https://docs.djangoproject.com/en/4.1/ref/settings/
11+"""
12+
13+from pathlib import Path
14+from .secret_key import SECRET_KEY
15+
16+# Build paths inside the project like this: BASE_DIR / 'subdir'.
17+BASE_DIR = Path(__file__).resolve().parent.parent
18+SVELTE_DIR = BASE_DIR.parent/'frontend/dist'
19+
20+
21+# Quick-start development settings - unsuitable for production
22+# See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/
23+
24+# SECURITY WARNING: keep the secret key used in production secret!
25+SECRET_KEY = SECRET_KEY
26+
27+# SECURITY WARNING: don't run with debug turned on in production!
28+DEBUG = True
29+
30+ALLOWED_HOSTS = ['*']
31+
32+
33+# Application definition
34+
35+INSTALLED_APPS = [
36+ 'django.contrib.admin',
37+ 'django.contrib.auth',
38+ 'django.contrib.contenttypes',
39+ 'django.contrib.sessions',
40+ 'django.contrib.messages',
41+ 'django.contrib.staticfiles',
42+]
43+
44+MIDDLEWARE = [
45+ 'django.middleware.security.SecurityMiddleware',
46+ 'django.contrib.sessions.middleware.SessionMiddleware',
47+ 'django.middleware.common.CommonMiddleware',
48+ 'django.middleware.csrf.CsrfViewMiddleware',
49+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
50+ 'django.contrib.messages.middleware.MessageMiddleware',
51+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
52+]
53+
54+ROOT_URLCONF = 'backend.urls'
55+
56+TEMPLATES = [
57+ {
58+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
59+ 'DIRS': [SVELTE_DIR],
60+ 'APP_DIRS': True,
61+ 'OPTIONS': {
62+ 'context_processors': [
63+ 'django.template.context_processors.debug',
64+ 'django.template.context_processors.request',
65+ 'django.contrib.auth.context_processors.auth',
66+ 'django.contrib.messages.context_processors.messages',
67+ ],
68+ },
69+ },
70+]
71+
72+WSGI_APPLICATION = 'backend.wsgi.application'
73+
74+
75+# Database
76+# https://docs.djangoproject.com/en/4.1/ref/settings/#databases
77+
78+DATABASES = {
79+ 'default': {
80+ 'ENGINE': 'django.db.backends.sqlite3',
81+ 'NAME': BASE_DIR / 'db.sqlite3',
82+ }
83+}
84+
85+
86+# Password validation
87+# https://docs.djangoproject.com/en/4.1/ref/settings/#auth-password-validators
88+
89+AUTH_PASSWORD_VALIDATORS = [
90+ {
91+ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
92+ },
93+ {
94+ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
95+ },
96+ {
97+ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
98+ },
99+ {
100+ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
101+ },
102+]
103+
104+
105+# Internationalization
106+# https://docs.djangoproject.com/en/4.1/topics/i18n/
107+
108+LANGUAGE_CODE = 'en-us'
109+
110+TIME_ZONE = 'UTC'
111+
112+USE_I18N = True
113+
114+USE_TZ = True
115+
116+
117+# Static files (CSS, JavaScript, Images)
118+# https://docs.djangoproject.com/en/4.1/howto/static-files/
119+
120+STATIC_URL = 'static/'
121+STATICFILES_DIRS = [
122+ SVELTE_DIR
123+]
124+
125+# Mediafiles
126+MEDIA_ROOT = SVELTE_DIR
127+MEDIA_URL = '/'
128+
129+
130+# Default primary key field type
131+# https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-field
132+
133+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
+25-0backend/backend/urls.py
@@ -0,0 +1,25 @@
1+"""backend URL Configuration
2+
3+The `urlpatterns` list routes URLs to views. For more information please see:
4+ https://docs.djangoproject.com/en/4.1/topics/http/urls/
5+Examples:
6+Function views
7+ 1. Add an import: from my_app import views
8+ 2. Add a URL to urlpatterns: path('', views.home, name='home')
9+Class-based views
10+ 1. Add an import: from other_app.views import Home
11+ 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
12+Including another URLconf
13+ 1. Import the include() function: from django.urls import include, path
14+ 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
15+"""
16+from django.contrib import admin
17+from django.urls import path
18+from django.conf import settings
19+from django.conf.urls.static import static
20+from django.views.generic import TemplateView
21+
22+urlpatterns = [
23+ path('admin/', admin.site.urls),
24+ path('', TemplateView.as_view(template_name='index.html'))
25+] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
+16-0backend/backend/wsgi.py
@@ -0,0 +1,16 @@
1+"""
2+WSGI config for backend project.
3+
4+It exposes the WSGI callable as a module-level variable named ``application``.
5+
6+For more information on this file, see
7+https://docs.djangoproject.com/en/4.1/howto/deployment/wsgi/
8+"""
9+
10+import os
11+
12+from django.core.wsgi import get_wsgi_application
13+
14+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')
15+
16+application = get_wsgi_application()
+22-0backend/manage.py
@@ -0,0 +1,22 @@
1+#!/usr/bin/env python
2+"""Django's command-line utility for administrative tasks."""
3+import os
4+import sys
5+
6+
7+def main():
8+ """Run administrative tasks."""
9+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')
10+ try:
11+ from django.core.management import execute_from_command_line
12+ except ImportError as exc:
13+ raise ImportError(
14+ "Couldn't import Django. Are you sure it's installed and "
15+ "available on your PYTHONPATH environment variable? Did you "
16+ "forget to activate a virtual environment?"
17+ ) from exc
18+ execute_from_command_line(sys.argv)
19+
20+
21+if __name__ == '__main__':
22+ main()
+5-0create_secret_key.py
@@ -0,0 +1,5 @@
1+from django.core.management.utils import get_random_secret_key
2+
3+
4+with open('backend/backend/secret_key.py', 'w') as f:
5+ f.write(f"SECRET_KEY = '{get_random_secret_key()}'")
+24-0frontend/.gitignore
@@ -0,0 +1,24 @@
1+# Logs
2+logs
3+*.log
4+npm-debug.log*
5+yarn-debug.log*
6+yarn-error.log*
7+pnpm-debug.log*
8+lerna-debug.log*
9+
10+node_modules
11+dist
12+dist-ssr
13+*.local
14+
15+# Editor directories and files
16+.vscode/*
17+!.vscode/extensions.json
18+.idea
19+.DS_Store
20+*.suo
21+*.ntvs*
22+*.njsproj
23+*.sln
24+*.sw?
+3-0frontend/.vscode/extensions.json
@@ -0,0 +1,3 @@
1+{
2+ "recommendations": ["svelte.svelte-vscode"]
3+}
+47-0frontend/README.md
@@ -0,0 +1,47 @@
1+# Svelte + TS + Vite
2+
3+This template should help get you started developing with Svelte and TypeScript in Vite.
4+
5+## Recommended IDE Setup
6+
7+[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode).
8+
9+## Need an official Svelte framework?
10+
11+Check out [SvelteKit](https://github.com/sveltejs/kit#readme), which is also powered by Vite. Deploy anywhere with its serverless-first approach and adapt to various platforms, with out of the box support for TypeScript, SCSS, and Less, and easily-added support for mdsvex, GraphQL, PostCSS, Tailwind CSS, and more.
12+
13+## Technical considerations
14+
15+**Why use this over SvelteKit?**
16+
17+- It brings its own routing solution which might not be preferable for some users.
18+- It is first and foremost a framework that just happens to use Vite under the hood, not a Vite app.
19+
20+This template contains as little as possible to get started with Vite + TypeScript + Svelte, while taking into account the developer experience with regards to HMR and intellisense. It demonstrates capabilities on par with the other `create-vite` templates and is a good starting point for beginners dipping their toes into a Vite + Svelte project.
21+
22+Should you later need the extended capabilities and extensibility provided by SvelteKit, the template has been structured similarly to SvelteKit so that it is easy to migrate.
23+
24+**Why `global.d.ts` instead of `compilerOptions.types` inside `jsconfig.json` or `tsconfig.json`?**
25+
26+Setting `compilerOptions.types` shuts out all other types not explicitly listed in the configuration. Using triple-slash references keeps the default TypeScript setting of accepting type information from the entire workspace, while also adding `svelte` and `vite/client` type information.
27+
28+**Why include `.vscode/extensions.json`?**
29+
30+Other templates indirectly recommend extensions via the README, but this file allows VS Code to prompt the user to install the recommended extension upon opening the project.
31+
32+**Why enable `allowJs` in the TS template?**
33+
34+While `allowJs: false` would indeed prevent the use of `.js` files in the project, it does not prevent the use of JavaScript syntax in `.svelte` files. In addition, it would force `checkJs: false`, bringing the worst of both worlds: not being able to guarantee the entire codebase is TypeScript, and also having worse typechecking for the existing JavaScript. In addition, there are valid use cases in which a mixed codebase may be relevant.
35+
36+**Why is HMR not preserving my local component state?**
37+
38+HMR state preservation comes with a number of gotchas! It has been disabled by default in both `svelte-hmr` and `@sveltejs/vite-plugin-svelte` due to its often surprising behavior. You can read the details [here](https://github.com/rixo/svelte-hmr#svelte-hmr).
39+
40+If you have state that's important to retain within a component, consider creating an external store which would not be replaced by HMR.
41+
42+```ts
43+// store.ts
44+// An extremely simple external store
45+import { writable } from 'svelte/store'
46+export default writable(0)
47+```
+16-0frontend/index.html
@@ -0,0 +1,16 @@
1+<!DOCTYPE html>
2+<html lang="en">
3+
4+<head>
5+ <meta charset="UTF-8" />
6+ <link rel="icon" type="image/svg+xml" href="/vite.svg" />
7+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8+ <title>Vite + Svelte + TS</title>
9+</head>
10+
11+<body>
12+ <div id="app"></div>
13+ <script type="module" src="/src/main.ts"></script>
14+</body>
15+
16+</html>
+3172-0frontend/package-lock.json
@@ -0,0 +1,3172 @@
1+{
2+ "name": "frontend",
3+ "version": "0.0.0",
4+ "lockfileVersion": 2,
5+ "requires": true,
6+ "packages": {
7+ "": {
8+ "name": "frontend",
9+ "version": "0.0.0",
10+ "devDependencies": {
11+ "@sveltejs/vite-plugin-svelte": "^2.0.0",
12+ "@tsconfig/svelte": "^3.0.0",
13+ "autoprefixer": "^10.4.13",
14+ "postcss-import": "^15.1.0",
15+ "svelte": "^3.54.0",
16+ "svelte-check": "^2.10.0",
17+ "tailwindcss": "^3.2.4",
18+ "tslib": "^2.4.1",
19+ "typescript": "^4.9.3",
20+ "vite": "^4.0.0"
21+ }
22+ },
23+ "node_modules/@esbuild/android-arm": {
24+ "version": "0.16.10",
25+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.10.tgz",
26+ "integrity": "sha512-RmJjQTRrO6VwUWDrzTBLmV4OJZTarYsiepLGlF2rYTVB701hSorPywPGvP6d8HCuuRibyXa5JX4s3jN2kHEtjQ==",
27+ "cpu": [
28+ "arm"
29+ ],
30+ "dev": true,
31+ "optional": true,
32+ "os": [
33+ "android"
34+ ],
35+ "engines": {
36+ "node": ">=12"
37+ }
38+ },
39+ "node_modules/@esbuild/android-arm64": {
40+ "version": "0.16.10",
41+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.10.tgz",
42+ "integrity": "sha512-47Y+NwVKTldTlDhSgJHZ/RpvBQMUDG7eKihqaF/u6g7s0ZPz4J1vy8A3rwnnUOF2CuDn7w7Gj/QcMoWz3U3SJw==",
43+ "cpu": [
44+ "arm64"
45+ ],
46+ "dev": true,
47+ "optional": true,
48+ "os": [
49+ "android"
50+ ],
51+ "engines": {
52+ "node": ">=12"
53+ }
54+ },
55+ "node_modules/@esbuild/android-x64": {
56+ "version": "0.16.10",
57+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.10.tgz",
58+ "integrity": "sha512-C4PfnrBMcuAcOurQzpF1tTtZz94IXO5JmICJJ3NFJRHbXXsQUg9RFG45KvydKqtFfBaFLCHpduUkUfXwIvGnRg==",
59+ "cpu": [
60+ "x64"
61+ ],
62+ "dev": true,
63+ "optional": true,
64+ "os": [
65+ "android"
66+ ],
67+ "engines": {
68+ "node": ">=12"
69+ }
70+ },
71+ "node_modules/@esbuild/darwin-arm64": {
72+ "version": "0.16.10",
73+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.10.tgz",
74+ "integrity": "sha512-bH/bpFwldyOKdi9HSLCLhhKeVgRYr9KblchwXgY2NeUHBB/BzTUHtUSBgGBmpydB1/4E37m+ggXXfSrnD7/E7g==",
75+ "cpu": [
76+ "arm64"
77+ ],
78+ "dev": true,
79+ "optional": true,
80+ "os": [
81+ "darwin"
82+ ],
83+ "engines": {
84+ "node": ">=12"
85+ }
86+ },
87+ "node_modules/@esbuild/darwin-x64": {
88+ "version": "0.16.10",
89+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.10.tgz",
90+ "integrity": "sha512-OXt7ijoLuy+AjDSKQWu+KdDFMBbdeaL6wtgMKtDUXKWHiAMKHan5+R1QAG6HD4+K0nnOvEJXKHeA9QhXNAjOTQ==",
91+ "cpu": [
92+ "x64"
93+ ],
94+ "dev": true,
95+ "optional": true,
96+ "os": [
97+ "darwin"
98+ ],
99+ "engines": {
100+ "node": ">=12"
101+ }
102+ },
103+ "node_modules/@esbuild/freebsd-arm64": {
104+ "version": "0.16.10",
105+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.10.tgz",
106+ "integrity": "sha512-shSQX/3GHuspE3Uxtq5kcFG/zqC+VuMnJkqV7LczO41cIe6CQaXHD3QdMLA4ziRq/m0vZo7JdterlgbmgNIAlQ==",
107+ "cpu": [
108+ "arm64"
109+ ],
110+ "dev": true,
111+ "optional": true,
112+ "os": [
113+ "freebsd"
114+ ],
115+ "engines": {
116+ "node": ">=12"
117+ }
118+ },
119+ "node_modules/@esbuild/freebsd-x64": {
120+ "version": "0.16.10",
121+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.10.tgz",
122+ "integrity": "sha512-5YVc1zdeaJGASijZmTzSO4h6uKzsQGG3pkjI6fuXvolhm3hVRhZwnHJkforaZLmzvNv5Tb7a3QL2FAVmrgySIA==",
123+ "cpu": [
124+ "x64"
125+ ],
126+ "dev": true,
127+ "optional": true,
128+ "os": [
129+ "freebsd"
130+ ],
131+ "engines": {
132+ "node": ">=12"
133+ }
134+ },
135+ "node_modules/@esbuild/linux-arm": {
136+ "version": "0.16.10",
137+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.10.tgz",
138+ "integrity": "sha512-c360287ZWI2miBnvIj23bPyVctgzeMT2kQKR+x94pVqIN44h3GF8VMEs1SFPH1UgyDr3yBbx3vowDS1SVhyVhA==",
139+ "cpu": [
140+ "arm"
141+ ],
142+ "dev": true,
143+ "optional": true,
144+ "os": [
145+ "linux"
146+ ],
147+ "engines": {
148+ "node": ">=12"
149+ }
150+ },
151+ "node_modules/@esbuild/linux-arm64": {
152+ "version": "0.16.10",
153+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.10.tgz",
154+ "integrity": "sha512-2aqeNVxIaRfPcIaMZIFoblLh588sWyCbmj1HHCCs9WmeNWm+EIN0SmvsmPvTa/TsNZFKnxTcvkX2eszTcCqIrA==",
155+ "cpu": [
156+ "arm64"
157+ ],
158+ "dev": true,
159+ "optional": true,
160+ "os": [
161+ "linux"
162+ ],
163+ "engines": {
164+ "node": ">=12"
165+ }
166+ },
167+ "node_modules/@esbuild/linux-ia32": {
168+ "version": "0.16.10",
169+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.10.tgz",
170+ "integrity": "sha512-sqMIEWeyrLGU7J5RB5fTkLRIFwsgsQ7ieWXlDLEmC2HblPYGb3AucD7inw2OrKFpRPKsec1l+lssiM3+NV5aOw==",
171+ "cpu": [
172+ "ia32"
173+ ],
174+ "dev": true,
175+ "optional": true,
176+ "os": [
177+ "linux"
178+ ],
179+ "engines": {
180+ "node": ">=12"
181+ }
182+ },
183+ "node_modules/@esbuild/linux-loong64": {
184+ "version": "0.16.10",
185+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.10.tgz",
186+ "integrity": "sha512-O7Pd5hLEtTg37NC73pfhUOGTjx/+aXu5YoSq3ahCxcN7Bcr2F47mv+kG5t840thnsEzrv0oB70+LJu3gUgchvg==",
187+ "cpu": [
188+ "loong64"
189+ ],
190+ "dev": true,
191+ "optional": true,
192+ "os": [
193+ "linux"
194+ ],
195+ "engines": {
196+ "node": ">=12"
197+ }
198+ },
199+ "node_modules/@esbuild/linux-mips64el": {
200+ "version": "0.16.10",
201+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.10.tgz",
202+ "integrity": "sha512-FN8mZOH7531iPHM0kaFhAOqqNHoAb6r/YHW2ZIxNi0a85UBi2DO4Vuyn7t1p4UN8a4LoAnLOT1PqNgHkgBJgbA==",
203+ "cpu": [
204+ "mips64el"
205+ ],
206+ "dev": true,
207+ "optional": true,
208+ "os": [
209+ "linux"
210+ ],
211+ "engines": {
212+ "node": ">=12"
213+ }
214+ },
215+ "node_modules/@esbuild/linux-ppc64": {
216+ "version": "0.16.10",
217+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.10.tgz",
218+ "integrity": "sha512-Dg9RiqdvHOAWnOKIOTsIx8dFX9EDlY2IbPEY7YFzchrCiTZmMkD7jWA9UdZbNUygPjdmQBVPRCrLydReFlX9yg==",
219+ "cpu": [
220+ "ppc64"
221+ ],
222+ "dev": true,
223+ "optional": true,
224+ "os": [
225+ "linux"
226+ ],
227+ "engines": {
228+ "node": ">=12"
229+ }
230+ },
231+ "node_modules/@esbuild/linux-riscv64": {
232+ "version": "0.16.10",
233+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.10.tgz",
234+ "integrity": "sha512-XMqtpjwzbmlar0BJIxmzu/RZ7EWlfVfH68Vadrva0Wj5UKOdKvqskuev2jY2oPV3aoQUyXwnMbMrFmloO2GfAw==",
235+ "cpu": [
236+ "riscv64"
237+ ],
238+ "dev": true,
239+ "optional": true,
240+ "os": [
241+ "linux"
242+ ],
243+ "engines": {
244+ "node": ">=12"
245+ }
246+ },
247+ "node_modules/@esbuild/linux-s390x": {
248+ "version": "0.16.10",
249+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.10.tgz",
250+ "integrity": "sha512-fu7XtnoeRNFMx8DjK3gPWpFBDM2u5ba+FYwg27SjMJwKvJr4bDyKz5c+FLXLUSSAkMAt/UL+cUbEbra+rYtUgw==",
251+ "cpu": [
252+ "s390x"
253+ ],
254+ "dev": true,
255+ "optional": true,
256+ "os": [
257+ "linux"
258+ ],
259+ "engines": {
260+ "node": ">=12"
261+ }
262+ },
263+ "node_modules/@esbuild/linux-x64": {
264+ "version": "0.16.10",
265+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.10.tgz",
266+ "integrity": "sha512-61lcjVC/RldNNMUzQQdyCWjCxp9YLEQgIxErxU9XluX7juBdGKb0pvddS0vPNuCvotRbzijZ1pzII+26haWzbA==",
267+ "cpu": [
268+ "x64"
269+ ],
270+ "dev": true,
271+ "optional": true,
272+ "os": [
273+ "linux"
274+ ],
275+ "engines": {
276+ "node": ">=12"
277+ }
278+ },
279+ "node_modules/@esbuild/netbsd-x64": {
280+ "version": "0.16.10",
281+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.10.tgz",
282+ "integrity": "sha512-JeZXCX3viSA9j4HqSoygjssdqYdfHd6yCFWyfSekLbz4Ef+D2EjvsN02ZQPwYl5a5gg/ehdHgegHhlfOFP0HCA==",
283+ "cpu": [
284+ "x64"
285+ ],
286+ "dev": true,
287+ "optional": true,
288+ "os": [
289+ "netbsd"
290+ ],
291+ "engines": {
292+ "node": ">=12"
293+ }
294+ },
295+ "node_modules/@esbuild/openbsd-x64": {
296+ "version": "0.16.10",
297+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.10.tgz",
298+ "integrity": "sha512-3qpxQKuEVIIg8SebpXsp82OBrqjPV/OwNWmG+TnZDr3VGyChNnGMHccC1xkbxCHDQNnnXjxhMQNyHmdFJbmbRA==",
299+ "cpu": [
300+ "x64"
301+ ],
302+ "dev": true,
303+ "optional": true,
304+ "os": [
305+ "openbsd"
306+ ],
307+ "engines": {
308+ "node": ">=12"
309+ }
310+ },
311+ "node_modules/@esbuild/sunos-x64": {
312+ "version": "0.16.10",
313+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.10.tgz",
314+ "integrity": "sha512-z+q0xZ+et/7etz7WoMyXTHZ1rB8PMSNp/FOqURLJLOPb3GWJ2aj4oCqFCjPwEbW1rsT7JPpxeH/DwGAWk/I1Bg==",
315+ "cpu": [
316+ "x64"
317+ ],
318+ "dev": true,
319+ "optional": true,
320+ "os": [
321+ "sunos"
322+ ],
323+ "engines": {
324+ "node": ">=12"
325+ }
326+ },
327+ "node_modules/@esbuild/win32-arm64": {
328+ "version": "0.16.10",
329+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.10.tgz",
330+ "integrity": "sha512-+YYu5sbQ9npkNT9Dec+tn1F/kjg6SMgr6bfi/6FpXYZvCRfu2YFPZGb+3x8K30s8eRxFpoG4sGhiSUkr1xbHEw==",
331+ "cpu": [
332+ "arm64"
333+ ],
334+ "dev": true,
335+ "optional": true,
336+ "os": [
337+ "win32"
338+ ],
339+ "engines": {
340+ "node": ">=12"
341+ }
342+ },
343+ "node_modules/@esbuild/win32-ia32": {
344+ "version": "0.16.10",
345+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.10.tgz",
346+ "integrity": "sha512-Aw7Fupk7XNehR1ftHGYwUteyJ2q+em/aE+fVU3YMTBN2V5A7Z4aVCSV+SvCp9HIIHZavPFBpbdP3VfjQpdf6Xg==",
347+ "cpu": [
348+ "ia32"
349+ ],
350+ "dev": true,
351+ "optional": true,
352+ "os": [
353+ "win32"
354+ ],
355+ "engines": {
356+ "node": ">=12"
357+ }
358+ },
359+ "node_modules/@esbuild/win32-x64": {
360+ "version": "0.16.10",
361+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.10.tgz",
362+ "integrity": "sha512-qddWullt3sC1EIpfHvCRBq3H4g3L86DZpD6n8k2XFjFVyp01D++uNbN1hT/JRsHxTbyyemZcpwL5aRlJwc/zFw==",
363+ "cpu": [
364+ "x64"
365+ ],
366+ "dev": true,
367+ "optional": true,
368+ "os": [
369+ "win32"
370+ ],
371+ "engines": {
372+ "node": ">=12"
373+ }
374+ },
375+ "node_modules/@jridgewell/resolve-uri": {
376+ "version": "3.1.0",
377+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
378+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
379+ "dev": true,
380+ "engines": {
381+ "node": ">=6.0.0"
382+ }
383+ },
384+ "node_modules/@jridgewell/sourcemap-codec": {
385+ "version": "1.4.14",
386+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
387+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
388+ "dev": true
389+ },
390+ "node_modules/@jridgewell/trace-mapping": {
391+ "version": "0.3.17",
392+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
393+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
394+ "dev": true,
395+ "dependencies": {
396+ "@jridgewell/resolve-uri": "3.1.0",
397+ "@jridgewell/sourcemap-codec": "1.4.14"
398+ }
399+ },
400+ "node_modules/@nodelib/fs.scandir": {
401+ "version": "2.1.5",
402+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
403+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
404+ "dev": true,
405+ "dependencies": {
406+ "@nodelib/fs.stat": "2.0.5",
407+ "run-parallel": "^1.1.9"
408+ },
409+ "engines": {
410+ "node": ">= 8"
411+ }
412+ },
413+ "node_modules/@nodelib/fs.stat": {
414+ "version": "2.0.5",
415+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
416+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
417+ "dev": true,
418+ "engines": {
419+ "node": ">= 8"
420+ }
421+ },
422+ "node_modules/@nodelib/fs.walk": {
423+ "version": "1.2.8",
424+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
425+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
426+ "dev": true,
427+ "dependencies": {
428+ "@nodelib/fs.scandir": "2.1.5",
429+ "fastq": "^1.6.0"
430+ },
431+ "engines": {
432+ "node": ">= 8"
433+ }
434+ },
435+ "node_modules/@sveltejs/vite-plugin-svelte": {
436+ "version": "2.0.2",
437+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.2.tgz",
438+ "integrity": "sha512-xCEan0/NNpQuL0l5aS42FjwQ6wwskdxC3pW1OeFtEKNZwRg7Evro9lac9HesGP6TdFsTv2xMes5ASQVKbCacxg==",
439+ "dev": true,
440+ "dependencies": {
441+ "debug": "^4.3.4",
442+ "deepmerge": "^4.2.2",
443+ "kleur": "^4.1.5",
444+ "magic-string": "^0.27.0",
445+ "svelte-hmr": "^0.15.1",
446+ "vitefu": "^0.2.3"
447+ },
448+ "engines": {
449+ "node": "^14.18.0 || >= 16"
450+ },
451+ "peerDependencies": {
452+ "svelte": "^3.54.0",
453+ "vite": "^4.0.0"
454+ }
455+ },
456+ "node_modules/@tsconfig/svelte": {
457+ "version": "3.0.0",
458+ "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-3.0.0.tgz",
459+ "integrity": "sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==",
460+ "dev": true
461+ },
462+ "node_modules/@types/node": {
463+ "version": "18.11.17",
464+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz",
465+ "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==",
466+ "dev": true
467+ },
468+ "node_modules/@types/pug": {
469+ "version": "2.0.6",
470+ "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz",
471+ "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==",
472+ "dev": true
473+ },
474+ "node_modules/@types/sass": {
475+ "version": "1.43.1",
476+ "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz",
477+ "integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==",
478+ "dev": true,
479+ "dependencies": {
480+ "@types/node": "*"
481+ }
482+ },
483+ "node_modules/acorn": {
484+ "version": "7.4.1",
485+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
486+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
487+ "dev": true,
488+ "bin": {
489+ "acorn": "bin/acorn"
490+ },
491+ "engines": {
492+ "node": ">=0.4.0"
493+ }
494+ },
495+ "node_modules/acorn-node": {
496+ "version": "1.8.2",
497+ "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
498+ "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
499+ "dev": true,
500+ "dependencies": {
501+ "acorn": "^7.0.0",
502+ "acorn-walk": "^7.0.0",
503+ "xtend": "^4.0.2"
504+ }
505+ },
506+ "node_modules/acorn-walk": {
507+ "version": "7.2.0",
508+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
509+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
510+ "dev": true,
511+ "engines": {
512+ "node": ">=0.4.0"
513+ }
514+ },
515+ "node_modules/anymatch": {
516+ "version": "3.1.3",
517+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
518+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
519+ "dev": true,
520+ "dependencies": {
521+ "normalize-path": "^3.0.0",
522+ "picomatch": "^2.0.4"
523+ },
524+ "engines": {
525+ "node": ">= 8"
526+ }
527+ },
528+ "node_modules/arg": {
529+ "version": "5.0.2",
530+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
531+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
532+ "dev": true
533+ },
534+ "node_modules/autoprefixer": {
535+ "version": "10.4.13",
536+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
537+ "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
538+ "dev": true,
539+ "funding": [
540+ {
541+ "type": "opencollective",
542+ "url": "https://opencollective.com/postcss/"
543+ },
544+ {
545+ "type": "tidelift",
546+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
547+ }
548+ ],
549+ "dependencies": {
550+ "browserslist": "^4.21.4",
551+ "caniuse-lite": "^1.0.30001426",
552+ "fraction.js": "^4.2.0",
553+ "normalize-range": "^0.1.2",
554+ "picocolors": "^1.0.0",
555+ "postcss-value-parser": "^4.2.0"
556+ },
557+ "bin": {
558+ "autoprefixer": "bin/autoprefixer"
559+ },
560+ "engines": {
561+ "node": "^10 || ^12 || >=14"
562+ },
563+ "peerDependencies": {
564+ "postcss": "^8.1.0"
565+ }
566+ },
567+ "node_modules/balanced-match": {
568+ "version": "1.0.2",
569+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
570+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
571+ "dev": true
572+ },
573+ "node_modules/binary-extensions": {
574+ "version": "2.2.0",
575+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
576+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
577+ "dev": true,
578+ "engines": {
579+ "node": ">=8"
580+ }
581+ },
582+ "node_modules/brace-expansion": {
583+ "version": "1.1.11",
584+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
585+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
586+ "dev": true,
587+ "dependencies": {
588+ "balanced-match": "^1.0.0",
589+ "concat-map": "0.0.1"
590+ }
591+ },
592+ "node_modules/braces": {
593+ "version": "3.0.2",
594+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
595+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
596+ "dev": true,
597+ "dependencies": {
598+ "fill-range": "^7.0.1"
599+ },
600+ "engines": {
601+ "node": ">=8"
602+ }
603+ },
604+ "node_modules/browserslist": {
605+ "version": "4.21.4",
606+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
607+ "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
608+ "dev": true,
609+ "funding": [
610+ {
611+ "type": "opencollective",
612+ "url": "https://opencollective.com/browserslist"
613+ },
614+ {
615+ "type": "tidelift",
616+ "url": "https://tidelift.com/funding/github/npm/browserslist"
617+ }
618+ ],
619+ "dependencies": {
620+ "caniuse-lite": "^1.0.30001400",
621+ "electron-to-chromium": "^1.4.251",
622+ "node-releases": "^2.0.6",
623+ "update-browserslist-db": "^1.0.9"
624+ },
625+ "bin": {
626+ "browserslist": "cli.js"
627+ },
628+ "engines": {
629+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
630+ }
631+ },
632+ "node_modules/buffer-crc32": {
633+ "version": "0.2.13",
634+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
635+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
636+ "dev": true,
637+ "engines": {
638+ "node": "*"
639+ }
640+ },
641+ "node_modules/callsites": {
642+ "version": "3.1.0",
643+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
644+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
645+ "dev": true,
646+ "engines": {
647+ "node": ">=6"
648+ }
649+ },
650+ "node_modules/camelcase-css": {
651+ "version": "2.0.1",
652+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
653+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
654+ "dev": true,
655+ "engines": {
656+ "node": ">= 6"
657+ }
658+ },
659+ "node_modules/caniuse-lite": {
660+ "version": "1.0.30001439",
661+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz",
662+ "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==",
663+ "dev": true,
664+ "funding": [
665+ {
666+ "type": "opencollective",
667+ "url": "https://opencollective.com/browserslist"
668+ },
669+ {
670+ "type": "tidelift",
671+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
672+ }
673+ ]
674+ },
675+ "node_modules/chokidar": {
676+ "version": "3.5.3",
677+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
678+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
679+ "dev": true,
680+ "funding": [
681+ {
682+ "type": "individual",
683+ "url": "https://paulmillr.com/funding/"
684+ }
685+ ],
686+ "dependencies": {
687+ "anymatch": "~3.1.2",
688+ "braces": "~3.0.2",
689+ "glob-parent": "~5.1.2",
690+ "is-binary-path": "~2.1.0",
691+ "is-glob": "~4.0.1",
692+ "normalize-path": "~3.0.0",
693+ "readdirp": "~3.6.0"
694+ },
695+ "engines": {
696+ "node": ">= 8.10.0"
697+ },
698+ "optionalDependencies": {
699+ "fsevents": "~2.3.2"
700+ }
701+ },
702+ "node_modules/color-name": {
703+ "version": "1.1.4",
704+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
705+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
706+ "dev": true
707+ },
708+ "node_modules/concat-map": {
709+ "version": "0.0.1",
710+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
711+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
712+ "dev": true
713+ },
714+ "node_modules/cssesc": {
715+ "version": "3.0.0",
716+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
717+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
718+ "dev": true,
719+ "bin": {
720+ "cssesc": "bin/cssesc"
721+ },
722+ "engines": {
723+ "node": ">=4"
724+ }
725+ },
726+ "node_modules/debug": {
727+ "version": "4.3.4",
728+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
729+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
730+ "dev": true,
731+ "dependencies": {
732+ "ms": "2.1.2"
733+ },
734+ "engines": {
735+ "node": ">=6.0"
736+ },
737+ "peerDependenciesMeta": {
738+ "supports-color": {
739+ "optional": true
740+ }
741+ }
742+ },
743+ "node_modules/deepmerge": {
744+ "version": "4.2.2",
745+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
746+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
747+ "dev": true,
748+ "engines": {
749+ "node": ">=0.10.0"
750+ }
751+ },
752+ "node_modules/defined": {
753+ "version": "1.0.1",
754+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
755+ "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==",
756+ "dev": true,
757+ "funding": {
758+ "url": "https://github.com/sponsors/ljharb"
759+ }
760+ },
761+ "node_modules/detect-indent": {
762+ "version": "6.1.0",
763+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
764+ "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
765+ "dev": true,
766+ "engines": {
767+ "node": ">=8"
768+ }
769+ },
770+ "node_modules/detective": {
771+ "version": "5.2.1",
772+ "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
773+ "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
774+ "dev": true,
775+ "dependencies": {
776+ "acorn-node": "^1.8.2",
777+ "defined": "^1.0.0",
778+ "minimist": "^1.2.6"
779+ },
780+ "bin": {
781+ "detective": "bin/detective.js"
782+ },
783+ "engines": {
784+ "node": ">=0.8.0"
785+ }
786+ },
787+ "node_modules/didyoumean": {
788+ "version": "1.2.2",
789+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
790+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
791+ "dev": true
792+ },
793+ "node_modules/dlv": {
794+ "version": "1.1.3",
795+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
796+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
797+ "dev": true
798+ },
799+ "node_modules/electron-to-chromium": {
800+ "version": "1.4.284",
801+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
802+ "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
803+ "dev": true
804+ },
805+ "node_modules/es6-promise": {
806+ "version": "3.3.1",
807+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
808+ "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==",
809+ "dev": true
810+ },
811+ "node_modules/esbuild": {
812+ "version": "0.16.10",
813+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.10.tgz",
814+ "integrity": "sha512-z5dIViHoVnw2l+NCJ3zj5behdXjYvXne9gL18OOivCadXDUhyDkeSvEtLcGVAJW2fNmh33TDUpsi704XYlDodw==",
815+ "dev": true,
816+ "hasInstallScript": true,
817+ "bin": {
818+ "esbuild": "bin/esbuild"
819+ },
820+ "engines": {
821+ "node": ">=12"
822+ },
823+ "optionalDependencies": {
824+ "@esbuild/android-arm": "0.16.10",
825+ "@esbuild/android-arm64": "0.16.10",
826+ "@esbuild/android-x64": "0.16.10",
827+ "@esbuild/darwin-arm64": "0.16.10",
828+ "@esbuild/darwin-x64": "0.16.10",
829+ "@esbuild/freebsd-arm64": "0.16.10",
830+ "@esbuild/freebsd-x64": "0.16.10",
831+ "@esbuild/linux-arm": "0.16.10",
832+ "@esbuild/linux-arm64": "0.16.10",
833+ "@esbuild/linux-ia32": "0.16.10",
834+ "@esbuild/linux-loong64": "0.16.10",
835+ "@esbuild/linux-mips64el": "0.16.10",
836+ "@esbuild/linux-ppc64": "0.16.10",
837+ "@esbuild/linux-riscv64": "0.16.10",
838+ "@esbuild/linux-s390x": "0.16.10",
839+ "@esbuild/linux-x64": "0.16.10",
840+ "@esbuild/netbsd-x64": "0.16.10",
841+ "@esbuild/openbsd-x64": "0.16.10",
842+ "@esbuild/sunos-x64": "0.16.10",
843+ "@esbuild/win32-arm64": "0.16.10",
844+ "@esbuild/win32-ia32": "0.16.10",
845+ "@esbuild/win32-x64": "0.16.10"
846+ }
847+ },
848+ "node_modules/escalade": {
849+ "version": "3.1.1",
850+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
851+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
852+ "dev": true,
853+ "engines": {
854+ "node": ">=6"
855+ }
856+ },
857+ "node_modules/fast-glob": {
858+ "version": "3.2.12",
859+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
860+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
861+ "dev": true,
862+ "dependencies": {
863+ "@nodelib/fs.stat": "^2.0.2",
864+ "@nodelib/fs.walk": "^1.2.3",
865+ "glob-parent": "^5.1.2",
866+ "merge2": "^1.3.0",
867+ "micromatch": "^4.0.4"
868+ },
869+ "engines": {
870+ "node": ">=8.6.0"
871+ }
872+ },
873+ "node_modules/fastq": {
874+ "version": "1.14.0",
875+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz",
876+ "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
877+ "dev": true,
878+ "dependencies": {
879+ "reusify": "^1.0.4"
880+ }
881+ },
882+ "node_modules/fill-range": {
883+ "version": "7.0.1",
884+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
885+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
886+ "dev": true,
887+ "dependencies": {
888+ "to-regex-range": "^5.0.1"
889+ },
890+ "engines": {
891+ "node": ">=8"
892+ }
893+ },
894+ "node_modules/fraction.js": {
895+ "version": "4.2.0",
896+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
897+ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
898+ "dev": true,
899+ "engines": {
900+ "node": "*"
901+ },
902+ "funding": {
903+ "type": "patreon",
904+ "url": "https://www.patreon.com/infusion"
905+ }
906+ },
907+ "node_modules/fs.realpath": {
908+ "version": "1.0.0",
909+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
910+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
911+ "dev": true
912+ },
913+ "node_modules/fsevents": {
914+ "version": "2.3.2",
915+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
916+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
917+ "dev": true,
918+ "hasInstallScript": true,
919+ "optional": true,
920+ "os": [
921+ "darwin"
922+ ],
923+ "engines": {
924+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
925+ }
926+ },
927+ "node_modules/function-bind": {
928+ "version": "1.1.1",
929+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
930+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
931+ "dev": true
932+ },
933+ "node_modules/glob": {
934+ "version": "7.2.3",
935+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
936+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
937+ "dev": true,
938+ "dependencies": {
939+ "fs.realpath": "^1.0.0",
940+ "inflight": "^1.0.4",
941+ "inherits": "2",
942+ "minimatch": "^3.1.1",
943+ "once": "^1.3.0",
944+ "path-is-absolute": "^1.0.0"
945+ },
946+ "engines": {
947+ "node": "*"
948+ },
949+ "funding": {
950+ "url": "https://github.com/sponsors/isaacs"
951+ }
952+ },
953+ "node_modules/glob-parent": {
954+ "version": "5.1.2",
955+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
956+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
957+ "dev": true,
958+ "dependencies": {
959+ "is-glob": "^4.0.1"
960+ },
961+ "engines": {
962+ "node": ">= 6"
963+ }
964+ },
965+ "node_modules/graceful-fs": {
966+ "version": "4.2.10",
967+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
968+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
969+ "dev": true
970+ },
971+ "node_modules/has": {
972+ "version": "1.0.3",
973+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
974+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
975+ "dev": true,
976+ "dependencies": {
977+ "function-bind": "^1.1.1"
978+ },
979+ "engines": {
980+ "node": ">= 0.4.0"
981+ }
982+ },
983+ "node_modules/import-fresh": {
984+ "version": "3.3.0",
985+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
986+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
987+ "dev": true,
988+ "dependencies": {
989+ "parent-module": "^1.0.0",
990+ "resolve-from": "^4.0.0"
991+ },
992+ "engines": {
993+ "node": ">=6"
994+ },
995+ "funding": {
996+ "url": "https://github.com/sponsors/sindresorhus"
997+ }
998+ },
999+ "node_modules/inflight": {
1000+ "version": "1.0.6",
1001+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1002+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1003+ "dev": true,
1004+ "dependencies": {
1005+ "once": "^1.3.0",
1006+ "wrappy": "1"
1007+ }
1008+ },
1009+ "node_modules/inherits": {
1010+ "version": "2.0.4",
1011+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1012+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1013+ "dev": true
1014+ },
1015+ "node_modules/is-binary-path": {
1016+ "version": "2.1.0",
1017+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1018+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1019+ "dev": true,
1020+ "dependencies": {
1021+ "binary-extensions": "^2.0.0"
1022+ },
1023+ "engines": {
1024+ "node": ">=8"
1025+ }
1026+ },
1027+ "node_modules/is-core-module": {
1028+ "version": "2.11.0",
1029+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
1030+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
1031+ "dev": true,
1032+ "dependencies": {
1033+ "has": "^1.0.3"
1034+ },
1035+ "funding": {
1036+ "url": "https://github.com/sponsors/ljharb"
1037+ }
1038+ },
1039+ "node_modules/is-extglob": {
1040+ "version": "2.1.1",
1041+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1042+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1043+ "dev": true,
1044+ "engines": {
1045+ "node": ">=0.10.0"
1046+ }
1047+ },
1048+ "node_modules/is-glob": {
1049+ "version": "4.0.3",
1050+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1051+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1052+ "dev": true,
1053+ "dependencies": {
1054+ "is-extglob": "^2.1.1"
1055+ },
1056+ "engines": {
1057+ "node": ">=0.10.0"
1058+ }
1059+ },
1060+ "node_modules/is-number": {
1061+ "version": "7.0.0",
1062+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1063+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1064+ "dev": true,
1065+ "engines": {
1066+ "node": ">=0.12.0"
1067+ }
1068+ },
1069+ "node_modules/kleur": {
1070+ "version": "4.1.5",
1071+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
1072+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
1073+ "dev": true,
1074+ "engines": {
1075+ "node": ">=6"
1076+ }
1077+ },
1078+ "node_modules/lilconfig": {
1079+ "version": "2.0.6",
1080+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
1081+ "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==",
1082+ "dev": true,
1083+ "engines": {
1084+ "node": ">=10"
1085+ }
1086+ },
1087+ "node_modules/magic-string": {
1088+ "version": "0.27.0",
1089+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
1090+ "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
1091+ "dev": true,
1092+ "dependencies": {
1093+ "@jridgewell/sourcemap-codec": "^1.4.13"
1094+ },
1095+ "engines": {
1096+ "node": ">=12"
1097+ }
1098+ },
1099+ "node_modules/merge2": {
1100+ "version": "1.4.1",
1101+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1102+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1103+ "dev": true,
1104+ "engines": {
1105+ "node": ">= 8"
1106+ }
1107+ },
1108+ "node_modules/micromatch": {
1109+ "version": "4.0.5",
1110+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
1111+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1112+ "dev": true,
1113+ "dependencies": {
1114+ "braces": "^3.0.2",
1115+ "picomatch": "^2.3.1"
1116+ },
1117+ "engines": {
1118+ "node": ">=8.6"
1119+ }
1120+ },
1121+ "node_modules/min-indent": {
1122+ "version": "1.0.1",
1123+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
1124+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
1125+ "dev": true,
1126+ "engines": {
1127+ "node": ">=4"
1128+ }
1129+ },
1130+ "node_modules/minimatch": {
1131+ "version": "3.1.2",
1132+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1133+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1134+ "dev": true,
1135+ "dependencies": {
1136+ "brace-expansion": "^1.1.7"
1137+ },
1138+ "engines": {
1139+ "node": "*"
1140+ }
1141+ },
1142+ "node_modules/minimist": {
1143+ "version": "1.2.7",
1144+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
1145+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
1146+ "dev": true,
1147+ "funding": {
1148+ "url": "https://github.com/sponsors/ljharb"
1149+ }
1150+ },
1151+ "node_modules/mkdirp": {
1152+ "version": "0.5.6",
1153+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
1154+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
1155+ "dev": true,
1156+ "dependencies": {
1157+ "minimist": "^1.2.6"
1158+ },
1159+ "bin": {
1160+ "mkdirp": "bin/cmd.js"
1161+ }
1162+ },
1163+ "node_modules/mri": {
1164+ "version": "1.2.0",
1165+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
1166+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
1167+ "dev": true,
1168+ "engines": {
1169+ "node": ">=4"
1170+ }
1171+ },
1172+ "node_modules/ms": {
1173+ "version": "2.1.2",
1174+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1175+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1176+ "dev": true
1177+ },
1178+ "node_modules/nanoid": {
1179+ "version": "3.3.4",
1180+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
1181+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
1182+ "dev": true,
1183+ "bin": {
1184+ "nanoid": "bin/nanoid.cjs"
1185+ },
1186+ "engines": {
1187+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1188+ }
1189+ },
1190+ "node_modules/node-releases": {
1191+ "version": "2.0.8",
1192+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
1193+ "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==",
1194+ "dev": true
1195+ },
1196+ "node_modules/normalize-path": {
1197+ "version": "3.0.0",
1198+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1199+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1200+ "dev": true,
1201+ "engines": {
1202+ "node": ">=0.10.0"
1203+ }
1204+ },
1205+ "node_modules/normalize-range": {
1206+ "version": "0.1.2",
1207+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
1208+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
1209+ "dev": true,
1210+ "engines": {
1211+ "node": ">=0.10.0"
1212+ }
1213+ },
1214+ "node_modules/object-hash": {
1215+ "version": "3.0.0",
1216+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
1217+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
1218+ "dev": true,
1219+ "engines": {
1220+ "node": ">= 6"
1221+ }
1222+ },
1223+ "node_modules/once": {
1224+ "version": "1.4.0",
1225+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1226+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1227+ "dev": true,
1228+ "dependencies": {
1229+ "wrappy": "1"
1230+ }
1231+ },
1232+ "node_modules/parent-module": {
1233+ "version": "1.0.1",
1234+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1235+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1236+ "dev": true,
1237+ "dependencies": {
1238+ "callsites": "^3.0.0"
1239+ },
1240+ "engines": {
1241+ "node": ">=6"
1242+ }
1243+ },
1244+ "node_modules/path-is-absolute": {
1245+ "version": "1.0.1",
1246+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1247+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1248+ "dev": true,
1249+ "engines": {
1250+ "node": ">=0.10.0"
1251+ }
1252+ },
1253+ "node_modules/path-parse": {
1254+ "version": "1.0.7",
1255+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1256+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1257+ "dev": true
1258+ },
1259+ "node_modules/picocolors": {
1260+ "version": "1.0.0",
1261+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1262+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
1263+ "dev": true
1264+ },
1265+ "node_modules/picomatch": {
1266+ "version": "2.3.1",
1267+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1268+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1269+ "dev": true,
1270+ "engines": {
1271+ "node": ">=8.6"
1272+ },
1273+ "funding": {
1274+ "url": "https://github.com/sponsors/jonschlinkert"
1275+ }
1276+ },
1277+ "node_modules/pify": {
1278+ "version": "2.3.0",
1279+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1280+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
1281+ "dev": true,
1282+ "engines": {
1283+ "node": ">=0.10.0"
1284+ }
1285+ },
1286+ "node_modules/postcss": {
1287+ "version": "8.4.20",
1288+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz",
1289+ "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==",
1290+ "dev": true,
1291+ "funding": [
1292+ {
1293+ "type": "opencollective",
1294+ "url": "https://opencollective.com/postcss/"
1295+ },
1296+ {
1297+ "type": "tidelift",
1298+ "url": "https://tidelift.com/funding/github/npm/postcss"
1299+ }
1300+ ],
1301+ "dependencies": {
1302+ "nanoid": "^3.3.4",
1303+ "picocolors": "^1.0.0",
1304+ "source-map-js": "^1.0.2"
1305+ },
1306+ "engines": {
1307+ "node": "^10 || ^12 || >=14"
1308+ }
1309+ },
1310+ "node_modules/postcss-import": {
1311+ "version": "15.1.0",
1312+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
1313+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
1314+ "dev": true,
1315+ "dependencies": {
1316+ "postcss-value-parser": "^4.0.0",
1317+ "read-cache": "^1.0.0",
1318+ "resolve": "^1.1.7"
1319+ },
1320+ "engines": {
1321+ "node": ">=14.0.0"
1322+ },
1323+ "peerDependencies": {
1324+ "postcss": "^8.0.0"
1325+ }
1326+ },
1327+ "node_modules/postcss-js": {
1328+ "version": "4.0.0",
1329+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz",
1330+ "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==",
1331+ "dev": true,
1332+ "dependencies": {
1333+ "camelcase-css": "^2.0.1"
1334+ },
1335+ "engines": {
1336+ "node": "^12 || ^14 || >= 16"
1337+ },
1338+ "funding": {
1339+ "type": "opencollective",
1340+ "url": "https://opencollective.com/postcss/"
1341+ },
1342+ "peerDependencies": {
1343+ "postcss": "^8.3.3"
1344+ }
1345+ },
1346+ "node_modules/postcss-load-config": {
1347+ "version": "3.1.4",
1348+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
1349+ "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
1350+ "dev": true,
1351+ "dependencies": {
1352+ "lilconfig": "^2.0.5",
1353+ "yaml": "^1.10.2"
1354+ },
1355+ "engines": {
1356+ "node": ">= 10"
1357+ },
1358+ "funding": {
1359+ "type": "opencollective",
1360+ "url": "https://opencollective.com/postcss/"
1361+ },
1362+ "peerDependencies": {
1363+ "postcss": ">=8.0.9",
1364+ "ts-node": ">=9.0.0"
1365+ },
1366+ "peerDependenciesMeta": {
1367+ "postcss": {
1368+ "optional": true
1369+ },
1370+ "ts-node": {
1371+ "optional": true
1372+ }
1373+ }
1374+ },
1375+ "node_modules/postcss-nested": {
1376+ "version": "6.0.0",
1377+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz",
1378+ "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==",
1379+ "dev": true,
1380+ "dependencies": {
1381+ "postcss-selector-parser": "^6.0.10"
1382+ },
1383+ "engines": {
1384+ "node": ">=12.0"
1385+ },
1386+ "funding": {
1387+ "type": "opencollective",
1388+ "url": "https://opencollective.com/postcss/"
1389+ },
1390+ "peerDependencies": {
1391+ "postcss": "^8.2.14"
1392+ }
1393+ },
1394+ "node_modules/postcss-selector-parser": {
1395+ "version": "6.0.11",
1396+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
1397+ "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
1398+ "dev": true,
1399+ "dependencies": {
1400+ "cssesc": "^3.0.0",
1401+ "util-deprecate": "^1.0.2"
1402+ },
1403+ "engines": {
1404+ "node": ">=4"
1405+ }
1406+ },
1407+ "node_modules/postcss-value-parser": {
1408+ "version": "4.2.0",
1409+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
1410+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
1411+ "dev": true
1412+ },
1413+ "node_modules/queue-microtask": {
1414+ "version": "1.2.3",
1415+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1416+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1417+ "dev": true,
1418+ "funding": [
1419+ {
1420+ "type": "github",
1421+ "url": "https://github.com/sponsors/feross"
1422+ },
1423+ {
1424+ "type": "patreon",
1425+ "url": "https://www.patreon.com/feross"
1426+ },
1427+ {
1428+ "type": "consulting",
1429+ "url": "https://feross.org/support"
1430+ }
1431+ ]
1432+ },
1433+ "node_modules/quick-lru": {
1434+ "version": "5.1.1",
1435+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
1436+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
1437+ "dev": true,
1438+ "engines": {
1439+ "node": ">=10"
1440+ },
1441+ "funding": {
1442+ "url": "https://github.com/sponsors/sindresorhus"
1443+ }
1444+ },
1445+ "node_modules/read-cache": {
1446+ "version": "1.0.0",
1447+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
1448+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
1449+ "dev": true,
1450+ "dependencies": {
1451+ "pify": "^2.3.0"
1452+ }
1453+ },
1454+ "node_modules/readdirp": {
1455+ "version": "3.6.0",
1456+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1457+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1458+ "dev": true,
1459+ "dependencies": {
1460+ "picomatch": "^2.2.1"
1461+ },
1462+ "engines": {
1463+ "node": ">=8.10.0"
1464+ }
1465+ },
1466+ "node_modules/resolve": {
1467+ "version": "1.22.1",
1468+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
1469+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
1470+ "dev": true,
1471+ "dependencies": {
1472+ "is-core-module": "^2.9.0",
1473+ "path-parse": "^1.0.7",
1474+ "supports-preserve-symlinks-flag": "^1.0.0"
1475+ },
1476+ "bin": {
1477+ "resolve": "bin/resolve"
1478+ },
1479+ "funding": {
1480+ "url": "https://github.com/sponsors/ljharb"
1481+ }
1482+ },
1483+ "node_modules/resolve-from": {
1484+ "version": "4.0.0",
1485+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1486+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1487+ "dev": true,
1488+ "engines": {
1489+ "node": ">=4"
1490+ }
1491+ },
1492+ "node_modules/reusify": {
1493+ "version": "1.0.4",
1494+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1495+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1496+ "dev": true,
1497+ "engines": {
1498+ "iojs": ">=1.0.0",
1499+ "node": ">=0.10.0"
1500+ }
1501+ },
1502+ "node_modules/rimraf": {
1503+ "version": "2.7.1",
1504+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
1505+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
1506+ "dev": true,
1507+ "dependencies": {
1508+ "glob": "^7.1.3"
1509+ },
1510+ "bin": {
1511+ "rimraf": "bin.js"
1512+ }
1513+ },
1514+ "node_modules/rollup": {
1515+ "version": "3.7.5",
1516+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.7.5.tgz",
1517+ "integrity": "sha512-z0ZbqHBtS/et2EEUKMrAl2CoSdwN7ZPzL17UMiKN9RjjqHShTlv7F9J6ZJZJNREYjBh3TvBrdfjkFDIXFNeuiQ==",
1518+ "dev": true,
1519+ "bin": {
1520+ "rollup": "dist/bin/rollup"
1521+ },
1522+ "engines": {
1523+ "node": ">=14.18.0",
1524+ "npm": ">=8.0.0"
1525+ },
1526+ "optionalDependencies": {
1527+ "fsevents": "~2.3.2"
1528+ }
1529+ },
1530+ "node_modules/run-parallel": {
1531+ "version": "1.2.0",
1532+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1533+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1534+ "dev": true,
1535+ "funding": [
1536+ {
1537+ "type": "github",
1538+ "url": "https://github.com/sponsors/feross"
1539+ },
1540+ {
1541+ "type": "patreon",
1542+ "url": "https://www.patreon.com/feross"
1543+ },
1544+ {
1545+ "type": "consulting",
1546+ "url": "https://feross.org/support"
1547+ }
1548+ ],
1549+ "dependencies": {
1550+ "queue-microtask": "^1.2.2"
1551+ }
1552+ },
1553+ "node_modules/sade": {
1554+ "version": "1.8.1",
1555+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
1556+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
1557+ "dev": true,
1558+ "dependencies": {
1559+ "mri": "^1.1.0"
1560+ },
1561+ "engines": {
1562+ "node": ">=6"
1563+ }
1564+ },
1565+ "node_modules/sander": {
1566+ "version": "0.5.1",
1567+ "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
1568+ "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==",
1569+ "dev": true,
1570+ "dependencies": {
1571+ "es6-promise": "^3.1.2",
1572+ "graceful-fs": "^4.1.3",
1573+ "mkdirp": "^0.5.1",
1574+ "rimraf": "^2.5.2"
1575+ }
1576+ },
1577+ "node_modules/sorcery": {
1578+ "version": "0.10.0",
1579+ "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz",
1580+ "integrity": "sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==",
1581+ "dev": true,
1582+ "dependencies": {
1583+ "buffer-crc32": "^0.2.5",
1584+ "minimist": "^1.2.0",
1585+ "sander": "^0.5.0",
1586+ "sourcemap-codec": "^1.3.0"
1587+ },
1588+ "bin": {
1589+ "sorcery": "bin/index.js"
1590+ }
1591+ },
1592+ "node_modules/source-map-js": {
1593+ "version": "1.0.2",
1594+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
1595+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
1596+ "dev": true,
1597+ "engines": {
1598+ "node": ">=0.10.0"
1599+ }
1600+ },
1601+ "node_modules/sourcemap-codec": {
1602+ "version": "1.4.8",
1603+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
1604+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
1605+ "deprecated": "Please use @jridgewell/sourcemap-codec instead",
1606+ "dev": true
1607+ },
1608+ "node_modules/strip-indent": {
1609+ "version": "3.0.0",
1610+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
1611+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
1612+ "dev": true,
1613+ "dependencies": {
1614+ "min-indent": "^1.0.0"
1615+ },
1616+ "engines": {
1617+ "node": ">=8"
1618+ }
1619+ },
1620+ "node_modules/supports-preserve-symlinks-flag": {
1621+ "version": "1.0.0",
1622+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1623+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1624+ "dev": true,
1625+ "engines": {
1626+ "node": ">= 0.4"
1627+ },
1628+ "funding": {
1629+ "url": "https://github.com/sponsors/ljharb"
1630+ }
1631+ },
1632+ "node_modules/svelte": {
1633+ "version": "3.55.0",
1634+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.55.0.tgz",
1635+ "integrity": "sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA==",
1636+ "dev": true,
1637+ "engines": {
1638+ "node": ">= 8"
1639+ }
1640+ },
1641+ "node_modules/svelte-check": {
1642+ "version": "2.10.3",
1643+ "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-2.10.3.tgz",
1644+ "integrity": "sha512-Nt1aWHTOKFReBpmJ1vPug0aGysqPwJh2seM1OvICfM2oeyaA62mOiy5EvkXhltGfhCcIQcq2LoE0l1CwcWPjlw==",
1645+ "dev": true,
1646+ "dependencies": {
1647+ "@jridgewell/trace-mapping": "^0.3.9",
1648+ "chokidar": "^3.4.1",
1649+ "fast-glob": "^3.2.7",
1650+ "import-fresh": "^3.2.1",
1651+ "picocolors": "^1.0.0",
1652+ "sade": "^1.7.4",
1653+ "svelte-preprocess": "^4.0.0",
1654+ "typescript": "*"
1655+ },
1656+ "bin": {
1657+ "svelte-check": "bin/svelte-check"
1658+ },
1659+ "peerDependencies": {
1660+ "svelte": "^3.24.0"
1661+ }
1662+ },
1663+ "node_modules/svelte-hmr": {
1664+ "version": "0.15.1",
1665+ "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz",
1666+ "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==",
1667+ "dev": true,
1668+ "engines": {
1669+ "node": "^12.20 || ^14.13.1 || >= 16"
1670+ },
1671+ "peerDependencies": {
1672+ "svelte": ">=3.19.0"
1673+ }
1674+ },
1675+ "node_modules/svelte-preprocess": {
1676+ "version": "4.10.7",
1677+ "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz",
1678+ "integrity": "sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==",
1679+ "dev": true,
1680+ "hasInstallScript": true,
1681+ "dependencies": {
1682+ "@types/pug": "^2.0.4",
1683+ "@types/sass": "^1.16.0",
1684+ "detect-indent": "^6.0.0",
1685+ "magic-string": "^0.25.7",
1686+ "sorcery": "^0.10.0",
1687+ "strip-indent": "^3.0.0"
1688+ },
1689+ "engines": {
1690+ "node": ">= 9.11.2"
1691+ },
1692+ "peerDependencies": {
1693+ "@babel/core": "^7.10.2",
1694+ "coffeescript": "^2.5.1",
1695+ "less": "^3.11.3 || ^4.0.0",
1696+ "postcss": "^7 || ^8",
1697+ "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0",
1698+ "pug": "^3.0.0",
1699+ "sass": "^1.26.8",
1700+ "stylus": "^0.55.0",
1701+ "sugarss": "^2.0.0",
1702+ "svelte": "^3.23.0",
1703+ "typescript": "^3.9.5 || ^4.0.0"
1704+ },
1705+ "peerDependenciesMeta": {
1706+ "@babel/core": {
1707+ "optional": true
1708+ },
1709+ "coffeescript": {
1710+ "optional": true
1711+ },
1712+ "less": {
1713+ "optional": true
1714+ },
1715+ "node-sass": {
1716+ "optional": true
1717+ },
1718+ "postcss": {
1719+ "optional": true
1720+ },
1721+ "postcss-load-config": {
1722+ "optional": true
1723+ },
1724+ "pug": {
1725+ "optional": true
1726+ },
1727+ "sass": {
1728+ "optional": true
1729+ },
1730+ "stylus": {
1731+ "optional": true
1732+ },
1733+ "sugarss": {
1734+ "optional": true
1735+ },
1736+ "typescript": {
1737+ "optional": true
1738+ }
1739+ }
1740+ },
1741+ "node_modules/svelte-preprocess/node_modules/magic-string": {
1742+ "version": "0.25.9",
1743+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
1744+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
1745+ "dev": true,
1746+ "dependencies": {
1747+ "sourcemap-codec": "^1.4.8"
1748+ }
1749+ },
1750+ "node_modules/tailwindcss": {
1751+ "version": "3.2.4",
1752+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz",
1753+ "integrity": "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==",
1754+ "dev": true,
1755+ "dependencies": {
1756+ "arg": "^5.0.2",
1757+ "chokidar": "^3.5.3",
1758+ "color-name": "^1.1.4",
1759+ "detective": "^5.2.1",
1760+ "didyoumean": "^1.2.2",
1761+ "dlv": "^1.1.3",
1762+ "fast-glob": "^3.2.12",
1763+ "glob-parent": "^6.0.2",
1764+ "is-glob": "^4.0.3",
1765+ "lilconfig": "^2.0.6",
1766+ "micromatch": "^4.0.5",
1767+ "normalize-path": "^3.0.0",
1768+ "object-hash": "^3.0.0",
1769+ "picocolors": "^1.0.0",
1770+ "postcss": "^8.4.18",
1771+ "postcss-import": "^14.1.0",
1772+ "postcss-js": "^4.0.0",
1773+ "postcss-load-config": "^3.1.4",
1774+ "postcss-nested": "6.0.0",
1775+ "postcss-selector-parser": "^6.0.10",
1776+ "postcss-value-parser": "^4.2.0",
1777+ "quick-lru": "^5.1.1",
1778+ "resolve": "^1.22.1"
1779+ },
1780+ "bin": {
1781+ "tailwind": "lib/cli.js",
1782+ "tailwindcss": "lib/cli.js"
1783+ },
1784+ "engines": {
1785+ "node": ">=12.13.0"
1786+ },
1787+ "peerDependencies": {
1788+ "postcss": "^8.0.9"
1789+ }
1790+ },
1791+ "node_modules/tailwindcss/node_modules/glob-parent": {
1792+ "version": "6.0.2",
1793+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
1794+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
1795+ "dev": true,
1796+ "dependencies": {
1797+ "is-glob": "^4.0.3"
1798+ },
1799+ "engines": {
1800+ "node": ">=10.13.0"
1801+ }
1802+ },
1803+ "node_modules/tailwindcss/node_modules/postcss-import": {
1804+ "version": "14.1.0",
1805+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz",
1806+ "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
1807+ "dev": true,
1808+ "dependencies": {
1809+ "postcss-value-parser": "^4.0.0",
1810+ "read-cache": "^1.0.0",
1811+ "resolve": "^1.1.7"
1812+ },
1813+ "engines": {
1814+ "node": ">=10.0.0"
1815+ },
1816+ "peerDependencies": {
1817+ "postcss": "^8.0.0"
1818+ }
1819+ },
1820+ "node_modules/to-regex-range": {
1821+ "version": "5.0.1",
1822+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1823+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1824+ "dev": true,
1825+ "dependencies": {
1826+ "is-number": "^7.0.0"
1827+ },
1828+ "engines": {
1829+ "node": ">=8.0"
1830+ }
1831+ },
1832+ "node_modules/tslib": {
1833+ "version": "2.4.1",
1834+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
1835+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==",
1836+ "dev": true
1837+ },
1838+ "node_modules/typescript": {
1839+ "version": "4.9.4",
1840+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
1841+ "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
1842+ "dev": true,
1843+ "bin": {
1844+ "tsc": "bin/tsc",
1845+ "tsserver": "bin/tsserver"
1846+ },
1847+ "engines": {
1848+ "node": ">=4.2.0"
1849+ }
1850+ },
1851+ "node_modules/update-browserslist-db": {
1852+ "version": "1.0.10",
1853+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
1854+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
1855+ "dev": true,
1856+ "funding": [
1857+ {
1858+ "type": "opencollective",
1859+ "url": "https://opencollective.com/browserslist"
1860+ },
1861+ {
1862+ "type": "tidelift",
1863+ "url": "https://tidelift.com/funding/github/npm/browserslist"
1864+ }
1865+ ],
1866+ "dependencies": {
1867+ "escalade": "^3.1.1",
1868+ "picocolors": "^1.0.0"
1869+ },
1870+ "bin": {
1871+ "browserslist-lint": "cli.js"
1872+ },
1873+ "peerDependencies": {
1874+ "browserslist": ">= 4.21.0"
1875+ }
1876+ },
1877+ "node_modules/util-deprecate": {
1878+ "version": "1.0.2",
1879+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1880+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
1881+ "dev": true
1882+ },
1883+ "node_modules/vite": {
1884+ "version": "4.0.2",
1885+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.2.tgz",
1886+ "integrity": "sha512-QJaY3R+tFlTagH0exVqbgkkw45B+/bXVBzF2ZD1KB5Z8RiAoiKo60vSUf6/r4c2Vh9jfGBKM4oBI9b4/1ZJYng==",
1887+ "dev": true,
1888+ "dependencies": {
1889+ "esbuild": "^0.16.3",
1890+ "postcss": "^8.4.20",
1891+ "resolve": "^1.22.1",
1892+ "rollup": "^3.7.0"
1893+ },
1894+ "bin": {
1895+ "vite": "bin/vite.js"
1896+ },
1897+ "engines": {
1898+ "node": "^14.18.0 || >=16.0.0"
1899+ },
1900+ "optionalDependencies": {
1901+ "fsevents": "~2.3.2"
1902+ },
1903+ "peerDependencies": {
1904+ "@types/node": ">= 14",
1905+ "less": "*",
1906+ "sass": "*",
1907+ "stylus": "*",
1908+ "sugarss": "*",
1909+ "terser": "^5.4.0"
1910+ },
1911+ "peerDependenciesMeta": {
1912+ "@types/node": {
1913+ "optional": true
1914+ },
1915+ "less": {
1916+ "optional": true
1917+ },
1918+ "sass": {
1919+ "optional": true
1920+ },
1921+ "stylus": {
1922+ "optional": true
1923+ },
1924+ "sugarss": {
1925+ "optional": true
1926+ },
1927+ "terser": {
1928+ "optional": true
1929+ }
1930+ }
1931+ },
1932+ "node_modules/vitefu": {
1933+ "version": "0.2.4",
1934+ "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz",
1935+ "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==",
1936+ "dev": true,
1937+ "peerDependencies": {
1938+ "vite": "^3.0.0 || ^4.0.0"
1939+ },
1940+ "peerDependenciesMeta": {
1941+ "vite": {
1942+ "optional": true
1943+ }
1944+ }
1945+ },
1946+ "node_modules/wrappy": {
1947+ "version": "1.0.2",
1948+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1949+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
1950+ "dev": true
1951+ },
1952+ "node_modules/xtend": {
1953+ "version": "4.0.2",
1954+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
1955+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
1956+ "dev": true,
1957+ "engines": {
1958+ "node": ">=0.4"
1959+ }
1960+ },
1961+ "node_modules/yaml": {
1962+ "version": "1.10.2",
1963+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
1964+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
1965+ "dev": true,
1966+ "engines": {
1967+ "node": ">= 6"
1968+ }
1969+ }
1970+ },
1971+ "dependencies": {
1972+ "@esbuild/android-arm": {
1973+ "version": "0.16.10",
1974+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.10.tgz",
1975+ "integrity": "sha512-RmJjQTRrO6VwUWDrzTBLmV4OJZTarYsiepLGlF2rYTVB701hSorPywPGvP6d8HCuuRibyXa5JX4s3jN2kHEtjQ==",
1976+ "dev": true,
1977+ "optional": true
1978+ },
1979+ "@esbuild/android-arm64": {
1980+ "version": "0.16.10",
1981+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.10.tgz",
1982+ "integrity": "sha512-47Y+NwVKTldTlDhSgJHZ/RpvBQMUDG7eKihqaF/u6g7s0ZPz4J1vy8A3rwnnUOF2CuDn7w7Gj/QcMoWz3U3SJw==",
1983+ "dev": true,
1984+ "optional": true
1985+ },
1986+ "@esbuild/android-x64": {
1987+ "version": "0.16.10",
1988+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.10.tgz",
1989+ "integrity": "sha512-C4PfnrBMcuAcOurQzpF1tTtZz94IXO5JmICJJ3NFJRHbXXsQUg9RFG45KvydKqtFfBaFLCHpduUkUfXwIvGnRg==",
1990+ "dev": true,
1991+ "optional": true
1992+ },
1993+ "@esbuild/darwin-arm64": {
1994+ "version": "0.16.10",
1995+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.10.tgz",
1996+ "integrity": "sha512-bH/bpFwldyOKdi9HSLCLhhKeVgRYr9KblchwXgY2NeUHBB/BzTUHtUSBgGBmpydB1/4E37m+ggXXfSrnD7/E7g==",
1997+ "dev": true,
1998+ "optional": true
1999+ },
2000+ "@esbuild/darwin-x64": {
2001+ "version": "0.16.10",
2002+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.10.tgz",
2003+ "integrity": "sha512-OXt7ijoLuy+AjDSKQWu+KdDFMBbdeaL6wtgMKtDUXKWHiAMKHan5+R1QAG6HD4+K0nnOvEJXKHeA9QhXNAjOTQ==",
2004+ "dev": true,
2005+ "optional": true
2006+ },
2007+ "@esbuild/freebsd-arm64": {
2008+ "version": "0.16.10",
2009+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.10.tgz",
2010+ "integrity": "sha512-shSQX/3GHuspE3Uxtq5kcFG/zqC+VuMnJkqV7LczO41cIe6CQaXHD3QdMLA4ziRq/m0vZo7JdterlgbmgNIAlQ==",
2011+ "dev": true,
2012+ "optional": true
2013+ },
2014+ "@esbuild/freebsd-x64": {
2015+ "version": "0.16.10",
2016+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.10.tgz",
2017+ "integrity": "sha512-5YVc1zdeaJGASijZmTzSO4h6uKzsQGG3pkjI6fuXvolhm3hVRhZwnHJkforaZLmzvNv5Tb7a3QL2FAVmrgySIA==",
2018+ "dev": true,
2019+ "optional": true
2020+ },
2021+ "@esbuild/linux-arm": {
2022+ "version": "0.16.10",
2023+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.10.tgz",
2024+ "integrity": "sha512-c360287ZWI2miBnvIj23bPyVctgzeMT2kQKR+x94pVqIN44h3GF8VMEs1SFPH1UgyDr3yBbx3vowDS1SVhyVhA==",
2025+ "dev": true,
2026+ "optional": true
2027+ },
2028+ "@esbuild/linux-arm64": {
2029+ "version": "0.16.10",
2030+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.10.tgz",
2031+ "integrity": "sha512-2aqeNVxIaRfPcIaMZIFoblLh588sWyCbmj1HHCCs9WmeNWm+EIN0SmvsmPvTa/TsNZFKnxTcvkX2eszTcCqIrA==",
2032+ "dev": true,
2033+ "optional": true
2034+ },
2035+ "@esbuild/linux-ia32": {
2036+ "version": "0.16.10",
2037+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.10.tgz",
2038+ "integrity": "sha512-sqMIEWeyrLGU7J5RB5fTkLRIFwsgsQ7ieWXlDLEmC2HblPYGb3AucD7inw2OrKFpRPKsec1l+lssiM3+NV5aOw==",
2039+ "dev": true,
2040+ "optional": true
2041+ },
2042+ "@esbuild/linux-loong64": {
2043+ "version": "0.16.10",
2044+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.10.tgz",
2045+ "integrity": "sha512-O7Pd5hLEtTg37NC73pfhUOGTjx/+aXu5YoSq3ahCxcN7Bcr2F47mv+kG5t840thnsEzrv0oB70+LJu3gUgchvg==",
2046+ "dev": true,
2047+ "optional": true
2048+ },
2049+ "@esbuild/linux-mips64el": {
2050+ "version": "0.16.10",
2051+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.10.tgz",
2052+ "integrity": "sha512-FN8mZOH7531iPHM0kaFhAOqqNHoAb6r/YHW2ZIxNi0a85UBi2DO4Vuyn7t1p4UN8a4LoAnLOT1PqNgHkgBJgbA==",
2053+ "dev": true,
2054+ "optional": true
2055+ },
2056+ "@esbuild/linux-ppc64": {
2057+ "version": "0.16.10",
2058+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.10.tgz",
2059+ "integrity": "sha512-Dg9RiqdvHOAWnOKIOTsIx8dFX9EDlY2IbPEY7YFzchrCiTZmMkD7jWA9UdZbNUygPjdmQBVPRCrLydReFlX9yg==",
2060+ "dev": true,
2061+ "optional": true
2062+ },
2063+ "@esbuild/linux-riscv64": {
2064+ "version": "0.16.10",
2065+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.10.tgz",
2066+ "integrity": "sha512-XMqtpjwzbmlar0BJIxmzu/RZ7EWlfVfH68Vadrva0Wj5UKOdKvqskuev2jY2oPV3aoQUyXwnMbMrFmloO2GfAw==",
2067+ "dev": true,
2068+ "optional": true
2069+ },
2070+ "@esbuild/linux-s390x": {
2071+ "version": "0.16.10",
2072+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.10.tgz",
2073+ "integrity": "sha512-fu7XtnoeRNFMx8DjK3gPWpFBDM2u5ba+FYwg27SjMJwKvJr4bDyKz5c+FLXLUSSAkMAt/UL+cUbEbra+rYtUgw==",
2074+ "dev": true,
2075+ "optional": true
2076+ },
2077+ "@esbuild/linux-x64": {
2078+ "version": "0.16.10",
2079+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.10.tgz",
2080+ "integrity": "sha512-61lcjVC/RldNNMUzQQdyCWjCxp9YLEQgIxErxU9XluX7juBdGKb0pvddS0vPNuCvotRbzijZ1pzII+26haWzbA==",
2081+ "dev": true,
2082+ "optional": true
2083+ },
2084+ "@esbuild/netbsd-x64": {
2085+ "version": "0.16.10",
2086+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.10.tgz",
2087+ "integrity": "sha512-JeZXCX3viSA9j4HqSoygjssdqYdfHd6yCFWyfSekLbz4Ef+D2EjvsN02ZQPwYl5a5gg/ehdHgegHhlfOFP0HCA==",
2088+ "dev": true,
2089+ "optional": true
2090+ },
2091+ "@esbuild/openbsd-x64": {
2092+ "version": "0.16.10",
2093+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.10.tgz",
2094+ "integrity": "sha512-3qpxQKuEVIIg8SebpXsp82OBrqjPV/OwNWmG+TnZDr3VGyChNnGMHccC1xkbxCHDQNnnXjxhMQNyHmdFJbmbRA==",
2095+ "dev": true,
2096+ "optional": true
2097+ },
2098+ "@esbuild/sunos-x64": {
2099+ "version": "0.16.10",
2100+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.10.tgz",
2101+ "integrity": "sha512-z+q0xZ+et/7etz7WoMyXTHZ1rB8PMSNp/FOqURLJLOPb3GWJ2aj4oCqFCjPwEbW1rsT7JPpxeH/DwGAWk/I1Bg==",
2102+ "dev": true,
2103+ "optional": true
2104+ },
2105+ "@esbuild/win32-arm64": {
2106+ "version": "0.16.10",
2107+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.10.tgz",
2108+ "integrity": "sha512-+YYu5sbQ9npkNT9Dec+tn1F/kjg6SMgr6bfi/6FpXYZvCRfu2YFPZGb+3x8K30s8eRxFpoG4sGhiSUkr1xbHEw==",
2109+ "dev": true,
2110+ "optional": true
2111+ },
2112+ "@esbuild/win32-ia32": {
2113+ "version": "0.16.10",
2114+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.10.tgz",
2115+ "integrity": "sha512-Aw7Fupk7XNehR1ftHGYwUteyJ2q+em/aE+fVU3YMTBN2V5A7Z4aVCSV+SvCp9HIIHZavPFBpbdP3VfjQpdf6Xg==",
2116+ "dev": true,
2117+ "optional": true
2118+ },
2119+ "@esbuild/win32-x64": {
2120+ "version": "0.16.10",
2121+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.10.tgz",
2122+ "integrity": "sha512-qddWullt3sC1EIpfHvCRBq3H4g3L86DZpD6n8k2XFjFVyp01D++uNbN1hT/JRsHxTbyyemZcpwL5aRlJwc/zFw==",
2123+ "dev": true,
2124+ "optional": true
2125+ },
2126+ "@jridgewell/resolve-uri": {
2127+ "version": "3.1.0",
2128+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
2129+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
2130+ "dev": true
2131+ },
2132+ "@jridgewell/sourcemap-codec": {
2133+ "version": "1.4.14",
2134+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
2135+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
2136+ "dev": true
2137+ },
2138+ "@jridgewell/trace-mapping": {
2139+ "version": "0.3.17",
2140+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
2141+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
2142+ "dev": true,
2143+ "requires": {
2144+ "@jridgewell/resolve-uri": "3.1.0",
2145+ "@jridgewell/sourcemap-codec": "1.4.14"
2146+ }
2147+ },
2148+ "@nodelib/fs.scandir": {
2149+ "version": "2.1.5",
2150+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
2151+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
2152+ "dev": true,
2153+ "requires": {
2154+ "@nodelib/fs.stat": "2.0.5",
2155+ "run-parallel": "^1.1.9"
2156+ }
2157+ },
2158+ "@nodelib/fs.stat": {
2159+ "version": "2.0.5",
2160+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
2161+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
2162+ "dev": true
2163+ },
2164+ "@nodelib/fs.walk": {
2165+ "version": "1.2.8",
2166+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
2167+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
2168+ "dev": true,
2169+ "requires": {
2170+ "@nodelib/fs.scandir": "2.1.5",
2171+ "fastq": "^1.6.0"
2172+ }
2173+ },
2174+ "@sveltejs/vite-plugin-svelte": {
2175+ "version": "2.0.2",
2176+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.2.tgz",
2177+ "integrity": "sha512-xCEan0/NNpQuL0l5aS42FjwQ6wwskdxC3pW1OeFtEKNZwRg7Evro9lac9HesGP6TdFsTv2xMes5ASQVKbCacxg==",
2178+ "dev": true,
2179+ "requires": {
2180+ "debug": "^4.3.4",
2181+ "deepmerge": "^4.2.2",
2182+ "kleur": "^4.1.5",
2183+ "magic-string": "^0.27.0",
2184+ "svelte-hmr": "^0.15.1",
2185+ "vitefu": "^0.2.3"
2186+ }
2187+ },
2188+ "@tsconfig/svelte": {
2189+ "version": "3.0.0",
2190+ "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-3.0.0.tgz",
2191+ "integrity": "sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==",
2192+ "dev": true
2193+ },
2194+ "@types/node": {
2195+ "version": "18.11.17",
2196+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.17.tgz",
2197+ "integrity": "sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==",
2198+ "dev": true
2199+ },
2200+ "@types/pug": {
2201+ "version": "2.0.6",
2202+ "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz",
2203+ "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==",
2204+ "dev": true
2205+ },
2206+ "@types/sass": {
2207+ "version": "1.43.1",
2208+ "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz",
2209+ "integrity": "sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==",
2210+ "dev": true,
2211+ "requires": {
2212+ "@types/node": "*"
2213+ }
2214+ },
2215+ "acorn": {
2216+ "version": "7.4.1",
2217+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
2218+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
2219+ "dev": true
2220+ },
2221+ "acorn-node": {
2222+ "version": "1.8.2",
2223+ "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
2224+ "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
2225+ "dev": true,
2226+ "requires": {
2227+ "acorn": "^7.0.0",
2228+ "acorn-walk": "^7.0.0",
2229+ "xtend": "^4.0.2"
2230+ }
2231+ },
2232+ "acorn-walk": {
2233+ "version": "7.2.0",
2234+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
2235+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
2236+ "dev": true
2237+ },
2238+ "anymatch": {
2239+ "version": "3.1.3",
2240+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
2241+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
2242+ "dev": true,
2243+ "requires": {
2244+ "normalize-path": "^3.0.0",
2245+ "picomatch": "^2.0.4"
2246+ }
2247+ },
2248+ "arg": {
2249+ "version": "5.0.2",
2250+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
2251+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
2252+ "dev": true
2253+ },
2254+ "autoprefixer": {
2255+ "version": "10.4.13",
2256+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
2257+ "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
2258+ "dev": true,
2259+ "requires": {
2260+ "browserslist": "^4.21.4",
2261+ "caniuse-lite": "^1.0.30001426",
2262+ "fraction.js": "^4.2.0",
2263+ "normalize-range": "^0.1.2",
2264+ "picocolors": "^1.0.0",
2265+ "postcss-value-parser": "^4.2.0"
2266+ }
2267+ },
2268+ "balanced-match": {
2269+ "version": "1.0.2",
2270+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
2271+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
2272+ "dev": true
2273+ },
2274+ "binary-extensions": {
2275+ "version": "2.2.0",
2276+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
2277+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
2278+ "dev": true
2279+ },
2280+ "brace-expansion": {
2281+ "version": "1.1.11",
2282+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
2283+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
2284+ "dev": true,
2285+ "requires": {
2286+ "balanced-match": "^1.0.0",
2287+ "concat-map": "0.0.1"
2288+ }
2289+ },
2290+ "braces": {
2291+ "version": "3.0.2",
2292+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
2293+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
2294+ "dev": true,
2295+ "requires": {
2296+ "fill-range": "^7.0.1"
2297+ }
2298+ },
2299+ "browserslist": {
2300+ "version": "4.21.4",
2301+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
2302+ "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
2303+ "dev": true,
2304+ "requires": {
2305+ "caniuse-lite": "^1.0.30001400",
2306+ "electron-to-chromium": "^1.4.251",
2307+ "node-releases": "^2.0.6",
2308+ "update-browserslist-db": "^1.0.9"
2309+ }
2310+ },
2311+ "buffer-crc32": {
2312+ "version": "0.2.13",
2313+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
2314+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
2315+ "dev": true
2316+ },
2317+ "callsites": {
2318+ "version": "3.1.0",
2319+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
2320+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
2321+ "dev": true
2322+ },
2323+ "camelcase-css": {
2324+ "version": "2.0.1",
2325+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
2326+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
2327+ "dev": true
2328+ },
2329+ "caniuse-lite": {
2330+ "version": "1.0.30001439",
2331+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz",
2332+ "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==",
2333+ "dev": true
2334+ },
2335+ "chokidar": {
2336+ "version": "3.5.3",
2337+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
2338+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
2339+ "dev": true,
2340+ "requires": {
2341+ "anymatch": "~3.1.2",
2342+ "braces": "~3.0.2",
2343+ "fsevents": "~2.3.2",
2344+ "glob-parent": "~5.1.2",
2345+ "is-binary-path": "~2.1.0",
2346+ "is-glob": "~4.0.1",
2347+ "normalize-path": "~3.0.0",
2348+ "readdirp": "~3.6.0"
2349+ }
2350+ },
2351+ "color-name": {
2352+ "version": "1.1.4",
2353+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2354+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2355+ "dev": true
2356+ },
2357+ "concat-map": {
2358+ "version": "0.0.1",
2359+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2360+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
2361+ "dev": true
2362+ },
2363+ "cssesc": {
2364+ "version": "3.0.0",
2365+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
2366+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
2367+ "dev": true
2368+ },
2369+ "debug": {
2370+ "version": "4.3.4",
2371+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
2372+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
2373+ "dev": true,
2374+ "requires": {
2375+ "ms": "2.1.2"
2376+ }
2377+ },
2378+ "deepmerge": {
2379+ "version": "4.2.2",
2380+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
2381+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
2382+ "dev": true
2383+ },
2384+ "defined": {
2385+ "version": "1.0.1",
2386+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
2387+ "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==",
2388+ "dev": true
2389+ },
2390+ "detect-indent": {
2391+ "version": "6.1.0",
2392+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
2393+ "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
2394+ "dev": true
2395+ },
2396+ "detective": {
2397+ "version": "5.2.1",
2398+ "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
2399+ "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
2400+ "dev": true,
2401+ "requires": {
2402+ "acorn-node": "^1.8.2",
2403+ "defined": "^1.0.0",
2404+ "minimist": "^1.2.6"
2405+ }
2406+ },
2407+ "didyoumean": {
2408+ "version": "1.2.2",
2409+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
2410+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
2411+ "dev": true
2412+ },
2413+ "dlv": {
2414+ "version": "1.1.3",
2415+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
2416+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
2417+ "dev": true
2418+ },
2419+ "electron-to-chromium": {
2420+ "version": "1.4.284",
2421+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
2422+ "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
2423+ "dev": true
2424+ },
2425+ "es6-promise": {
2426+ "version": "3.3.1",
2427+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
2428+ "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==",
2429+ "dev": true
2430+ },
2431+ "esbuild": {
2432+ "version": "0.16.10",
2433+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.10.tgz",
2434+ "integrity": "sha512-z5dIViHoVnw2l+NCJ3zj5behdXjYvXne9gL18OOivCadXDUhyDkeSvEtLcGVAJW2fNmh33TDUpsi704XYlDodw==",
2435+ "dev": true,
2436+ "requires": {
2437+ "@esbuild/android-arm": "0.16.10",
2438+ "@esbuild/android-arm64": "0.16.10",
2439+ "@esbuild/android-x64": "0.16.10",
2440+ "@esbuild/darwin-arm64": "0.16.10",
2441+ "@esbuild/darwin-x64": "0.16.10",
2442+ "@esbuild/freebsd-arm64": "0.16.10",
2443+ "@esbuild/freebsd-x64": "0.16.10",
2444+ "@esbuild/linux-arm": "0.16.10",
2445+ "@esbuild/linux-arm64": "0.16.10",
2446+ "@esbuild/linux-ia32": "0.16.10",
2447+ "@esbuild/linux-loong64": "0.16.10",
2448+ "@esbuild/linux-mips64el": "0.16.10",
2449+ "@esbuild/linux-ppc64": "0.16.10",
2450+ "@esbuild/linux-riscv64": "0.16.10",
2451+ "@esbuild/linux-s390x": "0.16.10",
2452+ "@esbuild/linux-x64": "0.16.10",
2453+ "@esbuild/netbsd-x64": "0.16.10",
2454+ "@esbuild/openbsd-x64": "0.16.10",
2455+ "@esbuild/sunos-x64": "0.16.10",
2456+ "@esbuild/win32-arm64": "0.16.10",
2457+ "@esbuild/win32-ia32": "0.16.10",
2458+ "@esbuild/win32-x64": "0.16.10"
2459+ }
2460+ },
2461+ "escalade": {
2462+ "version": "3.1.1",
2463+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
2464+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
2465+ "dev": true
2466+ },
2467+ "fast-glob": {
2468+ "version": "3.2.12",
2469+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
2470+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
2471+ "dev": true,
2472+ "requires": {
2473+ "@nodelib/fs.stat": "^2.0.2",
2474+ "@nodelib/fs.walk": "^1.2.3",
2475+ "glob-parent": "^5.1.2",
2476+ "merge2": "^1.3.0",
2477+ "micromatch": "^4.0.4"
2478+ }
2479+ },
2480+ "fastq": {
2481+ "version": "1.14.0",
2482+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz",
2483+ "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
2484+ "dev": true,
2485+ "requires": {
2486+ "reusify": "^1.0.4"
2487+ }
2488+ },
2489+ "fill-range": {
2490+ "version": "7.0.1",
2491+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
2492+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
2493+ "dev": true,
2494+ "requires": {
2495+ "to-regex-range": "^5.0.1"
2496+ }
2497+ },
2498+ "fraction.js": {
2499+ "version": "4.2.0",
2500+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
2501+ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
2502+ "dev": true
2503+ },
2504+ "fs.realpath": {
2505+ "version": "1.0.0",
2506+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2507+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
2508+ "dev": true
2509+ },
2510+ "fsevents": {
2511+ "version": "2.3.2",
2512+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
2513+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
2514+ "dev": true,
2515+ "optional": true
2516+ },
2517+ "function-bind": {
2518+ "version": "1.1.1",
2519+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
2520+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
2521+ "dev": true
2522+ },
2523+ "glob": {
2524+ "version": "7.2.3",
2525+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
2526+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
2527+ "dev": true,
2528+ "requires": {
2529+ "fs.realpath": "^1.0.0",
2530+ "inflight": "^1.0.4",
2531+ "inherits": "2",
2532+ "minimatch": "^3.1.1",
2533+ "once": "^1.3.0",
2534+ "path-is-absolute": "^1.0.0"
2535+ }
2536+ },
2537+ "glob-parent": {
2538+ "version": "5.1.2",
2539+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
2540+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
2541+ "dev": true,
2542+ "requires": {
2543+ "is-glob": "^4.0.1"
2544+ }
2545+ },
2546+ "graceful-fs": {
2547+ "version": "4.2.10",
2548+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
2549+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
2550+ "dev": true
2551+ },
2552+ "has": {
2553+ "version": "1.0.3",
2554+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
2555+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
2556+ "dev": true,
2557+ "requires": {
2558+ "function-bind": "^1.1.1"
2559+ }
2560+ },
2561+ "import-fresh": {
2562+ "version": "3.3.0",
2563+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
2564+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
2565+ "dev": true,
2566+ "requires": {
2567+ "parent-module": "^1.0.0",
2568+ "resolve-from": "^4.0.0"
2569+ }
2570+ },
2571+ "inflight": {
2572+ "version": "1.0.6",
2573+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2574+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
2575+ "dev": true,
2576+ "requires": {
2577+ "once": "^1.3.0",
2578+ "wrappy": "1"
2579+ }
2580+ },
2581+ "inherits": {
2582+ "version": "2.0.4",
2583+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2584+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2585+ "dev": true
2586+ },
2587+ "is-binary-path": {
2588+ "version": "2.1.0",
2589+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
2590+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
2591+ "dev": true,
2592+ "requires": {
2593+ "binary-extensions": "^2.0.0"
2594+ }
2595+ },
2596+ "is-core-module": {
2597+ "version": "2.11.0",
2598+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
2599+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
2600+ "dev": true,
2601+ "requires": {
2602+ "has": "^1.0.3"
2603+ }
2604+ },
2605+ "is-extglob": {
2606+ "version": "2.1.1",
2607+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2608+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
2609+ "dev": true
2610+ },
2611+ "is-glob": {
2612+ "version": "4.0.3",
2613+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
2614+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
2615+ "dev": true,
2616+ "requires": {
2617+ "is-extglob": "^2.1.1"
2618+ }
2619+ },
2620+ "is-number": {
2621+ "version": "7.0.0",
2622+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
2623+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
2624+ "dev": true
2625+ },
2626+ "kleur": {
2627+ "version": "4.1.5",
2628+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
2629+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
2630+ "dev": true
2631+ },
2632+ "lilconfig": {
2633+ "version": "2.0.6",
2634+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
2635+ "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==",
2636+ "dev": true
2637+ },
2638+ "magic-string": {
2639+ "version": "0.27.0",
2640+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
2641+ "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
2642+ "dev": true,
2643+ "requires": {
2644+ "@jridgewell/sourcemap-codec": "^1.4.13"
2645+ }
2646+ },
2647+ "merge2": {
2648+ "version": "1.4.1",
2649+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
2650+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
2651+ "dev": true
2652+ },
2653+ "micromatch": {
2654+ "version": "4.0.5",
2655+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
2656+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
2657+ "dev": true,
2658+ "requires": {
2659+ "braces": "^3.0.2",
2660+ "picomatch": "^2.3.1"
2661+ }
2662+ },
2663+ "min-indent": {
2664+ "version": "1.0.1",
2665+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
2666+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
2667+ "dev": true
2668+ },
2669+ "minimatch": {
2670+ "version": "3.1.2",
2671+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2672+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2673+ "dev": true,
2674+ "requires": {
2675+ "brace-expansion": "^1.1.7"
2676+ }
2677+ },
2678+ "minimist": {
2679+ "version": "1.2.7",
2680+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
2681+ "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
2682+ "dev": true
2683+ },
2684+ "mkdirp": {
2685+ "version": "0.5.6",
2686+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
2687+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
2688+ "dev": true,
2689+ "requires": {
2690+ "minimist": "^1.2.6"
2691+ }
2692+ },
2693+ "mri": {
2694+ "version": "1.2.0",
2695+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
2696+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
2697+ "dev": true
2698+ },
2699+ "ms": {
2700+ "version": "2.1.2",
2701+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2702+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2703+ "dev": true
2704+ },
2705+ "nanoid": {
2706+ "version": "3.3.4",
2707+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
2708+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
2709+ "dev": true
2710+ },
2711+ "node-releases": {
2712+ "version": "2.0.8",
2713+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
2714+ "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==",
2715+ "dev": true
2716+ },
2717+ "normalize-path": {
2718+ "version": "3.0.0",
2719+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
2720+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
2721+ "dev": true
2722+ },
2723+ "normalize-range": {
2724+ "version": "0.1.2",
2725+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
2726+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
2727+ "dev": true
2728+ },
2729+ "object-hash": {
2730+ "version": "3.0.0",
2731+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
2732+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
2733+ "dev": true
2734+ },
2735+ "once": {
2736+ "version": "1.4.0",
2737+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2738+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
2739+ "dev": true,
2740+ "requires": {
2741+ "wrappy": "1"
2742+ }
2743+ },
2744+ "parent-module": {
2745+ "version": "1.0.1",
2746+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2747+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2748+ "dev": true,
2749+ "requires": {
2750+ "callsites": "^3.0.0"
2751+ }
2752+ },
2753+ "path-is-absolute": {
2754+ "version": "1.0.1",
2755+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2756+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
2757+ "dev": true
2758+ },
2759+ "path-parse": {
2760+ "version": "1.0.7",
2761+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
2762+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
2763+ "dev": true
2764+ },
2765+ "picocolors": {
2766+ "version": "1.0.0",
2767+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
2768+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
2769+ "dev": true
2770+ },
2771+ "picomatch": {
2772+ "version": "2.3.1",
2773+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2774+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2775+ "dev": true
2776+ },
2777+ "pify": {
2778+ "version": "2.3.0",
2779+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2780+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
2781+ "dev": true
2782+ },
2783+ "postcss": {
2784+ "version": "8.4.20",
2785+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz",
2786+ "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==",
2787+ "dev": true,
2788+ "requires": {
2789+ "nanoid": "^3.3.4",
2790+ "picocolors": "^1.0.0",
2791+ "source-map-js": "^1.0.2"
2792+ }
2793+ },
2794+ "postcss-import": {
2795+ "version": "15.1.0",
2796+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
2797+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
2798+ "dev": true,
2799+ "requires": {
2800+ "postcss-value-parser": "^4.0.0",
2801+ "read-cache": "^1.0.0",
2802+ "resolve": "^1.1.7"
2803+ }
2804+ },
2805+ "postcss-js": {
2806+ "version": "4.0.0",
2807+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz",
2808+ "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==",
2809+ "dev": true,
2810+ "requires": {
2811+ "camelcase-css": "^2.0.1"
2812+ }
2813+ },
2814+ "postcss-load-config": {
2815+ "version": "3.1.4",
2816+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
2817+ "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
2818+ "dev": true,
2819+ "requires": {
2820+ "lilconfig": "^2.0.5",
2821+ "yaml": "^1.10.2"
2822+ }
2823+ },
2824+ "postcss-nested": {
2825+ "version": "6.0.0",
2826+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz",
2827+ "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==",
2828+ "dev": true,
2829+ "requires": {
2830+ "postcss-selector-parser": "^6.0.10"
2831+ }
2832+ },
2833+ "postcss-selector-parser": {
2834+ "version": "6.0.11",
2835+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
2836+ "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
2837+ "dev": true,
2838+ "requires": {
2839+ "cssesc": "^3.0.0",
2840+ "util-deprecate": "^1.0.2"
2841+ }
2842+ },
2843+ "postcss-value-parser": {
2844+ "version": "4.2.0",
2845+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
2846+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
2847+ "dev": true
2848+ },
2849+ "queue-microtask": {
2850+ "version": "1.2.3",
2851+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
2852+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
2853+ "dev": true
2854+ },
2855+ "quick-lru": {
2856+ "version": "5.1.1",
2857+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
2858+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
2859+ "dev": true
2860+ },
2861+ "read-cache": {
2862+ "version": "1.0.0",
2863+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
2864+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
2865+ "dev": true,
2866+ "requires": {
2867+ "pify": "^2.3.0"
2868+ }
2869+ },
2870+ "readdirp": {
2871+ "version": "3.6.0",
2872+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
2873+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
2874+ "dev": true,
2875+ "requires": {
2876+ "picomatch": "^2.2.1"
2877+ }
2878+ },
2879+ "resolve": {
2880+ "version": "1.22.1",
2881+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
2882+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
2883+ "dev": true,
2884+ "requires": {
2885+ "is-core-module": "^2.9.0",
2886+ "path-parse": "^1.0.7",
2887+ "supports-preserve-symlinks-flag": "^1.0.0"
2888+ }
2889+ },
2890+ "resolve-from": {
2891+ "version": "4.0.0",
2892+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2893+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2894+ "dev": true
2895+ },
2896+ "reusify": {
2897+ "version": "1.0.4",
2898+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
2899+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
2900+ "dev": true
2901+ },
2902+ "rimraf": {
2903+ "version": "2.7.1",
2904+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
2905+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
2906+ "dev": true,
2907+ "requires": {
2908+ "glob": "^7.1.3"
2909+ }
2910+ },
2911+ "rollup": {
2912+ "version": "3.7.5",
2913+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.7.5.tgz",
2914+ "integrity": "sha512-z0ZbqHBtS/et2EEUKMrAl2CoSdwN7ZPzL17UMiKN9RjjqHShTlv7F9J6ZJZJNREYjBh3TvBrdfjkFDIXFNeuiQ==",
2915+ "dev": true,
2916+ "requires": {
2917+ "fsevents": "~2.3.2"
2918+ }
2919+ },
2920+ "run-parallel": {
2921+ "version": "1.2.0",
2922+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
2923+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
2924+ "dev": true,
2925+ "requires": {
2926+ "queue-microtask": "^1.2.2"
2927+ }
2928+ },
2929+ "sade": {
2930+ "version": "1.8.1",
2931+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
2932+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
2933+ "dev": true,
2934+ "requires": {
2935+ "mri": "^1.1.0"
2936+ }
2937+ },
2938+ "sander": {
2939+ "version": "0.5.1",
2940+ "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
2941+ "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==",
2942+ "dev": true,
2943+ "requires": {
2944+ "es6-promise": "^3.1.2",
2945+ "graceful-fs": "^4.1.3",
2946+ "mkdirp": "^0.5.1",
2947+ "rimraf": "^2.5.2"
2948+ }
2949+ },
2950+ "sorcery": {
2951+ "version": "0.10.0",
2952+ "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz",
2953+ "integrity": "sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g==",
2954+ "dev": true,
2955+ "requires": {
2956+ "buffer-crc32": "^0.2.5",
2957+ "minimist": "^1.2.0",
2958+ "sander": "^0.5.0",
2959+ "sourcemap-codec": "^1.3.0"
2960+ }
2961+ },
2962+ "source-map-js": {
2963+ "version": "1.0.2",
2964+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
2965+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
2966+ "dev": true
2967+ },
2968+ "sourcemap-codec": {
2969+ "version": "1.4.8",
2970+ "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
2971+ "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
2972+ "dev": true
2973+ },
2974+ "strip-indent": {
2975+ "version": "3.0.0",
2976+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
2977+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
2978+ "dev": true,
2979+ "requires": {
2980+ "min-indent": "^1.0.0"
2981+ }
2982+ },
2983+ "supports-preserve-symlinks-flag": {
2984+ "version": "1.0.0",
2985+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
2986+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
2987+ "dev": true
2988+ },
2989+ "svelte": {
2990+ "version": "3.55.0",
2991+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.55.0.tgz",
2992+ "integrity": "sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA==",
2993+ "dev": true
2994+ },
2995+ "svelte-check": {
2996+ "version": "2.10.3",
2997+ "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-2.10.3.tgz",
2998+ "integrity": "sha512-Nt1aWHTOKFReBpmJ1vPug0aGysqPwJh2seM1OvICfM2oeyaA62mOiy5EvkXhltGfhCcIQcq2LoE0l1CwcWPjlw==",
2999+ "dev": true,
3000+ "requires": {
3001+ "@jridgewell/trace-mapping": "^0.3.9",
3002+ "chokidar": "^3.4.1",
3003+ "fast-glob": "^3.2.7",
3004+ "import-fresh": "^3.2.1",
3005+ "picocolors": "^1.0.0",
3006+ "sade": "^1.7.4",
3007+ "svelte-preprocess": "^4.0.0",
3008+ "typescript": "*"
3009+ }
3010+ },
3011+ "svelte-hmr": {
3012+ "version": "0.15.1",
3013+ "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz",
3014+ "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==",
3015+ "dev": true,
3016+ "requires": {}
3017+ },
3018+ "svelte-preprocess": {
3019+ "version": "4.10.7",
3020+ "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz",
3021+ "integrity": "sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==",
3022+ "dev": true,
3023+ "requires": {
3024+ "@types/pug": "^2.0.4",
3025+ "@types/sass": "^1.16.0",
3026+ "detect-indent": "^6.0.0",
3027+ "magic-string": "^0.25.7",
3028+ "sorcery": "^0.10.0",
3029+ "strip-indent": "^3.0.0"
3030+ },
3031+ "dependencies": {
3032+ "magic-string": {
3033+ "version": "0.25.9",
3034+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
3035+ "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
3036+ "dev": true,
3037+ "requires": {
3038+ "sourcemap-codec": "^1.4.8"
3039+ }
3040+ }
3041+ }
3042+ },
3043+ "tailwindcss": {
3044+ "version": "3.2.4",
3045+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz",
3046+ "integrity": "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==",
3047+ "dev": true,
3048+ "requires": {
3049+ "arg": "^5.0.2",
3050+ "chokidar": "^3.5.3",
3051+ "color-name": "^1.1.4",
3052+ "detective": "^5.2.1",
3053+ "didyoumean": "^1.2.2",
3054+ "dlv": "^1.1.3",
3055+ "fast-glob": "^3.2.12",
3056+ "glob-parent": "^6.0.2",
3057+ "is-glob": "^4.0.3",
3058+ "lilconfig": "^2.0.6",
3059+ "micromatch": "^4.0.5",
3060+ "normalize-path": "^3.0.0",
3061+ "object-hash": "^3.0.0",
3062+ "picocolors": "^1.0.0",
3063+ "postcss": "^8.4.18",
3064+ "postcss-import": "^14.1.0",
3065+ "postcss-js": "^4.0.0",
3066+ "postcss-load-config": "^3.1.4",
3067+ "postcss-nested": "6.0.0",
3068+ "postcss-selector-parser": "^6.0.10",
3069+ "postcss-value-parser": "^4.2.0",
3070+ "quick-lru": "^5.1.1",
3071+ "resolve": "^1.22.1"
3072+ },
3073+ "dependencies": {
3074+ "glob-parent": {
3075+ "version": "6.0.2",
3076+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
3077+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
3078+ "dev": true,
3079+ "requires": {
3080+ "is-glob": "^4.0.3"
3081+ }
3082+ },
3083+ "postcss-import": {
3084+ "version": "14.1.0",
3085+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz",
3086+ "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==",
3087+ "dev": true,
3088+ "requires": {
3089+ "postcss-value-parser": "^4.0.0",
3090+ "read-cache": "^1.0.0",
3091+ "resolve": "^1.1.7"
3092+ }
3093+ }
3094+ }
3095+ },
3096+ "to-regex-range": {
3097+ "version": "5.0.1",
3098+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3099+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3100+ "dev": true,
3101+ "requires": {
3102+ "is-number": "^7.0.0"
3103+ }
3104+ },
3105+ "tslib": {
3106+ "version": "2.4.1",
3107+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
3108+ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==",
3109+ "dev": true
3110+ },
3111+ "typescript": {
3112+ "version": "4.9.4",
3113+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
3114+ "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
3115+ "dev": true
3116+ },
3117+ "update-browserslist-db": {
3118+ "version": "1.0.10",
3119+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
3120+ "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
3121+ "dev": true,
3122+ "requires": {
3123+ "escalade": "^3.1.1",
3124+ "picocolors": "^1.0.0"
3125+ }
3126+ },
3127+ "util-deprecate": {
3128+ "version": "1.0.2",
3129+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3130+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
3131+ "dev": true
3132+ },
3133+ "vite": {
3134+ "version": "4.0.2",
3135+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.2.tgz",
3136+ "integrity": "sha512-QJaY3R+tFlTagH0exVqbgkkw45B+/bXVBzF2ZD1KB5Z8RiAoiKo60vSUf6/r4c2Vh9jfGBKM4oBI9b4/1ZJYng==",
3137+ "dev": true,
3138+ "requires": {
3139+ "esbuild": "^0.16.3",
3140+ "fsevents": "~2.3.2",
3141+ "postcss": "^8.4.20",
3142+ "resolve": "^1.22.1",
3143+ "rollup": "^3.7.0"
3144+ }
3145+ },
3146+ "vitefu": {
3147+ "version": "0.2.4",
3148+ "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz",
3149+ "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==",
3150+ "dev": true,
3151+ "requires": {}
3152+ },
3153+ "wrappy": {
3154+ "version": "1.0.2",
3155+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3156+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
3157+ "dev": true
3158+ },
3159+ "xtend": {
3160+ "version": "4.0.2",
3161+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
3162+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
3163+ "dev": true
3164+ },
3165+ "yaml": {
3166+ "version": "1.10.2",
3167+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
3168+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
3169+ "dev": true
3170+ }
3171+ }
3172+}
+24-0frontend/package.json
@@ -0,0 +1,24 @@
1+{
2+ "name": "frontend",
3+ "private": true,
4+ "version": "0.0.0",
5+ "type": "module",
6+ "scripts": {
7+ "dev": "vite",
8+ "build": "vite build",
9+ "preview": "vite preview",
10+ "check": "svelte-check --tsconfig ./tsconfig.json"
11+ },
12+ "devDependencies": {
13+ "@sveltejs/vite-plugin-svelte": "^2.0.0",
14+ "@tsconfig/svelte": "^3.0.0",
15+ "autoprefixer": "^10.4.13",
16+ "postcss-import": "^15.1.0",
17+ "svelte": "^3.54.0",
18+ "svelte-check": "^2.10.0",
19+ "tailwindcss": "^3.2.4",
20+ "tslib": "^2.4.1",
21+ "typescript": "^4.9.3",
22+ "vite": "^4.0.0"
23+ }
24+}
+6-0frontend/postcss.config.cjs
@@ -0,0 +1,6 @@
1+module.exports = {
2+ plugins: {
3+ tailwindcss: {},
4+ autoprefixer: {},
5+ },
6+};
+1-0frontend/public/vite.svg
@@ -0,0 +1 @@
1+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
+47-0frontend/src/App.svelte
@@ -0,0 +1,47 @@
1+<script lang="ts">
2+ import svelteLogo from "./assets/svelte.svg";
3+ import Counter from "./lib/Counter.svelte";
4+</script>
5+
6+<main>
7+ <div class="flex justify-around">
8+ <a href="https://vitejs.dev" target="_blank" rel="noreferrer">
9+ <img src="/vite.svg" class="logo" alt="Vite Logo" />
10+ </a>
11+ <a href="https://svelte.dev" target="_blank" rel="noreferrer">
12+ <img src={svelteLogo} class="logo svelte" alt="Svelte Logo" />
13+ </a>
14+ </div>
15+ <h1>Vite + Svelte</h1>
16+
17+ <div class="card">
18+ <Counter />
19+ </div>
20+
21+ <p>
22+ Check out <a
23+ href="https://github.com/sveltejs/kit#readme"
24+ target="_blank"
25+ rel="noreferrer">SvelteKit</a
26+ >, the official Svelte app framework powered by Vite!
27+ </p>
28+
29+ <p class="read-the-docs">Click on the Vite and Svelte logos to learn more</p>
30+</main>
31+
32+<style>
33+ .logo {
34+ height: 6em;
35+ padding: 1.5em;
36+ will-change: filter;
37+ }
38+ .logo:hover {
39+ filter: drop-shadow(0 0 2em #646cffaa);
40+ }
41+ .logo.svelte:hover {
42+ filter: drop-shadow(0 0 2em #ff3e00aa);
43+ }
44+ .read-the-docs {
45+ color: #888;
46+ }
47+</style>
+85-0frontend/src/app.css
@@ -0,0 +1,85 @@
1+@tailwind base;
2+@tailwind components;
3+@tailwind utilities;
4+
5+:root {
6+ font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
7+ font-size: 16px;
8+ line-height: 24px;
9+ font-weight: 400;
10+
11+ color-scheme: light dark;
12+ color: rgba(255, 255, 255, 0.87);
13+ background-color: #242424;
14+
15+ font-synthesis: none;
16+ text-rendering: optimizeLegibility;
17+ -webkit-font-smoothing: antialiased;
18+ -moz-osx-font-smoothing: grayscale;
19+ -webkit-text-size-adjust: 100%;
20+}
21+
22+a {
23+ font-weight: 500;
24+ color: #646cff;
25+ text-decoration: inherit;
26+}
27+a:hover {
28+ color: #535bf2;
29+}
30+
31+body {
32+ margin: 0;
33+ display: flex;
34+ place-items: center;
35+ min-width: 320px;
36+ min-height: 100vh;
37+}
38+
39+h1 {
40+ font-size: 3.2em;
41+ line-height: 1.1;
42+}
43+
44+.card {
45+ padding: 2em;
46+}
47+
48+#app {
49+ max-width: 1280px;
50+ margin: 0 auto;
51+ padding: 2rem;
52+ text-align: center;
53+}
54+
55+button {
56+ border-radius: 8px;
57+ border: 1px solid transparent;
58+ padding: 0.6em 1.2em;
59+ font-size: 1em;
60+ font-weight: 500;
61+ font-family: inherit;
62+ background-color: #1a1a1a;
63+ cursor: pointer;
64+ transition: border-color 0.25s;
65+}
66+button:hover {
67+ border-color: #646cff;
68+}
69+button:focus,
70+button:focus-visible {
71+ outline: 4px auto -webkit-focus-ring-color;
72+}
73+
74+@media (prefers-color-scheme: light) {
75+ :root {
76+ color: #213547;
77+ background-color: #ffffff;
78+ }
79+ a:hover {
80+ color: #747bff;
81+ }
82+ button {
83+ background-color: #f9f9f9;
84+ }
85+}
+1-0frontend/src/assets/svelte.svg
@@ -0,0 +1 @@
1+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="26.6" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 308"><path fill="#FF3E00" d="M239.682 40.707C211.113-.182 154.69-12.301 113.895 13.69L42.247 59.356a82.198 82.198 0 0 0-37.135 55.056a86.566 86.566 0 0 0 8.536 55.576a82.425 82.425 0 0 0-12.296 30.719a87.596 87.596 0 0 0 14.964 66.244c28.574 40.893 84.997 53.007 125.787 27.016l71.648-45.664a82.182 82.182 0 0 0 37.135-55.057a86.601 86.601 0 0 0-8.53-55.577a82.409 82.409 0 0 0 12.29-30.718a87.573 87.573 0 0 0-14.963-66.244"></path><path fill="#FFF" d="M106.889 270.841c-23.102 6.007-47.497-3.036-61.103-22.648a52.685 52.685 0 0 1-9.003-39.85a49.978 49.978 0 0 1 1.713-6.693l1.35-4.115l3.671 2.697a92.447 92.447 0 0 0 28.036 14.007l2.663.808l-.245 2.659a16.067 16.067 0 0 0 2.89 10.656a17.143 17.143 0 0 0 18.397 6.828a15.786 15.786 0 0 0 4.403-1.935l71.67-45.672a14.922 14.922 0 0 0 6.734-9.977a15.923 15.923 0 0 0-2.713-12.011a17.156 17.156 0 0 0-18.404-6.832a15.78 15.78 0 0 0-4.396 1.933l-27.35 17.434a52.298 52.298 0 0 1-14.553 6.391c-23.101 6.007-47.497-3.036-61.101-22.649a52.681 52.681 0 0 1-9.004-39.849a49.428 49.428 0 0 1 22.34-33.114l71.664-45.677a52.218 52.218 0 0 1 14.563-6.398c23.101-6.007 47.497 3.036 61.101 22.648a52.685 52.685 0 0 1 9.004 39.85a50.559 50.559 0 0 1-1.713 6.692l-1.35 4.116l-3.67-2.693a92.373 92.373 0 0 0-28.037-14.013l-2.664-.809l.246-2.658a16.099 16.099 0 0 0-2.89-10.656a17.143 17.143 0 0 0-18.398-6.828a15.786 15.786 0 0 0-4.402 1.935l-71.67 45.674a14.898 14.898 0 0 0-6.73 9.975a15.9 15.9 0 0 0 2.709 12.012a17.156 17.156 0 0 0 18.404 6.832a15.841 15.841 0 0 0 4.402-1.935l27.345-17.427a52.147 52.147 0 0 1 14.552-6.397c23.101-6.006 47.497 3.037 61.102 22.65a52.681 52.681 0 0 1 9.003 39.848a49.453 49.453 0 0 1-22.34 33.12l-71.664 45.673a52.218 52.218 0 0 1-14.563 6.398"></path></svg>
+10-0frontend/src/lib/Counter.svelte
@@ -0,0 +1,10 @@
1+<script lang="ts">
2+ let count: number = 0
3+ const increment = () => {
4+ count += 1
5+ }
6+</script>
7+
8+<button on:click={increment}>
9+ count is {count}
10+</button>
+8-0frontend/src/main.ts
@@ -0,0 +1,8 @@
1+import './app.css'
2+import App from './App.svelte'
3+
4+const app = new App({
5+ target: document.getElementById('app'),
6+})
7+
8+export default app
+2-0frontend/src/vite-env.d.ts
@@ -0,0 +1,2 @@
1+/// <reference types="svelte" />
2+/// <reference types="vite/client" />
+7-0frontend/svelte.config.js
@@ -0,0 +1,7 @@
1+import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
2+
3+export default {
4+ // Consult https://svelte.dev/docs#compile-time-svelte-preprocess
5+ // for more information about preprocessors
6+ preprocess: vitePreprocess(),
7+}
+8-0frontend/tailwind.config.cjs
@@ -0,0 +1,8 @@
1+/** @type {import('tailwindcss').Config} */
2+module.exports = {
3+ content: ["./src/**/*.{html,js,svelte,ts}"],
4+ theme: {
5+ extend: {},
6+ },
7+ plugins: [],
8+};
+20-0frontend/tsconfig.json
@@ -0,0 +1,20 @@
1+{
2+ "extends": "@tsconfig/svelte/tsconfig.json",
3+ "compilerOptions": {
4+ "target": "ESNext",
5+ "useDefineForClassFields": true,
6+ "module": "ESNext",
7+ "resolveJsonModule": true,
8+ /**
9+ * Typecheck JS in `.svelte` and `.js` files by default.
10+ * Disable checkJs if you'd like to use dynamic types in JS.
11+ * Note that setting allowJs false does not prevent the use
12+ * of JS in `.svelte` files.
13+ */
14+ "allowJs": true,
15+ "checkJs": true,
16+ "isolatedModules": true
17+ },
18+ "include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"],
19+ "references": [{ "path": "./tsconfig.node.json" }]
20+}
+8-0frontend/tsconfig.node.json
@@ -0,0 +1,8 @@
1+{
2+ "compilerOptions": {
3+ "composite": true,
4+ "module": "ESNext",
5+ "moduleResolution": "Node"
6+ },
7+ "include": ["vite.config.ts"]
8+}
+7-0frontend/vite.config.ts
@@ -0,0 +1,7 @@
1+import { defineConfig } from 'vite'
2+import { svelte } from '@sveltejs/vite-plugin-svelte'
3+
4+// https://vitejs.dev/config/
5+export default defineConfig({
6+ plugins: [svelte()],
7+})
+8-0start.sh
@@ -0,0 +1,8 @@
1+#!/bin/bash
2+python create_secret_key.py
3+
4+cd frontend
5+npm run build
6+
7+cd ../backend
8+python manage.py runserver