From 7131c8cde1268d25a8b32622a4170f07c7bf1d4e Mon Sep 17 00:00:00 2001 From: Mo Date: Wed, 3 Jan 2024 13:51:14 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20User=20management=20(#2499)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ✨ Create user from admin panel * 🚧 Store registration preference * ⬆️ Upgrade packages * 🚧 Disable search on client side * 🗑️ Remove usage of global * ✨ Implement option to require login everywhere --- CHANGELOG.md | 15 +- client/components/admin/CreateUser.vue | 88 + client/components/admin/UserManagement.vue | 74 + client/components/admin/Users.vue | 14 + client/components/buttons/SwitchButton.vue | 26 +- client/components/form/LoginForm.vue | 2 +- client/components/form/RegisterForm.vue | 2 +- client/components/header/UserMenu.vue | 13 +- client/composables/api/admin.ts | 28 +- client/composables/registrationEnabled.ts | 6 + client/composables/vtFetch.ts | 2 +- client/middleware/routeGuard.global.ts | 20 + client/nuxt.config.ts | 4 +- client/package.json | 10 +- client/pages/admin.vue | 2 + client/pages/profile/index.vue | 6 +- docker-compose.yml | 3 +- package.json | 2 +- pnpm-lock.yaml | 1599 +++++++++++------ server/package.json | 8 +- .../src/{user => }/admin/admin.controller.ts | 18 + server/src/{user => }/admin/admin.module.ts | 10 +- server/src/{user => }/admin/admin.service.ts | 55 +- server/src/{user => }/admin/dto/info.dto.ts | 0 .../src/{user => }/admin/dto/log-file.dto.ts | 0 server/src/{user => }/admin/dto/logs.dto.ts | 0 server/src/admin/dto/server-settings.dto.ts | 4 + .../{user => }/admin/schemas/blocked-video.ts | 0 server/src/admin/schemas/server-settings.ts | 17 + server/src/app.module.ts | 3 +- server/src/auth/auth.controller.ts | 4 +- server/src/auth/auth.service.ts | 17 +- server/src/auth/captcha/captcha.controller.ts | 2 + .../src/auth/decorators/public.decorator.ts | 4 + server/src/auth/guards/public-auth.guard.ts | 14 +- .../src/auth/register/register.controller.ts | 2 + server/src/auth/register/register.module.ts | 14 +- server/src/auth/register/register.service.ts | 14 +- .../app/YoutubeGrabberHelper.ts | 1 - server/src/core/core.module.ts | 2 +- server/src/core/videos/videos.service.ts | 2 +- server/src/main.ts | 10 + server/src/nuxt/nuxt.controller.ts | 4 +- server/src/user/dto/userprofile.dto.ts | 2 +- server/src/user/user.module.ts | 5 +- server/src/user/user.service.ts | 13 +- shared/api.schema.ts | 278 +-- tests/cypress/package.json | 2 +- tests/jest/package.json | 2 +- 49 files changed, 1695 insertions(+), 728 deletions(-) create mode 100644 client/components/admin/CreateUser.vue create mode 100644 client/components/admin/UserManagement.vue create mode 100644 client/components/admin/Users.vue create mode 100644 client/composables/registrationEnabled.ts create mode 100644 client/middleware/routeGuard.global.ts rename server/src/{user => }/admin/admin.controller.ts (70%) rename server/src/{user => }/admin/admin.module.ts (76%) rename server/src/{user => }/admin/admin.service.ts (69%) rename server/src/{user => }/admin/dto/info.dto.ts (100%) rename server/src/{user => }/admin/dto/log-file.dto.ts (100%) rename server/src/{user => }/admin/dto/logs.dto.ts (100%) create mode 100644 server/src/admin/dto/server-settings.dto.ts rename server/src/{user => }/admin/schemas/blocked-video.ts (100%) create mode 100644 server/src/admin/schemas/server-settings.ts create mode 100644 server/src/auth/decorators/public.decorator.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 552a43ded..73a943e8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,12 +3,19 @@ This file is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.14.3] +## [0.15.0] + +### Added + +- Add option to disable registration to admin panel [#2499](https://github.com/ViewTube/viewtube/pull/2499) +- Add option to require login everywhere to admin panel [#2499](https://github.com/ViewTube/viewtube/pull/2499) +- Allow users to be added via the admin panel [#2499](https://github.com/ViewTube/viewtube/pull/2499) ### Fixed - Use loadeddata event to fix video player aspect ratio (Thanks @themisir) [#2505](https://github.com/ViewTube/viewtube/pull/2505) - Use value of apiUrl, fixes account deletion issue (Thanks @alvanrahimli) [#2515](https://github.com/ViewTube/viewtube/pull/2515) +- Fix logout not working [#2499](https://github.com/ViewTube/viewtube/pull/2499) ## [0.14.2] @@ -64,11 +71,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Reworked authentication with new devices interface in profile [#2186](https://github.com/ViewTube/viewtube/pull/2186) +- Add support for socks proxies [#2269](https://github.com/ViewTube/viewtube/pull/2269) ### Fixed - Make client cookie logic more robust [#2259](https://github.com/ViewTube/viewtube/pull/2259) - Upgrade packages and cleanup unused [#2261](https://github.com/ViewTube/viewtube/pull/2261) +- Fix history and profile page [#2282](https://github.com/ViewTube/viewtube/pull/2282) ## [0.12.2] @@ -374,8 +383,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Initial release -[unreleased]: https://github.com/viewtube/viewtube/compare/v0.14.3...development -[0.14.3]: https://github.com/viewtube/viewtube/compare/v0.14.2...v0.14.3 +[unreleased]: https://github.com/viewtube/viewtube/compare/v0.15.0...development +[0.14.3]: https://github.com/viewtube/viewtube/compare/v0.14.2...v0.15.0 [0.14.2]: https://github.com/viewtube/viewtube/compare/v0.14.1...v0.14.2 [0.14.1]: https://github.com/viewtube/viewtube/compare/v0.14.0...v0.14.1 [0.14.0]: https://github.com/viewtube/viewtube/compare/v0.13.1...v0.14.0 diff --git a/client/components/admin/CreateUser.vue b/client/components/admin/CreateUser.vue new file mode 100644 index 000000000..46cb0d21e --- /dev/null +++ b/client/components/admin/CreateUser.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/client/components/admin/UserManagement.vue b/client/components/admin/UserManagement.vue new file mode 100644 index 000000000..dd0b1be84 --- /dev/null +++ b/client/components/admin/UserManagement.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/client/components/admin/Users.vue b/client/components/admin/Users.vue new file mode 100644 index 000000000..c57ca23f5 --- /dev/null +++ b/client/components/admin/Users.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/client/components/buttons/SwitchButton.vue b/client/components/buttons/SwitchButton.vue index c63575d05..566960aba 100644 --- a/client/components/buttons/SwitchButton.vue +++ b/client/components/buttons/SwitchButton.vue @@ -18,9 +18,17 @@
- + + +
@@ -33,7 +41,13 @@ export default defineComponent({ label: String, smallLabel: { type: String, - required: false + required: false, + default: null + }, + smallLabelNegative: { + type: String, + required: false, + default: null }, disabled: Boolean, right: { @@ -176,7 +190,9 @@ export default defineComponent({ background-color: var(--theme-color); display: block; position: absolute; - transition: background-color 300ms $intro-easing, left 300ms $overshoot-easing; + transition: + background-color 300ms $intro-easing, + left 300ms $overshoot-easing; } } } diff --git a/client/components/form/LoginForm.vue b/client/components/form/LoginForm.vue index 18e6c4352..2e05eb0e8 100644 --- a/client/components/form/LoginForm.vue +++ b/client/components/form/LoginForm.vue @@ -5,7 +5,7 @@ Usernames are case sensitive
- + diff --git a/client/components/form/RegisterForm.vue b/client/components/form/RegisterForm.vue index 88770699f..8cf50dd6e 100644 --- a/client/components/form/RegisterForm.vue +++ b/client/components/form/RegisterForm.vue @@ -90,7 +90,7 @@ captchaStore.getCaptcha(); Usernames are case sensitive
- + Sign in Sign in { - userStore.logout(); - closeAllPopups(); - }; const onEscape = (e: KeyboardEvent) => { if (e.key === 'Escape') { @@ -290,13 +287,13 @@ export default defineComponent({ openSubscriptions, getProfileImageUrl, login, - logout, register, loginOpen, registerOpen, onLoginClick, onRegisterClick, - userStore + userStore, + registrationEnabled }; } }); diff --git a/client/composables/api/admin.ts b/client/composables/api/admin.ts index 20e9b4a98..958b7bcda 100644 --- a/client/composables/api/admin.ts +++ b/client/composables/api/admin.ts @@ -16,9 +16,18 @@ export const useGetAdminInfo = () => { const { apiUrl } = useApiUrl(); const { vtFetch } = useVtFetch(); - return useLazyAsyncData>( - 'admin-info', - () => vtFetch(`${apiUrl.value}admin/info`), + return useLazyAsyncData('admin-info', () => vtFetch(`${apiUrl.value}admin/info`), { + server: false + }); +}; + +export const useGetServerSettings = () => { + const { apiUrl } = useApiUrl(); + const { vtFetch } = useVtFetch(); + + return useLazyAsyncData( + 'server-settings', + () => vtFetch>(`${apiUrl.value}admin/server-settings`), { server: false } @@ -36,3 +45,16 @@ export const useGetBlockedVideos = () => { } ); }; + +export const useCreateUser = () => { + const { apiUrl } = useApiUrl(); + const { vtFetch } = useVtFetch(); + + const createUser = async (data: { username: string; password: string }) => { + return vtFetch>(`${apiUrl.value}admin/users`, { + method: 'POST', + body: data + }); + }; + return { createUser }; +}; diff --git a/client/composables/registrationEnabled.ts b/client/composables/registrationEnabled.ts new file mode 100644 index 000000000..a9f30a036 --- /dev/null +++ b/client/composables/registrationEnabled.ts @@ -0,0 +1,6 @@ +export const useRegistrationEnabled = () => { + const config = useRuntimeConfig(); + return { + registrationEnabled: config.public.registrationEnabled + }; +}; diff --git a/client/composables/vtFetch.ts b/client/composables/vtFetch.ts index dec81aa0d..36cb20d04 100644 --- a/client/composables/vtFetch.ts +++ b/client/composables/vtFetch.ts @@ -62,7 +62,7 @@ export const useVtFetch = () => { requestOptions.headers = { ...requestOptions.headers, cookie: cookieHeader }; } - if (process.server && !options?.external && global.nestApp) { + if (process.server && !options?.external && global?.nestApp) { const response = await global.nestApp.inject({ method: (requestOptions.method ?? 'GET') as HTTPMethods, url: request.toString(), diff --git a/client/middleware/routeGuard.global.ts b/client/middleware/routeGuard.global.ts new file mode 100644 index 000000000..6d90ead02 --- /dev/null +++ b/client/middleware/routeGuard.global.ts @@ -0,0 +1,20 @@ +import { useUserStore } from '~/store/user'; + +export default defineNuxtRouteMiddleware((to, from) => { + const userStore = useUserStore(); + const config = useRuntimeConfig(); + + console.log('Route guard middleware'); + + if (userStore.isLoggedIn) { + if (to.path === '/login' || to.path === '/register') { + return navigateTo('/'); + } + } else if ( + config.public.requireLoginEverywhere === true && + to.path !== '/login' && + to.path !== '/register' + ) { + return navigateTo('/login'); + } +}); diff --git a/client/nuxt.config.ts b/client/nuxt.config.ts index e52799d97..db0844d01 100644 --- a/client/nuxt.config.ts +++ b/client/nuxt.config.ts @@ -6,7 +6,9 @@ export default defineNuxtConfig({ public: { vapidKey: process.env.VIEWTUBE_PUBLIC_VAPID, videoplaybackProxy: '', - githubHint: false + githubHint: false, + registrationEnabled: true, + requireLoginEverywhere: true } }, diff --git a/client/package.json b/client/package.json index 682b3daa6..24cb3b74f 100644 --- a/client/package.json +++ b/client/package.json @@ -20,15 +20,15 @@ "@pinia-plugin-persistedstate/nuxt": "1.2.0", "@pinia/nuxt": "0.5.1", "@types/humanize-duration": "3.27.3", - "@types/node": "20.10.5", + "@types/node": "20.10.6", "@types/papaparse": "5.3.14", "@types/qrcode": "1.5.5", "@types/ua-parser-js": "0.7.39", - "@typescript-eslint/eslint-plugin": "6.16.0", - "@typescript-eslint/parser": "6.16.0", + "@typescript-eslint/eslint-plugin": "6.17.0", + "@typescript-eslint/parser": "6.17.0", "@unocss/nuxt": "0.58.3", "@unocss/preset-icons": "0.58.3", - "@vueuse/core": "10.7.0", + "@vueuse/core": "10.7.1", "@vueuse/nuxt": "10.7.1", "consola": "3.2.3", "cross-env": "7.0.3", @@ -50,7 +50,7 @@ "papaparse": "5.4.1", "pinia": "2.1.7", "qrcode": "1.5.3", - "sass": "1.69.6", + "sass": "1.69.7", "swiper": "11.0.5", "tippy.js": "6.3.7", "typescript": "5.3.3", diff --git a/client/pages/admin.vue b/client/pages/admin.vue index 992c99fd5..2b0c8da39 100644 --- a/client/pages/admin.vue +++ b/client/pages/admin.vue @@ -3,6 +3,8 @@ + + diff --git a/client/pages/profile/index.vue b/client/pages/profile/index.vue index 5cc7a1056..2204bac68 100644 --- a/client/pages/profile/index.vue +++ b/client/pages/profile/index.vue @@ -172,9 +172,9 @@ const deleteProfileImage = () => { const deleteAccountValid = computed(() => { return repeatedUsername.value.length > 0 && repeatedUsername.value === userStore.username; }); -const logout = () => { - userStore.logout(); - router.push('/'); +const logout = async () => { + await userStore.logout(); + await router.push('/'); }; diff --git a/docker-compose.yml b/docker-compose.yml index 095b2666e..6dfc85d75 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,7 +16,8 @@ services: VIEWTUBE_DATABASE_HOST: viewtube-db VIEWTUBE_REDIS_HOST: viewtube-redis VIEWTUBE_DATA_DIRECTORY: /data - VIEWTUBE_CLUSTERED: 'false' + VIEWTUBE_CLUSTERED: false + VIEWTUBE_ADMIN_USER: admin viewtube-db: image: mongo diff --git a/package.json b/package.json index 492189b02..b54824fe6 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "author": "Maurice Oegerli", "country": "Switzerland", "email": "viewtube@m-o.dev", - "version": "0.14.2", + "version": "0.15.0", "license": "AGPLv3", "engines": { "node": ">=18.16.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1817b09c2..8a2b62bd9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,8 +45,8 @@ importers: specifier: 3.27.3 version: 3.27.3 '@types/node': - specifier: 20.10.5 - version: 20.10.5 + specifier: 20.10.6 + version: 20.10.6 '@types/papaparse': specifier: 5.3.14 version: 5.3.14 @@ -57,11 +57,11 @@ importers: specifier: 0.7.39 version: 0.7.39 '@typescript-eslint/eslint-plugin': - specifier: 6.16.0 - version: 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.17.0 + version: 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.16.0 - version: 6.16.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.17.0 + version: 6.17.0(eslint@8.56.0)(typescript@5.3.3) '@unocss/nuxt': specifier: 0.58.3 version: 0.58.3(postcss@8.4.32)(vite@5.0.10)(webpack@5.89.0) @@ -69,8 +69,8 @@ importers: specifier: 0.58.3 version: 0.58.3 '@vueuse/core': - specifier: 10.7.0 - version: 10.7.0(vue@3.4.3) + specifier: 10.7.1 + version: 10.7.1(vue@3.4.3) '@vueuse/nuxt': specifier: 10.7.1 version: 10.7.1(nuxt@3.9.0)(vue@3.4.3) @@ -124,7 +124,7 @@ importers: version: 3.10.0 nuxt: specifier: 3.9.0 - version: 3.9.0(@types/node@20.10.5)(eslint@8.56.0)(sass@1.69.6)(typescript@5.3.3)(vite@5.0.10)(vue-tsc@1.8.27) + version: 3.9.0(@types/node@20.10.6)(eslint@8.56.0)(sass@1.69.7)(typescript@5.3.3)(vite@5.0.10)(vue-tsc@1.8.27) papaparse: specifier: 5.4.1 version: 5.4.1(patch_hash=qkk65lc3l6wlngad3wq4nzv2yi) @@ -135,8 +135,8 @@ importers: specifier: 1.5.3 version: 1.5.3 sass: - specifier: 1.69.6 - version: 1.69.6 + specifier: 1.69.7 + version: 1.69.7 swiper: specifier: 11.0.5 version: 11.0.5 @@ -328,8 +328,8 @@ importers: specifier: 1.4.6 version: 1.4.6 '@types/eslint': - specifier: 8.56.0 - version: 8.56.0 + specifier: 8.56.1 + version: 8.56.1 '@types/humanize-duration': specifier: 3.27.3 version: 3.27.3 @@ -340,8 +340,8 @@ importers: specifier: 1.4.11 version: 1.4.11 '@types/node': - specifier: 20.10.5 - version: 20.10.5 + specifier: 20.10.6 + version: 20.10.6 '@types/redis-mock': specifier: 0.17.3 version: 0.17.3 @@ -355,11 +355,11 @@ importers: specifier: 0.11.6 version: 0.11.6 '@typescript-eslint/eslint-plugin': - specifier: 6.16.0 - version: 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.17.0 + version: 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: 6.16.0 - version: 6.16.0(eslint@8.56.0)(typescript@5.3.3) + specifier: 6.17.0 + version: 6.17.0(eslint@8.56.0)(typescript@5.3.3) cross-env: specifier: 7.0.3 version: 7.0.3 @@ -409,8 +409,8 @@ importers: specifier: 7.0.3 version: 7.0.3 cypress: - specifier: 13.6.1 - version: 13.6.1 + specifier: 13.6.2 + version: 13.6.2 cypress-commands: specifier: 3.0.0 version: 3.0.0 @@ -436,8 +436,8 @@ importers: specifier: 8.56.0 version: 8.56.0 eslint-plugin-jest: - specifier: 27.6.0 - version: 27.6.0(eslint@8.56.0)(jest@29.7.0)(typescript@5.3.3) + specifier: 27.6.1 + version: 27.6.1(eslint@8.56.0)(jest@29.7.0)(typescript@5.3.3) jest: specifier: 29.7.0 version: 29.7.0 @@ -532,6 +532,14 @@ packages: resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==} dev: true + /@babel/code-frame@7.23.4: + resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + dev: true + /@babel/code-frame@7.23.5: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} @@ -540,11 +548,62 @@ packages: chalk: 2.4.2 dev: true + /@babel/compat-data@7.23.3: + resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/compat-data@7.23.5: resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} dev: true + /@babel/core@7.23.3: + resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.4 + '@babel/generator': 7.23.4 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/helpers': 7.23.4 + '@babel/parser': 7.23.5 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.4 + '@babel/types': 7.23.5 + convert-source-map: 2.0.0 + debug: 4.3.4(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/core@7.23.6: + resolution: {integrity: sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helpers': 7.23.6 + '@babel/parser': 7.23.6 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + convert-source-map: 2.0.0 + debug: 4.3.4(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/core@7.23.7: resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} engines: {node: '>=6.9.0'} @@ -568,6 +627,16 @@ packages: - supports-color dev: true + /@babel/generator@7.23.4: + resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + jsesc: 2.5.2 + dev: true + /@babel/generator@7.23.6: resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} @@ -585,6 +654,17 @@ packages: '@babel/types': 7.23.6 dev: true + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.3 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + dev: true + /@babel/helper-compilation-targets@7.23.6: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} @@ -596,8 +676,26 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.7): - resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} + /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.7): + resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -648,6 +746,34 @@ packages: '@babel/types': 7.23.6 dev: true + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} @@ -674,6 +800,18 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.6): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} @@ -717,11 +855,38 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-option@7.23.5: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} dev: true + /@babel/helpers@7.23.4: + resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.4 + '@babel/types': 7.23.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers@7.23.6: + resolution: {integrity: sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.6 + '@babel/types': 7.23.6 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/helpers@7.23.7: resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} engines: {node: '>=6.9.0'} @@ -742,6 +907,14 @@ packages: js-tokens: 4.0.0 dev: true + /@babel/parser@7.23.5: + resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.6 + dev: true + /@babel/parser@7.23.6: resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} engines: {node: '>=6.0.0'} @@ -750,80 +923,112 @@ packages: '@babel/types': 7.23.6 dev: true - /@babel/plugin-proposal-decorators@7.23.7(@babel/core@7.23.7): - resolution: {integrity: sha512-b1s5JyeMvqj7d9m9KhJNHKc18gEJiSyVzVX3bwbiPalQBQpuvfPh6lA9F7Kk/dWH0TIiXRpB9yicwijY6buPng==} + /@babel/plugin-proposal-decorators@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-D7Ccq9LfkBFnow3azZGJvZYgcfeqAw3I1e5LoTpj6UKIFQilh8yqXsIGcRIqbBdsPWIz+Ze7ZZfggSj62Qp+Fg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/core': 7.23.6 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.7) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.6) dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.7): + /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.7): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.6): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.6): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -837,67 +1042,87 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.6): + resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 dev: true @@ -923,6 +1148,19 @@ packages: '@babel/helper-simple-access': 7.22.5 dev: true + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.6): + resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.6 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6) + dev: true + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.7): resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} engines: {node: '>=6.9.0'} @@ -931,7 +1169,7 @@ packages: dependencies: '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) dev: true @@ -950,18 +1188,54 @@ packages: '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) dev: true - /@babel/standalone@7.23.7: - resolution: {integrity: sha512-AsO3aIh9I4qIqK61d6nPxPAdrSuWF4FmOLej3xNIkBIZj+8XJGArQQJw6DnuUkkqbsLp1fARkXOdKiuqWgac0Q==} + /@babel/standalone@7.23.4: + resolution: {integrity: sha512-cXT2Xi9YVJEi7kLjqoeZBXjrNt1PASOh4Zi3jp5yXT06Gt4ZeRETfYH9y5x3RQhFTpNxaA1300lzK1obiy6tcQ==} engines: {node: '>=6.9.0'} dev: true /@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.4 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + dev: true + + /@babel/traverse@7.23.4: + resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.4 + '@babel/generator': 7.23.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/traverse@7.23.6: + resolution: {integrity: sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==} + engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 '@babel/parser': 7.23.6 '@babel/types': 7.23.6 + debug: 4.3.4(supports-color@8.1.1) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color dev: true /@babel/traverse@7.23.7: @@ -982,6 +1256,15 @@ packages: - supports-color dev: true + /@babel/types@7.23.5: + resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + /@babel/types@7.23.6: resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} @@ -1062,8 +1345,8 @@ packages: dev: false optional: true - /@esbuild/aix-ppc64@0.19.11: - resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} + /@esbuild/aix-ppc64@0.19.10: + resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] @@ -1071,8 +1354,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64@0.19.11: - resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} + /@esbuild/android-arm64@0.19.10: + resolution: {integrity: sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -1080,8 +1363,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.19.11: - resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} + /@esbuild/android-arm@0.19.10: + resolution: {integrity: sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -1089,8 +1372,8 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.19.11: - resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} + /@esbuild/android-x64@0.19.10: + resolution: {integrity: sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -1098,8 +1381,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.19.11: - resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} + /@esbuild/darwin-arm64@0.19.10: + resolution: {integrity: sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -1107,8 +1390,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.19.11: - resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} + /@esbuild/darwin-x64@0.19.10: + resolution: {integrity: sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -1116,8 +1399,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.19.11: - resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} + /@esbuild/freebsd-arm64@0.19.10: + resolution: {integrity: sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -1125,8 +1408,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.19.11: - resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} + /@esbuild/freebsd-x64@0.19.10: + resolution: {integrity: sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -1134,8 +1417,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.19.11: - resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} + /@esbuild/linux-arm64@0.19.10: + resolution: {integrity: sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -1143,8 +1426,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.19.11: - resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} + /@esbuild/linux-arm@0.19.10: + resolution: {integrity: sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -1152,8 +1435,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.19.11: - resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} + /@esbuild/linux-ia32@0.19.10: + resolution: {integrity: sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1161,8 +1444,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.19.11: - resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} + /@esbuild/linux-loong64@0.19.10: + resolution: {integrity: sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -1170,8 +1453,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.19.11: - resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} + /@esbuild/linux-mips64el@0.19.10: + resolution: {integrity: sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -1179,8 +1462,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.19.11: - resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} + /@esbuild/linux-ppc64@0.19.10: + resolution: {integrity: sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -1188,8 +1471,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.19.11: - resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} + /@esbuild/linux-riscv64@0.19.10: + resolution: {integrity: sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -1197,8 +1480,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.19.11: - resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} + /@esbuild/linux-s390x@0.19.10: + resolution: {integrity: sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -1206,8 +1489,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.19.11: - resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} + /@esbuild/linux-x64@0.19.10: + resolution: {integrity: sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1215,8 +1498,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.19.11: - resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} + /@esbuild/netbsd-x64@0.19.10: + resolution: {integrity: sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1224,8 +1507,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.19.11: - resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} + /@esbuild/openbsd-x64@0.19.10: + resolution: {integrity: sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1233,8 +1516,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.19.11: - resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} + /@esbuild/sunos-x64@0.19.10: + resolution: {integrity: sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1242,8 +1525,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.19.11: - resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} + /@esbuild/win32-arm64@0.19.10: + resolution: {integrity: sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -1251,8 +1534,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.19.11: - resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} + /@esbuild/win32-ia32@0.19.10: + resolution: {integrity: sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1260,8 +1543,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.19.11: - resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} + /@esbuild/win32-x64@0.19.10: + resolution: {integrity: sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1355,7 +1638,7 @@ packages: /@fastify/fast-json-stringify-compiler@4.3.0: resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} dependencies: - fast-json-stringify: 5.9.2 + fast-json-stringify: 5.9.1 dev: false /@fastify/formbody@7.4.0: @@ -1388,7 +1671,7 @@ packages: '@fastify/deepmerge': 1.3.0 '@fastify/error': 3.4.1 '@fastify/swagger': 8.13.0 - '@fastify/swagger-ui': 1.10.2 + '@fastify/swagger-ui': 1.10.1 fastify-plugin: 4.5.1 secure-json-parse: 2.7.0 stream-wormhole: 1.1.0 @@ -1399,7 +1682,7 @@ packages: /@fastify/send@2.1.0: resolution: {integrity: sha512-yNYiY6sDkexoJR0D8IDy3aRP3+L4wdqCpvx5WP+VtEU58sn7USmKynBzDQex5X42Zzvw2gNzzYgP90UfWShLFA==} dependencies: - '@lukeed/ms': 2.0.2 + '@lukeed/ms': 2.0.1 escape-html: 1.0.3 fast-decode-uri-component: 1.0.1 http-errors: 2.0.0 @@ -1417,8 +1700,8 @@ packages: p-limit: 3.1.0 dev: false - /@fastify/swagger-ui@1.10.2: - resolution: {integrity: sha512-f2mRqtblm6eRAFQ3e8zSngxVNEtiYY7rISKQVjPA++ZsWc5WYlPVTb6Bx0G/zy0BIoucNqDr/Q2Vb/kTYkOq1A==} + /@fastify/swagger-ui@1.10.1: + resolution: {integrity: sha512-u3EJqNKvVr3X+6jY5i6pbs6/tXCrSlqc2Y+PVjnHBTOGh/d36uHMz+z4jPFy9gie2my6iHUrAdM8itlVmoUjog==} dependencies: '@fastify/static': 6.12.0 fastify-plugin: 4.5.1 @@ -1857,7 +2140,7 @@ packages: slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - v8-to-istanbul: 9.2.0 + v8-to-istanbul: 9.1.3 transitivePeerDependencies: - supports-color dev: true @@ -1902,7 +2185,7 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.20 babel-plugin-istanbul: 6.1.1 @@ -1993,8 +2276,8 @@ packages: resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} engines: {node: '>=8'} - /@lukeed/ms@2.0.2: - resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==} + /@lukeed/ms@2.0.1: + resolution: {integrity: sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA==} engines: {node: '>=8'} dev: false @@ -2428,7 +2711,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.16.0 + fastq: 1.15.0 dev: true /@nolyfill/side-channel@1.0.24: @@ -2519,8 +2802,8 @@ packages: '@nuxt/kit': 3.9.0 '@nuxt/schema': 3.9.0 execa: 7.2.0 - nuxt: 3.9.0(@types/node@20.10.5)(eslint@8.56.0)(sass@1.69.6)(typescript@5.3.3)(vite@5.0.10)(vue-tsc@1.8.27) - vite: 5.0.10(@types/node@20.10.5)(sass@1.69.6) + nuxt: 3.9.0(@types/node@20.10.6)(eslint@8.56.0)(sass@1.69.7)(typescript@5.3.3)(vite@5.0.10)(vue-tsc@1.8.27) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.7) transitivePeerDependencies: - rollup - supports-color @@ -2569,8 +2852,8 @@ packages: local-pkg: 0.5.0 magicast: 0.3.2 nitropack: 2.8.1 - nuxt: 3.9.0(@types/node@20.10.5)(eslint@8.56.0)(sass@1.69.6)(typescript@5.3.3)(vite@5.0.10)(vue-tsc@1.8.27) - nypm: 0.3.4 + nuxt: 3.9.0(@types/node@20.10.6)(eslint@8.56.0)(sass@1.69.7)(typescript@5.3.3)(vite@5.0.10)(vue-tsc@1.8.27) + nypm: 0.3.3 ofetch: 1.3.3 ohash: 1.1.3 pacote: 17.0.5 @@ -2580,14 +2863,14 @@ packages: rc9: 2.1.1 scule: 1.1.1 semver: 7.5.4 - simple-git: 3.22.0 + simple-git: 3.21.0 sirv: 2.0.4 - unimport: 3.7.1(rollup@4.9.2) - vite: 5.0.10(@types/node@20.10.5)(sass@1.69.6) + unimport: 3.7.0(rollup@4.9.1) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.7) vite-plugin-inspect: 0.8.1(@nuxt/kit@3.9.0)(vite@5.0.10) vite-plugin-vue-inspector: 4.0.2(vite@5.0.10) which: 3.0.1 - ws: 8.16.0 + ws: 8.15.1 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -2615,9 +2898,9 @@ packages: peerDependencies: eslint: ^8.48.0 dependencies: - '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/eslint-plugin': 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@rushstack/eslint-patch': 1.5.1 + '@typescript-eslint/eslint-plugin': 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-plugin-vue: 9.19.2(eslint@8.56.0) typescript: 5.3.3 @@ -2625,27 +2908,74 @@ packages: - supports-color dev: true + /@nuxt/kit@3.8.2: + resolution: {integrity: sha512-LrXCm8hAkw+zpX8teUSD/LqXRarlXjbRiYxDkaqw739JSHFReWzBFgJbojsJqL4h1XIEScDGGOWiEgO4QO1sMg==} + engines: {node: ^14.18.0 || >=16.10.0} + dependencies: + '@nuxt/schema': 3.8.2 + c12: 1.5.1 + consola: 3.2.3 + defu: 6.1.3 + globby: 14.0.0 + hash-sum: 2.0.0 + ignore: 5.3.0 + jiti: 1.21.0 + knitwork: 1.0.0 + mlly: 1.4.2 + pathe: 1.1.1 + pkg-types: 1.0.3 + scule: 1.1.0 + semver: 7.5.4 + ufo: 1.3.2 + unctx: 2.3.1 + unimport: 3.5.0 + untyped: 1.4.0 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + /@nuxt/kit@3.9.0: resolution: {integrity: sha512-XVFQihMTXM5y7Xj7EXbcDbUbxNkC8+ArQKArAH5PK1ulCWZWyP+VR94Gg2boo9vI2eNLTs+LquxnOtOHRQrg0A==} engines: {node: ^14.18.0 || >=16.10.0} dependencies: '@nuxt/schema': 3.9.0 - c12: 1.6.1 + c12: 1.5.1 + consola: 3.2.3 + defu: 6.1.3 + globby: 14.0.0 + hash-sum: 2.0.0 + ignore: 5.3.0 + jiti: 1.21.0 + knitwork: 1.0.0 + mlly: 1.4.2 + pathe: 1.1.1 + pkg-types: 1.0.3 + scule: 1.1.1 + semver: 7.5.4 + ufo: 1.3.2 + unctx: 2.3.1 + unimport: 3.7.0(rollup@4.9.1) + untyped: 1.4.0 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /@nuxt/schema@3.8.2: + resolution: {integrity: sha512-AMpysQ/wHK2sOujLShqYdC4OSj/S3fFJGjhYXqA2g6dgmz+FNQWJRG/ie5sI9r2EX9Ela1wt0GN1jZR3wYNE8Q==} + engines: {node: ^14.18.0 || >=16.10.0} + dependencies: + '@nuxt/ui-templates': 1.3.1 consola: 3.2.3 defu: 6.1.3 - globby: 14.0.0 - hash-sum: 2.0.0 - ignore: 5.3.0 - jiti: 1.21.0 - knitwork: 1.0.0 - mlly: 1.4.2 + hookable: 5.5.3 pathe: 1.1.1 pkg-types: 1.0.3 scule: 1.1.1 - semver: 7.5.4 + std-env: 3.5.0 ufo: 1.3.2 - unctx: 2.3.1 - unimport: 3.7.1(rollup@4.9.2) + unimport: 3.7.0(rollup@4.9.1) untyped: 1.4.0 transitivePeerDependencies: - rollup @@ -2665,7 +2995,7 @@ packages: scule: 1.1.1 std-env: 3.7.0 ufo: 1.3.2 - unimport: 3.7.1(rollup@4.9.2) + unimport: 3.7.0(rollup@4.9.1) untyped: 1.4.0 transitivePeerDependencies: - rollup @@ -2702,22 +3032,22 @@ packages: resolution: {integrity: sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA==} dev: true - /@nuxt/vite-builder@3.9.0(@types/node@20.10.5)(eslint@8.56.0)(sass@1.69.6)(typescript@5.3.3)(vue-tsc@1.8.27)(vue@3.4.3): + /@nuxt/vite-builder@3.9.0(@types/node@20.10.6)(eslint@8.56.0)(sass@1.69.7)(typescript@5.3.3)(vue-tsc@1.8.27)(vue@3.4.3): resolution: {integrity: sha512-aJmFv79iuEF0tw79kLgS0LEPgc4WSqIANncNmAu3IIf2zbDQ6iY06eXHVeXShmckbWGlKGaM8L/e8oQNdQdv6g==} engines: {node: ^14.18.0 || >=16.10.0} peerDependencies: vue: ^3.3.4 dependencies: '@nuxt/kit': 3.9.0 - '@rollup/plugin-replace': 5.0.5(rollup@4.9.2) - '@vitejs/plugin-vue': 5.0.2(vite@5.0.10)(vue@3.4.3) + '@rollup/plugin-replace': 5.0.5(rollup@4.9.1) + '@vitejs/plugin-vue': 5.0.0(vite@5.0.10)(vue@3.4.3) '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.0.10)(vue@3.4.3) autoprefixer: 10.4.16(postcss@8.4.32) clear: 0.1.0 consola: 3.2.3 cssnano: 6.0.2(postcss@8.4.32) defu: 6.1.3 - esbuild: 0.19.11 + esbuild: 0.19.10 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 externality: 1.0.2 @@ -2732,13 +3062,13 @@ packages: perfect-debounce: 1.0.0 pkg-types: 1.0.3 postcss: 8.4.32 - rollup-plugin-visualizer: 5.12.0(rollup@4.9.2) + rollup-plugin-visualizer: 5.11.0(rollup@4.9.1) std-env: 3.7.0 strip-literal: 1.3.0 ufo: 1.3.2 - unplugin: 1.6.0 - vite: 5.0.10(@types/node@20.10.5)(sass@1.69.6) - vite-node: 1.1.1(@types/node@20.10.5)(sass@1.69.6) + unplugin: 1.5.1 + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.7) + vite-node: 1.1.0(@types/node@20.10.6)(sass@1.69.7) vite-plugin-checker: 0.6.2(eslint@8.56.0)(typescript@5.3.3)(vite@5.0.10)(vue-tsc@1.8.27) vue: 3.4.3(typescript@5.3.3) vue-bundle-renderer: 2.0.0 @@ -2860,6 +3190,7 @@ packages: dependencies: is-glob: 4.0.3 micromatch: 4.0.5 + napi-wasm: 1.1.0 dev: true bundledDependencies: - napi-wasm @@ -2919,10 +3250,10 @@ packages: peerDependencies: '@pinia/nuxt': ^0.5.0 dependencies: - '@nuxt/kit': 3.9.0 + '@nuxt/kit': 3.8.2 '@pinia/nuxt': 0.5.1(typescript@5.3.3)(vue@3.4.3) defu: 6.1.3 - pinia-plugin-persistedstate: 3.2.1(pinia@2.1.7) + pinia-plugin-persistedstate: 3.2.0(pinia@2.1.7) transitivePeerDependencies: - pinia - rollup @@ -2932,7 +3263,7 @@ packages: /@pinia/nuxt@0.5.1(typescript@5.3.3)(vue@3.4.3): resolution: {integrity: sha512-6wT6TqY81n+7/x3Yhf0yfaJVKkZU42AGqOR0T3+UvChcaOJhSma7OWPN64v+ptYlznat+fS1VTwNAcbi2lzHnw==} dependencies: - '@nuxt/kit': 3.9.0 + '@nuxt/kit': 3.8.2 pinia: 2.1.7(typescript@5.3.3)(vue@3.4.3) transitivePeerDependencies: - '@vue/composition-api' @@ -2957,6 +3288,14 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: true + /@redis/bloom@1.2.0(@redis/client@1.5.12): + resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==} + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': 1.5.12 + dev: false + /@redis/bloom@1.2.0(@redis/client@1.5.13): resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==} peerDependencies: @@ -2964,6 +3303,15 @@ packages: dependencies: '@redis/client': 1.5.13 + /@redis/client@1.5.12: + resolution: {integrity: sha512-/ZjE18HRzMd80eXIIUIPcH81UoZpwulbo8FmbElrjPqH0QC0SeIKu1BOU49bO5trM5g895kAjhvalt5h77q+4A==} + engines: {node: '>=14'} + dependencies: + cluster-key-slot: 1.1.2 + generic-pool: 3.9.0 + yallist: 4.0.0 + dev: false + /@redis/client@1.5.13: resolution: {integrity: sha512-epkUM9D0Sdmt93/8Ozk43PNjLi36RZzG+d/T1Gdu5AI8jvghonTeLYV69WVWdilvFo+PYxbP0TZ0saMvr6nscQ==} engines: {node: '>=14'} @@ -2972,6 +3320,14 @@ packages: generic-pool: 3.9.0 yallist: 4.0.0 + /@redis/graph@1.1.1(@redis/client@1.5.12): + resolution: {integrity: sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==} + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': 1.5.12 + dev: false + /@redis/graph@1.1.1(@redis/client@1.5.13): resolution: {integrity: sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==} peerDependencies: @@ -2979,6 +3335,14 @@ packages: dependencies: '@redis/client': 1.5.13 + /@redis/json@1.0.6(@redis/client@1.5.12): + resolution: {integrity: sha512-rcZO3bfQbm2zPRpqo82XbW8zg4G/w4W3tI7X8Mqleq9goQjAGLL7q/1n1ZX4dXEAmORVZ4s1+uKLaUOg7LrUhw==} + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': 1.5.12 + dev: false + /@redis/json@1.0.6(@redis/client@1.5.13): resolution: {integrity: sha512-rcZO3bfQbm2zPRpqo82XbW8zg4G/w4W3tI7X8Mqleq9goQjAGLL7q/1n1ZX4dXEAmORVZ4s1+uKLaUOg7LrUhw==} peerDependencies: @@ -2986,6 +3350,14 @@ packages: dependencies: '@redis/client': 1.5.13 + /@redis/search@1.1.6(@redis/client@1.5.12): + resolution: {integrity: sha512-mZXCxbTYKBQ3M2lZnEddwEAks0Kc7nauire8q20oA0oA/LoA+E/b5Y5KZn232ztPb1FkIGqo12vh3Lf+Vw5iTw==} + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': 1.5.12 + dev: false + /@redis/search@1.1.6(@redis/client@1.5.13): resolution: {integrity: sha512-mZXCxbTYKBQ3M2lZnEddwEAks0Kc7nauire8q20oA0oA/LoA+E/b5Y5KZn232ztPb1FkIGqo12vh3Lf+Vw5iTw==} peerDependencies: @@ -2993,6 +3365,14 @@ packages: dependencies: '@redis/client': 1.5.13 + /@redis/time-series@1.0.5(@redis/client@1.5.12): + resolution: {integrity: sha512-IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg==} + peerDependencies: + '@redis/client': ^1.0.0 + dependencies: + '@redis/client': 1.5.12 + dev: false + /@redis/time-series@1.0.5(@redis/client@1.5.13): resolution: {integrity: sha512-IFjIgTusQym2B5IZJG3XKr5llka7ey84fw/NOYqESP5WUfQs9zz1ww/9+qoz4ka/S6KcGBodzlCeZ5UImKbscg==} peerDependencies: @@ -3000,7 +3380,7 @@ packages: dependencies: '@redis/client': 1.5.13 - /@rollup/plugin-alias@5.1.0(rollup@4.9.2): + /@rollup/plugin-alias@5.1.0(rollup@4.9.1): resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3009,11 +3389,11 @@ packages: rollup: optional: true dependencies: - rollup: 4.9.2 + rollup: 4.9.1 slash: 4.0.0 dev: true - /@rollup/plugin-commonjs@25.0.7(rollup@4.9.2): + /@rollup/plugin-commonjs@25.0.7(rollup@4.9.1): resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3022,16 +3402,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.30.5 - rollup: 4.9.2 + rollup: 4.9.1 dev: true - /@rollup/plugin-inject@5.0.5(rollup@4.9.2): + /@rollup/plugin-inject@5.0.5(rollup@4.9.1): resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3040,13 +3420,13 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) estree-walker: 2.0.2 magic-string: 0.30.5 - rollup: 4.9.2 + rollup: 4.9.1 dev: true - /@rollup/plugin-json@6.1.0(rollup@4.9.2): + /@rollup/plugin-json@6.1.0(rollup@4.9.1): resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3055,11 +3435,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) - rollup: 4.9.2 + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) + rollup: 4.9.1 dev: true - /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.2): + /@rollup/plugin-node-resolve@15.2.3(rollup@4.9.1): resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3068,16 +3448,16 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.8 - rollup: 4.9.2 + rollup: 4.9.1 dev: true - /@rollup/plugin-replace@5.0.5(rollup@4.9.2): + /@rollup/plugin-replace@5.0.5(rollup@4.9.1): resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3086,12 +3466,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) magic-string: 0.30.5 - rollup: 4.9.2 + rollup: 4.9.1 dev: true - /@rollup/plugin-terser@0.4.4(rollup@4.9.2): + /@rollup/plugin-terser@0.4.4(rollup@4.9.1): resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3100,13 +3480,13 @@ packages: rollup: optional: true dependencies: - rollup: 4.9.2 + rollup: 4.9.1 serialize-javascript: 6.0.1 smob: 1.4.1 terser: 5.26.0 dev: true - /@rollup/plugin-wasm@6.2.2(rollup@4.9.2): + /@rollup/plugin-wasm@6.2.2(rollup@4.9.1): resolution: {integrity: sha512-gpC4R1G9Ni92ZIRTexqbhX7U+9estZrbhP+9SRb0DW9xpB9g7j34r+J2hqrcW/lRI7dJaU84MxZM0Rt82tqYPQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3115,8 +3495,8 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) - rollup: 4.9.2 + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) + rollup: 4.9.1 dev: true /@rollup/pluginutils@4.2.1: @@ -3127,7 +3507,21 @@ packages: picomatch: 2.3.1 dev: true - /@rollup/pluginutils@5.1.0(rollup@4.9.2): + /@rollup/pluginutils@5.0.5: + resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@rollup/pluginutils@5.1.0(rollup@4.9.1): resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} engines: {node: '>=14.0.0'} peerDependencies: @@ -3139,115 +3533,115 @@ packages: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 4.9.2 + rollup: 4.9.1 dev: true - /@rollup/rollup-android-arm-eabi@4.9.2: - resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==} + /@rollup/rollup-android-arm-eabi@4.9.1: + resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.2: - resolution: {integrity: sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==} + /@rollup/rollup-android-arm64@4.9.1: + resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.2: - resolution: {integrity: sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==} + /@rollup/rollup-darwin-arm64@4.9.1: + resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.2: - resolution: {integrity: sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==} + /@rollup/rollup-darwin-x64@4.9.1: + resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.2: - resolution: {integrity: sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.9.1: + resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.2: - resolution: {integrity: sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==} + /@rollup/rollup-linux-arm64-gnu@4.9.1: + resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.2: - resolution: {integrity: sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==} + /@rollup/rollup-linux-arm64-musl@4.9.1: + resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.2: - resolution: {integrity: sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==} + /@rollup/rollup-linux-riscv64-gnu@4.9.1: + resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.2: - resolution: {integrity: sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==} + /@rollup/rollup-linux-x64-gnu@4.9.1: + resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.2: - resolution: {integrity: sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==} + /@rollup/rollup-linux-x64-musl@4.9.1: + resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.2: - resolution: {integrity: sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==} + /@rollup/rollup-win32-arm64-msvc@4.9.1: + resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.2: - resolution: {integrity: sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==} + /@rollup/rollup-win32-ia32-msvc@4.9.1: + resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.2: - resolution: {integrity: sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==} + /@rollup/rollup-win32-x64-msvc@4.9.1: + resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /@rushstack/eslint-patch@1.6.1: - resolution: {integrity: sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==} + /@rushstack/eslint-patch@1.5.1: + resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} dev: true /@sideway/address@4.1.4: @@ -3347,13 +3741,13 @@ packages: dependencies: '@babel/parser': 7.23.6 '@babel/types': 7.23.6 - '@types/babel__generator': 7.6.8 + '@types/babel__generator': 7.6.7 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.4 dev: true - /@types/babel__generator@7.6.8: - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + /@types/babel__generator@7.6.7: + resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} dependencies: '@babel/types': 7.23.6 dev: true @@ -3365,8 +3759,8 @@ packages: '@babel/types': 7.23.6 dev: true - /@types/babel__traverse@7.20.5: - resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + /@types/babel__traverse@7.20.4: + resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} dependencies: '@babel/types': 7.23.6 dev: true @@ -3379,13 +3773,13 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/cookie-parser@1.4.6: @@ -3397,12 +3791,12 @@ packages: /@types/eslint-scope@3.7.7: resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} dependencies: - '@types/eslint': 8.56.0 + '@types/eslint': 8.56.1 '@types/estree': 1.0.5 dev: true - /@types/eslint@8.56.0: - resolution: {integrity: sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==} + /@types/eslint@8.56.1: + resolution: {integrity: sha512-18PLWRzhy9glDQp3+wOgfLYRWlhgX0azxgJ63rdpoUHyrC9z0f5CkFburjQx4uD7ZCruw85ZtMt6K+L+R8fLJQ==} dependencies: '@types/estree': 1.0.5 '@types/json-schema': 7.0.15 @@ -3415,8 +3809,8 @@ packages: /@types/express-serve-static-core@4.17.41: resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} dependencies: - '@types/node': 20.10.5 - '@types/qs': 6.9.11 + '@types/node': 20.10.6 + '@types/qs': 6.9.10 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 dev: true @@ -3426,7 +3820,7 @@ packages: dependencies: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.17.41 - '@types/qs': 6.9.11 + '@types/qs': 6.9.10 '@types/serve-static': 1.15.5 dev: true @@ -3443,7 +3837,7 @@ packages: /@types/http-proxy@1.17.14: resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/humanize-duration@3.27.3: @@ -3480,15 +3874,15 @@ packages: /@types/jsonwebtoken@9.0.5: resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: false /@types/linkify-it@3.0.5: resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} dev: true - /@types/luxon@3.3.7: - resolution: {integrity: sha512-gKc9P2d4g5uYwmy4s/MO/yOVPmvHyvzka1YH6i5dM03UrFofHSmgc0D0ymbDRStFWHusk6cwwF6nhLm/ckBbbQ==} + /@types/luxon@3.3.5: + resolution: {integrity: sha512-1cyf6Ge/94zlaWIZA2ei1pE6SZ8xpad2hXaYa5JEFiaUH0YS494CZwyi4MXNpXD9oEuv6ZH0Bmh0e7F9sPhmZA==} dev: false /@types/markdown-it@12.2.3: @@ -3530,21 +3924,27 @@ packages: resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} dependencies: undici-types: 5.26.5 + dev: true + + /@types/node@20.10.6: + resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} + dependencies: + undici-types: 5.26.5 /@types/papaparse@5.3.14: resolution: {integrity: sha512-LxJ4iEFcpqc6METwp9f6BV6VVc43m6MfH0VqFosHvrUgfXiFe6ww7R3itkOQ+TCK6Y+Iv/+RnnvtRZnkc5Kc9g==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/qrcode@1.5.5: resolution: {integrity: sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true - /@types/qs@6.9.11: - resolution: {integrity: sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==} + /@types/qs@6.9.10: + resolution: {integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==} dev: true /@types/range-parser@1.2.7: @@ -3554,7 +3954,7 @@ packages: /@types/readdir-glob@1.1.5: resolution: {integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/redis-mock@0.17.3: @@ -3566,7 +3966,7 @@ packages: /@types/redis@2.8.32: resolution: {integrity: sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/resolve@1.20.2: @@ -3581,7 +3981,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/serve-static@1.15.5: @@ -3589,7 +3989,7 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/sinonjs__fake-timers@8.1.1: @@ -3622,7 +4022,7 @@ packages: /@types/web-push@3.6.3: resolution: {integrity: sha512-v3oT4mMJsHeJ/rraliZ+7TbZtr5bQQuxcgD7C3/1q/zkAj29c8RE0F9lVZVu3hiQe5Z9fYcBreV7TLnfKR+4mg==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/webidl-conversions@7.0.3: @@ -3631,7 +4031,7 @@ packages: /@types/webpack-node-externals@3.0.4: resolution: {integrity: sha512-8Z3/edqxE3RRlOJwKSgOFxLZRt/i1qFlv/Bi308ZUKo9jh8oGngd9r8GR0ZNKW5AEJq8QNQE3b17CwghTjQ0Uw==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 webpack: 5.89.0 transitivePeerDependencies: - '@swc/core' @@ -3643,13 +4043,13 @@ packages: /@types/whatwg-url@8.2.2: resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 '@types/webidl-conversions': 7.0.3 /@types/xml2json@0.11.6: resolution: {integrity: sha512-OYZ5cB4zctk4JdK1MGdLmeBMdmg+/AClCUspQ6KtQ2vZLJkSpm0XWE9H0vCfCGlXvbqn9CBqIda2dXX2KAE/5w==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/yargs-parser@21.0.3: @@ -3666,12 +4066,12 @@ packages: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} requiresBuild: true dependencies: - '@types/node': 20.10.5 + '@types/node': 18.19.4 dev: true optional: true - /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} + /@typescript-eslint/eslint-plugin@6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-Vih/4xLXmY7V490dGwBQJTpIZxH4ZFH6eCVmQ4RFkB+wmaCTDAx4dtgoWwMNGKLkqRY1L6rPqzEbjorRnDo4rQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -3682,11 +4082,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.17.0 + '@typescript-eslint/type-utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.17.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 graphemer: 1.4.0 @@ -3699,8 +4099,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} + /@typescript-eslint/parser@6.17.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -3709,10 +4109,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/scope-manager': 6.17.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.17.0 debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 typescript: 5.3.3 @@ -3728,16 +4128,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.16.0: - resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==} + /@typescript-eslint/scope-manager@6.17.0: + resolution: {integrity: sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/visitor-keys': 6.17.0 dev: true - /@typescript-eslint/type-utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} + /@typescript-eslint/type-utils@6.17.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -3746,8 +4146,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4(supports-color@8.1.1) eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -3761,8 +4161,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.16.0: - resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==} + /@typescript-eslint/types@6.17.0: + resolution: {integrity: sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -3787,8 +4187,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.16.0(typescript@5.3.3): - resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==} + /@typescript-eslint/typescript-estree@6.17.0(typescript@5.3.3): + resolution: {integrity: sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -3796,8 +4196,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/visitor-keys': 6.17.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 @@ -3829,8 +4229,8 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} + /@typescript-eslint/utils@6.17.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -3838,9 +4238,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.17.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -3856,11 +4256,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.16.0: - resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==} + /@typescript-eslint/visitor-keys@6.17.0: + resolution: {integrity: sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/types': 6.17.0 eslint-visitor-keys: 3.4.3 dev: true @@ -3918,7 +4318,7 @@ packages: '@unocss/core': 0.58.3 '@unocss/reset': 0.58.3 '@unocss/vite': 0.58.3(vite@5.0.10) - vite: 5.0.10(@types/node@20.10.5)(sass@1.69.6) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.7) transitivePeerDependencies: - rollup dev: true @@ -3929,7 +4329,7 @@ packages: hasBin: true dependencies: '@ampproject/remapping': 2.2.1 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) '@unocss/config': 0.58.3 '@unocss/core': 0.58.3 '@unocss/preset-uno': 0.58.3 @@ -4132,7 +4532,7 @@ packages: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 dependencies: '@ampproject/remapping': 2.2.1 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) '@unocss/config': 0.58.3 '@unocss/core': 0.58.3 '@unocss/inspector': 0.58.3 @@ -4141,7 +4541,7 @@ packages: chokidar: 3.5.3 fast-glob: 3.3.2 magic-string: 0.30.5 - vite: 5.0.10(@types/node@20.10.5)(sass@1.69.6) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.7) transitivePeerDependencies: - rollup dev: true @@ -4152,7 +4552,7 @@ packages: webpack: ^4 || ^5 dependencies: '@ampproject/remapping': 2.2.1 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) '@unocss/config': 0.58.3 '@unocss/core': 0.58.3 chokidar: 3.5.3 @@ -4193,23 +4593,23 @@ packages: vite: ^4.0.0 || ^5.0.0 vue: ^3.0.0 dependencies: - '@babel/core': 7.23.7 - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) - '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.7) - vite: 5.0.10(@types/node@20.10.5)(sass@1.69.6) + '@babel/core': 7.23.6 + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.6) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.6) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.7) vue: 3.4.3(typescript@5.3.3) transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-vue@5.0.2(vite@5.0.10)(vue@3.4.3): - resolution: {integrity: sha512-kEjJHrLb5ePBvjD0SPZwJlw1QTRcjjCA9sB5VyfonoXVBxTS7TMnqL6EkLt1Eu61RDeiuZ/WN9Hf6PxXhPI2uA==} + /@vitejs/plugin-vue@5.0.0(vite@5.0.10)(vue@3.4.3): + resolution: {integrity: sha512-7x5e8X4J1Wi4NxudGjJBd2OFerAi/0nzF80ojCzvfj347WVr0YSn82C8BSsgwSHzlk9Kw5xnZfj0/7RLnNwP5w==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 dependencies: - vite: 5.0.10(@types/node@20.10.5)(sass@1.69.6) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.7) vue: 3.4.3(typescript@5.3.3) dev: true @@ -4242,7 +4642,7 @@ packages: optional: true dependencies: '@babel/types': 7.23.6 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) '@vue/compiler-sfc': 3.4.3 ast-kit: 0.11.3 local-pkg: 0.5.0 @@ -4256,16 +4656,16 @@ packages: resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} dev: true - /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.23.7): + /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.23.6): resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.6 '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) '@babel/template': 7.22.15 - '@babel/traverse': 7.23.7 + '@babel/traverse': 7.23.6 '@babel/types': 7.23.6 '@vue/babel-helper-vue-transform-on': 1.1.5 camelcase: 6.3.0 @@ -4275,6 +4675,15 @@ packages: - supports-color dev: true + /@vue/compiler-core@3.3.13: + resolution: {integrity: sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==} + dependencies: + '@babel/parser': 7.23.6 + '@vue/shared': 3.3.13 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + /@vue/compiler-core@3.4.3: resolution: {integrity: sha512-u8jzgFg0EDtSrb/hG53Wwh1bAOQFtc1ZCegBpA/glyvTlgHl+tq13o1zvRfLbegYUw/E4mSTGOiCnAJ9SJ+lsg==} dependencies: @@ -4285,6 +4694,13 @@ packages: source-map-js: 1.0.2 dev: true + /@vue/compiler-dom@3.3.13: + resolution: {integrity: sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==} + dependencies: + '@vue/compiler-core': 3.3.13 + '@vue/shared': 3.3.13 + dev: true + /@vue/compiler-dom@3.4.3: resolution: {integrity: sha512-oGF1E9/htI6JWj/lTJgr6UgxNCtNHbM6xKVreBWeZL9QhRGABRVoWGAzxmtBfSOd+w0Zi5BY0Es/tlJrN6WgEg==} dependencies: @@ -4327,8 +4743,8 @@ packages: dependencies: '@volar/language-core': 1.11.1 '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.4.3 - '@vue/shared': 3.4.3 + '@vue/compiler-dom': 3.3.13 + '@vue/shared': 3.3.13 computeds: 0.0.1 minimatch: 9.0.3 muggle-string: 0.3.1 @@ -4368,20 +4784,12 @@ packages: vue: 3.4.3(typescript@5.3.3) dev: true - /@vue/shared@3.4.3: - resolution: {integrity: sha512-rIwlkkP1n4uKrRzivAKPZIEkHiuwY5mmhMJ2nZKCBLz8lTUlE73rQh4n1OnnMurXt1vcUNyH4ZPfdh8QweTjpQ==} + /@vue/shared@3.3.13: + resolution: {integrity: sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==} dev: true - /@vueuse/core@10.7.0(vue@3.4.3): - resolution: {integrity: sha512-4EUDESCHtwu44ZWK3Gc/hZUVhVo/ysvdtwocB5vcauSV4B7NiGY5972WnsojB3vRNdxvAt7kzJWE2h9h7C9d5w==} - dependencies: - '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 10.7.0 - '@vueuse/shared': 10.7.0(vue@3.4.3) - vue-demi: 0.14.6(vue@3.4.3) - transitivePeerDependencies: - - '@vue/composition-api' - - vue + /@vue/shared@3.4.3: + resolution: {integrity: sha512-rIwlkkP1n4uKrRzivAKPZIEkHiuwY5mmhMJ2nZKCBLz8lTUlE73rQh4n1OnnMurXt1vcUNyH4ZPfdh8QweTjpQ==} dev: true /@vueuse/core@10.7.1(vue@3.4.3): @@ -4396,10 +4804,6 @@ packages: - vue dev: true - /@vueuse/metadata@10.7.0: - resolution: {integrity: sha512-GlaH7tKP2iBCZ3bHNZ6b0cl9g0CJK8lttkBNUX156gWvNYhTKEtbweWLm9rxCPIiwzYcr/5xML6T8ZUEt+DkvA==} - dev: true - /@vueuse/metadata@10.7.1: resolution: {integrity: sha512-jX8MbX5UX067DYVsbtrmKn6eG6KMcXxLRLlurGkZku5ZYT3vxgBjui2zajvUZ18QLIjrgBkFRsu7CqTAg18QFw==} dev: true @@ -4413,7 +4817,7 @@ packages: '@vueuse/core': 10.7.1(vue@3.4.3) '@vueuse/metadata': 10.7.1 local-pkg: 0.5.0 - nuxt: 3.9.0(@types/node@20.10.5)(eslint@8.56.0)(sass@1.69.6)(typescript@5.3.3)(vite@5.0.10)(vue-tsc@1.8.27) + nuxt: 3.9.0(@types/node@20.10.6)(eslint@8.56.0)(sass@1.69.7)(typescript@5.3.3)(vite@5.0.10)(vue-tsc@1.8.27) vue-demi: 0.14.6(vue@3.4.3) transitivePeerDependencies: - '@vue/composition-api' @@ -4422,15 +4826,6 @@ packages: - vue dev: true - /@vueuse/shared@10.7.0(vue@3.4.3): - resolution: {integrity: sha512-kc00uV6CiaTdc3i1CDC4a3lBxzaBE9AgYNtFN87B5OOscqeWElj/uza8qVDmk7/U8JbqoONLbtqiLJ5LGRuqlw==} - dependencies: - vue-demi: 0.14.6(vue@3.4.3) - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: true - /@vueuse/shared@10.7.1(vue@3.4.3): resolution: {integrity: sha512-v0jbRR31LSgRY/C5i5X279A/WQjD6/JsMzGa+eqt658oJ75IvQXAeONmwvEMrvJQKnRElq/frzBR7fhmWY5uLw==} dependencies: @@ -4579,32 +4974,32 @@ packages: resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} dev: false - /acorn-import-assertions@1.9.0(acorn@8.11.3): + /acorn-import-assertions@1.9.0(acorn@8.11.2): resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.11.3 + acorn: 8.11.2 dev: true - /acorn-jsx@5.3.2(acorn@8.11.3): + /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.11.3 + acorn: 8.11.2 dev: true /acorn@8.11.2: resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} hasBin: true - dev: true /acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true + dev: true /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} @@ -4825,7 +5220,7 @@ packages: engines: {node: '>=16.14.0'} dependencies: '@babel/parser': 7.23.6 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) pathe: 1.1.1 transitivePeerDependencies: - rollup @@ -4836,7 +5231,7 @@ packages: engines: {node: '>=16.14.0'} dependencies: '@babel/parser': 7.23.6 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) pathe: 1.1.1 transitivePeerDependencies: - rollup @@ -4895,7 +5290,7 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.22.2 - caniuse-lite: 1.0.30001572 + caniuse-lite: 1.0.30001571 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -4924,7 +5319,7 @@ packages: /axios@0.27.2: resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} dependencies: - follow-redirects: 1.15.4(debug@4.3.4) + follow-redirects: 1.15.3(debug@4.3.4) form-data: 4.0.0 transitivePeerDependencies: - debug @@ -4933,17 +5328,17 @@ packages: /b4a@1.6.4: resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} - /babel-jest@29.7.0(@babel/core@7.23.7): + /babel-jest@29.7.0(@babel/core@7.23.3): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.23.7) + babel-preset-jest: 29.6.3(@babel/core@7.23.3) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -4971,38 +5366,38 @@ packages: '@babel/template': 7.22.15 '@babel/types': 7.23.6 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.5 + '@types/babel__traverse': 7.20.4 dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.7): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) - dev: true - - /babel-preset-jest@29.6.3(@babel/core@7.23.7): + '@babel/core': 7.23.3 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.23.3): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) dev: true /balanced-match@1.0.2: @@ -5110,12 +5505,23 @@ packages: fill-range: 7.0.1 dev: true + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001563 + electron-to-chromium: 1.4.589 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + dev: true + /browserslist@4.22.2: resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001572 + caniuse-lite: 1.0.30001571 electron-to-chromium: 1.4.616 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) @@ -5182,7 +5588,7 @@ packages: get-port: 5.1.1 ioredis: 5.3.2 lodash: 4.17.21 - msgpackr: 1.10.1 + msgpackr: 1.10.0 semver: 7.5.4 uuid: 8.3.2 transitivePeerDependencies: @@ -5196,13 +5602,13 @@ packages: run-applescript: 5.0.0 dev: true - /c12@1.6.1: - resolution: {integrity: sha512-fAZOi3INDvIbmjuwAVVggusyRTxwNdTAnwLay8IsXwhFzDwPPGzFxzrx6L55CPFGPulUSZI0eyFUvRDXveoE3g==} + /c12@1.5.1: + resolution: {integrity: sha512-BWZRJgDEveT8uI+cliCwvYSSSSvb4xKoiiu5S0jaDbKBopQLQF7E+bq9xKk1pTcG+mUa3yXuFO7bD9d8Lr9Xxg==} dependencies: chokidar: 3.5.3 defu: 6.1.3 dotenv: 16.3.1 - giget: 1.2.1 + giget: 1.1.3 jiti: 1.21.0 mlly: 1.4.2 ohash: 1.1.3 @@ -5210,6 +5616,8 @@ packages: perfect-debounce: 1.0.0 pkg-types: 1.0.3 rc9: 2.1.1 + transitivePeerDependencies: + - supports-color dev: true /cac@6.7.14: @@ -5239,12 +5647,12 @@ packages: resolution: {integrity: sha512-pM2K1ZlOv8gQpE1Z5mcDrfLj5CsNKVRiYua/SZ12j7LEDgfDeFVntI6JSgIw0siFSR/9P/FpG30scI3frHwibA==} engines: {node: '>= 16.17.0'} dependencies: - '@redis/bloom': 1.2.0(@redis/client@1.5.13) - '@redis/client': 1.5.13 - '@redis/graph': 1.1.1(@redis/client@1.5.13) - '@redis/json': 1.0.6(@redis/client@1.5.13) - '@redis/search': 1.1.6(@redis/client@1.5.13) - '@redis/time-series': 1.0.5(@redis/client@1.5.13) + '@redis/bloom': 1.2.0(@redis/client@1.5.12) + '@redis/client': 1.5.12 + '@redis/graph': 1.1.1(@redis/client@1.5.12) + '@redis/json': 1.0.6(@redis/client@1.5.12) + '@redis/search': 1.1.6(@redis/client@1.5.12) + '@redis/time-series': 1.0.5(@redis/client@1.5.12) cache-manager: 5.3.2 redis: 4.6.12 dev: false @@ -5288,13 +5696,17 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.22.2 - caniuse-lite: 1.0.30001572 + caniuse-lite: 1.0.30001571 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001572: - resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} + /caniuse-lite@1.0.30001563: + resolution: {integrity: sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==} + dev: true + + /caniuse-lite@1.0.30001571: + resolution: {integrity: sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==} dev: true /caseless@0.12.0: @@ -5428,7 +5840,7 @@ packages: resolution: {integrity: sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==} dependencies: '@types/validator': 13.11.7 - libphonenumber-js: 1.10.53 + libphonenumber-js: 1.10.49 validator: 13.11.0 /clean-css@4.1.11: @@ -5475,8 +5887,8 @@ packages: restore-cursor: 3.1.0 dev: true - /cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + /cli-spinners@2.9.1: + resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} engines: {node: '>=6'} dev: true @@ -5817,7 +6229,7 @@ packages: /cron@3.1.3: resolution: {integrity: sha512-KVxeKTKYj2eNzN4ElnT6nRSbjbfhyxR92O/Jdp6SH3pc05CDJws59jBrZWEMQlxevCiE6QUTrXy+Im3vC3oD3A==} dependencies: - '@types/luxon': 3.3.7 + '@types/luxon': 3.3.5 luxon: 3.4.4 dev: false @@ -5972,8 +6384,8 @@ packages: path-browserify: 1.0.1 dev: true - /cypress@13.6.1: - resolution: {integrity: sha512-k1Wl5PQcA/4UoTffYKKaxA0FJKwg8yenYNYRzLt11CUR0Kln+h7Udne6mdU1cUIdXBDTVZWtmiUjzqGs7/pEpw==} + /cypress@13.6.2: + resolution: {integrity: sha512-TW3bGdPU4BrfvMQYv1z3oMqj71YI4AlgJgnrycicmPZAXtvywVFZW9DAToshO65D97rCWfG/kqMFsYB6Kp91gQ==} engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} hasBin: true requiresBuild: true @@ -6372,6 +6784,10 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true + /electron-to-chromium@1.4.589: + resolution: {integrity: sha512-zF6y5v/YfoFIgwf2dDfAqVlPPsyQeWNpEWXbAlDUS8Ax4Z2VoiiZpAPC0Jm9hXEkJm2vIZpwB6rc4KnLTQffbQ==} + dev: true + /electron-to-chromium@1.4.616: resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} dev: true @@ -6476,35 +6892,35 @@ packages: resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} dev: true - /esbuild@0.19.11: - resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} + /esbuild@0.19.10: + resolution: {integrity: sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/aix-ppc64': 0.19.11 - '@esbuild/android-arm': 0.19.11 - '@esbuild/android-arm64': 0.19.11 - '@esbuild/android-x64': 0.19.11 - '@esbuild/darwin-arm64': 0.19.11 - '@esbuild/darwin-x64': 0.19.11 - '@esbuild/freebsd-arm64': 0.19.11 - '@esbuild/freebsd-x64': 0.19.11 - '@esbuild/linux-arm': 0.19.11 - '@esbuild/linux-arm64': 0.19.11 - '@esbuild/linux-ia32': 0.19.11 - '@esbuild/linux-loong64': 0.19.11 - '@esbuild/linux-mips64el': 0.19.11 - '@esbuild/linux-ppc64': 0.19.11 - '@esbuild/linux-riscv64': 0.19.11 - '@esbuild/linux-s390x': 0.19.11 - '@esbuild/linux-x64': 0.19.11 - '@esbuild/netbsd-x64': 0.19.11 - '@esbuild/openbsd-x64': 0.19.11 - '@esbuild/sunos-x64': 0.19.11 - '@esbuild/win32-arm64': 0.19.11 - '@esbuild/win32-ia32': 0.19.11 - '@esbuild/win32-x64': 0.19.11 + '@esbuild/aix-ppc64': 0.19.10 + '@esbuild/android-arm': 0.19.10 + '@esbuild/android-arm64': 0.19.10 + '@esbuild/android-x64': 0.19.10 + '@esbuild/darwin-arm64': 0.19.10 + '@esbuild/darwin-x64': 0.19.10 + '@esbuild/freebsd-arm64': 0.19.10 + '@esbuild/freebsd-x64': 0.19.10 + '@esbuild/linux-arm': 0.19.10 + '@esbuild/linux-arm64': 0.19.10 + '@esbuild/linux-ia32': 0.19.10 + '@esbuild/linux-loong64': 0.19.10 + '@esbuild/linux-mips64el': 0.19.10 + '@esbuild/linux-ppc64': 0.19.10 + '@esbuild/linux-riscv64': 0.19.10 + '@esbuild/linux-s390x': 0.19.10 + '@esbuild/linux-x64': 0.19.10 + '@esbuild/netbsd-x64': 0.19.10 + '@esbuild/openbsd-x64': 0.19.10 + '@esbuild/sunos-x64': 0.19.10 + '@esbuild/win32-arm64': 0.19.10 + '@esbuild/win32-ia32': 0.19.10 + '@esbuild/win32-x64': 0.19.10 dev: true /escalade@3.1.1: @@ -6544,8 +6960,8 @@ packages: eslint: 8.56.0 dev: true - /eslint-plugin-jest@27.6.0(eslint@8.56.0)(jest@29.7.0)(typescript@5.3.3): - resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==} + /eslint-plugin-jest@27.6.1(eslint@8.56.0)(jest@29.7.0)(typescript@5.3.3): + resolution: {integrity: sha512-WEYkyVXD9NlmFBKvrkmzrC+C9yZoz5pAml2hO19PlS3spJtoiwj4p2u8spd/7zx5IvRsZsCmsoImaAvBB9X93Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 @@ -6586,7 +7002,7 @@ packages: eslint: 8.56.0 natural-compare: 1.4.0 nth-check: 2.1.1 - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.13 semver: 7.5.4 vue-eslint-parser: 9.3.2(eslint@8.56.0) xml-name-validator: 4.0.0 @@ -6666,8 +7082,8 @@ packages: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) eslint-visitor-keys: 3.4.3 dev: true @@ -6906,8 +7322,8 @@ packages: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-json-stringify@5.9.2: - resolution: {integrity: sha512-SwHnT5PL2BawF0ccL+8b800QovvopUPgV/qzhBY+vw5ZniDH9boewbzBXYox+SetfD2dlxAgeZKSnELzrA+2hg==} + /fast-json-stringify@5.9.1: + resolution: {integrity: sha512-NMrf+uU9UJnTzfxaumMDXK1NWqtPCfGoM9DYIE+ESlaTQqjlANFBy0VAbsm6FB88Mx0nceyi18zTo5kIEUlzxg==} dependencies: '@fastify/deepmerge': 1.3.0 ajv: 8.12.0 @@ -6960,10 +7376,10 @@ packages: abstract-logging: 2.0.1 avvio: 8.2.1 fast-content-type-parse: 1.1.0 - fast-json-stringify: 5.9.2 + fast-json-stringify: 5.9.1 find-my-way: 7.7.0 light-my-request: 5.11.0 - pino: 8.17.2 + pino: 8.17.1 process-warning: 3.0.0 proxy-addr: 2.0.7 rfdc: 1.3.0 @@ -6983,10 +7399,10 @@ packages: abstract-logging: 2.0.1 avvio: 8.2.1 fast-content-type-parse: 1.1.0 - fast-json-stringify: 5.9.2 + fast-json-stringify: 5.9.1 find-my-way: 7.7.0 light-my-request: 5.11.0 - pino: 8.17.2 + pino: 8.17.1 process-warning: 3.0.0 proxy-addr: 2.0.7 rfdc: 1.3.0 @@ -6997,10 +7413,17 @@ packages: - supports-color dev: false + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + dev: true + /fastq@1.16.0: resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} dependencies: reusify: 1.0.4 + dev: false /fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} @@ -7050,7 +7473,7 @@ packages: /file-stream-rotator@0.6.1: resolution: {integrity: sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==} dependencies: - moment: 2.30.1 + moment: 2.29.4 dev: false /file-sync-cmp@0.1.1: @@ -7160,8 +7583,8 @@ packages: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} dev: false - /follow-redirects@1.15.4(debug@4.3.4): - resolution: {integrity: sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==} + /follow-redirects@1.15.3(debug@4.3.4): + resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -7186,7 +7609,7 @@ packages: handlebars-layouts: 3.1.4 jsdoc: 3.6.11 lunr: 1.0.0 - moment: 2.30.1 + moment: 2.29.4 sanitize-html: 1.27.5 dev: true @@ -7221,7 +7644,7 @@ packages: typescript: '>3.6.0' webpack: ^5.11.0 dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.23.4 chalk: 4.1.2 chokidar: 3.5.3 cosmiconfig: 8.3.6(typescript@5.2.2) @@ -7407,18 +7830,19 @@ packages: assert-plus: 1.0.0 dev: true - /giget@1.2.1: - resolution: {integrity: sha512-4VG22mopWtIeHwogGSy1FViXVo0YT+m6BrqZfz0JJFwbSsePsCdOzdLIIli5BtMp7Xe8f/o2OmBpQX2NBOC24g==} + /giget@1.1.3: + resolution: {integrity: sha512-zHuCeqtfgqgDwvXlR84UNgnJDuUHQcNI5OqWqFxxuk2BshuKbYhJWdxBsEo4PvKqoGh23lUAIvBNpChMLv7/9Q==} hasBin: true dependencies: - citty: 0.1.5 - consola: 3.2.3 + colorette: 2.0.20 defu: 6.1.3 - node-fetch-native: 1.6.1 - nypm: 0.3.4 - ohash: 1.1.3 + https-proxy-agent: 7.0.2 + mri: 1.2.0 + node-fetch-native: 1.4.1 pathe: 1.1.1 tar: 6.2.0 + transitivePeerDependencies: + - supports-color dev: true /git-config-path@2.0.0: @@ -7978,6 +8402,7 @@ packages: /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + requiresBuild: true dependencies: safer-buffer: 2.1.2 dev: true @@ -8390,7 +8815,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -8403,7 +8828,7 @@ packages: resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -8531,11 +8956,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.23.3 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 '@types/node': 20.10.5 - babel-jest: 29.7.0(@babel/core@7.23.7) + babel-jest: 29.7.0(@babel/core@7.23.3) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -8645,7 +9070,7 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.23.4 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -8770,15 +9195,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.23.7 - '@babel/generator': 7.23.6 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) + '@babel/core': 7.23.3 + '@babel/generator': 7.23.4 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) '@babel/types': 7.23.6 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -8836,7 +9261,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -8875,7 +9300,7 @@ packages: /jintr@1.1.0: resolution: {integrity: sha512-Tu9wk3BpN2v+kb8yT6YBtue+/nbjeLFv4vvVC4PJ7oCidHKbifWhvORrAbQfxVIQZG+67am/mDagpiGSVtvrZg==} dependencies: - acorn: 8.11.3 + acorn: 8.11.2 dev: false /jiti@1.21.0: @@ -9188,8 +9613,8 @@ packages: type-check: 0.4.0 dev: true - /libphonenumber-js@1.10.53: - resolution: {integrity: sha512-sDTnnqlWK4vH4AlDQuswz3n4Hx7bIQWTpIcScJX+Sp7St3LXHmfiax/ZFfyYxHmkdCvydOLSuvtAO/XpXiSySw==} + /libphonenumber-js@1.10.49: + resolution: {integrity: sha512-gvLtyC3tIuqfPzjvYLH9BmVdqzGDiSi4VjtWe2fAgSdBf0yt8yPmbNnRIHNbR5IdtVkm0ayGuzwQKTWmU0hdjQ==} /lie@3.1.1: resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} @@ -9447,6 +9872,11 @@ packages: tslib: 2.6.2 dev: true + /lru-cache@10.0.3: + resolution: {integrity: sha512-B7gr+F6MkqB3uzINHXNctGieGsRTMwIBgxkp0yq/5BwcuDzD4A8wQpHQW6vDAm1uKSLQghmRdD9sKqf2vJ1cEg==} + engines: {node: 14 || >=16.14} + dev: true + /lru-cache@10.1.0: resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} engines: {node: 14 || >=16.14} @@ -9820,8 +10250,8 @@ packages: engines: {node: '>=16.15.0', pnpm: '>=7.1.0'} dev: true - /moment@2.30.1: - resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + /moment@2.29.4: + resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} /mongodb-connection-string-url@2.6.0: resolution: {integrity: sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==} @@ -9837,7 +10267,7 @@ packages: camelcase: 6.3.0 debug: 4.3.4(supports-color@8.1.1) find-cache-dir: 3.3.2 - follow-redirects: 1.15.4(debug@4.3.4) + follow-redirects: 1.15.3(debug@4.3.4) https-proxy-agent: 7.0.2 mongodb: 5.9.2 new-find-package-json: 2.0.0 @@ -9996,8 +10426,8 @@ packages: dev: false optional: true - /msgpackr@1.10.1: - resolution: {integrity: sha512-r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ==} + /msgpackr@1.10.0: + resolution: {integrity: sha512-rVQ5YAQDoZKZLX+h8tNq7FiHrPJoeGHViz3U4wIcykhAEpwF/nH2Vbk8dQxmpX5JavkI8C7pt4bnkJ02ZmRoUw==} optionalDependencies: msgpackr-extract: 3.0.2 dev: false @@ -10022,6 +10452,10 @@ packages: hasBin: true dev: true + /napi-wasm@1.1.0: + resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} + dev: true + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -10067,19 +10501,19 @@ packages: dependencies: '@cloudflare/kv-asset-handler': 0.3.0 '@netlify/functions': 2.4.1 - '@rollup/plugin-alias': 5.1.0(rollup@4.9.2) - '@rollup/plugin-commonjs': 25.0.7(rollup@4.9.2) - '@rollup/plugin-inject': 5.0.5(rollup@4.9.2) - '@rollup/plugin-json': 6.1.0(rollup@4.9.2) - '@rollup/plugin-node-resolve': 15.2.3(rollup@4.9.2) - '@rollup/plugin-replace': 5.0.5(rollup@4.9.2) - '@rollup/plugin-terser': 0.4.4(rollup@4.9.2) - '@rollup/plugin-wasm': 6.2.2(rollup@4.9.2) - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/plugin-alias': 5.1.0(rollup@4.9.1) + '@rollup/plugin-commonjs': 25.0.7(rollup@4.9.1) + '@rollup/plugin-inject': 5.0.5(rollup@4.9.1) + '@rollup/plugin-json': 6.1.0(rollup@4.9.1) + '@rollup/plugin-node-resolve': 15.2.3(rollup@4.9.1) + '@rollup/plugin-replace': 5.0.5(rollup@4.9.1) + '@rollup/plugin-terser': 0.4.4(rollup@4.9.1) + '@rollup/plugin-wasm': 6.2.2(rollup@4.9.1) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) '@types/http-proxy': 1.17.14 '@vercel/nft': 0.24.4 archiver: 6.0.1 - c12: 1.6.1 + c12: 1.5.1 chalk: 5.3.0 chokidar: 3.5.3 citty: 0.1.5 @@ -10088,7 +10522,7 @@ packages: defu: 6.1.3 destr: 2.0.2 dot-prop: 8.0.2 - esbuild: 0.19.11 + esbuild: 0.19.10 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 etag: 1.8.1 @@ -10116,8 +10550,8 @@ packages: pkg-types: 1.0.3 pretty-bytes: 6.1.1 radix3: 1.1.0 - rollup: 4.9.2 - rollup-plugin-visualizer: 5.12.0(rollup@4.9.2) + rollup: 4.9.1 + rollup-plugin-visualizer: 5.11.0(rollup@4.9.1) scule: 1.1.1 semver: 7.5.4 serve-placeholder: 2.0.1 @@ -10127,7 +10561,7 @@ packages: uncrypto: 0.1.3 unctx: 2.3.1 unenv: 1.8.0 - unimport: 3.7.1(rollup@4.9.2) + unimport: 3.7.0(rollup@4.9.1) unstorage: 1.10.1 transitivePeerDependencies: - '@azure/app-configuration' @@ -10167,6 +10601,10 @@ packages: lodash: 4.17.21 dev: true + /node-fetch-native@1.4.1: + resolution: {integrity: sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==} + dev: true + /node-fetch-native@1.6.1: resolution: {integrity: sha512-bW9T/uJDPAJB2YNYEpWzE54U5O3MQidXsOyTfnbKYtTtFexRvGzb1waphBN4ZwP6EcIvYYEOwW0b72BpAqydTw==} dev: true @@ -10222,6 +10660,10 @@ packages: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + dev: true + /node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true @@ -10385,7 +10827,7 @@ packages: fsevents: 2.3.3 dev: true - /nuxt@3.9.0(@types/node@20.10.5)(eslint@8.56.0)(sass@1.69.6)(typescript@5.3.3)(vite@5.0.10)(vue-tsc@1.8.27): + /nuxt@3.9.0(@types/node@20.10.6)(eslint@8.56.0)(sass@1.69.7)(typescript@5.3.3)(vite@5.0.10)(vue-tsc@1.8.27): resolution: {integrity: sha512-PiUQwJRBlclRrotcQAK95ueeRSiFhZmwNBj9MtIdWF4XK97OjNszUmNjKphqB7BsVcm089l0jZm1N0sYr7tMOg==} engines: {node: ^14.18.0 || >=16.10.0} hasBin: true @@ -10404,20 +10846,20 @@ packages: '@nuxt/schema': 3.9.0 '@nuxt/telemetry': 2.5.3 '@nuxt/ui-templates': 1.3.1 - '@nuxt/vite-builder': 3.9.0(@types/node@20.10.5)(eslint@8.56.0)(sass@1.69.6)(typescript@5.3.3)(vue-tsc@1.8.27)(vue@3.4.3) - '@types/node': 20.10.5 + '@nuxt/vite-builder': 3.9.0(@types/node@20.10.6)(eslint@8.56.0)(sass@1.69.7)(typescript@5.3.3)(vue-tsc@1.8.27)(vue@3.4.3) + '@types/node': 20.10.6 '@unhead/dom': 1.8.9 '@unhead/ssr': 1.8.9 '@unhead/vue': 1.8.9(vue@3.4.3) - '@vue/shared': 3.4.3 + '@vue/shared': 3.3.13 acorn: 8.11.2 - c12: 1.6.1 + c12: 1.5.1 chokidar: 3.5.3 cookie-es: 1.0.0 defu: 6.1.3 destr: 2.0.2 devalue: 4.3.2 - esbuild: 0.19.11 + esbuild: 0.19.10 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 fs-extra: 11.2.0 @@ -10431,7 +10873,7 @@ packages: mlly: 1.4.2 nitropack: 2.8.1 nuxi: 3.10.0 - nypm: 0.3.4 + nypm: 0.3.3 ofetch: 1.3.3 ohash: 1.1.3 pathe: 1.1.1 @@ -10446,8 +10888,8 @@ packages: uncrypto: 0.1.3 unctx: 2.3.1 unenv: 1.8.0 - unimport: 3.7.1(rollup@4.9.2) - unplugin: 1.6.0 + unimport: 3.7.0(rollup@4.9.1) + unplugin: 1.5.1 unplugin-vue-router: 0.7.0(vue-router@4.2.5)(vue@3.4.3) untyped: 1.4.0 vue: 3.4.3(typescript@5.3.3) @@ -10491,8 +10933,8 @@ packages: - xml2js dev: true - /nypm@0.3.4: - resolution: {integrity: sha512-1JLkp/zHBrkS3pZ692IqOaIKSYHmQXgqfELk6YTOfVBnwealAmPA1q2kKK7PHJAHSMBozerThEFZXP3G6o7Ukg==} + /nypm@0.3.3: + resolution: {integrity: sha512-FHoxtTscAE723e80d2M9cJRb4YVjL82Ra+ZV+YqC6rfNZUWahi+ZhPF+krnR+bdMvibsfHCtgKXnZf5R6kmEPA==} engines: {node: ^14.16.0 || >=16.10.0} hasBin: true dependencies: @@ -10549,7 +10991,7 @@ packages: resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} dependencies: destr: 2.0.2 - node-fetch-native: 1.6.1 + node-fetch-native: 1.4.1 ufo: 1.3.2 dev: true @@ -10655,7 +11097,7 @@ packages: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.9.2 + cli-spinners: 2.9.1 is-interactive: 1.0.0 is-unicode-supported: 0.1.0 log-symbols: 4.1.0 @@ -10799,7 +11241,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.23.5 + '@babel/code-frame': 7.23.4 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -10882,7 +11324,7 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.1.0 + lru-cache: 10.0.3 minipass: 7.0.4 dev: true @@ -10937,8 +11379,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /pinia-plugin-persistedstate@3.2.1(pinia@2.1.7): - resolution: {integrity: sha512-MK++8LRUsGF7r45PjBFES82ISnPzyO6IZx3CH5vyPseFLZCk1g2kgx6l/nW8pEBKxxd4do0P6bJw+mUSZIEZUQ==} + /pinia-plugin-persistedstate@3.2.0(pinia@2.1.7): + resolution: {integrity: sha512-tZbNGf2vjAQcIm7alK40sE51Qu/m9oWr+rEgNm/2AWr1huFxj72CjvpQcIQzMknDBJEkQznCLAGtJTIcLKrKdw==} peerDependencies: pinia: ^2.0.0 dependencies: @@ -10966,7 +11408,7 @@ packages: /pino-abstract-transport@1.1.0: resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} dependencies: - readable-stream: 4.5.2 + readable-stream: 4.5.1 split2: 4.2.0 dev: false @@ -10974,8 +11416,8 @@ packages: resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} dev: false - /pino@8.17.2: - resolution: {integrity: sha512-LA6qKgeDMLr2ux2y/YiUt47EfgQ+S9LznBWOJdN3q1dx2sv0ziDLUBeVpyVv17TEcGCBuWf0zNtg3M5m1NhhWQ==} + /pino@8.17.1: + resolution: {integrity: sha512-YoN7/NJgnsJ+fkADZqjhRt96iepWBndQHeClmSBH0sQWCb8zGD74t00SK4eOtKFi/f8TUmQnfmgglEhd2kI1RQ==} hasBin: true dependencies: atomic-sleep: 1.0.0 @@ -10983,7 +11425,7 @@ packages: on-exit-leak-free: 2.1.2 pino-abstract-transport: 1.1.0 pino-std-serializers: 6.2.2 - process-warning: 3.0.0 + process-warning: 2.3.2 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.4.3 @@ -11028,7 +11470,7 @@ packages: postcss: ^8.2.2 dependencies: postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.14 postcss-value-parser: 4.2.0 dev: true @@ -11113,7 +11555,7 @@ packages: caniuse-api: 3.0.0 cssnano-utils: 4.0.1(postcss@8.4.32) postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.14 dev: true /postcss-minify-font-values@6.0.1(postcss@8.4.32): @@ -11157,7 +11599,7 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.14 dev: true /postcss-normalize-charset@6.0.1(postcss@8.4.32): @@ -11282,8 +11724,16 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-selector-parser@6.0.15: - resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-selector-parser@6.0.14: + resolution: {integrity: sha512-65xXYsT40i9GyWzlHQ5ShZoK7JZdySeOozi/tz2EezDo6c04q6+ckYMeoY7idaie1qp2dT5KoYQ2yky6JuoHnA==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 @@ -11308,7 +11758,7 @@ packages: postcss: ^8.4.31 dependencies: postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.14 dev: true /postcss-value-parser@4.2.0: @@ -11551,8 +12001,8 @@ packages: string_decoder: 1.3.0 util-deprecate: 1.0.2 - /readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + /readable-stream@4.5.1: + resolution: {integrity: sha512-uQjbf34vmf/asGnOHQEw07Q4llgMACQZTWWa4MmICS0IKJoHbLwKCy71H3eR99Dw5iYejc6W+pqZZEeqRtUFAw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: abort-controller: 3.0.0 @@ -11754,8 +12204,8 @@ packages: glob: 10.3.10 dev: true - /rollup-plugin-visualizer@5.12.0(rollup@4.9.2): - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} + /rollup-plugin-visualizer@5.11.0(rollup@4.9.1): + resolution: {integrity: sha512-exM0Ms2SN3AgTzMeW7y46neZQcyLY7eKwWAop1ZoRTCZwyrIRdMMJ6JjToAJbML77X/9N8ZEpmXG4Z/Clb9k8g==} engines: {node: '>=14'} hasBin: true peerDependencies: @@ -11766,29 +12216,29 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: 4.9.2 + rollup: 4.9.1 source-map: 0.7.4 yargs: 17.7.2 dev: true - /rollup@4.9.2: - resolution: {integrity: sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==} + /rollup@4.9.1: + resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.2 - '@rollup/rollup-android-arm64': 4.9.2 - '@rollup/rollup-darwin-arm64': 4.9.2 - '@rollup/rollup-darwin-x64': 4.9.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.2 - '@rollup/rollup-linux-arm64-gnu': 4.9.2 - '@rollup/rollup-linux-arm64-musl': 4.9.2 - '@rollup/rollup-linux-riscv64-gnu': 4.9.2 - '@rollup/rollup-linux-x64-gnu': 4.9.2 - '@rollup/rollup-linux-x64-musl': 4.9.2 - '@rollup/rollup-win32-arm64-msvc': 4.9.2 - '@rollup/rollup-win32-ia32-msvc': 4.9.2 - '@rollup/rollup-win32-x64-msvc': 4.9.2 + '@rollup/rollup-android-arm-eabi': 4.9.1 + '@rollup/rollup-android-arm64': 4.9.1 + '@rollup/rollup-darwin-arm64': 4.9.1 + '@rollup/rollup-darwin-x64': 4.9.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.9.1 + '@rollup/rollup-linux-arm64-gnu': 4.9.1 + '@rollup/rollup-linux-arm64-musl': 4.9.1 + '@rollup/rollup-linux-riscv64-gnu': 4.9.1 + '@rollup/rollup-linux-x64-gnu': 4.9.1 + '@rollup/rollup-linux-x64-musl': 4.9.1 + '@rollup/rollup-win32-arm64-msvc': 4.9.1 + '@rollup/rollup-win32-ia32-msvc': 4.9.1 + '@rollup/rollup-win32-x64-msvc': 4.9.1 fsevents: 2.3.3 dev: true @@ -11854,8 +12304,8 @@ packages: postcss: 7.0.39 dev: true - /sass@1.69.6: - resolution: {integrity: sha512-qbRr3k9JGHWXCvZU77SD2OTwUlC+gNT+61JOLcmLm+XqH4h/5D+p4IIsxvpkB89S9AwJOyb5+rWNpIucaFxSFQ==} + /sass@1.69.7: + resolution: {integrity: sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -11881,6 +12331,10 @@ packages: ajv-keywords: 3.5.2(ajv@6.12.6) dev: true + /scule@1.1.0: + resolution: {integrity: sha512-vRUjqhyM/YWYzT+jsMk6tnl3NkY4A4soJ8uyh3O6Um+JXEQL9ozUCe7pqrxn3CSKokw0hw3nFStfskzpgYwR0g==} + dev: true + /scule@1.1.1: resolution: {integrity: sha512-sHtm/SsIK9BUBI3EFT/Gnp9VoKfY6QLvlkvAE6YK7454IF8FSgJEAnJpVdSC7K5/pjI5NfxhzBLW2JAfYA/shQ==} dev: true @@ -12045,8 +12499,8 @@ packages: - supports-color dev: true - /simple-git@3.22.0: - resolution: {integrity: sha512-6JujwSs0ac82jkGjMHiCnTifvf1crOiY/+tfs/Pqih6iow7VrpNKRRNdWm6RtaXpvvv/JGNYhlUtLhGFqHF+Yw==} + /simple-git@3.21.0: + resolution: {integrity: sha512-oTzw9248AF5bDTMk9MrxsRzEzivMlY+DWH0yWS4VYpMhNLhDWnN06pCtaUyPnqv/FpsdeNmRqmZugMABHRPdDA==} dependencies: '@kwsites/file-exists': 1.1.1 '@kwsites/promise-deferred': 1.1.1 @@ -12256,6 +12710,10 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + /std-env@3.5.0: + resolution: {integrity: sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==} + dev: true + /std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true @@ -12265,8 +12723,8 @@ packages: engines: {node: '>=4.0.0'} dev: false - /streamx@2.15.6: - resolution: {integrity: sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==} + /streamx@2.15.5: + resolution: {integrity: sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==} dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 @@ -12371,7 +12829,7 @@ packages: dependencies: browserslist: 4.22.2 postcss: 8.4.32 - postcss-selector-parser: 6.0.15 + postcss-selector-parser: 6.0.14 dev: true /supports-color@2.0.0: @@ -12461,7 +12919,7 @@ packages: dependencies: b4a: 1.6.4 fast-fifo: 1.3.2 - streamx: 2.15.6 + streamx: 2.15.5 /tar@6.2.0: resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} @@ -12475,8 +12933,8 @@ packages: yallist: 4.0.0 dev: true - /terser-webpack-plugin@5.3.10(webpack@5.89.0): - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + /terser-webpack-plugin@5.3.9(webpack@5.89.0): + resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -12495,17 +12953,28 @@ packages: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 - terser: 5.26.0 + terser: 5.24.0 webpack: 5.89.0 dev: true + /terser@5.24.0: + resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.11.2 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + /terser@5.26.0: resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==} engines: {node: '>=10'} hasBin: true dependencies: '@jridgewell/source-map': 0.3.5 - acorn: 8.11.3 + acorn: 8.11.2 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -12858,7 +13327,7 @@ packages: acorn: 8.11.2 estree-walker: 3.0.3 magic-string: 0.30.5 - unplugin: 1.6.0 + unplugin: 1.5.1 dev: true /underscore.string@3.3.6: @@ -12912,10 +13381,28 @@ packages: engines: {node: '>=18'} dev: true - /unimport@3.7.1(rollup@4.9.2): - resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} + /unimport@3.5.0: + resolution: {integrity: sha512-0Ei1iTeSYxs7oxxUf79/KaBc2dPjZxe7qdVpw7yIz5YcdTZjmBYO6ToLDW+fX9QOHiueZ3xtwb5Z/wqaSfXx6A==} + dependencies: + '@rollup/pluginutils': 5.0.5 + escape-string-regexp: 5.0.0 + fast-glob: 3.3.2 + local-pkg: 0.5.0 + magic-string: 0.30.5 + mlly: 1.4.2 + pathe: 1.1.1 + pkg-types: 1.0.3 + scule: 1.1.1 + strip-literal: 1.3.0 + unplugin: 1.5.1 + transitivePeerDependencies: + - rollup + dev: true + + /unimport@3.7.0(rollup@4.9.1): + resolution: {integrity: sha512-vesCVjU3CYk41UZNY10kwii7l77vcP4IxPbBMgpve+vean7g7zJWrcCqSoG7u0eB9LZ5bM5BP+3vr3W2uYk0Yg==} dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) acorn: 8.11.2 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 @@ -12927,7 +13414,7 @@ packages: pkg-types: 1.0.3 scule: 1.1.1 strip-literal: 1.3.0 - unplugin: 1.6.0 + unplugin: 1.5.1 transitivePeerDependencies: - rollup dev: true @@ -12989,7 +13476,7 @@ packages: '@unocss/transformer-variant-group': 0.58.3 '@unocss/vite': 0.58.3(vite@5.0.10) '@unocss/webpack': 0.58.3(webpack@5.89.0) - vite: 5.0.10(@types/node@20.10.5)(sass@1.69.6) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.7) transitivePeerDependencies: - postcss - rollup @@ -13005,7 +13492,7 @@ packages: optional: true dependencies: '@babel/types': 7.23.6 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) '@vue-macros/common': 1.10.0(vue@3.4.3) ast-walker-scope: 0.5.0 chokidar: 3.5.3 @@ -13015,7 +13502,7 @@ packages: mlly: 1.4.2 pathe: 1.1.1 scule: 1.1.1 - unplugin: 1.6.0 + unplugin: 1.5.1 vue-router: 4.2.5(vue@3.4.3) yaml: 2.3.4 transitivePeerDependencies: @@ -13023,10 +13510,19 @@ packages: - vue dev: true + /unplugin@1.5.1: + resolution: {integrity: sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew==} + dependencies: + acorn: 8.11.2 + chokidar: 3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.0 + dev: true + /unplugin@1.6.0: resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==} dependencies: - acorn: 8.11.2 + acorn: 8.11.3 chokidar: 3.5.3 webpack-sources: 3.2.3 webpack-virtual-modules: 0.6.1 @@ -13106,17 +13602,28 @@ packages: resolution: {integrity: sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q==} hasBin: true dependencies: - '@babel/core': 7.23.7 - '@babel/standalone': 7.23.7 - '@babel/types': 7.23.6 + '@babel/core': 7.23.3 + '@babel/standalone': 7.23.4 + '@babel/types': 7.23.5 defu: 6.1.3 jiti: 1.21.0 mri: 1.2.0 - scule: 1.1.1 + scule: 1.1.0 transitivePeerDependencies: - supports-color dev: true + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + /update-browserslist-db@1.0.13(browserslist@4.22.2): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true @@ -13174,8 +13681,8 @@ packages: hasBin: true dev: false - /v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + /v8-to-istanbul@9.1.3: + resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} engines: {node: '>=10.12.0'} dependencies: '@jridgewell/trace-mapping': 0.3.20 @@ -13217,8 +13724,8 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@1.1.1(@types/node@20.10.5)(sass@1.69.6): - resolution: {integrity: sha512-2bGE5w4jvym5v8llF6Gu1oBrmImoNSs4WmRVcavnG2me6+8UQntTqLiAMFyiAobp+ZXhj5ZFhI7SmLiFr/jrow==} + /vite-node@1.1.0(@types/node@20.10.6)(sass@1.69.7): + resolution: {integrity: sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -13226,7 +13733,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) pathe: 1.1.1 picocolors: 1.0.0 - vite: 5.0.10(@types/node@20.10.5)(sass@1.69.6) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.7) transitivePeerDependencies: - '@types/node' - less @@ -13284,7 +13791,7 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.3.3 - vite: 5.0.10(@types/node@20.10.5)(sass@1.69.6) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.7) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.11 @@ -13304,14 +13811,14 @@ packages: dependencies: '@antfu/utils': 0.7.7 '@nuxt/kit': 3.9.0 - '@rollup/pluginutils': 5.1.0(rollup@4.9.2) + '@rollup/pluginutils': 5.1.0(rollup@4.9.1) debug: 4.3.4(supports-color@8.1.1) error-stack-parser-es: 0.1.1 fs-extra: 11.2.0 open: 9.1.0 picocolors: 1.0.0 sirv: 2.0.4 - vite: 5.0.10(@types/node@20.10.5)(sass@1.69.6) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.7) transitivePeerDependencies: - rollup - supports-color @@ -13322,21 +13829,21 @@ packages: peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 dependencies: - '@babel/core': 7.23.7 - '@babel/plugin-proposal-decorators': 7.23.7(@babel/core@7.23.7) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) - '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.7) + '@babel/core': 7.23.6 + '@babel/plugin-proposal-decorators': 7.23.6(@babel/core@7.23.6) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.6) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.6) '@vue/compiler-dom': 3.4.3 kolorist: 1.8.0 magic-string: 0.30.5 - vite: 5.0.10(@types/node@20.10.5)(sass@1.69.6) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.7) transitivePeerDependencies: - supports-color dev: true - /vite@5.0.10(@types/node@20.10.5)(sass@1.69.6): + /vite@5.0.10(@types/node@20.10.6)(sass@1.69.7): resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -13364,11 +13871,11 @@ packages: terser: optional: true dependencies: - '@types/node': 20.10.5 - esbuild: 0.19.11 + '@types/node': 20.10.6 + esbuild: 0.19.10 postcss: 8.4.32 - rollup: 4.9.2 - sass: 1.69.6 + rollup: 4.9.1 + sass: 1.69.7 optionalDependencies: fsevents: 2.3.3 dev: true @@ -13560,6 +14067,10 @@ packages: engines: {node: '>=10.13.0'} dev: true + /webpack-virtual-modules@0.6.0: + resolution: {integrity: sha512-KnaMTE6EItz/f2q4Gwg5/rmeKVi79OR58NoYnwDJqCk9ywMtTGbBnBcfoBtN4QbYu0lWXvyMoH2Owxuhe4qI6Q==} + dev: true + /webpack-virtual-modules@0.6.1: resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} dev: true @@ -13579,9 +14090,9 @@ packages: '@webassemblyjs/ast': 1.11.6 '@webassemblyjs/wasm-edit': 1.11.6 '@webassemblyjs/wasm-parser': 1.11.6 - acorn: 8.11.3 - acorn-import-assertions: 1.9.0(acorn@8.11.3) - browserslist: 4.22.2 + acorn: 8.11.2 + acorn-import-assertions: 1.9.0(acorn@8.11.2) + browserslist: 4.22.1 chrome-trace-event: 1.0.3 enhanced-resolve: 5.15.0 es-module-lexer: 1.4.1 @@ -13595,7 +14106,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.89.0) + terser-webpack-plugin: 5.3.9(webpack@5.89.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -13746,8 +14257,8 @@ packages: signal-exit: 3.0.7 dev: true - /ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + /ws@8.15.1: + resolution: {integrity: sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 diff --git a/server/package.json b/server/package.json index 447412750..552e81fea 100644 --- a/server/package.json +++ b/server/package.json @@ -74,17 +74,17 @@ "@types/archiver": "6.0.2", "@types/bcryptjs": "2.4.6", "@types/cookie-parser": "1.4.6", - "@types/eslint": "8.56.0", + "@types/eslint": "8.56.1", "@types/humanize-duration": "3.27.3", "@types/mime-types": "2.1.4", "@types/multer": "1.4.11", - "@types/node": "20.10.5", + "@types/node": "20.10.6", "@types/redis-mock": "0.17.3", "@types/web-push": "3.6.3", "@types/webpack-node-externals": "3.0.4", "@types/xml2json": "0.11.6", - "@typescript-eslint/eslint-plugin": "6.16.0", - "@typescript-eslint/parser": "6.16.0", + "@typescript-eslint/eslint-plugin": "6.17.0", + "@typescript-eslint/parser": "6.17.0", "cross-env": "7.0.3", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", diff --git a/server/src/user/admin/admin.controller.ts b/server/src/admin/admin.controller.ts similarity index 70% rename from server/src/user/admin/admin.controller.ts rename to server/src/admin/admin.controller.ts index 8351730ba..a83afd097 100644 --- a/server/src/user/admin/admin.controller.ts +++ b/server/src/admin/admin.controller.ts @@ -14,6 +14,9 @@ import { AdminService } from './admin.service'; import { LogsDto } from './dto/logs.dto'; import { Private } from 'server/auth/decorators/private.decorator'; import { InfoDto } from './dto/info.dto'; +import { UserDto } from 'server/user/user.dto'; +import { UserprofileDto } from 'server/user/dto/userprofile.dto'; +import { ServerSettingsDto } from './dto/server-settings.dto'; @ApiTags('Admin') @UseGuards(AdminGuard) @@ -28,6 +31,16 @@ export class AdminController { return this.adminService.getInfo(); } + @Get('server-settings') + getServerSettings(): Promise { + return this.adminService.getServerSettings(); + } + + @Post('server-settings') + updateServerSettings(@Body() serverSettings: ServerSettingsDto): Promise { + return this.adminService.updateServerSettings(serverSettings); + } + @Get('logs') getLogs(): Promise { return this.adminService.getLogs(); @@ -57,4 +70,9 @@ export class AdminController { async delete(@Param('id') id: string): Promise { return this.adminService.unblockVideoId(id); } + + @Post('users') + async createUser(@Body() user: UserDto): Promise { + return this.adminService.createUser(user); + } } diff --git a/server/src/user/admin/admin.module.ts b/server/src/admin/admin.module.ts similarity index 76% rename from server/src/user/admin/admin.module.ts rename to server/src/admin/admin.module.ts index d64cc52a6..86ec4afd3 100644 --- a/server/src/user/admin/admin.module.ts +++ b/server/src/admin/admin.module.ts @@ -6,6 +6,8 @@ import { CacheConfigService } from 'server/cache-config.service'; import { AdminService } from './admin.service'; import { AdminController } from './admin.controller'; import { BlockedVideo, BlockedVideoSchema } from './schemas/blocked-video'; +import { UserModule } from '../user/user.module'; +import { ServerSettings, ServerSettingsSchema } from './schemas/server-settings'; const moduleMetadata: ModuleMetadata = { imports: [ @@ -18,8 +20,14 @@ const moduleMetadata: ModuleMetadata = { name: BlockedVideo.name, schema: BlockedVideoSchema, collection: 'blocked-videos' + }, + { + name: ServerSettings.name, + schema: ServerSettingsSchema, + collection: 'server-settings' } - ]) + ]), + UserModule ], controllers: [AdminController], providers: [AdminService], diff --git a/server/src/user/admin/admin.service.ts b/server/src/admin/admin.service.ts similarity index 69% rename from server/src/user/admin/admin.service.ts rename to server/src/admin/admin.service.ts index 0e144c365..3c57e9e1a 100644 --- a/server/src/user/admin/admin.service.ts +++ b/server/src/admin/admin.service.ts @@ -10,13 +10,21 @@ import { Model } from 'mongoose'; import { InfoDto } from './dto/info.dto'; import { vtFetch } from 'server/common/vtFetch'; import { proxyEnabled } from 'server/common/proxyAgent'; +import { UserprofileDto } from '../user/dto/userprofile.dto'; +import { UserService } from '../user/user.service'; +import { UserDto } from '../user/user.dto'; +import { ServerSettingsDto } from './dto/server-settings.dto'; +import { ServerSettings } from './schemas/server-settings'; @Injectable() export class AdminService { constructor( private configService: ConfigService, @InjectModel(BlockedVideo.name) - private readonly blockedVideoModel: Model + private readonly BlockedVideoModel: Model, + @InjectModel(ServerSettings.name) + private readonly ServerSettingsModel: Model, + private userService: UserService ) {} async getInfo(): Promise { @@ -87,6 +95,43 @@ export class AdminService { }; } + async createUser(user: UserDto): Promise { + const createdUser = await this.userService.create(user); + return createdUser; + } + + defaultSettings: ServerSettingsDto = { + registrationEnabled: true, + requireLoginEverywhere: false + }; + + async getServerSettings(): Promise { + const serverSettings = await this.ServerSettingsModel.findOne({ version: 1 }).exec(); + if (!serverSettings) { + return this.defaultSettings; + } + return serverSettings.toObject(); + } + + async updateServerSettings(newServerSettings: ServerSettingsDto): Promise { + const previousSettings = await this.getServerSettings(); + + const settingsToSet: ServerSettingsDto = { + ...previousSettings, + ...newServerSettings + }; + + const newSettings = await this.ServerSettingsModel.findOneAndUpdate( + { version: 1 }, + { version: 1, ...settingsToSet }, + { + upsert: true + } + ).exec(); + + return newSettings; + } + async dowloadLogFile(logFile: string): Promise { let logFolder = resolve(__dirname, '../logs'); if (this.configService.get('VIEWTUBE_BASE_DIR')) { @@ -108,12 +153,12 @@ export class AdminService { } async getAllBlockedVideoIds(): Promise { - const blockedVideos = await this.blockedVideoModel.find().exec(); + const blockedVideos = await this.BlockedVideoModel.find().exec(); return blockedVideos.map(video => video.videoId); } async isVideoBlocked(videoId: string): Promise { - const blockedVideo = await this.blockedVideoModel.findOne({ videoId }).exec(); + const blockedVideo = await this.BlockedVideoModel.findOne({ videoId }).exec(); if (!blockedVideo) { return false; } @@ -125,7 +170,7 @@ export class AdminService { if (!videoIdToBlock) { throw new BadRequestException(); } - const blockedVideo = await this.blockedVideoModel.findOneAndUpdate( + const blockedVideo = await this.BlockedVideoModel.findOneAndUpdate( { videoId }, { videoId }, { new: true, upsert: true } @@ -134,6 +179,6 @@ export class AdminService { } async unblockVideoId(videoId: string): Promise { - await this.blockedVideoModel.findOneAndDelete({ videoId }); + await this.BlockedVideoModel.findOneAndDelete({ videoId }); } } diff --git a/server/src/user/admin/dto/info.dto.ts b/server/src/admin/dto/info.dto.ts similarity index 100% rename from server/src/user/admin/dto/info.dto.ts rename to server/src/admin/dto/info.dto.ts diff --git a/server/src/user/admin/dto/log-file.dto.ts b/server/src/admin/dto/log-file.dto.ts similarity index 100% rename from server/src/user/admin/dto/log-file.dto.ts rename to server/src/admin/dto/log-file.dto.ts diff --git a/server/src/user/admin/dto/logs.dto.ts b/server/src/admin/dto/logs.dto.ts similarity index 100% rename from server/src/user/admin/dto/logs.dto.ts rename to server/src/admin/dto/logs.dto.ts diff --git a/server/src/admin/dto/server-settings.dto.ts b/server/src/admin/dto/server-settings.dto.ts new file mode 100644 index 000000000..6fd084608 --- /dev/null +++ b/server/src/admin/dto/server-settings.dto.ts @@ -0,0 +1,4 @@ +export class ServerSettingsDto { + registrationEnabled: boolean; + requireLoginEverywhere: boolean; +} diff --git a/server/src/user/admin/schemas/blocked-video.ts b/server/src/admin/schemas/blocked-video.ts similarity index 100% rename from server/src/user/admin/schemas/blocked-video.ts rename to server/src/admin/schemas/blocked-video.ts diff --git a/server/src/admin/schemas/server-settings.ts b/server/src/admin/schemas/server-settings.ts new file mode 100644 index 000000000..96c4e8166 --- /dev/null +++ b/server/src/admin/schemas/server-settings.ts @@ -0,0 +1,17 @@ +import { Document } from 'mongoose'; +import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose'; +import { ServerSettingsDto } from '../dto/server-settings.dto'; + +@Schema() +export class ServerSettings extends Document implements ServerSettingsDto { + @Prop() + version: number; + + @Prop() + registrationEnabled: boolean; + + @Prop() + requireLoginEverywhere: boolean; +} + +export const ServerSettingsSchema = SchemaFactory.createForClass(ServerSettings); diff --git a/server/src/app.module.ts b/server/src/app.module.ts index b78234f5d..9deead639 100644 --- a/server/src/app.module.ts +++ b/server/src/app.module.ts @@ -25,7 +25,7 @@ import { HistoryModule } from './user/history/history.module'; import { NotificationsModule } from './user/notifications/notifications.module'; import { SettingsModule } from './user/settings/settings.module'; import { SubscriptionsModule } from './user/subscriptions/subscriptions.module'; -import { AdminModule } from './user/admin/admin.module'; +import { AdminModule } from './admin/admin.module'; const prefixApi = (modules: Type[]) => modules.map(module => ({ path: 'api', module })); @@ -81,6 +81,7 @@ const moduleMetadata: ModuleMetadata = { CoreModule, UserModule, NuxtModule, + AdminModule, RouterModule.register( prefixApi([ AuthModule, diff --git a/server/src/auth/auth.controller.ts b/server/src/auth/auth.controller.ts index 574b66091..cb4cfad5e 100644 --- a/server/src/auth/auth.controller.ts +++ b/server/src/auth/auth.controller.ts @@ -2,12 +2,14 @@ import { Controller, Post, Body, Res, UnauthorizedException, Req } from '@nestjs import { ApiTags } from '@nestjs/swagger'; import { FastifyReply, FastifyRequest } from 'fastify'; import { AuthService } from './auth.service'; +import { Public } from './decorators/public.decorator'; @ApiTags('Auth') @Controller('auth') export class AuthController { constructor(private authService: AuthService) {} + @Public() @Post('login') async login( @Res({ passthrough: true }) reply: FastifyReply, @@ -26,7 +28,7 @@ export class AuthController { } @Post('logout') - logout(@Res({ passthrough: true }) reply: FastifyReply, @Req() request: FastifyRequest) { + logout(@Res() reply: FastifyReply, @Req() request: FastifyRequest) { this.authService.logout(reply, request); } } diff --git a/server/src/auth/auth.service.ts b/server/src/auth/auth.service.ts index 3d17bd456..5902d26c0 100644 --- a/server/src/auth/auth.service.ts +++ b/server/src/auth/auth.service.ts @@ -11,6 +11,7 @@ import { setAuthCookies } from './set-auth-cookies'; import { Session } from './schemas/session.schema'; import { randomBytes } from 'crypto'; import { FastifyRequest } from 'fastify/types/request'; +import { SerializeOptions } from '@fastify/cookie'; @Injectable() export class AuthService { @@ -45,13 +46,19 @@ export class AuthService { await this.SessionModel.findOneAndDelete({ refreshToken }).exec(); - const emptyCookie = { - path: '/' + const secure = this.configService.get('NODE_ENV') === 'production' && isHttps(); + + const deleteCookie: SerializeOptions = { + httpOnly: true, + path: '/', + maxAge: 0, + secure: secure ?? undefined, + sameSite: secure ? 'none' : 'lax' }; - reply.clearCookie('AccessToken', emptyCookie); - reply.clearCookie('RefreshToken', emptyCookie); - reply.code(204); + reply.setCookie('AccessToken', '', deleteCookie); + reply.setCookie('RefreshToken', '', deleteCookie); + reply.code(204).send(); } async login(reply: FastifyReply, username: string, deviceName: string, deviceType: string) { diff --git a/server/src/auth/captcha/captcha.controller.ts b/server/src/auth/captcha/captcha.controller.ts index ecff7e4cc..79fc60da8 100644 --- a/server/src/auth/captcha/captcha.controller.ts +++ b/server/src/auth/captcha/captcha.controller.ts @@ -3,6 +3,7 @@ import { ApiTags, ApiOperation } from '@nestjs/swagger'; import { CaptchaService } from './captcha.service'; // eslint-disable-next-line @typescript-eslint/no-unused-vars import { CaptchaDto } from './dto/captcha.dto'; +import { Public } from '../decorators/public.decorator'; @ApiTags('Auth') @Controller('auth') @@ -10,6 +11,7 @@ export class CaptchaController { constructor(private captchaService: CaptchaService) {} @Get('captcha') + @Public() @ApiOperation({ summary: 'Get a captcha' }) getCaptcha(): Promise { return this.captchaService.getCaptcha(); diff --git a/server/src/auth/decorators/public.decorator.ts b/server/src/auth/decorators/public.decorator.ts new file mode 100644 index 000000000..b3845e122 --- /dev/null +++ b/server/src/auth/decorators/public.decorator.ts @@ -0,0 +1,4 @@ +import { SetMetadata } from '@nestjs/common'; + +export const IS_PUBLIC_KEY = 'isPublic'; +export const Public = () => SetMetadata(IS_PUBLIC_KEY, true); diff --git a/server/src/auth/guards/public-auth.guard.ts b/server/src/auth/guards/public-auth.guard.ts index 9099605c8..30cea69d5 100644 --- a/server/src/auth/guards/public-auth.guard.ts +++ b/server/src/auth/guards/public-auth.guard.ts @@ -10,6 +10,7 @@ import { BYPASS_AUTH_KEY } from '../decorators/bypass-auth.decorator'; import { InjectModel } from '@nestjs/mongoose'; import { Session } from '../schemas/session.schema'; import { Model } from 'mongoose'; +import { IS_PUBLIC_KEY } from '../decorators/public.decorator'; @Injectable() export class PublicAuthGuard implements CanActivate { @@ -23,10 +24,19 @@ export class PublicAuthGuard implements CanActivate { async canActivate(context: ExecutionContext): Promise { const targets = [context.getHandler(), context.getClass()]; - const isPrivate = this.reflector.getAllAndOverride(IS_PRIVATE_KEY, targets); - const isBypassAuth = this.reflector.getAllAndOverride(BYPASS_AUTH_KEY, targets); + const isPublic = this.reflector.getAllAndOverride(IS_PUBLIC_KEY, targets); + + let isPrivate = this.reflector.getAllAndOverride(IS_PRIVATE_KEY, targets); + let isBypassAuth = this.reflector.getAllAndOverride(BYPASS_AUTH_KEY, targets); + + // If loginRequiredEverywhere is set to true, then all routes are private by default + if (global.requireLoginEverywhere === true) { + isPrivate = true; + isBypassAuth = false; + } if (isBypassAuth) return true; + if (isPublic) return true; const request = context.switchToHttp().getRequest(); const reply = context.switchToHttp().getResponse(); diff --git a/server/src/auth/register/register.controller.ts b/server/src/auth/register/register.controller.ts index fa00697c1..ab11bd20c 100644 --- a/server/src/auth/register/register.controller.ts +++ b/server/src/auth/register/register.controller.ts @@ -2,6 +2,7 @@ import { Controller, Post, Body } from '@nestjs/common'; import { ApiTags, ApiOperation } from '@nestjs/swagger'; import { RegisterService } from './register.service'; import { RegistrationDto } from './dto/registration.dto'; +import { Public } from '../decorators/public.decorator'; @ApiTags('Auth') @Controller('auth') @@ -13,6 +14,7 @@ export class RegisterController { description: `Request a captcha through the /auth/captcha endpoint, and pass its token and solution alongside the new user's credentials.` }) + @Public() @Post('register') registerUser(@Body() user: RegistrationDto): Promise { return this.registerService.registerUser(user); diff --git a/server/src/auth/register/register.module.ts b/server/src/auth/register/register.module.ts index ed16d6c21..06bb9859c 100644 --- a/server/src/auth/register/register.module.ts +++ b/server/src/auth/register/register.module.ts @@ -3,11 +3,23 @@ import { CaptchaModule } from '../captcha/captcha.module'; import { UserModule } from '../../user/user.module'; import { RegisterService } from './register.service'; import { RegisterController } from './register.controller'; +import { MongooseModule } from '@nestjs/mongoose'; +import { ServerSettings, ServerSettingsSchema } from 'server/admin/schemas/server-settings'; const moduleMetadata: ModuleMetadata = { providers: [RegisterService], controllers: [RegisterController], - imports: [CaptchaModule, UserModule], + imports: [ + CaptchaModule, + UserModule, + MongooseModule.forFeature([ + { + name: ServerSettings.name, + schema: ServerSettingsSchema, + collection: 'server-settings' + } + ]) + ], exports: [RegisterService] }; @Module(moduleMetadata) diff --git a/server/src/auth/register/register.service.ts b/server/src/auth/register/register.service.ts index 56dd9ca1e..80855822d 100644 --- a/server/src/auth/register/register.service.ts +++ b/server/src/auth/register/register.service.ts @@ -2,12 +2,24 @@ import { Injectable, HttpException } from '@nestjs/common'; import { CaptchaService } from '../captcha/captcha.service'; import { UserService } from '../../user/user.service'; import { RegistrationDto } from './dto/registration.dto'; +import { InjectModel } from '@nestjs/mongoose'; +import { ServerSettings } from 'server/admin/schemas/server-settings'; +import { Model } from 'mongoose'; @Injectable() export class RegisterService { - constructor(private captchaService: CaptchaService, private userService: UserService) {} + constructor( + private captchaService: CaptchaService, + private userService: UserService, + @InjectModel(ServerSettings.name) + private readonly ServerSettingsModel: Model + ) {} async registerUser(userRegistration: RegistrationDto) { + const serverSettings = await this.ServerSettingsModel.findOne({ version: 1 }).exec(); + if (serverSettings?.registrationEnabled === false) { + throw new HttpException('Admin has disabled registration for this server', 403); + } const captchaVerified: boolean = await this.captchaService.validateCaptcha( userRegistration.captchaToken, userRegistration.captchaSolution diff --git a/server/src/core/channels/yt-channel-info/app/YoutubeGrabberHelper.ts b/server/src/core/channels/yt-channel-info/app/YoutubeGrabberHelper.ts index 27dca938b..b59e4fb3a 100644 --- a/server/src/core/channels/yt-channel-info/app/YoutubeGrabberHelper.ts +++ b/server/src/core/channels/yt-channel-info/app/YoutubeGrabberHelper.ts @@ -365,7 +365,6 @@ export class YoutubeGrabberHelper { // Get the JSON data as string let contentDataString = communityInfo.data.match(/ytInitialData.+?(?=;<\/script>)/)[0]; let innertubeAPIkey = communityInfo.data.match(/innertubeApiKey.+?(?=innertubeApiVersion)/)[0]; - // innertubeApiKey":"AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8","innertubeApiVersion" innertubeAPIkey = innertubeAPIkey.substring(18, innertubeAPIkey.length - 3); contentDataString = contentDataString.substring(16, contentDataString.length); diff --git a/server/src/core/core.module.ts b/server/src/core/core.module.ts index 915793ef4..aa095201e 100644 --- a/server/src/core/core.module.ts +++ b/server/src/core/core.module.ts @@ -21,7 +21,7 @@ import { HomepageModule } from './homepage/homepage.module'; import { ProxyModule } from './proxy/proxy.module'; import { CommentsModule } from './comments/comments.module'; import { PlaylistsModule } from './playlists/playlists.module'; -import { BlockedVideo, BlockedVideoSchema } from 'server/user/admin/schemas/blocked-video'; +import { BlockedVideo, BlockedVideoSchema } from 'server/admin/schemas/blocked-video'; const moduleMetadata: ModuleMetadata = { imports: [ diff --git a/server/src/core/videos/videos.service.ts b/server/src/core/videos/videos.service.ts index 3c7a8a603..ad2813870 100644 --- a/server/src/core/videos/videos.service.ts +++ b/server/src/core/videos/videos.service.ts @@ -11,7 +11,7 @@ import { import { InjectModel } from '@nestjs/mongoose'; import { Model } from 'mongoose'; import { DislikeDto } from 'server/core/videos/dto/dislike.dto'; -import { BlockedVideo } from 'server/user/admin/schemas/blocked-video'; +import { BlockedVideo } from 'server/admin/schemas/blocked-video'; import { innertubeClient } from 'server/common/innertube/innertube'; import { toVTVideoInfoDto } from 'server/mapper/converter/video-info/vt-video-info.converter'; import { VTVideoInfoDto } from 'server/mapper/dto/vt-video-info.dto'; diff --git a/server/src/main.ts b/server/src/main.ts index c090e3ed4..bcefbb432 100644 --- a/server/src/main.ts +++ b/server/src/main.ts @@ -22,6 +22,7 @@ import { checkRedisConnection } from './common/redis.connection'; import { logger } from './common/logger'; import { ModuleType } from './common/module.type'; import { registerFastifyPlugin } from './common/registerFastifyPlugin'; +import { AdminService } from './admin/admin.service'; declare const module: ModuleType; @@ -35,9 +36,18 @@ const bootstrap = async () => { global.nestApp = app; const configService = app.get(ConfigService); + const adminService = app.get(AdminService); + const serverSettings = await adminService.getServerSettings(); + const registrationEnabled = serverSettings.registrationEnabled; + global.requireLoginEverywhere = serverSettings.requireLoginEverywhere; + process.env.NUXT_PUBLIC_REGISTRATION_ENABLED = registrationEnabled.toString(); + process.env.NUXT_PUBLIC_REQUIRE_LOGIN_EVERYWHERE = + serverSettings.requireLoginEverywhere.toString(); const isProduction = configService.get('NODE_ENV') === 'production'; logger.log(`Running in ${isProduction ? 'production' : 'development'} mode`); + logger.log(`Registration is ${registrationEnabled ? 'enabled' : 'disabled'}`); + logger.log(`Login is required everywhere: ${global.requireLoginEverywhere}`); checkRedisConnection(); diff --git a/server/src/nuxt/nuxt.controller.ts b/server/src/nuxt/nuxt.controller.ts index a9edd6c00..b42620ad6 100644 --- a/server/src/nuxt/nuxt.controller.ts +++ b/server/src/nuxt/nuxt.controller.ts @@ -2,10 +2,10 @@ import { Controller, Get, Req, Res } from '@nestjs/common'; import { ApiExcludeController } from '@nestjs/swagger'; import { FastifyReply, FastifyRequest } from 'fastify'; import { NuxtService } from './nuxt.service'; -import { BypassAuth } from 'server/auth/decorators/bypass-auth.decorator'; +import { Public } from 'server/auth/decorators/public.decorator'; @Controller() -@BypassAuth() +@Public() @ApiExcludeController() export class NuxtController { constructor(private nuxtService: NuxtService) {} diff --git a/server/src/user/dto/userprofile.dto.ts b/server/src/user/dto/userprofile.dto.ts index d2a57c4b6..bbba7cb3a 100644 --- a/server/src/user/dto/userprofile.dto.ts +++ b/server/src/user/dto/userprofile.dto.ts @@ -7,5 +7,5 @@ export class UserprofileDto { settings: SettingsDto; - admin: boolean; + admin?: boolean; } diff --git a/server/src/user/user.module.ts b/server/src/user/user.module.ts index 97511eada..10872d801 100644 --- a/server/src/user/user.module.ts +++ b/server/src/user/user.module.ts @@ -9,7 +9,7 @@ import { SubscriptionsModule } from './subscriptions/subscriptions.module'; import { NotificationsModule } from './notifications/notifications.module'; import { SettingsModule } from './settings/settings.module'; import { HistoryModule } from './history/history.module'; -import { AdminModule } from './admin/admin.module'; +import { AdminModule } from '../admin/admin.module'; import { Session, SessionSchema } from 'server/auth/schemas/session.schema'; const moduleMetadata: ModuleMetadata = { @@ -32,8 +32,7 @@ const moduleMetadata: ModuleMetadata = { SubscriptionsModule, NotificationsModule, SettingsModule, - HistoryModule, - AdminModule + HistoryModule ], providers: [UserService, Logger], controllers: [UserController], diff --git a/server/src/user/user.service.ts b/server/src/user/user.service.ts index 5e382406e..1d7c04c16 100644 --- a/server/src/user/user.service.ts +++ b/server/src/user/user.service.ts @@ -272,15 +272,19 @@ export class UserService { } async create(user: UserDto): Promise { + if (!user.username || !user.password) { + throw new HttpException('Username and password are required', 400); + } + const existingUser: null | User = await this.UserModel.findOne({ username: { $regex: `^${user.username}$`, $options: 'i' } }).exec(); if (existingUser !== null) { throw new HttpException(`Username ${existingUser.username} is already in use`, 400); - } else if (user.username.length > 16) { + } else if (user.username?.length > 16) { throw new HttpException('Username cannot be longer than 16 characters', 400); - } else if (user.username.length < 2) { + } else if (user.username?.length < 2) { throw new HttpException('Username must be longer than 2 characters', 400); } else { const saltRounds = 10; @@ -291,8 +295,6 @@ export class UserService { throw new HttpException('Error registering user', 403); } - const adminUser = this.configService.get('VIEWTUBE_ADMIN_USER'); - const createdUser = await new this.UserModel({ username: user.username, password: hash @@ -301,8 +303,7 @@ export class UserService { return { username: createdUser.username, profileImage: null, - settings: null, - admin: adminUser === createdUser.username + settings: null }; } } diff --git a/shared/api.schema.ts b/shared/api.schema.ts index d3417c1a3..7b2da9471 100644 --- a/shared/api.schema.ts +++ b/shared/api.schema.ts @@ -90,23 +90,6 @@ export interface paths { "/api/user/history/from/{startDate}/to/{endDate}": { delete: operations["HistoryController_deleteHistoryRange"]; }; - "/api/admin/info": { - get: operations["AdminController_getInfo"]; - }; - "/api/admin/logs": { - get: operations["AdminController_getLogs"]; - }; - "/api/admin/logs/{logFile}": { - get: operations["AdminController_downloadLogFile"]; - }; - "/api/admin/blocked-videos": { - get: operations["AdminController_findAll"]; - post: operations["AdminController_create"]; - }; - "/api/admin/blocked-videos/{id}": { - get: operations["AdminController_isVideoBlocked"]; - delete: operations["AdminController_delete"]; - }; "/api/videos/{id}": { get: operations["VideosController_getVideos"]; }; @@ -194,6 +177,30 @@ export interface paths { "/api/playlists/continuation": { get: operations["PlaylistsController_getPlaylistContinuation"]; }; + "/api/admin/info": { + get: operations["AdminController_getInfo"]; + }; + "/api/admin/server-settings": { + get: operations["AdminController_getServerSettings"]; + post: operations["AdminController_updateServerSettings"]; + }; + "/api/admin/logs": { + get: operations["AdminController_getLogs"]; + }; + "/api/admin/logs/{logFile}": { + get: operations["AdminController_downloadLogFile"]; + }; + "/api/admin/blocked-videos": { + get: operations["AdminController_findAll"]; + post: operations["AdminController_create"]; + }; + "/api/admin/blocked-videos/{id}": { + get: operations["AdminController_isVideoBlocked"]; + delete: operations["AdminController_delete"]; + }; + "/api/admin/users": { + post: operations["AdminController_createUser"]; + }; } export type webhooks = Record; @@ -239,7 +246,7 @@ export interface components { username: string; profileImage: string; settings: components["schemas"]["SettingsDto"]; - admin: boolean; + admin?: boolean; }; VTThumbnailDto: { quality?: string; @@ -332,22 +339,6 @@ export interface components { /** Format: date-time */ lastVisit: string; }; - InfoDto: { - serverIpV4: string; - serverIpV6: string; - proxyIpV4: string; - proxyIpV6: string; - }; - LogFileDto: { - name: string; - size: number; - created: number; - lastModified: number; - }; - LogsDto: { - logFiles: components["schemas"]["LogFileDto"][]; - location: string; - }; VTPreviewThumbnailDto: { urlTemplate: string; width: number; @@ -704,6 +695,30 @@ export interface components { items: components["schemas"]["PlaylistItemDto"][]; continuation: unknown; }; + InfoDto: { + serverIpV4: string; + serverIpV6: string; + proxyIpV4: string; + proxyIpV6: string; + }; + ServerSettingsDto: { + registrationEnabled: boolean; + requireLoginEverywhere: boolean; + }; + LogFileDto: { + name: string; + size: number; + created: number; + lastModified: number; + }; + LogsDto: { + logFiles: components["schemas"]["LogFileDto"][]; + location: string; + }; + UserDto: { + username: string; + password: string; + }; }; responses: never; parameters: never; @@ -1048,85 +1063,6 @@ export interface operations { }; }; }; - AdminController_getInfo: { - responses: { - 200: { - content: { - "application/json": components["schemas"]["InfoDto"]; - }; - }; - }; - }; - AdminController_getLogs: { - responses: { - 200: { - content: { - "application/json": components["schemas"]["LogsDto"]; - }; - }; - }; - }; - AdminController_downloadLogFile: { - parameters: { - path: { - logFile: string; - }; - }; - responses: { - 200: { - content: never; - }; - }; - }; - AdminController_findAll: { - responses: { - 200: { - content: { - "application/json": string[]; - }; - }; - }; - }; - AdminController_create: { - requestBody: { - content: { - "application/json": string; - }; - }; - responses: { - 201: { - content: { - "application/json": string; - }; - }; - }; - }; - AdminController_isVideoBlocked: { - parameters: { - path: { - id: string; - }; - }; - responses: { - 200: { - content: { - "application/json": boolean; - }; - }; - }; - }; - AdminController_delete: { - parameters: { - path: { - id: string; - }; - }; - responses: { - 200: { - content: never; - }; - }; - }; VideosController_getVideos: { parameters: { path: { @@ -1625,4 +1561,120 @@ export interface operations { }; }; }; + AdminController_getInfo: { + responses: { + 200: { + content: { + "application/json": components["schemas"]["InfoDto"]; + }; + }; + }; + }; + AdminController_getServerSettings: { + responses: { + 200: { + content: { + "application/json": components["schemas"]["ServerSettingsDto"]; + }; + }; + }; + }; + AdminController_updateServerSettings: { + requestBody: { + content: { + "application/json": components["schemas"]["ServerSettingsDto"]; + }; + }; + responses: { + 201: { + content: { + "application/json": components["schemas"]["ServerSettingsDto"]; + }; + }; + }; + }; + AdminController_getLogs: { + responses: { + 200: { + content: { + "application/json": components["schemas"]["LogsDto"]; + }; + }; + }; + }; + AdminController_downloadLogFile: { + parameters: { + path: { + logFile: string; + }; + }; + responses: { + 200: { + content: never; + }; + }; + }; + AdminController_findAll: { + responses: { + 200: { + content: { + "application/json": string[]; + }; + }; + }; + }; + AdminController_create: { + requestBody: { + content: { + "application/json": string; + }; + }; + responses: { + 201: { + content: { + "application/json": string; + }; + }; + }; + }; + AdminController_isVideoBlocked: { + parameters: { + path: { + id: string; + }; + }; + responses: { + 200: { + content: { + "application/json": boolean; + }; + }; + }; + }; + AdminController_delete: { + parameters: { + path: { + id: string; + }; + }; + responses: { + 200: { + content: never; + }; + }; + }; + AdminController_createUser: { + requestBody: { + content: { + "application/json": components["schemas"]["UserDto"]; + }; + }; + responses: { + 201: { + content: { + "application/json": components["schemas"]["UserprofileDto"]; + }; + }; + }; + }; } diff --git a/tests/cypress/package.json b/tests/cypress/package.json index 09fb2aade..fc48a073c 100644 --- a/tests/cypress/package.json +++ b/tests/cypress/package.json @@ -14,7 +14,7 @@ }, "devDependencies": { "cross-env": "7.0.3", - "cypress": "13.6.1", + "cypress": "13.6.2", "cypress-commands": "3.0.0", "typescript": "5.3.3" } diff --git a/tests/jest/package.json b/tests/jest/package.json index 7269d674f..7448be895 100644 --- a/tests/jest/package.json +++ b/tests/jest/package.json @@ -9,7 +9,7 @@ "@nestjs/testing": "10.3.0", "@types/jest": "29.5.11", "eslint": "8.56.0", - "eslint-plugin-jest": "27.6.0", + "eslint-plugin-jest": "27.6.1", "jest": "29.7.0", "mongodb-memory-server": "9.1.3", "redis-mock": "0.56.3",