diff --git a/.deepsource.toml b/.deepsource.toml
new file mode 100644
index 0000000..d0af769
--- /dev/null
+++ b/.deepsource.toml
@@ -0,0 +1,22 @@
+version = 1
+test_patterns = ["classquiz/tests/**", "test_*.py"]
+
+
+[[analyzers]]
+name = "python"
+enabled = true
+
+ [analyzers.meta]
+ runtime_version = "3.x.x"
+
+[[analyzers]]
+name = "javascript"
+enabled = true
+
+[[analyzers]]
+name = "test-coverage"
+enabled = true
+
+[[transformers]]
+name = "black"
+enabled = true
diff --git a/.flake8 b/.flake8
new file mode 100644
index 0000000..51d5a5c
--- /dev/null
+++ b/.flake8
@@ -0,0 +1,3 @@
+[flake8]
+max-line-length = 120
+extend-ignore = E203
\ No newline at end of file
diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml
new file mode 100644
index 0000000..c76d27c
--- /dev/null
+++ b/.github/workflows/pytest.yml
@@ -0,0 +1,47 @@
+# .github/workflows/app.yaml
+name: PyTest
+on:
+ push:
+ paths:
+ - "classquiz/tests/**"
+ - "classquiz/kahoot_importer/**"
+ - "classquiz/storage/**"
+ workflow_dispatch:
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+
+ steps:
+ - name: Check out repository code
+ uses: actions/checkout@v2
+ - name: Install pipenv
+ run: pipx install pipenv
+
+ # Setup Python (faster than using Python container)
+ - name: Setup Python
+ uses: actions/setup-python@v3
+ with:
+ python-version: "3.10"
+ cache: 'pipenv'
+ - run: pipenv install --dev
+ - name: Prepare tests
+ run: |
+ echo ${{ secrets.DOTENV }} | base64 --decode > .env
+ set -o allexport; source .env; set +o allexport
+ mkdir /tmp/storage/
+ - name: Run tests
+ run: |
+ pipenv run coverage run -m pytest --asyncio-mode=strict classquiz/tests
+ pipenv run coverage xml
+ - name: Report results to DeepSource
+ run: |
+ # Install deepsource CLI
+ curl https://deepsource.io/cli | sh
+
+ # From the root directory, run the report coverage command
+ ./bin/deepsource report --analyzer test-coverage --key python --value-file ./coverage.xml
+
+ env:
+ DEEPSOURCE_DSN: ${{ secrets.DEEPSOURCE_DSN }}
diff --git a/Pipfile b/Pipfile
index 2302a72..dc9527d 100644
--- a/Pipfile
+++ b/Pipfile
@@ -27,6 +27,8 @@ aiofiles = "*"
coverage = "*"
pytest = "*"
pytest-asyncio = "*"
+flake8 = "*"
+black = "*"
[requires]
python_version = "3.10"
diff --git a/Pipfile.lock b/Pipfile.lock
index 1818a97..1018ce8 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
- "sha256": "b5be758b4e3beeea1b5552ecb2fcb275e660a7ba8f0c8f7f8afb1d0a877aa73b"
+ "sha256": "075e07880b28878645b61e807c6091ae0ecdef50b3486e047aa853023fc2ae33"
},
"pipfile-spec": 6,
"requires": {
@@ -299,7 +299,7 @@
"sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597",
"sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
],
- "markers": "python_full_version >= '3.5.0'",
+ "markers": "python_version >= '3.5'",
"version": "==2.0.12"
},
"click": {
@@ -331,7 +331,7 @@
"sha256:0f7569a4a6ff151958b64304071d370daa3243d15941a7beedf0c9fe5105603e",
"sha256:a851e51367fb93e9e1361732c1d60dab63eff98712e503ea7d92e6eccb109b4f"
],
- "markers": "python_version >= '3.6' and python_version < '4.0'",
+ "markers": "python_version >= '3.6' and python_version < '4'",
"version": "==2.2.1"
},
"ecdsa": {
@@ -544,7 +544,7 @@
"sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff",
"sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"
],
- "markers": "python_full_version >= '3.5.0'",
+ "markers": "python_version >= '3.5'",
"version": "==3.3"
},
"jinja2": {
@@ -922,18 +922,18 @@
},
"redis": {
"hashes": [
- "sha256:69d05fac17bf3f43937afbb775c536eb516bd21355a4f17d59a966f4a531ce71",
- "sha256:fe45513881229dbee610620b9e0817b1f48c47ba635870320fd44a712204bbdd"
+ "sha256:0107dc8e98a4f1d1d4aa00100e044287f77121a1e6d2085545c4b7fa94a7a27f",
+ "sha256:4e95f4ec5f49e636efcf20061a5a9110c20852f607cfca6865c07aaa8a739ee2"
],
"index": "pypi",
- "version": "==4.2.1"
+ "version": "==4.2.2"
},
"rsa": {
"hashes": [
"sha256:5c6bd9dc7a543b7fe4304a631f8a8a3b674e2bbfc49c2ae96200cdbe55df6b17",
"sha256:95c5d300c4e879ee69708c428ba566c59478fd653cc3a22243eeb8ed846950bb"
],
- "markers": "python_version >= '3.6' and python_version < '4.0'",
+ "markers": "python_version >= '3.6' and python_version < '4'",
"version": "==4.8"
},
"sentry-sdk": {
@@ -946,11 +946,11 @@
},
"setuptools": {
"hashes": [
- "sha256:41aface2e85b517c3a466b4689b8055c02cd2e623461f09af7d93f3da65c4709",
- "sha256:88fafba4abc2f047e08a188fd4bbc10b0e464592c37b514c19f8f8f88d94450b"
+ "sha256:7999cbd87f1b6e1f33bf47efa368b224bed5e27b5ef2c4d46580186cbcb1a86a",
+ "sha256:a65e3802053e99fc64c6b3b29c11132943d5b8c8facbcc461157511546510967"
],
"markers": "python_version >= '3.7'",
- "version": "==61.3.1"
+ "version": "==62.0.0"
},
"six": {
"hashes": [
@@ -965,7 +965,7 @@
"sha256:471b71698eac1c2112a40ce2752bb2f4a4814c22a54a3eed3676bc0f5ca9f663",
"sha256:c4666eecec1d3f50960c6bdf61ab7bc350648da6c126e3cf6898d8cd4ddcd3de"
],
- "markers": "python_full_version >= '3.5.0'",
+ "markers": "python_version >= '3.5'",
"version": "==1.2.0"
},
"sqlalchemy": {
@@ -1031,7 +1031,7 @@
"sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14",
"sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"
],
- "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4.0'",
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
"version": "==1.26.9"
},
"uvicorn": {
@@ -1284,6 +1284,43 @@
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==21.4.0"
},
+ "black": {
+ "hashes": [
+ "sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b",
+ "sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176",
+ "sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09",
+ "sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a",
+ "sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015",
+ "sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79",
+ "sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb",
+ "sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20",
+ "sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464",
+ "sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968",
+ "sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82",
+ "sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21",
+ "sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0",
+ "sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265",
+ "sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b",
+ "sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a",
+ "sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72",
+ "sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce",
+ "sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0",
+ "sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a",
+ "sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163",
+ "sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad",
+ "sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d"
+ ],
+ "index": "pypi",
+ "version": "==22.3.0"
+ },
+ "click": {
+ "hashes": [
+ "sha256:24e1a4a9ec5bf6299411369b208c1df2188d9eb8d916302fe6bf03faed227f1e",
+ "sha256:479707fe14d9ec9a0757618b7a100a0ae4c4e236fac5b7f80ca68028141a1a72"
+ ],
+ "markers": "python_version >= '3.7'",
+ "version": "==8.1.2"
+ },
"coverage": {
"hashes": [
"sha256:03e2a7826086b91ef345ff18742ee9fc47a6839ccd517061ef8fa1976e652ce9",
@@ -1331,6 +1368,14 @@
"index": "pypi",
"version": "==6.3.2"
},
+ "flake8": {
+ "hashes": [
+ "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d",
+ "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"
+ ],
+ "index": "pypi",
+ "version": "==4.0.1"
+ },
"iniconfig": {
"hashes": [
"sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3",
@@ -1338,6 +1383,20 @@
],
"version": "==1.1.1"
},
+ "mccabe": {
+ "hashes": [
+ "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42",
+ "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"
+ ],
+ "version": "==0.6.1"
+ },
+ "mypy-extensions": {
+ "hashes": [
+ "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d",
+ "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"
+ ],
+ "version": "==0.4.3"
+ },
"packaging": {
"hashes": [
"sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb",
@@ -1346,6 +1405,21 @@
"markers": "python_version >= '3.6'",
"version": "==21.3"
},
+ "pathspec": {
+ "hashes": [
+ "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a",
+ "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"
+ ],
+ "version": "==0.9.0"
+ },
+ "platformdirs": {
+ "hashes": [
+ "sha256:7535e70dfa32e84d4b34996ea99c5e432fa29a708d0f4e394bbcb2a8faa4f16d",
+ "sha256:bcae7cab893c2d310a711b70b24efb93334febe65f8de776ee320b517471e227"
+ ],
+ "markers": "python_version >= '3.7'",
+ "version": "==2.5.1"
+ },
"pluggy": {
"hashes": [
"sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159",
@@ -1362,6 +1436,22 @@
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==1.11.0"
},
+ "pycodestyle": {
+ "hashes": [
+ "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20",
+ "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+ "version": "==2.8.0"
+ },
+ "pyflakes": {
+ "hashes": [
+ "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c",
+ "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"
+ ],
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+ "version": "==2.4.0"
+ },
"pyparsing": {
"hashes": [
"sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea",
@@ -1392,7 +1482,7 @@
"sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
"sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
],
- "markers": "python_version >= '3.7'",
+ "markers": "python_version < '3.11'",
"version": "==2.0.1"
}
}
diff --git a/README.md b/README.md
index cdbfcac..7a2ac26 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,8 @@
+[](https://deepsource.io/gh/mawoka-myblock/ClassQuiz/)
+
ClassQuiz
diff --git a/alembic/README b/alembic/README
deleted file mode 100644
index 98e4f9c..0000000
--- a/alembic/README
+++ /dev/null
@@ -1 +0,0 @@
-Generic single-database configuration.
\ No newline at end of file
diff --git a/alembic/env.py b/alembic/env.py
deleted file mode 100644
index f52cf8b..0000000
--- a/alembic/env.py
+++ /dev/null
@@ -1,84 +0,0 @@
-from logging.config import fileConfig
-
-from sqlalchemy import engine_from_config
-from sqlalchemy import pool
-
-from alembic import context
-
-# this is the Alembic Config object, which provides
-# access to the values within the .ini file in use.
-config = context.config
-
-# Interpret the config file for Python logging.
-# This line sets up loggers basically.
-fileConfig(config.config_file_name)
-
-# add your model's MetaData object here
-# for 'autogenerate' support
-# from myapp import mymodel
-# target_metadata = mymodel.Base.metadata
-from classquiz.db import metadata
-
-target_metadata = metadata
-
-from classquiz.config import settings
-
-url = settings.db_url
-
-
-# other values from the config, defined by the needs of env.py,
-# can be acquired:
-# my_important_option = config.get_main_option("my_important_option")
-# ... etc.
-
-
-def run_migrations_offline():
- """Run migrations in 'offline' mode.
-
- This configures the context with just a URL
- and not an Engine, though an Engine is acceptable
- here as well. By skipping the Engine creation
- we don't even need a DBAPI to be available.
-
- Calls to context.execute() here emit the given string to the
- script output.
-
- """
- context.configure(
- url=url,
- target_metadata=target_metadata,
- literal_binds=True,
- dialect_opts={"paramstyle": "named"},
- )
-
- with context.begin_transaction():
- context.run_migrations()
-
-
-def run_migrations_online():
- """Run migrations in 'online' mode.
-
- In this scenario we need to create an Engine
- and associate a connection with the context.
-
- """
- connectable = engine_from_config(
- config.get_section(config.config_ini_section),
- url=url,
- prefix="sqlalchemy.",
- poolclass=pool.NullPool,
- )
-
- with connectable.connect() as connection:
- context.configure(
- connection=connection, target_metadata=target_metadata
- )
-
- with context.begin_transaction():
- context.run_migrations()
-
-
-if context.is_offline_mode():
- run_migrations_offline()
-else:
- run_migrations_online()
diff --git a/alembic/script.py.mako b/alembic/script.py.mako
deleted file mode 100644
index 2c01563..0000000
--- a/alembic/script.py.mako
+++ /dev/null
@@ -1,24 +0,0 @@
-"""${message}
-
-Revision ID: ${up_revision}
-Revises: ${down_revision | comma,n}
-Create Date: ${create_date}
-
-"""
-from alembic import op
-import sqlalchemy as sa
-${imports if imports else ""}
-
-# revision identifiers, used by Alembic.
-revision = ${repr(up_revision)}
-down_revision = ${repr(down_revision)}
-branch_labels = ${repr(branch_labels)}
-depends_on = ${repr(depends_on)}
-
-
-def upgrade():
- ${upgrades if upgrades else "pass"}
-
-
-def downgrade():
- ${downgrades if downgrades else "pass"}
diff --git a/alembic/versions/76507db71fde_made_some_changes.py b/alembic/versions/76507db71fde_made_some_changes.py
deleted file mode 100644
index d0c4ef4..0000000
--- a/alembic/versions/76507db71fde_made_some_changes.py
+++ /dev/null
@@ -1,28 +0,0 @@
-"""made some changes
-
-Revision ID: 76507db71fde
-Revises:
-Create Date: 2022-02-25 18:38:08.687974
-
-"""
-from alembic import op
-import sqlalchemy as sa
-
-
-# revision identifiers, used by Alembic.
-revision = '76507db71fde'
-down_revision = None
-branch_labels = None
-depends_on = None
-
-
-def upgrade():
- # ### commands auto generated by Alembic - please adjust! ###
- pass
- # ### end Alembic commands ###
-
-
-def downgrade():
- # ### commands auto generated by Alembic - please adjust! ###
- pass
- # ### end Alembic commands ###
diff --git a/classquiz/__init__.py b/classquiz/__init__.py
index 401437b..f91d596 100644
--- a/classquiz/__init__.py
+++ b/classquiz/__init__.py
@@ -1,12 +1,12 @@
-from fastapi import FastAPI, Request
import sentry_sdk
+from fastapi import FastAPI, Request
+from sentry_sdk.integrations.redis import RedisIntegration
from socketio import ASGIApp
-from classquiz.db import database
from classquiz.config import settings
+from classquiz.db import database
from classquiz.routers import users, quiz, utils, stats, storage
from classquiz.socket_server import sio
-from sentry_sdk.integrations.redis import RedisIntegration
settings = settings()
if settings.sentry_dsn:
@@ -41,8 +41,6 @@ async def shutdown() -> None:
await database_.disconnect()
-
-
app.include_router(users.router, tags=["users"], prefix="/api/v1/users")
app.include_router(quiz.router, tags=["quiz"], prefix="/api/v1/quiz")
app.include_router(utils.router, tags=["utils"], prefix="/api/v1/utils")
diff --git a/classquiz/auth.py b/classquiz/auth.py
index 2ae8568..17d711c 100644
--- a/classquiz/auth.py
+++ b/classquiz/auth.py
@@ -15,7 +15,8 @@ from passlib.hash import argon2
from classquiz.cache import get_cache
from classquiz.config import settings
-from classquiz.db.models import *
+from datetime import datetime
+from classquiz.db.models import User, TokenData
settings = settings()
@@ -27,11 +28,11 @@ ACCESS_TOKEN_EXPIRE_MINUTES = settings.access_token_expire_minutes
class OAuth2PasswordBearerWithCookie(OAuth2):
def __init__(
- self,
- tokenUrl: str,
- scheme_name: Optional[str] = None,
- scopes: Optional[Dict[str, str]] = None,
- auto_error: bool = True,
+ self,
+ tokenUrl: str,
+ scheme_name: Optional[str] = None,
+ scopes: Optional[Dict[str, str]] = None,
+ auto_error: bool = True,
):
if not scopes:
scopes = {}
diff --git a/classquiz/cache.py b/classquiz/cache.py
index 20bca1e..4d40c13 100644
--- a/classquiz/cache.py
+++ b/classquiz/cache.py
@@ -6,6 +6,7 @@ import ormar
from classquiz.config import redis, settings
from classquiz.db.models import User
+
settings = settings()
diff --git a/classquiz/config.py b/classquiz/config.py
index 5c2902b..0cde720 100644
--- a/classquiz/config.py
+++ b/classquiz/config.py
@@ -1,6 +1,8 @@
-import redis.asyncio as redis_lib
from functools import lru_cache
+
+import redis.asyncio as redis_lib
from pydantic import BaseSettings, RedisDsn, PostgresDsn
+
from classquiz.storage import Storage
@@ -8,6 +10,7 @@ class Settings(BaseSettings):
"""
Settings class for the shop app.
"""
+
root_address: str = "http://127.0.0.1:8000"
redis: RedisDsn = "redis://localhost:6379/0?decode_responses=True"
skip_email_verification: bool = False
@@ -34,7 +37,7 @@ class Settings(BaseSettings):
class Config:
env_file = ".env"
- env_file_encoding = 'utf-8'
+ env_file_encoding = "utf-8"
@lru_cache()
@@ -43,5 +46,9 @@ def settings() -> Settings:
redis: redis_lib.client.Redis = redis_lib.Redis().from_url(settings().redis)
-storage: Storage = Storage(backend=settings().storage_backend, deta_key=settings().deta_project_key,
- deta_id=settings().deta_project_id, storage_path=settings().storage_path)
+storage: Storage = Storage(
+ backend=settings().storage_backend,
+ deta_key=settings().deta_project_key,
+ deta_id=settings().deta_project_id,
+ storage_path=settings().storage_path,
+)
diff --git a/classquiz/db/models.py b/classquiz/db/models.py
index a9d730e..a91c962 100644
--- a/classquiz/db/models.py
+++ b/classquiz/db/models.py
@@ -11,6 +11,7 @@ class User(ormar.Model):
"""
The user model in the database
"""
+
id: uuid.UUID = ormar.UUID(primary_key=True, default=uuid.uuid4())
email: str = ormar.String(unique=True, max_length=100)
username: str = ormar.String(unique=True, max_length=100)
@@ -20,7 +21,7 @@ class User(ormar.Model):
created_at: datetime = ormar.DateTime(default=datetime.now())
class Meta:
- tablename = 'users'
+ tablename = "users"
metadata = metadata
database = database
@@ -29,6 +30,7 @@ class UserSession(ormar.Model):
"""
The user session model for user-sessions
"""
+
id: uuid.UUID = ormar.UUID(primary_key=True, default=uuid.uuid4())
user: uuid.UUID = ormar.ForeignKey(User)
session_key: str = ormar.String(unique=True, max_length=64)
@@ -38,7 +40,7 @@ class UserSession(ormar.Model):
last_seen: datetime = ormar.DateTime(default=datetime.now())
class Meta:
- tablename = 'user_sessions'
+ tablename = "user_sessions"
metadata = metadata
database = database
@@ -73,7 +75,7 @@ class Quiz(ormar.Model):
questions: Json[list[QuizQuestion]] = ormar.JSON(nullable=False)
class Meta:
- tablename = 'quiz'
+ tablename = "quiz"
metadata = metadata
database = database
@@ -82,6 +84,7 @@ class Token(BaseModel):
"""
For JWT
"""
+
access_token: str
token_type: str
@@ -90,6 +93,7 @@ class TokenData(BaseModel):
"""
For JWT
"""
+
email: str | None = None
@@ -97,6 +101,7 @@ class PlayGame(BaseModel):
"""
For JWT
"""
+
quiz_id: uuid.UUID | str
description: str
title: str
diff --git a/classquiz/emails/__init__.py b/classquiz/emails/__init__.py
index bf650e9..995d86f 100644
--- a/classquiz/emails/__init__.py
+++ b/classquiz/emails/__init__.py
@@ -12,17 +12,18 @@ from classquiz.db.models import User
settings = settings()
jinja = Environment(
- loader=PackageLoader('classquiz.emails', 'templates'),
- autoescape=select_autoescape(['html', 'xml']),
- enable_async=True)
+ loader=PackageLoader("classquiz.emails", "templates"),
+ autoescape=select_autoescape(["html", "xml"]),
+ enable_async=True,
+)
def _sendMail(template: str, to: str, subject: str):
- msg = MIMEMultipart('alternative')
- msg['Subject'] = subject
- msg['From'] = settings.mail_address
- msg['To'] = to
- msg.attach(MIMEText(template, 'html'))
+ msg = MIMEMultipart("alternative")
+ msg["Subject"] = subject
+ msg["From"] = settings.mail_address
+ msg["To"] = to
+ msg.attach(MIMEText(template, "html"))
context = ssl.SSLContext(ssl.PROTOCOL_TLS)
server = smtplib.SMTP(host=settings.mail_server, port=settings.mail_port)
server.ehlo()
@@ -35,25 +36,19 @@ def _sendMail(template: str, to: str, subject: str):
async def send_register_email(email: str):
user = await User.objects.get_or_none(email=email, verified=False)
if user is None:
- raise ValueError('User not found')
- template = jinja.get_template('register.jinja2')
- template = await template.render_async(
- base_url=settings.root_address,
- token=user.verify_key
- )
- _sendMail(template=template, to=email, subject='Verify your email')
+ raise ValueError("User not found")
+ template = jinja.get_template("register.jinja2")
+ template = await template.render_async(base_url=settings.root_address, token=user.verify_key)
+ _sendMail(template=template, to=email, subject="Verify your email")
async def send_forgotten_password_email(email: str):
user = await User.objects.get_or_none(email=email)
if user is None:
- raise ValueError('User not found')
- template = jinja.get_template('forgotten_password.jinja2')
+ raise ValueError("User not found")
+ template = jinja.get_template("forgotten_password.jinja2")
token = os.urandom(32).hex()
- template = await template.render_async(
- base_url=settings.root_address,
- token=token
- )
+ template = await template.render_async(base_url=settings.root_address, token=token)
await redis.set(f"reset_passwd:{token}", str(user.id), ex=3600)
- _sendMail(template=template, to=email, subject='Reset your password')
+ _sendMail(template=template, to=email, subject="Reset your password")
pass
diff --git a/classquiz/kahoot_importer/__init__.py b/classquiz/kahoot_importer/__init__.py
index 673a690..c89486d 100644
--- a/classquiz/kahoot_importer/__init__.py
+++ b/classquiz/kahoot_importer/__init__.py
@@ -1,6 +1,7 @@
-from pydantic import BaseModel
-from uuid import UUID
from typing import List, Any, Optional
+from uuid import UUID
+
+from pydantic import BaseModel
class _CoverMetadata(BaseModel):
diff --git a/classquiz/kahoot_importer/get.py b/classquiz/kahoot_importer/get.py
index 399a0c6..6d58226 100644
--- a/classquiz/kahoot_importer/get.py
+++ b/classquiz/kahoot_importer/get.py
@@ -1,6 +1,6 @@
from aiohttp import ClientSession
-
from pydantic import BaseModel
+
from classquiz.kahoot_importer import _Card, _Kahoot
diff --git a/classquiz/kahoot_importer/import_quiz.py b/classquiz/kahoot_importer/import_quiz.py
index 4c8710c..8eb43d4 100644
--- a/classquiz/kahoot_importer/import_quiz.py
+++ b/classquiz/kahoot_importer/import_quiz.py
@@ -1,12 +1,13 @@
+import html
import json
import uuid
from datetime import datetime
-from aiohttp import ClientSession, FormData
-import html
+from aiohttp import ClientSession
+
+from classquiz.config import settings, storage
from classquiz.db.models import Quiz, QuizAnswer, QuizQuestion, User
from classquiz.kahoot_importer.get import get as get_quiz
-from classquiz.config import settings, storage
settings = settings()
@@ -52,6 +53,7 @@ async def _download_image(url: str) -> bytes:
# data = await resp.json()
# return data["data"]["id"]
+
async def import_quiz(quiz_id: str, user: User) -> Quiz | str:
"""
Imports a quiz from Kahoot.
@@ -65,21 +67,33 @@ async def import_quiz(quiz_id: str, user: User) -> Quiz | str:
quiz_questions: list[dict] = []
quiz_id = uuid.uuid4()
-
for q in quiz.kahoot.questions:
answers: list[QuizAnswer] = []
image = None
if q.image is not None and q.image != "":
image_bytes = await _download_image(q.image)
- image_name= f"{quiz_id}--{uuid.uuid4()}"
+ image_name = f"{quiz_id}--{uuid.uuid4()}"
image = await storage.upload(file_name=image_name, file_data=image_bytes)
image = f"{settings.root_address}/api/v1/storage/download/{image_name}"
# image = q.image
for a in q.choices:
answers.append((QuizAnswer(right=a.correct, answer=html.unescape(a.answer))))
quiz_questions.append(
- QuizQuestion(question=q.question, answers=answers, time=str(q.time / 1000), image=image).dict())
- quiz_data = Quiz(id=quiz_id, public=False, title=quiz.kahoot.title, description=quiz.kahoot.description,
- created_at=datetime.now(), updated_at=datetime.now(), user_id=user.id,
- questions=json.dumps(quiz_questions))
+ QuizQuestion(
+ question=q.question,
+ answers=answers,
+ time=str(q.time / 1000),
+ image=image,
+ ).dict()
+ )
+ quiz_data = Quiz(
+ id=quiz_id,
+ public=False,
+ title=quiz.kahoot.title,
+ description=quiz.kahoot.description,
+ created_at=datetime.now(),
+ updated_at=datetime.now(),
+ user_id=user.id,
+ questions=json.dumps(quiz_questions),
+ )
return await quiz_data.save()
diff --git a/classquiz/kahoot_importer/search.py b/classquiz/kahoot_importer/search.py
index 7776167..d7f19e0 100644
--- a/classquiz/kahoot_importer/search.py
+++ b/classquiz/kahoot_importer/search.py
@@ -1,20 +1,26 @@
-from uuid import UUID
-from typing import List, Any, Optional
-from aiohttp import ClientSession
-from classquiz.kahoot_importer import _Entity
+from typing import List
+from aiohttp import ClientSession
from pydantic import BaseModel
+from classquiz.kahoot_importer import _Entity
+
+# noqa : E501
class _Response(BaseModel):
entities: List[_Entity]
totalHits: int
- cursor: int
+ cursor: int | None
pageTimestamp: int
-async def search(query: str | None, limit: int | None = 9, cursor: int | None = 1,
- search_cluster: int | None = 1, inventory_item_id: str | None = "ANY") -> _Response:
+async def search(
+ query: str | None,
+ limit: int | None = 9,
+ cursor: int | None = 1,
+ search_cluster: int | None = 1,
+ inventory_item_id: str | None = "ANY",
+) -> _Response:
"""
:param inventory_item_id: I dkon't know
@@ -26,8 +32,7 @@ async def search(query: str | None, limit: int | None = 9, cursor: int | None =
"""
async with ClientSession() as session:
async with session.get(
- f"https://create.kahoot.it/rest/kahoots/?query={query}&limit={limit}&cursor={cursor}&searchCluster={search_cluster}&includeExtendedCounters=false&inventoryItemId={inventory_item_id}"
-
+ f"https://create.kahoot.it/rest/kahoots/?query={query}&limit={limit}&cursor={cursor}&searchCluster={search_cluster}&includeExtendedCounters=false&inventoryItemId={inventory_item_id}" # noqa : E501
) as response:
# print(
# f"https://create.kahoot.it/rest/kahoots/?query={query}&limit={limit}&cursor={cursor}&searchCluster={search_cluster}&includeExtendedCounters=false&inventoryItemId={inventory_item_id}")
diff --git a/classquiz/routers/quiz.py b/classquiz/routers/quiz.py
index d3ccc24..16ad00e 100644
--- a/classquiz/routers/quiz.py
+++ b/classquiz/routers/quiz.py
@@ -1,18 +1,17 @@
import json
+import re
import uuid
from datetime import datetime
from random import randint
-from pydantic import ValidationError
-
-from classquiz.kahoot_importer.import_quiz import import_quiz
from fastapi import APIRouter, Depends, HTTPException
from fastapi.responses import JSONResponse
-import re
+from pydantic import ValidationError
from classquiz.auth import get_current_user, get_current_user_optional
from classquiz.config import redis, settings, storage
from classquiz.db.models import Quiz, QuizInput, User, PlayGame
+from classquiz.kahoot_importer.import_quiz import import_quiz
settings = settings()
@@ -63,8 +62,14 @@ async def start_quiz(quiz_id: str, user: User = Depends(get_current_user)):
return JSONResponse(status_code=404, content={"detail": "quiz not found"})
else:
game_pin = randint(10000000, 99999999)
- game = PlayGame(quiz_id=quiz_id, game_pin=str(game_pin), questions=quiz.questions, game_id=uuid.uuid4(),
- title=quiz.title, description=quiz.description)
+ game = PlayGame(
+ quiz_id=quiz_id,
+ game_pin=str(game_pin),
+ questions=quiz.questions,
+ game_id=uuid.uuid4(),
+ title=quiz.title,
+ description=quiz.description,
+ )
await redis.set(f"game:{str(game.game_pin)}", (game.json()), ex=18000)
return {**quiz.dict(exclude={"id"}), **game.dict(exclude={"questions"})}
diff --git a/classquiz/routers/stats.py b/classquiz/routers/stats.py
index 746cb36..7094086 100644
--- a/classquiz/routers/stats.py
+++ b/classquiz/routers/stats.py
@@ -1,13 +1,8 @@
-import os
+from fastapi import APIRouter
-from fastapi import APIRouter, Response
-from fastapi.background import BackgroundTasks
-from fastapi.responses import JSONResponse, RedirectResponse
-from fastapi.security import OAuth2PasswordRequestForm
-from pydantic import BaseModel
-from classquiz.auth import *
from classquiz.config import redis
-from classquiz.db.models import *
+from pydantic import BaseModel
+from classquiz.db.models import Quiz, User
router = APIRouter()
diff --git a/classquiz/routers/storage.py b/classquiz/routers/storage.py
index 14fafdc..d925a55 100644
--- a/classquiz/routers/storage.py
+++ b/classquiz/routers/storage.py
@@ -1,7 +1,9 @@
+import re
+
from fastapi import APIRouter, HTTPException
from fastapi.responses import StreamingResponse
+
from classquiz.config import settings, storage
-import re
settings = settings()
@@ -10,7 +12,7 @@ router = APIRouter()
file_regex = r"^[a-z0-9]{8}-[a-z0-9-]{27}--[a-z0-9-]{36}$"
-@router.get('/download/{file_name}')
+@router.get("/download/{file_name}")
async def download_file(file_name: str):
if not re.match(file_regex, file_name):
raise HTTPException(status_code=400, detail="Invalid file name")
@@ -22,5 +24,8 @@ async def download_file(file_name: str):
def iter_file():
yield from download
- return StreamingResponse(iter_file(), media_type='image/*',
- headers={"Cache-Control": "public, immutable, max-age=31536000"})
+ return StreamingResponse(
+ iter_file(),
+ media_type="image/*",
+ headers={"Cache-Control": "public, immutable, max-age=31536000"},
+ )
diff --git a/classquiz/routers/users.py b/classquiz/routers/users.py
index 83d227e..b388c96 100644
--- a/classquiz/routers/users.py
+++ b/classquiz/routers/users.py
@@ -1,21 +1,38 @@
import os
from email_validator import validate_email, EmailNotValidError
-from fastapi import APIRouter, Response
+from fastapi import APIRouter, Response, HTTPException, Request, Depends, status
+from datetime import timedelta, datetime
from fastapi.background import BackgroundTasks
from fastapi.responses import JSONResponse, RedirectResponse
from fastapi.security import OAuth2PasswordRequestForm
-from classquiz.auth import *
-from classquiz.config import redis
+from classquiz.auth import (
+ get_password_hash,
+ verify_password,
+ authenticate_user,
+ create_access_token,
+ get_current_user,
+)
from classquiz.cache import clear_cache_for_account
-from classquiz.db.models import *
+from classquiz.config import redis, settings
+import uuid
+from pydantic import BaseModel
+from classquiz.db.models import User, UserSession, UpdatePassword, Token
from classquiz.emails import send_register_email, send_forgotten_password_email
+settings = settings()
router = APIRouter()
route_user = User.get_pydantic(
- exclude={"id": ..., "verified": ..., "verify_key": ..., "created_at": ..., "usersessions": ...})
+ exclude={
+ "id": ...,
+ "verified": ...,
+ "verify_key": ...,
+ "created_at": ...,
+ "usersessions": ...,
+ }
+)
async def _sign_out_everywhere(user: User) -> None:
@@ -23,8 +40,11 @@ async def _sign_out_everywhere(user: User) -> None:
await clear_cache_for_account(user)
-@router.post("/create", response_model=User,
- response_model_include={"id": ..., "verified": ..., "email": ...})
+@router.post(
+ "/create",
+ response_model=User,
+ response_model_include={"id": ..., "verified": ..., "email": ...},
+)
async def create_user(user: route_user, background_task: BackgroundTasks) -> User | JSONResponse:
user = User(**user.dict(), id=uuid.uuid4())
try:
@@ -47,8 +67,11 @@ async def create_user(user: route_user, background_task: BackgroundTasks) -> Use
@router.post("/token/cookie", response_model=Token)
-async def login_for_cookie_access_token(request: Request, response: Response,
- form_data: OAuth2PasswordRequestForm = Depends()):
+async def login_for_cookie_access_token(
+ request: Request,
+ response: Response,
+ form_data: OAuth2PasswordRequestForm = Depends(),
+):
user = await authenticate_user(form_data.username, form_data.password)
if not user:
raise HTTPException(
@@ -56,21 +79,29 @@ async def login_for_cookie_access_token(request: Request, response: Response,
detail="Incorrect username or password",
)
session_key = os.urandom(32).hex()
- user_session = UserSession(user=user, session_key=session_key, ip_address=request.client.host,
- user_agent=request.headers.get("User-Agent"), id=uuid.uuid4())
+ user_session = UserSession(
+ user=user,
+ session_key=session_key,
+ ip_address=request.client.host,
+ user_agent=request.headers.get("User-Agent"),
+ id=uuid.uuid4(),
+ )
await user_session.save()
# await user_session.save()
access_token_expires = timedelta(minutes=settings.access_token_expire_minutes)
- access_token = create_access_token(
- data={"sub": user.email}, expires_delta=access_token_expires
- )
+ access_token = create_access_token(data={"sub": user.email}, expires_delta=access_token_expires)
await redis.set(access_token, user.email, ex=settings.access_token_expire_minutes * 60)
- response.set_cookie(key="access_token", value=f"Bearer {access_token}",
- httponly=True, samesite='strict', max_age=settings.access_token_expire_minutes * 60)
+ response.set_cookie(
+ key="access_token",
+ value=f"Bearer {access_token}",
+ httponly=True,
+ samesite="strict",
+ max_age=settings.access_token_expire_minutes * 60,
+ )
response.set_cookie(key="expiry", value="", max_age=settings.access_token_expire_minutes * 60)
response.set_cookie(key="rememberme", value="")
- response.set_cookie(key="rememberme_token", value=session_key, httponly=True, samesite='strict')
+ response.set_cookie(key="rememberme_token", value=session_key, httponly=True, samesite="strict")
return {"access_token": access_token, "token_type": "bearer"}
@@ -79,16 +110,20 @@ async def rememberme_token(request: Request, response: Response):
rememberme_cookie = request.cookies.get("rememberme_token")
if rememberme_cookie is None:
raise HTTPException(status_code=400, detail="No rememberme cookie")
- user_session: UserSession | None = await UserSession.objects.filter(session_key=rememberme_cookie).select_related(
- UserSession.user).get_or_none()
+ user_session: UserSession | None = (
+ await UserSession.objects.filter(session_key=rememberme_cookie).select_related(UserSession.user).get_or_none()
+ )
if (user_session is None) or (user_session.user is None):
raise HTTPException(status_code=401, detail="No user session")
access_token_expires = timedelta(minutes=settings.access_token_expire_minutes * 60)
- access_token = create_access_token(
- data={"sub": user_session.user.email}, expires_delta=access_token_expires
+ access_token = create_access_token(data={"sub": user_session.user.email}, expires_delta=access_token_expires)
+ response.set_cookie(
+ key="access_token",
+ value=f"Bearer {access_token}",
+ httponly=True,
+ samesite="strict",
+ max_age=settings.access_token_expire_minutes * 60,
)
- response.set_cookie(key="access_token", value=f"Bearer {access_token}",
- httponly=True, samesite='strict', max_age=settings.access_token_expire_minutes * 60)
response.set_cookie(key="expiry", value="", max_age=settings.access_token_expire_minutes * 60)
await user_session.update(last_seen=datetime.now())
@@ -124,7 +159,11 @@ async def verify_user(verify_key: str):
@router.put("/password/update")
-async def change_password(password_data: UpdatePassword, response: Response, user: User = Depends(get_current_user)):
+async def change_password(
+ password_data: UpdatePassword,
+ response: Response,
+ user: User = Depends(get_current_user),
+):
if not verify_password(password_data.old_password, user.password):
raise HTTPException(status_code=400, detail="Incorrect password")
user.password = get_password_hash(password_data.new_password)
diff --git a/classquiz/routers/utils.py b/classquiz/routers/utils.py
index 63a07a0..e4fdbf9 100644
--- a/classquiz/routers/utils.py
+++ b/classquiz/routers/utils.py
@@ -6,6 +6,7 @@ from fastapi import APIRouter
from fastapi.responses import Response
from classquiz.config import settings
+
settings = settings()
router = APIRouter()
@@ -16,9 +17,7 @@ async def get_qr(quiz_pin: str):
"""
Get QR code for quiz
"""
- factory = qrcode.image.svg.SvgImage
- qr = qrcode.QRCode(image_factory=qrcode.image.svg.SvgPathImage, version=1
- , box_size=20, border=0)
+ qr = qrcode.QRCode(image_factory=qrcode.image.svg.SvgPathImage, version=1, box_size=20, border=0)
qr.add_data(f"{settings.root_address}/play?pin={quiz_pin}")
buf = io.BytesIO()
qr.make(fit=True)
diff --git a/classquiz/socket_server/__init__.py b/classquiz/socket_server/__init__.py
index aec6f78..e7eac75 100644
--- a/classquiz/socket_server/__init__.py
+++ b/classquiz/socket_server/__init__.py
@@ -4,7 +4,7 @@ import aiohttp
import socketio
from classquiz.config import redis, settings
-from classquiz.db.models import GameSession, PlayGame
+from classquiz.db.models import PlayGame
sio = socketio.AsyncServer(async_mode="asgi", cors_allowed_origins=[])
settings = settings()
@@ -14,35 +14,54 @@ settings = settings()
async def join_game(sid, data):
async with aiohttp.ClientSession() as session:
try:
- async with session.post("https://hcaptcha.com/siteverify",
- data={"response": data["captcha"], "secret": settings.hcaptcha_key}) as resp:
+ async with session.post(
+ "https://hcaptcha.com/siteverify",
+ data={"response": data["captcha"], "secret": settings.hcaptcha_key},
+ ) as resp:
resp_data = await resp.json()
if not resp_data["success"]:
print("CAPTCHA FAILED")
return
- except KeyError as e:
+ except KeyError:
print("CAPTCHA FAILED")
return
redis_res = await redis.get(f"game:{data['game_pin']}")
if redis_res is None:
await sio.emit("game_not_found", room=sid)
else:
- session = {'game_pin': data["game_pin"], "username": data["username"], "admin": False}
+ session = {
+ "game_pin": data["game_pin"],
+ "username": data["username"],
+ "admin": False,
+ }
await sio.save_session(sid, session)
await sio.emit("joined_game", redis_res, room=sid)
- redis_res = (await redis.get(f"game_session:{data['game_pin']}"))
+ redis_res = await redis.get(f"game_session:{data['game_pin']}")
redis_res = json.loads(redis_res)
# print(redis_res)
redis_res["players"].append({"username": data["username"], "sid": sid})
- await redis.set(f"game_session:{data['game_pin']}",
- json.dumps({"admin": redis_res["admin"], "game_id": redis_res["game_id"],
- "players": redis_res["players"], "answers": []}), ex=18000)
- await sio.emit("player_joined", {"username": data["username"], "sid": sid}, room=redis_res["admin"])
+ await redis.set(
+ f"game_session:{data['game_pin']}",
+ json.dumps(
+ {
+ "admin": redis_res["admin"],
+ "game_id": redis_res["game_id"],
+ "players": redis_res["players"],
+ "answers": [],
+ }
+ ),
+ ex=18000,
+ )
+ await sio.emit(
+ "player_joined",
+ {"username": data["username"], "sid": sid},
+ room=redis_res["admin"],
+ )
sio.enter_room(sid, data["game_pin"]) # TODO: make more secure
@sio.event
-async def start_game(sid, data):
+async def start_game(sid, _data):
# print(sid, data, "START_GAME")
session = await sio.get_session(sid)
# print(session)
@@ -55,14 +74,19 @@ async def register_as_admin(sid, data):
game_pin = data["game_pin"]
game_id = data["game_id"]
if (await redis.get(f"game_session:{game_pin}")) is None:
- await redis.set(f"game_session:{game_pin}", json.dumps({"admin": sid, "game_id": game_id, "players": []}),
- ex=18000)
+ await redis.set(
+ f"game_session:{game_pin}",
+ json.dumps({"admin": sid, "game_id": game_id, "players": []}),
+ ex=18000,
+ )
- await sio.emit("registered_as_admin", {"game_id": game_id, "game": await redis.get(
- f"game:{data['game_pin']}")},
- room=sid)
+ await sio.emit(
+ "registered_as_admin",
+ {"game_id": game_id, "game": await redis.get(f"game:{data['game_pin']}")},
+ room=sid,
+ )
async with sio.session(sid) as session:
- session['game_pin'] = data["game_pin"]
+ session["game_pin"] = data["game_pin"]
session["admin"] = True
sio.enter_room(sid, data["game_pin"])
else:
@@ -74,7 +98,7 @@ async def get_question_results(sid, data):
session = await sio.get_session(sid)
if session["admin"]:
redis_res = await redis.get(f"game_session:{session['game_pin']}:{data['question_number']}")
- game_pin = session['game_pin']
+ game_pin = session["game_pin"]
await sio.emit("question_results", redis_res, room=game_pin)
@@ -82,15 +106,15 @@ async def get_question_results(sid, data):
async def set_question_number(sid, data):
session = await sio.get_session(sid)
if session["admin"]:
- game_pin = session['game_pin']
+ game_pin = session["game_pin"]
await sio.emit("set_question_number", data, room=game_pin)
@sio.event
async def submit_answer(sid, data):
session = await sio.get_session(sid)
- redis_res = await redis.get(f"game_session:{session['game_pin']}")
- game_session = GameSession(**json.loads(redis_res))
+ # redis_res = await redis.get(f"game_session:{session['game_pin']}")
+ # game_session = GameSession(**json.loads(redis_res))
game_data = PlayGame(**json.loads(await redis.get(f"game:{session['game_pin']}")))
# print(game_session)
answer_right = False
@@ -100,21 +124,40 @@ async def submit_answer(sid, data):
break
answers = await redis.get(f"game_session:{session['game_pin']}:{data['question_index']}")
if answers is None:
- await redis.set(f"game_session:{session['game_pin']}:{data['question_index']}",
- json.dumps(
- [{"username": session["username"], "answer": data["answer"], "right": answer_right}]),
- ex=18000)
+ await redis.set(
+ f"game_session:{session['game_pin']}:{data['question_index']}",
+ json.dumps(
+ [
+ {
+ "username": session["username"],
+ "answer": data["answer"],
+ "right": answer_right,
+ }
+ ]
+ ),
+ ex=18000,
+ )
else:
answers = json.loads(answers)
- answers.append({"username": session["username"], "answer": data["answer"], "right": answer_right})
- await redis.set(f"game_session:{session['game_pin']}:{data['question_index']}", json.dumps(answers), ex=18000)
+ answers.append(
+ {
+ "username": session["username"],
+ "answer": data["answer"],
+ "right": answer_right,
+ }
+ )
+ await redis.set(
+ f"game_session:{session['game_pin']}:{data['question_index']}",
+ json.dumps(answers),
+ ex=18000,
+ )
# await redis.set(f"game_data:{session['game_pin']}", json.dumps(data))
@sio.event
-async def get_game_data(sid, data):
- game_pin = (await sio.get_session(sid))['game_pin']
+async def get_game_data(sid, _data):
+ game_pin = (await sio.get_session(sid))["game_pin"]
game_data = await redis.get(f"game:{game_pin}")
if game_data is not None:
await sio.emit("game_data", json.loads(game_data), room=game_pin)
diff --git a/classquiz/storage/__init__.py b/classquiz/storage/__init__.py
index a343344..c45ec7f 100644
--- a/classquiz/storage/__init__.py
+++ b/classquiz/storage/__init__.py
@@ -1,11 +1,18 @@
-from .deta_storage import DetaStorage
-from .local_storage import LocalStorage
from io import BytesIO
from typing import Optional
+from .deta_storage import DetaStorage
+from .local_storage import LocalStorage
+
class Storage:
- def __init__(self, backend: str, deta_key: Optional[str], deta_id: Optional[str], storage_path: Optional[str]):
+ def __init__(
+ self,
+ backend: str,
+ deta_key: Optional[str],
+ deta_id: Optional[str],
+ storage_path: Optional[str],
+ ):
self.backend = backend
self.deta_key: str | None = deta_key
self.deta_id: str | None = deta_id
@@ -14,8 +21,11 @@ class Storage:
if deta_key is None or deta_id is None:
raise ValueError("deta_key and deta_id must be provided")
else:
- self.deta_instance = DetaStorage(deta_base_url=self.deta_base_url, deta_key=self.deta_key,
- deta_id=self.deta_id)
+ self.deta_instance = DetaStorage(
+ deta_base_url=self.deta_base_url,
+ deta_key=self.deta_key,
+ deta_id=self.deta_id,
+ )
elif backend == "local":
if storage_path is None:
@@ -28,8 +38,7 @@ class Storage:
async def download(self, file_name: str) -> BytesIO | None:
if self.backend == "deta":
- return await self.deta_instance.download(
- file_name)
+ return await self.deta_instance.download(file_name)
elif self.backend == "local":
return await self.local_instance.get_file(file_name)
diff --git a/classquiz/storage/deta_storage.py b/classquiz/storage/deta_storage.py
index ffe0b2f..6136f36 100644
--- a/classquiz/storage/deta_storage.py
+++ b/classquiz/storage/deta_storage.py
@@ -1,6 +1,7 @@
-from aiohttp import ClientSession
from io import BytesIO
+from aiohttp import ClientSession
+
class DetaStorage:
def __init__(self, deta_base_url: str, deta_id: str, deta_key: str):
diff --git a/classquiz/storage/local_storage.py b/classquiz/storage/local_storage.py
index 4ae76f8..dadaa39 100644
--- a/classquiz/storage/local_storage.py
+++ b/classquiz/storage/local_storage.py
@@ -1,5 +1,6 @@
import io
import os
+
import aiofiles
import aiofiles.os
@@ -10,13 +11,13 @@ class LocalStorage:
async def get_file(self, file_name: str) -> io.BytesIO | None:
try:
- async with aiofiles.open(file=os.path.join(self.base_path, file_name), mode='rb') as f:
+ async with aiofiles.open(file=os.path.join(self.base_path, file_name), mode="rb") as f:
return io.BytesIO(await f.read())
except FileNotFoundError:
return None
async def write_file(self, file_name: str, data: bytes) -> None:
- async with aiofiles.open(file=os.path.join(self.base_path, file_name), mode='wb') as f:
+ async with aiofiles.open(file=os.path.join(self.base_path, file_name), mode="wb") as f:
await f.write(data)
async def delete_file(self, file_names: [str]) -> None:
diff --git a/classquiz/tests/test_kahoot_get.py b/classquiz/tests/test_kahoot_get.py
index 701b1c8..f9b7ae0 100644
--- a/classquiz/tests/test_kahoot_get.py
+++ b/classquiz/tests/test_kahoot_get.py
@@ -1,63 +1,116 @@
-from classquiz.kahoot_importer.get import get
import pytest
+from classquiz.kahoot_importer.get import get
+
@pytest.mark.asyncio
async def test_get():
- await get('1f95eb0b-fcf4-4db2-879b-5418ef75116b')
+ await get("1f95eb0b-fcf4-4db2-879b-5418ef75116b")
await get("c63d4d39-767e-4754-8c16-66c3c2d9633c")
await get("c5d31de6-4598-4574-8e67-ca9a2aba49f8")
await get("3d545fc3-b830-44b6-94ac-c8e4a3c9fb88")
- quiz_list = ['c63d4d39-767e-4754-8c16-66c3c2d9633c', 'a73689d2-1108-4524-88e1-10c54282346c',
- 'e8e2d869-7c75-4ad6-8872-031bc8e37fa9', '387b4139-9e77-4b47-93b7-dbb6d75c54d1',
- 'a1fff657-b99d-4547-93cf-4e9629994844', '0880d792-a77e-4cba-8a8b-359de40ffe76',
- 'e2d12f01-a3dd-4d0e-a6c4-29f38046117f', 'e0af9b8e-8840-4a7d-8d51-3d02bb6a07e7',
- 'e655c086-558d-4602-99fd-5fc429ffe0ce', '1642f29d-b5cb-4213-82e6-7c1fae401aca',
- 'fabdd572-da3e-4621-b912-41b9bc5a18fb', 'ded3cbbf-5af3-4761-a6da-b3b6ca040e1a',
- '370b3e33-ed97-4d36-9362-7f76aa9d12b9', 'cfa32a28-1a01-47f1-9bca-c85640bceeb8',
- '993f615d-6890-4dd3-ac08-f462de9ac5a3', '7f08a377-e371-425e-95f9-7196401ae7ff',
- '19656fed-5891-48e7-ae7f-1358f623bfd0', '5e766d32-930a-4640-82a1-87c58612f579',
- 'ab2450e8-ecbb-4aed-bb3c-87e47b2b81f5', 'dd3c9175-addd-48df-8297-7598d4f12006',
- 'b8de862c-fc4b-4df6-9fa5-81b91868fc3b', '3b082f4e-9c50-45ea-98c4-3845b14e400c',
- '10179f67-a344-4fd0-80a1-d1e1b6ca7953', '8288c1dd-9675-411c-9175-4180004da3c3',
- 'af838c22-dcbb-497d-8c7b-f6499835b83d', '152c5fdb-3b0a-4cdf-a0d9-1984de0643ad',
- '846fd2bb-6b95-4333-b5d4-ef0a363e73a9', 'dd6b446f-817b-469b-9e6b-e1d34c466a7f',
- '2720d636-8918-4c6a-86a9-928c489382f4', 'a6985641-df97-4e56-97fc-e0901e32b464',
- '1d2705b4-b79e-4b51-8d61-cfb60fc7d1b9', '677fa485-4231-4479-beb2-fe757053bf41',
- '2b6379f8-450e-46c0-a854-5e368a03d5a6', 'f3ba42fe-11e8-47fc-8978-8d67bc0ce0b1',
- '51d2e839-a9d7-4f26-b1fd-fb0743c3a236', 'f2212243-4553-456d-87e7-7ddfd6ee7563',
- '2d6982d3-7b46-4022-bbb6-cb5451c581ba', '1cccae22-5140-46b5-ba6a-aa17cec14dc3',
- 'b01dd2c2-ffcf-4c02-a274-e12296dbe4e1', '2669d193-a81f-4752-a003-dd2433beef92',
- '06203ee6-3615-4e26-bb08-4fab249698a4', '933c1426-c759-43a3-9770-c8e3948db998',
- '02046384-fb05-4f1d-855a-f0e52a0761e3', 'b5266e9b-7372-4df0-94a9-ec8a6c0aabc6',
- 'fb8e3a3d-505a-4157-bd9a-b73b00591f10', '42092675-9171-400f-ab4d-c898ec9f70bd',
- '1d6307e2-98c2-42f2-b765-d02a68e0da80', '8f431ed0-31df-4435-bcba-aff46929fe82',
- 'd573d76f-d715-4a54-bdde-7ac7b6235fb2', 'feb8985b-84fb-4d41-bc41-70c322f508fa',
- 'f9f945cc-c166-4f7d-a95f-f0be154c43cf', '009b130a-1709-41a6-943d-85eee4889792',
- 'a3f765f7-2329-47e0-83eb-0837b4b54b43', 'fea9e558-206f-444a-8d7f-a3f0301fda8d',
- '9b419098-ccfc-467d-9de0-db18b60d6c28', 'e6c2174e-3a3f-4193-9782-1bf3b5cfae63',
- 'd42c962e-1691-4fa4-8926-c33157423bd2', '8d27aa83-a103-4f05-8230-69e857bc3ffd',
- '60cd19b2-6858-4704-b07b-5196e8e24325', '31624ea4-1e4f-4f90-ae4f-759a0eb93b61',
- 'fcd038f4-6b05-485b-afe3-ce67e05b1695', '1207bbe5-2df5-4c86-8f54-1b2675a86859',
- 'eea3b0b0-deae-41de-b010-d6d50855d016', 'ca8b0278-744c-4a3f-a2b8-6ab29d76fa7f',
- '68d37bc8-28b9-49fd-9e02-48a3c9195fdf', '8bf13f61-c5cc-4332-aab9-37405d1fdd14',
- '8ceef7de-9408-48d1-8bb9-b8ac3ef73596', '7e053a85-b04c-484b-8815-d26ce646c748',
- 'dfc09237-85b7-4596-b4e8-0bfbfd1aaeb7', 'd8d291ab-9dfa-45c0-bfc2-0a81167e3c63',
- 'd0834157-d464-4632-b620-147e211e0614', '30758f35-fabc-48bc-b410-47450de64c82',
- '7232bc80-a9cb-4668-9449-16b9282a2331', '29a194bd-2ecc-44bc-a6a9-6b8a25c3d860',
- '52b43400-117a-4e16-81b8-b510fe987750', '52ef0c45-9ba1-4d5e-ba0c-82703196ec6c',
- '9f0fa778-e6ae-4f7b-b4fd-2ccb1bd37eb7', '54b57afd-c91c-4d5f-8177-c3fe940bc723',
- '23620661-6eb6-41df-9de4-18ff99e6f35f', 'c983fe89-6ac3-4395-882e-4b11aa11a99d',
- 'd4d01494-e7d0-4a38-aa93-523a77855371', 'e5a77df6-fd29-48c7-8df6-f625de0179e7',
- 'bca45eef-fc64-465f-9106-403814f180a0', '3b5c305d-be5e-4209-9ba2-c2d1620a5a4f',
- '14c533a5-c15c-493b-8c7d-7c20a0bc5ea1', '7b3b1e40-c75d-4c2c-843b-1599c10123c2',
- '54604482-72aa-4d64-a3bb-9d8dc4a38b41', 'baf6f609-2dce-4978-840b-b74261c5ba6d',
- '250c536f-6cd9-4707-8706-b682961be032', 'a9b08140-ae44-409a-9941-22794c3fd097',
- 'e516bd18-c46f-46b5-88dc-c7eac5a0f5a9', '6a220133-c71f-44df-8912-16f5b72568cb',
- 'b63c2adf-b8f3-4e43-8651-44574475621f', '01d88287-387b-4a34-b6d3-0931aba8eb1a',
- 'eb0cef3d-4e2b-45b3-88df-fc547a763d01', 'a79dee0f-8579-4e0a-b77f-0a468a3ca71f',
- '62e50edb-03e6-4f95-a6f4-8ff3ef28a32b', '337fffe8-cc68-44b7-9636-2433f86ed5a9',
- 'bd68f7b7-f8bb-489e-ac29-f8cbfe1978b3', '93d2a7d6-06a6-41bf-9632-c24e1f1c917a']
+ quiz_list = [
+ "c63d4d39-767e-4754-8c16-66c3c2d9633c",
+ "a73689d2-1108-4524-88e1-10c54282346c",
+ "e8e2d869-7c75-4ad6-8872-031bc8e37fa9",
+ "387b4139-9e77-4b47-93b7-dbb6d75c54d1",
+ "a1fff657-b99d-4547-93cf-4e9629994844",
+ "0880d792-a77e-4cba-8a8b-359de40ffe76",
+ "e2d12f01-a3dd-4d0e-a6c4-29f38046117f",
+ "e0af9b8e-8840-4a7d-8d51-3d02bb6a07e7",
+ "e655c086-558d-4602-99fd-5fc429ffe0ce",
+ "1642f29d-b5cb-4213-82e6-7c1fae401aca",
+ "fabdd572-da3e-4621-b912-41b9bc5a18fb",
+ "ded3cbbf-5af3-4761-a6da-b3b6ca040e1a",
+ "370b3e33-ed97-4d36-9362-7f76aa9d12b9",
+ "cfa32a28-1a01-47f1-9bca-c85640bceeb8",
+ "993f615d-6890-4dd3-ac08-f462de9ac5a3",
+ "7f08a377-e371-425e-95f9-7196401ae7ff",
+ "19656fed-5891-48e7-ae7f-1358f623bfd0",
+ "5e766d32-930a-4640-82a1-87c58612f579",
+ "ab2450e8-ecbb-4aed-bb3c-87e47b2b81f5",
+ "dd3c9175-addd-48df-8297-7598d4f12006",
+ "b8de862c-fc4b-4df6-9fa5-81b91868fc3b",
+ "3b082f4e-9c50-45ea-98c4-3845b14e400c",
+ "10179f67-a344-4fd0-80a1-d1e1b6ca7953",
+ "8288c1dd-9675-411c-9175-4180004da3c3",
+ "af838c22-dcbb-497d-8c7b-f6499835b83d",
+ "152c5fdb-3b0a-4cdf-a0d9-1984de0643ad",
+ "846fd2bb-6b95-4333-b5d4-ef0a363e73a9",
+ "dd6b446f-817b-469b-9e6b-e1d34c466a7f",
+ "2720d636-8918-4c6a-86a9-928c489382f4",
+ "a6985641-df97-4e56-97fc-e0901e32b464",
+ "1d2705b4-b79e-4b51-8d61-cfb60fc7d1b9",
+ "677fa485-4231-4479-beb2-fe757053bf41",
+ "2b6379f8-450e-46c0-a854-5e368a03d5a6",
+ "f3ba42fe-11e8-47fc-8978-8d67bc0ce0b1",
+ "51d2e839-a9d7-4f26-b1fd-fb0743c3a236",
+ "f2212243-4553-456d-87e7-7ddfd6ee7563",
+ "2d6982d3-7b46-4022-bbb6-cb5451c581ba",
+ "1cccae22-5140-46b5-ba6a-aa17cec14dc3",
+ "b01dd2c2-ffcf-4c02-a274-e12296dbe4e1",
+ "2669d193-a81f-4752-a003-dd2433beef92",
+ "06203ee6-3615-4e26-bb08-4fab249698a4",
+ "933c1426-c759-43a3-9770-c8e3948db998",
+ "02046384-fb05-4f1d-855a-f0e52a0761e3",
+ "b5266e9b-7372-4df0-94a9-ec8a6c0aabc6",
+ "fb8e3a3d-505a-4157-bd9a-b73b00591f10",
+ "42092675-9171-400f-ab4d-c898ec9f70bd",
+ "1d6307e2-98c2-42f2-b765-d02a68e0da80",
+ "8f431ed0-31df-4435-bcba-aff46929fe82",
+ "d573d76f-d715-4a54-bdde-7ac7b6235fb2",
+ "feb8985b-84fb-4d41-bc41-70c322f508fa",
+ "f9f945cc-c166-4f7d-a95f-f0be154c43cf",
+ "009b130a-1709-41a6-943d-85eee4889792",
+ "a3f765f7-2329-47e0-83eb-0837b4b54b43",
+ "fea9e558-206f-444a-8d7f-a3f0301fda8d",
+ "9b419098-ccfc-467d-9de0-db18b60d6c28",
+ "e6c2174e-3a3f-4193-9782-1bf3b5cfae63",
+ "d42c962e-1691-4fa4-8926-c33157423bd2",
+ "8d27aa83-a103-4f05-8230-69e857bc3ffd",
+ "60cd19b2-6858-4704-b07b-5196e8e24325",
+ "31624ea4-1e4f-4f90-ae4f-759a0eb93b61",
+ "fcd038f4-6b05-485b-afe3-ce67e05b1695",
+ "1207bbe5-2df5-4c86-8f54-1b2675a86859",
+ "eea3b0b0-deae-41de-b010-d6d50855d016",
+ "ca8b0278-744c-4a3f-a2b8-6ab29d76fa7f",
+ "68d37bc8-28b9-49fd-9e02-48a3c9195fdf",
+ "8bf13f61-c5cc-4332-aab9-37405d1fdd14",
+ "8ceef7de-9408-48d1-8bb9-b8ac3ef73596",
+ "7e053a85-b04c-484b-8815-d26ce646c748",
+ "dfc09237-85b7-4596-b4e8-0bfbfd1aaeb7",
+ "d8d291ab-9dfa-45c0-bfc2-0a81167e3c63",
+ "d0834157-d464-4632-b620-147e211e0614",
+ "30758f35-fabc-48bc-b410-47450de64c82",
+ "7232bc80-a9cb-4668-9449-16b9282a2331",
+ "29a194bd-2ecc-44bc-a6a9-6b8a25c3d860",
+ "52b43400-117a-4e16-81b8-b510fe987750",
+ "52ef0c45-9ba1-4d5e-ba0c-82703196ec6c",
+ "9f0fa778-e6ae-4f7b-b4fd-2ccb1bd37eb7",
+ "54b57afd-c91c-4d5f-8177-c3fe940bc723",
+ "23620661-6eb6-41df-9de4-18ff99e6f35f",
+ "c983fe89-6ac3-4395-882e-4b11aa11a99d",
+ "d4d01494-e7d0-4a38-aa93-523a77855371",
+ "e5a77df6-fd29-48c7-8df6-f625de0179e7",
+ "bca45eef-fc64-465f-9106-403814f180a0",
+ "3b5c305d-be5e-4209-9ba2-c2d1620a5a4f",
+ "14c533a5-c15c-493b-8c7d-7c20a0bc5ea1",
+ "7b3b1e40-c75d-4c2c-843b-1599c10123c2",
+ "54604482-72aa-4d64-a3bb-9d8dc4a38b41",
+ "baf6f609-2dce-4978-840b-b74261c5ba6d",
+ "250c536f-6cd9-4707-8706-b682961be032",
+ "a9b08140-ae44-409a-9941-22794c3fd097",
+ "e516bd18-c46f-46b5-88dc-c7eac5a0f5a9",
+ "6a220133-c71f-44df-8912-16f5b72568cb",
+ "b63c2adf-b8f3-4e43-8651-44574475621f",
+ "01d88287-387b-4a34-b6d3-0931aba8eb1a",
+ "eb0cef3d-4e2b-45b3-88df-fc547a763d01",
+ "a79dee0f-8579-4e0a-b77f-0a468a3ca71f",
+ "62e50edb-03e6-4f95-a6f4-8ff3ef28a32b",
+ "337fffe8-cc68-44b7-9636-2433f86ed5a9",
+ "bd68f7b7-f8bb-489e-ac29-f8cbfe1978b3",
+ "93d2a7d6-06a6-41bf-9632-c24e1f1c917a",
+ ]
rounds = 0
for i in quiz_list:
rounds = rounds + 1
diff --git a/classquiz/tests/test_kahoot_search.py b/classquiz/tests/test_kahoot_search.py
index 62853be..4ac1efc 100644
--- a/classquiz/tests/test_kahoot_search.py
+++ b/classquiz/tests/test_kahoot_search.py
@@ -1,10 +1,12 @@
-from classquiz.kahoot_importer.search import search
import pytest
+from classquiz.kahoot_importer.search import search
+
@pytest.mark.asyncio
async def test_search():
res = await search(query="Python", limit=100)
+ print(res)
assert len(res.entities) == 100
await search(query="Test Quiz", limit=100)
await search(query="Biologie", limit=100)
diff --git a/classquiz/tests/test_storage.py b/classquiz/tests/test_storage.py
index a22f814..adc26b7 100644
--- a/classquiz/tests/test_storage.py
+++ b/classquiz/tests/test_storage.py
@@ -1,4 +1,5 @@
import pytest
+
from classquiz.config import settings
from classquiz.storage import Storage
@@ -9,11 +10,14 @@ file_contents = b"hello world"
def test_storage_init():
with pytest.raises(NotImplementedError):
- Storage(backend="asdsad", deta_key=settings.deta_project_key,
- deta_id=settings.deta_project_id, storage_path=settings.storage_path)
+ Storage(
+ backend="asdsad",
+ deta_key=settings.deta_project_key,
+ deta_id=settings.deta_project_id,
+ storage_path=settings.storage_path,
+ )
with pytest.raises(ValueError):
- Storage(backend="deta", deta_key=None,
- deta_id=None, storage_path=None)
+ Storage(backend="deta", deta_key=None, deta_id=None, storage_path=None)
with pytest.raises(ValueError):
Storage(backend="local", storage_path=None, deta_key=None, deta_id=None)
@@ -33,8 +37,12 @@ async def storage_tester(storage: Storage):
@pytest.mark.asyncio
async def test_deta():
- storage: Storage = Storage(backend="deta", deta_key=settings.deta_project_key,
- deta_id=settings.deta_project_id, storage_path=settings.storage_path)
+ storage: Storage = Storage(
+ backend="deta",
+ deta_key=settings.deta_project_key,
+ deta_id=settings.deta_project_id,
+ storage_path=settings.storage_path,
+ )
await storage_tester(storage)
diff --git a/frontend/Dockerfile b/frontend/Dockerfile
index 09786bb..0ebef4a 100644
--- a/frontend/Dockerfile
+++ b/frontend/Dockerfile
@@ -1,6 +1,6 @@
### Build Step
# pull the Node.js Docker image
-FROM node:16 as builder
+FROM node:17.8-bullseye as builder
# ENV API_URL=http://api:80
ENV API_URL=https://mawoka.eu
ENV REDIS_URL=CHANGE_ME
@@ -11,9 +11,10 @@ WORKDIR /usr/src/app
# copy the package.json files from local machine to the workdir in container
COPY package*.json ./
+COPY pnpm-lock.yaml ./
# run npm install in our local machine
-RUN apt update && apt install -y curl && curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm && pnpm i
+RUN corepack enable && corepack prepare pnpm@7.0.0-rc.2 --activate && pnpm i
# copy the generated modules and all other files to the container
COPY . .
@@ -23,14 +24,15 @@ RUN pnpm run build
### Serve Step
# pull the Node.js Docker image
-FROM node:16
+FROM node:17.8-bullseye-slim
# change working directory
WORKDIR /app
-RUN apt update && apt install -y curl && curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm && apt purge curl -y && apt autoremove -y
+RUN corepack enable && corepack prepare pnpm@7.0.0-rc.2 --activate && pnpm i
# copy files from previous step
COPY --from=builder /usr/src/app/build .
COPY --from=builder /usr/src/app/package.json .
+COPY --from=builder /usr/src/app/pnpm-lock.yaml .
COPY --from=builder /usr/src/app/node_modules ./node_modules
# our app is running on port 3000 within the container, so need to expose it
diff --git a/frontend/package.json b/frontend/package.json
index afcd6ed..0b17e87 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -22,6 +22,8 @@
"@sveltejs/adapter-node": "^1.0.0-next.71",
"@sveltejs/kit": "next",
"@tailwindcss/typography": "^0.5.0-alpha.3",
+ "@types/cookie": "^0.4.1",
+ "@types/ioredis": "^4.28.10",
"@types/js-cookie": "^3.0.1",
"@types/luxon": "^2.0.9",
"@types/yup": "^0.29.13",
diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml
index 465eb3f..ac03127 100644
--- a/frontend/pnpm-lock.yaml
+++ b/frontend/pnpm-lock.yaml
@@ -1,4200 +1,3191 @@
lockfileVersion: 5.3
specifiers:
- '@felte/validator-yup': ^1.0.1
- '@fontsource/marck-script': ^4.5.2
- '@sentry/browser': ^6.18.2
- '@sentry/tracing': ^6.18.2
- '@sveltejs/adapter-auto': next
- '@sveltejs/adapter-node': ^1.0.0-next.71
- '@sveltejs/kit': next
- '@tailwindcss/typography': ^0.5.0-alpha.3
- '@types/js-cookie': ^3.0.1
- '@types/luxon': ^2.0.9
- '@types/yup': ^0.29.13
- '@typescript-eslint/eslint-plugin': ^5.10.1
- '@typescript-eslint/parser': ^5.10.1
- autoprefixer: ^10.4.2
- cookie: ^0.4.2
- eslint: ^7.32.0
- eslint-config-prettier: ^8.3.0
- eslint-plugin-svelte3: ^3.2.1
- felte: ^1.0.1
- highlight.js: ^11.4.0
- i18next: ^21.6.14
- i18next-browser-languagedetector: ^6.1.4
- i18next-scanner: ^3.1.0
- ioredis: ^4.28.5
- js-cookie: ^3.0.1
- luxon: ^2.3.1
- node-fetch: ^3.2.0
- postcss: ^8.4.5
- postcss-load-config: ^3.1.1
- prettier: ^2.5.1
- prettier-plugin-svelte: ^2.5.0
- sass: ^1.49.9
- socket.io-client: ^4.4.1
- svelte: ^3.44.0
- svelte-check: ^2.2.6
- svelte-preprocess: ^4.10.1
- sveltejs-tippy: ^3.0.0
- tailwindcss: ^3.0.12
- tslib: ^2.3.1
- typescript: ~4.5.4
- yup: ^0.32.11
+ '@felte/validator-yup': ^1.0.1
+ '@fontsource/marck-script': ^4.5.2
+ '@sentry/browser': ^6.18.2
+ '@sentry/tracing': ^6.18.2
+ '@sveltejs/adapter-auto': next
+ '@sveltejs/adapter-node': ^1.0.0-next.71
+ '@sveltejs/kit': next
+ '@tailwindcss/typography': ^0.5.0-alpha.3
+ '@types/cookie': ^0.4.1
+ '@types/ioredis': ^4.28.10
+ '@types/js-cookie': ^3.0.1
+ '@types/luxon': ^2.0.9
+ '@types/yup': ^0.29.13
+ '@typescript-eslint/eslint-plugin': ^5.10.1
+ '@typescript-eslint/parser': ^5.10.1
+ autoprefixer: ^10.4.2
+ cookie: ^0.4.2
+ eslint: ^7.32.0
+ eslint-config-prettier: ^8.3.0
+ eslint-plugin-svelte3: ^3.2.1
+ felte: ^1.0.1
+ highlight.js: ^11.4.0
+ i18next: ^21.6.14
+ i18next-browser-languagedetector: ^6.1.4
+ i18next-scanner: ^3.1.0
+ ioredis: ^4.28.5
+ js-cookie: ^3.0.1
+ luxon: ^2.3.1
+ node-fetch: ^3.2.0
+ postcss: ^8.4.5
+ postcss-load-config: ^3.1.1
+ prettier: ^2.5.1
+ prettier-plugin-svelte: ^2.5.0
+ sass: ^1.49.9
+ socket.io-client: ^4.4.1
+ svelte: ^3.44.0
+ svelte-check: ^2.2.6
+ svelte-preprocess: ^4.10.1
+ sveltejs-tippy: ^3.0.0
+ tailwindcss: ^3.0.12
+ tslib: ^2.3.1
+ typescript: ~4.5.4
+ yup: ^0.32.11
dependencies:
- i18next: 21.6.14
+ i18next: 21.6.14
devDependencies:
- '@felte/validator-yup': 1.0.1_yup@0.32.11
- '@fontsource/marck-script': 4.5.2
- '@sentry/browser': 6.18.2
- '@sentry/tracing': 6.18.2
- '@sveltejs/adapter-auto': 1.0.0-next.33
- '@sveltejs/adapter-node': 1.0.0-next.71
- '@sveltejs/kit': 1.0.0-next.303_sass@1.49.9+svelte@3.46.4
- '@tailwindcss/typography': 0.5.0-alpha.3_tailwindcss@3.0.23
- '@types/js-cookie': 3.0.1
- '@types/luxon': 2.0.9
- '@types/yup': 0.29.13
- '@typescript-eslint/eslint-plugin': 5.12.1_78ba2542c270c83b2a80bb1c125195b6
- '@typescript-eslint/parser': 5.12.1_eslint@7.32.0+typescript@4.5.5
- autoprefixer: 10.4.2_postcss@8.4.7
- cookie: 0.4.2
- eslint: 7.32.0
- eslint-config-prettier: 8.4.0_eslint@7.32.0
- eslint-plugin-svelte3: 3.4.1_eslint@7.32.0+svelte@3.46.4
- felte: 1.0.1_svelte@3.46.4
- highlight.js: 11.4.0
- i18next-browser-languagedetector: 6.1.4
- i18next-scanner: 3.1.0
- ioredis: 4.28.5
- js-cookie: 3.0.1
- luxon: 2.3.1
- node-fetch: 3.2.0
- postcss: 8.4.7
- postcss-load-config: 3.1.3
- prettier: 2.5.1
- prettier-plugin-svelte: 2.6.0_prettier@2.5.1+svelte@3.46.4
- sass: 1.49.9
- socket.io-client: 4.4.1
- svelte: 3.46.4
- svelte-check: 2.4.5_bb21b93d557fc716a6ae071c4dce10e1
- svelte-preprocess: 4.10.4_c54fd0a3479054b5002c3dc2e70c9c9a
- sveltejs-tippy: 3.0.0
- tailwindcss: 3.0.23_autoprefixer@10.4.2
- tslib: 2.3.1
- typescript: 4.5.5
- yup: 0.32.11
+ '@felte/validator-yup': 1.0.1_yup@0.32.11
+ '@fontsource/marck-script': 4.5.2
+ '@sentry/browser': 6.18.2
+ '@sentry/tracing': 6.18.2
+ '@sveltejs/adapter-auto': 1.0.0-next.34
+ '@sveltejs/adapter-node': 1.0.0-next.71
+ '@sveltejs/kit': 1.0.0-next.310_sass@1.49.9+svelte@3.46.4
+ '@tailwindcss/typography': 0.5.0-alpha.3_tailwindcss@3.0.23
+ '@types/cookie': 0.4.1
+ '@types/ioredis': 4.28.10
+ '@types/js-cookie': 3.0.1
+ '@types/luxon': 2.0.9
+ '@types/yup': 0.29.13
+ '@typescript-eslint/eslint-plugin': 5.12.1_78ba2542c270c83b2a80bb1c125195b6
+ '@typescript-eslint/parser': 5.12.1_eslint@7.32.0+typescript@4.5.5
+ autoprefixer: 10.4.2_postcss@8.4.7
+ cookie: 0.4.2
+ eslint: 7.32.0
+ eslint-config-prettier: 8.4.0_eslint@7.32.0
+ eslint-plugin-svelte3: 3.4.1_eslint@7.32.0+svelte@3.46.4
+ felte: 1.0.1_svelte@3.46.4
+ highlight.js: 11.4.0
+ i18next-browser-languagedetector: 6.1.4
+ i18next-scanner: 3.1.0
+ ioredis: 4.28.5
+ js-cookie: 3.0.1
+ luxon: 2.3.1
+ node-fetch: 3.2.0
+ postcss: 8.4.7
+ postcss-load-config: 3.1.3
+ prettier: 2.5.1
+ prettier-plugin-svelte: 2.6.0_prettier@2.5.1+svelte@3.46.4
+ sass: 1.49.9
+ socket.io-client: 4.4.1
+ svelte: 3.46.4
+ svelte-check: 2.4.5_bb21b93d557fc716a6ae071c4dce10e1
+ svelte-preprocess: 4.10.4_c54fd0a3479054b5002c3dc2e70c9c9a
+ sveltejs-tippy: 3.0.0
+ tailwindcss: 3.0.23_autoprefixer@10.4.2
+ tslib: 2.3.1
+ typescript: 4.5.5
+ yup: 0.32.11
packages:
- /@babel/code-frame/7.12.11:
- resolution:
- {
- integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
- }
- dependencies:
- '@babel/highlight': 7.16.10
- dev: true
- /@babel/helper-validator-identifier/7.16.7:
- resolution:
- {
- integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==
- }
- engines: { node: '>=6.9.0' }
- dev: true
-
- /@babel/highlight/7.16.10:
- resolution:
- {
- integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==
- }
- engines: { node: '>=6.9.0' }
- dependencies:
- '@babel/helper-validator-identifier': 7.16.7
- chalk: 2.4.2
- js-tokens: 4.0.0
- dev: true
-
- /@babel/runtime/7.17.2:
- resolution:
- {
- integrity: sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==
- }
- engines: { node: '>=6.9.0' }
- dependencies:
- regenerator-runtime: 0.13.9
-
- /@eslint/eslintrc/0.4.3:
- resolution:
- {
- integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==
- }
- engines: { node: ^10.12.0 || >=12.0.0 }
- dependencies:
- ajv: 6.12.6
- debug: 4.3.3
- espree: 7.3.1
- globals: 13.12.1
- ignore: 4.0.6
- import-fresh: 3.3.0
- js-yaml: 3.14.1
- minimatch: 3.1.2
- strip-json-comments: 3.1.1
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@felte/common/1.0.1:
- resolution:
- {
- integrity: sha512-P905IdJzdiawo+YsnM5Cg2ziou5VHBDCCiVHXqGFBrEmq/RyxSdOfuRbOBKAz3l5eigQl8QGK26b3rVLz7mxRQ==
- }
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
- dev: true
-
- /@felte/core/1.0.1:
- resolution:
- {
- integrity: sha512-wrdiiQIfw4fDTVN9THowqSQcckkwrW8EN92mIKqqa+wbcYz7cSBAi3GtgNWJcZuEV631ij2nnygQnxV/8hhdnA==
- }
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
- dependencies:
- '@felte/common': 1.0.1
- dev: true
-
- /@felte/validator-yup/1.0.1_yup@0.32.11:
- resolution:
- {
- integrity: sha512-lylJ5FlzZeUh3/NJJyPPF0uBlj4Fi4YmCdt3M7saPOrGZJsr09AD8o+fXQr4aUllwbIFbjN3z6zkSpYE1wYAqA==
- }
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
- peerDependencies:
- yup: ^0.32.9
- dependencies:
- '@felte/common': 1.0.1
- yup: 0.32.11
- dev: true
-
- /@fontsource/marck-script/4.5.2:
- resolution:
- {
- integrity: sha512-uqy1//nAM1INtRvVPD/E1FQEk+Hf4DpudVSvmrXkCE/oUU87V/saKw5Xuz4QLhJVbcL1oYjqrMzC91H3jclt5g==
- }
- dev: true
-
- /@humanwhocodes/config-array/0.5.0:
- resolution:
- {
- integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==
- }
- engines: { node: '>=10.10.0' }
- dependencies:
- '@humanwhocodes/object-schema': 1.2.1
- debug: 4.3.3
- minimatch: 3.1.2
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@humanwhocodes/object-schema/1.2.1:
- resolution:
- {
- integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
- }
- dev: true
-
- /@iarna/toml/2.2.5:
- resolution:
- {
- integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==
- }
- dev: true
-
- /@nodelib/fs.scandir/2.1.5:
- resolution:
- {
- integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
- }
- engines: { node: '>= 8' }
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- run-parallel: 1.2.0
- dev: true
-
- /@nodelib/fs.stat/2.0.5:
- resolution:
- {
- integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
- }
- engines: { node: '>= 8' }
- dev: true
-
- /@nodelib/fs.walk/1.2.8:
- resolution:
- {
- integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
- }
- engines: { node: '>= 8' }
- dependencies:
- '@nodelib/fs.scandir': 2.1.5
- fastq: 1.13.0
- dev: true
-
- /@popperjs/core/2.11.2:
- resolution:
- {
- integrity: sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==
- }
- dev: true
-
- /@rollup/pluginutils/4.1.2:
- resolution:
- {
- integrity: sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ==
- }
- engines: { node: '>= 8.0.0' }
- dependencies:
- estree-walker: 2.0.2
- picomatch: 2.3.1
- dev: true
-
- /@sentry/browser/6.18.2:
- resolution:
- {
- integrity: sha512-EsqKSNboi2gOiMuEwQranLucxrARi00y2vgUnaPXcqTKTlVlHDetoWHvq8/r29idA1JHGka5tDrwrmWccWIkrg==
- }
- engines: { node: '>=6' }
- dependencies:
- '@sentry/core': 6.18.2
- '@sentry/types': 6.18.2
- '@sentry/utils': 6.18.2
- tslib: 1.14.1
- dev: true
-
- /@sentry/core/6.18.2:
- resolution:
- {
- integrity: sha512-r5ad/gq5S/JHc9sd5CUhZQT9ojQ+f+thk/AoGeGawX/8HURZYAgIqD565d6FK0VsZEDkdRMl58z1Qon20h3y1g==
- }
- engines: { node: '>=6' }
- dependencies:
- '@sentry/hub': 6.18.2
- '@sentry/minimal': 6.18.2
- '@sentry/types': 6.18.2
- '@sentry/utils': 6.18.2
- tslib: 1.14.1
- dev: true
-
- /@sentry/hub/6.18.2:
- resolution:
- {
- integrity: sha512-d0AugekMkbnN12b4EXMjseJxtLPc9S20DGobCPUb4oAQT6S2oDQEj1jwP6PQ5vtgyy+GMYWxBMgqAQ4pjVYISQ==
- }
- engines: { node: '>=6' }
- dependencies:
- '@sentry/types': 6.18.2
- '@sentry/utils': 6.18.2
- tslib: 1.14.1
- dev: true
-
- /@sentry/minimal/6.18.2:
- resolution:
- {
- integrity: sha512-n7KYuo34W2LxE+3dnZ47of7XHuORINCnXq66XH72eoj67tf0XeWbIhEJrYGmoLRyRfoCYYrBLWiDl/uTjLzrzQ==
- }
- engines: { node: '>=6' }
- dependencies:
- '@sentry/hub': 6.18.2
- '@sentry/types': 6.18.2
- tslib: 1.14.1
- dev: true
-
- /@sentry/tracing/6.18.2:
- resolution:
- {
- integrity: sha512-hg6NLqrqJ5sUPTyWEQ2RqdnhQVnyLtx8II0IyWxQLDWD8UCe3Mu6G7mroDtakPWcP+lWz6OnKfMEfuhMcxR8fw==
- }
- engines: { node: '>=6' }
- dependencies:
- '@sentry/hub': 6.18.2
- '@sentry/minimal': 6.18.2
- '@sentry/types': 6.18.2
- '@sentry/utils': 6.18.2
- tslib: 1.14.1
- dev: true
-
- /@sentry/types/6.18.2:
- resolution:
- {
- integrity: sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw==
- }
- engines: { node: '>=6' }
- dev: true
-
- /@sentry/utils/6.18.2:
- resolution:
- {
- integrity: sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw==
- }
- engines: { node: '>=6' }
- dependencies:
- '@sentry/types': 6.18.2
- tslib: 1.14.1
- dev: true
-
- /@socket.io/base64-arraybuffer/1.0.2:
- resolution:
- {
- integrity: sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==
- }
- engines: { node: '>= 0.6.0' }
- dev: true
-
- /@socket.io/component-emitter/3.0.0:
- resolution:
- {
- integrity: sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q==
- }
- dev: true
-
- /@sveltejs/adapter-auto/1.0.0-next.33:
- resolution:
- {
- integrity: sha512-FVEBSw5XIYCrqMPY2VGmaGyT4ZvbahcdQJ613O4lgAoafRdUy7ZaE8GoeDmCJxtTUsqhAQUFu7jx9IIhz+QrsQ==
- }
- dependencies:
- '@sveltejs/adapter-cloudflare': 1.0.0-next.16
- '@sveltejs/adapter-netlify': 1.0.0-next.51
- '@sveltejs/adapter-vercel': 1.0.0-next.47
- dev: true
-
- /@sveltejs/adapter-cloudflare/1.0.0-next.16:
- resolution:
- {
- integrity: sha512-ripTRtOasAtxDJEIF3kwwji/9WHfX069i5LuRwGUzOi4/cbcGfgV1RFBVfo/8G6hr3ehqLeKCdloet1yTsp34A==
- }
- dependencies:
- esbuild: 0.14.23
- dev: true
-
- /@sveltejs/adapter-netlify/1.0.0-next.51:
- resolution:
- {
- integrity: sha512-P7/cW/0z8zd8J6DOI2yxKZG0+HRMMuzfOf0yzFXX0vRwBePhKlZ/H4qhTOo2NrCmj3Len545o+ugj5gyMXl1+g==
- }
- dependencies:
- '@iarna/toml': 2.2.5
- esbuild: 0.14.23
- tiny-glob: 0.2.9
- dev: true
-
- /@sveltejs/adapter-node/1.0.0-next.71:
- resolution:
- {
- integrity: sha512-ELSQBSyk0IHMRi5Zct95jP+lTUJ0VQ/d7DxPMQTaDYVexpehDBOV6bXDzSNBl9boIIfEv77VD3lA7kgtuJnGdg==
- }
- dependencies:
- tiny-glob: 0.2.9
- dev: true
-
- /@sveltejs/adapter-vercel/1.0.0-next.47:
- resolution:
- {
- integrity: sha512-VV3vP8KqL9XOc7xfQLVhXTM5jrTme+r1qJy98u5/dhAhkdjqrGDwAKo/s7MoB3rTYxLb2b8I4QxAaoz2Y2aIBg==
- }
- dependencies:
- esbuild: 0.14.23
- dev: true
-
- /@sveltejs/kit/1.0.0-next.303_sass@1.49.9+svelte@3.46.4:
- resolution:
- {
- integrity: sha512-WdxDc8OiF1WEd/bEza7CBdzA+3qIcCi1GKBj/gieKX9I3N8iDJt/Cg2POrLo9wQoJ47nZcAd1eOhfr7XEX1aIQ==
- }
- engines: { node: '>=14.13' }
- hasBin: true
- peerDependencies:
- svelte: ^3.44.0
- dependencies:
- '@sveltejs/vite-plugin-svelte': 1.0.0-next.37_svelte@3.46.4+vite@2.8.4
- sade: 1.8.1
- svelte: 3.46.4
- vite: 2.8.4_sass@1.49.9
- transitivePeerDependencies:
- - diff-match-patch
- - less
- - sass
- - stylus
- - supports-color
- dev: true
-
- /@sveltejs/vite-plugin-svelte/1.0.0-next.37_svelte@3.46.4+vite@2.8.4:
- resolution:
- {
- integrity: sha512-EdSXw2rXeOahNrQfMJVZxa/NxZxW1a0TiBI3s+pVxnxU14hEQtnkLtdbTFhnceu22gJpNPFSIJRcIwRBBDQIeA==
- }
- engines: { node: ^14.13.1 || >= 16 }
- peerDependencies:
- diff-match-patch: ^1.0.5
- svelte: ^3.44.0
- vite: ^2.7.0
- peerDependenciesMeta:
- diff-match-patch:
- optional: true
- dependencies:
- '@rollup/pluginutils': 4.1.2
- debug: 4.3.3
- kleur: 4.1.4
- magic-string: 0.25.7
- svelte: 3.46.4
- svelte-hmr: 0.14.9_svelte@3.46.4
- vite: 2.8.4_sass@1.49.9
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@tailwindcss/typography/0.5.0-alpha.3_tailwindcss@3.0.23:
- resolution:
- {
- integrity: sha512-ySYrwcf7SaLVL7XBH61euPX4xoAytD4HVvfE4XsdExQmxxiNhWNVkvxhtP+RAbk6n3A0m0a+p3W25E19YiGj2A==
- }
- peerDependencies:
- tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || insiders'
- dependencies:
- lodash.castarray: 4.4.0
- lodash.isplainobject: 4.0.6
- lodash.merge: 4.6.2
- lodash.uniq: 4.5.0
- tailwindcss: 3.0.23_autoprefixer@10.4.2
- dev: true
-
- /@types/js-cookie/3.0.1:
- resolution:
- {
- integrity: sha512-7wg/8gfHltklehP+oyJnZrz9XBuX5ZPP4zB6UsI84utdlkRYLnOm2HfpLXazTwZA+fpGn0ir8tGNgVnMEleBGQ==
- }
- dev: true
-
- /@types/json-schema/7.0.9:
- resolution:
- {
- integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
- }
- dev: true
-
- /@types/lodash/4.14.179:
- resolution:
- {
- integrity: sha512-uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w==
- }
- dev: true
-
- /@types/luxon/2.0.9:
- resolution:
- {
- integrity: sha512-ZuzIc7aN+i2ZDMWIiSmMdubR9EMMSTdEzF6R+FckP4p6xdnOYKqknTo/k+xXQvciSXlNGIwA4OPU5X7JIFzYdA==
- }
- dev: true
-
- /@types/node/17.0.21:
- resolution:
- {
- integrity: sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==
- }
- dev: true
-
- /@types/parse-json/4.0.0:
- resolution:
- {
- integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
- }
- dev: true
-
- /@types/pug/2.0.6:
- resolution:
- {
- integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==
- }
- dev: true
-
- /@types/sass/1.43.1:
- resolution:
- {
- integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==
- }
- dependencies:
- '@types/node': 17.0.21
- dev: true
-
- /@types/yup/0.29.13:
- resolution:
- {
- integrity: sha512-qRyuv+P/1t1JK1rA+elmK1MmCL1BapEzKKfbEhDBV/LMMse4lmhZ/XbgETI39JveDJRpLjmToOI6uFtMW/WR2g==
- }
- dev: true
-
- /@typescript-eslint/eslint-plugin/5.12.1_78ba2542c270c83b2a80bb1c125195b6:
- resolution:
- {
- integrity: sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==
- }
- engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
- peerDependencies:
- '@typescript-eslint/parser': ^5.0.0
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
- dependencies:
- '@typescript-eslint/parser': 5.12.1_eslint@7.32.0+typescript@4.5.5
- '@typescript-eslint/scope-manager': 5.12.1
- '@typescript-eslint/type-utils': 5.12.1_eslint@7.32.0+typescript@4.5.5
- '@typescript-eslint/utils': 5.12.1_eslint@7.32.0+typescript@4.5.5
- debug: 4.3.3
- eslint: 7.32.0
- functional-red-black-tree: 1.0.1
- ignore: 5.2.0
- regexpp: 3.2.0
- semver: 7.3.5
- tsutils: 3.21.0_typescript@4.5.5
- typescript: 4.5.5
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@typescript-eslint/parser/5.12.1_eslint@7.32.0+typescript@4.5.5:
- resolution:
- {
- integrity: sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==
- }
- engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
- dependencies:
- '@typescript-eslint/scope-manager': 5.12.1
- '@typescript-eslint/types': 5.12.1
- '@typescript-eslint/typescript-estree': 5.12.1_typescript@4.5.5
- debug: 4.3.3
- eslint: 7.32.0
- typescript: 4.5.5
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@typescript-eslint/scope-manager/5.12.1:
- resolution:
- {
- integrity: sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==
- }
- engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
- dependencies:
- '@typescript-eslint/types': 5.12.1
- '@typescript-eslint/visitor-keys': 5.12.1
- dev: true
-
- /@typescript-eslint/type-utils/5.12.1_eslint@7.32.0+typescript@4.5.5:
- resolution:
- {
- integrity: sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==
- }
- engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
- peerDependencies:
- eslint: '*'
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
- dependencies:
- '@typescript-eslint/utils': 5.12.1_eslint@7.32.0+typescript@4.5.5
- debug: 4.3.3
- eslint: 7.32.0
- tsutils: 3.21.0_typescript@4.5.5
- typescript: 4.5.5
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@typescript-eslint/types/5.12.1:
- resolution:
- {
- integrity: sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==
- }
- engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
- dev: true
-
- /@typescript-eslint/typescript-estree/5.12.1_typescript@4.5.5:
- resolution:
- {
- integrity: sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==
- }
- engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
- peerDependencies:
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
- dependencies:
- '@typescript-eslint/types': 5.12.1
- '@typescript-eslint/visitor-keys': 5.12.1
- debug: 4.3.3
- globby: 11.1.0
- is-glob: 4.0.3
- semver: 7.3.5
- tsutils: 3.21.0_typescript@4.5.5
- typescript: 4.5.5
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /@typescript-eslint/utils/5.12.1_eslint@7.32.0+typescript@4.5.5:
- resolution:
- {
- integrity: sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==
- }
- engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- dependencies:
- '@types/json-schema': 7.0.9
- '@typescript-eslint/scope-manager': 5.12.1
- '@typescript-eslint/types': 5.12.1
- '@typescript-eslint/typescript-estree': 5.12.1_typescript@4.5.5
- eslint: 7.32.0
- eslint-scope: 5.1.1
- eslint-utils: 3.0.0_eslint@7.32.0
- transitivePeerDependencies:
- - supports-color
- - typescript
- dev: true
-
- /@typescript-eslint/visitor-keys/5.12.1:
- resolution:
- {
- integrity: sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==
- }
- engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
- dependencies:
- '@typescript-eslint/types': 5.12.1
- eslint-visitor-keys: 3.3.0
- dev: true
-
- /acorn-class-fields/0.3.7_acorn@8.7.0:
- resolution:
- {
- integrity: sha512-jdUWSFce0fuADUljmExz4TWpPkxmRW/ZCPRqeeUzbGf0vFUcpQYbyq52l75qGd0oSwwtAepeL6hgb/naRgvcKQ==
- }
- engines: { node: '>=4.8.2' }
- peerDependencies:
- acorn: ^6 || ^7 || ^8
- dependencies:
- acorn: 8.7.0
- acorn-private-class-elements: 0.2.7_acorn@8.7.0
- dev: true
-
- /acorn-dynamic-import/4.0.0_acorn@8.7.0:
- resolution:
- {
- integrity: sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==
- }
- peerDependencies:
- acorn: ^6.0.0
- dependencies:
- acorn: 8.7.0
- dev: true
-
- /acorn-jsx/5.3.2_acorn@7.4.1:
- resolution:
- {
- integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
- }
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
- dependencies:
- acorn: 7.4.1
- dev: true
-
- /acorn-jsx/5.3.2_acorn@8.7.0:
- resolution:
- {
- integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
- }
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
- dependencies:
- acorn: 8.7.0
- dev: true
-
- /acorn-node/1.8.2:
- resolution:
- {
- integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
- }
- dependencies:
- acorn: 7.4.1
- acorn-walk: 7.2.0
- xtend: 4.0.2
- dev: true
-
- /acorn-private-class-elements/0.2.7_acorn@8.7.0:
- resolution:
- {
- integrity: sha512-+GZH2wOKNZOBI4OOPmzpo4cs6mW297sn6fgIk1dUI08jGjhAaEwvC39mN2gJAg2lmAQJ1rBkFqKWonL3Zz6PVA==
- }
- engines: { node: '>=4.8.2' }
- peerDependencies:
- acorn: ^6.1.0 || ^7 || ^8
- dependencies:
- acorn: 8.7.0
- dev: true
-
- /acorn-private-methods/0.3.3_acorn@8.7.0:
- resolution:
- {
- integrity: sha512-46oeEol3YFvLSah5m9hGMlNpxDBCEkdceJgf01AjqKYTK9r6HexKs2rgSbLK81pYjZZMonhftuUReGMlbbv05w==
- }
- engines: { node: '>=4.8.2' }
- peerDependencies:
- acorn: ^6 || ^7 || ^8
- dependencies:
- acorn: 8.7.0
- acorn-private-class-elements: 0.2.7_acorn@8.7.0
- dev: true
-
- /acorn-stage3/4.0.0_acorn@8.7.0:
- resolution:
- {
- integrity: sha512-BR+LaADtA6GTB5prkNqWmlmCLYmkyW0whvSxdHhbupTaro2qBJ95fJDEiRLPUmiACGHPaYyeH9xmNJWdGfXRQw==
- }
- engines: { node: '>=4.8.2' }
- peerDependencies:
- acorn: ^7.4 || ^8
- dependencies:
- acorn: 8.7.0
- acorn-class-fields: 0.3.7_acorn@8.7.0
- acorn-private-methods: 0.3.3_acorn@8.7.0
- acorn-static-class-features: 0.2.4_acorn@8.7.0
- dev: true
-
- /acorn-static-class-features/0.2.4_acorn@8.7.0:
- resolution:
- {
- integrity: sha512-5X4mpYq5J3pdndLmIB0+WtFd/mKWnNYpuTlTzj32wUu/PMmEGOiayQ5UrqgwdBNiaZBtDDh5kddpP7Yg2QaQYA==
- }
- engines: { node: '>=4.8.2' }
- peerDependencies:
- acorn: ^6.1.0 || ^7 || ^8
- dependencies:
- acorn: 8.7.0
- acorn-private-class-elements: 0.2.7_acorn@8.7.0
- dev: true
-
- /acorn-walk/7.2.0:
- resolution:
- {
- integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
- }
- engines: { node: '>=0.4.0' }
- dev: true
-
- /acorn-walk/8.2.0:
- resolution:
- {
- integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
- }
- engines: { node: '>=0.4.0' }
- dev: true
-
- /acorn/7.4.1:
- resolution:
- {
- integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
- }
- engines: { node: '>=0.4.0' }
- hasBin: true
- dev: true
-
- /acorn/8.7.0:
- resolution:
- {
- integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
- }
- engines: { node: '>=0.4.0' }
- hasBin: true
- dev: true
-
- /ajv/6.12.6:
- resolution:
- {
- integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
- }
- dependencies:
- fast-deep-equal: 3.1.3
- fast-json-stable-stringify: 2.1.0
- json-schema-traverse: 0.4.1
- uri-js: 4.4.1
- dev: true
-
- /ajv/8.10.0:
- resolution:
- {
- integrity: sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==
- }
- dependencies:
- fast-deep-equal: 3.1.3
- json-schema-traverse: 1.0.0
- require-from-string: 2.0.2
- uri-js: 4.4.1
- dev: true
-
- /ansi-colors/4.1.1:
- resolution:
- {
- integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
- }
- engines: { node: '>=6' }
- dev: true
-
- /ansi-regex/5.0.1:
- resolution:
- {
- integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
- }
- engines: { node: '>=8' }
- dev: true
-
- /ansi-styles/3.2.1:
- resolution:
- {
- integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
- }
- engines: { node: '>=4' }
- dependencies:
- color-convert: 1.9.3
- dev: true
-
- /ansi-styles/4.3.0:
- resolution:
- {
- integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
- }
- engines: { node: '>=8' }
- dependencies:
- color-convert: 2.0.1
- dev: true
-
- /anymatch/3.1.2:
- resolution:
- {
- integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
- }
- engines: { node: '>= 8' }
- dependencies:
- normalize-path: 3.0.0
- picomatch: 2.3.1
- dev: true
-
- /append-buffer/1.0.2:
- resolution: { integrity: sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= }
- engines: { node: '>=0.10.0' }
- dependencies:
- buffer-equal: 1.0.0
- dev: true
-
- /arg/5.0.1:
- resolution:
- {
- integrity: sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==
- }
- dev: true
-
- /argparse/1.0.10:
- resolution:
- {
- integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- }
- dependencies:
- sprintf-js: 1.0.3
- dev: true
-
- /array-union/2.1.0:
- resolution:
- {
- integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
- }
- engines: { node: '>=8' }
- dev: true
-
- /astral-regex/2.0.0:
- resolution:
- {
- integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
- }
- engines: { node: '>=8' }
- dev: true
-
- /autoprefixer/10.4.2_postcss@8.4.7:
- resolution:
- {
- integrity: sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==
- }
- engines: { node: ^10 || ^12 || >=14 }
- hasBin: true
- peerDependencies:
- postcss: ^8.1.0
- dependencies:
- browserslist: 4.19.3
- caniuse-lite: 1.0.30001312
- fraction.js: 4.1.3
- normalize-range: 0.1.2
- picocolors: 1.0.0
- postcss: 8.4.7
- postcss-value-parser: 4.2.0
- dev: true
-
- /backo2/1.0.2:
- resolution: { integrity: sha1-MasayLEpNjRj41s+u2n038+6eUc= }
- dev: true
-
- /balanced-match/1.0.2:
- resolution:
- {
- integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
- }
- dev: true
-
- /binary-extensions/2.2.0:
- resolution:
- {
- integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
- }
- engines: { node: '>=8' }
- dev: true
-
- /brace-expansion/1.1.11:
- resolution:
- {
- integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
- }
- dependencies:
- balanced-match: 1.0.2
- concat-map: 0.0.1
- dev: true
-
- /braces/3.0.2:
- resolution:
- {
- integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
- }
- engines: { node: '>=8' }
- dependencies:
- fill-range: 7.0.1
- dev: true
-
- /browserslist/4.19.3:
- resolution:
- {
- integrity: sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==
- }
- engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 }
- hasBin: true
- dependencies:
- caniuse-lite: 1.0.30001312
- electron-to-chromium: 1.4.73
- escalade: 3.1.1
- node-releases: 2.0.2
- picocolors: 1.0.0
- dev: true
-
- /buffer-crc32/0.2.13:
- resolution: { integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= }
- dev: true
-
- /buffer-equal/1.0.0:
- resolution: { integrity: sha1-WWFrSYME1Var1GaWayLu2j7KX74= }
- engines: { node: '>=0.4.0' }
- dev: true
-
- /call-bind/1.0.2:
- resolution:
- {
- integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
- }
- dependencies:
- function-bind: 1.1.1
- get-intrinsic: 1.1.1
- dev: true
-
- /callsites/3.1.0:
- resolution:
- {
- integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
- }
- engines: { node: '>=6' }
- dev: true
-
- /camelcase-css/2.0.1:
- resolution:
- {
- integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
- }
- engines: { node: '>= 6' }
- dev: true
-
- /caniuse-lite/1.0.30001312:
- resolution:
- {
- integrity: sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==
- }
- dev: true
-
- /chalk/2.4.2:
- resolution:
- {
- integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
- }
- engines: { node: '>=4' }
- dependencies:
- ansi-styles: 3.2.1
- escape-string-regexp: 1.0.5
- supports-color: 5.5.0
- dev: true
-
- /chalk/4.1.2:
- resolution:
- {
- integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
- }
- engines: { node: '>=10' }
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
- dev: true
-
- /chokidar/3.5.3:
- resolution:
- {
- integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
- }
- engines: { node: '>= 8.10.0' }
- dependencies:
- anymatch: 3.1.2
- braces: 3.0.2
- glob-parent: 5.1.2
- is-binary-path: 2.1.0
- is-glob: 4.0.3
- normalize-path: 3.0.0
- readdirp: 3.6.0
- optionalDependencies:
- fsevents: 2.3.2
- dev: true
-
- /clone-buffer/1.0.0:
- resolution: { integrity: sha1-4+JbIHrE5wGvch4staFnksrD3Fg= }
- engines: { node: '>= 0.10' }
- dev: true
-
- /clone-deep/4.0.1:
- resolution:
- {
- integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
- }
- engines: { node: '>=6' }
- dependencies:
- is-plain-object: 2.0.4
- kind-of: 6.0.3
- shallow-clone: 3.0.1
- dev: true
-
- /clone-stats/1.0.0:
- resolution: { integrity: sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= }
- dev: true
-
- /clone/2.1.2:
- resolution: { integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= }
- engines: { node: '>=0.8' }
- dev: true
-
- /cloneable-readable/1.1.3:
- resolution:
- {
- integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==
- }
- dependencies:
- inherits: 2.0.4
- process-nextick-args: 2.0.1
- readable-stream: 2.3.7
- dev: true
-
- /cluster-key-slot/1.1.0:
- resolution:
- {
- integrity: sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==
- }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /color-convert/1.9.3:
- resolution:
- {
- integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
- }
- dependencies:
- color-name: 1.1.3
- dev: true
-
- /color-convert/2.0.1:
- resolution:
- {
- integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
- }
- engines: { node: '>=7.0.0' }
- dependencies:
- color-name: 1.1.4
- dev: true
-
- /color-name/1.1.3:
- resolution: { integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= }
- dev: true
-
- /color-name/1.1.4:
- resolution:
- {
- integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
- }
- dev: true
-
- /commander/6.2.1:
- resolution:
- {
- integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
- }
- engines: { node: '>= 6' }
- dev: true
-
- /concat-map/0.0.1:
- resolution: { integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= }
- dev: true
-
- /convert-source-map/1.8.0:
- resolution:
- {
- integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
- }
- dependencies:
- safe-buffer: 5.1.2
- dev: true
-
- /cookie/0.4.2:
- resolution:
- {
- integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
- }
- engines: { node: '>= 0.6' }
- dev: true
-
- /core-util-is/1.0.3:
- resolution:
- {
- integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
- }
- dev: true
-
- /cosmiconfig/7.0.1:
- resolution:
- {
- integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==
- }
- engines: { node: '>=10' }
- dependencies:
- '@types/parse-json': 4.0.0
- import-fresh: 3.3.0
- parse-json: 5.2.0
- path-type: 4.0.0
- yaml: 1.10.2
- dev: true
-
- /cross-spawn/7.0.3:
- resolution:
- {
- integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
- }
- engines: { node: '>= 8' }
- dependencies:
- path-key: 3.1.1
- shebang-command: 2.0.0
- which: 2.0.2
- dev: true
-
- /cssesc/3.0.0:
- resolution:
- {
- integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
- }
- engines: { node: '>=4' }
- hasBin: true
- dev: true
-
- /data-uri-to-buffer/4.0.0:
- resolution:
- {
- integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==
- }
- engines: { node: '>= 12' }
- dev: true
-
- /debug/4.3.3:
- resolution:
- {
- integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
- }
- engines: { node: '>=6.0' }
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
- dependencies:
- ms: 2.1.2
- dev: true
-
- /deep-is/0.1.4:
- resolution:
- {
- integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
- }
- dev: true
-
- /deepmerge/4.2.2:
- resolution:
- {
- integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
- }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /define-properties/1.1.3:
- resolution:
- {
- integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
- }
- engines: { node: '>= 0.4' }
- dependencies:
- object-keys: 1.1.1
- dev: true
-
- /defined/1.0.0:
- resolution: { integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= }
- dev: true
-
- /denque/1.5.1:
- resolution:
- {
- integrity: sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==
- }
- engines: { node: '>=0.10' }
- dev: true
-
- /detect-indent/6.1.0:
- resolution:
- {
- integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==
- }
- engines: { node: '>=8' }
- dev: true
-
- /detective/5.2.0:
- resolution:
- {
- integrity: sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
- }
- engines: { node: '>=0.8.0' }
- hasBin: true
- dependencies:
- acorn-node: 1.8.2
- defined: 1.0.0
- minimist: 1.2.5
- dev: true
-
- /didyoumean/1.2.2:
- resolution:
- {
- integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
- }
- dev: true
-
- /dir-glob/3.0.1:
- resolution:
- {
- integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
- }
- engines: { node: '>=8' }
- dependencies:
- path-type: 4.0.0
- dev: true
-
- /dlv/1.1.3:
- resolution:
- {
- integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
- }
- dev: true
-
- /doctrine/3.0.0:
- resolution:
- {
- integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
- }
- engines: { node: '>=6.0.0' }
- dependencies:
- esutils: 2.0.3
- dev: true
-
- /duplexify/3.7.1:
- resolution:
- {
- integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
- }
- dependencies:
- end-of-stream: 1.4.4
- inherits: 2.0.4
- readable-stream: 2.3.7
- stream-shift: 1.0.1
- dev: true
-
- /electron-to-chromium/1.4.73:
- resolution:
- {
- integrity: sha512-RlCffXkE/LliqfA5m29+dVDPB2r72y2D2egMMfIy3Le8ODrxjuZNVo4NIC2yPL01N4xb4nZQLwzi6Z5tGIGLnA==
- }
- dev: true
-
- /emoji-regex/8.0.0:
- resolution:
- {
- integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
- }
- dev: true
-
- /end-of-stream/1.4.4:
- resolution:
- {
- integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
- }
- dependencies:
- once: 1.4.0
- dev: true
-
- /engine.io-client/6.1.1:
- resolution:
- {
- integrity: sha512-V05mmDo4gjimYW+FGujoGmmmxRaDsrVr7AXA3ZIfa04MWM1jOfZfUwou0oNqhNwy/votUDvGDt4JA4QF4e0b4g==
- }
- dependencies:
- '@socket.io/component-emitter': 3.0.0
- debug: 4.3.3
- engine.io-parser: 5.0.3
- has-cors: 1.1.0
- parseqs: 0.0.6
- parseuri: 0.0.6
- ws: 8.2.3
- xmlhttprequest-ssl: 2.0.0
- yeast: 0.1.2
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /engine.io-parser/5.0.3:
- resolution:
- {
- integrity: sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==
- }
- engines: { node: '>=10.0.0' }
- dependencies:
- '@socket.io/base64-arraybuffer': 1.0.2
- dev: true
-
- /enquirer/2.3.6:
- resolution:
- {
- integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
- }
- engines: { node: '>=8.6' }
- dependencies:
- ansi-colors: 4.1.1
- dev: true
-
- /ensure-array/1.0.0:
- resolution:
- {
- integrity: sha512-A+3Ntl5WS+GjDnHtC67dKIjw+IoGoeFdNvjn3ZfKEmZgWUz0nxBPE4W52QMCbGZsat0VwWskD5T6AEpe3T2d1g==
- }
- dev: true
-
- /eol/0.9.1:
- resolution:
- {
- integrity: sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==
- }
- dev: true
-
- /error-ex/1.3.2:
- resolution:
- {
- integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
- }
- dependencies:
- is-arrayish: 0.2.1
- dev: true
-
- /es6-promise/3.3.1:
- resolution: { integrity: sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM= }
- dev: true
-
- /esbuild-android-arm64/0.14.23:
- resolution:
- {
- integrity: sha512-k9sXem++mINrZty1v4FVt6nC5BQCFG4K2geCIUUqHNlTdFnuvcqsY7prcKZLFhqVC1rbcJAr9VSUGFL/vD4vsw==
- }
- engines: { node: '>=12' }
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
+ /@babel/code-frame/7.12.11:
+ resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==}
+ dependencies:
+ '@babel/highlight': 7.16.10
+ dev: true
+
+ /@babel/helper-validator-identifier/7.16.7:
+ resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/highlight/7.16.10:
+ resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.16.7
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ dev: true
+
+ /@babel/runtime/7.17.2:
+ resolution: {integrity: sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ regenerator-runtime: 0.13.9
+
+ /@eslint/eslintrc/0.4.3:
+ resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.3
+ espree: 7.3.1
+ globals: 13.12.1
+ ignore: 4.0.6
+ import-fresh: 3.3.0
+ js-yaml: 3.14.1
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@felte/common/1.0.1:
+ resolution: {integrity: sha512-P905IdJzdiawo+YsnM5Cg2ziou5VHBDCCiVHXqGFBrEmq/RyxSdOfuRbOBKAz3l5eigQl8QGK26b3rVLz7mxRQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /@felte/core/1.0.1:
+ resolution: {integrity: sha512-wrdiiQIfw4fDTVN9THowqSQcckkwrW8EN92mIKqqa+wbcYz7cSBAi3GtgNWJcZuEV631ij2nnygQnxV/8hhdnA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ '@felte/common': 1.0.1
+ dev: true
+
+ /@felte/validator-yup/1.0.1_yup@0.32.11:
+ resolution: {integrity: sha512-lylJ5FlzZeUh3/NJJyPPF0uBlj4Fi4YmCdt3M7saPOrGZJsr09AD8o+fXQr4aUllwbIFbjN3z6zkSpYE1wYAqA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ peerDependencies:
+ yup: ^0.32.9
+ dependencies:
+ '@felte/common': 1.0.1
+ yup: 0.32.11
+ dev: true
+
+ /@fontsource/marck-script/4.5.2:
+ resolution: {integrity: sha512-uqy1//nAM1INtRvVPD/E1FQEk+Hf4DpudVSvmrXkCE/oUU87V/saKw5Xuz4QLhJVbcL1oYjqrMzC91H3jclt5g==}
+ dev: true
+
+ /@humanwhocodes/config-array/0.5.0:
+ resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==}
+ engines: {node: '>=10.10.0'}
+ dependencies:
+ '@humanwhocodes/object-schema': 1.2.1
+ debug: 4.3.3
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@humanwhocodes/object-schema/1.2.1:
+ resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
+ dev: true
+
+ /@iarna/toml/2.2.5:
+ resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
+ dev: true
+
+ /@nodelib/fs.scandir/2.1.5:
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+ dev: true
+
+ /@nodelib/fs.stat/2.0.5:
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /@nodelib/fs.walk/1.2.8:
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.13.0
+ dev: true
+
+ /@popperjs/core/2.11.2:
+ resolution: {integrity: sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==}
+ dev: true
+
+ /@rollup/pluginutils/4.1.2:
+ resolution: {integrity: sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ==}
+ engines: {node: '>= 8.0.0'}
+ dependencies:
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /@sentry/browser/6.18.2:
+ resolution: {integrity: sha512-EsqKSNboi2gOiMuEwQranLucxrARi00y2vgUnaPXcqTKTlVlHDetoWHvq8/r29idA1JHGka5tDrwrmWccWIkrg==}
+ engines: {node: '>=6'}
+ dependencies:
+ '@sentry/core': 6.18.2
+ '@sentry/types': 6.18.2
+ '@sentry/utils': 6.18.2
+ tslib: 1.14.1
+ dev: true
+
+ /@sentry/core/6.18.2:
+ resolution: {integrity: sha512-r5ad/gq5S/JHc9sd5CUhZQT9ojQ+f+thk/AoGeGawX/8HURZYAgIqD565d6FK0VsZEDkdRMl58z1Qon20h3y1g==}
+ engines: {node: '>=6'}
+ dependencies:
+ '@sentry/hub': 6.18.2
+ '@sentry/minimal': 6.18.2
+ '@sentry/types': 6.18.2
+ '@sentry/utils': 6.18.2
+ tslib: 1.14.1
+ dev: true
+
+ /@sentry/hub/6.18.2:
+ resolution: {integrity: sha512-d0AugekMkbnN12b4EXMjseJxtLPc9S20DGobCPUb4oAQT6S2oDQEj1jwP6PQ5vtgyy+GMYWxBMgqAQ4pjVYISQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ '@sentry/types': 6.18.2
+ '@sentry/utils': 6.18.2
+ tslib: 1.14.1
+ dev: true
+
+ /@sentry/minimal/6.18.2:
+ resolution: {integrity: sha512-n7KYuo34W2LxE+3dnZ47of7XHuORINCnXq66XH72eoj67tf0XeWbIhEJrYGmoLRyRfoCYYrBLWiDl/uTjLzrzQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ '@sentry/hub': 6.18.2
+ '@sentry/types': 6.18.2
+ tslib: 1.14.1
+ dev: true
+
+ /@sentry/tracing/6.18.2:
+ resolution: {integrity: sha512-hg6NLqrqJ5sUPTyWEQ2RqdnhQVnyLtx8II0IyWxQLDWD8UCe3Mu6G7mroDtakPWcP+lWz6OnKfMEfuhMcxR8fw==}
+ engines: {node: '>=6'}
+ dependencies:
+ '@sentry/hub': 6.18.2
+ '@sentry/minimal': 6.18.2
+ '@sentry/types': 6.18.2
+ '@sentry/utils': 6.18.2
+ tslib: 1.14.1
+ dev: true
+
+ /@sentry/types/6.18.2:
+ resolution: {integrity: sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /@sentry/utils/6.18.2:
+ resolution: {integrity: sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw==}
+ engines: {node: '>=6'}
+ dependencies:
+ '@sentry/types': 6.18.2
+ tslib: 1.14.1
+ dev: true
+
+ /@socket.io/base64-arraybuffer/1.0.2:
+ resolution: {integrity: sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==}
+ engines: {node: '>= 0.6.0'}
+ dev: true
+
+ /@socket.io/component-emitter/3.0.0:
+ resolution: {integrity: sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q==}
+ dev: true
+
+ /@sveltejs/adapter-auto/1.0.0-next.34:
+ resolution: {integrity: sha512-BzZVfy39idFojauroLrE/v9paJ1/HOlS2R857ooCwaLg+RrRy6zJHWwYxNSv5e8AaZiVg7ioZZpU/2g6ZgUpaQ==}
+ dependencies:
+ '@sveltejs/adapter-cloudflare': 1.0.0-next.17
+ '@sveltejs/adapter-netlify': 1.0.0-next.51
+ '@sveltejs/adapter-vercel': 1.0.0-next.47
+ dev: true
+
+ /@sveltejs/adapter-cloudflare/1.0.0-next.17:
+ resolution: {integrity: sha512-B2ze5L0LsHFsZctVNy4sw0XxgV2YiVEHyMrWRo3pmpTwpu6GT5V3U2fsEoCMg/RKMazlWkyKTCuUqmcpYjjf2g==}
+ dependencies:
+ esbuild: 0.14.34
+ worktop: 0.8.0-next.12
+ dev: true
+
+ /@sveltejs/adapter-netlify/1.0.0-next.51:
+ resolution: {integrity: sha512-P7/cW/0z8zd8J6DOI2yxKZG0+HRMMuzfOf0yzFXX0vRwBePhKlZ/H4qhTOo2NrCmj3Len545o+ugj5gyMXl1+g==}
+ dependencies:
+ '@iarna/toml': 2.2.5
+ esbuild: 0.14.34
+ tiny-glob: 0.2.9
+ dev: true
+
+ /@sveltejs/adapter-node/1.0.0-next.71:
+ resolution: {integrity: sha512-ELSQBSyk0IHMRi5Zct95jP+lTUJ0VQ/d7DxPMQTaDYVexpehDBOV6bXDzSNBl9boIIfEv77VD3lA7kgtuJnGdg==}
+ dependencies:
+ tiny-glob: 0.2.9
+ dev: true
+
+ /@sveltejs/adapter-vercel/1.0.0-next.47:
+ resolution: {integrity: sha512-VV3vP8KqL9XOc7xfQLVhXTM5jrTme+r1qJy98u5/dhAhkdjqrGDwAKo/s7MoB3rTYxLb2b8I4QxAaoz2Y2aIBg==}
+ dependencies:
+ esbuild: 0.14.34
+ dev: true
+
+ /@sveltejs/kit/1.0.0-next.310_sass@1.49.9+svelte@3.46.4:
+ resolution: {integrity: sha512-pTyMyaoyHS+V5cQZIQMfQXmLkhw1VaRwT9avOSgwDc0QBpnNw2LdzwoPYsUr96ca5B6cfT3SMUNolxErTNHmPQ==}
+ engines: {node: '>=14.13'}
+ hasBin: true
+ peerDependencies:
+ svelte: ^3.44.0
+ dependencies:
+ '@sveltejs/vite-plugin-svelte': 1.0.0-next.37_svelte@3.46.4+vite@2.9.1
+ sade: 1.8.1
+ svelte: 3.46.4
+ vite: 2.9.1_sass@1.49.9
+ transitivePeerDependencies:
+ - diff-match-patch
+ - less
+ - sass
+ - stylus
+ - supports-color
+ dev: true
+
+ /@sveltejs/vite-plugin-svelte/1.0.0-next.37_svelte@3.46.4+vite@2.9.1:
+ resolution: {integrity: sha512-EdSXw2rXeOahNrQfMJVZxa/NxZxW1a0TiBI3s+pVxnxU14hEQtnkLtdbTFhnceu22gJpNPFSIJRcIwRBBDQIeA==}
+ engines: {node: ^14.13.1 || >= 16}
+ peerDependencies:
+ diff-match-patch: ^1.0.5
+ svelte: ^3.44.0
+ vite: ^2.7.0
+ peerDependenciesMeta:
+ diff-match-patch:
optional: true
+ dependencies:
+ '@rollup/pluginutils': 4.1.2
+ debug: 4.3.3
+ kleur: 4.1.4
+ magic-string: 0.25.7
+ svelte: 3.46.4
+ svelte-hmr: 0.14.9_svelte@3.46.4
+ vite: 2.9.1_sass@1.49.9
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
- /esbuild-darwin-64/0.14.23:
- resolution:
- {
- integrity: sha512-lB0XRbtOYYL1tLcYw8BoBaYsFYiR48RPrA0KfA/7RFTr4MV7Bwy/J4+7nLsVnv9FGuQummM3uJ93J3ptaTqFug==
- }
- engines: { node: '>=12' }
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
+ /@tailwindcss/typography/0.5.0-alpha.3_tailwindcss@3.0.23:
+ resolution: {integrity: sha512-ySYrwcf7SaLVL7XBH61euPX4xoAytD4HVvfE4XsdExQmxxiNhWNVkvxhtP+RAbk6n3A0m0a+p3W25E19YiGj2A==}
+ peerDependencies:
+ tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || insiders'
+ dependencies:
+ lodash.castarray: 4.4.0
+ lodash.isplainobject: 4.0.6
+ lodash.merge: 4.6.2
+ lodash.uniq: 4.5.0
+ tailwindcss: 3.0.23_autoprefixer@10.4.2
+ dev: true
+
+ /@types/cookie/0.4.1:
+ resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
+ dev: true
+
+ /@types/ioredis/4.28.10:
+ resolution: {integrity: sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ==}
+ dependencies:
+ '@types/node': 17.0.21
+ dev: true
+
+ /@types/js-cookie/3.0.1:
+ resolution: {integrity: sha512-7wg/8gfHltklehP+oyJnZrz9XBuX5ZPP4zB6UsI84utdlkRYLnOm2HfpLXazTwZA+fpGn0ir8tGNgVnMEleBGQ==}
+ dev: true
+
+ /@types/json-schema/7.0.9:
+ resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==}
+ dev: true
+
+ /@types/lodash/4.14.179:
+ resolution: {integrity: sha512-uwc1x90yCKqGcIOAT6DwOSuxnrAbpkdPsUOZtwrXb4D/6wZs+6qG7QnIawDuZWg0sWpxl+ltIKCaLoMlna678w==}
+ dev: true
+
+ /@types/luxon/2.0.9:
+ resolution: {integrity: sha512-ZuzIc7aN+i2ZDMWIiSmMdubR9EMMSTdEzF6R+FckP4p6xdnOYKqknTo/k+xXQvciSXlNGIwA4OPU5X7JIFzYdA==}
+ dev: true
+
+ /@types/node/17.0.21:
+ resolution: {integrity: sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==}
+ dev: true
+
+ /@types/parse-json/4.0.0:
+ resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==}
+ dev: true
+
+ /@types/pug/2.0.6:
+ resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==}
+ dev: true
+
+ /@types/sass/1.43.1:
+ resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==}
+ dependencies:
+ '@types/node': 17.0.21
+ dev: true
+
+ /@types/yup/0.29.13:
+ resolution: {integrity: sha512-qRyuv+P/1t1JK1rA+elmK1MmCL1BapEzKKfbEhDBV/LMMse4lmhZ/XbgETI39JveDJRpLjmToOI6uFtMW/WR2g==}
+ dev: true
+
+ /@typescript-eslint/eslint-plugin/5.12.1_78ba2542c270c83b2a80bb1c125195b6:
+ resolution: {integrity: sha512-M499lqa8rnNK7mUv74lSFFttuUsubIRdAbHcVaP93oFcKkEmHmLqy2n7jM9C8DVmFMYK61ExrZU6dLYhQZmUpw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^5.0.0
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
optional: true
+ dependencies:
+ '@typescript-eslint/parser': 5.12.1_eslint@7.32.0+typescript@4.5.5
+ '@typescript-eslint/scope-manager': 5.12.1
+ '@typescript-eslint/type-utils': 5.12.1_eslint@7.32.0+typescript@4.5.5
+ '@typescript-eslint/utils': 5.12.1_eslint@7.32.0+typescript@4.5.5
+ debug: 4.3.3
+ eslint: 7.32.0
+ functional-red-black-tree: 1.0.1
+ ignore: 5.2.0
+ regexpp: 3.2.0
+ semver: 7.3.5
+ tsutils: 3.21.0_typescript@4.5.5
+ typescript: 4.5.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
- /esbuild-darwin-arm64/0.14.23:
- resolution:
- {
- integrity: sha512-yat73Z/uJ5tRcfRiI4CCTv0FSnwErm3BJQeZAh+1tIP0TUNh6o+mXg338Zl5EKChD+YGp6PN+Dbhs7qa34RxSw==
- }
- engines: { node: '>=12' }
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
+ /@typescript-eslint/parser/5.12.1_eslint@7.32.0+typescript@4.5.5:
+ resolution: {integrity: sha512-6LuVUbe7oSdHxUWoX/m40Ni8gsZMKCi31rlawBHt7VtW15iHzjbpj2WLiToG2758KjtCCiLRKZqfrOdl3cNKuw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
optional: true
+ dependencies:
+ '@typescript-eslint/scope-manager': 5.12.1
+ '@typescript-eslint/types': 5.12.1
+ '@typescript-eslint/typescript-estree': 5.12.1_typescript@4.5.5
+ debug: 4.3.3
+ eslint: 7.32.0
+ typescript: 4.5.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
- /esbuild-freebsd-64/0.14.23:
- resolution:
- {
- integrity: sha512-/1xiTjoLuQ+LlbfjJdKkX45qK/M7ARrbLmyf7x3JhyQGMjcxRYVR6Dw81uH3qlMHwT4cfLW4aEVBhP1aNV7VsA==
- }
- engines: { node: '>=12' }
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
+ /@typescript-eslint/scope-manager/5.12.1:
+ resolution: {integrity: sha512-J0Wrh5xS6XNkd4TkOosxdpObzlYfXjAFIm9QxYLCPOcHVv1FyyFCPom66uIh8uBr0sZCrtS+n19tzufhwab8ZQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.12.1
+ '@typescript-eslint/visitor-keys': 5.12.1
+ dev: true
+
+ /@typescript-eslint/type-utils/5.12.1_eslint@7.32.0+typescript@4.5.5:
+ resolution: {integrity: sha512-Gh8feEhsNLeCz6aYqynh61Vsdy+tiNNkQtc+bN3IvQvRqHkXGUhYkUi+ePKzP0Mb42se7FDb+y2SypTbpbR/Sg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
optional: true
+ dependencies:
+ '@typescript-eslint/utils': 5.12.1_eslint@7.32.0+typescript@4.5.5
+ debug: 4.3.3
+ eslint: 7.32.0
+ tsutils: 3.21.0_typescript@4.5.5
+ typescript: 4.5.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
- /esbuild-freebsd-arm64/0.14.23:
- resolution:
- {
- integrity: sha512-uyPqBU/Zcp6yEAZS4LKj5jEE0q2s4HmlMBIPzbW6cTunZ8cyvjG6YWpIZXb1KK3KTJDe62ltCrk3VzmWHp+iLg==
- }
- engines: { node: '>=12' }
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
+ /@typescript-eslint/types/5.12.1:
+ resolution: {integrity: sha512-hfcbq4qVOHV1YRdhkDldhV9NpmmAu2vp6wuFODL71Y0Ixak+FLeEU4rnPxgmZMnGreGEghlEucs9UZn5KOfHJA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /@typescript-eslint/typescript-estree/5.12.1_typescript@4.5.5:
+ resolution: {integrity: sha512-ahOdkIY9Mgbza7L9sIi205Pe1inCkZWAHE1TV1bpxlU4RZNPtXaDZfiiFWcL9jdxvW1hDYZJXrFm+vlMkXRbBw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
optional: true
+ dependencies:
+ '@typescript-eslint/types': 5.12.1
+ '@typescript-eslint/visitor-keys': 5.12.1
+ debug: 4.3.3
+ globby: 11.1.0
+ is-glob: 4.0.3
+ semver: 7.3.5
+ tsutils: 3.21.0_typescript@4.5.5
+ typescript: 4.5.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
- /esbuild-linux-32/0.14.23:
- resolution:
- {
- integrity: sha512-37R/WMkQyUfNhbH7aJrr1uCjDVdnPeTHGeDhZPUNhfoHV0lQuZNCKuNnDvlH/u/nwIYZNdVvz1Igv5rY/zfrzQ==
- }
- engines: { node: '>=12' }
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
+ /@typescript-eslint/utils/5.12.1_eslint@7.32.0+typescript@4.5.5:
+ resolution: {integrity: sha512-Qq9FIuU0EVEsi8fS6pG+uurbhNTtoYr4fq8tKjBupsK5Bgbk2I32UGm0Sh+WOyjOPgo/5URbxxSNV6HYsxV4MQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ '@types/json-schema': 7.0.9
+ '@typescript-eslint/scope-manager': 5.12.1
+ '@typescript-eslint/types': 5.12.1
+ '@typescript-eslint/typescript-estree': 5.12.1_typescript@4.5.5
+ eslint: 7.32.0
+ eslint-scope: 5.1.1
+ eslint-utils: 3.0.0_eslint@7.32.0
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@typescript-eslint/visitor-keys/5.12.1:
+ resolution: {integrity: sha512-l1KSLfupuwrXx6wc0AuOmC7Ko5g14ZOQ86wJJqRbdLbXLK02pK/DPiDDqCc7BqqiiA04/eAA6ayL0bgOrAkH7A==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.12.1
+ eslint-visitor-keys: 3.3.0
+ dev: true
+
+ /acorn-class-fields/0.3.7_acorn@8.7.0:
+ resolution: {integrity: sha512-jdUWSFce0fuADUljmExz4TWpPkxmRW/ZCPRqeeUzbGf0vFUcpQYbyq52l75qGd0oSwwtAepeL6hgb/naRgvcKQ==}
+ engines: {node: '>=4.8.2'}
+ peerDependencies:
+ acorn: ^6 || ^7 || ^8
+ dependencies:
+ acorn: 8.7.0
+ acorn-private-class-elements: 0.2.7_acorn@8.7.0
+ dev: true
+
+ /acorn-dynamic-import/4.0.0_acorn@8.7.0:
+ resolution: {integrity: sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==}
+ peerDependencies:
+ acorn: ^6.0.0
+ dependencies:
+ acorn: 8.7.0
+ dev: true
+
+ /acorn-jsx/5.3.2_acorn@7.4.1:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ acorn: 7.4.1
+ dev: true
+
+ /acorn-jsx/5.3.2_acorn@8.7.0:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ acorn: 8.7.0
+ dev: true
+
+ /acorn-node/1.8.2:
+ resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==}
+ dependencies:
+ acorn: 7.4.1
+ acorn-walk: 7.2.0
+ xtend: 4.0.2
+ dev: true
+
+ /acorn-private-class-elements/0.2.7_acorn@8.7.0:
+ resolution: {integrity: sha512-+GZH2wOKNZOBI4OOPmzpo4cs6mW297sn6fgIk1dUI08jGjhAaEwvC39mN2gJAg2lmAQJ1rBkFqKWonL3Zz6PVA==}
+ engines: {node: '>=4.8.2'}
+ peerDependencies:
+ acorn: ^6.1.0 || ^7 || ^8
+ dependencies:
+ acorn: 8.7.0
+ dev: true
+
+ /acorn-private-methods/0.3.3_acorn@8.7.0:
+ resolution: {integrity: sha512-46oeEol3YFvLSah5m9hGMlNpxDBCEkdceJgf01AjqKYTK9r6HexKs2rgSbLK81pYjZZMonhftuUReGMlbbv05w==}
+ engines: {node: '>=4.8.2'}
+ peerDependencies:
+ acorn: ^6 || ^7 || ^8
+ dependencies:
+ acorn: 8.7.0
+ acorn-private-class-elements: 0.2.7_acorn@8.7.0
+ dev: true
+
+ /acorn-stage3/4.0.0_acorn@8.7.0:
+ resolution: {integrity: sha512-BR+LaADtA6GTB5prkNqWmlmCLYmkyW0whvSxdHhbupTaro2qBJ95fJDEiRLPUmiACGHPaYyeH9xmNJWdGfXRQw==}
+ engines: {node: '>=4.8.2'}
+ peerDependencies:
+ acorn: ^7.4 || ^8
+ dependencies:
+ acorn: 8.7.0
+ acorn-class-fields: 0.3.7_acorn@8.7.0
+ acorn-private-methods: 0.3.3_acorn@8.7.0
+ acorn-static-class-features: 0.2.4_acorn@8.7.0
+ dev: true
+
+ /acorn-static-class-features/0.2.4_acorn@8.7.0:
+ resolution: {integrity: sha512-5X4mpYq5J3pdndLmIB0+WtFd/mKWnNYpuTlTzj32wUu/PMmEGOiayQ5UrqgwdBNiaZBtDDh5kddpP7Yg2QaQYA==}
+ engines: {node: '>=4.8.2'}
+ peerDependencies:
+ acorn: ^6.1.0 || ^7 || ^8
+ dependencies:
+ acorn: 8.7.0
+ acorn-private-class-elements: 0.2.7_acorn@8.7.0
+ dev: true
+
+ /acorn-walk/7.2.0:
+ resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /acorn-walk/8.2.0:
+ resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /acorn/7.4.1:
+ resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /acorn/8.7.0:
+ resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /ajv/6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+ dev: true
+
+ /ajv/8.10.0:
+ resolution: {integrity: sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==}
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js: 4.4.1
+ dev: true
+
+ /ansi-colors/4.1.1:
+ resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /ansi-regex/5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /ansi-styles/3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+ dependencies:
+ color-convert: 1.9.3
+ dev: true
+
+ /ansi-styles/4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ color-convert: 2.0.1
+ dev: true
+
+ /anymatch/3.1.2:
+ resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: true
+
+ /append-buffer/1.0.2:
+ resolution: {integrity: sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ buffer-equal: 1.0.0
+ dev: true
+
+ /arg/5.0.1:
+ resolution: {integrity: sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==}
+ dev: true
+
+ /argparse/1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+ dependencies:
+ sprintf-js: 1.0.3
+ dev: true
+
+ /array-union/2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /astral-regex/2.0.0:
+ resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /autoprefixer/10.4.2_postcss@8.4.7:
+ resolution: {integrity: sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+ dependencies:
+ browserslist: 4.19.3
+ caniuse-lite: 1.0.30001312
+ fraction.js: 4.1.3
+ normalize-range: 0.1.2
+ picocolors: 1.0.0
+ postcss: 8.4.7
+ postcss-value-parser: 4.2.0
+ dev: true
+
+ /backo2/1.0.2:
+ resolution: {integrity: sha1-MasayLEpNjRj41s+u2n038+6eUc=}
+ dev: true
+
+ /balanced-match/1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ dev: true
+
+ /binary-extensions/2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /brace-expansion/1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+ dev: true
+
+ /braces/3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+ dev: true
+
+ /browserslist/4.19.3:
+ resolution: {integrity: sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001312
+ electron-to-chromium: 1.4.73
+ escalade: 3.1.1
+ node-releases: 2.0.2
+ picocolors: 1.0.0
+ dev: true
+
+ /buffer-crc32/0.2.13:
+ resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=}
+ dev: true
+
+ /buffer-equal/1.0.0:
+ resolution: {integrity: sha1-WWFrSYME1Var1GaWayLu2j7KX74=}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /call-bind/1.0.2:
+ resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
+ dependencies:
+ function-bind: 1.1.1
+ get-intrinsic: 1.1.1
+ dev: true
+
+ /callsites/3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /camelcase-css/2.0.1:
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /caniuse-lite/1.0.30001312:
+ resolution: {integrity: sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==}
+ dev: true
+
+ /chalk/2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+ dev: true
+
+ /chalk/4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+ dev: true
+
+ /chokidar/3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.2
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
+ /clone-buffer/1.0.0:
+ resolution: {integrity: sha1-4+JbIHrE5wGvch4staFnksrD3Fg=}
+ engines: {node: '>= 0.10'}
+ dev: true
+
+ /clone-deep/4.0.1:
+ resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ is-plain-object: 2.0.4
+ kind-of: 6.0.3
+ shallow-clone: 3.0.1
+ dev: true
+
+ /clone-stats/1.0.0:
+ resolution: {integrity: sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=}
+ dev: true
+
+ /clone/2.1.2:
+ resolution: {integrity: sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=}
+ engines: {node: '>=0.8'}
+ dev: true
+
+ /cloneable-readable/1.1.3:
+ resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==}
+ dependencies:
+ inherits: 2.0.4
+ process-nextick-args: 2.0.1
+ readable-stream: 2.3.7
+ dev: true
+
+ /cluster-key-slot/1.1.0:
+ resolution: {integrity: sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /color-convert/1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+ dependencies:
+ color-name: 1.1.3
+ dev: true
+
+ /color-convert/2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+ dependencies:
+ color-name: 1.1.4
+ dev: true
+
+ /color-name/1.1.3:
+ resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=}
+ dev: true
+
+ /color-name/1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ dev: true
+
+ /commander/6.2.1:
+ resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /concat-map/0.0.1:
+ resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
+ dev: true
+
+ /convert-source-map/1.8.0:
+ resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==}
+ dependencies:
+ safe-buffer: 5.1.2
+ dev: true
+
+ /cookie/0.4.2:
+ resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==}
+ engines: {node: '>= 0.6'}
+ dev: true
+
+ /core-util-is/1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+ dev: true
+
+ /cosmiconfig/7.0.1:
+ resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ '@types/parse-json': 4.0.0
+ import-fresh: 3.3.0
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ yaml: 1.10.2
+ dev: true
+
+ /cross-spawn/7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+ dev: true
+
+ /cssesc/3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /data-uri-to-buffer/4.0.0:
+ resolution: {integrity: sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==}
+ engines: {node: '>= 12'}
+ dev: true
+
+ /debug/4.3.3:
+ resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
optional: true
+ dependencies:
+ ms: 2.1.2
+ dev: true
- /esbuild-linux-64/0.14.23:
- resolution:
- {
- integrity: sha512-H0gztDP60qqr8zoFhAO64waoN5yBXkmYCElFklpd6LPoobtNGNnDe99xOQm28+fuD75YJ7GKHzp/MLCLhw2+vQ==
- }
- engines: { node: '>=12' }
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
+ /deep-is/0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ dev: true
+
+ /deepmerge/4.2.2:
+ resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /define-properties/1.1.3:
+ resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ object-keys: 1.1.1
+ dev: true
+
+ /defined/1.0.0:
+ resolution: {integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=}
+ dev: true
+
+ /denque/1.5.1:
+ resolution: {integrity: sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==}
+ engines: {node: '>=0.10'}
+ dev: true
+
+ /detect-indent/6.1.0:
+ resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /detective/5.2.0:
+ resolution: {integrity: sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==}
+ engines: {node: '>=0.8.0'}
+ hasBin: true
+ dependencies:
+ acorn-node: 1.8.2
+ defined: 1.0.0
+ minimist: 1.2.5
+ dev: true
+
+ /didyoumean/1.2.2:
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+ dev: true
+
+ /dir-glob/3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-type: 4.0.0
+ dev: true
+
+ /dlv/1.1.3:
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+ dev: true
+
+ /doctrine/3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ esutils: 2.0.3
+ dev: true
+
+ /duplexify/3.7.1:
+ resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==}
+ dependencies:
+ end-of-stream: 1.4.4
+ inherits: 2.0.4
+ readable-stream: 2.3.7
+ stream-shift: 1.0.1
+ dev: true
+
+ /electron-to-chromium/1.4.73:
+ resolution: {integrity: sha512-RlCffXkE/LliqfA5m29+dVDPB2r72y2D2egMMfIy3Le8ODrxjuZNVo4NIC2yPL01N4xb4nZQLwzi6Z5tGIGLnA==}
+ dev: true
+
+ /emoji-regex/8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ dev: true
+
+ /end-of-stream/1.4.4:
+ resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+ dependencies:
+ once: 1.4.0
+ dev: true
+
+ /engine.io-client/6.1.1:
+ resolution: {integrity: sha512-V05mmDo4gjimYW+FGujoGmmmxRaDsrVr7AXA3ZIfa04MWM1jOfZfUwou0oNqhNwy/votUDvGDt4JA4QF4e0b4g==}
+ dependencies:
+ '@socket.io/component-emitter': 3.0.0
+ debug: 4.3.3
+ engine.io-parser: 5.0.3
+ has-cors: 1.1.0
+ parseqs: 0.0.6
+ parseuri: 0.0.6
+ ws: 8.2.3
+ xmlhttprequest-ssl: 2.0.0
+ yeast: 0.1.2
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /engine.io-parser/5.0.3:
+ resolution: {integrity: sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==}
+ engines: {node: '>=10.0.0'}
+ dependencies:
+ '@socket.io/base64-arraybuffer': 1.0.2
+ dev: true
+
+ /enquirer/2.3.6:
+ resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ ansi-colors: 4.1.1
+ dev: true
+
+ /ensure-array/1.0.0:
+ resolution: {integrity: sha512-A+3Ntl5WS+GjDnHtC67dKIjw+IoGoeFdNvjn3ZfKEmZgWUz0nxBPE4W52QMCbGZsat0VwWskD5T6AEpe3T2d1g==}
+ dev: true
+
+ /eol/0.9.1:
+ resolution: {integrity: sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==}
+ dev: true
+
+ /error-ex/1.3.2:
+ resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+ dependencies:
+ is-arrayish: 0.2.1
+ dev: true
+
+ /es6-promise/3.3.1:
+ resolution: {integrity: sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=}
+ dev: true
+
+ /esbuild-android-64/0.14.34:
+ resolution: {integrity: sha512-XfxcfJqmMYsT/LXqrptzFxmaR3GWzXHDLdFNIhm6S00zPaQF1TBBWm+9t0RZ6LRR7iwH57DPjaOeW20vMqI4Yw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-android-arm64/0.14.34:
+ resolution: {integrity: sha512-T02+NXTmSRL1Mc6puz+R9CB54rSPICkXKq6+tw8B6vxZFnCPzbJxgwIX4kcluz9p8nYBjF3+lSilTGWb7+Xgew==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-darwin-64/0.14.34:
+ resolution: {integrity: sha512-pLRip2Bh4Ng7Bf6AMgCrSp3pPe/qZyf11h5Qo2mOfJqLWzSVjxrXW+CFRJfrOVP7TCnh/gmZSM2AFdCPB72vtw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-darwin-arm64/0.14.34:
+ resolution: {integrity: sha512-vpidSJEBxx6lf1NWgXC+DCmGqesJuZ5Y8aQVVsaoO4i8tRXbXb0whChRvop/zd3nfNM4dIl5EXAky0knRX5I6w==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-freebsd-64/0.14.34:
+ resolution: {integrity: sha512-m0HBjePhe0hAQJgtMRMNV9kMgIyV4/qSnzPx42kRMQBcPhgjAq1JRu4Il26czC+9FgpMbFkUktb07f/Lwnc6CA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-freebsd-arm64/0.14.34:
+ resolution: {integrity: sha512-cpRc2B94L1KvMPPYB4D6G39jLqpKlD3noAMY4/e86iXXXkhUYJJEtTuyNFTa9JRpWM0xCAp4mxjHjoIiLuoCLA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-32/0.14.34:
+ resolution: {integrity: sha512-8nQaEaoW7MH/K/RlozJa+lE1ejHIr8fuPIHhc513UebRav7HtXgQvxHQ6VZRUkWtep23M6dd7UqhwO1tMOfzQQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-64/0.14.34:
+ resolution: {integrity: sha512-Y3of4qQoLLlAgf042MlrY1P+7PnN9zWj8nVtw9XQG5hcLOZLz7IKpU35oeu7n4wvyaZHwvQqDJ93gRLqdJekcQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-arm/0.14.34:
+ resolution: {integrity: sha512-9lpq1NcJqssAF7alCO6zL3gvBVVt/lKw4oetUM7OgNnRX0OWpB+ZIO9FwCrSj/dMdmgDhPLf+119zB8QxSMmAg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-arm64/0.14.34:
+ resolution: {integrity: sha512-IlWaGtj9ir7+Nrume1DGcyzBDlK8GcnJq0ANKwcI9pVw8tqr+6GD0eqyF9SF1mR8UmAp+odrx1H5NdR2cHdFHA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-mips64le/0.14.34:
+ resolution: {integrity: sha512-k3or+01Rska1AjUyNjA4buEwB51eyN/xPQAoOx1CjzAQC3l8rpjUDw55kXyL63O/1MUi4ISvtNtl8gLwdyEcxw==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-ppc64le/0.14.34:
+ resolution: {integrity: sha512-+qxb8M9FfM2CJaVU7GgYpJOHM1ngQOx+/VrtBjb4C8oVqaPcESCeg2anjl+HRZy8VpYc71q/iBYausPPbJ+Keg==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-riscv64/0.14.34:
+ resolution: {integrity: sha512-Y717ltBdQ5j5sZIHdy1DV9kieo0wMip0dCmVSTceowCPYSn1Cg33Kd6981+F/3b9FDMzNWldZFOBRILViENZSA==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-s390x/0.14.34:
+ resolution: {integrity: sha512-bDDgYO4LhL4+zPs+WcBkXph+AQoPcQRTv18FzZS0WhjfH8TZx2QqlVPGhmhZ6WidrY+jKthUqO6UhGyIb4MpmA==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-netbsd-64/0.14.34:
+ resolution: {integrity: sha512-cfaFGXdRt0+vHsjNPyF0POM4BVSHPSbhLPe8mppDc7GDDxjIl08mV1Zou14oDWMp/XZMjYN1kWYRSfftiD0vvQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-openbsd-64/0.14.34:
+ resolution: {integrity: sha512-vmy9DxXVnRiI14s8GKuYBtess+EVcDALkbpTqd5jw4XITutIzyB7n4x0Tj5utAkKsgZJB22lLWGekr0ABnSLow==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-sunos-64/0.14.34:
+ resolution: {integrity: sha512-eNPVatNET1F7tRMhii7goL/eptfxc0ALRjrj9SPFNqp0zmxrehBFD6BaP3R4LjMn6DbMO0jOAnTLFKr8NqcJAA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-32/0.14.34:
+ resolution: {integrity: sha512-EFhpXyHEcnqWYe2rAHFd8dRw8wkrd9U+9oqcyoEL84GbanAYjiiIjBZsnR8kl0sCQ5w6bLpk7vCEIA2VS32Vcg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-64/0.14.34:
+ resolution: {integrity: sha512-a8fbl8Ky7PxNEjf1aJmtxdDZj32/hC7S1OcA2ckEpCJRTjiKslI9vAdPpSjrKIWhws4Galpaawy0nB7fjHYf5Q==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-arm64/0.14.34:
+ resolution: {integrity: sha512-EYvmKbSa2B3sPnpC28UEu9jBK5atGV4BaVRE7CYGUci2Hlz4AvtV/LML+TcDMT6gBgibnN2gcltWclab3UutMg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild/0.14.34:
+ resolution: {integrity: sha512-QIWdPT/gFF6hCaf4m7kP0cJ+JIuFkdHibI7vVFvu3eJS1HpVmYHWDulyN5WXwbRA0SX/7ZDaJ/1DH8SdY9xOJg==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ esbuild-android-64: 0.14.34
+ esbuild-android-arm64: 0.14.34
+ esbuild-darwin-64: 0.14.34
+ esbuild-darwin-arm64: 0.14.34
+ esbuild-freebsd-64: 0.14.34
+ esbuild-freebsd-arm64: 0.14.34
+ esbuild-linux-32: 0.14.34
+ esbuild-linux-64: 0.14.34
+ esbuild-linux-arm: 0.14.34
+ esbuild-linux-arm64: 0.14.34
+ esbuild-linux-mips64le: 0.14.34
+ esbuild-linux-ppc64le: 0.14.34
+ esbuild-linux-riscv64: 0.14.34
+ esbuild-linux-s390x: 0.14.34
+ esbuild-netbsd-64: 0.14.34
+ esbuild-openbsd-64: 0.14.34
+ esbuild-sunos-64: 0.14.34
+ esbuild-windows-32: 0.14.34
+ esbuild-windows-64: 0.14.34
+ esbuild-windows-arm64: 0.14.34
+ dev: true
+
+ /escalade/3.1.1:
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /escape-string-regexp/1.0.5:
+ resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=}
+ engines: {node: '>=0.8.0'}
+ dev: true
+
+ /escape-string-regexp/4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /eslint-config-prettier/8.4.0_eslint@7.32.0:
+ resolution: {integrity: sha512-CFotdUcMY18nGRo5KGsnNxpznzhkopOcOo0InID+sgQssPrzjvsyKZPvOgymTFeHrFuC3Tzdf2YndhXtULK9Iw==}
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+ dependencies:
+ eslint: 7.32.0
+ dev: true
+
+ /eslint-plugin-svelte3/3.4.1_eslint@7.32.0+svelte@3.46.4:
+ resolution: {integrity: sha512-7p59WG8qV8L6wLdl4d/c3mdjkgVglQCdv5XOTk/iNPBKXuuV+Q0eFP5Wa6iJd/G2M1qR3BkLPEzaANOqKAZczw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ eslint: '>=6.0.0'
+ svelte: ^3.2.0
+ dependencies:
+ eslint: 7.32.0
+ svelte: 3.46.4
+ dev: true
+
+ /eslint-scope/5.1.1:
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
+ engines: {node: '>=8.0.0'}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 4.3.0
+ dev: true
+
+ /eslint-utils/2.1.0:
+ resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==}
+ engines: {node: '>=6'}
+ dependencies:
+ eslint-visitor-keys: 1.3.0
+ dev: true
+
+ /eslint-utils/3.0.0_eslint@7.32.0:
+ resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
+ engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
+ peerDependencies:
+ eslint: '>=5'
+ dependencies:
+ eslint: 7.32.0
+ eslint-visitor-keys: 2.1.0
+ dev: true
+
+ /eslint-visitor-keys/1.3.0:
+ resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /eslint-visitor-keys/2.1.0:
+ resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /eslint-visitor-keys/3.3.0:
+ resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /eslint/7.32.0:
+ resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ hasBin: true
+ dependencies:
+ '@babel/code-frame': 7.12.11
+ '@eslint/eslintrc': 0.4.3
+ '@humanwhocodes/config-array': 0.5.0
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.3
+ doctrine: 3.0.0
+ enquirer: 2.3.6
+ escape-string-regexp: 4.0.0
+ eslint-scope: 5.1.1
+ eslint-utils: 2.1.0
+ eslint-visitor-keys: 2.1.0
+ espree: 7.3.1
+ esquery: 1.4.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 6.0.1
+ functional-red-black-tree: 1.0.1
+ glob-parent: 5.1.2
+ globals: 13.12.1
+ ignore: 4.0.6
+ import-fresh: 3.3.0
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ js-yaml: 3.14.1
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.1
+ progress: 2.0.3
+ regexpp: 3.2.0
+ semver: 7.3.5
+ strip-ansi: 6.0.1
+ strip-json-comments: 3.1.1
+ table: 6.8.0
+ text-table: 0.2.0
+ v8-compile-cache: 2.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /espree/7.3.1:
+ resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ acorn: 7.4.1
+ acorn-jsx: 5.3.2_acorn@7.4.1
+ eslint-visitor-keys: 1.3.0
+ dev: true
+
+ /esprima-next/5.8.1:
+ resolution: {integrity: sha512-jPuleZ9j065A9xGKreFh9YSgPlbL9/miG/l4KslkwEb7Ilwl5Ct7BmDkSTHA0rW0qnqLx+hsZWIB66s1XaMAyA==}
+ engines: {node: '>=12'}
+ hasBin: true
+ dev: true
+
+ /esprima/4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /esquery/1.4.0:
+ resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
+ engines: {node: '>=0.10'}
+ dependencies:
+ estraverse: 5.3.0
+ dev: true
+
+ /esrecurse/4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+ dependencies:
+ estraverse: 5.3.0
+ dev: true
+
+ /estraverse/4.3.0:
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /estraverse/5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /estree-walker/2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+ dev: true
+
+ /esutils/2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /extend/3.0.2:
+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+ dev: true
+
+ /fast-deep-equal/3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+ dev: true
+
+ /fast-glob/3.2.11:
+ resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.4
+ dev: true
+
+ /fast-json-stable-stringify/2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+ dev: true
+
+ /fast-levenshtein/2.0.6:
+ resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=}
+ dev: true
+
+ /fastq/1.13.0:
+ resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
+ dependencies:
+ reusify: 1.0.4
+ dev: true
+
+ /felte/1.0.1_svelte@3.46.4:
+ resolution: {integrity: sha512-fGz9KUBbBzv+QTgocHx2lGiRCNQXoXnBOfPvkVi4JWnofQCbKAYKQ80ytqAvqv+NphAZp6Zb/+luToIfqJ+Q2w==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ peerDependencies:
+ svelte: ^3.31.0
+ dependencies:
+ '@felte/core': 1.0.1
+ svelte: 3.46.4
+ dev: true
+
+ /fetch-blob/3.1.4:
+ resolution: {integrity: sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==}
+ engines: {node: ^12.20 || >= 14.13}
+ dependencies:
+ node-domexception: 1.0.0
+ web-streams-polyfill: 3.2.0
+ dev: true
+
+ /file-entry-cache/6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flat-cache: 3.0.4
+ dev: true
+
+ /fill-range/7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: true
+
+ /flat-cache/3.0.4:
+ resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flatted: 3.2.5
+ rimraf: 3.0.2
+ dev: true
+
+ /flatted/3.2.5:
+ resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==}
+ dev: true
+
+ /flush-write-stream/1.1.1:
+ resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==}
+ dependencies:
+ inherits: 2.0.4
+ readable-stream: 2.3.7
+ dev: true
+
+ /formdata-polyfill/4.0.10:
+ resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
+ engines: {node: '>=12.20.0'}
+ dependencies:
+ fetch-blob: 3.1.4
+ dev: true
+
+ /fraction.js/4.1.3:
+ resolution: {integrity: sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==}
+ dev: true
+
+ /fs-mkdirp-stream/1.0.0:
+ resolution: {integrity: sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=}
+ engines: {node: '>= 0.10'}
+ dependencies:
+ graceful-fs: 4.2.9
+ through2: 2.0.5
+ dev: true
+
+ /fs.realpath/1.0.0:
+ resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
+ dev: true
+
+ /fsevents/2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /function-bind/1.1.1:
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+ dev: true
+
+ /functional-red-black-tree/1.0.1:
+ resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=}
+ dev: true
+
+ /get-intrinsic/1.1.1:
+ resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==}
+ dependencies:
+ function-bind: 1.1.1
+ has: 1.0.3
+ has-symbols: 1.0.3
+ dev: true
+
+ /glob-parent/3.1.0:
+ resolution: {integrity: sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=}
+ dependencies:
+ is-glob: 3.1.0
+ path-dirname: 1.0.2
+ dev: true
+
+ /glob-parent/5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /glob-parent/6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /glob-stream/6.1.0:
+ resolution: {integrity: sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=}
+ engines: {node: '>= 0.10'}
+ dependencies:
+ extend: 3.0.2
+ glob: 7.2.0
+ glob-parent: 3.1.0
+ is-negated-glob: 1.0.0
+ ordered-read-streams: 1.0.1
+ pumpify: 1.5.1
+ readable-stream: 2.3.7
+ remove-trailing-separator: 1.1.0
+ to-absolute-glob: 2.0.2
+ unique-stream: 2.3.1
+ dev: true
+
+ /glob/7.2.0:
+ resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+ dev: true
+
+ /globals/13.12.1:
+ resolution: {integrity: sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==}
+ engines: {node: '>=8'}
+ dependencies:
+ type-fest: 0.20.2
+ dev: true
+
+ /globalyzer/0.1.0:
+ resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
+ dev: true
+
+ /globby/11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.2.11
+ ignore: 5.2.0
+ merge2: 1.4.1
+ slash: 3.0.0
+ dev: true
+
+ /globrex/0.1.2:
+ resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
+ dev: true
+
+ /graceful-fs/4.2.9:
+ resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==}
+ dev: true
+
+ /gulp-sort/2.0.0:
+ resolution: {integrity: sha1-xnYqLx8N4KP8WVohWZ0/rI26Gso=}
+ dependencies:
+ through2: 2.0.5
+ dev: true
+
+ /has-cors/1.1.0:
+ resolution: {integrity: sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=}
+ dev: true
+
+ /has-flag/3.0.0:
+ resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=}
+ engines: {node: '>=4'}
+ dev: true
+
+ /has-flag/4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /has-symbols/1.0.3:
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /has/1.0.3:
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
+ engines: {node: '>= 0.4.0'}
+ dependencies:
+ function-bind: 1.1.1
+ dev: true
+
+ /highlight.js/11.4.0:
+ resolution: {integrity: sha512-nawlpCBCSASs7EdvZOYOYVkJpGmAOKMYZgZtUqSRqodZE0GRVcFKwo1RcpeOemqh9hyttTdd5wDBwHkuSyUfnA==}
+ engines: {node: '>=12.0.0'}
+ dev: true
+
+ /i18next-browser-languagedetector/6.1.4:
+ resolution: {integrity: sha512-wukWnFeU7rKIWT66VU5i8I+3Zc4wReGcuDK2+kuFhtoxBRGWGdvYI9UQmqNL/yQH1KogWwh+xGEaIPH8V/i2Zg==}
+ dependencies:
+ '@babel/runtime': 7.17.2
+ dev: true
+
+ /i18next-scanner/3.1.0:
+ resolution: {integrity: sha512-dHLXUJIiF1CYJNslCkJFDYJySk5fg+dzdg9O73XXqHcdZwJ2947SWusqq8HdNFB7LpkBi8oTG6TWLZPmqbAh8Q==}
+ engines: {node: '>=12'}
+ hasBin: true
+ dependencies:
+ acorn: 8.7.0
+ acorn-dynamic-import: 4.0.0_acorn@8.7.0
+ acorn-jsx: 5.3.2_acorn@8.7.0
+ acorn-stage3: 4.0.0_acorn@8.7.0
+ acorn-walk: 8.2.0
+ chalk: 4.1.2
+ clone-deep: 4.0.1
+ commander: 6.2.1
+ deepmerge: 4.2.2
+ ensure-array: 1.0.0
+ eol: 0.9.1
+ esprima-next: 5.8.1
+ gulp-sort: 2.0.0
+ i18next: 21.6.14
+ lodash: 4.17.21
+ parse5: 6.0.1
+ sortobject: 4.16.0
+ through2: 4.0.2
+ vinyl: 2.2.1
+ vinyl-fs: 3.0.3
+ dev: true
+
+ /i18next/21.6.14:
+ resolution: {integrity: sha512-XL6WyD+xlwQwbieXRlXhKWoLb/rkch50/rA+vl6untHnJ+aYnkQ0YDZciTWE78PPhOpbi2gR0LTJCJpiAhA+uQ==}
+ dependencies:
+ '@babel/runtime': 7.17.2
+
+ /ignore/4.0.6:
+ resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==}
+ engines: {node: '>= 4'}
+ dev: true
+
+ /ignore/5.2.0:
+ resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
+ engines: {node: '>= 4'}
+ dev: true
+
+ /immutable/4.0.0:
+ resolution: {integrity: sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==}
+ dev: true
+
+ /import-fresh/3.3.0:
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ engines: {node: '>=6'}
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+ dev: true
+
+ /imurmurhash/0.1.4:
+ resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=}
+ engines: {node: '>=0.8.19'}
+ dev: true
+
+ /inflight/1.0.6:
+ resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+ dev: true
+
+ /inherits/2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: true
+
+ /ioredis/4.28.5:
+ resolution: {integrity: sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==}
+ engines: {node: '>=6'}
+ dependencies:
+ cluster-key-slot: 1.1.0
+ debug: 4.3.3
+ denque: 1.5.1
+ lodash.defaults: 4.2.0
+ lodash.flatten: 4.4.0
+ lodash.isarguments: 3.1.0
+ p-map: 2.1.0
+ redis-commands: 1.7.0
+ redis-errors: 1.2.0
+ redis-parser: 3.0.0
+ standard-as-callback: 2.1.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /is-absolute/1.0.0:
+ resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-relative: 1.0.0
+ is-windows: 1.0.2
+ dev: true
+
+ /is-arrayish/0.2.1:
+ resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=}
+ dev: true
+
+ /is-binary-path/2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+ dev: true
+
+ /is-buffer/1.1.6:
+ resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
+ dev: true
+
+ /is-core-module/2.8.1:
+ resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==}
+ dependencies:
+ has: 1.0.3
+ dev: true
+
+ /is-extglob/2.1.1:
+ resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-fullwidth-code-point/3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-glob/3.1.0:
+ resolution: {integrity: sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+ dev: true
+
+ /is-glob/4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+ dev: true
+
+ /is-negated-glob/1.0.0:
+ resolution: {integrity: sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-number/7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+ dev: true
+
+ /is-plain-object/2.0.4:
+ resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ isobject: 3.0.1
+ dev: true
+
+ /is-relative/1.0.0:
+ resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-unc-path: 1.0.0
+ dev: true
+
+ /is-unc-path/1.0.0:
+ resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ unc-path-regex: 0.1.2
+ dev: true
+
+ /is-utf8/0.2.1:
+ resolution: {integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=}
+ dev: true
+
+ /is-valid-glob/1.0.0:
+ resolution: {integrity: sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /is-windows/1.0.2:
+ resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /isarray/1.0.0:
+ resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=}
+ dev: true
+
+ /isexe/2.0.0:
+ resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=}
+ dev: true
+
+ /isobject/3.0.1:
+ resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /js-cookie/3.0.1:
+ resolution: {integrity: sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /js-tokens/4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ dev: true
+
+ /js-yaml/3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+ dev: true
+
+ /json-parse-even-better-errors/2.3.1:
+ resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+ dev: true
+
+ /json-schema-traverse/0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+ dev: true
+
+ /json-schema-traverse/1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+ dev: true
+
+ /json-stable-stringify-without-jsonify/1.0.1:
+ resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=}
+ dev: true
+
+ /kind-of/6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /kleur/4.1.4:
+ resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /lazystream/1.0.1:
+ resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==}
+ engines: {node: '>= 0.6.3'}
+ dependencies:
+ readable-stream: 2.3.7
+ dev: true
+
+ /lead/1.0.0:
+ resolution: {integrity: sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=}
+ engines: {node: '>= 0.10'}
+ dependencies:
+ flush-write-stream: 1.1.1
+ dev: true
+
+ /levn/0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ dev: true
+
+ /lilconfig/2.0.4:
+ resolution: {integrity: sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /lines-and-columns/1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ dev: true
+
+ /lodash-es/4.17.21:
+ resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
+ dev: true
+
+ /lodash.castarray/4.4.0:
+ resolution: {integrity: sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU=}
+ dev: true
+
+ /lodash.defaults/4.2.0:
+ resolution: {integrity: sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=}
+ dev: true
+
+ /lodash.flatten/4.4.0:
+ resolution: {integrity: sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=}
+ dev: true
+
+ /lodash.isarguments/3.1.0:
+ resolution: {integrity: sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=}
+ dev: true
+
+ /lodash.isplainobject/4.0.6:
+ resolution: {integrity: sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=}
+ dev: true
+
+ /lodash.merge/4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ dev: true
+
+ /lodash.truncate/4.4.2:
+ resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=}
+ dev: true
+
+ /lodash.uniq/4.5.0:
+ resolution: {integrity: sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=}
+ dev: true
+
+ /lodash/4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ dev: true
+
+ /lru-cache/6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+ dependencies:
+ yallist: 4.0.0
+ dev: true
+
+ /luxon/2.3.1:
+ resolution: {integrity: sha512-I8vnjOmhXsMSlNMZlMkSOvgrxKJl0uOsEzdGgGNZuZPaS9KlefpE9KV95QFftlJSC+1UyCC9/I69R02cz/zcCA==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /magic-string/0.25.7:
+ resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==}
+ dependencies:
+ sourcemap-codec: 1.4.8
+ dev: true
+
+ /merge2/1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /micromatch/4.0.4:
+ resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /min-indent/1.0.1:
+ resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /minimatch/3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+ dev: true
+
+ /minimist/1.2.5:
+ resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==}
+ dev: true
+
+ /mkdirp/0.5.5:
+ resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==}
+ hasBin: true
+ dependencies:
+ minimist: 1.2.5
+ dev: true
+
+ /mri/1.2.0:
+ resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /mrmime/1.0.0:
+ resolution: {integrity: sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /ms/2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ dev: true
+
+ /nanoclone/0.2.1:
+ resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==}
+ dev: true
+
+ /nanoid/3.3.1:
+ resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+ dev: true
+
+ /natural-compare/1.4.0:
+ resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=}
+ dev: true
+
+ /node-domexception/1.0.0:
+ resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
+ engines: {node: '>=10.5.0'}
+ dev: true
+
+ /node-fetch/3.2.0:
+ resolution: {integrity: sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ data-uri-to-buffer: 4.0.0
+ fetch-blob: 3.1.4
+ formdata-polyfill: 4.0.10
+ dev: true
+
+ /node-releases/2.0.2:
+ resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==}
+ dev: true
+
+ /normalize-path/2.1.1:
+ resolution: {integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ remove-trailing-separator: 1.1.0
+ dev: true
+
+ /normalize-path/3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /normalize-range/0.1.2:
+ resolution: {integrity: sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /now-and-later/2.0.1:
+ resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==}
+ engines: {node: '>= 0.10'}
+ dependencies:
+ once: 1.4.0
+ dev: true
+
+ /object-hash/2.2.0:
+ resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /object-keys/1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /object.assign/4.1.2:
+ resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ define-properties: 1.1.3
+ has-symbols: 1.0.3
+ object-keys: 1.1.1
+ dev: true
+
+ /once/1.4.0:
+ resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
+ dependencies:
+ wrappy: 1.0.2
+ dev: true
+
+ /optionator/0.9.1:
+ resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.3
+ dev: true
+
+ /ordered-read-streams/1.0.1:
+ resolution: {integrity: sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=}
+ dependencies:
+ readable-stream: 2.3.7
+ dev: true
+
+ /p-map/2.1.0:
+ resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /parent-module/1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+ dependencies:
+ callsites: 3.1.0
+ dev: true
+
+ /parse-json/5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@babel/code-frame': 7.12.11
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+ dev: true
+
+ /parse5/6.0.1:
+ resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==}
+ dev: true
+
+ /parseqs/0.0.6:
+ resolution: {integrity: sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==}
+ dev: true
+
+ /parseuri/0.0.6:
+ resolution: {integrity: sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==}
+ dev: true
+
+ /path-dirname/1.0.2:
+ resolution: {integrity: sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=}
+ dev: true
+
+ /path-is-absolute/1.0.1:
+ resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /path-key/3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /path-parse/1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ dev: true
+
+ /path-type/4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /picocolors/1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+ dev: true
+
+ /picomatch/2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+ dev: true
+
+ /postcss-js/4.0.0_postcss@8.4.7:
+ resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==}
+ engines: {node: ^12 || ^14 || >= 16}
+ peerDependencies:
+ postcss: ^8.3.3
+ dependencies:
+ camelcase-css: 2.0.1
+ postcss: 8.4.7
+ dev: true
+
+ /postcss-load-config/3.1.3:
+ resolution: {integrity: sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==}
+ engines: {node: '>= 10'}
+ peerDependencies:
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ ts-node:
optional: true
+ dependencies:
+ lilconfig: 2.0.4
+ yaml: 1.10.2
+ dev: true
- /esbuild-linux-arm/0.14.23:
- resolution:
- {
- integrity: sha512-x64CEUxi8+EzOAIpCUeuni0bZfzPw/65r8tC5cy5zOq9dY7ysOi5EVQHnzaxS+1NmV+/RVRpmrzGw1QgY2Xpmw==
- }
- engines: { node: '>=12' }
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
+ /postcss-nested/5.0.6_postcss@8.4.7:
+ resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+ dependencies:
+ postcss: 8.4.7
+ postcss-selector-parser: 6.0.9
+ dev: true
+
+ /postcss-selector-parser/6.0.9:
+ resolution: {integrity: sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+ dev: true
+
+ /postcss-value-parser/4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+ dev: true
+
+ /postcss/8.4.12:
+ resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.1
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+ dev: true
+
+ /postcss/8.4.7:
+ resolution: {integrity: sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.1
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+ dev: true
+
+ /prelude-ls/1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+ dev: true
+
+ /prettier-plugin-svelte/2.6.0_prettier@2.5.1+svelte@3.46.4:
+ resolution: {integrity: sha512-NPSRf6Y5rufRlBleok/pqg4+1FyGsL0zYhkYP6hnueeL1J/uCm3OfOZPsLX4zqD9VAdcXfyEL2PYqGv8ZoOSfA==}
+ peerDependencies:
+ prettier: ^1.16.4 || ^2.0.0
+ svelte: ^3.2.0
+ dependencies:
+ prettier: 2.5.1
+ svelte: 3.46.4
+ dev: true
+
+ /prettier/2.5.1:
+ resolution: {integrity: sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ dev: true
+
+ /process-nextick-args/2.0.1:
+ resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ dev: true
+
+ /progress/2.0.3:
+ resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /property-expr/2.0.5:
+ resolution: {integrity: sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==}
+ dev: true
+
+ /pump/2.0.1:
+ resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==}
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+ dev: true
+
+ /pumpify/1.5.1:
+ resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==}
+ dependencies:
+ duplexify: 3.7.1
+ inherits: 2.0.4
+ pump: 2.0.1
+ dev: true
+
+ /punycode/2.1.1:
+ resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /queue-microtask/1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ dev: true
+
+ /quick-lru/5.1.1:
+ resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /readable-stream/2.3.7:
+ resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+ dev: true
+
+ /readable-stream/3.6.0:
+ resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+ dev: true
+
+ /readdirp/3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: true
+
+ /redis-commands/1.7.0:
+ resolution: {integrity: sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==}
+ dev: true
+
+ /redis-errors/1.2.0:
+ resolution: {integrity: sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=}
+ engines: {node: '>=4'}
+ dev: true
+
+ /redis-parser/3.0.0:
+ resolution: {integrity: sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=}
+ engines: {node: '>=4'}
+ dependencies:
+ redis-errors: 1.2.0
+ dev: true
+
+ /regenerator-runtime/0.13.9:
+ resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==}
+
+ /regexparam/2.0.0:
+ resolution: {integrity: sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /regexpp/3.2.0:
+ resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /remove-bom-buffer/3.0.0:
+ resolution: {integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-buffer: 1.1.6
+ is-utf8: 0.2.1
+ dev: true
+
+ /remove-bom-stream/1.2.0:
+ resolution: {integrity: sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=}
+ engines: {node: '>= 0.10'}
+ dependencies:
+ remove-bom-buffer: 3.0.0
+ safe-buffer: 5.2.1
+ through2: 2.0.5
+ dev: true
+
+ /remove-trailing-separator/1.1.0:
+ resolution: {integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8=}
+ dev: true
+
+ /replace-ext/1.0.1:
+ resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
+ engines: {node: '>= 0.10'}
+ dev: true
+
+ /require-from-string/2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /resolve-from/4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /resolve-options/1.1.0:
+ resolution: {integrity: sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=}
+ engines: {node: '>= 0.10'}
+ dependencies:
+ value-or-function: 3.0.0
+ dev: true
+
+ /resolve/1.22.0:
+ resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.8.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /reusify/1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ dev: true
+
+ /rimraf/2.7.1:
+ resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
+ hasBin: true
+ dependencies:
+ glob: 7.2.0
+ dev: true
+
+ /rimraf/3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ hasBin: true
+ dependencies:
+ glob: 7.2.0
+ dev: true
+
+ /rollup/2.68.0:
+ resolution: {integrity: sha512-XrMKOYK7oQcTio4wyTz466mucnd8LzkiZLozZ4Rz0zQD+HeX4nUK4B8GrTX/2EvN2/vBF/i2WnaXboPxo0JylA==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
+ /run-parallel/1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ dependencies:
+ queue-microtask: 1.2.3
+ dev: true
+
+ /sade/1.8.1:
+ resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
+ engines: {node: '>=6'}
+ dependencies:
+ mri: 1.2.0
+ dev: true
+
+ /safe-buffer/5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+ dev: true
+
+ /safe-buffer/5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ dev: true
+
+ /sander/0.5.1:
+ resolution: {integrity: sha1-dB4kXiMfB8r7b98PEzrfohalAq0=}
+ dependencies:
+ es6-promise: 3.3.1
+ graceful-fs: 4.2.9
+ mkdirp: 0.5.5
+ rimraf: 2.7.1
+ dev: true
+
+ /sass/1.49.9:
+ resolution: {integrity: sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==}
+ engines: {node: '>=12.0.0'}
+ hasBin: true
+ dependencies:
+ chokidar: 3.5.3
+ immutable: 4.0.0
+ source-map-js: 1.0.2
+ dev: true
+
+ /semver/7.3.5:
+ resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+ dev: true
+
+ /shallow-clone/3.0.1:
+ resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==}
+ engines: {node: '>=8'}
+ dependencies:
+ kind-of: 6.0.3
+ dev: true
+
+ /shebang-command/2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+ dependencies:
+ shebang-regex: 3.0.0
+ dev: true
+
+ /shebang-regex/3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /slash/3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /slice-ansi/4.0.0:
+ resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ astral-regex: 2.0.0
+ is-fullwidth-code-point: 3.0.0
+ dev: true
+
+ /socket.io-client/4.4.1:
+ resolution: {integrity: sha512-N5C/L5fLNha5Ojd7Yeb/puKcPWWcoB/A09fEjjNsg91EDVr5twk/OEyO6VT9dlLSUNY85NpW6KBhVMvaLKQ3vQ==}
+ engines: {node: '>=10.0.0'}
+ dependencies:
+ '@socket.io/component-emitter': 3.0.0
+ backo2: 1.0.2
+ debug: 4.3.3
+ engine.io-client: 6.1.1
+ parseuri: 0.0.6
+ socket.io-parser: 4.1.2
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /socket.io-parser/4.1.2:
+ resolution: {integrity: sha512-j3kk71QLJuyQ/hh5F/L2t1goqzdTL0gvDzuhTuNSwihfuFUrcSji0qFZmJJPtG6Rmug153eOPsUizeirf1IIog==}
+ engines: {node: '>=10.0.0'}
+ dependencies:
+ '@socket.io/component-emitter': 3.0.0
+ debug: 4.3.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /sorcery/0.10.0:
+ resolution: {integrity: sha1-iukK19fLBfxZ8asMY3hF1cFaUrc=}
+ hasBin: true
+ dependencies:
+ buffer-crc32: 0.2.13
+ minimist: 1.2.5
+ sander: 0.5.1
+ sourcemap-codec: 1.4.8
+ dev: true
+
+ /sortobject/4.16.0:
+ resolution: {integrity: sha512-jdcWhqJjxyYxRcXa30qImF3PZea1GpNwdKxUac28T28+GodptH4XihPuRlgCY0hITIEQVnw8DtQ81Fb6fomBaw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /source-map-js/1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /source-map/0.7.3:
+ resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /sourcemap-codec/1.4.8:
+ resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
+ dev: true
+
+ /sprintf-js/1.0.3:
+ resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=}
+ dev: true
+
+ /standard-as-callback/2.1.0:
+ resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==}
+ dev: true
+
+ /stream-shift/1.0.1:
+ resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==}
+ dev: true
+
+ /string-width/4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+ dev: true
+
+ /string_decoder/1.1.1:
+ resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+ dependencies:
+ safe-buffer: 5.1.2
+ dev: true
+
+ /string_decoder/1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+ dependencies:
+ safe-buffer: 5.2.1
+ dev: true
+
+ /strip-ansi/6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+ dev: true
+
+ /strip-indent/3.0.0:
+ resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ min-indent: 1.0.1
+ dev: true
+
+ /strip-json-comments/3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /supports-color/5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+ dependencies:
+ has-flag: 3.0.0
+ dev: true
+
+ /supports-color/7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+ dependencies:
+ has-flag: 4.0.0
+ dev: true
+
+ /supports-preserve-symlinks-flag/1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /svelte-check/2.4.5_bb21b93d557fc716a6ae071c4dce10e1:
+ resolution: {integrity: sha512-nRft8BbG2wcxyCdHDZ7X43xLcvDzua3xLwq6wzHGcAF3ka3Jyhv2rvgq0+SF9NwHLMefp9C2XkM6etzsxK/cMQ==}
+ hasBin: true
+ peerDependencies:
+ svelte: ^3.24.0
+ dependencies:
+ chokidar: 3.5.3
+ fast-glob: 3.2.11
+ import-fresh: 3.3.0
+ minimist: 1.2.5
+ picocolors: 1.0.0
+ sade: 1.8.1
+ source-map: 0.7.3
+ svelte: 3.46.4
+ svelte-preprocess: 4.10.4_c54fd0a3479054b5002c3dc2e70c9c9a
+ typescript: 4.5.5
+ transitivePeerDependencies:
+ - '@babel/core'
+ - coffeescript
+ - less
+ - node-sass
+ - postcss
+ - postcss-load-config
+ - pug
+ - sass
+ - stylus
+ - sugarss
+ dev: true
+
+ /svelte-hmr/0.14.9_svelte@3.46.4:
+ resolution: {integrity: sha512-bKE9+4qb4sAnA+TKHiYurUl970rjA0XmlP9TEP7K/ncyWz3m81kA4HOgmlZK/7irGK7gzZlaPDI3cmf8fp/+tg==}
+ peerDependencies:
+ svelte: '>=3.19.0'
+ dependencies:
+ svelte: 3.46.4
+ dev: true
+
+ /svelte-preprocess/4.10.4_c54fd0a3479054b5002c3dc2e70c9c9a:
+ resolution: {integrity: sha512-fuwol0N4UoHsNQolLFbMqWivqcJ9N0vfWO9IuPAiX/5okfoGXURyJ6nECbuEIv0nU3M8Xe2I1ONNje2buk7l6A==}
+ engines: {node: '>= 9.11.2'}
+ requiresBuild: true
+ peerDependencies:
+ '@babel/core': ^7.10.2
+ coffeescript: ^2.5.1
+ less: ^3.11.3 || ^4.0.0
+ node-sass: '*'
+ postcss: ^7 || ^8
+ postcss-load-config: ^2.1.0 || ^3.0.0
+ pug: ^3.0.0
+ sass: ^1.26.8
+ stylus: ^0.55.0
+ sugarss: ^2.0.0
+ svelte: ^3.23.0
+ typescript: ^3.9.5 || ^4.0.0
+ peerDependenciesMeta:
+ '@babel/core':
optional: true
-
- /esbuild-linux-arm64/0.14.23:
- resolution:
- {
- integrity: sha512-c4MLOIByNHR55n3KoYf9hYDfBRghMjOiHLaoYLhkQkIabb452RWi+HsNgB41sUpSlOAqfpqKPFNg7VrxL3UX9g==
- }
- engines: { node: '>=12' }
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
+ coffeescript:
optional: true
-
- /esbuild-linux-mips64le/0.14.23:
- resolution:
- {
- integrity: sha512-kHKyKRIAedYhKug2EJpyJxOUj3VYuamOVA1pY7EimoFPzaF3NeY7e4cFBAISC/Av0/tiV0xlFCt9q0HJ68IBIw==
- }
- engines: { node: '>=12' }
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
+ less:
optional: true
-
- /esbuild-linux-ppc64le/0.14.23:
- resolution:
- {
- integrity: sha512-7ilAiJEPuJJnJp/LiDO0oJm5ygbBPzhchJJh9HsHZzeqO+3PUzItXi+8PuicY08r0AaaOe25LA7sGJ0MzbfBag==
- }
- engines: { node: '>=12' }
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
+ node-sass:
optional: true
-
- /esbuild-linux-riscv64/0.14.23:
- resolution:
- {
- integrity: sha512-fbL3ggK2wY0D8I5raPIMPhpCvODFE+Bhb5QGtNP3r5aUsRR6TQV+ZBXIaw84iyvKC8vlXiA4fWLGhghAd/h/Zg==
- }
- engines: { node: '>=12' }
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
+ postcss:
optional: true
-
- /esbuild-linux-s390x/0.14.23:
- resolution:
- {
- integrity: sha512-GHMDCyfy7+FaNSO8RJ8KCFsnax8fLUsOrj9q5Gi2JmZMY0Zhp75keb5abTFCq2/Oy6KVcT0Dcbyo/bFb4rIFJA==
- }
- engines: { node: '>=12' }
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
+ postcss-load-config:
optional: true
-
- /esbuild-netbsd-64/0.14.23:
- resolution:
- {
- integrity: sha512-ovk2EX+3rrO1M2lowJfgMb/JPN1VwVYrx0QPUyudxkxLYrWeBxDKQvc6ffO+kB4QlDyTfdtAURrVzu3JeNdA2g==
- }
- engines: { node: '>=12' }
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
+ pug:
optional: true
-
- /esbuild-openbsd-64/0.14.23:
- resolution:
- {
- integrity: sha512-uYYNqbVR+i7k8ojP/oIROAHO9lATLN7H2QeXKt2H310Fc8FJj4y3Wce6hx0VgnJ4k1JDrgbbiXM8rbEgQyg8KA==
- }
- engines: { node: '>=12' }
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
+ sass:
optional: true
-
- /esbuild-sunos-64/0.14.23:
- resolution:
- {
- integrity: sha512-hAzeBeET0+SbScknPzS2LBY6FVDpgE+CsHSpe6CEoR51PApdn2IB0SyJX7vGelXzlyrnorM4CAsRyb9Qev4h9g==
- }
- engines: { node: '>=12' }
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
+ stylus:
optional: true
-
- /esbuild-windows-32/0.14.23:
- resolution:
- {
- integrity: sha512-Kttmi3JnohdaREbk6o9e25kieJR379TsEWF0l39PQVHXq3FR6sFKtVPgY8wk055o6IB+rllrzLnbqOw/UV60EA==
- }
- engines: { node: '>=12' }
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
+ sugarss:
optional: true
-
- /esbuild-windows-64/0.14.23:
- resolution:
- {
- integrity: sha512-JtIT0t8ymkpl6YlmOl6zoSWL5cnCgyLaBdf/SiU/Eg3C13r0NbHZWNT/RDEMKK91Y6t79kTs3vyRcNZbfu5a8g==
- }
- engines: { node: '>=12' }
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
+ typescript:
optional: true
+ dependencies:
+ '@types/pug': 2.0.6
+ '@types/sass': 1.43.1
+ detect-indent: 6.1.0
+ magic-string: 0.25.7
+ postcss: 8.4.7
+ postcss-load-config: 3.1.3
+ sass: 1.49.9
+ sorcery: 0.10.0
+ strip-indent: 3.0.0
+ svelte: 3.46.4
+ typescript: 4.5.5
+ dev: true
- /esbuild-windows-arm64/0.14.23:
- resolution:
- {
- integrity: sha512-cTFaQqT2+ik9e4hePvYtRZQ3pqOvKDVNarzql0VFIzhc0tru/ZgdLoXd6epLiKT+SzoSce6V9YJ+nn6RCn6SHw==
- }
- engines: { node: '>=12' }
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
+ /svelte/3.46.4:
+ resolution: {integrity: sha512-qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /sveltejs-tippy/3.0.0:
+ resolution: {integrity: sha512-LAfQikm61AeqZW1hCFWUsmGEMmhMHDvrPV0JhbT38Ell9SqBjmFaY//+YKUxaJvx6nLMxGQdlcHA1rDg2Ml8tQ==}
+ dependencies:
+ tippy.js: 6.0.3
+ dev: true
+
+ /table/6.8.0:
+ resolution: {integrity: sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==}
+ engines: {node: '>=10.0.0'}
+ dependencies:
+ ajv: 8.10.0
+ lodash.truncate: 4.4.2
+ slice-ansi: 4.0.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ dev: true
+
+ /tailwindcss/3.0.23_autoprefixer@10.4.2:
+ resolution: {integrity: sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==}
+ engines: {node: '>=12.13.0'}
+ hasBin: true
+ peerDependencies:
+ autoprefixer: ^10.0.2
+ dependencies:
+ arg: 5.0.1
+ autoprefixer: 10.4.2_postcss@8.4.7
+ chalk: 4.1.2
+ chokidar: 3.5.3
+ color-name: 1.1.4
+ cosmiconfig: 7.0.1
+ detective: 5.2.0
+ didyoumean: 1.2.2
+ dlv: 1.1.3
+ fast-glob: 3.2.11
+ glob-parent: 6.0.2
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ object-hash: 2.2.0
+ postcss: 8.4.7
+ postcss-js: 4.0.0_postcss@8.4.7
+ postcss-load-config: 3.1.3
+ postcss-nested: 5.0.6_postcss@8.4.7
+ postcss-selector-parser: 6.0.9
+ postcss-value-parser: 4.2.0
+ quick-lru: 5.1.1
+ resolve: 1.22.0
+ transitivePeerDependencies:
+ - ts-node
+ dev: true
+
+ /text-table/0.2.0:
+ resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=}
+ dev: true
+
+ /through2-filter/3.0.0:
+ resolution: {integrity: sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==}
+ dependencies:
+ through2: 2.0.5
+ xtend: 4.0.2
+ dev: true
+
+ /through2/2.0.5:
+ resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
+ dependencies:
+ readable-stream: 2.3.7
+ xtend: 4.0.2
+ dev: true
+
+ /through2/4.0.2:
+ resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
+ dependencies:
+ readable-stream: 3.6.0
+ dev: true
+
+ /tiny-glob/0.2.9:
+ resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
+ dependencies:
+ globalyzer: 0.1.0
+ globrex: 0.1.2
+ dev: true
+
+ /tippy.js/6.0.3:
+ resolution: {integrity: sha512-buQF6HugTA4YeSA/s9xBhu0ferEAx7sRSn45G+Juh3p+Dz3vEKfxtqdg6JUnHIWDCV/r0u8Lrobs9AB4dtYcUQ==}
+ dependencies:
+ '@popperjs/core': 2.11.2
+ dev: true
+
+ /to-absolute-glob/2.0.2:
+ resolution: {integrity: sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-absolute: 1.0.0
+ is-negated-glob: 1.0.0
+ dev: true
+
+ /to-regex-range/5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+ dev: true
+
+ /to-through/2.0.0:
+ resolution: {integrity: sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=}
+ engines: {node: '>= 0.10'}
+ dependencies:
+ through2: 2.0.5
+ dev: true
+
+ /toposort/2.0.2:
+ resolution: {integrity: sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=}
+ dev: true
+
+ /tslib/1.14.1:
+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
+ dev: true
+
+ /tslib/2.3.1:
+ resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==}
+ dev: true
+
+ /tsutils/3.21.0_typescript@4.5.5:
+ resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
+ engines: {node: '>= 6'}
+ peerDependencies:
+ typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
+ dependencies:
+ tslib: 1.14.1
+ typescript: 4.5.5
+ dev: true
+
+ /type-check/0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ dev: true
+
+ /type-fest/0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /typescript/4.5.5:
+ resolution: {integrity: sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+ dev: true
+
+ /unc-path-regex/0.1.2:
+ resolution: {integrity: sha1-5z3T17DXxe2G+6xrCufYxqadUPo=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /unique-stream/2.3.1:
+ resolution: {integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==}
+ dependencies:
+ json-stable-stringify-without-jsonify: 1.0.1
+ through2-filter: 3.0.0
+ dev: true
+
+ /uri-js/4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+ dependencies:
+ punycode: 2.1.1
+ dev: true
+
+ /util-deprecate/1.0.2:
+ resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
+ dev: true
+
+ /v8-compile-cache/2.3.0:
+ resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==}
+ dev: true
+
+ /value-or-function/3.0.0:
+ resolution: {integrity: sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=}
+ engines: {node: '>= 0.10'}
+ dev: true
+
+ /vinyl-fs/3.0.3:
+ resolution: {integrity: sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==}
+ engines: {node: '>= 0.10'}
+ dependencies:
+ fs-mkdirp-stream: 1.0.0
+ glob-stream: 6.1.0
+ graceful-fs: 4.2.9
+ is-valid-glob: 1.0.0
+ lazystream: 1.0.1
+ lead: 1.0.0
+ object.assign: 4.1.2
+ pumpify: 1.5.1
+ readable-stream: 2.3.7
+ remove-bom-buffer: 3.0.0
+ remove-bom-stream: 1.2.0
+ resolve-options: 1.1.0
+ through2: 2.0.5
+ to-through: 2.0.0
+ value-or-function: 3.0.0
+ vinyl: 2.2.1
+ vinyl-sourcemap: 1.1.0
+ dev: true
+
+ /vinyl-sourcemap/1.1.0:
+ resolution: {integrity: sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=}
+ engines: {node: '>= 0.10'}
+ dependencies:
+ append-buffer: 1.0.2
+ convert-source-map: 1.8.0
+ graceful-fs: 4.2.9
+ normalize-path: 2.1.1
+ now-and-later: 2.0.1
+ remove-bom-buffer: 3.0.0
+ vinyl: 2.2.1
+ dev: true
+
+ /vinyl/2.2.1:
+ resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==}
+ engines: {node: '>= 0.10'}
+ dependencies:
+ clone: 2.1.2
+ clone-buffer: 1.0.0
+ clone-stats: 1.0.0
+ cloneable-readable: 1.1.3
+ remove-trailing-separator: 1.1.0
+ replace-ext: 1.0.1
+ dev: true
+
+ /vite/2.9.1_sass@1.49.9:
+ resolution: {integrity: sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==}
+ engines: {node: '>=12.2.0'}
+ hasBin: true
+ peerDependencies:
+ less: '*'
+ sass: '*'
+ stylus: '*'
+ peerDependenciesMeta:
+ less:
optional: true
-
- /esbuild/0.14.23:
- resolution:
- {
- integrity: sha512-XjnIcZ9KB6lfonCa+jRguXyRYcldmkyZ99ieDksqW/C8bnyEX299yA4QH2XcgijCgaddEZePPTgvx/2imsq7Ig==
- }
- engines: { node: '>=12' }
- hasBin: true
- requiresBuild: true
- optionalDependencies:
- esbuild-android-arm64: 0.14.23
- esbuild-darwin-64: 0.14.23
- esbuild-darwin-arm64: 0.14.23
- esbuild-freebsd-64: 0.14.23
- esbuild-freebsd-arm64: 0.14.23
- esbuild-linux-32: 0.14.23
- esbuild-linux-64: 0.14.23
- esbuild-linux-arm: 0.14.23
- esbuild-linux-arm64: 0.14.23
- esbuild-linux-mips64le: 0.14.23
- esbuild-linux-ppc64le: 0.14.23
- esbuild-linux-riscv64: 0.14.23
- esbuild-linux-s390x: 0.14.23
- esbuild-netbsd-64: 0.14.23
- esbuild-openbsd-64: 0.14.23
- esbuild-sunos-64: 0.14.23
- esbuild-windows-32: 0.14.23
- esbuild-windows-64: 0.14.23
- esbuild-windows-arm64: 0.14.23
- dev: true
-
- /escalade/3.1.1:
- resolution:
- {
- integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
- }
- engines: { node: '>=6' }
- dev: true
-
- /escape-string-regexp/1.0.5:
- resolution: { integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= }
- engines: { node: '>=0.8.0' }
- dev: true
-
- /escape-string-regexp/4.0.0:
- resolution:
- {
- integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
- }
- engines: { node: '>=10' }
- dev: true
-
- /eslint-config-prettier/8.4.0_eslint@7.32.0:
- resolution:
- {
- integrity: sha512-CFotdUcMY18nGRo5KGsnNxpznzhkopOcOo0InID+sgQssPrzjvsyKZPvOgymTFeHrFuC3Tzdf2YndhXtULK9Iw==
- }
- hasBin: true
- peerDependencies:
- eslint: '>=7.0.0'
- dependencies:
- eslint: 7.32.0
- dev: true
-
- /eslint-plugin-svelte3/3.4.1_eslint@7.32.0+svelte@3.46.4:
- resolution:
- {
- integrity: sha512-7p59WG8qV8L6wLdl4d/c3mdjkgVglQCdv5XOTk/iNPBKXuuV+Q0eFP5Wa6iJd/G2M1qR3BkLPEzaANOqKAZczw==
- }
- engines: { node: '>=10' }
- peerDependencies:
- eslint: '>=6.0.0'
- svelte: ^3.2.0
- dependencies:
- eslint: 7.32.0
- svelte: 3.46.4
- dev: true
-
- /eslint-scope/5.1.1:
- resolution:
- {
- integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
- }
- engines: { node: '>=8.0.0' }
- dependencies:
- esrecurse: 4.3.0
- estraverse: 4.3.0
- dev: true
-
- /eslint-utils/2.1.0:
- resolution:
- {
- integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
- }
- engines: { node: '>=6' }
- dependencies:
- eslint-visitor-keys: 1.3.0
- dev: true
-
- /eslint-utils/3.0.0_eslint@7.32.0:
- resolution:
- {
- integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
- }
- engines: { node: ^10.0.0 || ^12.0.0 || >= 14.0.0 }
- peerDependencies:
- eslint: '>=5'
- dependencies:
- eslint: 7.32.0
- eslint-visitor-keys: 2.1.0
- dev: true
-
- /eslint-visitor-keys/1.3.0:
- resolution:
- {
- integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
- }
- engines: { node: '>=4' }
- dev: true
-
- /eslint-visitor-keys/2.1.0:
- resolution:
- {
- integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
- }
- engines: { node: '>=10' }
- dev: true
-
- /eslint-visitor-keys/3.3.0:
- resolution:
- {
- integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
- }
- engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
- dev: true
-
- /eslint/7.32.0:
- resolution:
- {
- integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==
- }
- engines: { node: ^10.12.0 || >=12.0.0 }
- hasBin: true
- dependencies:
- '@babel/code-frame': 7.12.11
- '@eslint/eslintrc': 0.4.3
- '@humanwhocodes/config-array': 0.5.0
- ajv: 6.12.6
- chalk: 4.1.2
- cross-spawn: 7.0.3
- debug: 4.3.3
- doctrine: 3.0.0
- enquirer: 2.3.6
- escape-string-regexp: 4.0.0
- eslint-scope: 5.1.1
- eslint-utils: 2.1.0
- eslint-visitor-keys: 2.1.0
- espree: 7.3.1
- esquery: 1.4.0
- esutils: 2.0.3
- fast-deep-equal: 3.1.3
- file-entry-cache: 6.0.1
- functional-red-black-tree: 1.0.1
- glob-parent: 5.1.2
- globals: 13.12.1
- ignore: 4.0.6
- import-fresh: 3.3.0
- imurmurhash: 0.1.4
- is-glob: 4.0.3
- js-yaml: 3.14.1
- json-stable-stringify-without-jsonify: 1.0.1
- levn: 0.4.1
- lodash.merge: 4.6.2
- minimatch: 3.1.2
- natural-compare: 1.4.0
- optionator: 0.9.1
- progress: 2.0.3
- regexpp: 3.2.0
- semver: 7.3.5
- strip-ansi: 6.0.1
- strip-json-comments: 3.1.1
- table: 6.8.0
- text-table: 0.2.0
- v8-compile-cache: 2.3.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /espree/7.3.1:
- resolution:
- {
- integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
- }
- engines: { node: ^10.12.0 || >=12.0.0 }
- dependencies:
- acorn: 7.4.1
- acorn-jsx: 5.3.2_acorn@7.4.1
- eslint-visitor-keys: 1.3.0
- dev: true
-
- /esprima-next/5.8.1:
- resolution:
- {
- integrity: sha512-jPuleZ9j065A9xGKreFh9YSgPlbL9/miG/l4KslkwEb7Ilwl5Ct7BmDkSTHA0rW0qnqLx+hsZWIB66s1XaMAyA==
- }
- engines: { node: '>=12' }
- hasBin: true
- dev: true
-
- /esprima/4.0.1:
- resolution:
- {
- integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
- }
- engines: { node: '>=4' }
- hasBin: true
- dev: true
-
- /esquery/1.4.0:
- resolution:
- {
- integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
- }
- engines: { node: '>=0.10' }
- dependencies:
- estraverse: 5.3.0
- dev: true
-
- /esrecurse/4.3.0:
- resolution:
- {
- integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
- }
- engines: { node: '>=4.0' }
- dependencies:
- estraverse: 5.3.0
- dev: true
-
- /estraverse/4.3.0:
- resolution:
- {
- integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
- }
- engines: { node: '>=4.0' }
- dev: true
-
- /estraverse/5.3.0:
- resolution:
- {
- integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
- }
- engines: { node: '>=4.0' }
- dev: true
-
- /estree-walker/2.0.2:
- resolution:
- {
- integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
- }
- dev: true
-
- /esutils/2.0.3:
- resolution:
- {
- integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
- }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /extend/3.0.2:
- resolution:
- {
- integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
- }
- dev: true
-
- /fast-deep-equal/3.1.3:
- resolution:
- {
- integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
- }
- dev: true
-
- /fast-glob/3.2.11:
- resolution:
- {
- integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
- }
- engines: { node: '>=8.6.0' }
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- '@nodelib/fs.walk': 1.2.8
- glob-parent: 5.1.2
- merge2: 1.4.1
- micromatch: 4.0.4
- dev: true
-
- /fast-json-stable-stringify/2.1.0:
- resolution:
- {
- integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
- }
- dev: true
-
- /fast-levenshtein/2.0.6:
- resolution: { integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= }
- dev: true
-
- /fastq/1.13.0:
- resolution:
- {
- integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
- }
- dependencies:
- reusify: 1.0.4
- dev: true
-
- /felte/1.0.1_svelte@3.46.4:
- resolution:
- {
- integrity: sha512-fGz9KUBbBzv+QTgocHx2lGiRCNQXoXnBOfPvkVi4JWnofQCbKAYKQ80ytqAvqv+NphAZp6Zb/+luToIfqJ+Q2w==
- }
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
- peerDependencies:
- svelte: ^3.31.0
- dependencies:
- '@felte/core': 1.0.1
- svelte: 3.46.4
- dev: true
-
- /fetch-blob/3.1.4:
- resolution:
- {
- integrity: sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==
- }
- engines: { node: ^12.20 || >= 14.13 }
- dependencies:
- node-domexception: 1.0.0
- web-streams-polyfill: 3.2.0
- dev: true
-
- /file-entry-cache/6.0.1:
- resolution:
- {
- integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
- }
- engines: { node: ^10.12.0 || >=12.0.0 }
- dependencies:
- flat-cache: 3.0.4
- dev: true
-
- /fill-range/7.0.1:
- resolution:
- {
- integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
- }
- engines: { node: '>=8' }
- dependencies:
- to-regex-range: 5.0.1
- dev: true
-
- /flat-cache/3.0.4:
- resolution:
- {
- integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
- }
- engines: { node: ^10.12.0 || >=12.0.0 }
- dependencies:
- flatted: 3.2.5
- rimraf: 3.0.2
- dev: true
-
- /flatted/3.2.5:
- resolution:
- {
- integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==
- }
- dev: true
-
- /flush-write-stream/1.1.1:
- resolution:
- {
- integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
- }
- dependencies:
- inherits: 2.0.4
- readable-stream: 2.3.7
- dev: true
-
- /formdata-polyfill/4.0.10:
- resolution:
- {
- integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==
- }
- engines: { node: '>=12.20.0' }
- dependencies:
- fetch-blob: 3.1.4
- dev: true
-
- /fraction.js/4.1.3:
- resolution:
- {
- integrity: sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==
- }
- dev: true
-
- /fs-mkdirp-stream/1.0.0:
- resolution: { integrity: sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= }
- engines: { node: '>= 0.10' }
- dependencies:
- graceful-fs: 4.2.9
- through2: 2.0.5
- dev: true
-
- /fs.realpath/1.0.0:
- resolution: { integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= }
- dev: true
-
- /fsevents/2.3.2:
- resolution:
- {
- integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
- }
- engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 }
- os: [darwin]
- requiresBuild: true
- dev: true
+ sass:
optional: true
-
- /function-bind/1.1.1:
- resolution:
- {
- integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
- }
- dev: true
-
- /functional-red-black-tree/1.0.1:
- resolution: { integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= }
- dev: true
-
- /get-intrinsic/1.1.1:
- resolution:
- {
- integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
- }
- dependencies:
- function-bind: 1.1.1
- has: 1.0.3
- has-symbols: 1.0.3
- dev: true
-
- /glob-parent/3.1.0:
- resolution: { integrity: sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= }
- dependencies:
- is-glob: 3.1.0
- path-dirname: 1.0.2
- dev: true
-
- /glob-parent/5.1.2:
- resolution:
- {
- integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
- }
- engines: { node: '>= 6' }
- dependencies:
- is-glob: 4.0.3
- dev: true
-
- /glob-parent/6.0.2:
- resolution:
- {
- integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
- }
- engines: { node: '>=10.13.0' }
- dependencies:
- is-glob: 4.0.3
- dev: true
-
- /glob-stream/6.1.0:
- resolution: { integrity: sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= }
- engines: { node: '>= 0.10' }
- dependencies:
- extend: 3.0.2
- glob: 7.2.0
- glob-parent: 3.1.0
- is-negated-glob: 1.0.0
- ordered-read-streams: 1.0.1
- pumpify: 1.5.1
- readable-stream: 2.3.7
- remove-trailing-separator: 1.1.0
- to-absolute-glob: 2.0.2
- unique-stream: 2.3.1
- dev: true
-
- /glob/7.2.0:
- resolution:
- {
- integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
- }
- dependencies:
- fs.realpath: 1.0.0
- inflight: 1.0.6
- inherits: 2.0.4
- minimatch: 3.1.2
- once: 1.4.0
- path-is-absolute: 1.0.1
- dev: true
-
- /globals/13.12.1:
- resolution:
- {
- integrity: sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==
- }
- engines: { node: '>=8' }
- dependencies:
- type-fest: 0.20.2
- dev: true
-
- /globalyzer/0.1.0:
- resolution:
- {
- integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==
- }
- dev: true
-
- /globby/11.1.0:
- resolution:
- {
- integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
- }
- engines: { node: '>=10' }
- dependencies:
- array-union: 2.1.0
- dir-glob: 3.0.1
- fast-glob: 3.2.11
- ignore: 5.2.0
- merge2: 1.4.1
- slash: 3.0.0
- dev: true
-
- /globrex/0.1.2:
- resolution:
- {
- integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
- }
- dev: true
-
- /graceful-fs/4.2.9:
- resolution:
- {
- integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==
- }
- dev: true
-
- /gulp-sort/2.0.0:
- resolution: { integrity: sha1-xnYqLx8N4KP8WVohWZ0/rI26Gso= }
- dependencies:
- through2: 2.0.5
- dev: true
-
- /has-cors/1.1.0:
- resolution: { integrity: sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= }
- dev: true
-
- /has-flag/3.0.0:
- resolution: { integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0= }
- engines: { node: '>=4' }
- dev: true
-
- /has-flag/4.0.0:
- resolution:
- {
- integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
- }
- engines: { node: '>=8' }
- dev: true
-
- /has-symbols/1.0.3:
- resolution:
- {
- integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
- }
- engines: { node: '>= 0.4' }
- dev: true
-
- /has/1.0.3:
- resolution:
- {
- integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
- }
- engines: { node: '>= 0.4.0' }
- dependencies:
- function-bind: 1.1.1
- dev: true
-
- /highlight.js/11.4.0:
- resolution:
- {
- integrity: sha512-nawlpCBCSASs7EdvZOYOYVkJpGmAOKMYZgZtUqSRqodZE0GRVcFKwo1RcpeOemqh9hyttTdd5wDBwHkuSyUfnA==
- }
- engines: { node: '>=12.0.0' }
- dev: true
-
- /i18next-browser-languagedetector/6.1.4:
- resolution:
- {
- integrity: sha512-wukWnFeU7rKIWT66VU5i8I+3Zc4wReGcuDK2+kuFhtoxBRGWGdvYI9UQmqNL/yQH1KogWwh+xGEaIPH8V/i2Zg==
- }
- dependencies:
- '@babel/runtime': 7.17.2
- dev: true
-
- /i18next-scanner/3.1.0:
- resolution:
- {
- integrity: sha512-dHLXUJIiF1CYJNslCkJFDYJySk5fg+dzdg9O73XXqHcdZwJ2947SWusqq8HdNFB7LpkBi8oTG6TWLZPmqbAh8Q==
- }
- engines: { node: '>=12' }
- hasBin: true
- dependencies:
- acorn: 8.7.0
- acorn-dynamic-import: 4.0.0_acorn@8.7.0
- acorn-jsx: 5.3.2_acorn@8.7.0
- acorn-stage3: 4.0.0_acorn@8.7.0
- acorn-walk: 8.2.0
- chalk: 4.1.2
- clone-deep: 4.0.1
- commander: 6.2.1
- deepmerge: 4.2.2
- ensure-array: 1.0.0
- eol: 0.9.1
- esprima-next: 5.8.1
- gulp-sort: 2.0.0
- i18next: 21.6.14
- lodash: 4.17.21
- parse5: 6.0.1
- sortobject: 4.16.0
- through2: 4.0.2
- vinyl: 2.2.1
- vinyl-fs: 3.0.3
- dev: true
-
- /i18next/21.6.14:
- resolution:
- {
- integrity: sha512-XL6WyD+xlwQwbieXRlXhKWoLb/rkch50/rA+vl6untHnJ+aYnkQ0YDZciTWE78PPhOpbi2gR0LTJCJpiAhA+uQ==
- }
- dependencies:
- '@babel/runtime': 7.17.2
-
- /ignore/4.0.6:
- resolution:
- {
- integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
- }
- engines: { node: '>= 4' }
- dev: true
-
- /ignore/5.2.0:
- resolution:
- {
- integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
- }
- engines: { node: '>= 4' }
- dev: true
-
- /immutable/4.0.0:
- resolution:
- {
- integrity: sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==
- }
- dev: true
-
- /import-fresh/3.3.0:
- resolution:
- {
- integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
- }
- engines: { node: '>=6' }
- dependencies:
- parent-module: 1.0.1
- resolve-from: 4.0.0
- dev: true
-
- /imurmurhash/0.1.4:
- resolution: { integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o= }
- engines: { node: '>=0.8.19' }
- dev: true
-
- /inflight/1.0.6:
- resolution: { integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= }
- dependencies:
- once: 1.4.0
- wrappy: 1.0.2
- dev: true
-
- /inherits/2.0.4:
- resolution:
- {
- integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
- }
- dev: true
-
- /ioredis/4.28.5:
- resolution:
- {
- integrity: sha512-3GYo0GJtLqgNXj4YhrisLaNNvWSNwSS2wS4OELGfGxH8I69+XfNdnmV1AyN+ZqMh0i7eX+SWjrwFKDBDgfBC1A==
- }
- engines: { node: '>=6' }
- dependencies:
- cluster-key-slot: 1.1.0
- debug: 4.3.3
- denque: 1.5.1
- lodash.defaults: 4.2.0
- lodash.flatten: 4.4.0
- lodash.isarguments: 3.1.0
- p-map: 2.1.0
- redis-commands: 1.7.0
- redis-errors: 1.2.0
- redis-parser: 3.0.0
- standard-as-callback: 2.1.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /is-absolute/1.0.0:
- resolution:
- {
- integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==
- }
- engines: { node: '>=0.10.0' }
- dependencies:
- is-relative: 1.0.0
- is-windows: 1.0.2
- dev: true
-
- /is-arrayish/0.2.1:
- resolution: { integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= }
- dev: true
-
- /is-binary-path/2.1.0:
- resolution:
- {
- integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
- }
- engines: { node: '>=8' }
- dependencies:
- binary-extensions: 2.2.0
- dev: true
-
- /is-buffer/1.1.6:
- resolution:
- {
- integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
- }
- dev: true
-
- /is-core-module/2.8.1:
- resolution:
- {
- integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
- }
- dependencies:
- has: 1.0.3
- dev: true
-
- /is-extglob/2.1.1:
- resolution: { integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /is-fullwidth-code-point/3.0.0:
- resolution:
- {
- integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
- }
- engines: { node: '>=8' }
- dev: true
-
- /is-glob/3.1.0:
- resolution: { integrity: sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= }
- engines: { node: '>=0.10.0' }
- dependencies:
- is-extglob: 2.1.1
- dev: true
-
- /is-glob/4.0.3:
- resolution:
- {
- integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
- }
- engines: { node: '>=0.10.0' }
- dependencies:
- is-extglob: 2.1.1
- dev: true
-
- /is-negated-glob/1.0.0:
- resolution: { integrity: sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /is-number/7.0.0:
- resolution:
- {
- integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
- }
- engines: { node: '>=0.12.0' }
- dev: true
-
- /is-plain-object/2.0.4:
- resolution:
- {
- integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
- }
- engines: { node: '>=0.10.0' }
- dependencies:
- isobject: 3.0.1
- dev: true
-
- /is-relative/1.0.0:
- resolution:
- {
- integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==
- }
- engines: { node: '>=0.10.0' }
- dependencies:
- is-unc-path: 1.0.0
- dev: true
-
- /is-unc-path/1.0.0:
- resolution:
- {
- integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==
- }
- engines: { node: '>=0.10.0' }
- dependencies:
- unc-path-regex: 0.1.2
- dev: true
-
- /is-utf8/0.2.1:
- resolution: { integrity: sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= }
- dev: true
-
- /is-valid-glob/1.0.0:
- resolution: { integrity: sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /is-windows/1.0.2:
- resolution:
- {
- integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
- }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /isarray/1.0.0:
- resolution: { integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= }
- dev: true
-
- /isexe/2.0.0:
- resolution: { integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= }
- dev: true
-
- /isobject/3.0.1:
- resolution: { integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8= }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /js-cookie/3.0.1:
- resolution:
- {
- integrity: sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==
- }
- engines: { node: '>=12' }
- dev: true
-
- /js-tokens/4.0.0:
- resolution:
- {
- integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
- }
- dev: true
-
- /js-yaml/3.14.1:
- resolution:
- {
- integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
- }
- hasBin: true
- dependencies:
- argparse: 1.0.10
- esprima: 4.0.1
- dev: true
-
- /json-parse-even-better-errors/2.3.1:
- resolution:
- {
- integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
- }
- dev: true
-
- /json-schema-traverse/0.4.1:
- resolution:
- {
- integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
- }
- dev: true
-
- /json-schema-traverse/1.0.0:
- resolution:
- {
- integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
- }
- dev: true
-
- /json-stable-stringify-without-jsonify/1.0.1:
- resolution: { integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= }
- dev: true
-
- /kind-of/6.0.3:
- resolution:
- {
- integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
- }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /kleur/4.1.4:
- resolution:
- {
- integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==
- }
- engines: { node: '>=6' }
- dev: true
-
- /lazystream/1.0.1:
- resolution:
- {
- integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==
- }
- engines: { node: '>= 0.6.3' }
- dependencies:
- readable-stream: 2.3.7
- dev: true
-
- /lead/1.0.0:
- resolution: { integrity: sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= }
- engines: { node: '>= 0.10' }
- dependencies:
- flush-write-stream: 1.1.1
- dev: true
-
- /levn/0.4.1:
- resolution:
- {
- integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
- }
- engines: { node: '>= 0.8.0' }
- dependencies:
- prelude-ls: 1.2.1
- type-check: 0.4.0
- dev: true
-
- /lilconfig/2.0.4:
- resolution:
- {
- integrity: sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==
- }
- engines: { node: '>=10' }
- dev: true
-
- /lines-and-columns/1.2.4:
- resolution:
- {
- integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
- }
- dev: true
-
- /lodash-es/4.17.21:
- resolution:
- {
- integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
- }
- dev: true
-
- /lodash.castarray/4.4.0:
- resolution: { integrity: sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU= }
- dev: true
-
- /lodash.defaults/4.2.0:
- resolution: { integrity: sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= }
- dev: true
-
- /lodash.flatten/4.4.0:
- resolution: { integrity: sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= }
- dev: true
-
- /lodash.isarguments/3.1.0:
- resolution: { integrity: sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= }
- dev: true
-
- /lodash.isplainobject/4.0.6:
- resolution: { integrity: sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= }
- dev: true
-
- /lodash.merge/4.6.2:
- resolution:
- {
- integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
- }
- dev: true
-
- /lodash.truncate/4.4.2:
- resolution: { integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= }
- dev: true
-
- /lodash.uniq/4.5.0:
- resolution: { integrity: sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= }
- dev: true
-
- /lodash/4.17.21:
- resolution:
- {
- integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
- }
- dev: true
-
- /lru-cache/6.0.0:
- resolution:
- {
- integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
- }
- engines: { node: '>=10' }
- dependencies:
- yallist: 4.0.0
- dev: true
-
- /luxon/2.3.1:
- resolution:
- {
- integrity: sha512-I8vnjOmhXsMSlNMZlMkSOvgrxKJl0uOsEzdGgGNZuZPaS9KlefpE9KV95QFftlJSC+1UyCC9/I69R02cz/zcCA==
- }
- engines: { node: '>=12' }
- dev: true
-
- /magic-string/0.25.7:
- resolution:
- {
- integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==
- }
- dependencies:
- sourcemap-codec: 1.4.8
- dev: true
-
- /merge2/1.4.1:
- resolution:
- {
- integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
- }
- engines: { node: '>= 8' }
- dev: true
-
- /micromatch/4.0.4:
- resolution:
- {
- integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
- }
- engines: { node: '>=8.6' }
- dependencies:
- braces: 3.0.2
- picomatch: 2.3.1
- dev: true
-
- /min-indent/1.0.1:
- resolution:
- {
- integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
- }
- engines: { node: '>=4' }
- dev: true
-
- /minimatch/3.1.2:
- resolution:
- {
- integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
- }
- dependencies:
- brace-expansion: 1.1.11
- dev: true
-
- /minimist/1.2.5:
- resolution:
- {
- integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
- }
- dev: true
-
- /mkdirp/0.5.5:
- resolution:
- {
- integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
- }
- hasBin: true
- dependencies:
- minimist: 1.2.5
- dev: true
-
- /mri/1.2.0:
- resolution:
- {
- integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==
- }
- engines: { node: '>=4' }
- dev: true
-
- /ms/2.1.2:
- resolution:
- {
- integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
- }
- dev: true
-
- /nanoclone/0.2.1:
- resolution:
- {
- integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==
- }
- dev: true
-
- /nanoid/3.3.1:
- resolution:
- {
- integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==
- }
- engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 }
- hasBin: true
- dev: true
-
- /natural-compare/1.4.0:
- resolution: { integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= }
- dev: true
-
- /node-domexception/1.0.0:
- resolution:
- {
- integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
- }
- engines: { node: '>=10.5.0' }
- dev: true
-
- /node-fetch/3.2.0:
- resolution:
- {
- integrity: sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw==
- }
- engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 }
- dependencies:
- data-uri-to-buffer: 4.0.0
- fetch-blob: 3.1.4
- formdata-polyfill: 4.0.10
- dev: true
-
- /node-releases/2.0.2:
- resolution:
- {
- integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==
- }
- dev: true
-
- /normalize-path/2.1.1:
- resolution: { integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= }
- engines: { node: '>=0.10.0' }
- dependencies:
- remove-trailing-separator: 1.1.0
- dev: true
-
- /normalize-path/3.0.0:
- resolution:
- {
- integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
- }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /normalize-range/0.1.2:
- resolution: { integrity: sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /now-and-later/2.0.1:
- resolution:
- {
- integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==
- }
- engines: { node: '>= 0.10' }
- dependencies:
- once: 1.4.0
- dev: true
-
- /object-hash/2.2.0:
- resolution:
- {
- integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
- }
- engines: { node: '>= 6' }
- dev: true
-
- /object-keys/1.1.1:
- resolution:
- {
- integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
- }
- engines: { node: '>= 0.4' }
- dev: true
-
- /object.assign/4.1.2:
- resolution:
- {
- integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
- }
- engines: { node: '>= 0.4' }
- dependencies:
- call-bind: 1.0.2
- define-properties: 1.1.3
- has-symbols: 1.0.3
- object-keys: 1.1.1
- dev: true
-
- /once/1.4.0:
- resolution: { integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= }
- dependencies:
- wrappy: 1.0.2
- dev: true
-
- /optionator/0.9.1:
- resolution:
- {
- integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
- }
- engines: { node: '>= 0.8.0' }
- dependencies:
- deep-is: 0.1.4
- fast-levenshtein: 2.0.6
- levn: 0.4.1
- prelude-ls: 1.2.1
- type-check: 0.4.0
- word-wrap: 1.2.3
- dev: true
-
- /ordered-read-streams/1.0.1:
- resolution: { integrity: sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= }
- dependencies:
- readable-stream: 2.3.7
- dev: true
-
- /p-map/2.1.0:
- resolution:
- {
- integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
- }
- engines: { node: '>=6' }
- dev: true
-
- /parent-module/1.0.1:
- resolution:
- {
- integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
- }
- engines: { node: '>=6' }
- dependencies:
- callsites: 3.1.0
- dev: true
-
- /parse-json/5.2.0:
- resolution:
- {
- integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
- }
- engines: { node: '>=8' }
- dependencies:
- '@babel/code-frame': 7.12.11
- error-ex: 1.3.2
- json-parse-even-better-errors: 2.3.1
- lines-and-columns: 1.2.4
- dev: true
-
- /parse5/6.0.1:
- resolution:
- {
- integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
- }
- dev: true
-
- /parseqs/0.0.6:
- resolution:
- {
- integrity: sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==
- }
- dev: true
-
- /parseuri/0.0.6:
- resolution:
- {
- integrity: sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==
- }
- dev: true
-
- /path-dirname/1.0.2:
- resolution: { integrity: sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= }
- dev: true
-
- /path-is-absolute/1.0.1:
- resolution: { integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18= }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /path-key/3.1.1:
- resolution:
- {
- integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
- }
- engines: { node: '>=8' }
- dev: true
-
- /path-parse/1.0.7:
- resolution:
- {
- integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
- }
- dev: true
-
- /path-type/4.0.0:
- resolution:
- {
- integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
- }
- engines: { node: '>=8' }
- dev: true
-
- /picocolors/1.0.0:
- resolution:
- {
- integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
- }
- dev: true
-
- /picomatch/2.3.1:
- resolution:
- {
- integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
- }
- engines: { node: '>=8.6' }
- dev: true
-
- /postcss-js/4.0.0_postcss@8.4.7:
- resolution:
- {
- integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==
- }
- engines: { node: ^12 || ^14 || >= 16 }
- peerDependencies:
- postcss: ^8.3.3
- dependencies:
- camelcase-css: 2.0.1
- postcss: 8.4.7
- dev: true
-
- /postcss-load-config/3.1.3:
- resolution:
- {
- integrity: sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==
- }
- engines: { node: '>= 10' }
- peerDependencies:
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- ts-node:
- optional: true
- dependencies:
- lilconfig: 2.0.4
- yaml: 1.10.2
- dev: true
-
- /postcss-nested/5.0.6_postcss@8.4.7:
- resolution:
- {
- integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==
- }
- engines: { node: '>=12.0' }
- peerDependencies:
- postcss: ^8.2.14
- dependencies:
- postcss: 8.4.7
- postcss-selector-parser: 6.0.9
- dev: true
-
- /postcss-selector-parser/6.0.9:
- resolution:
- {
- integrity: sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==
- }
- engines: { node: '>=4' }
- dependencies:
- cssesc: 3.0.0
- util-deprecate: 1.0.2
- dev: true
-
- /postcss-value-parser/4.2.0:
- resolution:
- {
- integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
- }
- dev: true
-
- /postcss/8.4.7:
- resolution:
- {
- integrity: sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A==
- }
- engines: { node: ^10 || ^12 || >=14 }
- dependencies:
- nanoid: 3.3.1
- picocolors: 1.0.0
- source-map-js: 1.0.2
- dev: true
-
- /prelude-ls/1.2.1:
- resolution:
- {
- integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
- }
- engines: { node: '>= 0.8.0' }
- dev: true
-
- /prettier-plugin-svelte/2.6.0_prettier@2.5.1+svelte@3.46.4:
- resolution:
- {
- integrity: sha512-NPSRf6Y5rufRlBleok/pqg4+1FyGsL0zYhkYP6hnueeL1J/uCm3OfOZPsLX4zqD9VAdcXfyEL2PYqGv8ZoOSfA==
- }
- peerDependencies:
- prettier: ^1.16.4 || ^2.0.0
- svelte: ^3.2.0
- dependencies:
- prettier: 2.5.1
- svelte: 3.46.4
- dev: true
-
- /prettier/2.5.1:
- resolution:
- {
- integrity: sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
- }
- engines: { node: '>=10.13.0' }
- hasBin: true
- dev: true
-
- /process-nextick-args/2.0.1:
- resolution:
- {
- integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
- }
- dev: true
-
- /progress/2.0.3:
- resolution:
- {
- integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
- }
- engines: { node: '>=0.4.0' }
- dev: true
-
- /property-expr/2.0.5:
- resolution:
- {
- integrity: sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==
- }
- dev: true
-
- /pump/2.0.1:
- resolution:
- {
- integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
- }
- dependencies:
- end-of-stream: 1.4.4
- once: 1.4.0
- dev: true
-
- /pumpify/1.5.1:
- resolution:
- {
- integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
- }
- dependencies:
- duplexify: 3.7.1
- inherits: 2.0.4
- pump: 2.0.1
- dev: true
-
- /punycode/2.1.1:
- resolution:
- {
- integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
- }
- engines: { node: '>=6' }
- dev: true
-
- /queue-microtask/1.2.3:
- resolution:
- {
- integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
- }
- dev: true
-
- /quick-lru/5.1.1:
- resolution:
- {
- integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
- }
- engines: { node: '>=10' }
- dev: true
-
- /readable-stream/2.3.7:
- resolution:
- {
- integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
- }
- dependencies:
- core-util-is: 1.0.3
- inherits: 2.0.4
- isarray: 1.0.0
- process-nextick-args: 2.0.1
- safe-buffer: 5.1.2
- string_decoder: 1.1.1
- util-deprecate: 1.0.2
- dev: true
-
- /readable-stream/3.6.0:
- resolution:
- {
- integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
- }
- engines: { node: '>= 6' }
- dependencies:
- inherits: 2.0.4
- string_decoder: 1.3.0
- util-deprecate: 1.0.2
- dev: true
-
- /readdirp/3.6.0:
- resolution:
- {
- integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
- }
- engines: { node: '>=8.10.0' }
- dependencies:
- picomatch: 2.3.1
- dev: true
-
- /redis-commands/1.7.0:
- resolution:
- {
- integrity: sha512-nJWqw3bTFy21hX/CPKHth6sfhZbdiHP6bTawSgQBlKOVRG7EZkfHbbHwQJnrE4vsQf0CMNE+3gJ4Fmm16vdVlQ==
- }
- dev: true
-
- /redis-errors/1.2.0:
- resolution: { integrity: sha1-62LSrbFeTq9GEMBK/hUpOEJQq60= }
- engines: { node: '>=4' }
- dev: true
-
- /redis-parser/3.0.0:
- resolution: { integrity: sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ= }
- engines: { node: '>=4' }
- dependencies:
- redis-errors: 1.2.0
- dev: true
-
- /regenerator-runtime/0.13.9:
- resolution:
- {
- integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
- }
-
- /regexpp/3.2.0:
- resolution:
- {
- integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
- }
- engines: { node: '>=8' }
- dev: true
-
- /remove-bom-buffer/3.0.0:
- resolution:
- {
- integrity: sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==
- }
- engines: { node: '>=0.10.0' }
- dependencies:
- is-buffer: 1.1.6
- is-utf8: 0.2.1
- dev: true
-
- /remove-bom-stream/1.2.0:
- resolution: { integrity: sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= }
- engines: { node: '>= 0.10' }
- dependencies:
- remove-bom-buffer: 3.0.0
- safe-buffer: 5.2.1
- through2: 2.0.5
- dev: true
-
- /remove-trailing-separator/1.1.0:
- resolution: { integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8= }
- dev: true
-
- /replace-ext/1.0.1:
- resolution:
- {
- integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==
- }
- engines: { node: '>= 0.10' }
- dev: true
-
- /require-from-string/2.0.2:
- resolution:
- {
- integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
- }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /resolve-from/4.0.0:
- resolution:
- {
- integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
- }
- engines: { node: '>=4' }
- dev: true
-
- /resolve-options/1.1.0:
- resolution: { integrity: sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= }
- engines: { node: '>= 0.10' }
- dependencies:
- value-or-function: 3.0.0
- dev: true
-
- /resolve/1.22.0:
- resolution:
- {
- integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
- }
- hasBin: true
- dependencies:
- is-core-module: 2.8.1
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
- dev: true
-
- /reusify/1.0.4:
- resolution:
- {
- integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
- }
- engines: { iojs: '>=1.0.0', node: '>=0.10.0' }
- dev: true
-
- /rimraf/2.7.1:
- resolution:
- {
- integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
- }
- hasBin: true
- dependencies:
- glob: 7.2.0
- dev: true
-
- /rimraf/3.0.2:
- resolution:
- {
- integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
- }
- hasBin: true
- dependencies:
- glob: 7.2.0
- dev: true
-
- /rollup/2.68.0:
- resolution:
- {
- integrity: sha512-XrMKOYK7oQcTio4wyTz466mucnd8LzkiZLozZ4Rz0zQD+HeX4nUK4B8GrTX/2EvN2/vBF/i2WnaXboPxo0JylA==
- }
- engines: { node: '>=10.0.0' }
- hasBin: true
- optionalDependencies:
- fsevents: 2.3.2
- dev: true
-
- /run-parallel/1.2.0:
- resolution:
- {
- integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
- }
- dependencies:
- queue-microtask: 1.2.3
- dev: true
-
- /sade/1.8.1:
- resolution:
- {
- integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==
- }
- engines: { node: '>=6' }
- dependencies:
- mri: 1.2.0
- dev: true
-
- /safe-buffer/5.1.2:
- resolution:
- {
- integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
- }
- dev: true
-
- /safe-buffer/5.2.1:
- resolution:
- {
- integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
- }
- dev: true
-
- /sander/0.5.1:
- resolution: { integrity: sha1-dB4kXiMfB8r7b98PEzrfohalAq0= }
- dependencies:
- es6-promise: 3.3.1
- graceful-fs: 4.2.9
- mkdirp: 0.5.5
- rimraf: 2.7.1
- dev: true
-
- /sass/1.49.9:
- resolution:
- {
- integrity: sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==
- }
- engines: { node: '>=12.0.0' }
- hasBin: true
- dependencies:
- chokidar: 3.5.3
- immutable: 4.0.0
- source-map-js: 1.0.2
- dev: true
-
- /semver/7.3.5:
- resolution:
- {
- integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
- }
- engines: { node: '>=10' }
- hasBin: true
- dependencies:
- lru-cache: 6.0.0
- dev: true
-
- /shallow-clone/3.0.1:
- resolution:
- {
- integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
- }
- engines: { node: '>=8' }
- dependencies:
- kind-of: 6.0.3
- dev: true
-
- /shebang-command/2.0.0:
- resolution:
- {
- integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
- }
- engines: { node: '>=8' }
- dependencies:
- shebang-regex: 3.0.0
- dev: true
-
- /shebang-regex/3.0.0:
- resolution:
- {
- integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
- }
- engines: { node: '>=8' }
- dev: true
-
- /slash/3.0.0:
- resolution:
- {
- integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
- }
- engines: { node: '>=8' }
- dev: true
-
- /slice-ansi/4.0.0:
- resolution:
- {
- integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
- }
- engines: { node: '>=10' }
- dependencies:
- ansi-styles: 4.3.0
- astral-regex: 2.0.0
- is-fullwidth-code-point: 3.0.0
- dev: true
-
- /socket.io-client/4.4.1:
- resolution:
- {
- integrity: sha512-N5C/L5fLNha5Ojd7Yeb/puKcPWWcoB/A09fEjjNsg91EDVr5twk/OEyO6VT9dlLSUNY85NpW6KBhVMvaLKQ3vQ==
- }
- engines: { node: '>=10.0.0' }
- dependencies:
- '@socket.io/component-emitter': 3.0.0
- backo2: 1.0.2
- debug: 4.3.3
- engine.io-client: 6.1.1
- parseuri: 0.0.6
- socket.io-parser: 4.1.2
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
- dev: true
-
- /socket.io-parser/4.1.2:
- resolution:
- {
- integrity: sha512-j3kk71QLJuyQ/hh5F/L2t1goqzdTL0gvDzuhTuNSwihfuFUrcSji0qFZmJJPtG6Rmug153eOPsUizeirf1IIog==
- }
- engines: { node: '>=10.0.0' }
- dependencies:
- '@socket.io/component-emitter': 3.0.0
- debug: 4.3.3
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /sorcery/0.10.0:
- resolution: { integrity: sha1-iukK19fLBfxZ8asMY3hF1cFaUrc= }
- hasBin: true
- dependencies:
- buffer-crc32: 0.2.13
- minimist: 1.2.5
- sander: 0.5.1
- sourcemap-codec: 1.4.8
- dev: true
-
- /sortobject/4.16.0:
- resolution:
- {
- integrity: sha512-jdcWhqJjxyYxRcXa30qImF3PZea1GpNwdKxUac28T28+GodptH4XihPuRlgCY0hITIEQVnw8DtQ81Fb6fomBaw==
- }
- engines: { node: '>=10' }
- dev: true
-
- /source-map-js/1.0.2:
- resolution:
- {
- integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
- }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /source-map/0.7.3:
- resolution:
- {
- integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
- }
- engines: { node: '>= 8' }
- dev: true
-
- /sourcemap-codec/1.4.8:
- resolution:
- {
- integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
- }
- dev: true
-
- /sprintf-js/1.0.3:
- resolution: { integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= }
- dev: true
-
- /standard-as-callback/2.1.0:
- resolution:
- {
- integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==
- }
- dev: true
-
- /stream-shift/1.0.1:
- resolution:
- {
- integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
- }
- dev: true
-
- /string-width/4.2.3:
- resolution:
- {
- integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- }
- engines: { node: '>=8' }
- dependencies:
- emoji-regex: 8.0.0
- is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.1
- dev: true
-
- /string_decoder/1.1.1:
- resolution:
- {
- integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
- }
- dependencies:
- safe-buffer: 5.1.2
- dev: true
-
- /string_decoder/1.3.0:
- resolution:
- {
- integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
- }
- dependencies:
- safe-buffer: 5.2.1
- dev: true
-
- /strip-ansi/6.0.1:
- resolution:
- {
- integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- }
- engines: { node: '>=8' }
- dependencies:
- ansi-regex: 5.0.1
- dev: true
-
- /strip-indent/3.0.0:
- resolution:
- {
- integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==
- }
- engines: { node: '>=8' }
- dependencies:
- min-indent: 1.0.1
- dev: true
-
- /strip-json-comments/3.1.1:
- resolution:
- {
- integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
- }
- engines: { node: '>=8' }
- dev: true
-
- /supports-color/5.5.0:
- resolution:
- {
- integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
- }
- engines: { node: '>=4' }
- dependencies:
- has-flag: 3.0.0
- dev: true
-
- /supports-color/7.2.0:
- resolution:
- {
- integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
- }
- engines: { node: '>=8' }
- dependencies:
- has-flag: 4.0.0
- dev: true
-
- /supports-preserve-symlinks-flag/1.0.0:
- resolution:
- {
- integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
- }
- engines: { node: '>= 0.4' }
- dev: true
-
- /svelte-check/2.4.5_bb21b93d557fc716a6ae071c4dce10e1:
- resolution:
- {
- integrity: sha512-nRft8BbG2wcxyCdHDZ7X43xLcvDzua3xLwq6wzHGcAF3ka3Jyhv2rvgq0+SF9NwHLMefp9C2XkM6etzsxK/cMQ==
- }
- hasBin: true
- peerDependencies:
- svelte: ^3.24.0
- dependencies:
- chokidar: 3.5.3
- fast-glob: 3.2.11
- import-fresh: 3.3.0
- minimist: 1.2.5
- picocolors: 1.0.0
- sade: 1.8.1
- source-map: 0.7.3
- svelte: 3.46.4
- svelte-preprocess: 4.10.4_c54fd0a3479054b5002c3dc2e70c9c9a
- typescript: 4.5.5
- transitivePeerDependencies:
- - '@babel/core'
- - coffeescript
- - less
- - node-sass
- - postcss
- - postcss-load-config
- - pug
- - sass
- - stylus
- - sugarss
- dev: true
-
- /svelte-hmr/0.14.9_svelte@3.46.4:
- resolution:
- {
- integrity: sha512-bKE9+4qb4sAnA+TKHiYurUl970rjA0XmlP9TEP7K/ncyWz3m81kA4HOgmlZK/7irGK7gzZlaPDI3cmf8fp/+tg==
- }
- peerDependencies:
- svelte: '>=3.19.0'
- dependencies:
- svelte: 3.46.4
- dev: true
-
- /svelte-preprocess/4.10.4_c54fd0a3479054b5002c3dc2e70c9c9a:
- resolution:
- {
- integrity: sha512-fuwol0N4UoHsNQolLFbMqWivqcJ9N0vfWO9IuPAiX/5okfoGXURyJ6nECbuEIv0nU3M8Xe2I1ONNje2buk7l6A==
- }
- engines: { node: '>= 9.11.2' }
- requiresBuild: true
- peerDependencies:
- '@babel/core': ^7.10.2
- coffeescript: ^2.5.1
- less: ^3.11.3 || ^4.0.0
- node-sass: '*'
- postcss: ^7 || ^8
- postcss-load-config: ^2.1.0 || ^3.0.0
- pug: ^3.0.0
- sass: ^1.26.8
- stylus: ^0.55.0
- sugarss: ^2.0.0
- svelte: ^3.23.0
- typescript: ^3.9.5 || ^4.0.0
- peerDependenciesMeta:
- '@babel/core':
- optional: true
- coffeescript:
- optional: true
- less:
- optional: true
- node-sass:
- optional: true
- postcss:
- optional: true
- postcss-load-config:
- optional: true
- pug:
- optional: true
- sass:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- typescript:
- optional: true
- dependencies:
- '@types/pug': 2.0.6
- '@types/sass': 1.43.1
- detect-indent: 6.1.0
- magic-string: 0.25.7
- postcss: 8.4.7
- postcss-load-config: 3.1.3
- sass: 1.49.9
- sorcery: 0.10.0
- strip-indent: 3.0.0
- svelte: 3.46.4
- typescript: 4.5.5
- dev: true
-
- /svelte/3.46.4:
- resolution:
- {
- integrity: sha512-qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg==
- }
- engines: { node: '>= 8' }
- dev: true
-
- /sveltejs-tippy/3.0.0:
- resolution:
- {
- integrity: sha512-LAfQikm61AeqZW1hCFWUsmGEMmhMHDvrPV0JhbT38Ell9SqBjmFaY//+YKUxaJvx6nLMxGQdlcHA1rDg2Ml8tQ==
- }
- dependencies:
- tippy.js: 6.0.3
- dev: true
-
- /table/6.8.0:
- resolution:
- {
- integrity: sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==
- }
- engines: { node: '>=10.0.0' }
- dependencies:
- ajv: 8.10.0
- lodash.truncate: 4.4.2
- slice-ansi: 4.0.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
- dev: true
-
- /tailwindcss/3.0.23_autoprefixer@10.4.2:
- resolution:
- {
- integrity: sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==
- }
- engines: { node: '>=12.13.0' }
- hasBin: true
- peerDependencies:
- autoprefixer: ^10.0.2
- dependencies:
- arg: 5.0.1
- autoprefixer: 10.4.2_postcss@8.4.7
- chalk: 4.1.2
- chokidar: 3.5.3
- color-name: 1.1.4
- cosmiconfig: 7.0.1
- detective: 5.2.0
- didyoumean: 1.2.2
- dlv: 1.1.3
- fast-glob: 3.2.11
- glob-parent: 6.0.2
- is-glob: 4.0.3
- normalize-path: 3.0.0
- object-hash: 2.2.0
- postcss: 8.4.7
- postcss-js: 4.0.0_postcss@8.4.7
- postcss-load-config: 3.1.3
- postcss-nested: 5.0.6_postcss@8.4.7
- postcss-selector-parser: 6.0.9
- postcss-value-parser: 4.2.0
- quick-lru: 5.1.1
- resolve: 1.22.0
- transitivePeerDependencies:
- - ts-node
- dev: true
-
- /text-table/0.2.0:
- resolution: { integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= }
- dev: true
-
- /through2-filter/3.0.0:
- resolution:
- {
- integrity: sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==
- }
- dependencies:
- through2: 2.0.5
- xtend: 4.0.2
- dev: true
-
- /through2/2.0.5:
- resolution:
- {
- integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
- }
- dependencies:
- readable-stream: 2.3.7
- xtend: 4.0.2
- dev: true
-
- /through2/4.0.2:
- resolution:
- {
- integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==
- }
- dependencies:
- readable-stream: 3.6.0
- dev: true
-
- /tiny-glob/0.2.9:
- resolution:
- {
- integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==
- }
- dependencies:
- globalyzer: 0.1.0
- globrex: 0.1.2
- dev: true
-
- /tippy.js/6.0.3:
- resolution:
- {
- integrity: sha512-buQF6HugTA4YeSA/s9xBhu0ferEAx7sRSn45G+Juh3p+Dz3vEKfxtqdg6JUnHIWDCV/r0u8Lrobs9AB4dtYcUQ==
- }
- dependencies:
- '@popperjs/core': 2.11.2
- dev: true
-
- /to-absolute-glob/2.0.2:
- resolution: { integrity: sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= }
- engines: { node: '>=0.10.0' }
- dependencies:
- is-absolute: 1.0.0
- is-negated-glob: 1.0.0
- dev: true
-
- /to-regex-range/5.0.1:
- resolution:
- {
- integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
- }
- engines: { node: '>=8.0' }
- dependencies:
- is-number: 7.0.0
- dev: true
-
- /to-through/2.0.0:
- resolution: { integrity: sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= }
- engines: { node: '>= 0.10' }
- dependencies:
- through2: 2.0.5
- dev: true
-
- /toposort/2.0.2:
- resolution: { integrity: sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= }
- dev: true
-
- /tslib/1.14.1:
- resolution:
- {
- integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
- }
- dev: true
-
- /tslib/2.3.1:
- resolution:
- {
- integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
- }
- dev: true
-
- /tsutils/3.21.0_typescript@4.5.5:
- resolution:
- {
- integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
- }
- engines: { node: '>= 6' }
- peerDependencies:
- typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
- dependencies:
- tslib: 1.14.1
- typescript: 4.5.5
- dev: true
-
- /type-check/0.4.0:
- resolution:
- {
- integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
- }
- engines: { node: '>= 0.8.0' }
- dependencies:
- prelude-ls: 1.2.1
- dev: true
-
- /type-fest/0.20.2:
- resolution:
- {
- integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
- }
- engines: { node: '>=10' }
- dev: true
-
- /typescript/4.5.5:
- resolution:
- {
- integrity: sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
- }
- engines: { node: '>=4.2.0' }
- hasBin: true
- dev: true
-
- /unc-path-regex/0.1.2:
- resolution: { integrity: sha1-5z3T17DXxe2G+6xrCufYxqadUPo= }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /unique-stream/2.3.1:
- resolution:
- {
- integrity: sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==
- }
- dependencies:
- json-stable-stringify-without-jsonify: 1.0.1
- through2-filter: 3.0.0
- dev: true
-
- /uri-js/4.4.1:
- resolution:
- {
- integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
- }
- dependencies:
- punycode: 2.1.1
- dev: true
-
- /util-deprecate/1.0.2:
- resolution: { integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= }
- dev: true
-
- /v8-compile-cache/2.3.0:
- resolution:
- {
- integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
- }
- dev: true
-
- /value-or-function/3.0.0:
- resolution: { integrity: sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= }
- engines: { node: '>= 0.10' }
- dev: true
-
- /vinyl-fs/3.0.3:
- resolution:
- {
- integrity: sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==
- }
- engines: { node: '>= 0.10' }
- dependencies:
- fs-mkdirp-stream: 1.0.0
- glob-stream: 6.1.0
- graceful-fs: 4.2.9
- is-valid-glob: 1.0.0
- lazystream: 1.0.1
- lead: 1.0.0
- object.assign: 4.1.2
- pumpify: 1.5.1
- readable-stream: 2.3.7
- remove-bom-buffer: 3.0.0
- remove-bom-stream: 1.2.0
- resolve-options: 1.1.0
- through2: 2.0.5
- to-through: 2.0.0
- value-or-function: 3.0.0
- vinyl: 2.2.1
- vinyl-sourcemap: 1.1.0
- dev: true
-
- /vinyl-sourcemap/1.1.0:
- resolution: { integrity: sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= }
- engines: { node: '>= 0.10' }
- dependencies:
- append-buffer: 1.0.2
- convert-source-map: 1.8.0
- graceful-fs: 4.2.9
- normalize-path: 2.1.1
- now-and-later: 2.0.1
- remove-bom-buffer: 3.0.0
- vinyl: 2.2.1
- dev: true
-
- /vinyl/2.2.1:
- resolution:
- {
- integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==
- }
- engines: { node: '>= 0.10' }
- dependencies:
- clone: 2.1.2
- clone-buffer: 1.0.0
- clone-stats: 1.0.0
- cloneable-readable: 1.1.3
- remove-trailing-separator: 1.1.0
- replace-ext: 1.0.1
- dev: true
-
- /vite/2.8.4_sass@1.49.9:
- resolution:
- {
- integrity: sha512-GwtOkkaT2LDI82uWZKcrpRQxP5tymLnC7hVHHqNkhFNknYr0hJUlDLfhVRgngJvAy3RwypkDCWtTKn1BjO96Dw==
- }
- engines: { node: '>=12.2.0' }
- hasBin: true
- peerDependencies:
- less: '*'
- sass: '*'
- stylus: '*'
- peerDependenciesMeta:
- less:
- optional: true
- sass:
- optional: true
- stylus:
- optional: true
- dependencies:
- esbuild: 0.14.23
- postcss: 8.4.7
- resolve: 1.22.0
- rollup: 2.68.0
- sass: 1.49.9
- optionalDependencies:
- fsevents: 2.3.2
- dev: true
-
- /web-streams-polyfill/3.2.0:
- resolution:
- {
- integrity: sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==
- }
- engines: { node: '>= 8' }
- dev: true
-
- /which/2.0.2:
- resolution:
- {
- integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
- }
- engines: { node: '>= 8' }
- hasBin: true
- dependencies:
- isexe: 2.0.0
- dev: true
-
- /word-wrap/1.2.3:
- resolution:
- {
- integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
- }
- engines: { node: '>=0.10.0' }
- dev: true
-
- /wrappy/1.0.2:
- resolution: { integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= }
- dev: true
-
- /ws/8.2.3:
- resolution:
- {
- integrity: sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==
- }
- engines: { node: '>=10.0.0' }
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: ^5.0.2
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
- dev: true
-
- /xmlhttprequest-ssl/2.0.0:
- resolution:
- {
- integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==
- }
- engines: { node: '>=0.4.0' }
- dev: true
-
- /xtend/4.0.2:
- resolution:
- {
- integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
- }
- engines: { node: '>=0.4' }
- dev: true
-
- /yallist/4.0.0:
- resolution:
- {
- integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
- }
- dev: true
-
- /yaml/1.10.2:
- resolution:
- {
- integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
- }
- engines: { node: '>= 6' }
- dev: true
-
- /yeast/0.1.2:
- resolution: { integrity: sha1-AI4G2AlDIMNy28L47XagymyKxBk= }
- dev: true
-
- /yup/0.32.11:
- resolution:
- {
- integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==
- }
- engines: { node: '>=10' }
- dependencies:
- '@babel/runtime': 7.17.2
- '@types/lodash': 4.14.179
- lodash: 4.17.21
- lodash-es: 4.17.21
- nanoclone: 0.2.1
- property-expr: 2.0.5
- toposort: 2.0.2
- dev: true
+ stylus:
+ optional: true
+ dependencies:
+ esbuild: 0.14.34
+ postcss: 8.4.12
+ resolve: 1.22.0
+ rollup: 2.68.0
+ sass: 1.49.9
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
+ /web-streams-polyfill/3.2.0:
+ resolution: {integrity: sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /which/2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
+ dev: true
+
+ /word-wrap/1.2.3:
+ resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /worktop/0.8.0-next.12:
+ resolution: {integrity: sha512-ZXdgI9XOf0uB4IegFoViLdQ0Bf7hish0XMHwuV3nopOXygfLJkwAC5+HyA+sihBMSM2sLLQ5uGnD5aknL8+NQg==}
+ engines: {node: '>=12'}
+ dependencies:
+ mrmime: 1.0.0
+ regexparam: 2.0.0
+ dev: true
+
+ /wrappy/1.0.2:
+ resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
+ dev: true
+
+ /ws/8.2.3:
+ resolution: {integrity: sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dev: true
+
+ /xmlhttprequest-ssl/2.0.0:
+ resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /xtend/4.0.2:
+ resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+ engines: {node: '>=0.4'}
+ dev: true
+
+ /yallist/4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+ dev: true
+
+ /yaml/1.10.2:
+ resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /yeast/0.1.2:
+ resolution: {integrity: sha1-AI4G2AlDIMNy28L47XagymyKxBk=}
+ dev: true
+
+ /yup/0.32.11:
+ resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==}
+ engines: {node: '>=10'}
+ dependencies:
+ '@babel/runtime': 7.17.2
+ '@types/lodash': 4.14.179
+ lodash: 4.17.21
+ lodash-es: 4.17.21
+ nanoclone: 0.2.1
+ property-expr: 2.0.5
+ toposort: 2.0.2
+ dev: true
diff --git a/frontend/src/hooks.ts b/frontend/src/hooks.ts
index 8157914..1203729 100644
--- a/frontend/src/hooks.ts
+++ b/frontend/src/hooks.ts
@@ -25,12 +25,12 @@ export async function getSession(event) {
if (redis_res === null) {
const res = await fetch(`${process.env.API_URL}/api/v1/users/check`, {
headers: {
- Cookie: `access_token=Bearer ${event.locals.token}`
+ Cookie: `access_token=Bearer ${event.locals.token}` // skipcq: JS-0378
}
});
if (res.ok) {
const json = await res.json();
- //@ts-ignore
+ //@ts-ignore // skipcq: JS-0295
user_email = json.email;
} else {
user_email = null;
diff --git a/frontend/src/lib/i18n/i18n-service.ts b/frontend/src/lib/i18n/i18n-service.ts
index 9348320..97c911e 100644
--- a/frontend/src/lib/i18n/i18n-service.ts
+++ b/frontend/src/lib/i18n/i18n-service.ts
@@ -24,7 +24,7 @@ export class I18nService {
}
// Initializing i18n
- initialize() {
+ initialize(): void {
this.i18n.use(LanguageDetector).init({
// lng: INITIAL_LANGUAGE,
fallbackLng: 'en',
@@ -50,7 +50,7 @@ export class I18nService {
this.i18n.addResourceBundle('fr', 'translation', fr);
}
- changeLanguage(language: string) {
+ changeLanguage(language: string): void {
this.i18n.changeLanguage(language);
}
}
diff --git a/frontend/src/lib/i18n/locales/de.json b/frontend/src/lib/i18n/locales/de.json
index 4afbf9c..768ad71 100644
--- a/frontend/src/lib/i18n/locales/de.json
+++ b/frontend/src/lib/i18n/locales/de.json
@@ -1,116 +1,117 @@
{
- "index_page": {
- "meta": {
- "title": "Home",
- "description": "ClassQuiz ist eine Quiz-App wie KAHOOT! für Schüler*innen, welche open-source und kostenlos ist"
- },
- "features_description": {
- "1": "ClassQuiz ist eine Quiz-Platform, welche das erstellen und managen von Quizzes erlaubt.",
- "2": "Das Hauptfeature ist die KAHOOT!-Importfunktion, mit der man Quizzes von KAHOOT! importieren kann."
- },
- "slogan": "Die open-source Quiz-Platform!"
- },
- "overview_page": {
- "created_at": "Erstellt am",
- "question_count": "Fragenanzahl"
- },
- "edit_page": {
- "success_update_title": "Quiz erfolgreich aktualisiert!",
- "success_update_body": "Das Quiz wurde erfolgreich aktualisiert!"
- },
- "create_page": {
- "success": {
- "title": "Quiz erfolgreich erstellt!",
- "body": "Das Quiz wurde erfolgreich erstellt!"
- }
- },
- "register_page": {
- "greeting": "Schön, dich zu sehen!",
- "create_account": "Account erstellen",
- "forgot_password?": "Passwort vergessen?",
- "already_have_account?": "Hast du schon einen Account?"
- },
- "login_page": {
- "welcome_back": "Willkommen zurück!",
- "login_or_create_account": "Einloggen oder Account erstellen",
- "already_have_account": "Noch kein Account?",
- "modal": {
- "success": {
- "success_check_mail": "Login erfolgreich! Guck in deine Mailbox!",
- "success": "Login erfolgreich!",
- "description": {
- "success_check_mail": "Bitte überprüfe deine Mailbox, weil du eine Email mit einem Link, um dich einzuloggen, empfangen haben solltest.",
- "success": "Du hast dich erfolgreich angemeldet!"
- }
- },
- "error": {
- "wrong_creds": "Falsche Email oder falsches Passwort!",
- "unexpected": "Unerwarteter Fehler!",
- "description": {
- "wrong_creds": "Bitte stelle sicher, dass dein Passwort und deine Email richtig sind!",
- "unexpected": "Der gute alte unerwartete Fehler hat uns heimgesucht!"
- }
- }
- }
- },
- "words": {
- "question": "Frage",
- "answer": "Antwort",
- "stats": "Statistiken",
- "features": "Features",
- "import": "Importieren",
- "url": "URL",
- "submit": "Abschicken",
- "create": "Erstellen",
- "logout": "Abmelden",
- "title": "Titel",
- "play": "Spielen",
- "edit": "Bearbeiten",
- "delete": "Löschen",
- "public": "Öffentlich",
- "start": "Start",
- "connect": "Verbinden",
- "pin": "PIN",
- "kick": "Kicken",
- "register": "Registrieren",
- "login": "Anmelden",
- "docs": "Dokumentation",
- "close": "Schließen",
- "save": "Speichern",
- "username": "Nutzername",
- "password": "Passwort",
- "email": "Email",
- "description": "Beschreibung",
- "image": "Bild",
- "settings": "Einstellungen",
- "repeat_password": "Passwort wiederholen"
- },
- "editor": {
- "time_in_seconds": "Zeit in Sekunden",
- "right_or_true?": "Richtig?",
- "add_new_answer": "Neue Antwort hinzufügen",
- "add_new_question": "Neue Frage hinzufügen",
- "delete_question": "Frage löschen",
- "delete_answer": "Antwort löschen"
- },
- "import": {
- "need_help": "",
- "visit_docs": ""
- },
- "admin": {
- "already_registered_as_admin": ""
- },
- "admin_page": {
- "already_registered_as_admin": "Ein Admin wurde schon für dieses Spiel registriert.",
- "start_game": "Spiel starten",
- "time_left": "Zeit übrig",
- "get_results": "Ergebnisse abfragen"
- },
- "import_page": {
- "need_help": "Brauchst du Hilfe?",
- "visit_docs": "Besuche die Dokumentation"
- },
- "password_reset_page": {
- "reset_password": "Passwort zurücksetzen"
- }
+ "index_page": {
+ "meta": {
+ "title": "Home",
+ "description": "ClassQuiz ist eine Quiz-App wie KAHOOT! für Schüler*innen, welche open-source und kostenlos ist"
+ },
+ "features_description": {
+ "1": "ClassQuiz ist eine Quiz-Platform, welche das erstellen und managen von Quizzes erlaubt.",
+ "2": "Das Hauptfeature ist die KAHOOT!-Importfunktion, mit der man Quizzes von KAHOOT! importieren kann."
+ },
+ "slogan": "Die open-source Quiz-Platform!"
+ },
+ "overview_page": {
+ "created_at": "Erstellt am",
+ "question_count": "Fragenanzahl"
+ },
+ "edit_page": {
+ "success_update_title": "Quiz erfolgreich aktualisiert!",
+ "success_update_body": "Das Quiz wurde erfolgreich aktualisiert!"
+ },
+ "create_page": {
+ "success": {
+ "title": "Quiz erfolgreich erstellt!",
+ "body": "Das Quiz wurde erfolgreich erstellt!"
+ }
+ },
+ "register_page": {
+ "greeting": "Schön, dich zu sehen!",
+ "create_account": "Account erstellen",
+ "forgot_password?": "Passwort vergessen?",
+ "already_have_account?": "Hast du schon einen Account?"
+ },
+ "login_page": {
+ "welcome_back": "Willkommen zurück!",
+ "login_or_create_account": "Einloggen oder Account erstellen",
+ "already_have_account": "Noch kein Account?",
+ "modal": {
+ "success": {
+ "success_check_mail": "Login erfolgreich! Guck in deine Mailbox!",
+ "success": "Login erfolgreich!",
+ "description": {
+ "success_check_mail": "Bitte überprüfe deine Mailbox, weil du eine Email mit einem Link, um dich einzuloggen, empfangen haben solltest.",
+ "success": "Du hast dich erfolgreich angemeldet!"
+ }
+ },
+ "error": {
+ "wrong_creds": "Falsche Email oder falsches Passwort!",
+ "unexpected": "Unerwarteter Fehler!",
+ "description": {
+ "wrong_creds": "Bitte stelle sicher, dass dein Passwort und deine Email richtig sind!",
+ "unexpected": "Der gute alte unerwartete Fehler hat uns heimgesucht!"
+ }
+ }
+ }
+ },
+ "words": {
+ "question": "Frage",
+ "answer": "Antwort",
+ "stats": "Statistiken",
+ "features": "Features",
+ "import": "Importieren",
+ "url": "URL",
+ "submit": "Abschicken",
+ "create": "Erstellen",
+ "logout": "Abmelden",
+ "title": "Titel",
+ "play": "Spielen",
+ "edit": "Bearbeiten",
+ "delete": "Löschen",
+ "public": "Öffentlich",
+ "start": "Start",
+ "connect": "Verbinden",
+ "pin": "PIN",
+ "kick": "Kicken",
+ "register": "Registrieren",
+ "login": "Anmelden",
+ "docs": "Dokumentation",
+ "close": "Schließen",
+ "save": "Speichern",
+ "username": "Nutzername",
+ "password": "Passwort",
+ "email": "Email",
+ "description": "Beschreibung",
+ "image": "Bild",
+ "settings": "Einstellungen",
+ "repeat_password": "Passwort wiederholen",
+ "overview": "Übersicht"
+ },
+ "editor": {
+ "time_in_seconds": "Zeit in Sekunden",
+ "right_or_true?": "Richtig?",
+ "add_new_answer": "Neue Antwort hinzufügen",
+ "add_new_question": "Neue Frage hinzufügen",
+ "delete_question": "Frage löschen",
+ "delete_answer": "Antwort löschen"
+ },
+ "import": {
+ "need_help": "",
+ "visit_docs": ""
+ },
+ "admin": {
+ "already_registered_as_admin": ""
+ },
+ "admin_page": {
+ "already_registered_as_admin": "Ein Admin wurde schon für dieses Spiel registriert.",
+ "start_game": "Spiel starten",
+ "time_left": "Zeit übrig",
+ "get_results": "Ergebnisse abfragen"
+ },
+ "import_page": {
+ "need_help": "Brauchst du Hilfe?",
+ "visit_docs": "Besuche die Dokumentation"
+ },
+ "password_reset_page": {
+ "reset_password": "Passwort zurücksetzen"
+ }
}
diff --git a/frontend/src/lib/i18n/locales/en.json b/frontend/src/lib/i18n/locales/en.json
index 1ac8127..f9cd426 100644
--- a/frontend/src/lib/i18n/locales/en.json
+++ b/frontend/src/lib/i18n/locales/en.json
@@ -1,109 +1,110 @@
{
- "index_page": {
- "slogan": "The open-source quiz-platform!",
- "meta": {
- "description": "ClassQuiz is a quiz app like KAHOOT! for students, which is open source and free to use",
- "title": "Home"
- },
- "features_description": {
- "1": "ClassQuiz is a quiz-platform that allows you to create and manage quizzes.",
- "2": "The main feature is a KAHOOT!-import function that allows you to import quizzes from KAHOOT!-quizzes."
- }
- },
- "overview_page": {
- "created_at": "Created at",
- "question_count": "Question count"
- },
- "edit_page": {
- "success_update_title": "Successfully updated quiz!",
- "success_update_body": "Updated the quiz successfully!"
- },
- "create_page": {
- "success": {
- "title": "Successfully created quiz!",
- "body": "Created the quiz successfully!"
- }
- },
- "register_page": {
- "greeting": "Nice to meet you!",
- "create_account": "Create account",
- "forgot_password?": "Forgot password?",
- "already_have_account?": "Already have an account?"
- },
- "login_page": {
- "welcome_back": "Welcome back!",
- "login_or_create_account": "Login or create an account",
- "already_have_account": "Don't have an account?",
- "modal": {
- "success": {
- "success_check_mail": "Login Succeded! Check your mailbox!",
- "success": "Login Succeded!",
- "description": {
- "success_check_mail": "Please check your mailbox, since you should have received a mail, with a link you can click to login.",
- "success": "You've successfully logged in!"
- }
- },
- "error": {
- "wrong_creds": "Wrong email or password!",
- "unexpected": "Unexpected error!",
- "description": {
- "wrong_creds": "Please make sure that your password and your email are correct!",
- "unexpected": "There was the good old unexpected error!"
- }
- }
- }
- },
- "words": {
- "question": "Question",
- "answer": "Answer",
- "stats": "Stats",
- "features": "Features",
- "login": "Login",
- "email": "Email",
- "username": "Username",
- "password": "Password",
- "play": "Play",
- "edit": "Edit",
- "delete": "Delete",
- "public": "Public",
- "start": "Start",
- "create": "Create",
- "import": "Import",
- "logout": "Logout",
- "title": "Title",
- "url": "URL",
- "submit": "Submit",
- "connect": "Connect",
- "pin": "PIN",
- "kick": "Kick",
- "register": "Register",
- "docs": "Docs",
- "close": "Close",
- "save": "Save",
- "description": "Description",
- "image": "Image",
- "settings": "Settings",
- "repeat_password": "Repeat password"
- },
- "editor": {
- "time_in_seconds": "Time in seconds",
- "right_or_true?": "Right?",
- "add_new_answer": "Add new answer",
- "add_new_question": "Add new question",
- "delete_question": "Delete question",
- "delete_answer": "Delete answer"
- },
- "import_page": {
- "need_help": "Need help?",
- "visit_docs": "Visit the documentation"
- },
- "admin_page": {
- "already_registered_as_admin": "There is already an admin registered for this game.",
- "start_game": "Start game",
- "time_left": "Time left",
- "get_results": "Get results"
- },
- "password_reset_page": {
- "reset_password": "Reset password"
- }
+ "index_page": {
+ "slogan": "The open-source quiz-platform!",
+ "meta": {
+ "description": "ClassQuiz is a quiz app like KAHOOT! for students, which is open source and free to use",
+ "title": "Home"
+ },
+ "features_description": {
+ "1": "ClassQuiz is a quiz-platform that allows you to create and manage quizzes.",
+ "2": "The main feature is a KAHOOT!-import function that allows you to import quizzes from KAHOOT!-quizzes."
+ }
+ },
+ "overview_page": {
+ "created_at": "Created at",
+ "question_count": "Question count"
+ },
+ "edit_page": {
+ "success_update_title": "Successfully updated quiz!",
+ "success_update_body": "Updated the quiz successfully!"
+ },
+ "create_page": {
+ "success": {
+ "title": "Successfully created quiz!",
+ "body": "Created the quiz successfully!"
+ }
+ },
+ "register_page": {
+ "greeting": "Nice to meet you!",
+ "create_account": "Create account",
+ "forgot_password?": "Forgot password?",
+ "already_have_account?": "Already have an account?"
+ },
+ "login_page": {
+ "welcome_back": "Welcome back!",
+ "login_or_create_account": "Login or create an account",
+ "already_have_account": "Don't have an account?",
+ "modal": {
+ "success": {
+ "success_check_mail": "Login Succeded! Check your mailbox!",
+ "success": "Login Succeded!",
+ "description": {
+ "success_check_mail": "Please check your mailbox, since you should have received a mail, with a link you can click to login.",
+ "success": "You've successfully logged in!"
+ }
+ },
+ "error": {
+ "wrong_creds": "Wrong email or password!",
+ "unexpected": "Unexpected error!",
+ "description": {
+ "wrong_creds": "Please make sure that your password and your email are correct!",
+ "unexpected": "There was the good old unexpected error!"
+ }
+ }
+ }
+ },
+ "words": {
+ "question": "Question",
+ "answer": "Answer",
+ "stats": "Stats",
+ "features": "Features",
+ "login": "Login",
+ "email": "Email",
+ "username": "Username",
+ "password": "Password",
+ "play": "Play",
+ "edit": "Edit",
+ "delete": "Delete",
+ "public": "Public",
+ "start": "Start",
+ "create": "Create",
+ "import": "Import",
+ "logout": "Logout",
+ "title": "Title",
+ "url": "URL",
+ "submit": "Submit",
+ "connect": "Connect",
+ "pin": "PIN",
+ "kick": "Kick",
+ "register": "Register",
+ "docs": "Docs",
+ "close": "Close",
+ "save": "Save",
+ "description": "Description",
+ "image": "Image",
+ "settings": "Settings",
+ "repeat_password": "Repeat password",
+ "overview": "Overview"
+ },
+ "editor": {
+ "time_in_seconds": "Time in seconds",
+ "right_or_true?": "Right?",
+ "add_new_answer": "Add new answer",
+ "add_new_question": "Add new question",
+ "delete_question": "Delete question",
+ "delete_answer": "Delete answer"
+ },
+ "import_page": {
+ "need_help": "Need help?",
+ "visit_docs": "Visit the documentation"
+ },
+ "admin_page": {
+ "already_registered_as_admin": "There is already an admin registered for this game.",
+ "start_game": "Start game",
+ "time_left": "Time left",
+ "get_results": "Get results"
+ },
+ "password_reset_page": {
+ "reset_password": "Reset password"
+ }
}
diff --git a/frontend/src/lib/i18n/locales/fr.json b/frontend/src/lib/i18n/locales/fr.json
index 1b06ecb..dae1b38 100644
--- a/frontend/src/lib/i18n/locales/fr.json
+++ b/frontend/src/lib/i18n/locales/fr.json
@@ -1,109 +1,110 @@
{
- "login_page": {
- "modal": {
- "success": {
- "description": {
- "success": "Vous vous êtes connecté avec succès !",
- "success_check_mail": "Veuillez vérifier votre boîte mail, vous avez normalement reçu un mail avec un lien pour vous connecter."
- },
- "success": "Connexion réussie !",
- "success_check_mail": "Connexion réussie ! Vérifiez votre boîte mail !"
- },
- "error": {
- "wrong_creds": "Mot de passe ou email non-correct !",
- "description": {
- "wrong_creds": "Assurez-vous que votre mot de passe et votre email sont corrects !",
- "unexpected": "Une bonne vieille erreur inattendue s'est produite !"
- },
- "unexpected": "Erreur inattendue !"
- }
- },
- "welcome_back": "Bon retour parmi nous !",
- "login_or_create_account": "Se connecter ou créer un compte",
- "already_have_account": "Pas encore de compte ?"
- },
- "words": {
- "question": "Question",
- "answer": "Réponse",
- "stats": "Statistiques",
- "features": "Fonctionnalités",
- "login": "Connexion",
- "email": "Email",
- "username": "Pseudo",
- "password": "Mot de passe",
- "play": "Jouer",
- "edit": "Modifier",
- "delete": "Supprimer",
- "public": "Public",
- "start": "Commencer",
- "create": "Créer",
- "import": "Importer",
- "logout": "Se déconnecter",
- "url": "URL",
- "submit": "Valider",
- "connect": "Connexion",
- "pin": "PIN",
- "kick": "Éjecter",
- "register": "Enregistrer",
- "docs": "Documentation",
- "close": "Fermer",
- "save": "Enregistrer",
- "description": "Description",
- "image": "Image",
- "title": "titre",
- "settings": "Paramètres",
- "repeat_password": ""
- },
- "index_page": {
- "slogan": "La plateforme de quiz open-source !",
- "meta": {
- "description": "ClassQuiz est une application de quiz comme KAHOOT! pour les étudiants, libre et open-source",
- "title": "Accueil"
- },
- "features_description": {
- "1": "ClassQuiz est un outil de quiz vous permettant de créer et gérer des questionnaires.",
- "2": "La fonctionnalité principale est la fonction d'import de quiz KAHOOT, vou permettant de créer des quiz directement depuis KAHOOT!."
- }
- },
- "overview_page": {
- "created_at": "Crée le",
- "question_count": "Nombre de question"
- },
- "edit_page": {
- "success_update_title": "Quiz mis à jour avec succès !",
- "success_update_body": "Quiz mis à jour avec succès !"
- },
- "create_page": {
- "success": {
- "body": "Quiz créé avec succès !",
- "title": "Quiz créé avec succès !"
- }
- },
- "register_page": {
- "greeting": "Ravi de vous connaître !",
- "create_account": "Créer un compte",
- "forgot_password?": "Mot de passe oublié ?",
- "already_have_account?": "Vous avez déjà un compte ?"
- },
- "editor": {
- "time_in_seconds": "Temps en seconde",
- "add_new_question": "Ajouter une autre question",
- "add_new_answer": "Ajouter une autre réponse",
- "delete_question": "Supprimer la question",
- "delete_answer": "Supprimer la réponse",
- "right_or_true?": "Vrai?"
- },
- "import_page": {
- "need_help": "Besoin d'aide ?",
- "visit_docs": "Voir la documentation"
- },
- "admin_page": {
- "already_registered_as_admin": "Il y a déjà un administrateur enregistré pour ce jeu.",
- "start_game": "Commencer le jeu",
- "time_left": "Temps restant",
- "get_results": "Obtenir les résultats"
- },
- "password_reset_page": {
- "reset_password": ""
- }
+ "login_page": {
+ "modal": {
+ "success": {
+ "description": {
+ "success": "Vous vous êtes connecté avec succès !",
+ "success_check_mail": "Veuillez vérifier votre boîte mail, vous avez normalement reçu un mail avec un lien pour vous connecter."
+ },
+ "success": "Connexion réussie !",
+ "success_check_mail": "Connexion réussie ! Vérifiez votre boîte mail !"
+ },
+ "error": {
+ "wrong_creds": "Mot de passe ou email non-correct !",
+ "description": {
+ "wrong_creds": "Assurez-vous que votre mot de passe et votre email sont corrects !",
+ "unexpected": "Une bonne vieille erreur inattendue s'est produite !"
+ },
+ "unexpected": "Erreur inattendue !"
+ }
+ },
+ "welcome_back": "Bon retour parmi nous !",
+ "login_or_create_account": "Se connecter ou créer un compte",
+ "already_have_account": "Pas encore de compte ?"
+ },
+ "words": {
+ "question": "Question",
+ "answer": "Réponse",
+ "stats": "Statistiques",
+ "features": "Fonctionnalités",
+ "login": "Connexion",
+ "email": "Email",
+ "username": "Pseudo",
+ "password": "Mot de passe",
+ "play": "Jouer",
+ "edit": "Modifier",
+ "delete": "Supprimer",
+ "public": "Public",
+ "start": "Commencer",
+ "create": "Créer",
+ "import": "Importer",
+ "logout": "Se déconnecter",
+ "url": "URL",
+ "submit": "Valider",
+ "connect": "Connexion",
+ "pin": "PIN",
+ "kick": "Éjecter",
+ "register": "Enregistrer",
+ "docs": "Documentation",
+ "close": "Fermer",
+ "save": "Enregistrer",
+ "description": "Description",
+ "image": "Image",
+ "title": "titre",
+ "settings": "Paramètres",
+ "repeat_password": "",
+ "overview": ""
+ },
+ "index_page": {
+ "slogan": "La plateforme de quiz open-source !",
+ "meta": {
+ "description": "ClassQuiz est une application de quiz comme KAHOOT! pour les étudiants, libre et open-source",
+ "title": "Accueil"
+ },
+ "features_description": {
+ "1": "ClassQuiz est un outil de quiz vous permettant de créer et gérer des questionnaires.",
+ "2": "La fonctionnalité principale est la fonction d'import de quiz KAHOOT, vou permettant de créer des quiz directement depuis KAHOOT!."
+ }
+ },
+ "overview_page": {
+ "created_at": "Crée le",
+ "question_count": "Nombre de question"
+ },
+ "edit_page": {
+ "success_update_title": "Quiz mis à jour avec succès !",
+ "success_update_body": "Quiz mis à jour avec succès !"
+ },
+ "create_page": {
+ "success": {
+ "body": "Quiz créé avec succès !",
+ "title": "Quiz créé avec succès !"
+ }
+ },
+ "register_page": {
+ "greeting": "Ravi de vous connaître !",
+ "create_account": "Créer un compte",
+ "forgot_password?": "Mot de passe oublié ?",
+ "already_have_account?": "Vous avez déjà un compte ?"
+ },
+ "editor": {
+ "time_in_seconds": "Temps en seconde",
+ "add_new_question": "Ajouter une autre question",
+ "add_new_answer": "Ajouter une autre réponse",
+ "delete_question": "Supprimer la question",
+ "delete_answer": "Supprimer la réponse",
+ "right_or_true?": "Vrai?"
+ },
+ "import_page": {
+ "need_help": "Besoin d'aide ?",
+ "visit_docs": "Voir la documentation"
+ },
+ "admin_page": {
+ "already_registered_as_admin": "Il y a déjà un administrateur enregistré pour ce jeu.",
+ "start_game": "Commencer le jeu",
+ "time_left": "Temps restant",
+ "get_results": "Obtenir les résultats"
+ },
+ "password_reset_page": {
+ "reset_password": ""
+ }
}
diff --git a/frontend/src/lib/navbar.svelte b/frontend/src/lib/navbar.svelte
index e699fda..e28aafc 100644
--- a/frontend/src/lib/navbar.svelte
+++ b/frontend/src/lib/navbar.svelte
@@ -1,6 +1,7 @@
+
+
+
+
diff --git a/frontend/src/routes/account/password-reset.svelte b/frontend/src/routes/account/password-reset.svelte
index 6b8d021..edb13e0 100644
--- a/frontend/src/routes/account/password-reset.svelte
+++ b/frontend/src/routes/account/password-reset.svelte
@@ -10,18 +10,22 @@
}
-
-
+
{#if isSubmitting}
-
-
{user.username}
-
+
{user.username}
+
{$t('words.email')}: {user.email}
-