From 2e159af134e53ac17d2528fb8bf7c7be854a25cf Mon Sep 17 00:00:00 2001 From: Mawoka Date: Sun, 18 Dec 2022 18:31:06 +0100 Subject: [PATCH] :sparkles: Advanced Authentication --- Pipfile | 2 + Pipfile.lock | 908 ++++---- classquiz/__init__.py | 4 +- classquiz/db/models.py | 19 +- classquiz/oauth/authenticate_user.py | 2 - classquiz/oauth/github.py | 4 +- classquiz/routers/login.py | 206 ++ .../routers/{users.py => users/__init__.py} | 22 +- classquiz/routers/users/twofa.py | 75 + classquiz/routers/users/webauthn.py | 87 + frontend/package.json | 13 +- frontend/pnpm-lock.yaml | 1877 ++++++++++------- frontend/src/lib/i18n/locales/en.json | 3 +- .../src/routes/account/login/+page.svelte | 455 +--- .../account/login/backup_component.svelte | 96 + .../account/login/password_component.svelte | 113 + .../routes/account/login/select_method.svelte | 132 ++ .../routes/account/login/start_window.svelte | 149 ++ .../account/login/totp_component.svelte | 121 ++ .../account/login/verified_badge.svelte | 32 + .../account/login/webauthn_component.svelte | 110 + .../src/routes/account/settings/+page.svelte | 33 +- .../account/settings/security/+page.svelte | 215 ++ .../settings/security/backup_codes.svelte | 54 + .../settings/security/totp_setup.svelte | 60 + .../versions/25f2c34a69c8_added_webauthn.py | 40 + .../versions/694cb11c6886_added_totp.py | 29 + .../901dfcdf8d38_added_backup_code.py | 45 + .../97144a8cf6b6_added_github_user_id.py | 29 + 29 files changed, 3315 insertions(+), 1620 deletions(-) create mode 100644 classquiz/routers/login.py rename classquiz/routers/{users.py => users/__init__.py} (94%) create mode 100644 classquiz/routers/users/twofa.py create mode 100644 classquiz/routers/users/webauthn.py create mode 100644 frontend/src/routes/account/login/backup_component.svelte create mode 100644 frontend/src/routes/account/login/password_component.svelte create mode 100644 frontend/src/routes/account/login/select_method.svelte create mode 100644 frontend/src/routes/account/login/start_window.svelte create mode 100644 frontend/src/routes/account/login/totp_component.svelte create mode 100644 frontend/src/routes/account/login/verified_badge.svelte create mode 100644 frontend/src/routes/account/login/webauthn_component.svelte create mode 100644 frontend/src/routes/account/settings/security/+page.svelte create mode 100644 frontend/src/routes/account/settings/security/backup_codes.svelte create mode 100644 frontend/src/routes/account/settings/security/totp_setup.svelte create mode 100644 migrations/versions/25f2c34a69c8_added_webauthn.py create mode 100644 migrations/versions/694cb11c6886_added_totp.py create mode 100644 migrations/versions/901dfcdf8d38_added_backup_code.py create mode 100644 migrations/versions/97144a8cf6b6_added_github_user_id.py diff --git a/Pipfile b/Pipfile index 2f32f37..48fef47 100644 --- a/Pipfile +++ b/Pipfile @@ -34,6 +34,8 @@ puremagic = "*" py-avataaars-no-png = "*" cryptography = "*" scheduler = "*" +webauthn = "*" +pyotp = "*" [dev-packages] coverage = "*" diff --git a/Pipfile.lock b/Pipfile.lock index c47f27c..8f81630 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "cfc5f71a1923a6c45782a4afda883c77dbec0aafb633df5401df424a5aa510e6" + "sha256": "19b0681be7b80c66411658702fc9b518ba4e60a82d33ee026c31560e71a41522" }, "pipfile-spec": 6, "requires": { @@ -127,11 +127,11 @@ }, "alembic": { "hashes": [ - "sha256:0a024d7f2de88d738d7395ff866997314c837be6104e90c5724350313dee4da4", - "sha256:cd0b5e45b14b706426b833f06369b9a6d5ee03f826ec3238723ce8caaf6e5ffa" + "sha256:6af6792fe699730b27480382701b16028ebbaac6bc5cd4f06daf5fa3e4690364", + "sha256:e8ce855f731d92cfdbf9a71d148401fcc420399927817c6e2c0b6a5f31db745d" ], "index": "pypi", - "version": "==1.8.1" + "version": "==1.9.0" }, "anyio": { "hashes": [ @@ -173,15 +173,22 @@ "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e", "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==21.2.0" }, + "asn1crypto": { + "hashes": [ + "sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c", + "sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67" + ], + "version": "==1.5.1" + }, "async-timeout": { "hashes": [ "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15", "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==4.0.2" }, "asyncpg": { @@ -225,11 +232,11 @@ }, "authlib": { "hashes": [ - "sha256:0a270c91409fc2b7b0fbee6996e09f2ee3187358762111a9a4225c874b94e891", - "sha256:be4b6a1dea51122336c210a6945b27a105b9ac572baffd15b07bcff4376c1523" + "sha256:4ddf4fd6cfa75c9a460b361d4bd9dac71ffda0be879dbe4292a02e92349ad55a", + "sha256:4fa3e80883a5915ef9f5bc28630564bc4ed5b5af39812a3ff130ec76bd631e9d" ], "index": "pypi", - "version": "==1.1.0" + "version": "==1.2.0" }, "bidict": { "hashes": [ @@ -252,19 +259,61 @@ "pydantic" ], "hashes": [ - "sha256:b0d0dd538156bcb8fd3b3d3a986204be20c21e5d66073deccf07d57dc201d5fd", - "sha256:d2810549874126c9c46f866567040e0449caf4887ac8dc309a970ad872cd6d84" + "sha256:4b01725c8ccf918752436a8aab595fa153c5123c147225434bf1f40041acb3c7", + "sha256:7f200e1d1067245f39ae2df6c547dc3de8619060012679702f6471187280e6eb" ], "markers": "python_version >= '3.7' and python_version < '4.0'", - "version": "==2.0.1" + "version": "==3.0.0" + }, + "cbor2": { + "hashes": [ + "sha256:0b956f19e93ba3180c336282cd1b6665631f2d3a196a9c19b29a833bf979e7a4", + "sha256:0bd12c54a48949d11f5ffc2fa27f5df1b4754111f5207453e5fae3512ebb3cab", + "sha256:0d2b926b024d3a1549b819bc82fdc387062bbd977b0299dd5fa5e0ea3267b98b", + "sha256:1618d16e310f7ffed141762b0ff5d8bb6b53ad449406115cc465bf04213cefcf", + "sha256:181ac494091d1f9c5bb373cd85514ce1eb967a8cf3ec298e8dfa8878aa823956", + "sha256:1835536e76ea16e88c934aac5e369ba9f93d495b01e5fa2d93f0b4986b89146d", + "sha256:1c12c0ab78f5bc290b08a79152a8621822415836a86f8f4b50dadba371736fda", + "sha256:24144822f8d2b0156f4cda9427f071f969c18683ffed39663dc86bc0a75ae4dd", + "sha256:309fffbb7f561d67f02095d4b9657b73c9220558701c997e9bfcfbca2696e927", + "sha256:3316f09a77af85e7772ecfdd693b0f450678a60b1aee641bac319289757e3fa0", + "sha256:3545b16f9f0d5f34d4c99052829c3726020a07be34c99c250d0df87418f02954", + "sha256:39452c799453f5bf33281ffc0752c620b8bfa0b7c13070b87d370257a1311976", + "sha256:3950be57a1698086cf26d8710b4e5a637b65133c5b1f9eec23967d4089d8cfed", + "sha256:456cdff668a50a52fdb8aa6d0742511e43ed46d6a5b463dba80a5a720fa0d320", + "sha256:4b9f3924da0e460a93b3674c7e71020dd6c9e9f17400a34e52a88c0af2dcd2aa", + "sha256:4bbbdb2e3ef274865dc3f279aae109b5d94f4654aea3c72c479fb37e4a1e7ed7", + "sha256:4ce1a2c272ba8523a55ea2f1d66e3464e89fa0e37c9a3d786a919fe64e68dbd7", + "sha256:56dfa030cd3d67e5b6701d3067923f2f61536a8ffb1b45be14775d1e866b59ae", + "sha256:6709d97695205cd08255363b54afa035306d5302b7b5e38308c8ff5a47e60f2a", + "sha256:6e1b5aee920b6a2f737aa12e2b54de3826b09f885a7ce402db84216343368140", + "sha256:6f9c702bee2954fffdfa3de95a5af1a6b1c5f155e39490353d5654d83bb05bb9", + "sha256:78304df140b9e13b93bcbb2aecee64c9aaa9f1cadbd45f043b5e7b93cc2f21a2", + "sha256:79e048e623846d60d735bb350263e8fdd36cb6195d7f1a2b57eacd573d9c0b33", + "sha256:7bbd3470eb685325398023e335be896b74f61b014896604ed45049a7b7b6d8ac", + "sha256:80ac8ba450c7a41c5afe5f7e503d3092442ed75393e1de162b0bf0d97edf7c7f", + "sha256:9394ca49ecdf0957924e45d09a4026482d184a465a047f60c4044eb464c43de9", + "sha256:94f844d0e232aca061a86dd6ff191e47ba0389ddd34acb784ad9a41594dc99a4", + "sha256:96087fa5336ebfc94465c0768cd5de0fcf9af3840d2cf0ce32f5767855f1a293", + "sha256:b893500db0fe033e570c3adc956af6eefc57e280026bd2d86fd53da9f1e594d7", + "sha256:c285a2cb2c04004bfead93df89d92a0cef1874ad337d0cb5ea53c2c31e97bfdb", + "sha256:d2984a488f350aee1d54fa9cb8c6a3c1f1f5b268abbc91161e47185de4d829f3", + "sha256:d54bd840b4fe34f097b8665fc0692c7dd175349e53976be6c5de4433b970daa4", + "sha256:db9eb582fce972f0fa429d8159b7891ff8deccb7affc4995090afc61ce0d328a", + "sha256:e5094562dfe3e5583202b93ef7ca5082c2ba5571accb2c4412d27b7d0ba8a563", + "sha256:e73ca40dd3c7210ff776acff9869ddc9ff67bae7c425b58e5715dcf55275163f", + "sha256:ff95b33e5482313a74648ca3620c9328e9f30ecfa034df040b828e476597d352" + ], + "markers": "python_version >= '3.7'", + "version": "==5.4.6" }, "certifi": { "hashes": [ - "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14", - "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382" + "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", + "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" ], - "markers": "python_full_version >= '3.6.0'", - "version": "==2022.9.24" + "markers": "python_version >= '3.6'", + "version": "==2022.12.7" }, "cffi": { "hashes": [ @@ -353,35 +402,35 @@ }, "cryptography": { "hashes": [ - "sha256:068147f32fa662c81aebab95c74679b401b12b57494872886eb5c1139250ec5d", - "sha256:06fc3cc7b6f6cca87bd56ec80a580c88f1da5306f505876a71c8cfa7050257dd", - "sha256:25c1d1f19729fb09d42e06b4bf9895212292cb27bb50229f5aa64d039ab29146", - "sha256:402852a0aea73833d982cabb6d0c3bb582c15483d29fb7085ef2c42bfa7e38d7", - "sha256:4e269dcd9b102c5a3d72be3c45d8ce20377b8076a43cbed6f660a1afe365e436", - "sha256:5419a127426084933076132d317911e3c6eb77568a1ce23c3ac1e12d111e61e0", - "sha256:554bec92ee7d1e9d10ded2f7e92a5d70c1f74ba9524947c0ba0c850c7b011828", - "sha256:5e89468fbd2fcd733b5899333bc54d0d06c80e04cd23d8c6f3e0542358c6060b", - "sha256:65535bc550b70bd6271984d9863a37741352b4aad6fb1b3344a54e6950249b55", - "sha256:6ab9516b85bebe7aa83f309bacc5f44a61eeb90d0b4ec125d2d003ce41932d36", - "sha256:6addc3b6d593cd980989261dc1cce38263c76954d758c3c94de51f1e010c9a50", - "sha256:728f2694fa743a996d7784a6194da430f197d5c58e2f4e278612b359f455e4a2", - "sha256:785e4056b5a8b28f05a533fab69febf5004458e20dad7e2e13a3120d8ecec75a", - "sha256:78cf5eefac2b52c10398a42765bfa981ce2372cbc0457e6bf9658f41ec3c41d8", - "sha256:7f836217000342d448e1c9a342e9163149e45d5b5eca76a30e84503a5a96cab0", - "sha256:8d41a46251bf0634e21fac50ffd643216ccecfaf3701a063257fe0b2be1b6548", - "sha256:984fe150f350a3c91e84de405fe49e688aa6092b3525f407a18b9646f6612320", - "sha256:9b24bcff7853ed18a63cfb0c2b008936a9554af24af2fb146e16d8e1aed75748", - "sha256:b1b35d9d3a65542ed2e9d90115dfd16bbc027b3f07ee3304fc83580f26e43249", - "sha256:b1b52c9e5f8aa2b802d48bd693190341fae201ea51c7a167d69fc48b60e8a959", - "sha256:bbf203f1a814007ce24bd4d51362991d5cb90ba0c177a9c08825f2cc304d871f", - "sha256:be243c7e2bfcf6cc4cb350c0d5cdf15ca6383bbcb2a8ef51d3c9411a9d4386f0", - "sha256:bfbe6ee19615b07a98b1d2287d6a6073f734735b49ee45b11324d85efc4d5cbd", - "sha256:c46837ea467ed1efea562bbeb543994c2d1f6e800785bd5a2c98bc096f5cb220", - "sha256:dfb4f4dd568de1b6af9f4cda334adf7d72cf5bc052516e1b2608b683375dd95c", - "sha256:ed7b00096790213e09eb11c97cc6e2b757f15f3d2f85833cd2d3ec3fe37c1722" + "sha256:0e70da4bdff7601b0ef48e6348339e490ebfb0cbe638e083c9c41fb49f00c8bd", + "sha256:10652dd7282de17990b88679cb82f832752c4e8237f0c714be518044269415db", + "sha256:175c1a818b87c9ac80bb7377f5520b7f31b3ef2a0004e2420319beadedb67290", + "sha256:1d7e632804a248103b60b16fb145e8df0bc60eed790ece0d12efe8cd3f3e7744", + "sha256:1f13ddda26a04c06eb57119caf27a524ccae20533729f4b1e4a69b54e07035eb", + "sha256:2ec2a8714dd005949d4019195d72abed84198d877112abb5a27740e217e0ea8d", + "sha256:2fa36a7b2cc0998a3a4d5af26ccb6273f3df133d61da2ba13b3286261e7efb70", + "sha256:2fb481682873035600b5502f0015b664abc26466153fab5c6bc92c1ea69d478b", + "sha256:3178d46f363d4549b9a76264f41c6948752183b3f587666aff0555ac50fd7876", + "sha256:4367da5705922cf7070462e964f66e4ac24162e22ab0a2e9d31f1b270dd78083", + "sha256:4eb85075437f0b1fd8cd66c688469a0c4119e0ba855e3fef86691971b887caf6", + "sha256:50a1494ed0c3f5b4d07650a68cd6ca62efe8b596ce743a5c94403e6f11bf06c1", + "sha256:53049f3379ef05182864d13bb9686657659407148f901f3f1eee57a733fb4b00", + "sha256:6391e59ebe7c62d9902c24a4d8bcbc79a68e7c4ab65863536127c8a9cd94043b", + "sha256:67461b5ebca2e4c2ab991733f8ab637a7265bb582f07c7c88914b5afb88cb95b", + "sha256:78e47e28ddc4ace41dd38c42e6feecfdadf9c3be2af389abbfeef1ff06822285", + "sha256:80ca53981ceeb3241998443c4964a387771588c4e4a5d92735a493af868294f9", + "sha256:8a4b2bdb68a447fadebfd7d24855758fe2d6fecc7fed0b78d190b1af39a8e3b0", + "sha256:8e45653fb97eb2f20b8c96f9cd2b3a0654d742b47d638cf2897afbd97f80fa6d", + "sha256:998cd19189d8a747b226d24c0207fdaa1e6658a1d3f2494541cb9dfbf7dcb6d2", + "sha256:a10498349d4c8eab7357a8f9aa3463791292845b79597ad1b98a543686fb1ec8", + "sha256:b4cad0cea995af760f82820ab4ca54e5471fc782f70a007f31531957f43e9dee", + "sha256:bfe6472507986613dc6cc00b3d492b2f7564b02b3b3682d25ca7f40fa3fd321b", + "sha256:c9e0d79ee4c56d841bd4ac6e7697c8ff3c8d6da67379057f29e66acffcd1e9a7", + "sha256:ca57eb3ddaccd1112c18fc80abe41db443cc2e9dcb1917078e02dfa010a4f353", + "sha256:ce127dd0a6a0811c251a6cddd014d292728484e530d80e872ad9806cfb1c5b3c" ], "index": "pypi", - "version": "==38.0.3" + "version": "==38.0.4" }, "databases": { "hashes": [ @@ -391,20 +440,12 @@ "markers": "python_version >= '3.7'", "version": "==0.6.1" }, - "deprecated": { - "hashes": [ - "sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d", - "sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==1.2.13" - }, "dnspython": { "hashes": [ "sha256:0f7569a4a6ff151958b64304071d370daa3243d15941a7beedf0c9fe5105603e", "sha256:a851e51367fb93e9e1361732c1d60dab63eff98712e503ea7d92e6eccb109b4f" ], - "markers": "python_version < '4.0' and python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6' and python_version < '4.0'", "version": "==2.2.1" }, "ecdsa": { @@ -425,11 +466,11 @@ }, "fastapi": { "hashes": [ - "sha256:1803d962f169dc9f8dde54a64b22eb16f6d81573f54401971f90f0a67234a8b4", - "sha256:bb219cfafd0d2ccf8f32310c9a257a06b0210bd8e2a03706a6f5a9f9f1416878" + "sha256:263b718bb384422fe3d042ffc9a0c8dece5e034ab6586ff034f6b4b1667c3eee", + "sha256:915bf304180a0e7c5605ec81097b7d4cd8826ff87a02bb198e336fb9f3b5ff02" ], "index": "pypi", - "version": "==0.85.0" + "version": "==0.88.0" }, "frozenlist": { "hashes": [ @@ -583,23 +624,24 @@ "sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8" ], "index": "pypi", + "markers": null, "version": "==20.1.0" }, "h11": { "hashes": [ - "sha256:36a3cb8c0a032f56e2da7084577878a035d3b61d104230d4bd49c0c6b555a9c6", - "sha256:47222cb6067e4a307d535814917cd98fd0a57b6788ce715755fa2b6c28b56042" + "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d", + "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761" ], - "markers": "python_full_version >= '3.6.0'", - "version": "==0.12.0" + "markers": "python_version >= '3.7'", + "version": "==0.14.0" }, "httpcore": { "hashes": [ - "sha256:1105b8b73c025f23ff7c36468e4432226cbb959176eab66864b8e31c4ee27fa6", - "sha256:18b68ab86a3ccf3e7dc0f43598eaddcf472b602aba29f9aa6ab85fe2ada3980b" + "sha256:52c79095197178856724541e845f2db86d5f1527640d9254b5b8f6f6cebfdee6", + "sha256:c35c5176dc82db732acfd90b581a3062c999a72305df30c0fc8fafd8e4aca068" ], "markers": "python_version >= '3.7'", - "version": "==0.15.0" + "version": "==0.16.2" }, "httptools": { "hashes": [ @@ -649,11 +691,11 @@ }, "httpx": { "hashes": [ - "sha256:42974f577483e1e932c3cdc3cd2303e883cbfba17fe228b0f63589764d7b9c4b", - "sha256:f28eac771ec9eb4866d3fb4ab65abd42d38c424739e80c08d8d20570de60b0ef" + "sha256:0b9b1f0ee18b9978d637b0776bfd7f54e2ca278e063e3586d8f01cda89e042a8", + "sha256:202ae15319be24efe9a8bd4ed4360e68fde7b38bcc2ce87088d416f026667d19" ], "index": "pypi", - "version": "==0.23.0" + "version": "==0.23.1" }, "idna": { "hashes": [ @@ -681,11 +723,11 @@ }, "mako": { "hashes": [ - "sha256:7fde96466fcfeedb0eed94f187f20b23d85e4cb41444be0e542e2c8c65c396cd", - "sha256:c413a086e38cd885088d5e165305ee8eed04e8b3f8f62df343480da0a385735f" + "sha256:c97c79c018b9165ac9922ae4f32da095ffd3c4e6872b45eded42926deea46818", + "sha256:d60a3903dc3bb01a18ad6a89cdbe2e4eadc69c0bc8ef1e3773ba53d44c3f7a34" ], "markers": "python_version >= '3.7'", - "version": "==1.2.3" + "version": "==1.2.4" }, "markupsafe": { "hashes": [ @@ -735,95 +777,103 @@ }, "meilisearch": { "hashes": [ - "sha256:5f0aa41ef66d7d68aa4b542d979c762e1122fe9a1d7cc8e502ce66d3147c1172", - "sha256:ba3c849cbd20d381c845cf7cc29daef062523268eba168f815f085e64bec1372" + "sha256:2b649540b533eeb02b47f1d354c868004652886f6279ecf4d270b64290fa46c2", + "sha256:7fd7238bf5ad079a398092725e2d38f22ac3517916fe262014507bfd9b181d6a" ], "index": "pypi", - "version": "==0.22.0" + "version": "==0.23.0" }, "multidict": { "hashes": [ - "sha256:0327292e745a880459ef71be14e709aaea2f783f3537588fb4ed09b6c01bca60", - "sha256:041b81a5f6b38244b34dc18c7b6aba91f9cdaf854d9a39e5ff0b58e2b5773b9c", - "sha256:0556a1d4ea2d949efe5fd76a09b4a82e3a4a30700553a6725535098d8d9fb672", - "sha256:05f6949d6169878a03e607a21e3b862eaf8e356590e8bdae4227eedadacf6e51", - "sha256:07a017cfa00c9890011628eab2503bee5872f27144936a52eaab449be5eaf032", - "sha256:0b9e95a740109c6047602f4db4da9949e6c5945cefbad34a1299775ddc9a62e2", - "sha256:19adcfc2a7197cdc3987044e3f415168fc5dc1f720c932eb1ef4f71a2067e08b", - "sha256:19d9bad105dfb34eb539c97b132057a4e709919ec4dd883ece5838bcbf262b80", - "sha256:225383a6603c086e6cef0f2f05564acb4f4d5f019a4e3e983f572b8530f70c88", - "sha256:23b616fdc3c74c9fe01d76ce0d1ce872d2d396d8fa8e4899398ad64fb5aa214a", - "sha256:2957489cba47c2539a8eb7ab32ff49101439ccf78eab724c828c1a54ff3ff98d", - "sha256:2d36e929d7f6a16d4eb11b250719c39560dd70545356365b494249e2186bc389", - "sha256:2e4a0785b84fb59e43c18a015ffc575ba93f7d1dbd272b4cdad9f5134b8a006c", - "sha256:3368bf2398b0e0fcbf46d85795adc4c259299fec50c1416d0f77c0a843a3eed9", - "sha256:373ba9d1d061c76462d74e7de1c0c8e267e9791ee8cfefcf6b0b2495762c370c", - "sha256:4070613ea2227da2bfb2c35a6041e4371b0af6b0be57f424fe2318b42a748516", - "sha256:45183c96ddf61bf96d2684d9fbaf6f3564d86b34cb125761f9a0ef9e36c1d55b", - "sha256:4571f1beddff25f3e925eea34268422622963cd8dc395bb8778eb28418248e43", - "sha256:47e6a7e923e9cada7c139531feac59448f1f47727a79076c0b1ee80274cd8eee", - "sha256:47fbeedbf94bed6547d3aa632075d804867a352d86688c04e606971595460227", - "sha256:497988d6b6ec6ed6f87030ec03280b696ca47dbf0648045e4e1d28b80346560d", - "sha256:4bae31803d708f6f15fd98be6a6ac0b6958fcf68fda3c77a048a4f9073704aae", - "sha256:50bd442726e288e884f7be9071016c15a8742eb689a593a0cac49ea093eef0a7", - "sha256:514fe2b8d750d6cdb4712346a2c5084a80220821a3e91f3f71eec11cf8d28fd4", - "sha256:5774d9218d77befa7b70d836004a768fb9aa4fdb53c97498f4d8d3f67bb9cfa9", - "sha256:5fdda29a3c7e76a064f2477c9aab1ba96fd94e02e386f1e665bca1807fc5386f", - "sha256:5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013", - "sha256:626fe10ac87851f4cffecee161fc6f8f9853f0f6f1035b59337a51d29ff3b4f9", - "sha256:6701bf8a5d03a43375909ac91b6980aea74b0f5402fbe9428fc3f6edf5d9677e", - "sha256:684133b1e1fe91eda8fa7447f137c9490a064c6b7f392aa857bba83a28cfb693", - "sha256:6f3cdef8a247d1eafa649085812f8a310e728bdf3900ff6c434eafb2d443b23a", - "sha256:75bdf08716edde767b09e76829db8c1e5ca9d8bb0a8d4bd94ae1eafe3dac5e15", - "sha256:7c40b7bbece294ae3a87c1bc2abff0ff9beef41d14188cda94ada7bcea99b0fb", - "sha256:8004dca28e15b86d1b1372515f32eb6f814bdf6f00952699bdeb541691091f96", - "sha256:8064b7c6f0af936a741ea1efd18690bacfbae4078c0c385d7c3f611d11f0cf87", - "sha256:89171b2c769e03a953d5969b2f272efa931426355b6c0cb508022976a17fd376", - "sha256:8cbf0132f3de7cc6c6ce00147cc78e6439ea736cee6bca4f068bcf892b0fd658", - "sha256:9cc57c68cb9139c7cd6fc39f211b02198e69fb90ce4bc4a094cf5fe0d20fd8b0", - "sha256:a007b1638e148c3cfb6bf0bdc4f82776cef0ac487191d093cdc316905e504071", - "sha256:a2c34a93e1d2aa35fbf1485e5010337c72c6791407d03aa5f4eed920343dd360", - "sha256:a45e1135cb07086833ce969555df39149680e5471c04dfd6a915abd2fc3f6dbc", - "sha256:ac0e27844758d7177989ce406acc6a83c16ed4524ebc363c1f748cba184d89d3", - "sha256:aef9cc3d9c7d63d924adac329c33835e0243b5052a6dfcbf7732a921c6e918ba", - "sha256:b9d153e7f1f9ba0b23ad1568b3b9e17301e23b042c23870f9ee0522dc5cc79e8", - "sha256:bfba7c6d5d7c9099ba21f84662b037a0ffd4a5e6b26ac07d19e423e6fdf965a9", - "sha256:c207fff63adcdf5a485969131dc70e4b194327666b7e8a87a97fbc4fd80a53b2", - "sha256:d0509e469d48940147e1235d994cd849a8f8195e0bca65f8f5439c56e17872a3", - "sha256:d16cce709ebfadc91278a1c005e3c17dd5f71f5098bfae1035149785ea6e9c68", - "sha256:d48b8ee1d4068561ce8033d2c344cf5232cb29ee1a0206a7b828c79cbc5982b8", - "sha256:de989b195c3d636ba000ee4281cd03bb1234635b124bf4cd89eeee9ca8fcb09d", - "sha256:e07c8e79d6e6fd37b42f3250dba122053fddb319e84b55dd3a8d6446e1a7ee49", - "sha256:e2c2e459f7050aeb7c1b1276763364884595d47000c1cddb51764c0d8976e608", - "sha256:e5b20e9599ba74391ca0cfbd7b328fcc20976823ba19bc573983a25b32e92b57", - "sha256:e875b6086e325bab7e680e4316d667fc0e5e174bb5611eb16b3ea121c8951b86", - "sha256:f4f052ee022928d34fe1f4d2bc743f32609fb79ed9c49a1710a5ad6b2198db20", - "sha256:fcb91630817aa8b9bc4a74023e4198480587269c272c58b3279875ed7235c293", - "sha256:fd9fc9c4849a07f3635ccffa895d57abce554b467d611a5009ba4f39b78a8849", - "sha256:feba80698173761cddd814fa22e88b0661e98cb810f9f986c54aa34d281e4937", - "sha256:feea820722e69451743a3d56ad74948b68bf456984d63c1a92e8347b7b88452d" + "sha256:018c8e3be7f161a12b3e41741b6721f9baeb2210f4ab25a6359b7d76c1017dce", + "sha256:01b456046a05ff7cceefb0e1d2a9d32f05efcb1c7e0d152446304e11557639ce", + "sha256:114a4ab3e5cfbc56c4b6697686ecb92376c7e8c56893ef20547921552f8bdf57", + "sha256:12e0d396faa6dc55ff5379eee54d1df3b508243ff15bfc8295a6ec7a4483a335", + "sha256:190626ced82d4cc567a09e7346340d380154a493bac6905e0095d8158cdf1e38", + "sha256:1f5d5129a937af4e3c4a1d6c139f4051b7d17d43276cefdd8d442a7031f7eef2", + "sha256:21e1ce0b187c4e93112304dcde2aa18922fdbe8fb4f13d8aa72a5657bce0563a", + "sha256:24e8d513bfcaadc1f8b0ebece3ff50961951c54b07d5a775008a882966102418", + "sha256:2523a29006c034687eccd3ee70093a697129a3ffe8732535d3b2df6a4ecc279d", + "sha256:26fbbe17f8a7211b623502d2bf41022a51da3025142401417c765bf9a56fed4c", + "sha256:2b66d61966b12e6bba500e5cbb2c721a35e119c30ee02495c5629bd0e91eea30", + "sha256:2cf5d19e12eff855aa198259c0b02fd3f5d07e1291fbd20279c37b3b0e6c9852", + "sha256:2cfda34b7cb99eacada2072e0f69c0ad3285cb6f8e480b11f2b6d6c1c6f92718", + "sha256:3541882266247c7cd3dba78d6ef28dbe704774df60c9e4231edaa4493522e614", + "sha256:36df958b15639e40472adaa4f0c2c7828fe680f894a6b48c4ce229f59a6a798b", + "sha256:38d394814b39be1c36ac709006d39d50d72a884f9551acd9c8cc1ffae3fc8c4e", + "sha256:4159fc1ec9ede8ab93382e0d6ba9b1b3d23c72da39a834db7a116986605c7ab4", + "sha256:445c0851a1cbc1f2ec3b40bc22f9c4a235edb3c9a0906122a9df6ea8d51f886c", + "sha256:47defc0218682281a52fb1f6346ebb8b68b17538163a89ea24dfe4da37a8a9a3", + "sha256:4cc5c8cd205a9810d16a5cd428cd81bac554ad1477cb87f4ad722b10992e794d", + "sha256:4ccf55f28066b4f08666764a957c2b7c241c7547b0921d69c7ceab5f74fe1a45", + "sha256:4fb3fe591956d8841882c463f934c9f7485cfd5f763a08c0d467b513dc18ef89", + "sha256:526f8397fc124674b8f39748680a0ff673bd6a715fecb4866716d36e380f015f", + "sha256:578bfcb16f4b8675ef71b960c00f174b0426e0eeb796bab6737389d8288eb827", + "sha256:5b51969503709415a35754954c2763f536a70b8bf7360322b2edb0c0a44391f6", + "sha256:5e58ec0375803526d395f6f7e730ecc45d06e15f68f7b9cdbf644a2918324e51", + "sha256:62db44727d0befea68e8ad2881bb87a9cfb6b87d45dd78609009627167f37b69", + "sha256:67090b17a0a5be5704fd109f231ee73cefb1b3802d41288d6378b5df46ae89ba", + "sha256:6cd14e61f0da2a2cfb9fe05bfced2a1ed7063ce46a7a8cd473be4973de9a7f91", + "sha256:70740c2bc9ab1c99f7cdcb104f27d16c63860c56d51c5bf0ef82fc1d892a2131", + "sha256:73009ea04205966d47e16d98686ac5c438af23a1bb30b48a2c5da3423ec9ce37", + "sha256:791458a1f7d1b4ab3bd9e93e0dcd1d59ef7ee9aa051dcd1ea030e62e49b923fd", + "sha256:7f9511e48bde6b995825e8d35e434fc96296cf07a25f4aae24ff9162be7eaa46", + "sha256:81c3d597591b0940e04949e4e4f79359b2d2e542a686ba0da5e25de33fec13e0", + "sha256:8230a39bae6c2e8a09e4da6bace5064693b00590a4a213e38f9a9366da10e7dd", + "sha256:8b92a9f3ab904397a33b193000dc4de7318ea175c4c460a1e154c415f9008e3d", + "sha256:94cbe5535ef150546b8321aebea22862a3284da51e7b55f6f95b7d73e96d90ee", + "sha256:960ce1b790952916e682093788696ef7e33ac6a97482f9b983abdc293091b531", + "sha256:99341ca1f1db9e7f47914cb2461305665a662383765ced6f843712564766956d", + "sha256:9aac6881454a750554ed4b280a839dcf9e2133a9d12ab4d417d673fb102289b7", + "sha256:9d359b0a962e052b713647ac1f13eabf2263167b149ed1e27d5c579f5c8c7d2c", + "sha256:9dbab2a7e9c073bc9538824a01f5ed689194db7f55f2b8102766873e906a6c1a", + "sha256:a27b029caa3b555a4f3da54bc1e718eb55fcf1a11fda8bf0132147b476cf4c08", + "sha256:a8b817d4ed68fd568ec5e45dd75ddf30cc72a47a6b41b74d5bb211374c296f5e", + "sha256:ad7d66422b9cc51125509229693d27e18c08f2dea3ac9de408d821932b1b3759", + "sha256:b46e79a9f4db53897d17bc64a39d1c7c2be3e3d4f8dba6d6730a2b13ddf0f986", + "sha256:baa96a3418e27d723064854143b2f414a422c84cc87285a71558722049bebc5a", + "sha256:beeca903e4270b4afcd114f371a9602240dc143f9e944edfea00f8d4ad56c40d", + "sha256:c2a1168e5aa7c72499fb03c850e0f03f624fa4a5c8d2e215c518d0a73872eb64", + "sha256:c5790cc603456b6dcf8a9a4765f666895a6afddc88b3d3ba7b53dea2b6e23116", + "sha256:cb4a08f0aaaa869f189ffea0e17b86ad0237b51116d494da15ef7991ee6ad2d7", + "sha256:cd5771e8ea325f85cbb361ddbdeb9ae424a68e5dfb6eea786afdcd22e68a7d5d", + "sha256:ce8e51774eb03844588d3c279adb94efcd0edeccd2f97516623292445bcc01f9", + "sha256:d09daf5c6ce7fc6ed444c9339bbde5ea84e2534d1ca1cd37b60f365c77f00dea", + "sha256:d0e798b072cf2aab9daceb43d97c9c527a0c7593e67a7846ad4cc6051de1e303", + "sha256:d325d61cac602976a5d47b19eaa7d04e3daf4efce2164c630219885087234102", + "sha256:d408172519049e36fb6d29672f060dc8461fc7174eba9883c7026041ef9bfb38", + "sha256:d52442e7c951e4c9ee591d6047706e66923d248d83958bbf99b8b19515fffaef", + "sha256:dc4cfef5d899f5f1a15f3d2ac49f71107a01a5a2745b4dd53fa0cede1419385a", + "sha256:df7b4cee3ff31b3335aba602f8d70dbc641e5b7164b1e9565570c9d3c536a438", + "sha256:e068dfeadbce63072b2d8096486713d04db4946aad0a0f849bd4fc300799d0d3", + "sha256:e07c24018986fb00d6e7eafca8fcd6e05095649e17fcf0e33a592caaa62a78b9", + "sha256:e0bce9f7c30e7e3a9e683f670314c0144e8d34be6b7019e40604763bd278d84f", + "sha256:e1925f78a543b94c3d46274c66a366fee8a263747060220ed0188e5f3eeea1c0", + "sha256:e322c94596054352f5a02771eec71563c018b15699b961aba14d6dd943367022", + "sha256:e4a095e18847c12ec20e55326ab8782d9c2d599400a3a2f174fab4796875d0e2", + "sha256:e5a811aab1b4aea0b4be669363c19847a8c547510f0e18fb632956369fdbdf67", + "sha256:eddf604a3de2ace3d9a4e4d491be7562a1ac095a0a1c95a9ec5781ef0273ef11", + "sha256:ee9b1cae9a6c5d023e5a150f6f6b9dbb3c3bbc7887d6ee07d4c0ecb49a473734", + "sha256:f1650ea41c408755da5eed52ac6ccbc8938ccc3e698d81e6f6a1be02ff2a0945", + "sha256:f2c0957b3e8c66c10d27272709a5299ab3670a0f187c9428f3b90d267119aedb", + "sha256:f76109387e1ec8d8e2137c94c437b89fe002f29e0881aae8ae45529bdff92000", + "sha256:f8a728511c977df6f3d8af388fcb157e49f11db4a6637dd60131b8b6e40b0253", + "sha256:fb6c3dc3d65014d2c782f5acf0b3ba14e639c6c33d3ed8932ead76b9080b3544" ], "markers": "python_version >= '3.7'", - "version": "==6.0.2" + "version": "==6.0.3" }, "ormar": { "extras": [ "postgresql" ], "hashes": [ - "sha256:649e922d70d2bda4e079d93c31accd74583f547dcf7e4eb652120d95e39e5308", - "sha256:b82994d8db000685a9bbc4ed53bbbef33811f9fcfd3ae1a0318dff6b1a634f86" + "sha256:bb71e5a9ea6477de1c5ed5acf5692067152ef7452ef9625e5eeb13f165068722", + "sha256:fc76a3a1ef602c8c65c6b956bd57ecc4961d3ba750f1deb498cda822a7162288" ], "index": "pypi", - "version": "==0.11.3" - }, - "packaging": { - "hashes": [ - "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", - "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" - ], - "markers": "python_full_version >= '3.6.0'", - "version": "==21.3" + "markers": null, + "version": "==0.12.0" }, "passlib": { "hashes": [ @@ -835,69 +885,70 @@ }, "pillow": { "hashes": [ - "sha256:0030fdbd926fb85844b8b92e2f9449ba89607231d3dd597a21ae72dc7fe26927", - "sha256:030e3460861488e249731c3e7ab59b07c7853838ff3b8e16aac9561bb345da14", - "sha256:0ed2c4ef2451de908c90436d6e8092e13a43992f1860275b4d8082667fbb2ffc", - "sha256:136659638f61a251e8ed3b331fc6ccd124590eeff539de57c5f80ef3a9594e58", - "sha256:13b725463f32df1bfeacbf3dd197fb358ae8ebcd8c5548faa75126ea425ccb60", - "sha256:1536ad017a9f789430fb6b8be8bf99d2f214c76502becc196c6f2d9a75b01b76", - "sha256:15928f824870535c85dbf949c09d6ae7d3d6ac2d6efec80f3227f73eefba741c", - "sha256:17d4cafe22f050b46d983b71c707162d63d796a1235cdf8b9d7a112e97b15bac", - "sha256:1802f34298f5ba11d55e5bb09c31997dc0c6aed919658dfdf0198a2fe75d5490", - "sha256:1cc1d2451e8a3b4bfdb9caf745b58e6c7a77d2e469159b0d527a4554d73694d1", - "sha256:1fd6f5e3c0e4697fa7eb45b6e93996299f3feee73a3175fa451f49a74d092b9f", - "sha256:254164c57bab4b459f14c64e93df11eff5ded575192c294a0c49270f22c5d93d", - "sha256:2ad0d4df0f5ef2247e27fc790d5c9b5a0af8ade9ba340db4a73bb1a4a3e5fb4f", - "sha256:2c58b24e3a63efd22554c676d81b0e57f80e0a7d3a5874a7e14ce90ec40d3069", - "sha256:2d33a11f601213dcd5718109c09a52c2a1c893e7461f0be2d6febc2879ec2402", - "sha256:336b9036127eab855beec9662ac3ea13a4544a523ae273cbf108b228ecac8437", - "sha256:337a74fd2f291c607d220c793a8135273c4c2ab001b03e601c36766005f36885", - "sha256:37ff6b522a26d0538b753f0b4e8e164fdada12db6c6f00f62145d732d8a3152e", - "sha256:3d1f14f5f691f55e1b47f824ca4fdcb4b19b4323fe43cc7bb105988cad7496be", - "sha256:408673ed75594933714482501fe97e055a42996087eeca7e5d06e33218d05aa8", - "sha256:4134d3f1ba5f15027ff5c04296f13328fecd46921424084516bdb1b2548e66ff", - "sha256:4ad2f835e0ad81d1689f1b7e3fbac7b01bb8777d5a985c8962bedee0cc6d43da", - "sha256:50dff9cc21826d2977ef2d2a205504034e3a4563ca6f5db739b0d1026658e004", - "sha256:510cef4a3f401c246cfd8227b300828715dd055463cdca6176c2e4036df8bd4f", - "sha256:5aed7dde98403cd91d86a1115c78d8145c83078e864c1de1064f52e6feb61b20", - "sha256:69bd1a15d7ba3694631e00df8de65a8cb031911ca11f44929c97fe05eb9b6c1d", - "sha256:6bf088c1ce160f50ea40764f825ec9b72ed9da25346216b91361eef8ad1b8f8c", - "sha256:6e8c66f70fb539301e064f6478d7453e820d8a2c631da948a23384865cd95544", - "sha256:727dd1389bc5cb9827cbd1f9d40d2c2a1a0c9b32dd2261db522d22a604a6eec9", - "sha256:74a04183e6e64930b667d321524e3c5361094bb4af9083db5c301db64cd341f3", - "sha256:75e636fd3e0fb872693f23ccb8a5ff2cd578801251f3a4f6854c6a5d437d3c04", - "sha256:7761afe0126d046974a01e030ae7529ed0ca6a196de3ec6937c11df0df1bc91c", - "sha256:7888310f6214f19ab2b6df90f3f06afa3df7ef7355fc025e78a3044737fab1f5", - "sha256:7b0554af24df2bf96618dac71ddada02420f946be943b181108cac55a7a2dcd4", - "sha256:7c7b502bc34f6e32ba022b4a209638f9e097d7a9098104ae420eb8186217ebbb", - "sha256:808add66ea764ed97d44dda1ac4f2cfec4c1867d9efb16a33d158be79f32b8a4", - "sha256:831e648102c82f152e14c1a0938689dbb22480c548c8d4b8b248b3e50967b88c", - "sha256:93689632949aff41199090eff5474f3990b6823404e45d66a5d44304e9cdc467", - "sha256:96b5e6874431df16aee0c1ba237574cb6dff1dcb173798faa6a9d8b399a05d0e", - "sha256:9a54614049a18a2d6fe156e68e188da02a046a4a93cf24f373bffd977e943421", - "sha256:a138441e95562b3c078746a22f8fca8ff1c22c014f856278bdbdd89ca36cff1b", - "sha256:a647c0d4478b995c5e54615a2e5360ccedd2f85e70ab57fbe817ca613d5e63b8", - "sha256:a9c9bc489f8ab30906d7a85afac4b4944a572a7432e00698a7239f44a44e6efb", - "sha256:ad2277b185ebce47a63f4dc6302e30f05762b688f8dc3de55dbae4651872cdf3", - "sha256:adabc0bce035467fb537ef3e5e74f2847c8af217ee0be0455d4fec8adc0462fc", - "sha256:b6d5e92df2b77665e07ddb2e4dbd6d644b78e4c0d2e9272a852627cdba0d75cf", - "sha256:bc431b065722a5ad1dfb4df354fb9333b7a582a5ee39a90e6ffff688d72f27a1", - "sha256:bdd0de2d64688ecae88dd8935012c4a72681e5df632af903a1dca8c5e7aa871a", - "sha256:c79698d4cd9318d9481d89a77e2d3fcaeff5486be641e60a4b49f3d2ecca4e28", - "sha256:cb6259196a589123d755380b65127ddc60f4c64b21fc3bb46ce3a6ea663659b0", - "sha256:d5b87da55a08acb586bad5c3aa3b86505f559b84f39035b233d5bf844b0834b1", - "sha256:dcd7b9c7139dc8258d164b55696ecd16c04607f1cc33ba7af86613881ffe4ac8", - "sha256:dfe4c1fedfde4e2fbc009d5ad420647f7730d719786388b7de0999bf32c0d9fd", - "sha256:ea98f633d45f7e815db648fd7ff0f19e328302ac36427343e4432c84432e7ff4", - "sha256:ec52c351b35ca269cb1f8069d610fc45c5bd38c3e91f9ab4cbbf0aebc136d9c8", - "sha256:eef7592281f7c174d3d6cbfbb7ee5984a671fcd77e3fc78e973d492e9bf0eb3f", - "sha256:f07f1f00e22b231dd3d9b9208692042e29792d6bd4f6639415d2f23158a80013", - "sha256:f3fac744f9b540148fa7715a435d2283b71f68bfb6d4aae24482a890aed18b59", - "sha256:fa768eff5f9f958270b081bb33581b4b569faabf8774726b283edb06617101dc", - "sha256:fac2d65901fb0fdf20363fbd345c01958a742f2dc62a8dd4495af66e3ff502a4" + "sha256:03150abd92771742d4a8cd6f2fa6246d847dcd2e332a18d0c15cc75bf6703040", + "sha256:073adb2ae23431d3b9bcbcff3fe698b62ed47211d0716b067385538a1b0f28b8", + "sha256:0b07fffc13f474264c336298d1b4ce01d9c5a011415b79d4ee5527bb69ae6f65", + "sha256:0b7257127d646ff8676ec8a15520013a698d1fdc48bc2a79ba4e53df792526f2", + "sha256:12ce4932caf2ddf3e41d17fc9c02d67126935a44b86df6a206cf0d7161548627", + "sha256:15c42fb9dea42465dfd902fb0ecf584b8848ceb28b41ee2b58f866411be33f07", + "sha256:18498994b29e1cf86d505edcb7edbe814d133d2232d256db8c7a8ceb34d18cef", + "sha256:1c7c8ae3864846fc95f4611c78129301e203aaa2af813b703c55d10cc1628535", + "sha256:22b012ea2d065fd163ca096f4e37e47cd8b59cf4b0fd47bfca6abb93df70b34c", + "sha256:276a5ca930c913f714e372b2591a22c4bd3b81a418c0f6635ba832daec1cbcfc", + "sha256:2e0918e03aa0c72ea56edbb00d4d664294815aa11291a11504a377ea018330d3", + "sha256:3033fbe1feb1b59394615a1cafaee85e49d01b51d54de0cbf6aa8e64182518a1", + "sha256:3168434d303babf495d4ba58fc22d6604f6e2afb97adc6a423e917dab828939c", + "sha256:32a44128c4bdca7f31de5be641187367fe2a450ad83b833ef78910397db491aa", + "sha256:3dd6caf940756101205dffc5367babf288a30043d35f80936f9bfb37f8355b32", + "sha256:40e1ce476a7804b0fb74bcfa80b0a2206ea6a882938eaba917f7a0f004b42502", + "sha256:41e0051336807468be450d52b8edd12ac60bebaa97fe10c8b660f116e50b30e4", + "sha256:4390e9ce199fc1951fcfa65795f239a8a4944117b5935a9317fb320e7767b40f", + "sha256:502526a2cbfa431d9fc2a079bdd9061a2397b842bb6bc4239bb176da00993812", + "sha256:51e0e543a33ed92db9f5ef69a0356e0b1a7a6b6a71b80df99f1d181ae5875636", + "sha256:57751894f6618fd4308ed8e0c36c333e2f5469744c34729a27532b3db106ee20", + "sha256:5d77adcd56a42d00cc1be30843d3426aa4e660cab4a61021dc84467123f7a00c", + "sha256:655a83b0058ba47c7c52e4e2df5ecf484c1b0b0349805896dd350cbc416bdd91", + "sha256:68943d632f1f9e3dce98908e873b3a090f6cba1cbb1b892a9e8d97c938871fbe", + "sha256:6c738585d7a9961d8c2821a1eb3dcb978d14e238be3d70f0a706f7fa9316946b", + "sha256:73bd195e43f3fadecfc50c682f5055ec32ee2c933243cafbfdec69ab1aa87cad", + "sha256:772a91fc0e03eaf922c63badeca75e91baa80fe2f5f87bdaed4280662aad25c9", + "sha256:77ec3e7be99629898c9a6d24a09de089fa5356ee408cdffffe62d67bb75fdd72", + "sha256:7db8b751ad307d7cf238f02101e8e36a128a6cb199326e867d1398067381bff4", + "sha256:801ec82e4188e935c7f5e22e006d01611d6b41661bba9fe45b60e7ac1a8f84de", + "sha256:82409ffe29d70fd733ff3c1025a602abb3e67405d41b9403b00b01debc4c9a29", + "sha256:828989c45c245518065a110434246c44a56a8b2b2f6347d1409c787e6e4651ee", + "sha256:829f97c8e258593b9daa80638aee3789b7df9da5cf1336035016d76f03b8860c", + "sha256:871b72c3643e516db4ecf20efe735deb27fe30ca17800e661d769faab45a18d7", + "sha256:89dca0ce00a2b49024df6325925555d406b14aa3efc2f752dbb5940c52c56b11", + "sha256:90fb88843d3902fe7c9586d439d1e8c05258f41da473952aa8b328d8b907498c", + "sha256:97aabc5c50312afa5e0a2b07c17d4ac5e865b250986f8afe2b02d772567a380c", + "sha256:9aaa107275d8527e9d6e7670b64aabaaa36e5b6bd71a1015ddd21da0d4e06448", + "sha256:9f47eabcd2ded7698106b05c2c338672d16a6f2a485e74481f524e2a23c2794b", + "sha256:a0a06a052c5f37b4ed81c613a455a81f9a3a69429b4fd7bb913c3fa98abefc20", + "sha256:ab388aaa3f6ce52ac1cb8e122c4bd46657c15905904b3120a6248b5b8b0bc228", + "sha256:ad58d27a5b0262c0c19b47d54c5802db9b34d38bbf886665b626aff83c74bacd", + "sha256:ae5331c23ce118c53b172fa64a4c037eb83c9165aba3a7ba9ddd3ec9fa64a699", + "sha256:af0372acb5d3598f36ec0914deed2a63f6bcdb7b606da04dc19a88d31bf0c05b", + "sha256:afa4107d1b306cdf8953edde0534562607fe8811b6c4d9a486298ad31de733b2", + "sha256:b03ae6f1a1878233ac620c98f3459f79fd77c7e3c2b20d460284e1fb370557d4", + "sha256:b0915e734b33a474d76c28e07292f196cdf2a590a0d25bcc06e64e545f2d146c", + "sha256:b4012d06c846dc2b80651b120e2cdd787b013deb39c09f407727ba90015c684f", + "sha256:b472b5ea442148d1c3e2209f20f1e0bb0eb556538690fa70b5e1f79fa0ba8dc2", + "sha256:b59430236b8e58840a0dfb4099a0e8717ffb779c952426a69ae435ca1f57210c", + "sha256:b90f7616ea170e92820775ed47e136208e04c967271c9ef615b6fbd08d9af0e3", + "sha256:b9a65733d103311331875c1dca05cb4606997fd33d6acfed695b1232ba1df193", + "sha256:bac18ab8d2d1e6b4ce25e3424f709aceef668347db8637c2296bcf41acb7cf48", + "sha256:bca31dd6014cb8b0b2db1e46081b0ca7d936f856da3b39744aef499db5d84d02", + "sha256:be55f8457cd1eac957af0c3f5ece7bc3f033f89b114ef30f710882717670b2a8", + "sha256:c7025dce65566eb6e89f56c9509d4f628fddcedb131d9465cacd3d8bac337e7e", + "sha256:c935a22a557a560108d780f9a0fc426dd7459940dc54faa49d83249c8d3e760f", + "sha256:dbb8e7f2abee51cef77673be97760abff1674ed32847ce04b4af90f610144c7b", + "sha256:e6ea6b856a74d560d9326c0f5895ef8050126acfdc7ca08ad703eb0081e82b74", + "sha256:ebf2029c1f464c59b8bdbe5143c79fa2045a581ac53679733d3a91d400ff9efb", + "sha256:f1ff2ee69f10f13a9596480335f406dd1f70c3650349e2be67ca3139280cade0" ], "index": "pypi", - "version": "==9.2.0" + "version": "==9.3.0" }, "psycopg2-binary": { "hashes": [ @@ -1058,13 +1109,21 @@ "index": "pypi", "version": "==1.10.2" }, - "pyparsing": { + "pyopenssl": { "hashes": [ - "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb", - "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc" + "sha256:7a83b7b272dd595222d672f5ce29aa030f1fb837630ef229f62e72e395ce8968", + "sha256:b28437c9773bb6c6958628cf9c3bebe585de661dba6f63df17111966363dd15e" ], - "markers": "python_full_version >= '3.6.8'", - "version": "==3.0.9" + "markers": "python_version >= '3.6'", + "version": "==22.1.0" + }, + "pyotp": { + "hashes": [ + "sha256:889d037fdde6accad28531fc62a790f089e5dfd5b638773e9ee004cce074a2e5", + "sha256:c2f5e17d9da92d8ec1f7de6331ab08116b9115adbabcba6e208d46fc49a98c5a" + ], + "index": "pypi", + "version": "==2.8.0" }, "python-dotenv": { "hashes": [ @@ -1078,7 +1137,7 @@ "sha256:7454314a529bba20e745928601ffeaf101c1b5aca9a6c4e48ad397803d10ea0c", "sha256:d8d8b072799c36cadcdcc2b40d2a560ce09797ab3d2d596b2ad519a5e4df19ae" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==4.3.4" }, "python-jose": { @@ -1098,11 +1157,11 @@ }, "python-socketio": { "hashes": [ - "sha256:5011a0cd2545c954d7df09eef7489ec424c93b001cc146599cd72f1dd20f0d46", - "sha256:86ee93591c1e781d339d9a61940e62fd6cbc838390653b52a7bcc4f7ce89fe47" + "sha256:92395062d9db3c13d30e7cdedaa0e1330bba78505645db695415f9a3c628d097", + "sha256:d9a9f047e6fdd306c852fbac36516f4b495c2096f8ad9ceb8803b8e5ff5622e3" ], "index": "pypi", - "version": "==5.7.1" + "version": "==5.7.2" }, "pyyaml": { "hashes": [ @@ -1158,18 +1217,18 @@ }, "redis": { "hashes": [ - "sha256:a52d5694c9eb4292770084fa8c863f79367ca19884b329ab574d5cb2036b3e54", - "sha256:ddf27071df4adf3821c4f2ca59d67525c3a82e5f268bed97b813cb4fabf87880" + "sha256:7b8c87d19c45d3f1271b124858d2a5c13160c4e74d4835e28273400fa34d5228", + "sha256:cae3ee5d1f57d8caf534cd8764edf3163c77e073bdd74b6f54a87ffafdc5e7d9" ], "index": "pypi", - "version": "==4.3.4" + "version": "==4.4.0" }, "requests": { "hashes": [ "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" ], - "markers": "python_version >= '3.7' and python_version < '4.0'", + "markers": "python_version >= '3.7' and python_version < '4'", "version": "==2.28.1" }, "rfc3986": { @@ -1187,32 +1246,32 @@ "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7", "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21" ], - "markers": "python_version < '4.0' and python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6' and python_version < '4'", "version": "==4.9" }, "scheduler": { "hashes": [ - "sha256:283f23957b309a1216fbf68a8cc01ee84b7b9155bd2602cfba3c71c10c296c94", - "sha256:b7689871bb0b244c35d554ac2d089e35a94c92d7dae116c1a5419284b89eb270" + "sha256:0179018e2f20bd6164cc2910ed07591a672941b8670ef1f174529d97a46957c0", + "sha256:040a277963a5d015f0c84877e5c826cad2966bfe4c6a323a2f305e6e9213b6be" ], "index": "pypi", - "version": "==0.7.4" + "version": "==0.8.2" }, "sentry-sdk": { "hashes": [ - "sha256:2469240f6190aaebcb453033519eae69cfe8cc602065b4667e18ee14fc1e35dc", - "sha256:4fbace9a763285b608c06f01a807b51acb35f6059da6a01236654e08b0ee81ff" + "sha256:3c9bc64025976842c1103cd75d45cff94a7c0cc48fa07770d07a09d2ab8dac30", + "sha256:dc0fe6ef2f77a3853b399c75c97d87be7666098817c1c314f8fcdf68a6865914" ], "index": "pypi", - "version": "==1.9.10" + "version": "==1.12.0" }, "setuptools": { "hashes": [ - "sha256:d0b9a8433464d5800cbe05094acf5c6d52a91bfac9b52bcfc4d41382be5d5d31", - "sha256:e197a19aa8ec9722928f2206f8de752def0e4c9fc6953527360d1c36d94ddb2f" + "sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54", + "sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75" ], "markers": "python_version >= '3.7'", - "version": "==65.5.1" + "version": "==65.6.3" }, "six": { "hashes": [ @@ -1279,11 +1338,11 @@ }, "starlette": { "hashes": [ - "sha256:42fcf3122f998fefce3e2c5ad7e5edbf0f02cf685d646a83a08d404726af5084", - "sha256:c0414d5a56297d37f3db96a84034d61ce29889b9eaccf65eb98a0b39441fcaa3" + "sha256:b092cbc365bea34dd6840b42861bdabb2f507f8671e642e8272d2442e08ea4ff", + "sha256:b5eda991ad5f0ee5d8ce4c4540202a573bb6691ecd0c712262d0bc85cf8f2c50" ], "markers": "python_version >= '3.7'", - "version": "==0.20.4" + "version": "==0.22.0" }, "typeguard": { "hashes": [ @@ -1303,22 +1362,23 @@ }, "urllib3": { "hashes": [ - "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e", - "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997" + "sha256:47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc", + "sha256:c083dd0dce68dbfbe1129d5271cb90f9447dea7d52097c6e0126120c521ddea8" ], - "markers": "python_full_version >= '3.6.0'", - "version": "==1.26.12" + "markers": "python_version >= '3.6'", + "version": "==1.26.13" }, "uvicorn": { "extras": [ "standard" ], "hashes": [ - "sha256:0abd429ebb41e604ed8d2be6c60530de3408f250e8d2d84967d85ba9e86fe3af", - "sha256:9a66e7c42a2a95222f76ec24a4b754c158261c4696e683b9dadc72b590e0311b" + "sha256:a4e12017b940247f836bc90b72e725d7dfd0c8ed1c51eb365f5ba30d9f5127d8", + "sha256:c3ed1598a5668208723f2bb49336f4509424ad198d6ab2615b7783db58d919fd" ], "index": "pypi", - "version": "==0.18.3" + "markers": null, + "version": "==0.20.0" }, "uvloop": { "hashes": [ @@ -1378,6 +1438,14 @@ ], "version": "==0.18.1" }, + "webauthn": { + "hashes": [ + "sha256:6811b3f1b5ff627dadfe9685a1eaf80cbb5689c35f9ae00d4ee63681c0dd64b2", + "sha256:9c74b0e4aea4579fbf0ecb77a72d0b1cb7d7dcab7ca2d105474925b731178686" + ], + "index": "pypi", + "version": "==1.6.0" + }, "webencodings": { "hashes": [ "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", @@ -1459,76 +1527,6 @@ ], "version": "==10.4" }, - "wrapt": { - "hashes": [ - "sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3", - "sha256:01c205616a89d09827986bc4e859bcabd64f5a0662a7fe95e0d359424e0e071b", - "sha256:02b41b633c6261feff8ddd8d11c711df6842aba629fdd3da10249a53211a72c4", - "sha256:07f7a7d0f388028b2df1d916e94bbb40624c59b48ecc6cbc232546706fac74c2", - "sha256:11871514607b15cfeb87c547a49bca19fde402f32e2b1c24a632506c0a756656", - "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3", - "sha256:21ac0156c4b089b330b7666db40feee30a5d52634cc4560e1905d6529a3897ff", - "sha256:257fd78c513e0fb5cdbe058c27a0624c9884e735bbd131935fd49e9fe719d310", - "sha256:2b39d38039a1fdad98c87279b48bc5dce2c0ca0d73483b12cb72aa9609278e8a", - "sha256:2cf71233a0ed05ccdabe209c606fe0bac7379fdcf687f39b944420d2a09fdb57", - "sha256:2fe803deacd09a233e4762a1adcea5db5d31e6be577a43352936179d14d90069", - "sha256:3232822c7d98d23895ccc443bbdf57c7412c5a65996c30442ebe6ed3df335383", - "sha256:34aa51c45f28ba7f12accd624225e2b1e5a3a45206aa191f6f9aac931d9d56fe", - "sha256:36f582d0c6bc99d5f39cd3ac2a9062e57f3cf606ade29a0a0d6b323462f4dd87", - "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d", - "sha256:40e7bc81c9e2b2734ea4bc1aceb8a8f0ceaac7c5299bc5d69e37c44d9081d43b", - "sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907", - "sha256:4fcc4649dc762cddacd193e6b55bc02edca674067f5f98166d7713b193932b7f", - "sha256:5a0f54ce2c092aaf439813735584b9537cad479575a09892b8352fea5e988dc0", - "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28", - "sha256:5b02d65b9ccf0ef6c34cba6cf5bf2aab1bb2f49c6090bafeecc9cd81ad4ea1c1", - "sha256:60db23fa423575eeb65ea430cee741acb7c26a1365d103f7b0f6ec412b893853", - "sha256:642c2e7a804fcf18c222e1060df25fc210b9c58db7c91416fb055897fc27e8cc", - "sha256:6a9a25751acb379b466ff6be78a315e2b439d4c94c1e99cb7266d40a537995d3", - "sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3", - "sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164", - "sha256:6e743de5e9c3d1b7185870f480587b75b1cb604832e380d64f9504a0535912d1", - "sha256:709fe01086a55cf79d20f741f39325018f4df051ef39fe921b1ebe780a66184c", - "sha256:7b7c050ae976e286906dd3f26009e117eb000fb2cf3533398c5ad9ccc86867b1", - "sha256:7d2872609603cb35ca513d7404a94d6d608fc13211563571117046c9d2bcc3d7", - "sha256:7ef58fb89674095bfc57c4069e95d7a31cfdc0939e2a579882ac7d55aadfd2a1", - "sha256:80bb5c256f1415f747011dc3604b59bc1f91c6e7150bd7db03b19170ee06b320", - "sha256:81b19725065dcb43df02b37e03278c011a09e49757287dca60c5aecdd5a0b8ed", - "sha256:833b58d5d0b7e5b9832869f039203389ac7cbf01765639c7309fd50ef619e0b1", - "sha256:88bd7b6bd70a5b6803c1abf6bca012f7ed963e58c68d76ee20b9d751c74a3248", - "sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c", - "sha256:8c0ce1e99116d5ab21355d8ebe53d9460366704ea38ae4d9f6933188f327b456", - "sha256:8d649d616e5c6a678b26d15ece345354f7c2286acd6db868e65fcc5ff7c24a77", - "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef", - "sha256:9736af4641846491aedb3c3f56b9bc5568d92b0692303b5a305301a95dfd38b1", - "sha256:988635d122aaf2bdcef9e795435662bcd65b02f4f4c1ae37fbee7401c440b3a7", - "sha256:9cca3c2cdadb362116235fdbd411735de4328c61425b0aa9f872fd76d02c4e86", - "sha256:9e0fd32e0148dd5dea6af5fee42beb949098564cc23211a88d799e434255a1f4", - "sha256:9f3e6f9e05148ff90002b884fbc2a86bd303ae847e472f44ecc06c2cd2fcdb2d", - "sha256:a85d2b46be66a71bedde836d9e41859879cc54a2a04fad1191eb50c2066f6e9d", - "sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8", - "sha256:aa31fdcc33fef9eb2552cbcbfee7773d5a6792c137b359e82879c101e98584c5", - "sha256:b014c23646a467558be7da3d6b9fa409b2c567d2110599b7cf9a0c5992b3b471", - "sha256:b21bb4c09ffabfa0e85e3a6b623e19b80e7acd709b9f91452b8297ace2a8ab00", - "sha256:b5901a312f4d14c59918c221323068fad0540e34324925c8475263841dbdfe68", - "sha256:b9b7a708dd92306328117d8c4b62e2194d00c365f18eff11a9b53c6f923b01e3", - "sha256:d1967f46ea8f2db647c786e78d8cc7e4313dbd1b0aca360592d8027b8508e24d", - "sha256:d52a25136894c63de15a35bc0bdc5adb4b0e173b9c0d07a2be9d3ca64a332735", - "sha256:d77c85fedff92cf788face9bfa3ebaa364448ebb1d765302e9af11bf449ca36d", - "sha256:d79d7d5dc8a32b7093e81e97dad755127ff77bcc899e845f41bf71747af0c569", - "sha256:dbcda74c67263139358f4d188ae5faae95c30929281bc6866d00573783c422b7", - "sha256:ddaea91abf8b0d13443f6dac52e89051a5063c7d014710dcb4d4abb2ff811a59", - "sha256:dee0ce50c6a2dd9056c20db781e9c1cfd33e77d2d569f5d1d9321c641bb903d5", - "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb", - "sha256:e2f83e18fe2f4c9e7db597e988f72712c0c3676d337d8b101f6758107c42425b", - "sha256:e3fb1677c720409d5f671e39bac6c9e0e422584e5f518bfd50aa4cbbea02433f", - "sha256:ee2b1b1769f6707a8a445162ea16dddf74285c3964f605877a20e38545c3c462", - "sha256:ee6acae74a2b91865910eef5e7de37dc6895ad96fa23603d1d27ea69df545015", - "sha256:ef3f72c9666bba2bab70d2a8b79f2c6d2c1a42a7f7e2b0ec83bb2f9e383950af" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==1.14.1" - }, "xlsxwriter": { "hashes": [ "sha256:df0aefe5137478d206847eccf9f114715e42aaea077e6a48d0e8a2152e983010", @@ -1539,68 +1537,83 @@ }, "yarl": { "hashes": [ - "sha256:076eede537ab978b605f41db79a56cad2e7efeea2aa6e0fa8f05a26c24a034fb", - "sha256:07b21e274de4c637f3e3b7104694e53260b5fc10d51fb3ec5fed1da8e0f754e3", - "sha256:0ab5a138211c1c366404d912824bdcf5545ccba5b3ff52c42c4af4cbdc2c5035", - "sha256:0c03f456522d1ec815893d85fccb5def01ffaa74c1b16ff30f8aaa03eb21e453", - "sha256:12768232751689c1a89b0376a96a32bc7633c08da45ad985d0c49ede691f5c0d", - "sha256:19cd801d6f983918a3f3a39f3a45b553c015c5aac92ccd1fac619bd74beece4a", - "sha256:1ca7e596c55bd675432b11320b4eacc62310c2145d6801a1f8e9ad160685a231", - "sha256:1e4808f996ca39a6463f45182e2af2fae55e2560be586d447ce8016f389f626f", - "sha256:205904cffd69ae972a1707a1bd3ea7cded594b1d773a0ce66714edf17833cdae", - "sha256:20df6ff4089bc86e4a66e3b1380460f864df3dd9dccaf88d6b3385d24405893b", - "sha256:21ac44b763e0eec15746a3d440f5e09ad2ecc8b5f6dcd3ea8cb4773d6d4703e3", - "sha256:29e256649f42771829974e742061c3501cc50cf16e63f91ed8d1bf98242e5507", - "sha256:2d800b9c2eaf0684c08be5f50e52bfa2aa920e7163c2ea43f4f431e829b4f0fd", - "sha256:2d93a049d29df172f48bcb09acf9226318e712ce67374f893b460b42cc1380ae", - "sha256:31a9a04ecccd6b03e2b0e12e82131f1488dea5555a13a4d32f064e22a6003cfe", - "sha256:3d1a50e461615747dd93c099f297c1994d472b0f4d2db8a64e55b1edf704ec1c", - "sha256:449c957ffc6bc2309e1fbe67ab7d2c1efca89d3f4912baeb8ead207bb3cc1cd4", - "sha256:4a88510731cd8d4befaba5fbd734a7dd914de5ab8132a5b3dde0bbd6c9476c64", - "sha256:4c322cbaa4ed78a8aac89b2174a6df398faf50e5fc12c4c191c40c59d5e28357", - "sha256:5395da939ffa959974577eff2cbfc24b004a2fb6c346918f39966a5786874e54", - "sha256:5587bba41399854703212b87071c6d8638fa6e61656385875f8c6dff92b2e461", - "sha256:56c11efb0a89700987d05597b08a1efcd78d74c52febe530126785e1b1a285f4", - "sha256:5999c4662631cb798496535afbd837a102859568adc67d75d2045e31ec3ac497", - "sha256:59ddd85a1214862ce7c7c66457f05543b6a275b70a65de366030d56159a979f0", - "sha256:6347f1a58e658b97b0a0d1ff7658a03cb79bdbda0331603bed24dd7054a6dea1", - "sha256:6628d750041550c5d9da50bb40b5cf28a2e63b9388bac10fedd4f19236ef4957", - "sha256:6afb336e23a793cd3b6476c30f030a0d4c7539cd81649683b5e0c1b0ab0bf350", - "sha256:6c8148e0b52bf9535c40c48faebb00cb294ee577ca069d21bd5c48d302a83780", - "sha256:76577f13333b4fe345c3704811ac7509b31499132ff0181f25ee26619de2c843", - "sha256:7c0da7e44d0c9108d8b98469338705e07f4bb7dab96dbd8fa4e91b337db42548", - "sha256:7de89c8456525650ffa2bb56a3eee6af891e98f498babd43ae307bd42dca98f6", - "sha256:7ec362167e2c9fd178f82f252b6d97669d7245695dc057ee182118042026da40", - "sha256:7fce6cbc6c170ede0221cc8c91b285f7f3c8b9fe28283b51885ff621bbe0f8ee", - "sha256:85cba594433915d5c9a0d14b24cfba0339f57a2fff203a5d4fd070e593307d0b", - "sha256:8b0af1cf36b93cee99a31a545fe91d08223e64390c5ecc5e94c39511832a4bb6", - "sha256:9130ddf1ae9978abe63808b6b60a897e41fccb834408cde79522feb37fb72fb0", - "sha256:99449cd5366fe4608e7226c6cae80873296dfa0cde45d9b498fefa1de315a09e", - "sha256:9de955d98e02fab288c7718662afb33aab64212ecb368c5dc866d9a57bf48880", - "sha256:a0fb2cb4204ddb456a8e32381f9a90000429489a25f64e817e6ff94879d432fc", - "sha256:a165442348c211b5dea67c0206fc61366212d7082ba8118c8c5c1c853ea4d82e", - "sha256:ab2a60d57ca88e1d4ca34a10e9fb4ab2ac5ad315543351de3a612bbb0560bead", - "sha256:abc06b97407868ef38f3d172762f4069323de52f2b70d133d096a48d72215d28", - "sha256:af887845b8c2e060eb5605ff72b6f2dd2aab7a761379373fd89d314f4752abbf", - "sha256:b19255dde4b4f4c32e012038f2c169bb72e7f081552bea4641cab4d88bc409dd", - "sha256:b3ded839a5c5608eec8b6f9ae9a62cb22cd037ea97c627f38ae0841a48f09eae", - "sha256:c1445a0c562ed561d06d8cbc5c8916c6008a31c60bc3655cdd2de1d3bf5174a0", - "sha256:d0272228fabe78ce00a3365ffffd6f643f57a91043e119c289aaba202f4095b0", - "sha256:d0b51530877d3ad7a8d47b2fff0c8df3b8f3b8deddf057379ba50b13df2a5eae", - "sha256:d0f77539733e0ec2475ddcd4e26777d08996f8cd55d2aef82ec4d3896687abda", - "sha256:d2b8f245dad9e331540c350285910b20dd913dc86d4ee410c11d48523c4fd546", - "sha256:dd032e8422a52e5a4860e062eb84ac94ea08861d334a4bcaf142a63ce8ad4802", - "sha256:de49d77e968de6626ba7ef4472323f9d2e5a56c1d85b7c0e2a190b2173d3b9be", - "sha256:de839c3a1826a909fdbfe05f6fe2167c4ab033f1133757b5936efe2f84904c07", - "sha256:e80ed5a9939ceb6fda42811542f31c8602be336b1fb977bccb012e83da7e4936", - "sha256:ea30a42dc94d42f2ba4d0f7c0ffb4f4f9baa1b23045910c0c32df9c9902cb272", - "sha256:ea513a25976d21733bff523e0ca836ef1679630ef4ad22d46987d04b372d57fc", - "sha256:ed19b74e81b10b592084a5ad1e70f845f0aacb57577018d31de064e71ffa267a", - "sha256:f5af52738e225fcc526ae64071b7e5342abe03f42e0e8918227b38c9aa711e28", - "sha256:fae37373155f5ef9b403ab48af5136ae9851151f7aacd9926251ab26b953118b" + "sha256:009a028127e0a1755c38b03244c0bea9d5565630db9c4cf9572496e947137a87", + "sha256:0414fd91ce0b763d4eadb4456795b307a71524dbacd015c657bb2a39db2eab89", + "sha256:0978f29222e649c351b173da2b9b4665ad1feb8d1daa9d971eb90df08702668a", + "sha256:0ef8fb25e52663a1c85d608f6dd72e19bd390e2ecaf29c17fb08f730226e3a08", + "sha256:10b08293cda921157f1e7c2790999d903b3fd28cd5c208cf8826b3b508026996", + "sha256:1684a9bd9077e922300ecd48003ddae7a7474e0412bea38d4631443a91d61077", + "sha256:1b372aad2b5f81db66ee7ec085cbad72c4da660d994e8e590c997e9b01e44901", + "sha256:1e21fb44e1eff06dd6ef971d4bdc611807d6bd3691223d9c01a18cec3677939e", + "sha256:2305517e332a862ef75be8fad3606ea10108662bc6fe08509d5ca99503ac2aee", + "sha256:24ad1d10c9db1953291f56b5fe76203977f1ed05f82d09ec97acb623a7976574", + "sha256:272b4f1599f1b621bf2aabe4e5b54f39a933971f4e7c9aa311d6d7dc06965165", + "sha256:2a1fca9588f360036242f379bfea2b8b44cae2721859b1c56d033adfd5893634", + "sha256:2b4fa2606adf392051d990c3b3877d768771adc3faf2e117b9de7eb977741229", + "sha256:3150078118f62371375e1e69b13b48288e44f6691c1069340081c3fd12c94d5b", + "sha256:326dd1d3caf910cd26a26ccbfb84c03b608ba32499b5d6eeb09252c920bcbe4f", + "sha256:34c09b43bd538bf6c4b891ecce94b6fa4f1f10663a8d4ca589a079a5018f6ed7", + "sha256:388a45dc77198b2460eac0aca1efd6a7c09e976ee768b0d5109173e521a19daf", + "sha256:3adeef150d528ded2a8e734ebf9ae2e658f4c49bf413f5f157a470e17a4a2e89", + "sha256:3edac5d74bb3209c418805bda77f973117836e1de7c000e9755e572c1f7850d0", + "sha256:3f6b4aca43b602ba0f1459de647af954769919c4714706be36af670a5f44c9c1", + "sha256:3fc056e35fa6fba63248d93ff6e672c096f95f7836938241ebc8260e062832fe", + "sha256:418857f837347e8aaef682679f41e36c24250097f9e2f315d39bae3a99a34cbf", + "sha256:42430ff511571940d51e75cf42f1e4dbdded477e71c1b7a17f4da76c1da8ea76", + "sha256:44ceac0450e648de86da8e42674f9b7077d763ea80c8ceb9d1c3e41f0f0a9951", + "sha256:47d49ac96156f0928f002e2424299b2c91d9db73e08c4cd6742923a086f1c863", + "sha256:48dd18adcf98ea9cd721a25313aef49d70d413a999d7d89df44f469edfb38a06", + "sha256:49d43402c6e3013ad0978602bf6bf5328535c48d192304b91b97a3c6790b1562", + "sha256:4d04acba75c72e6eb90745447d69f84e6c9056390f7a9724605ca9c56b4afcc6", + "sha256:57a7c87927a468e5a1dc60c17caf9597161d66457a34273ab1760219953f7f4c", + "sha256:58a3c13d1c3005dbbac5c9f0d3210b60220a65a999b1833aa46bd6677c69b08e", + "sha256:5df5e3d04101c1e5c3b1d69710b0574171cc02fddc4b23d1b2813e75f35a30b1", + "sha256:63243b21c6e28ec2375f932a10ce7eda65139b5b854c0f6b82ed945ba526bff3", + "sha256:64dd68a92cab699a233641f5929a40f02a4ede8c009068ca8aa1fe87b8c20ae3", + "sha256:6604711362f2dbf7160df21c416f81fac0de6dbcf0b5445a2ef25478ecc4c778", + "sha256:6c4fcfa71e2c6a3cb568cf81aadc12768b9995323186a10827beccf5fa23d4f8", + "sha256:6d88056a04860a98341a0cf53e950e3ac9f4e51d1b6f61a53b0609df342cc8b2", + "sha256:705227dccbe96ab02c7cb2c43e1228e2826e7ead880bb19ec94ef279e9555b5b", + "sha256:728be34f70a190566d20aa13dc1f01dc44b6aa74580e10a3fb159691bc76909d", + "sha256:74dece2bfc60f0f70907c34b857ee98f2c6dd0f75185db133770cd67300d505f", + "sha256:75c16b2a900b3536dfc7014905a128a2bea8fb01f9ee26d2d7d8db0a08e7cb2c", + "sha256:77e913b846a6b9c5f767b14dc1e759e5aff05502fe73079f6f4176359d832581", + "sha256:7a66c506ec67eb3159eea5096acd05f5e788ceec7b96087d30c7d2865a243918", + "sha256:8c46d3d89902c393a1d1e243ac847e0442d0196bbd81aecc94fcebbc2fd5857c", + "sha256:93202666046d9edadfe9f2e7bf5e0782ea0d497b6d63da322e541665d65a044e", + "sha256:97209cc91189b48e7cfe777237c04af8e7cc51eb369004e061809bcdf4e55220", + "sha256:a48f4f7fea9a51098b02209d90297ac324241bf37ff6be6d2b0149ab2bd51b37", + "sha256:a783cd344113cb88c5ff7ca32f1f16532a6f2142185147822187913eb989f739", + "sha256:ae0eec05ab49e91a78700761777f284c2df119376e391db42c38ab46fd662b77", + "sha256:ae4d7ff1049f36accde9e1ef7301912a751e5bae0a9d142459646114c70ecba6", + "sha256:b05df9ea7496df11b710081bd90ecc3a3db6adb4fee36f6a411e7bc91a18aa42", + "sha256:baf211dcad448a87a0d9047dc8282d7de59473ade7d7fdf22150b1d23859f946", + "sha256:bb81f753c815f6b8e2ddd2eef3c855cf7da193b82396ac013c661aaa6cc6b0a5", + "sha256:bcd7bb1e5c45274af9a1dd7494d3c52b2be5e6bd8d7e49c612705fd45420b12d", + "sha256:bf071f797aec5b96abfc735ab97da9fd8f8768b43ce2abd85356a3127909d146", + "sha256:c15163b6125db87c8f53c98baa5e785782078fbd2dbeaa04c6141935eb6dab7a", + "sha256:cb6d48d80a41f68de41212f3dfd1a9d9898d7841c8f7ce6696cf2fd9cb57ef83", + "sha256:ceff9722e0df2e0a9e8a79c610842004fa54e5b309fe6d218e47cd52f791d7ef", + "sha256:cfa2bbca929aa742b5084fd4663dd4b87c191c844326fcb21c3afd2d11497f80", + "sha256:d617c241c8c3ad5c4e78a08429fa49e4b04bedfc507b34b4d8dceb83b4af3588", + "sha256:d881d152ae0007809c2c02e22aa534e702f12071e6b285e90945aa3c376463c5", + "sha256:da65c3f263729e47351261351b8679c6429151ef9649bba08ef2528ff2c423b2", + "sha256:de986979bbd87272fe557e0a8fcb66fd40ae2ddfe28a8b1ce4eae22681728fef", + "sha256:df60a94d332158b444301c7f569659c926168e4d4aad2cfbf4bce0e8fb8be826", + "sha256:dfef7350ee369197106805e193d420b75467b6cceac646ea5ed3049fcc950a05", + "sha256:e59399dda559688461762800d7fb34d9e8a6a7444fd76ec33220a926c8be1516", + "sha256:e6f3515aafe0209dd17fb9bdd3b4e892963370b3de781f53e1746a521fb39fc0", + "sha256:e7fd20d6576c10306dea2d6a5765f46f0ac5d6f53436217913e952d19237efc4", + "sha256:ebb78745273e51b9832ef90c0898501006670d6e059f2cdb0e999494eb1450c2", + "sha256:efff27bd8cbe1f9bd127e7894942ccc20c857aa8b5a0327874f30201e5ce83d0", + "sha256:f37db05c6051eff17bc832914fe46869f8849de5b92dc4a3466cd63095d23dfd", + "sha256:f8ca8ad414c85bbc50f49c0a106f951613dfa5f948ab69c10ce9b128d368baf8", + "sha256:fb742dcdd5eec9f26b61224c23baea46c9055cf16f62475e11b9b15dfd5c117b", + "sha256:fc77086ce244453e074e445104f0ecb27530d6fd3a46698e33f6c38951d5a0f1", + "sha256:ff205b58dc2929191f68162633d5e10e8044398d7a45265f90a0f1d51f85f72c" ], "markers": "python_version >= '3.7'", - "version": "==1.8.1" + "version": "==1.8.2" } }, "develop": { @@ -1622,40 +1635,29 @@ }, "black": { "hashes": [ - "sha256:0a12e4e1353819af41df998b02c6742643cfef58282915f781d0e4dd7a200411", - "sha256:0ad827325a3a634bae88ae7747db1a395d5ee02cf05d9aa7a9bd77dfb10e940c", - "sha256:32a4b17f644fc288c6ee2bafdf5e3b045f4eff84693ac069d87b1a347d861497", - "sha256:3b2c25f8dea5e8444bdc6788a2f543e1fb01494e144480bc17f806178378005e", - "sha256:4a098a69a02596e1f2a58a2a1c8d5a05d5a74461af552b371e82f9fa4ada8342", - "sha256:5107ea36b2b61917956d018bd25129baf9ad1125e39324a9b18248d362156a27", - "sha256:53198e28a1fb865e9fe97f88220da2e44df6da82b18833b588b1883b16bb5d41", - "sha256:5594efbdc35426e35a7defa1ea1a1cb97c7dbd34c0e49af7fb593a36bd45edab", - "sha256:5b879eb439094751185d1cfdca43023bc6786bd3c60372462b6f051efa6281a5", - "sha256:78dd85caaab7c3153054756b9fe8c611efa63d9e7aecfa33e533060cb14b6d16", - "sha256:792f7eb540ba9a17e8656538701d3eb1afcb134e3b45b71f20b25c77a8db7e6e", - "sha256:8ce13ffed7e66dda0da3e0b2eb1bdfc83f5812f66e09aca2b0978593ed636b6c", - "sha256:a05da0430bd5ced89176db098567973be52ce175a55677436a271102d7eaa3fe", - "sha256:a983526af1bea1e4cf6768e649990f28ee4f4137266921c2c3cee8116ae42ec3", - "sha256:bc4d4123830a2d190e9cc42a2e43570f82ace35c3aeb26a512a2102bce5af7ec", - "sha256:c3a73f66b6d5ba7288cd5d6dad9b4c9b43f4e8a4b789a94bf5abfb878c663eb3", - "sha256:ce957f1d6b78a8a231b18e0dd2d94a33d2ba738cd88a7fe64f53f659eea49fdd", - "sha256:cea1b2542d4e2c02c332e83150e41e3ca80dc0fb8de20df3c5e98e242156222c", - "sha256:d2c21d439b2baf7aa80d6dd4e3659259be64c6f49dfd0f32091063db0e006db4", - "sha256:d839150f61d09e7217f52917259831fe2b689f5c8e5e32611736351b89bb2a90", - "sha256:dd82842bb272297503cbec1a2600b6bfb338dae017186f8f215c8958f8acf869", - "sha256:e8166b7bfe5dcb56d325385bd1d1e0f635f24aae14b3ae437102dedc0c186747", - "sha256:e981e20ec152dfb3e77418fb616077937378b322d7b26aa1ff87717fb18b4875" + "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320", + "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351", + "sha256:1f58cbe16dfe8c12b7434e50ff889fa479072096d79f0a7f25e4ab8e94cd8350", + "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f", + "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf", + "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148", + "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4", + "sha256:77d86c9f3db9b1bf6761244bc0b3572a546f5fe37917a044e02f3166d5aafa7d", + "sha256:82d9fe8fee3401e02e79767016b4907820a7dc28d70d137eb397b92ef3cc5bfc", + "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d", + "sha256:c116eed0efb9ff870ded8b62fe9f28dd61ef6e9ddd28d83d7d264a38417dcee2", + "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f" ], "index": "pypi", - "version": "==22.8.0" + "version": "==22.12.0" }, "certifi": { "hashes": [ - "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14", - "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382" + "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", + "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" ], - "markers": "python_full_version >= '3.6.0'", - "version": "==2022.9.24" + "markers": "python_version >= '3.6'", + "version": "==2022.12.7" }, "cfgv": { "hashes": [ @@ -1744,29 +1746,37 @@ ], "version": "==0.3.6" }, + "exceptiongroup": { + "hashes": [ + "sha256:542adf9dea4055530d6e1279602fa5cb11dab2395fa650b8674eaec35fc4a828", + "sha256:bd14967b79cd9bdb54d97323216f8fdf533e278df937aa2a90089e7d6e06e5ec" + ], + "markers": "python_version < '3.11'", + "version": "==1.0.4" + }, "filelock": { "hashes": [ - "sha256:55447caa666f2198c5b6b13a26d2084d26fa5b115c00d065664b2124680c4edc", - "sha256:617eb4e5eedc82fc5f47b6d61e4d11cb837c56cb4544e39081099fa17ad109d4" + "sha256:7565f628ea56bfcd8e54e42bdc55da899c85c1abfe1b5bcfd147e9188cebb3b2", + "sha256:8df285554452285f79c035efb0c861eb33a4bcfa5b7a137016e32e6a90f9792c" ], "markers": "python_version >= '3.7'", - "version": "==3.8.0" + "version": "==3.8.2" }, "flake8": { "hashes": [ - "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db", - "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248" + "sha256:3833794e27ff64ea4e9cf5d410082a8b97ff1a06c16aa3d2027339cd0f1195c7", + "sha256:c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181" ], "index": "pypi", - "version": "==5.0.4" + "version": "==6.0.0" }, "identify": { "hashes": [ - "sha256:48b7925fe122720088aeb7a6c34f17b27e706b72c61070f27fe3789094233440", - "sha256:7a214a10313b9489a0d61467db2856ae8d0b8306fc923e03a9effa53d8aedc58" + "sha256:dce9e31fee7dbc45fea36a9e855c316b8fbf807e65a862f160840bb5a2bf5dfd", + "sha256:fb7c2feaeca6976a3ffa31ec3236a6911fbc51aec9acc111de2aed99f244ade2" ], "markers": "python_version >= '3.7'", - "version": "==2.5.8" + "version": "==2.5.10" }, "idna": { "hashes": [ @@ -1808,27 +1818,27 @@ }, "packaging": { "hashes": [ - "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb", - "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522" + "sha256:2198ec20bd4c017b8f9717e00f0c8714076fc2fd93816750ab48e2c41de2cfd3", + "sha256:957e2148ba0e1a3b282772e791ef1d8083648bc131c8ab0c1feba110ce1146c3" ], - "markers": "python_full_version >= '3.6.0'", - "version": "==21.3" + "markers": "python_version >= '3.7'", + "version": "==22.0" }, "pathspec": { "hashes": [ - "sha256:88c2606f2c1e818b978540f73ecc908e13999c6c3a383daf3705652ae79807a5", - "sha256:8f6bf73e5758fd365ef5d58ce09ac7c27d2833a8d7da51712eac6e27e35141b0" + "sha256:3c95343af8b756205e2aba76e843ba9520a24dd84f68c22b9f93251507509dd6", + "sha256:56200de4077d9d0791465aa9095a01d421861e405b5096955051deefd697d6f6" ], "markers": "python_version >= '3.7'", - "version": "==0.10.2" + "version": "==0.10.3" }, "platformdirs": { "hashes": [ - "sha256:1006647646d80f16130f052404c6b901e80ee4ed6bef6792e1f238a8969106f7", - "sha256:af0276409f9a02373d540bf8480021a048711d572745aef4b7842dad245eba10" + "sha256:1a89a12377800c81983db6be069ec068eee989748799b946cce2a6e80dcc54ca", + "sha256:b46ffafa316e6b83b47489d240ce17173f123a9b9c83282141c3daf26ad9ac2e" ], "markers": "python_version >= '3.7'", - "version": "==2.5.4" + "version": "==2.6.0" }, "pluggy": { "hashes": [ @@ -1846,53 +1856,37 @@ "index": "pypi", "version": "==2.20.0" }, - "py": { - "hashes": [ - "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", - "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378" - ], - "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:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785", - "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b" + "sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053", + "sha256:8a4eaf0d0495c7395bdab3589ac2db602797d76207242c17d470186815706610" ], "markers": "python_version >= '3.6'", - "version": "==2.9.1" + "version": "==2.10.0" }, "pyflakes": { "hashes": [ - "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2", - "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3" + "sha256:ec55bf7fe21fff7f1ad2f7da62363d749e2a470500eab1b555334b67aa1ef8cf", + "sha256:ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd" ], "markers": "python_version >= '3.6'", - "version": "==2.5.0" - }, - "pyparsing": { - "hashes": [ - "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb", - "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc" - ], - "markers": "python_full_version >= '3.6.8'", - "version": "==3.0.9" + "version": "==3.0.1" }, "pytest": { "hashes": [ - "sha256:1377bda3466d70b55e3f5cecfa55bb7cfcf219c7964629b967c37cf0bda818b7", - "sha256:4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39" + "sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71", + "sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59" ], "index": "pypi", - "version": "==7.1.3" + "version": "==7.2.0" }, "pytest-asyncio": { "hashes": [ - "sha256:7a97e37cfe1ed296e2e84941384bdd37c376453912d397ed39293e0916f521fa", - "sha256:ac4ebf3b6207259750bc32f4c1d8fcd7e79739edbc67ad0c58dd150b1d072fed" + "sha256:83cbf01169ce3e8eb71c6c278ccb0574d1a7a3bb8eaaf5e50e0ad342afb33b36", + "sha256:f129998b209d04fcc65c96fc85c11e5316738358909a8399e93be553d7656442" ], "index": "pypi", - "version": "==0.19.0" + "version": "==0.20.3" }, "pytest-dependency": { "hashes": [ @@ -1914,16 +1908,16 @@ "sha256:7454314a529bba20e745928601ffeaf101c1b5aca9a6c4e48ad397803d10ea0c", "sha256:d8d8b072799c36cadcdcc2b40d2a560ce09797ab3d2d596b2ad519a5e4df19ae" ], - "markers": "python_full_version >= '3.6.0'", + "markers": "python_version >= '3.6'", "version": "==4.3.4" }, "python-socketio": { "hashes": [ - "sha256:5011a0cd2545c954d7df09eef7489ec424c93b001cc146599cd72f1dd20f0d46", - "sha256:86ee93591c1e781d339d9a61940e62fd6cbc838390653b52a7bcc4f7ce89fe47" + "sha256:92395062d9db3c13d30e7cdedaa0e1330bba78505645db695415f9a3c628d097", + "sha256:d9a9f047e6fdd306c852fbac36516f4b495c2096f8ad9ceb8803b8e5ff5622e3" ], "index": "pypi", - "version": "==5.7.1" + "version": "==5.7.2" }, "pyyaml": { "hashes": [ @@ -1975,16 +1969,16 @@ "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" ], - "markers": "python_version >= '3.7' and python_version < '4.0'", + "markers": "python_version >= '3.7' and python_version < '4'", "version": "==2.28.1" }, "setuptools": { "hashes": [ - "sha256:d0b9a8433464d5800cbe05094acf5c6d52a91bfac9b52bcfc4d41382be5d5d31", - "sha256:e197a19aa8ec9722928f2206f8de752def0e4c9fc6953527360d1c36d94ddb2f" + "sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54", + "sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75" ], "markers": "python_version >= '3.7'", - "version": "==65.5.1" + "version": "==65.6.3" }, "toml": { "hashes": [ @@ -1999,24 +1993,24 @@ "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" ], - "markers": "python_version >= '3.7'", + "markers": "python_full_version < '3.11.0a7'", "version": "==2.0.1" }, "urllib3": { "hashes": [ - "sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e", - "sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997" + "sha256:47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc", + "sha256:c083dd0dce68dbfbe1129d5271cb90f9447dea7d52097c6e0126120c521ddea8" ], - "markers": "python_full_version >= '3.6.0'", - "version": "==1.26.12" + "markers": "python_version >= '3.6'", + "version": "==1.26.13" }, "virtualenv": { "hashes": [ - "sha256:8691e3ff9387f743e00f6bb20f70121f5e4f596cae754531f2b3b3a1b1ac696e", - "sha256:efd66b00386fdb7dbe4822d172303f40cd05e50e01740b19ea42425cbe653e29" + "sha256:ce3b1684d6e1a20a3e5ed36795a97dfc6af29bc3970ca8dab93e11ac6094b3c4", + "sha256:f8b927684efc6f1cc206c9db297a570ab9ad0e51c16fa9e45487d36d1905c058" ], "markers": "python_version >= '3.6'", - "version": "==20.16.7" + "version": "==20.17.1" }, "websocket-client": { "hashes": [ diff --git a/classquiz/__init__.py b/classquiz/__init__.py index 5b873f1..6171ee9 100644 --- a/classquiz/__init__.py +++ b/classquiz/__init__.py @@ -14,7 +14,7 @@ from classquiz.db import database from datetime import timedelta from classquiz.oauth import rememberme_middleware -from classquiz.routers import users, quiz, utils, stats, storage, search, testing_routes, editor, live, eximport +from classquiz.routers import users, quiz, utils, stats, storage, search, testing_routes, editor, live, eximport, login from classquiz.socket_server import sio from classquiz.helpers import meilisearch_init, telemetry_ping, bg_tasks from scheduler.asyncio import Scheduler @@ -67,6 +67,8 @@ async def auth_middleware_wrapper(request: Request, call_next): return await rememberme_middleware(request, call_next) +app.include_router(login.router, tags=["auth"], prefix="/api/v1/login", include_in_schema=True) + app.add_middleware(SessionMiddleware, secret_key=settings.secret_key) app.include_router(users.router, tags=["users"], prefix="/api/v1/users", include_in_schema=True) app.include_router(quiz.router, tags=["quiz"], prefix="/api/v1/quiz", include_in_schema=True) diff --git a/classquiz/db/models.py b/classquiz/db/models.py index 3074abe..5b08633 100644 --- a/classquiz/db/models.py +++ b/classquiz/db/models.py @@ -1,7 +1,7 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at https://mozilla.org/MPL/2.0/. - +import os import uuid from datetime import datetime from typing import Optional @@ -33,6 +33,10 @@ class User(ormar.Model): auth_type: UserAuthTypes = ormar.Enum(enum_class=UserAuthTypes, default=UserAuthTypes.LOCAL) google_uid: Optional[str] = ormar.String(unique=True, max_length=255, nullable=True) avatar: bytes = ormar.LargeBinary(max_length=25000, represent_as_base64_str=True) + github_user_id: int | None = ormar.Integer(nullable=True) + require_password: bool = ormar.Boolean(default=True, nullable=False) + backup_code: str = ormar.String(max_length=64, min_length=64, nullable=False, default=os.urandom(32).hex()) + totp_secret: str = ormar.String(max_length=32, min_length=32, nullable=True, default=None) class Meta: tablename = "users" @@ -43,6 +47,19 @@ class User(ormar.Model): use_enum_values = True +class FidoCredentials(ormar.Model): + pk: int = ormar.Integer(autoincrement=True, primary_key=True) + id: bytes = ormar.LargeBinary(max_length=256) + public_key: bytes = ormar.LargeBinary(max_length=256) + sign_count: int = ormar.Integer() + user: Optional[User] = ormar.ForeignKey(User) + + class Meta: + tablename = "fido_credentials" + metadata = metadata + database = database + + class ApiKey(ormar.Model): key: str = ormar.String(max_length=48, min_length=48, primary_key=True) user: Optional[User] = ormar.ForeignKey(User) diff --git a/classquiz/oauth/authenticate_user.py b/classquiz/oauth/authenticate_user.py index ea8df1e..59fe0ba 100644 --- a/classquiz/oauth/authenticate_user.py +++ b/classquiz/oauth/authenticate_user.py @@ -45,8 +45,6 @@ async def log_user_in(user: User, request: Request, response: Response): samesite="lax", 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="", max_age=60 * 60 * 24 * 365) response.set_cookie( key="rememberme_token", value=session_key, httponly=True, samesite="lax", max_age=60 * 60 * 24 * 365 ) diff --git a/classquiz/oauth/github.py b/classquiz/oauth/github.py index bea3def..10d92c0 100644 --- a/classquiz/oauth/github.py +++ b/classquiz/oauth/github.py @@ -7,11 +7,12 @@ from typing import Optional import asyncpg import authlib.integrations.base_client from fastapi import APIRouter, Request, HTTPException, Response + +from classquiz.auth import check_token from classquiz.config import settings from fastapi.responses import RedirectResponse from classquiz.db.models import User, UserAuthTypes from pydantic import BaseModel -from classquiz.auth import check_token from classquiz.helpers.avatar import gzipped_user_avatar from classquiz.oauth.authenticate_user import log_user_in, rememberme_check from datetime import datetime @@ -104,6 +105,7 @@ async def auth(request: Request, response: Response): if user_data.email is None: return RedirectResponse("/account/oauth-error?error=email") user_in_db = await User.objects.get_or_none(email=user_data.email) + print(user_data.id) if user_in_db is None: # REGISTER USER try: diff --git a/classquiz/routers/login.py b/classquiz/routers/login.py new file mode 100644 index 0000000..10de373 --- /dev/null +++ b/classquiz/routers/login.py @@ -0,0 +1,206 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at https://mozilla.org/MPL/2.0/. +import base64 +import enum +import os +import uuid + +import pyotp +from fastapi import APIRouter, HTTPException, Request, Response +from pydantic import BaseModel, ValidationError + +from classquiz.auth import verify_password +from classquiz.config import redis, settings + +from classquiz.db.models import User, FidoCredentials +from webauthn import ( + generate_authentication_options, + options_to_json, + verify_authentication_response, + base64url_to_bytes, +) +from webauthn.helpers.structs import ( + PublicKeyCredentialDescriptor, + UserVerificationRequirement, + AuthenticationCredential, +) + +from classquiz.oauth.authenticate_user import log_user_in + +settings = settings() +router = APIRouter() + + +class StartLoginInput(BaseModel): + email: str + + +class StartLoginResponseTypes(enum.Enum): + PASSWORD = "PASSWORD" + PASSKEY = "PASSKEY" + TOTP = "TOTP" + BACKUP = "BACKUP" + + +class LoginSession(BaseModel): + user_id: str + step_1: set[StartLoginResponseTypes] + step_2: set[StartLoginResponseTypes] + webauthn_challenge: str | None + step1_success: bool = False + + +class StartLoginResponse(BaseModel): + step_1: set[StartLoginResponseTypes] + step_2: set[StartLoginResponseTypes] + session_id: str + webauthn_data: None | str + + +def verify_webauthn(data, fidocredentialss: list[FidoCredentials], login_session: LoginSession): + try: + credential = AuthenticationCredential.parse_obj(data) + except ValidationError: + print("ValidationError") + raise HTTPException(401) + + user_cred: FidoCredentials | None = None + + credential.id = base64url_to_bytes(credential.id) + for cred in fidocredentialss: + if cred.id == credential.id: + user_cred = cred + break + if user_cred is None: + print("user_cred not in DB") + raise HTTPException(401) + credential.id = base64.urlsafe_b64encode(credential.raw_id).decode("utf-8").replace("=", "") + credential.response.client_data_json = base64.b64decode(credential.response.client_data_json + b"==") + credential.response.authenticator_data = base64.urlsafe_b64decode(credential.response.authenticator_data + b"==") + credential.response.signature = base64.urlsafe_b64decode(credential.response.signature + b"==") + print(credential) + try: + verify_authentication_response( + credential=credential, + expected_challenge=base64.b64decode(login_session.webauthn_challenge), + expected_rp_id="localhost", + expected_origin=settings.root_address, + credential_public_key=user_cred.public_key, + credential_current_sign_count=user_cred.sign_count, + require_user_verification=False, + ) + print("logging in...") + return True + except Exception as err: + print(err) + raise HTTPException(status_code=401) + + +@router.post("/start") +async def start_login(data: StartLoginInput): + user = await User.objects.select_related("fidocredentialss").get_or_none(email=data.email) + step_1: set[StartLoginResponseTypes] = set() + step_2: set[StartLoginResponseTypes] = set() + webauthn_data = None + webauthn_challenge = None + if user is None: + step_1.add(StartLoginResponseTypes.PASSWORD) + return StartLoginResponse(step_1=step_1, step_2=step_2, session_id=os.urandom(16).hex(), webauthn_data=None) + if user.password is not None: + step_1.add(StartLoginResponseTypes.PASSWORD) + if len(user.fidocredentialss) > 0: + if user.require_password is True: + step_2.add(StartLoginResponseTypes.PASSKEY) + else: + step_1.add(StartLoginResponseTypes.PASSKEY) + webauthn_data = generate_authentication_options( + rp_id="localhost", + allow_credentials=[ + PublicKeyCredentialDescriptor(id=cred.id, type="public-key") for cred in user.fidocredentialss + ], + user_verification=UserVerificationRequirement.PREFERRED, + ) + webauthn_challenge = base64.b64encode(webauthn_data.challenge).decode("utf-8") + webauthn_data = options_to_json(webauthn_data) + if user.totp_secret is not None: + if user.require_password: + step_2.add(StartLoginResponseTypes.TOTP) + else: + step_1.add(StartLoginResponseTypes.TOTP) + login_session = LoginSession( + step_1=step_1, + step_2=step_2, + user_id=user.id.hex, + webauthn_challenge=webauthn_challenge, + ) + session_id = os.urandom(16).hex() + await redis.set(f"login_session:{session_id}", login_session.json(), ex=600) + return StartLoginResponse(step_1=step_1, step_2=step_2, session_id=session_id, webauthn_data=webauthn_data) + + +class StepInput(BaseModel): + auth_type: StartLoginResponseTypes + data: str | dict + + +@router.post("/step/{step_id}") +async def step_1(session_id: str, data: StepInput, request: Request, response: Response, step_id: int): + if step_id < 0 or step_id > 2: + raise HTTPException(status_code=401) + redis_res = await redis.get(f"login_session:{session_id}") + if redis_res is None: + raise HTTPException(401, detail="wrong credentials") + login_session = LoginSession.parse_raw(redis_res) + + if step_id == 1: + if data.auth_type not in {*login_session.step_1, StartLoginResponseTypes.BACKUP}: + print("AUTH_TYPE not in data") + raise HTTPException(401) + elif step_id == 2: + if data.auth_type not in login_session.step_2: + print("AUTH_TYPE not in data") + raise HTTPException(401) + else: + print("unknown step") + raise HTTPException(401) + user = await User.objects.select_related("fidocredentialss").get_or_none(id=uuid.UUID(login_session.user_id)) + if data.auth_type == StartLoginResponseTypes.PASSWORD: + if verify_password(data.data, user.password): + if len(login_session.step_2) == 0 or (step_id == 2 and login_session.step1_success is True): + return await log_user_in(user, request, response) + else: + login_session.step1_success = True + await redis.set(f"login_session:{session_id}", login_session.json(), ex=600) + return Response(status_code=202) + else: + print("Wrong Password") + raise HTTPException(401, detail="wrong credentials") + elif data.auth_type == StartLoginResponseTypes.PASSKEY: + res = verify_webauthn(data=data.data, fidocredentialss=user.fidocredentialss, login_session=login_session) + if res is True: + if len(login_session.step_2) == 0 or (step_id == 2 and login_session.step1_success is True): + return await log_user_in(user, request, response) + else: + login_session.step1_success = True + await redis.set(f"login_session:{session_id}", login_session.json(), ex=600) + return Response(status_code=202) + else: + raise HTTPException(401, detail="webauthn failed") + elif data.auth_type == StartLoginResponseTypes.BACKUP: + if user.backup_code == data.data: + user.backup_code = os.urandom(32).hex() + await user.update() + return await log_user_in(user, request, response) + else: + print("Wrong Backup-Code") + raise HTTPException(status_code=401) + elif data.auth_type == StartLoginResponseTypes.TOTP: + if step_id == 1 and user.require_password: + print("TOTP Cant be step 1") + raise HTTPException(401) + totp = pyotp.TOTP(user.totp_secret) + if totp.verify(data.data): + return await log_user_in(user, request, response) + else: + raise HTTPException(401, detail="totp wrong") diff --git a/classquiz/routers/users.py b/classquiz/routers/users/__init__.py similarity index 94% rename from classquiz/routers/users.py rename to classquiz/routers/users/__init__.py index 2b0d48d..c7a4102 100644 --- a/classquiz/routers/users.py +++ b/classquiz/routers/users/__init__.py @@ -1,6 +1,7 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at https://mozilla.org/MPL/2.0/. + import gzip import os @@ -33,10 +34,14 @@ import bleach from pydantic import BaseModel from classquiz.db.models import User, UserSession, UpdatePassword, Token, Quiz, ApiKey from classquiz.emails import send_register_email, send_forgotten_password_email +from classquiz.routers.users import webauthn, twofa settings = settings() router = APIRouter() +router.include_router(webauthn.router, prefix="/webauthn") +router.include_router(twofa.router, prefix="/2fa") + class RouteUser(pydantic.BaseModel): username: str @@ -84,14 +89,15 @@ async def create_user(user: RouteUser, background_task: BackgroundTasks) -> User return user -@router.post("/token/cookie", response_model=Token) +@router.post("/token/cookie", response_model=Token, deprecated=True) 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: + user = await User.objects.select_related("fidocredentialss").get(id=user.id) + if not user or user.totp_secret is not None or user or len(user.fidocredentialss) != 0: raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, detail="Incorrect username or password", @@ -169,7 +175,17 @@ async def signout_everywhere(response: Response, user: User = Depends(get_curren @router.get( "/me", - response_model_exclude={"password", "verify_key", "usersessions", "avatar", "google_uid", "quizs"}, + response_model_exclude={ + "password", + "verify_key", + "usersessions", + "avatar", + "quizs", + "fidocredentialss", + "backup_code", + "apikeys", + "totp_secret", + }, response_model=User, ) async def get_me(user: User = Depends(get_current_user)): diff --git a/classquiz/routers/users/twofa.py b/classquiz/routers/users/twofa.py new file mode 100644 index 0000000..29d4276 --- /dev/null +++ b/classquiz/routers/users/twofa.py @@ -0,0 +1,75 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at https://mozilla.org/MPL/2.0/. +import os +import urllib.parse + +import pyotp +from fastapi import APIRouter, Depends +from pydantic import BaseModel + +from classquiz.auth import get_current_user +from classquiz.db.models import User + +router = APIRouter() + + +class GetBackupCodeResponse(BaseModel): + code: str + + +@router.get("/backup_code", response_model=GetBackupCodeResponse) +async def get_backup_code(user: User = Depends(get_current_user)): + backup_code = os.urandom(32).hex() + user = await User.objects.get(id=user.id) + user.backup_code = backup_code + await user.update() + return GetBackupCodeResponse(code=backup_code) + + +class SetRequirePassword(BaseModel): + require_password: bool + + +@router.post("/require_password", response_model=SetRequirePassword) +async def set_require_password(data: SetRequirePassword, user: User = Depends(get_current_user)): + user = await User.objects.get(id=user.id) + user.require_password = data.require_password + await user.update() + return data + + +class SetTotpUpResponse(BaseModel): + url: str + secret: str + + +@router.post("/totp", response_model=SetTotpUpResponse) +async def set_totp_up(user: User = Depends(get_current_user)): + user = await User.objects.get(id=user.id) + user.totp_secret = pyotp.random_base32() + url = pyotp.totp.TOTP(user.totp_secret).provisioning_uri( + name=urllib.parse.quote(user.username), issuer_name="ClassQuiz" + ) + await user.update() + return SetTotpUpResponse(url=url, secret=user.totp_secret) + + +class GetTotpStatusResponse(BaseModel): + activated: bool + + +@router.get("/totp", response_model=GetTotpStatusResponse) +async def get_totp_status(user: User = Depends(get_current_user)): + user = await User.objects.get(id=user.id) + if user.totp_secret is None: + return GetTotpStatusResponse(activated=False) + else: + return GetTotpStatusResponse(activated=True) + + +@router.delete("/totp") +async def disable_totp(user: User = Depends(get_current_user)): + user = await User.objects.get(id=user.id) + user.totp_secret = None + await user.update() diff --git a/classquiz/routers/users/webauthn.py b/classquiz/routers/users/webauthn.py new file mode 100644 index 0000000..a909fc1 --- /dev/null +++ b/classquiz/routers/users/webauthn.py @@ -0,0 +1,87 @@ +from fastapi import APIRouter, Depends, HTTPException +from pydantic import BaseModel +from webauthn.helpers.cose import COSEAlgorithmIdentifier + +from classquiz.auth import get_current_user +from classquiz.db.models import User, FidoCredentials +from classquiz.config import redis, settings + +import base64 + +from webauthn import generate_registration_options, verify_registration_response +from webauthn.helpers.structs import ( + AuthenticatorSelectionCriteria, + UserVerificationRequirement, + RegistrationCredential, + PublicKeyCredentialCreationOptions, + PublicKeyCredentialDescriptor, +) + +settings = settings() + +router = APIRouter() + + +@router.get("/add_key", response_model=PublicKeyCredentialCreationOptions) +async def request_add_key_data(user: User = Depends(get_current_user)): + user = await User.objects.select_related("fidocredentialss").get(id=user.id) + options = generate_registration_options( + rp_id="localhost", + rp_name="ClassQuiz", + user_id=user.id.hex, + user_name=user.email, + exclude_credentials=[ + PublicKeyCredentialDescriptor(id=cred.id, type="public-key", transports=[]) + for cred in user.fidocredentialss + ], + authenticator_selection=AuthenticatorSelectionCriteria(user_verification=UserVerificationRequirement.PREFERRED), + supported_pub_key_algs=[ + COSEAlgorithmIdentifier.ECDSA_SHA_256, + COSEAlgorithmIdentifier.RSASSA_PKCS1_v1_5_SHA_256, + ], + timeout=600, + ) + await redis.set(f"add_webauthn:{user.id.hex}", base64.b64encode(options.challenge), ex=610) + return options + + +@router.post("/add_key") +async def confirm_add_key_data(credential: RegistrationCredential, user: User = Depends(get_current_user)): + redis_res = await redis.get(f"add_webauthn:{user.id.hex}") + if redis_res is None: + raise HTTPException(401) + current_registration_challenge = base64.b64decode(redis_res) + credential.id = base64.urlsafe_b64encode(credential.raw_id).decode("utf-8").replace("=", "") + credential.response.client_data_json = base64.b64decode(credential.response.client_data_json + b"==") + credential.response.attestation_object = base64.urlsafe_b64decode(credential.response.attestation_object + b"==") + verification = verify_registration_response( + credential=credential, + expected_challenge=current_registration_challenge, + expected_rp_id="localhost", + expected_origin=settings.root_address, + ) + new_credential = FidoCredentials( + id=verification.credential_id, + public_key=verification.credential_public_key, + sign_count=verification.sign_count, + ) + user = await User.objects.select_related("fidocredentialss").get(id=user.id) + await user.fidocredentialss.add(new_credential) + + +class SecurityKey(BaseModel): + id: int + + +@router.get("/list", response_model=list[SecurityKey]) +async def list_security_keys(user: User = Depends(get_current_user)): + user = await User.objects.select_related("fidocredentialss").get(id=user.id) + return [SecurityKey(id=sec.pk) for sec in user.fidocredentialss] + + +@router.delete("/key/{key_id}") +async def delete_security_key(key_id: int, user: User = Depends(get_current_user)): + key = await FidoCredentials.objects.get_or_none(pk=key_id, user=user.id) + if key is None: + raise HTTPException(status_code=404, detail="Key not found") + await key.delete() diff --git a/frontend/package.json b/frontend/package.json index 876fc72..a359008 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -26,14 +26,16 @@ "@fontsource/marck-script": "^4.5.11", "@sentry/browser": "^7.23.0", "@sentry/tracing": "^7.23.0", - "@sveltejs/adapter-auto": "next", + "@simplewebauthn/browser": "^6.2.2", + "@sveltejs/adapter-auto": "^1.0.0", "@sveltejs/adapter-node": "^1.0.0-next.101", - "@sveltejs/kit": "next", + "@sveltejs/kit": "^1.0.1", "@tailwindcss/typography": "^0.5.8", "@types/canvas-confetti": "^1.6.0", "@types/cookie": "^0.5.1", "@types/js-cookie": "^3.0.2", "@types/luxon": "^2.4.0", + "@types/qrcode": "^1.5.0", "@types/ua-parser-js": "^0.7.36", "@typescript-eslint/eslint-plugin": "^5.45.0", "@typescript-eslint/parser": "^5.45.0", @@ -69,11 +71,12 @@ "postcss-load-config": "^4.0.1", "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.8.1", + "qrcode": "^1.5.1", "sass": "^1.56.1", "socket.io-client": "^4.5.4", "svelte": "^3.53.1", "svelte-check": "^2.10.0", - "svelte-preprocess": "^4.10.7", + "svelte-preprocess": "^5.0.0", "svelte-range-slider-pips": "^2.1.0", "svelte-tippy": "^1.3.2", "swiper": "^8.4.5", @@ -82,8 +85,8 @@ "tslib": "^2.4.1", "typescript": "~4.7.4", "ua-parser-js": "^1.0.32", - "vite": "^3.2.4", - "vite-plugin-iso-import": "^0.1.3", + "vite": "^4.0.1", + "vite-plugin-iso-import": "^1.0.0", "yup": "^0.32.11" }, "type": "module", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 830b970..db415aa 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -13,14 +13,16 @@ specifiers: '@fontsource/marck-script': ^4.5.11 '@sentry/browser': ^7.23.0 '@sentry/tracing': ^7.23.0 - '@sveltejs/adapter-auto': next + '@simplewebauthn/browser': ^6.2.2 + '@sveltejs/adapter-auto': ^1.0.0 '@sveltejs/adapter-node': ^1.0.0-next.101 - '@sveltejs/kit': next + '@sveltejs/kit': ^1.0.1 '@tailwindcss/typography': ^0.5.8 '@types/canvas-confetti': ^1.6.0 '@types/cookie': ^0.5.1 '@types/js-cookie': ^3.0.2 '@types/luxon': ^2.4.0 + '@types/qrcode': ^1.5.0 '@types/ua-parser-js': ^0.7.36 '@typescript-eslint/eslint-plugin': ^5.45.0 '@typescript-eslint/parser': ^5.45.0 @@ -57,11 +59,12 @@ specifiers: postcss-load-config: ^4.0.1 prettier: ^2.8.0 prettier-plugin-svelte: ^2.8.1 + qrcode: ^1.5.1 sass: ^1.56.1 socket.io-client: ^4.5.4 svelte: ^3.53.1 svelte-check: ^2.10.0 - svelte-preprocess: ^4.10.7 + svelte-preprocess: ^5.0.0 svelte-range-slider-pips: ^2.1.0 svelte-tippy: ^1.3.2 swiper: ^8.4.5 @@ -70,37 +73,39 @@ specifiers: tslib: ^2.4.1 typescript: ~4.7.4 ua-parser-js: ^1.0.32 - vite: ^3.2.4 - vite-plugin-iso-import: ^0.1.3 + vite: ^4.0.1 + vite-plugin-iso-import: ^1.0.0 yup: ^0.32.11 dependencies: - i18next: 22.0.6 + i18next: 22.4.5 devDependencies: '@beyonk/svelte-mapbox': 8.2.0 - '@ckeditor/ckeditor5-autoformat': 35.3.2 - '@ckeditor/ckeditor5-basic-styles': 35.3.2 - '@ckeditor/ckeditor5-build-balloon': 35.3.2 - '@ckeditor/ckeditor5-editor-balloon': 35.3.2 - '@ckeditor/ckeditor5-essentials': 35.3.2 - '@ckeditor/ckeditor5-theme-lark': 35.3.2 + '@ckeditor/ckeditor5-autoformat': 35.4.0 + '@ckeditor/ckeditor5-basic-styles': 35.4.0 + '@ckeditor/ckeditor5-build-balloon': 35.4.0 + '@ckeditor/ckeditor5-editor-balloon': 35.4.0 + '@ckeditor/ckeditor5-essentials': 35.4.0 + '@ckeditor/ckeditor5-theme-lark': 35.4.0 '@felte/reporter-tippy': 1.1.4_tippy.js@6.3.7 '@felte/validator-yup': 1.0.10_yup@0.32.11 '@fontsource/marck-script': 4.5.11 - '@sentry/browser': 7.23.0 - '@sentry/tracing': 7.23.0 - '@sveltejs/adapter-auto': 1.0.0-next.90 - '@sveltejs/adapter-node': 1.0.0-next.101 - '@sveltejs/kit': 1.0.0-next.570_svelte@3.53.1+vite@3.2.4 + '@sentry/browser': 7.27.0 + '@sentry/tracing': 7.27.0 + '@simplewebauthn/browser': 6.2.2 + '@sveltejs/adapter-auto': 1.0.0_@sveltejs+kit@1.0.1 + '@sveltejs/adapter-node': 1.0.0_@sveltejs+kit@1.0.1 + '@sveltejs/kit': 1.0.1_svelte@3.55.0+vite@4.0.1 '@tailwindcss/typography': 0.5.8_tailwindcss@3.2.4 '@types/canvas-confetti': 1.6.0 '@types/cookie': 0.5.1 '@types/js-cookie': 3.0.2 '@types/luxon': 2.4.0 + '@types/qrcode': 1.5.0 '@types/ua-parser-js': 0.7.36 - '@typescript-eslint/eslint-plugin': 5.45.0_rzogma7jas7eybztjbadqqleea - '@typescript-eslint/parser': 5.45.0_tqvwk7sh3taph5wf7sr5z34mke + '@typescript-eslint/eslint-plugin': 5.46.1_qtjn2brzzhu6l3ntqnv7ocqkwu + '@typescript-eslint/parser': 5.46.1_7yp3msae2ah6x4svoyguc3s57e '@uppy/compressor': 1.0.1_@uppy+core@3.0.4 '@uppy/core': 3.0.4 '@uppy/dashboard': 3.2.0_@uppy+core@3.0.4 @@ -109,45 +114,46 @@ devDependencies: '@uppy/image-editor': 2.1.0_@uppy+core@3.0.4 '@uppy/progress-bar': 3.0.1_@uppy+core@3.0.4 '@uppy/status-bar': 3.0.1_@uppy+core@3.0.4 - '@uppy/svelte': 3.0.1_ot4shbqcybtqaelnhvuxvmk24u + '@uppy/svelte': 3.0.1_zd5pxjxq5i7vlrqcggsxalsir4 '@uppy/xhr-upload': 3.0.4_@uppy+core@3.0.4 - autoprefixer: 10.4.13_postcss@8.4.19 + autoprefixer: 10.4.13_postcss@8.4.20 canvas-confetti: 1.6.0 cookie: 0.5.0 crypto-js: 4.1.1 - cssnano: 5.1.14_postcss@8.4.19 - eslint: 8.28.0 - eslint-config-prettier: 8.5.0_eslint@8.28.0 - eslint-plugin-svelte3: 4.0.0_xgu65rlhscpnxffotiaicv6m5i - felte: 1.2.6_svelte@3.53.1 + cssnano: 5.1.14_postcss@8.4.20 + eslint: 8.30.0 + eslint-config-prettier: 8.5.0_eslint@8.30.0 + eslint-plugin-svelte3: 4.0.0_khrjkzzv5v2x7orkj5o7sxbz3a + felte: 1.2.6_svelte@3.55.0 fuse.js: 6.6.2 highlight.js: 11.7.0 i18next-browser-languagedetector: 7.0.1 js-cookie: 3.0.1 luxon: 3.1.1 - mapbox-gl: 2.11.0 + mapbox-gl: 2.11.1 minisearch: 5.1.0 plausible-tracker: 0.3.8 - postcss: 8.4.19 - postcss-import: 14.1.0_postcss@8.4.19 - postcss-load-config: 4.0.1_postcss@8.4.19 - prettier: 2.8.0 - prettier-plugin-svelte: 2.8.1_3ndnxlh52lolrqe4kgjgbxb3xa - sass: 1.56.1 + postcss: 8.4.20 + postcss-import: 14.1.0_postcss@8.4.20 + postcss-load-config: 4.0.1_postcss@8.4.20 + prettier: 2.8.1 + prettier-plugin-svelte: 2.9.0_ajxj753sv7dbwexjherrch25ta + qrcode: 1.5.1 + sass: 1.57.0 socket.io-client: 4.5.4 - svelte: 3.53.1 - svelte-check: 2.10.0_lae5lhfxexyizvi5yxbuu4veoq - svelte-preprocess: 4.10.7_ladvk7ak5n6ljjljd7g4yfwp34 - svelte-range-slider-pips: 2.1.0 + svelte: 3.55.0 + svelte-check: 2.10.2_qg5vvvck24g2hgmv67rlxrwpfu + svelte-preprocess: 5.0.0_yobe4dakbqoaknvfcvu2g5hg6u + svelte-range-slider-pips: 2.1.1 svelte-tippy: 1.3.2 swiper: 8.4.5 - tailwindcss: 3.2.4_postcss@8.4.19 + tailwindcss: 3.2.4_postcss@8.4.20 tippy.js: 6.3.7 tslib: 2.4.1 typescript: 4.7.4 ua-parser-js: 1.0.32 - vite: 3.2.4_sass@1.56.1 - vite-plugin-iso-import: 0.1.3 + vite: 4.0.1_sass@1.57.0 + vite-plugin-iso-import: 1.0.0_vite@4.0.1 yup: 0.32.11 packages: @@ -167,385 +173,385 @@ packages: } dev: true - /@ckeditor/ckeditor5-adapter-ckfinder/35.3.2: + /@ckeditor/ckeditor5-adapter-ckfinder/35.4.0: resolution: { - integrity: sha512-xbWTHkYI64u14p3yhAlljVpF4L3qbg/YZvG4rFp/+KaUCcFJZyIJhOjCfUAbHHl9dD+74cvb2Uy0ZW6424nB2Q== + integrity: sha512-0o0nkggKYwjx60Ge7GGuJp2jJGwGW9LlAOZEVPTMRG8b/uSzMNLHyCChKeakRO4z7tiopJM6o9Y8sfbDM/nKpA== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-autoformat/35.3.2: + /@ckeditor/ckeditor5-autoformat/35.4.0: resolution: { - integrity: sha512-ZSL2JfbAITu6BKbQBxNf0YEFcx5d94JcvbiuZiEhDf/W9GjLQ/M1RgWo9/5ze1qEDBPwa4euf2xX6d3kDIINag== + integrity: sha512-4vAOaoiziR2XN8KmismiBiknCeOYKtskW8yQnSrFWUX3Fkok3KrHaRFr48AbIN4pHI2xTMKPLeMLeRtZd8tTVw== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-basic-styles/35.3.2: + /@ckeditor/ckeditor5-basic-styles/35.4.0: resolution: { - integrity: sha512-AIB94555CxlZDCpATYzF3o+Jvx4Wm/OVbMT4Z1TCcoRHS0AjmCR2ZaeQvw+RCoNhYim+O0oQwgDwfkjJsaXNCw== + integrity: sha512-6JkoplYMwIHN1E/w3DoY0i95B41sbGwsNAtlvx6qaBvNKkLu4rRCtiBUJDnx8qZxxQXHih5ZOw8bUQHl4mt8hw== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-block-quote/35.3.2: + /@ckeditor/ckeditor5-block-quote/35.4.0: resolution: { - integrity: sha512-6hBQ5+ltGxuYfg6mKjbk9PoHHkLAFAy7xCxQA9UeCD8rVI//ELTfTQAY/VBhzdNE6vhcSrnrxajZCFxANLTFrQ== + integrity: sha512-AXoJhSVwl/RSelmxqxMcLq0VUXubjEvMc32xvF6CyUkc/vlSkZec6noznXyVo0P5TXOxsFbzwFAdBOSFTFjD+A== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-build-balloon/35.3.2: + /@ckeditor/ckeditor5-build-balloon/35.4.0: resolution: { - integrity: sha512-TgrPgnIilxcAuiHHAGhLxSqyFm7SHv5zy1nyFug3Yt0Kj6ULB/K3S2TldFtnnYkq88tHRcKym2lsE2X8BEQm6w== + integrity: sha512-32lyoZvNM9fxq8XzLeE+O18HAfruOFtaEdK/p69Ik3rOzRpsvcK4ne4W8dye3hzUaBfF7qLXUbIr9st7c/UugQ== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-adapter-ckfinder': 35.3.2 - '@ckeditor/ckeditor5-autoformat': 35.3.2 - '@ckeditor/ckeditor5-basic-styles': 35.3.2 - '@ckeditor/ckeditor5-block-quote': 35.3.2 - '@ckeditor/ckeditor5-ckbox': 35.3.2 - '@ckeditor/ckeditor5-ckfinder': 35.3.2 - '@ckeditor/ckeditor5-cloud-services': 35.3.2 - '@ckeditor/ckeditor5-easy-image': 35.3.2 - '@ckeditor/ckeditor5-editor-balloon': 35.3.2 - '@ckeditor/ckeditor5-essentials': 35.3.2 - '@ckeditor/ckeditor5-heading': 35.3.2 - '@ckeditor/ckeditor5-image': 35.3.2 - '@ckeditor/ckeditor5-indent': 35.3.2 - '@ckeditor/ckeditor5-link': 35.3.2 - '@ckeditor/ckeditor5-list': 35.3.2 - '@ckeditor/ckeditor5-media-embed': 35.3.2 - '@ckeditor/ckeditor5-paragraph': 35.3.2 - '@ckeditor/ckeditor5-paste-from-office': 35.3.2 - '@ckeditor/ckeditor5-table': 35.3.2 - '@ckeditor/ckeditor5-typing': 35.3.2 + '@ckeditor/ckeditor5-adapter-ckfinder': 35.4.0 + '@ckeditor/ckeditor5-autoformat': 35.4.0 + '@ckeditor/ckeditor5-basic-styles': 35.4.0 + '@ckeditor/ckeditor5-block-quote': 35.4.0 + '@ckeditor/ckeditor5-ckbox': 35.4.0 + '@ckeditor/ckeditor5-ckfinder': 35.4.0 + '@ckeditor/ckeditor5-cloud-services': 35.4.0 + '@ckeditor/ckeditor5-easy-image': 35.4.0 + '@ckeditor/ckeditor5-editor-balloon': 35.4.0 + '@ckeditor/ckeditor5-essentials': 35.4.0 + '@ckeditor/ckeditor5-heading': 35.4.0 + '@ckeditor/ckeditor5-image': 35.4.0 + '@ckeditor/ckeditor5-indent': 35.4.0 + '@ckeditor/ckeditor5-link': 35.4.0 + '@ckeditor/ckeditor5-list': 35.4.0 + '@ckeditor/ckeditor5-media-embed': 35.4.0 + '@ckeditor/ckeditor5-paragraph': 35.4.0 + '@ckeditor/ckeditor5-paste-from-office': 35.4.0 + '@ckeditor/ckeditor5-table': 35.4.0 + '@ckeditor/ckeditor5-typing': 35.4.0 dev: true - /@ckeditor/ckeditor5-ckbox/35.3.2: + /@ckeditor/ckeditor5-ckbox/35.4.0: resolution: { - integrity: sha512-+CFxfJbu0cYlgt2VVLcuMfEpt3VP3n6xVzi8fFFJAZAYy41qyNMWfYtPzL/NLVMQF2PKjt13YTSGyI1dd+1D/w== + integrity: sha512-kpEleQLsu3/nyvc46zkWBp3EvvxinnQfmwvi52h+FLbbI0TE0dxadRppQHZjHXd4yw29N6B1ePeMAVFRX1iYjQ== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-ckfinder/35.3.2: + /@ckeditor/ckeditor5-ckfinder/35.4.0: resolution: { - integrity: sha512-AGVshHFOE+Hd+PrjaoscEQeAj92LTRQkl/uXDLxsTDALV9VHm6bBzgCEYLDXf3e/k10Zxcnv6gNm3hi4FaOFMg== + integrity: sha512-PeA3PA1c1JGn9f+rZlnWHSuXUU4DjWU4oUp5tMWAtS8OV1srJ2DbU/+Z/WZHO4jmDMfQX9XmN5B/sdLvTQ7ZjQ== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-clipboard/35.3.2: + /@ckeditor/ckeditor5-clipboard/35.4.0: resolution: { - integrity: sha512-0l+dN8CrAHMC085mohVfolhOdGLvwky6HoYoAlxPMe8n3zCFgQtlcolmj3cA8qrO7OvFDSl2YrtWfg8mb+BeSA== + integrity: sha512-B6rIQxvOrHvO9TZRC8JA0wKk+IfN880UJkYIg1qlhf9HFNVjdVbtHaiCsPD+TzGmQN3XHXfNjgjabGRIn0iZmw== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-core': 35.3.2 - '@ckeditor/ckeditor5-engine': 35.3.2 - '@ckeditor/ckeditor5-utils': 35.3.2 - '@ckeditor/ckeditor5-widget': 35.3.2 + '@ckeditor/ckeditor5-core': 35.4.0 + '@ckeditor/ckeditor5-engine': 35.4.0 + '@ckeditor/ckeditor5-utils': 35.4.0 + '@ckeditor/ckeditor5-widget': 35.4.0 lodash-es: 4.17.21 dev: true - /@ckeditor/ckeditor5-cloud-services/35.3.2: + /@ckeditor/ckeditor5-cloud-services/35.4.0: resolution: { - integrity: sha512-IyGtuub+xtLixJ5iocY13deEAyeBR8vcR4mcDOCbXg6QH7zSRMmr7yuwtNf0tRAqbkMkKXNViS9cCsnxkPHf/w== + integrity: sha512-iavLfEKx0GVPMIyPnnOlD9TCVVLIrwp1dCQAfO3A7WUySiLBcC7ShJ+6Bm00CVQQE6VtrYOevrKN/RcRzImzHw== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-core/35.3.2: + /@ckeditor/ckeditor5-core/35.4.0: resolution: { - integrity: sha512-OnrHf9i0D79DdIMIE98A9x0y4XCxGItcOXcTHd9s+jWFMtiAvQ37vDGrqgDlHW646RBBF0GAmxrmP4F9HzEeMA== + integrity: sha512-Rf0H7C4inCj/YC8aii0cT7TC/IuBIQ+tXmu9qd8/1BJ/rz1MCHXtBPApjTbFp33OE3aOFB5+NUaKt05k/dL3OA== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-engine': 35.3.2 - '@ckeditor/ckeditor5-ui': 35.3.2 - '@ckeditor/ckeditor5-utils': 35.3.2 + '@ckeditor/ckeditor5-engine': 35.4.0 + '@ckeditor/ckeditor5-ui': 35.4.0 + '@ckeditor/ckeditor5-utils': 35.4.0 lodash-es: 4.17.21 dev: true - /@ckeditor/ckeditor5-easy-image/35.3.2: + /@ckeditor/ckeditor5-easy-image/35.4.0: resolution: { - integrity: sha512-91n/VMp7qnaas4/2S+TYHRACD62bEnGtb63MgPCZifHae1AaqQsn5t+eMCFlZ7tT2yKaQMNR0QBnbKLKS/QeqQ== + integrity: sha512-DRCQ/zh2Ul0f7RrSBG3WYKnZbrU2jj1RazX4qZM1b1WlM81y7+i+Rnp209JIT9TnlrTdYJy2EUY17YHughuyzA== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-editor-balloon/35.3.2: + /@ckeditor/ckeditor5-editor-balloon/35.4.0: resolution: { - integrity: sha512-xf8vgahKrFOFPk3Q35cRjAZ92VC/PJ0Tk6W2mZ0ARkxNfCWTbOIVRkD3oM3rSbP5lseeyY6vuZVExwjvzM0zOA== + integrity: sha512-xKnqB6vl5DXDS25AOWxBTsAeOqtIeW1m4iOn+ZFqCNBsoVcw1Z7B4mnryYgioVhyf0JHnMm+AigsH/uUPOLbNQ== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 lodash-es: 4.17.21 dev: true - /@ckeditor/ckeditor5-engine/35.3.2: + /@ckeditor/ckeditor5-engine/35.4.0: resolution: { - integrity: sha512-/H20Y6VlYxRyNiorRXF3VtbykQqgo+RbhMfzRQasC9TdrFyRaC3HW67Kq5bjeKoeoZweEM6Dziy8pnrMZlhecg== + integrity: sha512-67QKtUGJeLM072h9qURvzczYGU3ecuxR9LLmM4dffnV+PBNQ9e8RDCY7PuuEP0pplmAUI6/XqoZJIbk6h7ZV3Q== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-utils': 35.3.2 + '@ckeditor/ckeditor5-utils': 35.4.0 lodash-es: 4.17.21 dev: true - /@ckeditor/ckeditor5-enter/35.3.2: + /@ckeditor/ckeditor5-enter/35.4.0: resolution: { - integrity: sha512-9bm4TbyIUu880FFVkNRUqSOYOs5R37CIB8BQZqV2T7cOI7L4RT0+hyXu+Zmg844WSD/+GtAZ+y0FlSi50Ze6oA== + integrity: sha512-y95RnA/Gw72e220PJKVwNbwPzX4SRs82/rXu1jVyJXty7CcEZqqfyRtW6odICAXr5eKI5XKgzFgpFYULL3D9Nw== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-core': 35.3.2 - '@ckeditor/ckeditor5-engine': 35.3.2 + '@ckeditor/ckeditor5-core': 35.4.0 + '@ckeditor/ckeditor5-engine': 35.4.0 dev: true - /@ckeditor/ckeditor5-essentials/35.3.2: + /@ckeditor/ckeditor5-essentials/35.4.0: resolution: { - integrity: sha512-zgVqqkq+747mdYPEuQoH8xmNVmPv6sdcz5B8WBWFYrjriD4kvQIfD611osJ2k8Y2hNozpzAXXYPiZOa1UKPJ+w== + integrity: sha512-tTtTb4NYSQi99LPDzAVUnFhW6iTqSuaylkg0XnDvO2lVR3tAA27gOOjGqc8Ri9NMGGeZkFTvXpnVkXkFnDP2nQ== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-heading/35.3.2: + /@ckeditor/ckeditor5-heading/35.4.0: resolution: { - integrity: sha512-cJ9iL875yd8kQ7XlzcrT1qP4RZBgkydhWT7ERVJtctvHBVARd0rOpzpax3w2eCVwufO0fQcjh154u3IHREKb/w== + integrity: sha512-cZwKzAg0USxaDZstQXKMkzrE+fOEr+6YFtXpHGrKgsaisI9xkuOWD40dZvLovTmENLGPopDkdfGewj8jscB9Kg== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-image/35.3.2: + /@ckeditor/ckeditor5-image/35.4.0: resolution: { - integrity: sha512-9rTVH3rZviXNgXCkutMg9Td6i9DIInp8JaRlNBOuIMc0iEjD+VEAIZ4eUMIMXeTeXF5jyNMcqbTSK/DwN1LAgg== + integrity: sha512-SQ+IiIB6SLhdhVy3gRKxxfBXpLikInvaP3ILOvPQlaC0Bt5ciJ3t/180zCBlbCvvRwIQNo4bYbZc5cI8UBIAaA== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-ui': 35.3.2 - ckeditor5: 35.3.2 + '@ckeditor/ckeditor5-ui': 35.4.0 + ckeditor5: 35.4.0 lodash-es: 4.17.21 dev: true - /@ckeditor/ckeditor5-indent/35.3.2: + /@ckeditor/ckeditor5-indent/35.4.0: resolution: { - integrity: sha512-0oiaDLcNTWVt8lXJFi25rZqKe/VQ4ZULeNc/mgm6W17N+3Ua0uAqORFVEJcccn6QDwmiyMP9LJp2k59e1VE97A== + integrity: sha512-FNp5S6t/RlY4eARR4E/jzxqjAbsGMa+30ZKS9maTOCx0TDmvmjD0jvZc9+1fe/KzSBk9wtmHYOil1J+W66rKvw== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-link/35.3.2: + /@ckeditor/ckeditor5-link/35.4.0: resolution: { - integrity: sha512-NM44sefnoHeXyUAETHgP4TywLWlSnS2HQaxSHF74EhB3sDNRE+GXiY8DHRd+pMWHvGksOhz9OJMgMIl8wnsRvQ== + integrity: sha512-aqHFwlnGyjW/fp/fklD1VupYLsfbvSwsh9RFGIdgJL4TuWnlhxR5JXCOAKyZtvCWpdyuKyqzEB8EV0NQAa+OMg== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-ui': 35.3.2 - ckeditor5: 35.3.2 + '@ckeditor/ckeditor5-ui': 35.4.0 + ckeditor5: 35.4.0 lodash-es: 4.17.21 dev: true - /@ckeditor/ckeditor5-list/35.3.2: + /@ckeditor/ckeditor5-list/35.4.0: resolution: { - integrity: sha512-PQ6DoINXkefhboEPF92TdjebItvza6dXemIbDwEwC9RhXL73IEsiqnTB5ThHobKNXhZJo+gGBlVHD2WzKMUwiQ== + integrity: sha512-fPENWzEicpoXZsDmGR6EiR/j3Z4Q3KYAsBMsmWf8YwUlbM/hERt+V3yIB+LKdGQKbFrL6CWOA1JBB4tmmwd50A== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-ui': 35.3.2 - ckeditor5: 35.3.2 + '@ckeditor/ckeditor5-ui': 35.4.0 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-media-embed/35.3.2: + /@ckeditor/ckeditor5-media-embed/35.4.0: resolution: { - integrity: sha512-2dHD0hYFOAp9DW3OE68wWFrmvZkI8cBzpYkSWmMzhRnRBzh/RMQCgKXjriYw5eCRX8pDnpjdRD0Wmi8a1BABAw== + integrity: sha512-So+BYkI82pdIGP2VQ+b+gstEOnHLHA9yBX94pTJM9eW1O+ZTPMR1t2wJFFmEbCjQUYDVC8SdGUGaOb1gaeVXiw== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-ui': 35.3.2 - ckeditor5: 35.3.2 + '@ckeditor/ckeditor5-ui': 35.4.0 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-paragraph/35.3.2: + /@ckeditor/ckeditor5-paragraph/35.4.0: resolution: { - integrity: sha512-1t0cEio8fW28pSw1J2kFKH6N7aiwx7H9NQ+GSfCufeSZcI/PUs+oWfehLcNswrdD4M77o+AZrc3BYrmxQYSLOw== + integrity: sha512-8nhkEEFv1WClhH6q/HW8P596d+dlatSVc46kQ2+jGlYirL8P66tV/nK+OiE8z1d897oVr4QPGsqk2qGkRFUChw== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-core': 35.3.2 - '@ckeditor/ckeditor5-ui': 35.3.2 - '@ckeditor/ckeditor5-utils': 35.3.2 + '@ckeditor/ckeditor5-core': 35.4.0 + '@ckeditor/ckeditor5-ui': 35.4.0 + '@ckeditor/ckeditor5-utils': 35.4.0 dev: true - /@ckeditor/ckeditor5-paste-from-office/35.3.2: + /@ckeditor/ckeditor5-paste-from-office/35.4.0: resolution: { - integrity: sha512-CHmhw9/deTS3o+4NqIEL41Yd2WXqP3z4VYR4DHZGK6iI2DKTrLcHU/ofz8fQHnU/7JqtiiZpPlZLnGRr3Yq6+Q== + integrity: sha512-Uav1z9t52+qcu1axykcZ/NeH7JnURuZF9l0o+Pq/sNg3zjzVqB92V5cvFXg9hXeod8LzxlNLHy1BR8ZWTHeKHQ== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 dev: true - /@ckeditor/ckeditor5-select-all/35.3.2: + /@ckeditor/ckeditor5-select-all/35.4.0: resolution: { - integrity: sha512-MFfYGmXL1myexvXJyiFWI2eieEP2UcAmtyTE3NnFd3xV8dSVd59NRKT0gMQJFjVU/zflQCmNOqYYTGxpg7CROQ== + integrity: sha512-c+pIIY77SP6ux4/cyD7cCrllQAqtFVSnzNYdy7ygNPqljCGngCnpSV9xfCO/blFo6/zx2vsmzVGdRq3ArzGoMg== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-core': 35.3.2 - '@ckeditor/ckeditor5-ui': 35.3.2 - '@ckeditor/ckeditor5-utils': 35.3.2 + '@ckeditor/ckeditor5-core': 35.4.0 + '@ckeditor/ckeditor5-ui': 35.4.0 + '@ckeditor/ckeditor5-utils': 35.4.0 dev: true - /@ckeditor/ckeditor5-table/35.3.2: + /@ckeditor/ckeditor5-table/35.4.0: resolution: { - integrity: sha512-BFY8NL6QBYQMjEWwtwTZSeE7QEfrTgbSAP7Ndxh+SshEgGNbH4D6ZaiC1A1OYb/ABqe+g7LXpG/O+2nGM9YkxA== + integrity: sha512-u2g3CIqXO7ByrfFVqlHagPssta8hd/zSE37CjFuylc5KYVmMxcuh3TiFirKaladH92/3gjfnf+GWEC5X14mA8w== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - ckeditor5: 35.3.2 + ckeditor5: 35.4.0 lodash-es: 4.17.21 dev: true - /@ckeditor/ckeditor5-theme-lark/35.3.2: + /@ckeditor/ckeditor5-theme-lark/35.4.0: resolution: { - integrity: sha512-3YZXJXUnX90A9Ju4fth9zVki2yDhTGRCCzZGKseM7BdJU7Drc8caQh5vTKjN8g9t4xZKCPsGPaeZ2Jk5Wd1f3Q== + integrity: sha512-cf6pJN96KwKrs3KIvxrKR9pGMH2/I6MAFMyliN7O1MbauKeyC6cjwui41Yan10cWwpm6a6PeadyRbwQPa9HUaw== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-ui': 35.3.2 + '@ckeditor/ckeditor5-ui': 35.4.0 dev: true - /@ckeditor/ckeditor5-typing/35.3.2: + /@ckeditor/ckeditor5-typing/35.4.0: resolution: { - integrity: sha512-cu5gSAKGHAUdKVA1p8NBppoBuQSbDFdTaBFE51ske+RQhFpMBQVyHzgxfsXb/Ui7f3fDw91eJLg8MtrChvDPsA== + integrity: sha512-Ad/PHWbVWcnAj9oevkkfLqf6CmvCFOti466uhvfOCKRNVf2+/xuGwleOGr8W6Lir/x/qav7ojFjKPKDxqbPXhA== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-core': 35.3.2 - '@ckeditor/ckeditor5-engine': 35.3.2 - '@ckeditor/ckeditor5-utils': 35.3.2 + '@ckeditor/ckeditor5-core': 35.4.0 + '@ckeditor/ckeditor5-engine': 35.4.0 + '@ckeditor/ckeditor5-utils': 35.4.0 lodash-es: 4.17.21 dev: true - /@ckeditor/ckeditor5-ui/35.3.2: + /@ckeditor/ckeditor5-ui/35.4.0: resolution: { - integrity: sha512-0NlDVRsC9H9dx9I54reolXp2O/4a31aV7vhubiIzVVNiHkOxzfUSNnzhOzeMP7pej6ZYt/jTqCtv0qy+35ByOQ== + integrity: sha512-0SmYE+k1cYQPqyw2rQsPDV/RpudneBh1bNfiaTOz+rqViJIMe+TxiuK6Fz+znNZ05s0exr+ZHWvMttGqlVoQNw== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-core': 35.3.2 - '@ckeditor/ckeditor5-utils': 35.3.2 + '@ckeditor/ckeditor5-core': 35.4.0 + '@ckeditor/ckeditor5-utils': 35.4.0 lodash-es: 4.17.21 dev: true - /@ckeditor/ckeditor5-undo/35.3.2: + /@ckeditor/ckeditor5-undo/35.4.0: resolution: { - integrity: sha512-1vjIytAE/VhCGrN3IrhEJHURrPHYxtBzUEgDWPwvGZhML8vG9+4PtEvfUF3+rDiI5c6CkcJ77phPIM6KM9z4ow== + integrity: sha512-0RhsK0f/pX/7KB/JXYTLiDOswmUTQ9EKIIuewAwr7LTsBf4Q309FZSFdbeTmc0wIyX33212Xh5xsi3LyG1VJRg== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-core': 35.3.2 - '@ckeditor/ckeditor5-engine': 35.3.2 - '@ckeditor/ckeditor5-ui': 35.3.2 + '@ckeditor/ckeditor5-core': 35.4.0 + '@ckeditor/ckeditor5-engine': 35.4.0 + '@ckeditor/ckeditor5-ui': 35.4.0 dev: true - /@ckeditor/ckeditor5-upload/35.3.2: + /@ckeditor/ckeditor5-upload/35.4.0: resolution: { - integrity: sha512-/xq5foAuf+3xWDlzm3qLloEAVVYGlJ92LFyrMSmw3Kzu8Cu/yQR8wRscgXLQWa1MpzasYLl09N0hxBi9evtx7Q== + integrity: sha512-+eJAluAc4mAFmx5FNuSGjkCYmbm0V9NpSleubAXEx2e+KNiLarPAnsolwRaAcYXcloNp4C9/l0D+lPEx7VRYtg== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-core': 35.3.2 - '@ckeditor/ckeditor5-ui': 35.3.2 - '@ckeditor/ckeditor5-utils': 35.3.2 + '@ckeditor/ckeditor5-core': 35.4.0 + '@ckeditor/ckeditor5-ui': 35.4.0 + '@ckeditor/ckeditor5-utils': 35.4.0 dev: true - /@ckeditor/ckeditor5-utils/35.3.2: + /@ckeditor/ckeditor5-utils/35.4.0: resolution: { - integrity: sha512-iw2361Ek9K8Dqu8JI60DcijSsDzHMZVCNiwxBCxDEywmEKod5hENwnwZvQM+C0CWBmshQCAXhy/dJ1YWTvGrsg== + integrity: sha512-sFjbb+1VYdLbELDLWVYk86WzVN7Lo3sXHbVhdr8+kc0Ufxdr3mTFHDAkiymFt2fs1FOB5gZyWJlJU+EeJnhKUw== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: lodash-es: 4.17.21 dev: true - /@ckeditor/ckeditor5-widget/35.3.2: + /@ckeditor/ckeditor5-widget/35.4.0: resolution: { - integrity: sha512-68T4X6hx9wKC8W5FZ1fcREFQu3O5GDRECZjSZ7xpPZU42ahzeolRVmGFeeRVl2ZgMMVp1YdE2tU4rXFQ8Uwk7Q== + integrity: sha512-SNYOXXWu7XV1BZET+ar0Cea25836vzNtUqXlDPwBx/jrmK86b8GMbFR99P2bUG0NvtIsH5cSk7XCmnxb4ZQ6wA== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-core': 35.3.2 - '@ckeditor/ckeditor5-engine': 35.3.2 - '@ckeditor/ckeditor5-enter': 35.3.2 - '@ckeditor/ckeditor5-typing': 35.3.2 - '@ckeditor/ckeditor5-ui': 35.3.2 - '@ckeditor/ckeditor5-utils': 35.3.2 + '@ckeditor/ckeditor5-core': 35.4.0 + '@ckeditor/ckeditor5-engine': 35.4.0 + '@ckeditor/ckeditor5-enter': 35.4.0 + '@ckeditor/ckeditor5-typing': 35.4.0 + '@ckeditor/ckeditor5-ui': 35.4.0 + '@ckeditor/ckeditor5-utils': 35.4.0 lodash-es: 4.17.21 dev: true - /@esbuild/android-arm/0.15.16: + /@esbuild/android-arm/0.16.8: resolution: { - integrity: sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ== + integrity: sha512-r/qxYWkC3gY+Uq24wZacAUevGGb6d7d8VpyO8R0HGg31LXVi+eUr8XxHLCcmVzAjRjlZsZfzPelGpAKP/DafKg== } engines: { node: '>=12' } cpu: [arm] @@ -554,10 +560,118 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.15.16: + /@esbuild/android-arm64/0.16.8: resolution: { - integrity: sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ== + integrity: sha512-TGQM/tdy5EV1KoFHu0+cMrKvPR8UBLGEfwS84PTCJ07KVp21Fr488aFEL2TCamz9CxoF1np36kY6XOSdLncg2Q== + } + engines: { node: '>=12' } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.16.8: + resolution: + { + integrity: sha512-HtA4BNfrf5Nyoz3G2IS3qW4A0yckPJ1NjCMA3SiOw3zS1IfpMkbepDGp/Gdokc/tASFd38IP2uIL3W6bHJzAQw== + } + engines: { node: '>=12' } + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.16.8: + resolution: + { + integrity: sha512-Ks8K1HGFf6LEjLnnVqB/zyaJcv7zMjbJ9txRZAwQwj+bzg8/AP0TmLBMJf9Ahwn6ATnHrhORtpydP8A/mNthXg== + } + engines: { node: '>=12' } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.16.8: + resolution: + { + integrity: sha512-XXh2070hatspZdG/uPqyHLFlHlGbytvT4JlqZuTU3AizcyOvmatPBSnuARvwCtJMw30wjjehcYY8DWPZ5UF2og== + } + engines: { node: '>=12' } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.16.8: + resolution: + { + integrity: sha512-6DJuU3+tG9LcHCG/4K3e0AnqmmKWhUc9WDNIhLHOOdleafXwZeFvsqwfyaowNg9yUw5KipRLvV3JJMQ8kT1aPg== + } + engines: { node: '>=12' } + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.16.8: + resolution: + { + integrity: sha512-UcsCaR25C0tZWnoImprPzr7vMEMjLImlTQAIfWXU2wvjF4gBWKO9GEH2JlsKYqBjfWfGgH+HHoGSF/evZbKyxA== + } + engines: { node: '>=12' } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm/0.16.8: + resolution: + { + integrity: sha512-Hn36NbKd6Prh0Ehv1A2ObjfXtN2g81jTpmq1+uRLHrW7CJW+W8GdVgOCVwyeupADUIOOa8bars6IZGcjkwq21w== + } + engines: { node: '>=12' } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.16.8: + resolution: + { + integrity: sha512-WTL1v/OhSxgE7rEELRFNWskym0e+hKDMl4JZs7jpQp7218yJPOjdOEWsbzVEYv4G1cbbtWFvp9DtaAONtdCW5w== + } + engines: { node: '>=12' } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.16.8: + resolution: + { + integrity: sha512-Jt+8YBFR2Pk68oS7E9z9PtmgJrDonGdEW3Camb2plZcztKpu/OxfnxFu8f41+TYpKhzUDm5uNMwqxRH3yDYrsQ== + } + engines: { node: '>=12' } + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.16.8: + resolution: + { + integrity: sha512-P+5J/U/WwPEwcKOFTlTQBK6Gqw4OytpfBvR2V+kBRb5jujwMOQ1aG8iKX14DAwCLks1YHXrXPwXXDPNWEWC59A== } engines: { node: '>=12' } cpu: [loong64] @@ -566,17 +680,149 @@ packages: dev: true optional: true - /@eslint/eslintrc/1.3.3: + /@esbuild/linux-mips64el/0.16.8: resolution: { - integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== + integrity: sha512-RDSnljcka9UkVxcLtWv2lG5zcqkZUxIPY47ZSKytv4aoo8b05dH1gnKVWrxBZ+owp3dX48s2lXm6zp3hZHl8qw== + } + engines: { node: '>=12' } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.16.8: + resolution: + { + integrity: sha512-fNGvIKXyigXYhSflraBsqR/EBhXhuH0/0r7IpU+3reh+8yX3VjowjC/dwmqHDOSQXbcj+HJb1o9kWYi+fJQ/3g== + } + engines: { node: '>=12' } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.16.8: + resolution: + { + integrity: sha512-CsE1IKyVq/Y55PDnBUvm/e7XfvBgfb5kZxHbIEdmB9xt6cTcBkaVvv8EwLDZuYPkYI60WGl0UwyYYx9B2LLgkg== + } + engines: { node: '>=12' } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.16.8: + resolution: + { + integrity: sha512-k8RIN4M+GWQAfJ/oGqwxZlpzOyGF8mxp5mH1A1WUJrpSUo4pe0zkq2EoP1KMQbYkjeJi45YsjwK3IOnSoueXbA== + } + engines: { node: '>=12' } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.16.8: + resolution: + { + integrity: sha512-u0hOo4E9PKyVDmPgJNeip1Tg63wxq+3KBJZKQFblqCl+d5N7n1h7pFwdN5ZzeLaaE645ep8aXzf76ndGnyOypg== + } + engines: { node: '>=12' } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.16.8: + resolution: + { + integrity: sha512-wtENU7TOrnEbUes9aQuNe5PeBM4cTK5dn1W7v6XCr1LatJxAOn6Jn8yDGRsa2uKeEbAS5HeYx7uBAbTBd98OXQ== + } + engines: { node: '>=12' } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64/0.16.8: + resolution: + { + integrity: sha512-Y0DRVd/PIiutCpAYvRZHkpDNN3tdSQ1oyKy6xoh5TFTElAmzdlO7CO8ABs8689gq47lJ466cQEq9adJrKXrgXg== + } + engines: { node: '>=12' } + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.16.8: + resolution: + { + integrity: sha512-eKg0I3C5z4NTF396Yo9QByXA8DdRS7QiYPFf6JHcED0BanyLW/jX8csUy96wyGivTNrmU0mCOShbeLgzb0eX7w== + } + engines: { node: '>=12' } + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.16.8: + resolution: + { + integrity: sha512-M2BZhsa7z8kMGre96HTMXpm266cfJkbdtcZgVfAL8hY4ptkh5MwNDasl85CDo++ffW2issVT+W/xIGJOr0v2pg== + } + engines: { node: '>=12' } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.16.8: + resolution: + { + integrity: sha512-mzzHVpnuHQT+IrptiW+uUswEMpVIueYuAkjwt1m4tQuVq9dGWqCA1y9EE+W3S19nMg6JvHMbaRjv3mlCcmi0rA== + } + engines: { node: '>=12' } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.16.8: + resolution: + { + integrity: sha512-Zgzyn7njXpSSe1YGQk03eW4uei4QoZKloe/TBQZXgQHo6ul/ux0BtYdLz3MZ8WDlvqTG3QnLV4+gtV5ordM0+g== + } + engines: { node: '>=12' } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@eslint/eslintrc/1.4.0: + resolution: + { + integrity: sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.4.1 - globals: 13.18.0 + globals: 13.19.0 ignore: 5.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -637,10 +883,10 @@ packages: } dev: true - /@humanwhocodes/config-array/0.11.7: + /@humanwhocodes/config-array/0.11.8: resolution: { - integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw== + integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== } engines: { node: '>=10.10.0' } dependencies: @@ -782,7 +1028,7 @@ packages: engines: { node: '>= 8' } dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.13.0 + fastq: 1.14.0 dev: true /@polka/url/1.0.0-next.21: @@ -799,10 +1045,10 @@ packages: } dev: true - /@rollup/plugin-commonjs/23.0.3_rollup@2.79.1: + /@rollup/plugin-commonjs/23.0.7_rollup@3.7.5: resolution: { - integrity: sha512-31HxrT5emGfTyIfAs1lDQHj6EfYxTXcwtX5pIIhq+B/xZBNIqQ179d/CkYxlpYmFCxT78AeU4M8aL8Iv/IBxFA== + integrity: sha512-hsSD5Qzyuat/swzrExGG5l7EuIlPhwTsT7KwKbSCQzIcJWjRxiimi/0tyMYY2bByitNb3i1p+6JWEDGa0NvT0Q== } engines: { node: '>=14.0.0' } peerDependencies: @@ -811,16 +1057,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@2.79.1 + '@rollup/pluginutils': 5.0.2_rollup@3.7.5 commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.0.3 is-reference: 1.2.1 - magic-string: 0.26.7 - rollup: 2.79.1 + magic-string: 0.27.0 + rollup: 3.7.5 dev: true - /@rollup/plugin-json/5.0.2_rollup@2.79.1: + /@rollup/plugin-json/5.0.2_rollup@3.7.5: resolution: { integrity: sha512-D1CoOT2wPvadWLhVcmpkDnesTzjhNIQRWLsc3fA49IFOP2Y84cFOOJ+nKGYedvXHKUsPeq07HR4hXpBBr+CHlA== @@ -832,11 +1078,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@2.79.1 - rollup: 2.79.1 + '@rollup/pluginutils': 5.0.2_rollup@3.7.5 + rollup: 3.7.5 dev: true - /@rollup/plugin-node-resolve/15.0.1_rollup@2.79.1: + /@rollup/plugin-node-resolve/15.0.1_rollup@3.7.5: resolution: { integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg== @@ -848,16 +1094,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2_rollup@2.79.1 + '@rollup/pluginutils': 5.0.2_rollup@3.7.5 '@types/resolve': 1.20.2 deepmerge: 4.2.2 is-builtin-module: 3.2.0 is-module: 1.0.0 resolve: 1.22.1 - rollup: 2.79.1 + rollup: 3.7.5 dev: true - /@rollup/pluginutils/5.0.2_rollup@2.79.1: + /@rollup/pluginutils/5.0.2_rollup@3.7.5: resolution: { integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== @@ -872,66 +1118,89 @@ packages: '@types/estree': 1.0.0 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 2.79.1 + rollup: 3.7.5 dev: true - /@sentry/browser/7.23.0: + /@sentry/browser/7.27.0: resolution: { - integrity: sha512-2/dLGOSaM5AvlRdMgYxDyxPxkUUqYyxF7QZ0NicdIXkKXa0fM38IdibeXrE8XzC7rF2B7DQZ6U7uDb1Yry60ig== + integrity: sha512-6z+q+omLqmdEvy+9i4j7xzIT6zgmWJnXqEiLCURnE34KsPq6wr6Nij1XHsTlApMcohOpPlo+C3nMTmz+oYUf5w== } engines: { node: '>=8' } dependencies: - '@sentry/core': 7.23.0 - '@sentry/types': 7.23.0 - '@sentry/utils': 7.23.0 + '@sentry/core': 7.27.0 + '@sentry/replay': 7.27.0_@sentry+browser@7.27.0 + '@sentry/types': 7.27.0 + '@sentry/utils': 7.27.0 tslib: 1.14.1 dev: true - /@sentry/core/7.23.0: + /@sentry/core/7.27.0: resolution: { - integrity: sha512-oNLGsscSdMs1urCbpwe868NsoJWyeTOQXOm5w2e78yE7G6zm2Ra473NQio3lweaEvjQgSGpFyEfAn/3ubZbtPw== + integrity: sha512-9WkHMllGNOr6S55N2HKJYJj/2mog5Kv6mjruqlcHHPSgcKFA8bjwBXJTghy6UzwtGd14cyS/X7h5AVUkvuXTMw== } engines: { node: '>=8' } dependencies: - '@sentry/types': 7.23.0 - '@sentry/utils': 7.23.0 + '@sentry/types': 7.27.0 + '@sentry/utils': 7.27.0 tslib: 1.14.1 dev: true - /@sentry/tracing/7.23.0: + /@sentry/replay/7.27.0_@sentry+browser@7.27.0: resolution: { - integrity: sha512-sbwvf6gjLgUTkBwZQOV7RkZPah7KnnpeVcwnNl+vigq6FNgNtejz53FFCo6t4mNGZSerfWbEy/c3C1LMX9AaXw== + integrity: sha512-Db1TBx4JZWWbsAXSzWfAE55d4ekpPspZheyF66j84xq8jaFxgmlMMO7wBD8P7CHuQ6VUkgwa4glMkcamj/sfSg== + } + engines: { node: '>=12' } + peerDependencies: + '@sentry/browser': '>=7.24.0' + dependencies: + '@sentry/browser': 7.27.0 + '@sentry/core': 7.27.0 + '@sentry/types': 7.27.0 + '@sentry/utils': 7.27.0 + dev: true + + /@sentry/tracing/7.27.0: + resolution: + { + integrity: sha512-lxAiGAajbZgZkaViwYuxavbu/c8JUp56XOYzSAi7Km9jGnTFLNF4JCoyG0INy7lXipFJiWSd0Xq3aej0Lb+Cvg== } engines: { node: '>=8' } dependencies: - '@sentry/core': 7.23.0 - '@sentry/types': 7.23.0 - '@sentry/utils': 7.23.0 + '@sentry/core': 7.27.0 + '@sentry/types': 7.27.0 + '@sentry/utils': 7.27.0 tslib: 1.14.1 dev: true - /@sentry/types/7.23.0: + /@sentry/types/7.27.0: resolution: { - integrity: sha512-fZ5XfVRswVZhKoCutQ27UpIHP16tvyc6ws+xq+njHv8Jg8gFBCoOxlJxuFhegD2xxylAn1aiSHNAErFWdajbpA== + integrity: sha512-vapN3jchu3/WEMWQkrCOy2XDlOLj0l7IewYXKMr15Q21dlfM1QZMigU/r5rtYj5L8a2ISIHx+cRECxX5UIKH7w== } engines: { node: '>=8' } dev: true - /@sentry/utils/7.23.0: + /@sentry/utils/7.27.0: resolution: { - integrity: sha512-ad/XXH03MfgDH/7N7FjKEOVaKrfQWdMaE0nCxZCr2RrvlitlmGQmPpms95epr1CpzSU3BDRImlILx6+TlrXOgg== + integrity: sha512-8e5cmjbeuxETPxPEymyyGEYlBbJO1IMveTlcxkTFySPU6nNz2oAIiqPVHv2QgFJJvRv79/i/4Tyl5gFMOW0+AA== } engines: { node: '>=8' } dependencies: - '@sentry/types': 7.23.0 + '@sentry/types': 7.27.0 tslib: 1.14.1 dev: true + /@simplewebauthn/browser/6.2.2: + resolution: + { + integrity: sha512-VUtne7+s6BmW4usnbitjZEI1VNT/PNh6bYg+AI4OMdfpo5z+yAq+6iVAWBJlIUGVk5InetEQvTUp6OefBam8qg== + } + dev: true + /@socket.io/component-emitter/3.1.0: resolution: { @@ -939,80 +1208,82 @@ packages: } dev: true - /@sveltejs/adapter-auto/1.0.0-next.90: + /@sveltejs/adapter-auto/1.0.0_@sveltejs+kit@1.0.1: resolution: { - integrity: sha512-qxH46Oqqn40998wTmnbffONI0HcW/kiZ3OIjZoysjONne+LU4uEsG425MZ2RHDxmR04zxhsdjCAsn6B4du8D7w== + integrity: sha512-yKyPvlLVua1bJ/42FrR3X041mFGdB4GzTZOAEoHUcNBRE5Mhx94+eqHpC3hNvAOiLEDcKfVO0ObyKSu7qldU+w== } + peerDependencies: + '@sveltejs/kit': ^1.0.0 dependencies: + '@sveltejs/kit': 1.0.1_svelte@3.55.0+vite@4.0.1 import-meta-resolve: 2.2.0 dev: true - /@sveltejs/adapter-node/1.0.0-next.101: + /@sveltejs/adapter-node/1.0.0_@sveltejs+kit@1.0.1: resolution: { - integrity: sha512-gtg/b0dbDvd5TvTRsmthFSd/q9Gd+hVuq6uP0XqYgRKKXJw0tr9kNlnDNJ8HQMueo5ccHHUmOQYGV1vGR2zG0A== + integrity: sha512-Q8an8CXEt5XlFbyT1NBM4xELNZD8xPVZfKCcgorCfPkeBP5ftDgPaK12JIokXA5koYJ54AJcNY4ams9TZ7yGxA== } + peerDependencies: + '@sveltejs/kit': ^1.0.0 dependencies: - '@rollup/plugin-commonjs': 23.0.3_rollup@2.79.1 - '@rollup/plugin-json': 5.0.2_rollup@2.79.1 - '@rollup/plugin-node-resolve': 15.0.1_rollup@2.79.1 - rollup: 2.79.1 + '@rollup/plugin-commonjs': 23.0.7_rollup@3.7.5 + '@rollup/plugin-json': 5.0.2_rollup@3.7.5 + '@rollup/plugin-node-resolve': 15.0.1_rollup@3.7.5 + '@sveltejs/kit': 1.0.1_svelte@3.55.0+vite@4.0.1 + rollup: 3.7.5 dev: true - /@sveltejs/kit/1.0.0-next.570_svelte@3.53.1+vite@3.2.4: + /@sveltejs/kit/1.0.1_svelte@3.55.0+vite@4.0.1: resolution: { - integrity: sha512-7CUoYidoWlKdTGxL/5RsPPkgGTb36TwFBnhSZmspHFeiIST5qQEXyzqicFk8+4M5qQhxvOZ0NuP8uy7Pc+xf/Q== + integrity: sha512-C41aCaDjA7xoUdsrc/lSdU1059UdLPIRE1vEIRRynzpMujNgp82bTMHkDosb6vykH6LrLf3tT2w2/5NYQhKYGQ== } - engines: { node: '>=16.14' } + engines: { node: ^16.14 || >=18 } hasBin: true requiresBuild: true peerDependencies: - svelte: ^3.44.0 - vite: ^3.2.0 + svelte: ^3.54.0 + vite: ^4.0.0 dependencies: - '@sveltejs/vite-plugin-svelte': 1.3.1_svelte@3.53.1+vite@3.2.4 + '@sveltejs/vite-plugin-svelte': 2.0.2_svelte@3.55.0+vite@4.0.1 '@types/cookie': 0.5.1 cookie: 0.5.0 devalue: 4.2.0 + esm-env: 1.0.0 kleur: 4.1.5 - magic-string: 0.26.7 + magic-string: 0.27.0 mime: 3.0.0 sade: 1.8.1 set-cookie-parser: 2.5.1 sirv: 2.0.2 - svelte: 3.53.1 + svelte: 3.55.0 tiny-glob: 0.2.9 - undici: 5.13.0 - vite: 3.2.4_sass@1.56.1 + undici: 5.14.0 + vite: 4.0.1_sass@1.57.0 transitivePeerDependencies: - - diff-match-patch - supports-color dev: true - /@sveltejs/vite-plugin-svelte/1.3.1_svelte@3.53.1+vite@3.2.4: + /@sveltejs/vite-plugin-svelte/2.0.2_svelte@3.55.0+vite@4.0.1: resolution: { - integrity: sha512-2Uu2sDdIR+XQWF7QWOVSF2jR9EU6Ciw1yWfYnfLYj8HIgnNxkh/8g22Fw2pBUI8QNyW/KxtqJUWBI+8ypamSrQ== + integrity: sha512-xCEan0/NNpQuL0l5aS42FjwQ6wwskdxC3pW1OeFtEKNZwRg7Evro9lac9HesGP6TdFsTv2xMes5ASQVKbCacxg== } engines: { node: ^14.18.0 || >= 16 } peerDependencies: - diff-match-patch: ^1.0.5 - svelte: ^3.44.0 - vite: ^3.0.0 - peerDependenciesMeta: - diff-match-patch: - optional: true + svelte: ^3.54.0 + vite: ^4.0.0 dependencies: debug: 4.3.4 deepmerge: 4.2.2 kleur: 4.1.5 - magic-string: 0.26.7 - svelte: 3.53.1 - svelte-hmr: 0.15.1_svelte@3.53.1 - vite: 3.2.4_sass@1.56.1 - vitefu: 0.2.2_vite@3.2.4 + magic-string: 0.27.0 + svelte: 3.55.0 + svelte-hmr: 0.15.1_svelte@3.55.0 + vite: 4.0.1_sass@1.57.0 + vitefu: 0.2.4_vite@4.0.1 transitivePeerDependencies: - supports-color dev: true @@ -1029,7 +1300,7 @@ packages: lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.2.4_postcss@8.4.19 + tailwindcss: 3.2.4_postcss@8.4.20 dev: true /@transloadit/prettier-bytes/0.0.7: @@ -1103,10 +1374,10 @@ packages: } dev: true - /@types/node/18.11.10: + /@types/node/18.11.16: resolution: { - integrity: sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ== + integrity: sha512-6T7P5bDkRhqRxrQtwj7vru+bWTpelgtcETAZEUSdq0YISKz8WKdoBukQLYQQ6DFHvU9JRsbFq0JH5C51X2ZdnA== } dev: true @@ -1117,6 +1388,15 @@ packages: } dev: true + /@types/qrcode/1.5.0: + resolution: + { + integrity: sha512-x5ilHXRxUPIMfjtM+1vf/GPTRWZ81nqscursm5gMznJeK9M0YnZ1c3bEvRLQ0zSSgedLx1J6MGL231ObQGGhaA== + } + dependencies: + '@types/node': 18.11.16 + dev: true + /@types/resolve/1.20.2: resolution: { @@ -1130,7 +1410,7 @@ packages: integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g== } dependencies: - '@types/node': 18.11.10 + '@types/node': 18.11.16 dev: true /@types/semver/7.3.13: @@ -1147,10 +1427,10 @@ packages: } dev: true - /@typescript-eslint/eslint-plugin/5.45.0_rzogma7jas7eybztjbadqqleea: + /@typescript-eslint/eslint-plugin/5.46.1_qtjn2brzzhu6l3ntqnv7ocqkwu: resolution: { - integrity: sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA== + integrity: sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: @@ -1161,12 +1441,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.45.0_tqvwk7sh3taph5wf7sr5z34mke - '@typescript-eslint/scope-manager': 5.45.0 - '@typescript-eslint/type-utils': 5.45.0_tqvwk7sh3taph5wf7sr5z34mke - '@typescript-eslint/utils': 5.45.0_tqvwk7sh3taph5wf7sr5z34mke + '@typescript-eslint/parser': 5.46.1_7yp3msae2ah6x4svoyguc3s57e + '@typescript-eslint/scope-manager': 5.46.1 + '@typescript-eslint/type-utils': 5.46.1_7yp3msae2ah6x4svoyguc3s57e + '@typescript-eslint/utils': 5.46.1_7yp3msae2ah6x4svoyguc3s57e debug: 4.3.4 - eslint: 8.28.0 + eslint: 8.30.0 ignore: 5.2.1 natural-compare-lite: 1.4.0 regexpp: 3.2.0 @@ -1177,10 +1457,10 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.45.0_tqvwk7sh3taph5wf7sr5z34mke: + /@typescript-eslint/parser/5.46.1_7yp3msae2ah6x4svoyguc3s57e: resolution: { - integrity: sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ== + integrity: sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: @@ -1190,31 +1470,31 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.45.0 - '@typescript-eslint/types': 5.45.0 - '@typescript-eslint/typescript-estree': 5.45.0_typescript@4.7.4 + '@typescript-eslint/scope-manager': 5.46.1 + '@typescript-eslint/types': 5.46.1 + '@typescript-eslint/typescript-estree': 5.46.1_typescript@4.7.4 debug: 4.3.4 - eslint: 8.28.0 + eslint: 8.30.0 typescript: 4.7.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.45.0: + /@typescript-eslint/scope-manager/5.46.1: resolution: { - integrity: sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw== + integrity: sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: - '@typescript-eslint/types': 5.45.0 - '@typescript-eslint/visitor-keys': 5.45.0 + '@typescript-eslint/types': 5.46.1 + '@typescript-eslint/visitor-keys': 5.46.1 dev: true - /@typescript-eslint/type-utils/5.45.0_tqvwk7sh3taph5wf7sr5z34mke: + /@typescript-eslint/type-utils/5.46.1_7yp3msae2ah6x4svoyguc3s57e: resolution: { - integrity: sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q== + integrity: sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: @@ -1224,28 +1504,28 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.45.0_typescript@4.7.4 - '@typescript-eslint/utils': 5.45.0_tqvwk7sh3taph5wf7sr5z34mke + '@typescript-eslint/typescript-estree': 5.46.1_typescript@4.7.4 + '@typescript-eslint/utils': 5.46.1_7yp3msae2ah6x4svoyguc3s57e debug: 4.3.4 - eslint: 8.28.0 + eslint: 8.30.0 tsutils: 3.21.0_typescript@4.7.4 typescript: 4.7.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.45.0: + /@typescript-eslint/types/5.46.1: resolution: { - integrity: sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA== + integrity: sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dev: true - /@typescript-eslint/typescript-estree/5.45.0_typescript@4.7.4: + /@typescript-eslint/typescript-estree/5.46.1_typescript@4.7.4: resolution: { - integrity: sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ== + integrity: sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: @@ -1254,8 +1534,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.45.0 - '@typescript-eslint/visitor-keys': 5.45.0 + '@typescript-eslint/types': 5.46.1 + '@typescript-eslint/visitor-keys': 5.46.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1266,10 +1546,10 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.45.0_tqvwk7sh3taph5wf7sr5z34mke: + /@typescript-eslint/utils/5.46.1_7yp3msae2ah6x4svoyguc3s57e: resolution: { - integrity: sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA== + integrity: sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } peerDependencies: @@ -1277,26 +1557,26 @@ packages: dependencies: '@types/json-schema': 7.0.11 '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.45.0 - '@typescript-eslint/types': 5.45.0 - '@typescript-eslint/typescript-estree': 5.45.0_typescript@4.7.4 - eslint: 8.28.0 + '@typescript-eslint/scope-manager': 5.46.1 + '@typescript-eslint/types': 5.46.1 + '@typescript-eslint/typescript-estree': 5.46.1_typescript@4.7.4 + eslint: 8.30.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.28.0 + eslint-utils: 3.0.0_eslint@8.30.0 semver: 7.3.8 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.45.0: + /@typescript-eslint/visitor-keys/5.46.1: resolution: { - integrity: sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg== + integrity: sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dependencies: - '@typescript-eslint/types': 5.45.0 + '@typescript-eslint/types': 5.46.1 eslint-visitor-keys: 3.3.0 dev: true @@ -1467,7 +1747,7 @@ packages: } dev: true - /@uppy/svelte/3.0.1_ot4shbqcybtqaelnhvuxvmk24u: + /@uppy/svelte/3.0.1_zd5pxjxq5i7vlrqcggsxalsir4: resolution: { integrity: sha512-zIfW9zEWKYMI8N+sX9RHm5FW9a0CgezElsPfSfCm/kUb2GPx94O5TeEvMsvY6Si5fr+gXa6KM/1Q5LdwhJxQIQ== @@ -1485,7 +1765,7 @@ packages: '@uppy/drag-drop': 3.0.1_@uppy+core@3.0.4 '@uppy/progress-bar': 3.0.1_@uppy+core@3.0.4 '@uppy/status-bar': 3.0.1_@uppy+core@3.0.4 - svelte: 3.53.1 + svelte: 3.55.0 dev: true /@uppy/thumbnail-generator/3.0.2_@uppy+core@3.0.4: @@ -1635,7 +1915,7 @@ packages: engines: { node: '>=8' } dev: true - /autoprefixer/10.4.13_postcss@8.4.19: + /autoprefixer/10.4.13_postcss@8.4.20: resolution: { integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg== @@ -1646,11 +1926,11 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.21.4 - caniuse-lite: 1.0.30001435 + caniuse-lite: 1.0.30001439 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true @@ -1720,9 +2000,9 @@ packages: engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true dependencies: - caniuse-lite: 1.0.30001435 + caniuse-lite: 1.0.30001439 electron-to-chromium: 1.4.284 - node-releases: 2.0.6 + node-releases: 2.0.8 update-browserslist-db: 1.0.10_browserslist@4.21.4 dev: true @@ -1767,6 +2047,14 @@ packages: engines: { node: '>= 6' } dev: true + /camelcase/5.3.1: + resolution: + { + integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + } + engines: { node: '>=6' } + dev: true + /caniuse-api/3.0.0: resolution: { @@ -1774,15 +2062,15 @@ packages: } dependencies: browserslist: 4.21.4 - caniuse-lite: 1.0.30001435 + caniuse-lite: 1.0.30001439 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite/1.0.30001435: + /caniuse-lite/1.0.30001439: resolution: { - integrity: sha512-kdCkUTjR+v4YAJelyiDTqiu82BDr4W4CP5sgTA0ZBmqn30XfS2ZghPLMowik9TPhS+psWJiUNxsqLyurDbmutA== + integrity: sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A== } dev: true @@ -1822,25 +2110,25 @@ packages: fsevents: 2.3.2 dev: true - /ckeditor5/35.3.2: + /ckeditor5/35.4.0: resolution: { - integrity: sha512-QQbXi3EbarHOdb8qgQ+EY8PhDYrtpRMQC3k3J9rhTZLQcVYYxMkFwlVtaN8TtxpLo00KGAV1+FticdBL7RqpXA== + integrity: sha512-vBEQVkFCbjYmEPVkyWsOqU44DOovUio6xBuCwroe4TuJLplqeRasCjFwB0DPknXQU8U0iM3Lh/QSKRyN92pw3Q== } engines: { node: '>=14.0.0', npm: '>=5.7.1' } dependencies: - '@ckeditor/ckeditor5-clipboard': 35.3.2 - '@ckeditor/ckeditor5-core': 35.3.2 - '@ckeditor/ckeditor5-engine': 35.3.2 - '@ckeditor/ckeditor5-enter': 35.3.2 - '@ckeditor/ckeditor5-paragraph': 35.3.2 - '@ckeditor/ckeditor5-select-all': 35.3.2 - '@ckeditor/ckeditor5-typing': 35.3.2 - '@ckeditor/ckeditor5-ui': 35.3.2 - '@ckeditor/ckeditor5-undo': 35.3.2 - '@ckeditor/ckeditor5-upload': 35.3.2 - '@ckeditor/ckeditor5-utils': 35.3.2 - '@ckeditor/ckeditor5-widget': 35.3.2 + '@ckeditor/ckeditor5-clipboard': 35.4.0 + '@ckeditor/ckeditor5-core': 35.4.0 + '@ckeditor/ckeditor5-engine': 35.4.0 + '@ckeditor/ckeditor5-enter': 35.4.0 + '@ckeditor/ckeditor5-paragraph': 35.4.0 + '@ckeditor/ckeditor5-select-all': 35.4.0 + '@ckeditor/ckeditor5-typing': 35.4.0 + '@ckeditor/ckeditor5-ui': 35.4.0 + '@ckeditor/ckeditor5-undo': 35.4.0 + '@ckeditor/ckeditor5-upload': 35.4.0 + '@ckeditor/ckeditor5-utils': 35.4.0 + '@ckeditor/ckeditor5-widget': 35.4.0 dev: true /classnames/2.3.2: @@ -1850,6 +2138,17 @@ packages: } dev: true + /cliui/6.0.0: + resolution: + { + integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + } + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + dev: true + /color-convert/2.0.1: resolution: { @@ -1940,7 +2239,7 @@ packages: } dev: true - /css-declaration-sorter/6.3.1_postcss@8.4.19: + /css-declaration-sorter/6.3.1_postcss@8.4.20: resolution: { integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w== @@ -1949,7 +2248,7 @@ packages: peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 dev: true /css-select/4.3.0: @@ -2000,7 +2299,7 @@ packages: hasBin: true dev: true - /cssnano-preset-default/5.2.13_postcss@8.4.19: + /cssnano-preset-default/5.2.13_postcss@8.4.20: resolution: { integrity: sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ== @@ -2009,39 +2308,39 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.3.1_postcss@8.4.19 - cssnano-utils: 3.1.0_postcss@8.4.19 - postcss: 8.4.19 - postcss-calc: 8.2.4_postcss@8.4.19 - postcss-colormin: 5.3.0_postcss@8.4.19 - postcss-convert-values: 5.1.3_postcss@8.4.19 - postcss-discard-comments: 5.1.2_postcss@8.4.19 - postcss-discard-duplicates: 5.1.0_postcss@8.4.19 - postcss-discard-empty: 5.1.1_postcss@8.4.19 - postcss-discard-overridden: 5.1.0_postcss@8.4.19 - postcss-merge-longhand: 5.1.7_postcss@8.4.19 - postcss-merge-rules: 5.1.3_postcss@8.4.19 - postcss-minify-font-values: 5.1.0_postcss@8.4.19 - postcss-minify-gradients: 5.1.1_postcss@8.4.19 - postcss-minify-params: 5.1.4_postcss@8.4.19 - postcss-minify-selectors: 5.2.1_postcss@8.4.19 - postcss-normalize-charset: 5.1.0_postcss@8.4.19 - postcss-normalize-display-values: 5.1.0_postcss@8.4.19 - postcss-normalize-positions: 5.1.1_postcss@8.4.19 - postcss-normalize-repeat-style: 5.1.1_postcss@8.4.19 - postcss-normalize-string: 5.1.0_postcss@8.4.19 - postcss-normalize-timing-functions: 5.1.0_postcss@8.4.19 - postcss-normalize-unicode: 5.1.1_postcss@8.4.19 - postcss-normalize-url: 5.1.0_postcss@8.4.19 - postcss-normalize-whitespace: 5.1.1_postcss@8.4.19 - postcss-ordered-values: 5.1.3_postcss@8.4.19 - postcss-reduce-initial: 5.1.1_postcss@8.4.19 - postcss-reduce-transforms: 5.1.0_postcss@8.4.19 - postcss-svgo: 5.1.0_postcss@8.4.19 - postcss-unique-selectors: 5.1.1_postcss@8.4.19 + css-declaration-sorter: 6.3.1_postcss@8.4.20 + cssnano-utils: 3.1.0_postcss@8.4.20 + postcss: 8.4.20 + postcss-calc: 8.2.4_postcss@8.4.20 + postcss-colormin: 5.3.0_postcss@8.4.20 + postcss-convert-values: 5.1.3_postcss@8.4.20 + postcss-discard-comments: 5.1.2_postcss@8.4.20 + postcss-discard-duplicates: 5.1.0_postcss@8.4.20 + postcss-discard-empty: 5.1.1_postcss@8.4.20 + postcss-discard-overridden: 5.1.0_postcss@8.4.20 + postcss-merge-longhand: 5.1.7_postcss@8.4.20 + postcss-merge-rules: 5.1.3_postcss@8.4.20 + postcss-minify-font-values: 5.1.0_postcss@8.4.20 + postcss-minify-gradients: 5.1.1_postcss@8.4.20 + postcss-minify-params: 5.1.4_postcss@8.4.20 + postcss-minify-selectors: 5.2.1_postcss@8.4.20 + postcss-normalize-charset: 5.1.0_postcss@8.4.20 + postcss-normalize-display-values: 5.1.0_postcss@8.4.20 + postcss-normalize-positions: 5.1.1_postcss@8.4.20 + postcss-normalize-repeat-style: 5.1.1_postcss@8.4.20 + postcss-normalize-string: 5.1.0_postcss@8.4.20 + postcss-normalize-timing-functions: 5.1.0_postcss@8.4.20 + postcss-normalize-unicode: 5.1.1_postcss@8.4.20 + postcss-normalize-url: 5.1.0_postcss@8.4.20 + postcss-normalize-whitespace: 5.1.1_postcss@8.4.20 + postcss-ordered-values: 5.1.3_postcss@8.4.20 + postcss-reduce-initial: 5.1.1_postcss@8.4.20 + postcss-reduce-transforms: 5.1.0_postcss@8.4.20 + postcss-svgo: 5.1.0_postcss@8.4.20 + postcss-unique-selectors: 5.1.1_postcss@8.4.20 dev: true - /cssnano-utils/3.1.0_postcss@8.4.19: + /cssnano-utils/3.1.0_postcss@8.4.20: resolution: { integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== @@ -2050,10 +2349,10 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 dev: true - /cssnano/5.1.14_postcss@8.4.19: + /cssnano/5.1.14_postcss@8.4.20: resolution: { integrity: sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw== @@ -2062,9 +2361,9 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.13_postcss@8.4.19 + cssnano-preset-default: 5.2.13_postcss@8.4.20 lilconfig: 2.0.6 - postcss: 8.4.19 + postcss: 8.4.20 yaml: 1.10.2 dev: true @@ -2093,6 +2392,14 @@ packages: ms: 2.1.2 dev: true + /decamelize/1.2.0: + resolution: + { + integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + } + engines: { node: '>=0.10.0' } + dev: true + /deep-is/0.1.4: resolution: { @@ -2150,6 +2457,13 @@ packages: } dev: true + /dijkstrajs/1.0.2: + resolution: + { + integrity: sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg== + } + dev: true + /dir-glob/3.0.1: resolution: { @@ -2239,6 +2553,20 @@ packages: } dev: true + /emoji-regex/8.0.0: + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + } + dev: true + + /encode-utf8/1.0.3: + resolution: + { + integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== + } + dev: true + /engine.io-client/6.2.3: resolution: { @@ -2271,10 +2599,10 @@ packages: } dev: true - /es-module-lexer/0.9.3: + /es-module-lexer/1.1.0: resolution: { - integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + integrity: sha512-fJg+1tiyEeS8figV+fPcPpm8WqJEflG3yPU0NOm5xMvrNkuiy7HzX/Ljng4Y0hAoiw4/3hQTCFYw+ub8+a2pRA== } dev: true @@ -2285,277 +2613,37 @@ packages: } dev: true - /esbuild-android-64/0.15.16: + /esbuild/0.16.8: resolution: { - integrity: sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA== - } - engines: { node: '>=12' } - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-android-arm64/0.15.16: - resolution: - { - integrity: sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg== - } - engines: { node: '>=12' } - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-64/0.15.16: - resolution: - { - integrity: sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g== - } - engines: { node: '>=12' } - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-darwin-arm64/0.15.16: - resolution: - { - integrity: sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw== - } - engines: { node: '>=12' } - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-64/0.15.16: - resolution: - { - integrity: sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ== - } - engines: { node: '>=12' } - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64/0.15.16: - resolution: - { - integrity: sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g== - } - engines: { node: '>=12' } - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32/0.15.16: - resolution: - { - integrity: sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w== - } - engines: { node: '>=12' } - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64/0.15.16: - resolution: - { - integrity: sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g== - } - engines: { node: '>=12' } - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm/0.15.16: - resolution: - { - integrity: sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ== - } - engines: { node: '>=12' } - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.15.16: - resolution: - { - integrity: sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A== - } - engines: { node: '>=12' } - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le/0.15.16: - resolution: - { - integrity: sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A== - } - engines: { node: '>=12' } - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le/0.15.16: - resolution: - { - integrity: sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA== - } - engines: { node: '>=12' } - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64/0.15.16: - resolution: - { - integrity: sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw== - } - engines: { node: '>=12' } - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x/0.15.16: - resolution: - { - integrity: sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w== - } - engines: { node: '>=12' } - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64/0.15.16: - resolution: - { - integrity: sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg== - } - engines: { node: '>=12' } - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64/0.15.16: - resolution: - { - integrity: sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA== - } - engines: { node: '>=12' } - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-sunos-64/0.15.16: - resolution: - { - integrity: sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ== - } - engines: { node: '>=12' } - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32/0.15.16: - resolution: - { - integrity: sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ== - } - engines: { node: '>=12' } - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64/0.15.16: - resolution: - { - integrity: sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw== - } - engines: { node: '>=12' } - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64/0.15.16: - resolution: - { - integrity: sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA== - } - engines: { node: '>=12' } - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild/0.15.16: - resolution: - { - integrity: sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ== + integrity: sha512-RKxRaLYAI5b/IVJ5k8jK3bO2G7cch2ZIZFbfKHbBzpwsWt9+VChcBEndNISBBZ5c3WwekFfkfl11/2QfIGHgDw== } engines: { node: '>=12' } hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.16 - '@esbuild/linux-loong64': 0.15.16 - esbuild-android-64: 0.15.16 - esbuild-android-arm64: 0.15.16 - esbuild-darwin-64: 0.15.16 - esbuild-darwin-arm64: 0.15.16 - esbuild-freebsd-64: 0.15.16 - esbuild-freebsd-arm64: 0.15.16 - esbuild-linux-32: 0.15.16 - esbuild-linux-64: 0.15.16 - esbuild-linux-arm: 0.15.16 - esbuild-linux-arm64: 0.15.16 - esbuild-linux-mips64le: 0.15.16 - esbuild-linux-ppc64le: 0.15.16 - esbuild-linux-riscv64: 0.15.16 - esbuild-linux-s390x: 0.15.16 - esbuild-netbsd-64: 0.15.16 - esbuild-openbsd-64: 0.15.16 - esbuild-sunos-64: 0.15.16 - esbuild-windows-32: 0.15.16 - esbuild-windows-64: 0.15.16 - esbuild-windows-arm64: 0.15.16 + '@esbuild/android-arm': 0.16.8 + '@esbuild/android-arm64': 0.16.8 + '@esbuild/android-x64': 0.16.8 + '@esbuild/darwin-arm64': 0.16.8 + '@esbuild/darwin-x64': 0.16.8 + '@esbuild/freebsd-arm64': 0.16.8 + '@esbuild/freebsd-x64': 0.16.8 + '@esbuild/linux-arm': 0.16.8 + '@esbuild/linux-arm64': 0.16.8 + '@esbuild/linux-ia32': 0.16.8 + '@esbuild/linux-loong64': 0.16.8 + '@esbuild/linux-mips64el': 0.16.8 + '@esbuild/linux-ppc64': 0.16.8 + '@esbuild/linux-riscv64': 0.16.8 + '@esbuild/linux-s390x': 0.16.8 + '@esbuild/linux-x64': 0.16.8 + '@esbuild/netbsd-x64': 0.16.8 + '@esbuild/openbsd-x64': 0.16.8 + '@esbuild/sunos-x64': 0.16.8 + '@esbuild/win32-arm64': 0.16.8 + '@esbuild/win32-ia32': 0.16.8 + '@esbuild/win32-x64': 0.16.8 dev: true /escalade/3.1.1: @@ -2574,7 +2662,7 @@ packages: engines: { node: '>=10' } dev: true - /eslint-config-prettier/8.5.0_eslint@8.28.0: + /eslint-config-prettier/8.5.0_eslint@8.30.0: resolution: { integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== @@ -2583,10 +2671,10 @@ packages: peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.28.0 + eslint: 8.30.0 dev: true - /eslint-plugin-svelte3/4.0.0_xgu65rlhscpnxffotiaicv6m5i: + /eslint-plugin-svelte3/4.0.0_khrjkzzv5v2x7orkj5o7sxbz3a: resolution: { integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g== @@ -2595,8 +2683,8 @@ packages: eslint: '>=8.0.0' svelte: ^3.2.0 dependencies: - eslint: 8.28.0 - svelte: 3.53.1 + eslint: 8.30.0 + svelte: 3.55.0 dev: true /eslint-scope/5.1.1: @@ -2621,7 +2709,7 @@ packages: estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.28.0: + /eslint-utils/3.0.0_eslint@8.30.0: resolution: { integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== @@ -2630,7 +2718,7 @@ packages: peerDependencies: eslint: '>=5' dependencies: - eslint: 8.28.0 + eslint: 8.30.0 eslint-visitor-keys: 2.1.0 dev: true @@ -2650,16 +2738,16 @@ packages: engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dev: true - /eslint/8.28.0: + /eslint/8.30.0: resolution: { - integrity: sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ== + integrity: sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ== } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } hasBin: true dependencies: - '@eslint/eslintrc': 1.3.3 - '@humanwhocodes/config-array': 0.11.7 + '@eslint/eslintrc': 1.4.0 + '@humanwhocodes/config-array': 0.11.8 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -2669,7 +2757,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.28.0 + eslint-utils: 3.0.0_eslint@8.30.0 eslint-visitor-keys: 3.3.0 espree: 9.4.1 esquery: 1.4.0 @@ -2678,7 +2766,7 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.18.0 + globals: 13.19.0 grapheme-splitter: 1.0.4 ignore: 5.2.1 import-fresh: 3.3.0 @@ -2701,6 +2789,13 @@ packages: - supports-color dev: true + /esm-env/1.0.0: + resolution: + { + integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA== + } + dev: true + /espree/9.4.1: resolution: { @@ -2806,16 +2901,16 @@ packages: } dev: true - /fastq/1.13.0: + /fastq/1.14.0: resolution: { - integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== } dependencies: reusify: 1.0.4 dev: true - /felte/1.2.6_svelte@3.53.1: + /felte/1.2.6_svelte@3.55.0: resolution: { integrity: sha512-0dcDPVkA09vkXFm+hiOFanWGGH1hwjqWDul02nRVjkMe4dtf6FxtyV8JSFY2Rxcq7rCoaYkn1Dv8oeRDRdVPsw== @@ -2825,7 +2920,7 @@ packages: svelte: ^3.31.0 dependencies: '@felte/core': 1.3.6 - svelte: 3.53.1 + svelte: 3.55.0 dev: true /file-entry-cache/6.0.1: @@ -2848,6 +2943,17 @@ packages: to-regex-range: 5.0.1 dev: true + /find-up/4.1.0: + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + } + engines: { node: '>=8' } + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + /find-up/5.0.0: resolution: { @@ -2924,6 +3030,14 @@ packages: } dev: true + /get-caller-file/2.0.5: + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + } + engines: { node: 6.* || 8.* || >= 10.* } + dev: true + /get-stream/6.0.1: resolution: { @@ -2987,10 +3101,10 @@ packages: once: 1.4.0 dev: true - /globals/13.18.0: + /globals/13.19.0: resolution: { - integrity: sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A== + integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== } engines: { node: '>=8' } dependencies: @@ -3082,10 +3196,10 @@ packages: '@babel/runtime': 7.20.6 dev: true - /i18next/22.0.6: + /i18next/22.4.5: resolution: { - integrity: sha512-RlreNGoPIdDP4QG+qSA9PxZKGwlzmcozbI9ObI6+OyUa/Rp0EjZZA9ubyBjw887zVNZsC+7FI3sXX8oiTzAfig== + integrity: sha512-Kc+Ow0guRetUq+kv02tj0Yof9zveROPBAmJ8UxxNODLVBRSwsM4iD0Gw3BEieOmkWemF6clU3K1fbnCuTqiN2Q== } dependencies: '@babel/runtime': 7.20.6 @@ -3201,6 +3315,14 @@ packages: 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/4.0.3: resolution: { @@ -3330,6 +3452,16 @@ packages: engines: { node: '>=10' } dev: true + /locate-path/5.0.0: + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + } + engines: { node: '>=8' } + dependencies: + p-locate: 4.1.0 + dev: true + /locate-path/6.0.0: resolution: { @@ -3430,20 +3562,20 @@ packages: sourcemap-codec: 1.4.8 dev: true - /magic-string/0.26.7: + /magic-string/0.27.0: resolution: { - integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== + integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== } engines: { node: '>=12' } dependencies: - sourcemap-codec: 1.4.8 + '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /mapbox-gl/2.11.0: + /mapbox-gl/2.11.1: resolution: { - integrity: sha512-zXbqHfEQMsta4iKO8bzXapDz1DihvZg24gmPJoQgUYAJxjc0NVVa5G/1QF3TIlpAJDD7WPzQSAogItab5oOF3A== + integrity: sha512-UzPi3m9i4t95M234sPmL3n9q2XpyHoyIFMXDjuJP+3OmzROwYUMzLcNMnPHrOmgwGicg99dr7rEJGYyEGr9i+A== } dependencies: '@mapbox/geojson-rewind': 0.5.2 @@ -3647,10 +3779,10 @@ packages: } dev: true - /node-releases/2.0.6: + /node-releases/2.0.8: resolution: { - integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== } dev: true @@ -3719,6 +3851,16 @@ packages: word-wrap: 1.2.3 dev: true + /p-limit/2.3.0: + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + } + engines: { node: '>=6' } + dependencies: + p-try: 2.2.0 + dev: true + /p-limit/3.1.0: resolution: { @@ -3729,6 +3871,16 @@ packages: yocto-queue: 0.1.0 dev: true + /p-locate/4.1.0: + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + } + engines: { node: '>=8' } + dependencies: + p-limit: 2.3.0 + dev: true + /p-locate/5.0.0: resolution: { @@ -3739,6 +3891,14 @@ packages: p-limit: 3.1.0 dev: true + /p-try/2.2.0: + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + } + engines: { node: '>=6' } + dev: true + /parent-module/1.0.1: resolution: { @@ -3830,7 +3990,15 @@ packages: engines: { node: '>=10' } dev: true - /postcss-calc/8.2.4_postcss@8.4.19: + /pngjs/5.0.0: + resolution: + { + integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== + } + engines: { node: '>=10.13.0' } + dev: true + + /postcss-calc/8.2.4_postcss@8.4.20: resolution: { integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== @@ -3838,12 +4006,12 @@ packages: peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 dev: true - /postcss-colormin/5.3.0_postcss@8.4.19: + /postcss-colormin/5.3.0_postcss@8.4.20: resolution: { integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg== @@ -3855,11 +4023,11 @@ packages: browserslist: 4.21.4 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values/5.1.3_postcss@8.4.19: + /postcss-convert-values/5.1.3_postcss@8.4.20: resolution: { integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== @@ -3869,11 +4037,11 @@ packages: postcss: ^8.2.15 dependencies: browserslist: 4.21.4 - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-discard-comments/5.1.2_postcss@8.4.19: + /postcss-discard-comments/5.1.2_postcss@8.4.20: resolution: { integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== @@ -3882,10 +4050,10 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 dev: true - /postcss-discard-duplicates/5.1.0_postcss@8.4.19: + /postcss-discard-duplicates/5.1.0_postcss@8.4.20: resolution: { integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== @@ -3894,10 +4062,10 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 dev: true - /postcss-discard-empty/5.1.1_postcss@8.4.19: + /postcss-discard-empty/5.1.1_postcss@8.4.20: resolution: { integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== @@ -3906,10 +4074,10 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 dev: true - /postcss-discard-overridden/5.1.0_postcss@8.4.19: + /postcss-discard-overridden/5.1.0_postcss@8.4.20: resolution: { integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== @@ -3918,10 +4086,10 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 dev: true - /postcss-import/14.1.0_postcss@8.4.19: + /postcss-import/14.1.0_postcss@8.4.20: resolution: { integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== @@ -3930,13 +4098,13 @@ packages: peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.1 dev: true - /postcss-js/4.0.0_postcss@8.4.19: + /postcss-js/4.0.0_postcss@8.4.20: resolution: { integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ== @@ -3946,10 +4114,10 @@ packages: postcss: ^8.3.3 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.19 + postcss: 8.4.20 dev: true - /postcss-load-config/3.1.4_postcss@8.4.19: + /postcss-load-config/3.1.4_postcss@8.4.20: resolution: { integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== @@ -3965,11 +4133,11 @@ packages: optional: true dependencies: lilconfig: 2.0.6 - postcss: 8.4.19 + postcss: 8.4.20 yaml: 1.10.2 dev: true - /postcss-load-config/4.0.1_postcss@8.4.19: + /postcss-load-config/4.0.1_postcss@8.4.20: resolution: { integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== @@ -3985,11 +4153,11 @@ packages: optional: true dependencies: lilconfig: 2.0.6 - postcss: 8.4.19 + postcss: 8.4.20 yaml: 2.1.3 dev: true - /postcss-merge-longhand/5.1.7_postcss@8.4.19: + /postcss-merge-longhand/5.1.7_postcss@8.4.20: resolution: { integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== @@ -3998,12 +4166,12 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1_postcss@8.4.19 + stylehacks: 5.1.1_postcss@8.4.20 dev: true - /postcss-merge-rules/5.1.3_postcss@8.4.19: + /postcss-merge-rules/5.1.3_postcss@8.4.20: resolution: { integrity: sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA== @@ -4014,12 +4182,12 @@ packages: dependencies: browserslist: 4.21.4 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0_postcss@8.4.19 - postcss: 8.4.19 + cssnano-utils: 3.1.0_postcss@8.4.20 + postcss: 8.4.20 postcss-selector-parser: 6.0.11 dev: true - /postcss-minify-font-values/5.1.0_postcss@8.4.19: + /postcss-minify-font-values/5.1.0_postcss@8.4.20: resolution: { integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== @@ -4028,11 +4196,11 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients/5.1.1_postcss@8.4.19: + /postcss-minify-gradients/5.1.1_postcss@8.4.20: resolution: { integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== @@ -4042,12 +4210,12 @@ packages: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0_postcss@8.4.19 - postcss: 8.4.19 + cssnano-utils: 3.1.0_postcss@8.4.20 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params/5.1.4_postcss@8.4.19: + /postcss-minify-params/5.1.4_postcss@8.4.20: resolution: { integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== @@ -4057,12 +4225,12 @@ packages: postcss: ^8.2.15 dependencies: browserslist: 4.21.4 - cssnano-utils: 3.1.0_postcss@8.4.19 - postcss: 8.4.19 + cssnano-utils: 3.1.0_postcss@8.4.20 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-selectors/5.2.1_postcss@8.4.19: + /postcss-minify-selectors/5.2.1_postcss@8.4.20: resolution: { integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== @@ -4071,11 +4239,11 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-selector-parser: 6.0.11 dev: true - /postcss-nested/6.0.0_postcss@8.4.19: + /postcss-nested/6.0.0_postcss@8.4.20: resolution: { integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w== @@ -4084,11 +4252,11 @@ packages: peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-selector-parser: 6.0.11 dev: true - /postcss-normalize-charset/5.1.0_postcss@8.4.19: + /postcss-normalize-charset/5.1.0_postcss@8.4.20: resolution: { integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== @@ -4097,10 +4265,10 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 dev: true - /postcss-normalize-display-values/5.1.0_postcss@8.4.19: + /postcss-normalize-display-values/5.1.0_postcss@8.4.20: resolution: { integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== @@ -4109,11 +4277,11 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions/5.1.1_postcss@8.4.19: + /postcss-normalize-positions/5.1.1_postcss@8.4.20: resolution: { integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== @@ -4122,11 +4290,11 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style/5.1.1_postcss@8.4.19: + /postcss-normalize-repeat-style/5.1.1_postcss@8.4.20: resolution: { integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== @@ -4135,11 +4303,11 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string/5.1.0_postcss@8.4.19: + /postcss-normalize-string/5.1.0_postcss@8.4.20: resolution: { integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== @@ -4148,11 +4316,11 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions/5.1.0_postcss@8.4.19: + /postcss-normalize-timing-functions/5.1.0_postcss@8.4.20: resolution: { integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== @@ -4161,11 +4329,11 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode/5.1.1_postcss@8.4.19: + /postcss-normalize-unicode/5.1.1_postcss@8.4.20: resolution: { integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== @@ -4175,11 +4343,11 @@ packages: postcss: ^8.2.15 dependencies: browserslist: 4.21.4 - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url/5.1.0_postcss@8.4.19: + /postcss-normalize-url/5.1.0_postcss@8.4.20: resolution: { integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== @@ -4189,11 +4357,11 @@ packages: postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace/5.1.1_postcss@8.4.19: + /postcss-normalize-whitespace/5.1.1_postcss@8.4.20: resolution: { integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== @@ -4202,11 +4370,11 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-ordered-values/5.1.3_postcss@8.4.19: + /postcss-ordered-values/5.1.3_postcss@8.4.20: resolution: { integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== @@ -4215,12 +4383,12 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0_postcss@8.4.19 - postcss: 8.4.19 + cssnano-utils: 3.1.0_postcss@8.4.20 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true - /postcss-reduce-initial/5.1.1_postcss@8.4.19: + /postcss-reduce-initial/5.1.1_postcss@8.4.20: resolution: { integrity: sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w== @@ -4231,10 +4399,10 @@ packages: dependencies: browserslist: 4.21.4 caniuse-api: 3.0.0 - postcss: 8.4.19 + postcss: 8.4.20 dev: true - /postcss-reduce-transforms/5.1.0_postcss@8.4.19: + /postcss-reduce-transforms/5.1.0_postcss@8.4.20: resolution: { integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== @@ -4243,7 +4411,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 dev: true @@ -4269,7 +4437,7 @@ packages: util-deprecate: 1.0.2 dev: true - /postcss-svgo/5.1.0_postcss@8.4.19: + /postcss-svgo/5.1.0_postcss@8.4.20: resolution: { integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== @@ -4278,12 +4446,12 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-value-parser: 4.2.0 svgo: 2.8.0 dev: true - /postcss-unique-selectors/5.1.1_postcss@8.4.19: + /postcss-unique-selectors/5.1.1_postcss@8.4.20: resolution: { integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== @@ -4292,7 +4460,7 @@ packages: peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.20 postcss-selector-parser: 6.0.11 dev: true @@ -4303,10 +4471,10 @@ packages: } dev: true - /postcss/8.4.19: + /postcss/8.4.20: resolution: { - integrity: sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== + integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== } engines: { node: ^10 || ^12 || >=14 } dependencies: @@ -4337,23 +4505,23 @@ packages: engines: { node: '>= 0.8.0' } dev: true - /prettier-plugin-svelte/2.8.1_3ndnxlh52lolrqe4kgjgbxb3xa: + /prettier-plugin-svelte/2.9.0_ajxj753sv7dbwexjherrch25ta: resolution: { - integrity: sha512-KA3K1J3/wKDnCxW7ZDRA/QL2Q67N7Xs3gOERqJ5X1qFjq1DdnN3K1R29scSKwh+kA8FF67pXbYytUpvN/i3iQw== + integrity: sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw== } peerDependencies: prettier: ^1.16.4 || ^2.0.0 svelte: ^3.2.0 dependencies: - prettier: 2.8.0 - svelte: 3.53.1 + prettier: 2.8.1 + svelte: 3.55.0 dev: true - /prettier/2.8.0: + /prettier/2.8.1: resolution: { - integrity: sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA== + integrity: sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== } engines: { node: '>=10.13.0' } hasBin: true @@ -4389,6 +4557,20 @@ packages: engines: { node: '>=6' } dev: true + /qrcode/1.5.1: + resolution: + { + integrity: sha512-nS8NJ1Z3md8uTjKtP+SGGhfqmTCs5flU/xR623oI0JX+Wepz9R8UrRVCTBTJm3qGw3rH6jJ6MUHjkDx15cxSSg== + } + engines: { node: '>=10.13.0' } + hasBin: true + dependencies: + dijkstrajs: 1.0.2 + encode-utf8: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + dev: true + /queue-microtask/1.2.3: resolution: { @@ -4444,6 +4626,21 @@ packages: engines: { node: '>=8' } dev: true + /require-directory/2.1.1: + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + } + engines: { node: '>=0.10.0' } + dev: true + + /require-main-filename/2.0.0: + resolution: + { + integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + } + dev: true + /resolve-from/4.0.0: resolution: { @@ -4501,12 +4698,12 @@ packages: glob: 7.2.3 dev: true - /rollup/2.79.1: + /rollup/3.7.5: resolution: { - integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + integrity: sha512-z0ZbqHBtS/et2EEUKMrAl2CoSdwN7ZPzL17UMiKN9RjjqHShTlv7F9J6ZJZJNREYjBh3TvBrdfjkFDIXFNeuiQ== } - engines: { node: '>=10.0.0' } + engines: { node: '>=14.18.0', npm: '>=8.0.0' } hasBin: true optionalDependencies: fsevents: 2.3.2 @@ -4550,10 +4747,10 @@ packages: rimraf: 2.7.1 dev: true - /sass/1.56.1: + /sass/1.57.0: resolution: { - integrity: sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ== + integrity: sha512-IZNEJDTK1cF5B1cGA593TPAV/1S0ysUDxq9XHjX/+SMy0QfUny+nfUsq5ZP7wWSl4eEf7wDJcEZ8ABYFmh3m/w== } engines: { node: '>=12.0.0' } hasBin: true @@ -4574,6 +4771,13 @@ packages: lru-cache: 6.0.0 dev: true + /set-blocking/2.0.0: + resolution: + { + integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + } + dev: true + /set-cookie-parser/2.5.1: resolution: { @@ -4683,6 +4887,7 @@ packages: { integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== } + deprecated: Please use @jridgewell/sourcemap-codec instead dev: true /ssr-window/4.0.2: @@ -4708,6 +4913,18 @@ packages: engines: { node: '>=10.0.0' } 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 + /strip-ansi/6.0.1: resolution: { @@ -4736,7 +4953,7 @@ packages: engines: { node: '>=8' } dev: true - /stylehacks/5.1.1_postcss@8.4.19: + /stylehacks/5.1.1_postcss@8.4.20: resolution: { integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== @@ -4746,7 +4963,7 @@ packages: postcss: ^8.2.15 dependencies: browserslist: 4.21.4 - postcss: 8.4.19 + postcss: 8.4.20 postcss-selector-parser: 6.0.11 dev: true @@ -4777,10 +4994,10 @@ packages: engines: { node: '>= 0.4' } dev: true - /svelte-check/2.10.0_lae5lhfxexyizvi5yxbuu4veoq: + /svelte-check/2.10.2_qg5vvvck24g2hgmv67rlxrwpfu: resolution: { - integrity: sha512-5iLCoja/WsithyRkNtIeDQ0euJlgWj3Zzo2IA6iuHMuuX9D9OrRYZj2WlA5ACnAFQnN5L9mxWcwUW9VxDNEoGg== + integrity: sha512-h1Tuiir0m8J5yqN+Vx6qgKKk1L871e6a9o7rMwVWfu8Qs6Wg7x2R+wcxS3SO3VpW5JCxCat90rxPsZMYgz+HaQ== } hasBin: true peerDependencies: @@ -4792,8 +5009,8 @@ packages: import-fresh: 3.3.0 picocolors: 1.0.0 sade: 1.8.1 - svelte: 3.53.1 - svelte-preprocess: 4.10.7_ladvk7ak5n6ljjljd7g4yfwp34 + svelte: 3.55.0 + svelte-preprocess: 4.10.7_yobe4dakbqoaknvfcvu2g5hg6u typescript: 4.7.4 transitivePeerDependencies: - '@babel/core' @@ -4808,7 +5025,7 @@ packages: - sugarss dev: true - /svelte-hmr/0.15.1_svelte@3.53.1: + /svelte-hmr/0.15.1_svelte@3.55.0: resolution: { integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA== @@ -4817,10 +5034,10 @@ packages: peerDependencies: svelte: '>=3.19.0' dependencies: - svelte: 3.53.1 + svelte: 3.55.0 dev: true - /svelte-preprocess/4.10.7_ladvk7ak5n6ljjljd7g4yfwp34: + /svelte-preprocess/4.10.7_yobe4dakbqoaknvfcvu2g5hg6u: resolution: { integrity: sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw== @@ -4868,19 +5085,73 @@ packages: '@types/sass': 1.43.1 detect-indent: 6.1.0 magic-string: 0.25.9 - postcss: 8.4.19 - postcss-load-config: 4.0.1_postcss@8.4.19 - sass: 1.56.1 + postcss: 8.4.20 + postcss-load-config: 4.0.1_postcss@8.4.20 + sass: 1.57.0 sorcery: 0.10.0 strip-indent: 3.0.0 - svelte: 3.53.1 + svelte: 3.55.0 typescript: 4.7.4 dev: true - /svelte-range-slider-pips/2.1.0: + /svelte-preprocess/5.0.0_yobe4dakbqoaknvfcvu2g5hg6u: resolution: { - integrity: sha512-WpJQSXo1RG++mIKOkkfmcFho9ngzIBl7fPl0bDzpa6yFTFbxeFUVF5KkUSaiZwzs2SNT3xy6nAUeVLbVQ74JLA== + integrity: sha512-q7lpa7i2FBu8Pa+G0MmuQQWETBwCKgsGmuq1Sf6n8q4uaG9ZLcLP0Y+etC6bF4sE6EbLxfiI38zV6RfPe3RSfg== + } + engines: { node: '>= 14.10.0' } + requiresBuild: true + peerDependencies: + '@babel/core': ^7.10.2 + coffeescript: ^2.5.1 + less: ^3.11.3 || ^4.0.0 + postcss: ^7 || ^8 + postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 + pug: ^3.0.0 + sass: ^1.26.8 + stylus: ^0.55.0 + sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 + svelte: ^3.23.0 + typescript: ^3.9.5 || ^4.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + coffeescript: + optional: true + less: + 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.27.0 + postcss: 8.4.20 + postcss-load-config: 4.0.1_postcss@8.4.20 + sass: 1.57.0 + sorcery: 0.10.0 + strip-indent: 3.0.0 + svelte: 3.55.0 + typescript: 4.7.4 + dev: true + + /svelte-range-slider-pips/2.1.1: + resolution: + { + integrity: sha512-fLkhfnyEc4uMOCZCl8IPyC0e9lujrjqdSyrKw28Y8j99YUPZR+pHnSxde7PqhM0ST6eyO4ugh2nFnLZTIoG9aQ== } dev: true @@ -4893,10 +5164,10 @@ packages: tippy.js: 6.3.7 dev: true - /svelte/3.53.1: + /svelte/3.55.0: resolution: { - integrity: sha512-Q4/hHkktZogGhN5iqxqSi9sjEVoe/NbIxX4hXEHoasTxj+TxEQVAq66LnDMdAZxjmsodkoI5F3slqsS68U7FNw== + integrity: sha512-uGu2FVMlOuey4JoKHKrpZFkoYyj0VLjJdz47zX5+gVK5odxHM40RVhar9/iK2YFRVxvfg9FkhfVlR0sjeIrOiA== } engines: { node: '>= 8' } dev: true @@ -4930,7 +5201,7 @@ packages: ssr-window: 4.0.2 dev: true - /tailwindcss/3.2.4_postcss@8.4.19: + /tailwindcss/3.2.4_postcss@8.4.20: resolution: { integrity: sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ== @@ -4954,11 +5225,11 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.19 - postcss-import: 14.1.0_postcss@8.4.19 - postcss-js: 4.0.0_postcss@8.4.19 - postcss-load-config: 3.1.4_postcss@8.4.19 - postcss-nested: 6.0.0_postcss@8.4.19 + postcss: 8.4.20 + postcss-import: 14.1.0_postcss@8.4.20 + postcss-js: 4.0.0_postcss@8.4.20 + postcss-load-config: 3.1.4_postcss@8.4.20 + postcss-nested: 6.0.0_postcss@8.4.20 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 quick-lru: 5.1.1 @@ -5086,10 +5357,10 @@ packages: } dev: true - /undici/5.13.0: + /undici/5.14.0: resolution: { - integrity: sha512-UDZKtwb2k7KRsK4SdXWG7ErXiL7yTGgLWvk2AXO1JMjgjh404nFo6tWSCM2xMpJwMPx3J8i/vfqEh1zOqvj82Q== + integrity: sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ== } engines: { node: '>=12.18' } dependencies: @@ -5126,20 +5397,23 @@ packages: } dev: true - /vite-plugin-iso-import/0.1.3: + /vite-plugin-iso-import/1.0.0_vite@4.0.1: resolution: { - integrity: sha512-gMReA6eqfdSKMhNml0B8lT8VGHOY2FxLmq8rIJWStfuoLQItRzHKb2ntB+zNn8VWWeMe5/jtthfSxrzpgjhCMQ== + integrity: sha512-DqhCElHfkbkqLXtm0UMiAXqh9FdqRHegHpawXtp5LWHjGsdAqYPhmUGBTKFuTRwPSNFYCpyjHRsm7lvM2dskGw== } + peerDependencies: + vite: ^2.0.0 || ^3.0.0 || ^4.0.0 dependencies: - es-module-lexer: 0.9.3 - magic-string: 0.25.9 + es-module-lexer: 1.1.0 + magic-string: 0.27.0 + vite: 4.0.1_sass@1.57.0 dev: true - /vite/3.2.4_sass@1.56.1: + /vite/4.0.1_sass@1.57.0: resolution: { - integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw== + integrity: sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g== } engines: { node: ^14.18.0 || >=16.0.0 } hasBin: true @@ -5164,27 +5438,27 @@ packages: terser: optional: true dependencies: - esbuild: 0.15.16 - postcss: 8.4.19 + esbuild: 0.16.8 + postcss: 8.4.20 resolve: 1.22.1 - rollup: 2.79.1 - sass: 1.56.1 + rollup: 3.7.5 + sass: 1.57.0 optionalDependencies: fsevents: 2.3.2 dev: true - /vitefu/0.2.2_vite@3.2.4: + /vitefu/0.2.4_vite@4.0.1: resolution: { - integrity: sha512-8CKEIWPm4B4DUDN+h+hVJa9pyNi7rzc5MYmbxhs1wcMakueGFNWB5/DL30USm9qU3xUPnL4/rrLEAwwFiD1tag== + integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g== } peerDependencies: - vite: ^3.0.0 + vite: ^3.0.0 || ^4.0.0 peerDependenciesMeta: vite: optional: true dependencies: - vite: 3.2.4_sass@1.56.1 + vite: 4.0.1_sass@1.57.0 dev: true /vt-pbf/3.1.3: @@ -5198,6 +5472,13 @@ packages: pbf: 3.2.1 dev: true + /which-module/2.0.0: + resolution: + { + integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + } + dev: true + /which/2.0.2: resolution: { @@ -5224,6 +5505,18 @@ packages: engines: { node: '>=0.10.0' } dev: true + /wrap-ansi/6.2.0: + resolution: + { + integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + } + engines: { node: '>=8' } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + /wrappy/1.0.2: resolution: { @@ -5263,6 +5556,13 @@ packages: engines: { node: '>=0.4' } dev: true + /y18n/4.0.3: + resolution: + { + integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + } + dev: true + /yallist/4.0.0: resolution: { @@ -5286,6 +5586,37 @@ packages: engines: { node: '>= 14' } dev: true + /yargs-parser/18.1.3: + resolution: + { + integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + } + engines: { node: '>=6' } + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + dev: true + + /yargs/15.4.1: + resolution: + { + integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + } + engines: { node: '>=8' } + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.0 + y18n: 4.0.3 + yargs-parser: 18.1.3 + dev: true + /yocto-queue/0.1.0: resolution: { diff --git a/frontend/src/lib/i18n/locales/en.json b/frontend/src/lib/i18n/locales/en.json index 55a8286..0aea6da 100644 --- a/frontend/src/lib/i18n/locales/en.json +++ b/frontend/src/lib/i18n/locales/en.json @@ -150,7 +150,8 @@ "practice": "Practice", "error": "Error", "voting": "Voting", - "download": "Download" + "download": "Download", + "continue": "Continue" }, "editor": { "time_in_seconds": "Time in seconds", diff --git a/frontend/src/routes/account/login/+page.svelte b/frontend/src/routes/account/login/+page.svelte index 7de0846..a8cd379 100644 --- a/frontend/src/routes/account/login/+page.svelte +++ b/frontend/src/routes/account/login/+page.svelte @@ -5,12 +5,20 @@ --> ClassQuiz - Login
-
- {#if verified} -